Bulk

To know the methods calling to Startrail API from Startrail-Sdk-Js

bulk()

Bundling bulk transactions into a single Startrail-API call.

  • createSRR()

  • approveSRRByCommitment()

  • transferFromWithProvenance()

Method parameters

Variable
Type
Description

startrailLUWContractAddress

string

The address of LicensedUserWallet(LUW) contract.

isCompressEnabled

boolean

Sets true if you want to compress a chunk of data with Gzip for HTTP call to Startrail-API.

txs

TxDetails

See TxDetails below.

TxDetails

Variable
Type
Description

functionType

'approveSRRByCommitment' | 'createSRR' | 'transferFromWithProvenance'

Functoin type you want to execute

data

approveSRRByCommitment | createSRR | transferFromWithProvenance

Refer to the Method parameters respectively from createSRR approveSRRByCommitment transferFromWithProvenance Please don't forget to extract 'startrailLUWContractAddress' from the parameters.

Parameters Example

sdk.bulk(
  {
    isCompressEnabled: true,
    startrailLUWContractAddress: '0x1099a229951CeCcbE94aFA7017728503663E1983',
    txs: [
      {
        functionType: 'createSRR',
        data: {
          contractAddress: "0xA6E6a9E20a541680a1D6E1412f5088AefBF58a22",
          isPrimaryIssuer: false,
          artistAddress: "0xA6E6a9E20a541680a1D6E1412f5088AefBF58a22",
          lockExternalTransfer: false,
          metadata: {
            $schema: "ipfs://bafkreif77ionobe56gawqnplet46x3sjfinx3krm4reldzn7v6c2nfrmy4",
            startbahnCertICTagUIDs: [
              "1234567890abcdef"
            ],
            chipUIDs: [
              "1234567890abcdef"
            ],
            title: {
              en: "A title",
              ja: "ใ‚ฟใ‚คใƒˆใƒซ",
              zh: "ไธ€ไธชๆ ‡้ข˜"
            },
            size: {
              width: 200.0,
              height: 400.0,
              depth: 12.4,
              unit: "pixel",
              flexibleDescription: {
                en: "flexibleDescription comes here",
                ja: "่ชฌๆ˜Žใ‚’ๅ…ฅๅŠ›"
              }
            },
            attributes: [
              {
                trait_type: "Mouth",
                value: "Surprised"
              }
            ],
            medium: {
              en: "Oil on canvas",
              ja: "ใ‚ญใƒฃใƒณใƒใ‚นใซๆฒนๅฝฉ",
              zh: "ๅธƒ้ขๆฒน็”ป"
            },
            edition: {
              uniqueness: "unique work",
              proofType: "ED",
              number: 1,
              totalNumber: 3,
              note: {
                en: "some extra notes in 1 or more languages"
              }
            },
            contractTerms: {
              royaltyRate: 15.7,
              fileURL: "ipfs://bafkreihmlsij6s5ri6e347h7yqjlsl4qa3iykub6qmumctb2mshc4u7vlm"
            },
            note: {
              en: "note",
              zh: "ๆณจๆ„"
            },
            thumbnailURL: "ipfs://bafkreiedkaf4w5ogbbnfgp4jyrlvdqmwh3edryszcciee3puyn7nltcomi",
            yearOfCreation: {
              en: "around 2010-2020",
              ja: "2010ๅนดใ‹ใ‚‰2020ๅนด้ ƒ"
            },
            isDigital: true,
            digitalDataHash: "sha256-247e4b904322a1dd0b148cd77e8627ec7d391251380880ab4621726ecb945ef5",
            digitalComponents: [{
              hash: "sha256-247e4b904322a1dd0b148cd77e8627ec7d391251380880ab4621726ecb945ef5",
              category: "artwork"
            }],
            attachmentFiles: [{
              hash: "sha256-247e4b904322a1dd0b148cd77e8627ec7d391251380880ab4621726ecb945ef5",
              category: "artwork"
            }],
            name: "some nft name",
            description: "some nft description",
            image: "ipfs://bafkreiedkaf4w5ogbbnfgp4jyrlvdqmwh3edryszcciee3puyn7nltcomi",
            external_url: "https://openseacreatures.io/3"
          }
        }
      },
      {
        functionType: 'approveSRRByCommitment',
        data: {
          contractAddress: "0xA6E6a9E20a541680a1D6E1412f5088AefBF58a22",
          tokenId: '639283836913',
          preimage: 'test86@gmail.com',
          metadata: {
              $schema: 'ipfs://bafkreiagmzvya63vrv4byglrtkabk5xrr2x7g7zsa3fzxbz43c7tyw6kgm',
              transferType: 'Primary sale',
              remarks: {
                  en: 'Reason for the transfer, English',
                  ja: '็งป่ปขใฎ็†็”ฑ๏ผšๆ—ฅๆœฌ่ชž'
              }
          },
          isHashPreimageEnabled: false
        }
      },
      {
        functionType: 'transferFromWithProvenance',
        data: {
          contractAddress: "0xA6E6a9E20a541680a1D6E1412f5088AefBF58a22",
          to: '0xF6B90C96D53058123C32C53A03b4420594714342',
          tokenId: '832736095995',
          metadata: {
            transferType: "Primary sale",
            remarks: {
              en: "Reason for the transfer",
              ja: "็งป่ปขใฎ็†็”ฑ๏ผšๆ—ฅๆœฌ่ชž"
            },
            customHistoryId: 1,
          },
          isIntermediary: false,
        }
      }
    ]
  }
)

Returns

Promise will be returned which resolves with a Response object upon a successful confirmation. false will be returned when user flow is cancelled in such a case that a user closes the popup modal.

If the confirmation fails, the Promise will resolve with an {error} object that describes the failure.

Promise<Response | false>

Response

Variable
Type
Description

batchId

string

ID to identify transaction details in Startrail-API DB.

txs

TxDetails

Transaction details

TxDetails

Variable
Type
Description

metadataCID

string

A calculated metadataCID

tokenId

string

A calculated tokenId

Error

Custom Error objects. Refer to the Error Catalogue for possible data.

Response Example

{
  batchId: 1,
  tx: {
      tokenId: "209850285627",
      metadataCID: "bafkreibjdtcklpe5wjgh6qp2dqygaydm3d4xttfhaphgian73bpprkr7xu"
  }
}

Last updated

ยฉ2023 Startbahn, Inc.