变更私钥
此功能用于更新账户密钥。一个账户至少需要指定一个密钥。
方法介绍:
signed_transaction update_account_keys
( const string & name,
const string & owner,
const string & active,
const string & memo,
bool broadcast = false
)
参数:
- name - 需要更新的账户名称
- owner - 新的账户所有者
- active - 有权登陆账户的新活跃用户
- memo - 账户新的备忘密钥
- broadcast - true的状态下在网络上广播交易信息
举例说明:
使用test1账户. get_account test1 - 回应:
{
"id": "1.2.17",
"registrar": "1.2.4",
"name": "test1",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"DCT5owLEAx1PAQX824CYXwSWaNC8chwyiYHL4G9PNTG1At5bsYVtX",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"DCT5owLEAx1PAQX824CYXwSWaNC8chwyiYHL4G9PNTG1At5bsYVtX",
1
]
]
},
"options": {
"memo_key": "DCT5owLEAx1PAQX824CYXwSWaNC8chwyiYHL4G9PNTG1At5bsYVtX",
"voting_account": "1.2.3",
"num_miner": 0,
"votes": [],
"extensions": [],
"allow_subscription": false,
"price_per_subscribe": {
"amount": 0,
"asset_id": "1.3.0"
},
"subscription_period": 0
},
"rights_to_publish": {
"is_publishing_manager": false,
"publishing_rights_received": [],
"publishing_rights_forwarded": []
},
"statistics": "2.5.17",
"top_n_control_flags": 0
}
Cli_wallet(CLI钱包)目前对所有密钥的回应都是一样的
“DCT5owLEAx1PAQX824CYXwSWaNC8chwyiYHL4G9PNTG1At5bsYVtX”。
把活跃密钥变更成另一个密钥:
- 新的密是“DCT6BzfbzF3qrRuSkkvBPnMxgCGirAmCgnFp2TSA6dwizV8R7qvTN”(此公钥的私钥为- 5K2gVYXuG2PP11hJdw2f3vMwQxZKcvHYUwtbAN9TNtxMmDdATyu”)
- 至少需要指定一个密钥
- test1账户中的DCT代币余额不能为零,至少足够支付更换密钥的费用
- test1账户需要导入cli_wallet(CLI钱包)
变更活跃密钥的代码为:" update_account_keys test1 " " DCT6BzfbzF3qrRuSkkvBPnMxgCGirAmCgnFp2TSA6dwizV8R7qvTN " " true "
回应:
{
"ref_block_num": 4205,
"ref_block_prefix": 2276234575,
"expiration": "2019-03-26T14:23:35",
"operations": [[
2,{
"fee": {
"amount": 100000,
"asset_id": "1.3.0"
},
"account": "1.2.17",
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"DCT6BzfbzF3qrRuSkkvBPnMxgCGirAmCgnFp2TSA6dwizV8R7qvTN",
1
]
]
},
"extensions": {}
}
]
],
"extensions": [],
"signatures": [
"204d2170eca0f73681c9bbfa4811b77d513a8e8ee19bf8a4e594a79ab1e9120c652a1d9aa8e6ac970808072083b13aa44ca047cc7ae48f8f2f2ddda6cfca816994"
]
}
现在, get_account test1 会显示:
{
"id": "1.2.17",
"registrar": "1.2.4",
"name": "test1",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"DCT5owLEAx1PAQX824CYXwSWaNC8chwyiYHL4G9PNTG1At5bsYVtX",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"DCT6BzfbzF3qrRuSkkvBPnMxgCGirAmCgnFp2TSA6dwizV8R7qvTN",
1
]
]
},
"options": {
"memo_key": "DCT5owLEAx1PAQX824CYXwSWaNC8chwyiYHL4G9PNTG1At5bsYVtX",
"voting_account": "1.2.3",
"num_miner": 0,
"votes": [],
"extensions": [],
"allow_subscription": false,
"price_per_subscribe": {
"amount": 0,
"asset_id": "1.3.0"
},
"subscription_period": 0
},
"rights_to_publish": {
"is_publishing_manager": false,
"publishing_rights_received": [],
"publishing_rights_forwarded": []
},
"statistics": "2.5.17",
"top_n_control_flags": 0
}
说明:
密钥变更后,用户必须导入新的活跃密钥。否则,用户无法进行交易(所有交易都需要活跃密钥)。
导入新的活跃密钥: import_key test1 5K2gVYXuG2PP11hJdw2f3vMwQxZKcvHYUwtbAN9TNtxMmDdATyu