There is a list of commands to interact with TOKEN:
- TOKEN LIST - lists actual token declarations
- TOKEN INFO - shows actual information about specified token
- TOKEN DECL - creates a token declaration datum and places it in the mempool
- TOKEN UPDATE - creates a token-update datum and places it in the mempool
- TOKEN DECL SIGN - signs a token-declaration datum from the mempool
- TOKEN UPDATE SIGN - signs a token-update datum from the mempool
- TOKEN EMIT - creates an emission datum and places it in the mempool
- TOKEN EMIT SIGN - signs a token-emission datum from the mempool
In the end of the article you can find example of how to declare and update token in the network - TOKEN DECLARE AND UPDATE EXAMPLE
Node Command - TOKEN LIST
Lists actual token declarations
CLI Example
Command syntax:
token list
-net <net_name>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
Example:
Command:
cellframe-node-cli token list
-net foobar
Response:
=== Datum Token Declaration ===
hash: 0x837723C2934FCBD1772EFB81BA5B91443A18BF09571FB891F0901AA29AA9FE8C
ticker: BUZ
size: 3614
version: 2
type: DECL
subtype: CF20
decimals: 18
auth signs (valid/total) 1/1
total_supply: 0
flags: NONE
signatures:
1) 0x035637F72D616C39A5121995743D42878B335B73DEB8A539023B8E8059C1D1A1, sig_dil, 2096 bytes
=== Datum Token Declaration ===
hash: 0xA48AB4D486DF603CFD86E41B6B1A16003AEF2BB00E7CDD70FEEE748EA6F0454B
ticker: mBUZ
size: 3922
version: 2
type: DECL
subtype: CF20
decimals: 18
auth signs (valid/total) 1/1
total_supply: 0
flags: NONE
ticker_token_from: BUZ
emission_rate: 0.001
signatures:
1) 0x035637F72D616C39A5121995743D42878B335B73DEB8A539023B8E8059C1D1A1, sig_dil, 2096 bytes
---------------
tokens: 2
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token", "params":["token;list;-net;foobar"], "id":"1"}'
Response:
{
"type": 0,
"result": "=== Datum Token Declaration ===\nhash: 0x837723C2934FCBD1772EFB81BA5B91443A18BF09571FB891F0901AA29AA9FE8C\nticker: BUZ\nsize: 3614\nversion: 2\ntype: DECL\nsubtype: CF20\ndecimals: 18\nauth signs (valid/total) 1/1\ntotal_supply: 0\nflags: NONE\nsignatures: \n1) 0x035637F72D616C39A5121995743D42878B335B73DEB8A539023B8E8059C1D1A1, sig_dil, 2096 bytes\n=== Datum Token Declaration ===\nhash: 0xA48AB4D486DF603CFD86E41B6B1A16003AEF2BB00E7CDD70FEEE748EA6F0454B\nticker: mBUZ\nsize: 3922\nversion: 2\ntype: DECL\nsubtype: CF20\ndecimals: 18\nauth signs (valid/total) 1/1\ntotal_supply: 0\nflags: NONE\nticker_token_from: BUZ\nemission_rate: 0.001\nsignatures: \n1) 0x035637F72D616C39A5121995743D42878B335B73DEB8A539023B8E8059C1D1A1, sig_dil, 2096 bytes\n---------------\ntokens: 2\n",
"errors": null,
"id": 1
}
Link to original
Node Command - TOKEN LIST
Lists actual token declarations
CLI Example
Command syntax:
token list
-net <net_name>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
Example:
Command:
cellframe-node-cli token list
-net foobar
Response:
=== Datum Token Declaration ===
hash: 0x837723C2934FCBD1772EFB81BA5B91443A18BF09571FB891F0901AA29AA9FE8C
ticker: BUZ
size: 3614
version: 2
type: DECL
subtype: CF20
decimals: 18
auth signs (valid/total) 1/1
total_supply: 0
flags: NONE
signatures:
1) 0x035637F72D616C39A5121995743D42878B335B73DEB8A539023B8E8059C1D1A1, sig_dil, 2096 bytes
=== Datum Token Declaration ===
hash: 0xA48AB4D486DF603CFD86E41B6B1A16003AEF2BB00E7CDD70FEEE748EA6F0454B
ticker: mBUZ
size: 3922
version: 2
type: DECL
subtype: CF20
decimals: 18
auth signs (valid/total) 1/1
total_supply: 0
flags: NONE
ticker_token_from: BUZ
emission_rate: 0.001
signatures:
1) 0x035637F72D616C39A5121995743D42878B335B73DEB8A539023B8E8059C1D1A1, sig_dil, 2096 bytes
---------------
tokens: 2
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token", "params":["token;list;-net;foobar"], "id":"1"}'
Response:
{
"type": 0,
"result": "=== Datum Token Declaration ===\nhash: 0x837723C2934FCBD1772EFB81BA5B91443A18BF09571FB891F0901AA29AA9FE8C\nticker: BUZ\nsize: 3614\nversion: 2\ntype: DECL\nsubtype: CF20\ndecimals: 18\nauth signs (valid/total) 1/1\ntotal_supply: 0\nflags: NONE\nsignatures: \n1) 0x035637F72D616C39A5121995743D42878B335B73DEB8A539023B8E8059C1D1A1, sig_dil, 2096 bytes\n=== Datum Token Declaration ===\nhash: 0xA48AB4D486DF603CFD86E41B6B1A16003AEF2BB00E7CDD70FEEE748EA6F0454B\nticker: mBUZ\nsize: 3922\nversion: 2\ntype: DECL\nsubtype: CF20\ndecimals: 18\nauth signs (valid/total) 1/1\ntotal_supply: 0\nflags: NONE\nticker_token_from: BUZ\nemission_rate: 0.001\nsignatures: \n1) 0x035637F72D616C39A5121995743D42878B335B73DEB8A539023B8E8059C1D1A1, sig_dil, 2096 bytes\n---------------\ntokens: 2\n",
"errors": null,
"id": 1
}
Node Command - TOKEN INFO
Shows actual information about specified token
CLI Example
Command syntax:
token info
-net <net_name>
-name <token_ticker>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-name - ticker (name) of the token
Example:
Command:
cellframe-node-cli token info
-net Backbone
-name CELL
Response:
TOKENS:
CELL:
current state:
-->Token name: CELL
type: CF20
flags: NONE
description: The token description is not set
Supply current: 0
Supply total: 0
Decimals: 18
Auth signs valid: 4
Auth signs total: 8
Signatures public keys:
#signatures
Total emissions: 24763
declarations:
status: ACCEPTED
Ledger return code: 0
Datum:
=== Datum Token Declaration ===:
hash: 0xB1F56F4BD0C8F3F99BE753F8F223C9754C116ED593A488E2D605593F8F4956E5
ticker: CELL
size: 18188
version: 2
type: DECL
subtype: CF20
decimals: 18
auth signs valid: 3
auth signs total: 5
total_supply: 0
flags: NONE
Signatures:
status:
#signatures
updates:
status: ACCEPTED
Ledger return code: 0
Datum:
=== Datum Token Declaration ===:
hash: 0x487F98375D4613535B0E6B9886D5D8A2C8B8707F634C26412395F552BA918CA3
size: 13864
version: 2
total_sign: 3
total_signs_valid: 4
total_pkeys_add: 0xB33EDC176790E7FEFD98167996E97892507BB3B1C81E1C99C50BC86BDEE8B6F0
Signatures:
status:
#signatures
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token", "params":["token;info;-net;Backbone;-name;CELL"], "id":"1"}'
Response:
{
"type": 0,
"result": "same as cli response",
"errors": null,
"id": 1
}
Link to original
Node Command - TOKEN INFO
Shows actual information about specified token
CLI Example
Command syntax:
token info
-net <net_name>
-name <token_ticker>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-name - ticker (name) of the token
Example:
Command:
cellframe-node-cli token info
-net Backbone
-name CELL
Response:
TOKENS:
CELL:
current state:
-->Token name: CELL
type: CF20
flags: NONE
description: The token description is not set
Supply current: 0
Supply total: 0
Decimals: 18
Auth signs valid: 4
Auth signs total: 8
Signatures public keys:
#signatures
Total emissions: 24763
declarations:
status: ACCEPTED
Ledger return code: 0
Datum:
=== Datum Token Declaration ===:
hash: 0xB1F56F4BD0C8F3F99BE753F8F223C9754C116ED593A488E2D605593F8F4956E5
ticker: CELL
size: 18188
version: 2
type: DECL
subtype: CF20
decimals: 18
auth signs valid: 3
auth signs total: 5
total_supply: 0
flags: NONE
Signatures:
status:
#signatures
updates:
status: ACCEPTED
Ledger return code: 0
Datum:
=== Datum Token Declaration ===:
hash: 0x487F98375D4613535B0E6B9886D5D8A2C8B8707F634C26412395F552BA918CA3
size: 13864
version: 2
total_sign: 3
total_signs_valid: 4
total_pkeys_add: 0xB33EDC176790E7FEFD98167996E97892507BB3B1C81E1C99C50BC86BDEE8B6F0
Signatures:
status:
#signatures
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token", "params":["token;info;-net;Backbone;-name;CELL"], "id":"1"}'
Response:
{
"type": 0,
"result": "same as cli response",
"errors": null,
"id": 1
}
Node Command - TOKEN DECL
Creates a token declaration datum and places it in the mempool
CLI Example
Command syntax:
token_decl
-net <net_name>
-chain <chain_name>
-token <token_ticker>
-total_supply <total_supply>
-signs_total <sign_total>
-signs_emission <signs_for_emission>
-decimals <18>
-certs <certs_list>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-chain - name of the chain where token was declared
-token - ticker (name) of the token
-total_supply - maximum sum of all token emissions (in datoshi)
-signs_total - quantity of authorized token signatures
-signs_emission - quantity of authorized token signatures required fot it's emission
-decimals - number accuration after comma (18 by default)
-certs - certificates which is used to sign token (you can use any certificate)
Example:
Command:
cellframe-node-cli token_decl
-net foobar
-chain zero
-token LLL
-total_supply 1000.0e+18
-signs_total 1
-signs_emission 1
-decimals 18
-certs foobar.root.pvt.0
Response:
Datum 0xFE3C0D5CEBAB54957121C01C12017164E516D60709B6BE10BC7EE98758BF4429 with token ZZZ is placed in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_decl", "params":["token_decl;-net;foobar;-chain;zero;-token;JJJ;-total_supply;0;-signs_total;1;-signs_emission;1;-decimals;18;-certs;foobar.root.pvt.0"], "id":"1"}'
Response:
{
"type": 0,
"result": "Datum 0x751E62A4B44CA3A2DE0B77FFD4DCA5F0F317365B02C3AE8A9829734354A60C20 with token JJJ is placed in datum pool",
"errors": null,
"id": 1
}
Link to original
Node Command - TOKEN DECL
Creates a token declaration datum and places it in the mempool
CLI Example
Command syntax:
token_decl
-net <net_name>
-chain <chain_name>
-token <token_ticker>
-total_supply <total_supply>
-signs_total <sign_total>
-signs_emission <signs_for_emission>
-decimals <18>
-certs <certs_list>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-chain - name of the chain where token was declared
-token - ticker (name) of the token
-total_supply - maximum sum of all token emissions (in datoshi)
-signs_total - quantity of authorized token signatures
-signs_emission - quantity of authorized token signatures required fot it's emission
-decimals - number accuration after comma (18 by default)
-certs - certificates which is used to sign token (you can use any certificate)
Example:
Command:
cellframe-node-cli token_decl
-net foobar
-chain zero
-token LLL
-total_supply 1000.0e+18
-signs_total 1
-signs_emission 1
-decimals 18
-certs foobar.root.pvt.0
Response:
Datum 0xFE3C0D5CEBAB54957121C01C12017164E516D60709B6BE10BC7EE98758BF4429 with token ZZZ is placed in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_decl", "params":["token_decl;-net;foobar;-chain;zero;-token;JJJ;-total_supply;0;-signs_total;1;-signs_emission;1;-decimals;18;-certs;foobar.root.pvt.0"], "id":"1"}'
Response:
{
"type": 0,
"result": "Datum 0x751E62A4B44CA3A2DE0B77FFD4DCA5F0F317365B02C3AE8A9829734354A60C20 with token JJJ is placed in datum pool",
"errors": null,
"id": 1
}
Node Command - TOKEN UPDATE
Сreates a token-update datum and places it in the mempool
CLI Example
Command syntax:
token_update
-net <net_name>
[-chain <chain_name>]
-token <existing_token_ticker>
-type <CF20|private>
[-total_supply_change <value>]
-certs <name_certs>
[-flag_set <flag>]
[-flag_unset <flag>]
[-total_signs_valid <value>]
[-description <value>]
[-tx_receiver_allowed <value>]
[-tx_receiver_blocked <value>]
[-tx_sender_allowed <value>]
[-tx_sender_blocked <value>]
[-add_cert <name_certs>]
[-remove_certs <pkeys_hash>]
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-chain - name of the chain where token was declared (optional)
-token - ticker (name) of the token
-type - type of the token (CF20 or private, CF20 by default)
-total_supply_change - changes total supply, specify “INF” to set unlimited total supply (optional)
-certs - list of certificates which were used to sign token
-flag_set - list of flags are being set (optional)
-flag_unset - list of flags are being unset (optional)
-total_signs_valid - sets the minimum amount of valid signatures (optional)
-description - token description written in " " (optional)
-tx_receiver_allowed - adds specified wallet address to the list of allowed receivers (optional)
-tx_receiver_blocked - adds specified wallet address to the list of blocked receivers (optional)
-tx_sender_allowed - adds specified wallet address to the list of allowed senders (optional)
-tx_sender_blocked - adds specified wallet address to the list of blocked senders (optional)
-add_cert - adds certificates to the certificates list of the token (optional)
-remove_certs - removes certificates from the certificates list using theirs public key hash (optional)
Available flags:
ALL_BLOCKED: Blocks all permissions.
ALL_ALLOWED: Allows all permissions unless they are blocked. Be careful with this mode.
ALL_FROZEN: Temporarily freezes all permissions
ALL_UNFROZEN: Unfreezes all frozen permissions
STATIC_ALL: Blocks manipulations with a token after declaration. Tokens are declared statically.
STATIC_FLAGS: Blocks manipulations with token flags after declaration.
STATIC_PERMISSIONS_ALL: Blocks all manipulations with permissions list after declaration.
STATIC_PERMISSIONS_DATUM_TYPE: Blocks all manipulations with datum permissions list after declaration.
STATIC_PERMISSIONS_TX_SENDER: Blocks all manipulations with transaction senders permissions list after declaration.
STATIC_PERMISSIONS_TX_RECEIVER: Blocks all manipulations with transaction receivers permissions list after declaration.
Example:
Command:
cellframe-node-cli token_update
-net foobar
-chain zero
-token ZZZ
-type CF20
-total_supply 0
-decimals 18
-signs_total 1
-signs_emission 1
-certs foobar.root.pvt.0
-flags ALL_ALLOWED
Response:
Datum 0x8F581F2B53062ADF150D34EF3DA0224DA11FA6AFB7D9964A520F60449483DC69 with 256bit token ZZZ is placed in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_update", "params":["token_update;-net;foobar;-chain;zero;-token;ZZZ;-type;CF20;-total_supply;0;-decimals;18;-signs_total;1;-signs_emission;1;-certs;foobar.root.pvt.0;-flags;ALL_ALLOWED"], "id":"1"}'
Response:
{
"type": 0,
"result": "Datum 0x8F581F2B53062ADF150D34EF3DA0224DA11FA6AFB7D9964A520F60449483DC69 with 256bit token ZZZ is placed in datum pool",
"errors": null,
"id": 1
}
Link to original
Node Command - TOKEN UPDATE
Сreates a token-update datum and places it in the mempool
CLI Example
Command syntax:
token_update
-net <net_name>
[-chain <chain_name>]
-token <existing_token_ticker>
-type <CF20|private>
[-total_supply_change <value>]
-certs <name_certs>
[-flag_set <flag>]
[-flag_unset <flag>]
[-total_signs_valid <value>]
[-description <value>]
[-tx_receiver_allowed <value>]
[-tx_receiver_blocked <value>]
[-tx_sender_allowed <value>]
[-tx_sender_blocked <value>]
[-add_cert <name_certs>]
[-remove_certs <pkeys_hash>]
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-chain - name of the chain where token was declared (optional)
-token - ticker (name) of the token
-type - type of the token (CF20 or private, CF20 by default)
-total_supply_change - changes total supply, specify “INF” to set unlimited total supply (optional)
-certs - list of certificates which were used to sign token
-flag_set - list of flags are being set (optional)
-flag_unset - list of flags are being unset (optional)
-total_signs_valid - sets the minimum amount of valid signatures (optional)
-description - token description written in " " (optional)
-tx_receiver_allowed - adds specified wallet address to the list of allowed receivers (optional)
-tx_receiver_blocked - adds specified wallet address to the list of blocked receivers (optional)
-tx_sender_allowed - adds specified wallet address to the list of allowed senders (optional)
-tx_sender_blocked - adds specified wallet address to the list of blocked senders (optional)
-add_cert - adds certificates to the certificates list of the token (optional)
-remove_certs - removes certificates from the certificates list using theirs public key hash (optional)
Available flags:
ALL_BLOCKED: Blocks all permissions.
ALL_ALLOWED: Allows all permissions unless they are blocked. Be careful with this mode.
ALL_FROZEN: Temporarily freezes all permissions
ALL_UNFROZEN: Unfreezes all frozen permissions
STATIC_ALL: Blocks manipulations with a token after declaration. Tokens are declared statically.
STATIC_FLAGS: Blocks manipulations with token flags after declaration.
STATIC_PERMISSIONS_ALL: Blocks all manipulations with permissions list after declaration.
STATIC_PERMISSIONS_DATUM_TYPE: Blocks all manipulations with datum permissions list after declaration.
STATIC_PERMISSIONS_TX_SENDER: Blocks all manipulations with transaction senders permissions list after declaration.
STATIC_PERMISSIONS_TX_RECEIVER: Blocks all manipulations with transaction receivers permissions list after declaration.
Example:
Command:
cellframe-node-cli token_update
-net foobar
-chain zero
-token ZZZ
-type CF20
-total_supply 0
-decimals 18
-signs_total 1
-signs_emission 1
-certs foobar.root.pvt.0
-flags ALL_ALLOWED
Response:
Datum 0x8F581F2B53062ADF150D34EF3DA0224DA11FA6AFB7D9964A520F60449483DC69 with 256bit token ZZZ is placed in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_update", "params":["token_update;-net;foobar;-chain;zero;-token;ZZZ;-type;CF20;-total_supply;0;-decimals;18;-signs_total;1;-signs_emission;1;-certs;foobar.root.pvt.0;-flags;ALL_ALLOWED"], "id":"1"}'
Response:
{
"type": 0,
"result": "Datum 0x8F581F2B53062ADF150D34EF3DA0224DA11FA6AFB7D9964A520F60449483DC69 with 256bit token ZZZ is placed in datum pool",
"errors": null,
"id": 1
}
Node Command - TOKEN DECL SIGN
Signs a token-declaration datum in the mempool (by hash) using provided POA certificates
CLI Example
Command syntax:
token_decl_sign
-net <net_name>
-chain <chain_name>
-datum <datum_hash>
-certs <certs_list>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-chain - name of the chain where token was declared
-datum - hash of the datum with token declaration
-certs - list of certificates used for sign token declaration
Example:
Command:
cellframe-node-cli token_decl_sign
-net foobar
-chain main
-datum 0xFE3C0D5CEBAB54957121C01C12017164E516D60709B6BE10BC7EE98758BF4429
-certs foobar.root.pvt.1
Response:
datum 0xA3ECE90A9560D6A0B69A37AAB4EF32A438D6DE4BB1EC1895B78180D32227FD87 is replacing the 0xFE3C0D5CEBAB54957121C01C12017164E516D60709B6BE10BC7EE98758BF4429 in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_decl_sign", "params":["token_decl_sign;-net;foobar;-chain;main;-datum;0x9456CEED16F07E832C2FE7F5E5F2D66F16010E43B15F27314D95FC467DF5A676;-certs;foobar.root.pvt.1"], "id":"1"}'
Response:
{
"type": 0,
"result": "datum 0xBFC77C7ABF1FA3CE0F6F001C18250BF1730E22A3AEBD05257C14B9CAA7134949 is replacing the 0x9456CEED16F07E832C2FE7F5E5F2D66F16010E43B15F27314D95FC467DF5A676 in datum pool",
"errors": null,
"id": 1
}
Link to original
Node Command - TOKEN DECL SIGN
Signs a token-declaration datum in the mempool (by hash) using provided POA certificates
CLI Example
Command syntax:
token_decl_sign
-net <net_name>
-chain <chain_name>
-datum <datum_hash>
-certs <certs_list>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-chain - name of the chain where token was declared
-datum - hash of the datum with token declaration
-certs - list of certificates used for sign token declaration
Example:
Command:
cellframe-node-cli token_decl_sign
-net foobar
-chain main
-datum 0xFE3C0D5CEBAB54957121C01C12017164E516D60709B6BE10BC7EE98758BF4429
-certs foobar.root.pvt.1
Response:
datum 0xA3ECE90A9560D6A0B69A37AAB4EF32A438D6DE4BB1EC1895B78180D32227FD87 is replacing the 0xFE3C0D5CEBAB54957121C01C12017164E516D60709B6BE10BC7EE98758BF4429 in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_decl_sign", "params":["token_decl_sign;-net;foobar;-chain;main;-datum;0x9456CEED16F07E832C2FE7F5E5F2D66F16010E43B15F27314D95FC467DF5A676;-certs;foobar.root.pvt.1"], "id":"1"}'
Response:
{
"type": 0,
"result": "datum 0xBFC77C7ABF1FA3CE0F6F001C18250BF1730E22A3AEBD05257C14B9CAA7134949 is replacing the 0x9456CEED16F07E832C2FE7F5E5F2D66F16010E43B15F27314D95FC467DF5A676 in datum pool",
"errors": null,
"id": 1
}
Node Command - TOKEN UPDATE SIGN
Signs a token-update datum from the mempool (by hash) using provided POA certificates
CLI Example
Command syntax:
token_update_sign
-net <net_name>
-chain <chain_name>
-datum <datum_hash>
-certs <certs_list>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-chain - name of the chain where token was declared
-datum - hash of the datum with token declaration
-certs - list of previous certificates used to sign token updating
Example:
Command:
cellframe-node-cli token_update_sign
-net foobar
-chain main
-datum 0x8F581F2B53062ADF150D34EF3DA0224DA11FA6AFB7D9964A520F60449483DC69
-certs foobar.root.pvt.0
Response:
datum 0x81D0480E5D1EBAC11189AC1E7407DDEF5F2F4ED4596D3D2EB40A53C4DCA85EA5 is replacing the 0x8F581F2B53062ADF150D34EF3DA0224DA11FA6AFB7D9964A520F60449483DC69 in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_update_sign", "params":["token_update_sign;-net;foobar;-chain;main;-datum;0x81D0480E5D1EBAC11189AC1E7407DDEF5F2F4ED4596D3D2EB40A53C4DCA85EA5;-certs;foobar.root.pvt.0"], "id":"1"}'
Response:
{
"type": 0,
"result": "datum 0x691E6D42AE74AC0844182EAF127A6DEDBD8F12776244C551058DF806ACBD27CF is replacing the 0x81D0480E5D1EBAC11189AC1E7407DDEF5F2F4ED4596D3D2EB40A53C4DCA85EA5 in datum pool",
"errors": null,
"id": 1
}
Link to original
Node Command - TOKEN UPDATE SIGN
Signs a token-update datum from the mempool (by hash) using provided POA certificates
CLI Example
Command syntax:
token_update_sign
-net <net_name>
-chain <chain_name>
-datum <datum_hash>
-certs <certs_list>
Options:
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-chain - name of the chain where token was declared
-datum - hash of the datum with token declaration
-certs - list of previous certificates used to sign token updating
Example:
Command:
cellframe-node-cli token_update_sign
-net foobar
-chain main
-datum 0x8F581F2B53062ADF150D34EF3DA0224DA11FA6AFB7D9964A520F60449483DC69
-certs foobar.root.pvt.0
Response:
datum 0x81D0480E5D1EBAC11189AC1E7407DDEF5F2F4ED4596D3D2EB40A53C4DCA85EA5 is replacing the 0x8F581F2B53062ADF150D34EF3DA0224DA11FA6AFB7D9964A520F60449483DC69 in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_update_sign", "params":["token_update_sign;-net;foobar;-chain;main;-datum;0x81D0480E5D1EBAC11189AC1E7407DDEF5F2F4ED4596D3D2EB40A53C4DCA85EA5;-certs;foobar.root.pvt.0"], "id":"1"}'
Response:
{
"type": 0,
"result": "datum 0x691E6D42AE74AC0844182EAF127A6DEDBD8F12776244C551058DF806ACBD27CF is replacing the 0x81D0480E5D1EBAC11189AC1E7407DDEF5F2F4ED4596D3D2EB40A53C4DCA85EA5 in datum pool",
"errors": null,
"id": 1
}
Node Command - TOKEN EMIT
Сreates an emission datum and places it in the mempool
CLI Example
Command syntax:
token_emit
-token <mempool_token_ticker>
-emission_value <value>
-addr <addr>
[-chain_emission <chain_name>]
-net <net_name>
-certs <cert_list>
Options:
-token - name of the token in the mempool
-emission_value - total value of emission
-addr - address of the wallet for emission
-chain_emission - name of the chain where token was emitted (optional)
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-certs - list of certificates for sign token emission
Example:
Command:
cellframe-node-cli token_emit
-token ZZZ
-emission_value 99999.9e+18
-addr ptV4n68gTebdUTcbmZA8HHVuueXki5N9zBrnAue92Dv1qaU5rcG2fSBaLGQSq2549vKjW9e944T8P9trNrpjEFyuYCWNgDsWftoTfGQp
-chain main
-net foobar
-certs foobar.root.pvt.0
Response:
Datum 0x94C2B9D0A9BF293E30404730526DC014FED975B1503E119BAD2FFC8238F7934F with 256bit emission is placed in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_emit", "params":["token_emit;-token;ZZZ;-emission_value;99999.9e+18;-addr;ptV4n68gTebdUTcbmZA8HHVuueXki5N9zBrnAue92Dv1qaU5rcG2fSBaLGQSq2549vKjW9e944T8P9trNrpjEFyuYCWNgDsWftoTfGQp;-chain;main;-net;foobar;-certs;foobar.root.pvt.0"], "id":"1"}'
Response:
{
"type": 0,
"result": "Datum 0x7217FA1B7254B2EBA0107BE5BBA1FA41223AB4DCD79F8CD457510126EFD9713C with 256bit emission is placed in datum pool",
"errors": null,
"id": 1
}
Link to original
Node Command - TOKEN EMIT
Сreates an emission datum and places it in the mempool
CLI Example
Command syntax:
token_emit
-token <mempool_token_ticker>
-emission_value <value>
-addr <addr>
[-chain_emission <chain_name>]
-net <net_name>
-certs <cert_list>
Options:
-token - name of the token in the mempool
-emission_value - total value of emission
-addr - address of the wallet for emission
-chain_emission - name of the chain where token was emitted (optional)
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-certs - list of certificates for sign token emission
Example:
Command:
cellframe-node-cli token_emit
-token ZZZ
-emission_value 99999.9e+18
-addr ptV4n68gTebdUTcbmZA8HHVuueXki5N9zBrnAue92Dv1qaU5rcG2fSBaLGQSq2549vKjW9e944T8P9trNrpjEFyuYCWNgDsWftoTfGQp
-chain main
-net foobar
-certs foobar.root.pvt.0
Response:
Datum 0x94C2B9D0A9BF293E30404730526DC014FED975B1503E119BAD2FFC8238F7934F with 256bit emission is placed in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_emit", "params":["token_emit;-token;ZZZ;-emission_value;99999.9e+18;-addr;ptV4n68gTebdUTcbmZA8HHVuueXki5N9zBrnAue92Dv1qaU5rcG2fSBaLGQSq2549vKjW9e944T8P9trNrpjEFyuYCWNgDsWftoTfGQp;-chain;main;-net;foobar;-certs;foobar.root.pvt.0"], "id":"1"}'
Response:
{
"type": 0,
"result": "Datum 0x7217FA1B7254B2EBA0107BE5BBA1FA41223AB4DCD79F8CD457510126EFD9713C with 256bit emission is placed in datum pool",
"errors": null,
"id": 1
}
Node Command - TOKEN EMIT SIGN
Signs a token-emission datum from the mempool (by hash) using provided POA certificates.
CLI Example
Command syntax:
token_emit sign
-emission <hash>
[-chain_emission <chain_name>]
-net <net_name>
-certs <cert_list>
Options:
-emission <hash> - hash of the emission
-chain_emission - name of the chain where token was emitted (optional)
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-certs - list of certificates for sign token emission
Example:
Command:
cellframe-node-cli token_emit sign
-emission 0x94C2B9D0A9BF293E30404730526DC014FED975B1503E119BAD2FFC8238F7934F
-chain main
-net foobar
-certs foobar.root.pvt.
Response:
Datum 0xAE43A6BC351B89DCA92E86ED42720443BA913FB81838DBB224931D4B7B0379D1 with 256bit emission is placed in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_emit", "params":["token_emit;-token;ZZZ;-emission_value;99999.9e+18;-addr;ptV4n68gTebdUTcbmZA8HHVuueXki5N9zBrnAue92Dv1qaU5rcG2fSBaLGQSq2549vKjW9e944T8P9trNrpjEFyuYCWNgDsWftoTfGQp;-chain;main;-net;foobar;-certs;foobar.root.pvt.0"], "id":"1"}'
Response:
{
"type": 0,
"result": "Datum 0xAE43A6BC351B89DCA92E86ED42720443BA913FB81838DBB224931D4B7B0379D1 with 256bit emission is placed in datum pool",
"errors": null,
"id": 1
}
Link to original
Node Command - TOKEN EMIT SIGN
Signs a token-emission datum from the mempool (by hash) using provided POA certificates.
CLI Example
Command syntax:
token_emit sign
-emission <hash>
[-chain_emission <chain_name>]
-net <net_name>
-certs <cert_list>
Options:
-emission <hash> - hash of the emission
-chain_emission - name of the chain where token was emitted (optional)
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-certs - list of certificates for sign token emission
Example:
Command:
cellframe-node-cli token_emit sign
-emission 0x94C2B9D0A9BF293E30404730526DC014FED975B1503E119BAD2FFC8238F7934F
-chain main
-net foobar
-certs foobar.root.pvt.
Response:
Datum 0xAE43A6BC351B89DCA92E86ED42720443BA913FB81838DBB224931D4B7B0379D1 with 256bit emission is placed in datum pool
JSON-RPC Example
Command:
curl -X POST http://rpc.cellframe.net/connect -d '{"method":"token_emit", "params":["token_emit;-token;ZZZ;-emission_value;99999.9e+18;-addr;ptV4n68gTebdUTcbmZA8HHVuueXki5N9zBrnAue92Dv1qaU5rcG2fSBaLGQSq2549vKjW9e944T8P9trNrpjEFyuYCWNgDsWftoTfGQp;-chain;main;-net;foobar;-certs;foobar.root.pvt.0"], "id":"1"}'
Response:
{
"type": 0,
"result": "Datum 0xAE43A6BC351B89DCA92E86ED42720443BA913FB81838DBB224931D4B7B0379D1 with 256bit emission is placed in datum pool",
"errors": null,
"id": 1
}
TOKEN DECLARE AND UPDATE EXAMPLE
- Declare token from the root “0”
Request:
cellframe-node-cli token_decl
-net foobar
-chain zerochain
-token ABC
-type CF20
-total_supply 1000000
-signs_total 3
-signs_emission 3
-decimals 18
-certs foobar.root.pvt.0
Response:
Datum 0x5E59C7D121B5D481843C0D7E3868A8BC535B4B0E04E6456F157E3739F094322C with token ABC is placed in datum pool
- Sign datum on the root “1”
Request:
cellframe-node-cli token_decl_sign
-net foobar
-chain zerochain
-datum 0x5E59C7D121B5D481843C0D7E3868A8BC535B4B0E04E6456F157E3739F094322C
-certs foobar.root.pvt.1
Response:
datum 0x6C9F326837C501247080FB37A2B324068D518E3904981B1AC2EC22CE91FE2BBF is replacing the 0x5E59C7D121B5D481843C0D7E3868A8BC535B4B0E04E6456F157E3739F094322C in datum pool
- Sign datum on the root “2”
Request:
cellframe-node-cli token_decl_sign
-net foobar
-chain zerochain
-datum 0x6C9F326837C501247080FB37A2B324068D518E3904981B1AC2EC22CE91FE2BBF
-certs foobar.root.pvt.2
Response:
datum 0xA5BAE1C2B69C87599A43E6AB435A2D2C7443DCC1A8B7D0E5A09C8EFDF8AFA69F is replacing the 0x6C9F326837C501247080FB37A2B324068D518E3904981B1AC2EC22CE91FE2BBF in datum pool
How datum with 3 signatures looks like in the mempool:
Example:
hash: 0xA5BAE1C2B69C87599A43E6AB435A2D2C7443DCC1A8B7D0E5A09C8EFDF8AFA69F
type: DATUM_TOKEN_DECL
created:
time_stamp: 1713972877
str: Wed, 24 Apr 2024 15:34:37 +0000
data:
version: 2
type: DAP_CHAIN_DATUM_TOKEN_TYPE_DECL
subtype: DAP_CHAIN_DATUM_TOKEN_SUBTYPE_NATIVE
header:
flags: NO_FLAGS
decimals: 18
ticker: ABC
signs_valid: 3
signs_total: 3
signs:
type: sig_dil
pkeyHash: 0x77813A4C341921F581856A40BD3415B0A9B032906ADF486E5421A6D49E0AC9D2
signPkeySize: 1196
signSize: 2096
type: sig_dil
pkeyHash: 0x38171CF9FA100D0ECB14F545E582E107F8482BEFF44E3BA1D781E1BAC5175360
signPkeySize: 1196
signSize: 2096
type: sig_dil
pkeyHash: 0x279B798F32C2610C07047244E1ACB354FF58D43B6D0809C16777988E0446AF7E
signPkeySize: 1196
signSize: 2096
TSD:
- Process the
mempool_proc
command on any root which was participated in datum signing to make datum pass to zerochain (and become event).
Request:
cellframe-node-cli mempool_proc
-net foobar
-chain zerochain
-datum 0xA5BAE1C2B69C87599A43E6AB435A2D2C7443DCC1A8B7D0E5A09C8EFDF8AFA69F
Response:
datum:
hash: 0xA5BAE1C2B69C87599A43E6AB435A2D2C7443DCC1A8B7D0E5A09C8EFDF8AFA69F
type: DATUM_TOKEN_DECL
ts_created:
time_stamp: 1713972877
str: Wed Apr 24 15:34:37 2024
data_size: 10226
verify:
isProcessed: true
notice: Removed datum from mempool.
Here is a command to watch how declared token looks like:
Request:
cellframe-node-cli token info
-net foobar
-name ABC
Response:
=== Datum Token Declaration ===
hash: 0xA5BAE1C2B69C87599A43E6AB435A2D2C7443DCC1A8B7D0E5A09C8EFDF8AFA69F
ticker: ABC
size: 10226
version: 2
type: DECL
subtype: CF20
decimals: 18
auth signs (valid/total) 3/3
total_supply: 1000000
flags: NONE
signatures:
1) 0x77813A4C341921F581856A40BD3415B0A9B032906ADF486E5421A6D49E0AC9D2, sig_dil, 2096 bytes
2) 0x38171CF9FA100D0ECB14F545E582E107F8482BEFF44E3BA1D781E1BAC5175360, sig_dil, 2096 bytes
3) 0x279B798F32C2610C07047244E1ACB354FF58D43B6D0809C16777988E0446AF7E, sig_dil, 2096 bytes
- Token update command is used (in this case it updates information in
total supply
)
Request:
cellframe-node-cli token_update
-net foobar
-chain zerochain
-token ABC
-type CF20
-total_supply 0
-decimals 18
-signs_total 3
-signs_emission 3
-certs foobar.root.pvt.0
Response:
Datum 0x44BF3AC31BA5030DB7E480E0F9037E3B8113A6A71EC1101D26F013CAD358D865 with 256bit token ABC is placed in datum pool
- Sign updated token on the root “1”
Request:
cellframe-node-cli token_update_sign
-net foobar
-chain zerochain
-datum 0x44BF3AC31BA5030DB7E480E0F9037E3B8113A6A71EC1101D26F013CAD358D865
-certs foobar.root.pvt.1
Response:
datum 0xF064FE54A100973F11BE473D56883D76EF7621F7EFEC446620BA70621FA1E921 is replacing the 0x44BF3AC31BA5030DB7E480E0F9037E3B8113A6A71EC1101D26F013CAD358D865 in datum pool
- Sign updated token on the root “2”
Request:
cellframe-node-cli token_update_sign
-net foobar
-chain zerochain
-datum 0xF064FE54A100973F11BE473D56883D76EF7621F7EFEC446620BA70621FA1E921
-certs foobar.root.pvt.2
Response:
datum 0xCE6ED998BDC1CA2D55053C3333395C9F5A7E92B9B6382083536C705ABD77627A is replacing the 0xF064FE54A100973F11BE473D56883D76EF7621F7EFEC446620BA70621FA1E921 in datum pool
This is how token update looks in the mempool:
Example:
hash: 0xCE6ED998BDC1CA2D55053C3333395C9F5A7E92B9B6382083536C705ABD77627A
type: DATUM_TOKEN_DECL
created:
time_stamp: 1713973137
str: Wed, 24 Apr 2024 15:38:57 +0000
data:
version: 2
type: DAP_CHAIN_DATUM_TOKEN_TYPE_UPDATE
subtype: DAP_CHAIN_DATUM_TOKEN_SUBTYPE_NATIVE
header:
flags: NO_FLAGS
decimals: 18
ticker: ABC
signs_valid: 3
signs_total: 3
signs:
type: sig_dil
pkeyHash: 0x77813A4C341921F581856A40BD3415B0A9B032906ADF486E5421A6D49E0AC9D2
signPkeySize: 1196
signSize: 2096
type: sig_dil
pkeyHash: 0x38171CF9FA100D0ECB14F545E582E107F8482BEFF44E3BA1D781E1BAC5175360
signPkeySize: 1196
signSize: 2096
type: sig_dil
pkeyHash: 0x279B798F32C2610C07047244E1ACB354FF58D43B6D0809C16777988E0446AF7E
signPkeySize: 1196
signSize: 2096
TSD:
- Process
mempool_proc
again
Request:
cellframe-node-cli mempool_proc
-net foobar
-chain zerochain
-datum 0xCE6ED998BDC1CA2D55053C3333395C9F5A7E92B9B6382083536C705ABD77627A
Response:
datum:
hash: 0xCE6ED998BDC1CA2D55053C3333395C9F5A7E92B9B6382083536C705ABD77627A
type: DATUM_TOKEN_DECL
ts_created:
time_stamp: 1713973137
str: Wed Apr 24 15:38:57 2024
data_size: 10226
verify:
isProcessed: true
notice: Removed datum from mempool.
Now token info
command displays also an updated datum additionally to token declaration datum:
Request:
cellframe-node-cli token info -net foobar -name ABC
Response:
=== Datum Token Declaration ===
hash: 0xA5BAE1C2B69C87599A43E6AB435A2D2C7443DCC1A8B7D0E5A09C8EFDF8AFA69F
ticker: ABC
size: 10226
version: 2
type: DECL
subtype: CF20
decimals: 18
auth signs (valid/total) 3/3
total_supply: 1000000
flags: NONE
signatures:
1) 0x77813A4C341921F581856A40BD3415B0A9B032906ADF486E5421A6D49E0AC9D2, sig_dil, 2096 bytes
2) 0x38171CF9FA100D0ECB14F545E582E107F8482BEFF44E3BA1D781E1BAC5175360, sig_dil, 2096 bytes
3) 0x279B798F32C2610C07047244E1ACB354FF58D43B6D0809C16777988E0446AF7E, sig_dil, 2096 bytes
=== Datum Token Declaration ===
hash: 0xCE6ED998BDC1CA2D55053C3333395C9F5A7E92B9B6382083536C705ABD77627A
ticker: ABC
size: 10226
version: 2
type: UPDATE
subtype: CF20
decimals: 18
auth signs (valid/total) 3/3
total_supply: 0
flags: NONE
signatures:
1) 0x77813A4C341921F581856A40BD3415B0A9B032906ADF486E5421A6D49E0AC9D2, sig_dil, 2096 bytes
2) 0x38171CF9FA100D0ECB14F545E582E107F8482BEFF44E3BA1D781E1BAC5175360, sig_dil, 2096 bytes
3) 0x279B798F32C2610C07047244E1ACB354FF58D43B6D0809C16777988E0446AF7E, sig_dil, 2096 bytes