Primitive Rules
Namespace
Namespace
The Namespace rule is an advanced rule used to reduce the size of a Rule Set account and compute units used during deserialization. It can also be used for common rules across multiple Scenarios. The Namespace rule is used for a Operation:Scenario pair and will indicate that evaluation should use the rule under the Operation. For example, if a token has Transfer:Owner
, Transfer:Delegate
, and Transfer:Authority
scenarios, but only Transfer:Delegate
needs a special rule, the Namespace rule can be used to indicate that a common rule under Transfer
should be used for both Transfer:Owner
and Transfer:Authority
.
// This Rule Set will evaluate the Pass rule under 'Transfer' and be true for both 'Transfer:Owner' and 'Transfer:Authority' but it will only evaluate to true if the additional signer is present for a 'Delegate' transfer.
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'),
},
},
});