Open lutfiblog opened 1 year ago
Are you talking about Iroha 1 or Iroha 2 SDK?
I am working with Iroha 2: Here are my approach:
export const setRole = async () => {
// let role_id = <Role as Identifiable>::Id::from_str("ACCESS_TO_MOUSE_METADATA")?;
// let role = iroha_data_model::role::Role::new(role_id)
// .add_permission(CanSetKeyValueInUserMetadata::new(mouse_id))
// .add_permission(CanRemoveKeyValueInUserMetadata::new(mouse_id));
// let register_role = RegisterBox::new(role);
const role = Role({
id: RoleId({
name: "ACCESS_TO_PCHAIN_METADATA",
}),
permissions: VecToken([]),
});
const registerRole = RegisterBox({
object: EvaluatesToRegistrableBox({
expression: Expression(
"Raw",
Value(
"Identifiable",
IdentifiableBox(
"NewRole",
NewRole({
inner: role,
})
)
)
),
}),
});
};
export const canMintUserAsset = () => {
const accountBox = AccountId({
name: "lutfi",
domain_id: DomainId({
name: "prifa",
}),
});
const assetDefinition = AssetDefinition({
value_type: AssetValueType("Quantity"),
id: AssetDefinitionId({
name: "pchain",
domain_id: DomainId({ name: "prifa" }),
}),
metadata: Metadata({ map: MapNameValue(new Map()) }),
mintable: Mintable("Infinitely"), // If only we could mint more time.
});
// let mut genesis = RawGenesisBlock::new(
// "alice".parse(),
// "wonderland".parse(),
// get_key_pair().public_key().clone(),
// );
// let rose_definition_id =
// <AssetDefinition as Identifiable>::Id::from_str("rose#wonderland")?;
// let alice_id =
// <Account as Identifiable>::Id::from_str("alice@wonderland")?;
// // Create a new `CanMintUserAssetDefinitions` permission token
// // to mint rose assets (`rose_definition_id`)
// let mint_rose_permission: PermissionToken =
// CanMintUserAssetDefinitions::new(rose_definition_id).into();
// // Grant Alice permission to mint rose assets
// genesis.transactions[0]
// .isi
// .push(GrantBox::new(mint_rose_permission, alice_id).into());
}
The function for "PermissionToken" and "CanMintUserAssetDefinitions" not found in from "@iroha2/data-model", however i found this "FindAllPermissionTokenDefinitions"
Is there available solution to do it in Typescript? or maybe, i need to define it in genesis.json? Thanks
Looking for performing permission instruction with typescript, i am not able to found documentation about it in Typescript.