マルチシグ化

8.マルチシグトランザクションの実行

address3を、address1,address2を連署者とした1of2のマルチシグ化するトランザクションを実行します。

mijin

使用するトランザクションは前項: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のアドレスを検索すると、以下の様に表示されます。

mijin

ブロックチェーンエクスプローラーに関しては以下FAQを参照ください。