Token Taxonomy Framework Enhancements
The enhanced version of Blockchain App Builder includes new functionality related to the extended Token Taxonomy Framework standard. The enhanced version of Blockchain App Builder is bundled with Oracle Blockchain Platform Digital Assets Edition.
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.
For more information, see the createAccount method and other methods shown when you select the Digital Assets tab for the method descriptions in Scaffolded TypeScript Project for Token Taxonomy Framework and Scaffolded Go Project for Token Taxonomy Framework.
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 in Oracle Blockchain Platform Digital Assets Edition.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.
-
For more information, see the methods shown when you select the Digital Assets tab for the method descriptions in Scaffolded TypeScript Project for Token Taxonomy Framework, TypeScript Methods for Confidential Transactions, and Scaffolded Go Project for Token Taxonomy Framework.