这篇文章上次修改于 544 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
1 type id
blak2b(
first_input_cell {
since,
previous_outpoint,
},
first_output_cell_using_the_current_type_script = 0,
)
2 使用 type id 部署一个合约
inputs
ckb cell
outputs
contract cell
- data: contract bin
- lock: deployer
- type:
- code_hash: TYPE_ID_CODE_HASH
- hash_type: type
- args: blak2b(
first_input_cell {
since,
previous_outpoint,
},
first_output_cell_using_the_current_type_script = 0,
)
ckb cell
3 升级合约
inputs
old contract cell
ckb cell
outputs
new contract cell
- data: new contract bin
- lock: deployer
- type: same with old contract cell
ckb cell
4 使用升级后的合约
合约升级后,old contract cell 会被销毁,所以 tx deps 中应该放 new contract cell 的索引。
inputs
some cells
- type
- code_hash: hash(new_contract_cell.type)
- hash_type: type
- args
outputs
some cells
deps
new contract cell
没有评论