ContractRoles
Handle contract permissions
Configure roles and permissions for a contract, to restrict certain actions.
const contract = await sdk.getContract("{{contract_address}}");const rolesAndMembers = await contract.roles.getAll();await contract.roles.grantRole("admin", "0x...");
class ContractRoles<  TContract extends IPermissions,> implements DetectableFeature {}
function constructor(contractWrapper: ContractWrapper<IPermissions>, roles: readonly Array<TRole>) : ContractRoles<TContract, TRole>
Get all members of a specific role
See ContractRoles.getAll to get get a list of addresses for all supported roles on the contract.
const minterAddresses = await contract.roles.get("minter");
function get(role: TRole): Promise<Array<string>>;
Get all members of all roles
See ContractRoles.get to get a list of addresses that are members of a specific role.
const rolesAndMembers = await contract.roles.getAll();
function getAll(): Promise<Record<TRole, Array<string>>>;
function grant(role: TRole, address: string): Promise<TResult>;
Preparable
You can also prepare the transaction without executing it by calling grant.prepare() with same arguments.Learn more
function revoke(role: TRole, address: string): Promise<TResult>;
Preparable
You can also prepare the transaction without executing it by calling revoke.prepare() with same arguments.Learn more
function setAll(  rolesWithAddresses: {    [key in      | "metadata"      | "transfer"      | "signer"      | "minter"      | "revoke"      | "admin"      | "pauser"      | "lister"      | "asset"      | "unwrap"      | "factory"      | "migration"]: Array<string>;  },  actingAddress: string,): Promise<TResult>;
Preparable
You can also prepare the transaction without executing it by calling setAll.prepare() with same arguments.Learn more
let featureName: "Permissions";