Token Contract
操作實例
dmc_client 對象是 dmc.js 的一個實例,它提供了一系列的方法,用於與區塊鏈進行交互。
以下代碼中的 dmc_client 均由下面的代碼創建,不再贅述。
1 | var DMC = require('dmc.js'); |
transfer
轉賬 —— 只有發行方為 datamall 的通證可以調用 (目前只有 DMC@datamall
)
參數
name | type | description |
---|---|---|
from | string | 通證轉出方 |
to | string | 通證轉入方 |
quantity | string | 通證數量 |
memo | string | 附言 |
示例
1 | let r = dmc_client.transact_sync({ |
extransfer
轉賬
參數
name | type | description |
---|---|---|
from | string | 通證轉出方 |
to | string | 通證轉入方 |
quantity | string | 通證數量 |
memo | string | 附言 |
示例
1 | let r = dmc_client.transact_sync({ |
exissue
增發通證
參數
name | type | description |
---|---|---|
to | string | 通證轉入方 |
quantity | string | 通證數量 |
memo | string | 附言 |
示例
1 | let r = dmc_client.transact_sync({ |
exretire
銷燬賬戶持有的流通通證
參數
name | type | description |
---|---|---|
from | string | 通證轉出方 |
value | string | 通證數量 |
memo | string | 附言 |
示例
1 | let r = dmc_client.transact_sync({ |
exlock
通證鎖倉
參數
name | type | description |
---|---|---|
from | string | 通證持有者 |
quantity | string | 通證數量 |
expiration | date-time | 鎖倉期 |
memo | string | 附言 |
示例
1 | let r = dmc_client.transact_sync({ |
exunlock
解鎖
參數
name | type | description |
---|---|---|
owner | string | 通證持有者 |
quantity | string | 解鎖數量 |
expiration | date-time | 待解鎖通證鎖倉期 |
memo | string | 附言 |
示例
1 | let r = dmc_client.transact_sync({ |
bill
掛單 PST
參數
name | type | description |
---|---|---|
owner | string | 掛單方 |
asset | string | 掛單數量 |
price | double | 掛單價格 |
expire_on | date-time | 最小掛單週期 |
deposit_ratio | uint64_t | 抵押比例 |
memo | string | 附言 |
示例
1 | let r = dmc_client.transact_sync({ |
unbill
撤銷掛單
參數
name | type | description |
---|---|---|
owner | string | 掛單方 |
bill_id | uint64_t | 掛單ID |
memo | string | 附言 |
示例
1 | let r = dmc_client.transact_sync({ |
order
掛單成交
參數
name | type | description |
---|---|---|
owner | string | 執行交易者的賬戶名 |
bill_id | uint64_t | 掛單ID |
benchmark_price | uint64_t | 提交訂單時的基準價格, 提交時需要將價格轉換為整數,即基準價格 * 10000 |
price_range | PriceRangeType | 1:基於基準價正負浮動 20% 2:基於基準價正負浮動 30% 3:價格不限 |
epoch | uint64_t | 服務週期(周), 目前最小為 24 |
asset | extended_asset | PST 購買量 |
reserve | extended_asset | 保證金 |
memo | string | 附言 |
示例
1 | let r = dmc_client.transact_sync({ |
increase
增加準備金
參數
name | type | description |
---|---|---|
owner | string | 執行交易者的賬戶名 |
asset | string | 增加的準備金數量 |
miner | string | 礦工 |
示例
1 | let r = dmc_client.transact_sync({ |
redemption
贖回準備金
參數
name | type | description |
---|---|---|
owner | string | 執行交易者的賬戶名 |
rate | double | 贖回比例, $ 0<rate\le1$ |
miner | string | 礦工 |
示例
1 | let r = dmc_client.transact_sync({ |
mint
鑄造 PST
參數
name | type | description |
---|---|---|
owner | string | 執行交易者的賬戶名 |
asset | string | 鑄造的 PST 數量 |
示例
1 | let r = dmc_client.transact_sync({ |
setmakerrate
礦工最低質押比例
參數
name | type | description |
---|---|---|
owner | string | 執行交易者的賬戶名 |
rate | double | 礦工最低質押比例 $0.2 \le rate \le 1$ |
示例
1 | let r = dmc_client.transact_sync({ |
setmakerbstr
設置礦工自定義質押率
參數
name | type | description |
---|---|---|
owner | string | 執行交易者的賬戶名 |
self_benchmark_stake_rate | uint64_t | 礦工自定義質押率, 由於兩位精度限制,所以需要乘以100 |
示例
1 | let r = dmc_client.transact_sync({ |
addmerkle
礦工和用戶提供一致的默克爾樹根信息
參數
name | type | description |
---|---|---|
sender | string | 執行交易者的賬戶名 |
order_id | uint64_t | 訂單 ID |
merkle_root | checksum256 | 默克爾樹根 |
data_block_count | uint64_t | 數據塊數量 |
示例
1 | let r = dmc_client.transact_sync({ |
reqchallenge
用戶請求挑戰
參數
name | type | description |
---|---|---|
sender | string | 執行交易者的賬戶名 |
order_id | uint64_t | 訂單 ID |
data_id | uint64_t | 數據塊 ID |
hash_data | checksum256 | 數據塊哈希 |
nonce | std::string | 隨機數 |
示例
1 | let r = dmc_client.transact_sync({ |
anschallenge
礦工回答挑戰
參數
name | type | description |
---|---|---|
sender | string | 執行交易者的賬戶名 |
order_id | uint64_t | 訂單 ID |
reply_hash | checksum256 | 回覆哈希 |
示例
1 | let r = dmc_client.transact_sync({ |
arbitration
礦工仲裁
參數
name | type | description |
---|---|---|
sender | string | 執行交易者的賬戶名 |
order_id | uint64_t | 訂單 ID |
data | std::vector\<uint8_t> | 數據 |
cut_merkle | std::vector\<checksum256> | 默克爾樹 |
示例
1 | let r = dmc_client.transact_sync({ |
paychallenge
挑戰超時賠付
參數
name | type | description |
---|---|---|
sender | string | 執行交易者的賬戶名 |
order_id | uint64_t | 訂單 ID |
示例
1 | let r = dmc_client.transact_sync({ |
claimorder
領取交付獎勵
參數
name | type | description |
---|---|---|
payer | string | 執行交易者的賬戶名 |
order_id | uint64_t | 訂單 ID |
示例
1 | let r = dmc_client.transact_sync({ |
claimdeposit
取回用戶押金
參數
name | type | description |
---|---|---|
payer | string | 賬戶名 |
order_id | uint64_t | 訂單 ID |
示例
1 | let r = dmc_client.transact_sync({ |
addordasset
用戶增加訂單預存額
參數
name | type | description |
---|---|---|
sender | string | 賬戶名 |
order_id | uint64_t | 訂單 ID |
quantity | extended_asset | 增加數量 |
示例
1 | let r = dmc_client.transact_sync({ |
subordasset
用戶減少訂單預存額
參數
name | type | description |
---|---|---|
sender | string | 賬戶名 |
order_id | uint64_t | 訂單 ID |
quantity | extended_asset | 減少數量 |
示例
1 | let r = dmc_client.transact_sync({ |
updateorder
更新訂單狀態
參數
name | type | description |
---|---|---|
payer | string | 賬戶名 |
order_id | uint64_t | 訂單 ID |
示例
1 | let r = dmc_client.transact_sync({ |
cancelorder
取消訂單
參數
name | type | description |
---|---|---|
sender | string | 賬戶名 |
order_id | uint64_t | 訂單 ID |
示例
1 | let r = dmc_client.transact_sync({ |