Permissions
PermissionClient
Methods
- setPermission
- createSetPermissionSignature
- setAllPermissions
- setBatchPermissions
- createBatchPermissionSignature
setPermission
Sets the permission for a specific function call.
Each policy is represented as a mapping from an IP account address to a signer address to a recipient
address to a function selector to a permission level. The permission level can be 0 (ABSTAIN), 1 (ALLOW), or
2 (DENY).
By default, all policies are set to 0 (ABSTAIN), which means that the permission is not set. The owner of IP Account by default has all permission.
Method | Type |
---|---|
setPermission | (request: SetPermissionsRequest) => Promise<SetPermissionsResponse> |
Parameters:
request.ipId
: The IP ID that grants the permission forsigner
.request.signer
: The address that can callto
on behalf of theipAccount
.request.to
: The address that can be called by thesigner
(currently only modules can beto
)request.permission
: The new permission level.request.func
: [Optional] The function selector string ofto
that can be called by thesigner
on behalf of theipAccount
. Be default, it allows all functions.request.txOptions
: [Optional] The transaction options.
export type SetPermissionsResponse = {
txHash?: string;
encodedTxData?: EncodedTxData;
success?: boolean;
};
createSetPermissionSignature
Specific permission overrides wildcard permission with signature.
Method | Type |
---|---|
createSetPermissionSignature | (request: CreateSetPermissionSignatureRequest) => Promise<SetPermissionsResponse> |
Parameters:
request.ipId
: The IP ID that grants the permission forsigner
.request.signer
: The address that can callto
on behalf of theipAccount
.request.to
: The address that can be called by thesigner
(currently only modules can beto
)request.permission
: The new permission level.request.func
: [Optional] The function selector string ofto
that can be called by thesigner
on behalf of theipAccount
. Be default, it allows all functions.request.deadline
: [Optional] The deadline for the signature in milliseconds, default is 1000ms.request.txOptions
: [Optional] The transaction options.
export type SetPermissionsResponse = {
txHash?: string;
encodedTxData?: EncodedTxData;
success?: boolean;
};
setAllPermissions
Sets permission to a signer for all functions across all modules.
Method | Type |
---|---|
setAllPermissions | (request: SetAllPermissionsRequest) => Promise<SetPermissionsResponse> |
Parameters:
request.ipId
: The IP ID that grants the permission forsigner
.request.signer
: The address of the signer receiving the permissions.request.permission
: The new permission.request.txOptions
: [Optional] The transaction options.
export type SetPermissionsResponse = {
txHash?: string;
encodedTxData?: EncodedTxData;
success?: boolean;
};
setBatchPermissions
Sets a batch of permissions in a single transaction.
Method | Type |
---|---|
setBatchPermissions | (request: SetBatchPermissionsRequest) => Promise<SetPermissionsResponse> |
Parameters:
request.permissions[]
: An array ofPermission
structure, each representing the permission to be set.request.permissions[].ipId
: The IP ID that grants the permission forsigner
.request.permissions[].signer
: The address that can callto
on behalf of theipAccount
.request.permissions[].to
: The address that can be called by thesigner
(currently only modules can beto
)request.permissions[].permission
: The new permission level.request.permissions[].func
: [Optional] The function selector string ofto
that can be called by thesigner
on behalf of theipAccount
. Be default, it allows all functions.
request.deadline
: [Optional] The deadline for the signature in milliseconds, default is 1000ms.request.txOptions
: [Optional] The transaction options.
export type SetPermissionsResponse = {
txHash?: string;
encodedTxData?: EncodedTxData;
success?: boolean;
};
createBatchPermissionSignature
Sets a batch of permissions in a single transaction with signature.
Method | Type |
---|---|
createBatchPermissionSignature | (request: CreateBatchPermissionSignatureRequest) => Promise<SetPermissionsResponse> |
Parameters:
request.ipId
: The IP ID that grants the permission forsigner
request.permissions[]
- An array ofPermission
structure, each representing the permission to be set.request.permissions[].ipId
: The IP ID that grants the permission forsigner
.request.permissions[].signer
: The address that can callto
on behalf of theipAccount
.request.permissions[].to
: The address that can be called by thesigner
(currently only modules can beto
)request.permissions[].permission
: The new permission level.request.permissions[].func
: [Optional] The function selector string ofto
that can be called by thesigner
on behalf of theipAccount
. Be default, it allows all functions.
request.txOptions
: [Optional] The transaction options.
export type SetPermissionsResponse = {
txHash?: string;
encodedTxData?: EncodedTxData;
success?: boolean;
};
Updated about 2 months ago