Token Taxonomy Framework Enhancements
The enhanced version of Blockchain App Builder includes new functionality related to the extended Token Taxonomy Framework standard.
For more information on all of the following enhancements, see the method descriptions in Scaffolded TypeScript Project for Token Taxonomy Framework and Scaffolded Go Project for Token Taxonomy Framework.
Daily Transaction Limits
You can restrict the number of transactions an account can complete daily, as well as the number of tokens that can be acted on. The max_daily_amount
and max_daily_transactions
input parameters to the createAccount
method control this behavior. These parameters are optional.
You can achieve higher throughput if you do not set the daily transaction limits for an account.
Approval Requirements for Minting and Burning
You can set up approvals for minting and burning tokens, so that users with the minter or burner role must submit a request to an approver, instead of minting or burning tokens directly. Approvers can accept or reject requests to mint or burn tokens. To enable approvals for minting and burning, you use the mint_approval_required
and burn_approval_required
parameters in the specification file. You must then also specify values for mint_approver_role_name
and burn_approval_role_name
, as shown in the following example.
behavior: # Token behaviors
- divisible:
decimal: 2
- mintable:
max_mint_quantity: 1000
mint_approval_required: true
- transferable
- burnable
burn_approval_required: true
- holdable
- roles:
minter_role_name: minter
notary_role_name: notary
mint_approver_role_name: minter_notary
burn_approver_role_name: burner_notary
When a burn request is made, the specified amount is immediately deducted from the available balance and added to the onhold_burn_balance
field in the user's account object. If the request is approved, the tokens are burned. If the request is rejected, the tokens are returned from the onhold_burn_balance
field to the available balance. You can use the getAccountOnHoldBurnBalance
method to retrieve the account balance that is on hold for a particular user because of a burn request.
Fetching Transaction History from the Rich History Database
You can synchronize data to the rich history database and then fetch the data using chaincode API calls to retrieve transaction history from the rich history database. Before you can use these methods, you must run Oracle Autonomous Database with Oracle REST Data Services (ORDS) and OAuth enabled, as described in Oracle Database View Definitions for Wholesale CBDC.Category and Description Attributes in Transaction Objects
- Category and description attributes must be included in the
transferTokens
,holdTokens
,issueTokens
,requestMint
,requestBurn
,burnTokens
andrejectBurn
methods in the controller file. The corresponding SDK methods must also include category and description attributes. - The category and description attribute input is in the form of a JSON object named
info_details
, as shown in the following example.{ "category" : "category input", "description" : "description input" }
- The
info_details
field is optional. You can pass only a category or only a description as needed. - The GET methods related to any transactions for
transferTokens
,holdTokens
,executeHold
,releaseHold
,requestMint
,approveMint
,rejectMint
,requestBurn
,approveBurn
andrejectBurn
must include category and description attributes in the payload response if they are present. - The category field is limited 20 characters and the description field is limited to 250 characters.