FuturePass
Calls
create
Create a futurepass account for the delegator that is able to make calls on behalf of futurepass.
The dispatch origin for this call must be Signed.
Parameters:
account
: The delegated account for the futurepass.
Namespace
api.tx.futurepass.create
Type
function create(
account: SeedPrimitivesSignatureAccountId20
)
migrateEvmFuturepass
This extrinsic migrates EVM-based FuturePass assets to the Substrate-based FuturePass (native).
Parameters:
-
owner
- The account ID of the owner of the EVM-based FuturePass. -
evm_futurepass
- The account ID of the EVM-based FuturePass. -
asset_ids
- A vector of asset IDs representing the assets to be migrated. -
collection_ids
- A vector of collection IDs representing the NFTs collections to be migrated.
Namespace
api.tx.futurepass.migrateEvmFuturepass
Type
function migrateEvmFuturepass(
owner: SeedPrimitivesSignatureAccountId20,
evm_futurepass: SeedPrimitivesSignatureAccountId20,
asset_ids: Vec<u32>,
collection_ids: Vec<u32>
)
proxyExtrinsic
Dispatch the given call through FuturePass account. Transaction fees will be paid by the FuturePass. The dispatch origin for this call must be Signed
Parameters:
-
futurepass
: The FuturePass account though which the call is dispatched -
call
: The Call that needs to be dispatched through the FuturePass account
Namespace
api.tx.futurepass.proxyExtrinsic
Type
function proxyExtrinsic(
futurepass: SeedPrimitivesSignatureAccountId20,
call: Call
)
registerDelegateWithSignature
Register a delegator to an existing futurepass account given message parameters for a respective signature. Note: Only futurepass owner account can add more delegates. Note: The signer is recovered from signature given the message parameters (which is used to reconstruct the message).
- You can assume the message is constructed like so:
--- solidity bytes32 message = keccak256(abi.encodePacked(futurepass, delegate, proxyType, deadline)); ethSignedMessage = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", message));
The dispatch origin for this call must be Signed.
Parameters:
-
futurepass
: FuturePass account to register the account as delegate; 20 bytes. -
delegate
: The delegated account for the futurepass; 20 bytes. -
proxy_type
: Delegate permission level; 1 byte. -
deadline
: Deadline for the signature; 4 bytes. -
signature
: Signature of the message parameters.
Namespace
api.tx.futurepass.registerDelegateWithSignature
Type
function registerDelegateWithSignature(
futurepass: SeedPrimitivesSignatureAccountId20,
delegate: SeedPrimitivesSignatureAccountId20,
proxy_type: SeedRuntimeImplsProxyType,
deadline: u32,
signature: [u8;65]
)
setFuturepassMigrator
Update futurepass native assets migrator admin account.
The dispatch origin for this call must be sudo/root origin.
Parameters:
migrator
: The new account that will become the futurepass asset migrator.
Namespace
api.tx.futurepass.setFuturepassMigrator
Type
function setFuturepassMigrator(
migrator: SeedPrimitivesSignatureAccountId20
)
transferFuturepass
Transfer ownership of a futurepass to a new account. The new owner must not already own a futurepass. This removes all delegates from the futurepass. The new owner will be the only delegate; they can add more delegates.
The dispatch origin for this call must be Signed and must be the current owner of the futurepass.
Parameters:
-
current_owner
: The current owner of the futurepass. -
new_owner
: The new account that will become the owner of the futurepass.
Namespace
api.tx.futurepass.transferFuturepass
Type
function transferFuturepass(
current_owner: SeedPrimitivesSignatureAccountId20,
new_owner: Option<SeedPrimitivesSignatureAccountId20>
)
unregisterDelegate
Unregister a delegate from a futurepass account.
The dispatch origin for this call must be Signed.
Parameters:
-
futurepass
: FuturePass account to unregister the delegate from. -
delegate
: The delegated account for the futurepass. Note: if caller is futurepass holder onwer, they can remove any delegate (including themselves); otherwise the caller must be the delegate (can only remove themself).
Namespace
api.tx.futurepass.unregisterDelegate
Type
function unregisterDelegate(
futurepass: SeedPrimitivesSignatureAccountId20,
delegate: SeedPrimitivesSignatureAccountId20
)
Storage
defaultProxy
Accounts which have set futurepass as default proxied on-chain account (delegate -> futurepass)
Namespace
api.query.futurepass.defaultProxy
Type
function defaultProxy(
SeedPrimitivesSignatureAccountId20
): Option<SeedPrimitivesSignatureAccountId20>
holders
FuturePass holders (account -> futurepass)
Namespace
api.query.futurepass.holders
Type
function holders(
SeedPrimitivesSignatureAccountId20
): Option<SeedPrimitivesSignatureAccountId20>
migrationAdmin
Migration data for user (root) and collections they can migrate
Namespace
api.query.futurepass.migrationAdmin
Type
function migrationAdmin(
): Option<SeedPrimitivesSignatureAccountId20>
nextFuturepassId
The next available incrementing futurepass id
Namespace
api.query.futurepass.nextFuturepassId
Type
function nextFuturepassId(
): u128
Events
DefaultFuturepassSet
FuturePass set as default proxy
Namespace
api.events.futurepass.DefaultFuturepassSet
Type
type DefaultFuturepassSet = {
delegate: SeedPrimitivesSignatureAccountId20,
futurepass: Option<SeedPrimitivesSignatureAccountId20>
}
DelegateRegistered
Delegate registration to FuturePass account
Namespace
api.events.futurepass.DelegateRegistered
Type
type DelegateRegistered = {
futurepass: SeedPrimitivesSignatureAccountId20,
delegate: SeedPrimitivesSignatureAccountId20,
proxy_type: SeedRuntimeImplsProxyType
}
DelegateUnregistered
Delegate unregistration from FuturePass account
Namespace
api.events.futurepass.DelegateUnregistered
Type
type DelegateUnregistered = {
futurepass: SeedPrimitivesSignatureAccountId20,
delegate: SeedPrimitivesSignatureAccountId20
}
FuturepassAssetsMigrated
Migration of FuturePass assets
Namespace
api.events.futurepass.FuturepassAssetsMigrated
Type
type FuturepassAssetsMigrated = {
evm_futurepass: SeedPrimitivesSignatureAccountId20,
futurepass: SeedPrimitivesSignatureAccountId20,
assets: Vec<u32>,
collections: Vec<u32>
}
FuturepassCreated
FuturePass creation
Namespace
api.events.futurepass.FuturepassCreated
Type
type FuturepassCreated = {
futurepass: SeedPrimitivesSignatureAccountId20,
delegate: SeedPrimitivesSignatureAccountId20
}
FuturepassMigratorSet
Updating FuturePass migrator account
Namespace
api.events.futurepass.FuturepassMigratorSet
Type
type FuturepassMigratorSet = {
migrator: SeedPrimitivesSignatureAccountId20
}
FuturepassTransferred
FuturePass transfer
Namespace
api.events.futurepass.FuturepassTransferred
Type
type FuturepassTransferred = {
old_owner: SeedPrimitivesSignatureAccountId20,
new_owner: Option<SeedPrimitivesSignatureAccountId20>,
futurepass: SeedPrimitivesSignatureAccountId20
}
ProxyExecuted
A proxy call was executed with the given call
Namespace
api.events.futurepass.ProxyExecuted
Type
type ProxyExecuted = {
delegate: SeedPrimitivesSignatureAccountId20,
result: Result<Null, SpRuntimeDispatchError>
}
Errors
AccountAlreadyRegistered
Account is already futurepass holder
Namespace
api.errors.futurepass.AccountAlreadyRegistered
AccountParsingFailure
AccountParsingFailure
Namespace
api.errors.futurepass.AccountParsingFailure
DelegateAlreadyExists
Account already exists as a delegate
Namespace
api.errors.futurepass.DelegateAlreadyExists
DelegateNotRegistered
Account is not futurepass delegate
Namespace
api.errors.futurepass.DelegateNotRegistered
ExpiredDeadline
ExpiredDeadline
Namespace
api.errors.futurepass.ExpiredDeadline
InvalidDeadline
Invalid deadline
Namespace
api.errors.futurepass.InvalidDeadline
InvalidProxyType
Invalid proxy type
Namespace
api.errors.futurepass.InvalidProxyType
InvalidSignature
Invalid signature
Namespace
api.errors.futurepass.InvalidSignature
MigratorNotSet
FuturePass migrator admin account is not set
Namespace
api.errors.futurepass.MigratorNotSet
NotFuturepassOwner
Account is not futurepass owner
Namespace
api.errors.futurepass.NotFuturepassOwner
OwnerCannotUnregister
FuturePass owner cannot remove themselves
Namespace
api.errors.futurepass.OwnerCannotUnregister
PermissionDenied
Account does not have permission to call this function
Namespace
api.errors.futurepass.PermissionDenied
RegisterDelegateSignerMismatch
RegisterDelegateSignerMismatch
Namespace
api.errors.futurepass.RegisterDelegateSignerMismatch
undefined