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_notaryWhen 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,burnTokensandrejectBurnmethods 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_detailsfield 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,approveBurnandrejectBurnmust 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.