マルチシグ化
8.マルチシグトランザクションの実行
address3を、address1,address2を連署者とした1of2のマルチシグ化するトランザクションを実行します。
使用するトランザクションは前項:7.AggregateBondedサンプルと同じ、AggregateBondedトランザクションになります。
実行
python 08_multisig_transaction.py
出力例:
------------------- signedTransaction ------------------------
{
"SignedTransaction": {
"payload": "<payloadが表示されます>",
"hash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"type": 16961,
"networkType": 96
}
}
------------------- hashLockTransaction ------------------------
{
"SignedTransaction": {
"payload": "<payloadが表示されます>",
"hash": "A32A377939281D456C1F9FCDEF97EC25CAC14CC407A3BB4DE2B3691A708E1045",
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"type": 16712,
"networkType": 96
}
}
------------------- sendTransaction ------------------------
------------------- Success --------------------------------
Success: Transaction
{
"transaction": {
"signature": "<signatureが表示されます>",
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 1,
"network": 96,
"type": 16712,
"maxFee": "0",
"deadline": "127803378000",
"mosaicId": "570AAB28BDA34D9F",
"amount": "0",
"duration": "1000",
"hash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349"
},
"meta": {
"hash": "A32A377939281D456C1F9FCDEF97EC25CAC14CC407A3BB4DE2B3691A708E1045",
"merkleComponentHash": "A32A377939281D456C1F9FCDEF97EC25CAC14CC407A3BB4DE2B3691A708E1045",
"height": "507002"
}
}
Next Command: python ./07_02_aggregate_bonded_transaction_cosign.py address1 430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349 880100000000000043C8371202B63D6C8711FB551F956437E9586369AE75DCF65FF6521FA6440B1B6D03F1AD27B857DA9B00DBFECB1EDB15534E6BAF46A01049B330BF547ABD540AB1E269453CD3FEE641088B752A394A4BA53AD2E01B583533558A2CBD51C02E8F0000000002604142000000000000000050C9ACC11D0000003928E16AEF154097B983795C6F64D7880BBF797D94AF05B78167E27371D421A9E0000000000000007100000000000000B1E269453CD3FEE641088B752A394A4BA53AD2E01B583533558A2CBD51C02E8F0000000001605441602CD997B1F156815FF4B6E8D6060456D1A9627BE1B58DF311000100000000008E5792A6E142885200000000000000000054455354204D494A494E2064756D6D790000000000000068000000000000005A4107FC227AC66BF2626654EF90F6C63FDB241DCC000570F45CBBA466BF702600000000016055410101020000000000604E8AB826559C805E060AD671802927773571767E6559AD6004FB97236610D6CFEF2DA13ABE6D0BE0289792D5EB39D1
Next Command: python ./07_02_aggregate_bonded_transaction_cosign.py address2 430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349 880100000000000043C8371202B63D6C8711FB551F956437E9586369AE75DCF65FF6521FA6440B1B6D03F1AD27B857DA9B00DBFECB1EDB15534E6BAF46A01049B330BF547ABD540AB1E269453CD3FEE641088B752A394A4BA53AD2E01B583533558A2CBD51C02E8F0000000002604142000000000000000050C9ACC11D0000003928E16AEF154097B983795C6F64D7880BBF797D94AF05B78167E27371D421A9E0000000000000007100000000000000B1E269453CD3FEE641088B752A394A4BA53AD2E01B583533558A2CBD51C02E8F0000000001605441602CD997B1F156815FF4B6E8D6060456D1A9627BE1B58DF311000100000000008E5792A6E142885200000000000000000054455354204D494A494E2064756D6D790000000000000068000000000000005A4107FC227AC66BF2626654EF90F6C63FDB241DCC000570F45CBBA466BF702600000000016055410101020000000000604E8AB826559C805E060AD671802927773571767E6559AD6004FB97236610D6CFEF2DA13ABE6D0BE0289792D5EB39D1
Next Command: python ./07_02_aggregate_bonded_transaction_cosign.py address3 430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349 880100000000000043C8371202B63D6C8711FB551F956437E9586369AE75DCF65FF6521FA6440B1B6D03F1AD27B857DA9B00DBFECB1EDB15534E6BAF46A01049B330BF547ABD540AB1E269453CD3FEE641088B752A394A4BA53AD2E01B583533558A2CBD51C02E8F0000000002604142000000000000000050C9ACC11D0000003928E16AEF154097B983795C6F64D7880BBF797D94AF05B78167E27371D421A9E0000000000000007100000000000000B1E269453CD3FEE641088B752A394A4BA53AD2E01B583533558A2CBD51C02E8F0000000001605441602CD997B1F156815FF4B6E8D6060456D1A9627BE1B58DF311000100000000008E5792A6E142885200000000000000000054455354204D494A494E2064756D6D790000000000000068000000000000005A4107FC227AC66BF2626654EF90F6C63FDB241DCC000570F45CBBA466BF702600000000016055410101020000000000604E8AB826559C805E060AD671802927773571767E6559AD6004FB97236610D6CFEF2DA13ABE6D0BE0289792D5EB39D1
最期に Next Command: が3つ表示されます。
上記でworkaddressが発行したTxhashに対して、address1,address2,address3がそれぞれ署名を行います。
署名は
- address1
- address2
- address3
3つのアドレスが署名を期限内に行う必要があります。
本サンプルでは期限を2時間としています。
署名を実行する際に、署名対象のTxhashを指定します。
上記出力例ではTxhashとして `` が表示されていますが、実行は実際のTxhashを指定して下さい。
address1の署名
実行
python 07_02_aggregate_bonded_transaction_cosign.py address1 <Txhash> <Payload>
出力例:
{
"meta": {
"height": "0",
"hash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"merkleComponentHash": "0000000000000000000000000000000000000000000000000000000000000000",
"index": 0
},
"transaction": {
"size": 392,
"signature": "<signatureが表示されます>",
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 2,
"network": 96,
"type": 16961,
"maxFee": "0",
"deadline": "127803378000",
"transactionsHash": "3928E16AEF154097B983795C6F64D7880BBF797D94AF05B78167E27371D421A9",
"cosignatures": [],
"transactions": [
{
"meta": {
"height": "0",
"aggregateHash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"aggregateId": "649E4456E1FE0179BF2E44C3",
"index": 0
},
"transaction": {
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 1,
"network": 96,
"type": 16724,
"recipientAddress": "602CD997B1F156815FF4B6E8D6060456D1A9627BE1B58DF3",
"message": "0054455354204D494A494E2064756D6D79",
"mosaics": [
{
"id": "078ABAE03B6EF461",
"amount": "0"
}
]
},
"id": "649E4456E1FE0179BF2E44C4"
},
{
"meta": {
"height": "0",
"aggregateHash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"aggregateId": "649E4456E1FE0179BF2E44C3",
"index": 1
},
"transaction": {
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 1,
"network": 96,
"type": 16725,
"minRemovalDelta": 1,
"minApprovalDelta": 1,
"addressAdditions": [
"604E8AB826559C805E060AD671802927773571767E6559AD",
"6004FB97236610D6CFEF2DA13ABE6D0BE0289792D5EB39D1"
],
"addressDeletions": []
},
"id": "649E4456E1FE0179BF2E44C5"
}
]
},
"id": "649E4456E1FE0179BF2E44C3"
}
address2の署名
実行
python 07_02_aggregate_bonded_transaction_cosign.py address2 <Txhash> <Payload>
出力例:
{
"meta": {
"height": "0",
"hash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"merkleComponentHash": "0000000000000000000000000000000000000000000000000000000000000000",
"index": 0
},
"transaction": {
"size": 392,
"signature": "<signatureが表示されます>",
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 2,
"network": 96,
"type": 16961,
"maxFee": "0",
"deadline": "127803378000",
"transactionsHash": "3928E16AEF154097B983795C6F64D7880BBF797D94AF05B78167E27371D421A9",
"cosignatures": [
{
"version": "0",
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"signature": "<signatureが表示されます>"
}
],
"transactions": [
{
"meta": {
"height": "0",
"aggregateHash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"aggregateId": "649E4456E1FE0179BF2E44C3",
"index": 0
},
"transaction": {
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 1,
"network": 96,
"type": 16724,
"recipientAddress": "602CD997B1F156815FF4B6E8D6060456D1A9627BE1B58DF3",
"message": "0054455354204D494A494E2064756D6D79",
"mosaics": [
{
"id": "078ABAE03B6EF461",
"amount": "0"
}
]
},
"id": "649E4456E1FE0179BF2E44C4"
},
{
"meta": {
"height": "0",
"aggregateHash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"aggregateId": "649E4456E1FE0179BF2E44C3",
"index": 1
},
"transaction": {
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 1,
"network": 96,
"type": 16725,
"minRemovalDelta": 1,
"minApprovalDelta": 1,
"addressAdditions": [
"604E8AB826559C805E060AD671802927773571767E6559AD",
"6004FB97236610D6CFEF2DA13ABE6D0BE0289792D5EB39D1"
],
"addressDeletions": []
},
"id": "649E4456E1FE0179BF2E44C5"
}
]
},
"id": "649E4456E1FE0179BF2E44C3"
}
address3の署名
実行
python 07_02_aggregate_bonded_transaction_cosign.py address3 <Txhash> <Payload>
出力例:
{
"meta": {
"height": "0",
"hash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"merkleComponentHash": "0000000000000000000000000000000000000000000000000000000000000000",
"index": 0
},
"transaction": {
"size": 392,
"signature": "<signatureが表示されます>",
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 2,
"network": 96,
"type": 16961,
"maxFee": "0",
"deadline": "127803378000",
"transactionsHash": "3928E16AEF154097B983795C6F64D7880BBF797D94AF05B78167E27371D421A9",
"cosignatures": [
{
"version": "0",
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"signature": "<signatureが表示されます>"
}
],
"transactions": [
{
"meta": {
"height": "0",
"aggregateHash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"aggregateId": "649E4456E1FE0179BF2E44C3",
"index": 0
},
"transaction": {
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 1,
"network": 96,
"type": 16724,
"recipientAddress": "602CD997B1F156815FF4B6E8D6060456D1A9627BE1B58DF3",
"message": "0054455354204D494A494E2064756D6D79",
"mosaics": [
{
"id": "078ABAE03B6EF461",
"amount": "0"
}
]
},
"id": "649E4456E1FE0179BF2E44C4"
},
{
"meta": {
"height": "0",
"aggregateHash": "430882470CE539351DB9385A487DA901F32463A08E8842D060F1FF7393F36349",
"aggregateId": "649E4456E1FE0179BF2E44C3",
"index": 1
},
"transaction": {
"signerPublicKey": "<送信元workaddressのpublicKeyが表示されます>",
"version": 1,
"network": 96,
"type": 16725,
"minRemovalDelta": 1,
"minApprovalDelta": 1,
"addressAdditions": [
"604E8AB826559C805E060AD671802927773571767E6559AD",
"6004FB97236610D6CFEF2DA13ABE6D0BE0289792D5EB39D1"
],
"addressDeletions": []
},
"id": "649E4456E1FE0179BF2E44C5"
}
]
},
"id": "649E4456E1FE0179BF2E44C3"
}
マルチシグ化アカウント情報の取得
上記でマルチシグ化を実施した、address3のアカウント情報を確認します。
- address3
実行
python account_info.py address3
出力例:
{
"AccountInfo": {
"url": "https://xxxxxxxx.mijin.io",
"network": 96,
"account": "address3",
"address": "MAWNTF5R6FLICX7UW3UNMBQEK3I2SYT34G2Y34Y",
"mosaics": [
{
"mosaic": "078ABAE03B6EF461",
"amount": "3",
"namespaceAlias": "techbureau"
}
],
"linkedKeys": {
"linked": null,
"node": null,
"vrf": null,
"voting": null
},
"meta": [],
"multisig": [
'<address1のアドレスが表示されます>',
'<address2のアドレスが表示されます>'
]
}
}
multisig
の値が追加され、連署者であるaddress1,address2が表示されます。
参考)ブロックチェーンエクスプローラーでaddress3のアドレスを検索すると、以下の様に表示されます。
ブロックチェーンエクスプローラーに関しては以下FAQを参照ください。