Skip to main content

Xls20

Calls

enableXls20Compatibility

Enables XLS-20 compatibility on a collection

  • Collection must not have any tokens minted

  • Caller must be collection owner

Namespace

api.tx.xls20.enableXls20Compatibility

Type

function enableXls20Compatibility(
collection_id: u32
)

fulfillXls20Mint

Submit XLS-20 token ids to The Root Network Only callable by the trusted relayer account Can apply multiple mappings from the same collection in one transaction

Namespace

api.tx.xls20.fulfillXls20Mint

Type

function fulfillXls20Mint(
collection_id: u32,
token_mappings: Vec<(u32,[u8;64])>
)

reRequestXls20Mint

Namespace

api.tx.xls20.reRequestXls20Mint

Type

function reRequestXls20Mint(
collection_id: u32,
serial_numbers: Vec<u32>
)

setRelayer

Set the relayer address

Namespace

api.tx.xls20.setRelayer

Type

function setRelayer(
relayer: SeedPrimitivesSignatureAccountId20
)

setXls20Fee

Set the xls20 mint fee which is paid per token by the collection owner This covers the additional costs incurred by the relayer for the following:

  • Minting the token on XRPL

  • Calling fulfill_xls20_mint on The Root Network

Namespace

api.tx.xls20.setXls20Fee

Type

function setXls20Fee(
new_fee: u128
)

Storage

relayer

The permissioned relayer

Namespace

api.query.xls20.relayer

Type

function relayer(

): Option<SeedPrimitivesSignatureAccountId20>

xls20MintFee

The extra cost of minting an XLS-20 compatible NFT

Namespace

api.query.xls20.xls20MintFee

Type

function xls20MintFee(

): u128

xls20TokenMap

Maps from TRN native token_id to XLS-20 TokenId

Namespace

api.query.xls20.xls20TokenMap

Type

function xls20TokenMap(
u32,
u32
): Option<[u8;64]>

Events

RelayerSet

A new relayer has been set

Namespace

api.events.xls20.RelayerSet

Type

type RelayerSet = {
account: SeedPrimitivesSignatureAccountId20
}

Xls20CompatibilityEnabled

A collection has had XLS-20 compatibility enabled

Namespace

api.events.xls20.Xls20CompatibilityEnabled

Type

type Xls20CompatibilityEnabled = {
collection_id: u32
}

Xls20MappingSet

A new XLS20 mapping has been set

Namespace

api.events.xls20.Xls20MappingSet

Type

type Xls20MappingSet = {
collection_id: u32,
mappings: Vec<(u32,[u8;64])>
}

Xls20MintFeePaid

Additional mint fee for XLS-20 mint has been paid to relayer

Namespace

api.events.xls20.Xls20MintFeePaid

Type

type Xls20MintFeePaid = {
collection_owner: SeedPrimitivesSignatureAccountId20,
total_fee: u128
}

Xls20MintFeeSet

A new Xls20 Mint Fee has been set

Namespace

api.events.xls20.Xls20MintFeeSet

Type

type Xls20MintFeeSet = {
new_fee: u128
}

Xls20MintRequest

Request sent to XLS20 Relayer

Namespace

api.events.xls20.Xls20MintRequest

Type

type Xls20MintRequest = {
collection_id: u32,
serial_numbers: Vec<u32>,
token_uris: Vec<Bytes>
}

Errors

MappingAlreadyExists

There is already a Root native -> XLS-20 mapping for this token

Namespace

api.errors.xls20.MappingAlreadyExists

NotCollectionOwner

No the owner of the collection

Namespace

api.errors.xls20.NotCollectionOwner

NoToken

The NFT does not exist

Namespace

api.errors.xls20.NoToken

NotRelayer

The caller is not the relayer and does not have permission to perform this action

Namespace

api.errors.xls20.NotRelayer

NotXLS20Compatible

The collection is not compatible with XLS-20

Namespace

api.errors.xls20.NotXLS20Compatible

Xls20MintFeeTooLow

The supplied fee for minting XLS-20 tokens is too low

Namespace

api.errors.xls20.Xls20MintFeeTooLow

undefined