0.1.1 • Published 10 months ago

vwbl-sdk-xrpl v0.1.1

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

VWBL SDK for XRPL

official document

https://docs.vwbl-protocol.org

install

Using NPM

npm install vwbl-sdk-xrpl

Using Yarn

yarn add vwbl-sdk-xrpl

Build

npm run build:xrpl

Test

npm run test:xrpl

api document

create instance

const vwblXrpl = new VWBLXRPL({
  xrplChainId: 0, // Mainnet:0 / Testnet:1 / Devnet:2
  vwblNetworkUrl: "https://vwbl.network",
  uploadContentType: UploadContentType.S3,
  uploadMetadataType: UploadMetadataType.S3,
  awsConfig: {
    region: "ap-northeast-1",
    idPoolId: "ap-northeast-1:...",
    cloudFrontUrl: "https://xxx.cloudfront.net",
    bucketName: {
      metadata: "vwbl-metadata",
      content: "vwbl-content",
    },
  },
});

Constructor Options

namerequiredtypedescription
xrplChainIdtruenumberXRPL public server type
vwblNetworkUrltruestringVWBL network's url
uploadContentTypeflaseUploadContentTypewhere to upload content, you can choose from S3 IPFS CUSTOM
uploadMetadataTypeflaseUploadMetadataTypewhere to upload content, you can choose from S3 IPFS CUSTOM
awsConfigtrue if you choose to upload content or metadata to S3AWSConfigAWSConfig *1
ipfsConfigtrue if you choose to upload content or metadata to IPFSIPFSConfigIPFSConfig *2

AWSConfig(*1)

namerequiredtypedescription
regiontruestringAWS region
idPoolIdtruestringidPoolId which has granted S3-put-object
cloudFrontUrltruestringcloudFront url connect to s3 which is uploaded content
bucketNametrue{content: string, metadata: string}bucketName of metadata and content, it's ok they are same

IPFSConfig(*2)

namerequiredtypedescription
apiKeytruestringAPI key
apiSecretfalsestringAPI secret key

|

SDK

SDK Flow

Generate NFT mint tx object to get user's signature

await vwblXrpl.generateMintTokenTx(
  walletAddress, // user's wallet address
  transferRoyalty,
  isTransferable,
  isBurnable
);

mint VWBL NFT

await vwblXrpl.mintAndGeneratePaymentTx(
  signedMintTx, // signed tx of `generateMintTokenTx`
  walletAddress
);

pay mint fee

await vwblXrpl.payMintFee(
  walletAddress,
  signedPaymentTx // signed tx of `mintAndGeneratePaymentTx`
);

create token

await vwbl.managedCreateToken(
  tokenId,
  xrplChainId,
  signedEmptyTx,
  signedPaymentTxHash,
  signerPublicKey,
  name,
  description,
  plainFile,
  thumbnailImage,
  encryptLogic="base64",
  uploadEncryptedFileCallback?,
  uploadThumbnailCallback?,
  uploadMetadataCallBack?
);

view contents ( get NFT metadata from given tokenId)

// generate tx object to get user's signature
const emptyTxObject = await vwblXrpl.generateTxForSigning(walletAddress);

// decrypt & fetch metadata
const {
  id,
  name,
  description,
  image,
  mimeType,
  encryptLogic,
  ownDataBase64,
  ownFiles,
  fileName,
} = vwblXrpl.extractMetadata(
  tokenId,
  signedEmptyTx,
  signerPublicKey
)
0.1.1

10 months ago

0.1.0

10 months ago