プリミティブルール
Namespace
Namespace
Namespaceルールは、ルールセットアカウントのサイズとデシリアライゼーション中に使用される計算単位を削減するために使用される高度なルールです。また、複数のシナリオ間で共通のルールに使用することもできます。Namespaceルールはオペレーション:シナリオペアに使用され、評価がオペレーション下のルールを使用すべきであることを示します。例えば、トークンにTransfer:Owner、Transfer:Delegate、Transfer:Authorityシナリオがあり、Transfer:Delegateのみが特別なルールを必要とする場合、Namespaceルールを使用して、Transfer:OwnerとTransfer:Authorityの両方にTransfer下の共通ルールを使用すべきであることを示すことができます。
// このルールセットは、'Transfer'下のPassルールを評価し、'Transfer:Owner'と'Transfer:Authority'の両方でtrueになりますが、'Delegate'転送で追加署名者が存在する場合のみtrueと評価されます。
const revision: RuleSetRevisionV2 = JSON.parse({
'libVersion': 2,
'name': 'My Rule Set',
owner,
'operations': {
'Transfer': {
'type': 'Pass',
},
'Transfer:Owner': {
'type': 'Namespace',
},
'Transfer:Authority': {
'type': 'Namespace',
},
'Transfer:Delegate': {
'type': 'AdditionalSigner',
'publicKey': publicKey('DhYCi6pvfhJkPRpt5RjYwsE1hZw84iu6twbRt9B6dYLV'),
},
},
});
