3.2.1. mijinアカウント作成

本章では、mijinを操作するために、必ず必要となるアカウント操作について説明します。
操作はLinux(Ubuntu20.04)にて行いますので、最低限のLinux操作を理解している前提になります。

注釈

mijin Catapult(v.2) を操作するにはアカウントを作成し、そのアカウントを使ってトランザクションを送信します。 また、デプロイ時の指定で手数料ありモードの場合は、アカウントに基軸通貨(cat.currency)の残高を持つ必要があることに注意してください。

作成日:

2022/8/1

更新日:

2023/1/17

3.2.1.1. nodejs及びyarnをインストール

mijin-catapult-tools を使用するためnodejsをインストールします。 nodejsは NodeSource を利用してインストールします。

$ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - && sudo apt-get install -y nodejs
$ node --version
$ sudo npm install -g yarn

3.2.1.2. mijin-catapult-toolsのインストール

yarnを使用し、mijin-catapult-toolsをインストールします。

$ yarn global add  @tech-bureau/mijin-catapult-tools
$ echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

mijin-catapult-toolsが使えることを確認します。

$ mijin-catapult-tools

3.2.1.3. アカウントの作成

まずは、テストで使用するアカウントを作成してみましょう。 ここでは、 test1Account test2Account を使用するため mijin.jsonに保存します。

3.2.1.3.1. アカウント作成

$ mijin-catapult-tools account generate -u http://localhost:3000 -w mijin.json -s
2023-01-17T06:34:59.412Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:34:59.413Z [info] : Network: 96
2023-01-17T06:34:59.413Z [info] : Mosaic Currency Id: 268CF9B2D33FBD22
2023-01-17T06:34:59.413Z [info] : Mosaic Harvest Id: 4C39D26C386E3182
2023-01-17T06:34:59.413Z [info] : Start Account Generate...
2023-01-17T06:34:59.475Z [info] : Write Config File: mijin.json
2023-01-17T06:34:59.476Z [info] : New Account: {
  "url": "http://localhost:3000",
  "workAccount": {
    "publicKey": "425F06A8870381A00BD83E2D1083BB690F9FCB815F0919DFFA1A53A68E144D06",
    "privateKey": "9E9C660164AB344030DF5E77539952D9F5B380311C978369BA08923F577D8DAB",
    "address": "MC5VTRZO7IGJUG2VPQXBD4GDO4A74YLFUCVZZGI"
  },
  "balanceAccount": {
    "publicKey": "",
    "privateKey": "",
    "address": ""
  },
  "mainAccount": {
    "publicKey": "F2985009341A526B17E954EB6EA3EC77E1A0B33AE31EB29F86A69D9BB283AF67",
    "privateKey": "FF9A552ED35D930378F1E6B349A677771F19A06BCA0C4D5DCA621F354F5C6956",
    "address": "MCV66SABR6MBWT2I56YI3ULCPYWREJFX5DHHGDQ"
  },
  "keylink": {
    "vrf": {
      "publicKey": "C074A57A0EDF633414DDD764C6771926E91596481E0C2CAD4D9C3EFAAA432BCE",
      "privateKey": "C07D9A63B8DD8B0E639AAAE6059D7FA6C554082677926B7CACF0514E3940692C",
      "address": "MBLYBGODVGLT3HED6EXAQAXJE4CHHVRWGIAS45Y"
    },
    "voting": {
      "publicKey": "F6571CBC420A4EBA09E027AA53E5DD9486642911CDC11E0D3A6D1B2E4BC228D1",
      "privateKey": "FD5744779348F77F6EA6288232D0C8944E2F3C9E24D2E0FB1E93A8C4F9DD9BA5",
      "address": "MD2M6SDIE64O6ZWF2IJ7R4R5RDKOT2FNJDUIYOQ"
    }
  },
  "test1Account": {
    "publicKey": "CB51613497A40D9A256B17932579BC64D5037A04B29737B944965C1ADADD6E04",
    "privateKey": "8D5969EF1796F5F90256C92B5017396E40786ED87995169D4E26C9E5E01D7F8C",
    "address": "MAS36UGDCOGG6GYCBDPX3ROISABSNPZ6JQXMJSA"
  },
  "test2Account": {
    "publicKey": "5CC14799D5B2643914C8E574C8D073A7EE9AE2A405F1339A53612B566498AB1D",
    "privateKey": "FDE625C1D53AF04533FEB06A3556679FC02C4C6246952D3A534EB3E19CF83C56",
    "address": "MC5AH4UGBPPHNCMPTVNSY6LRDPIMEDODS2O373A"
  }
}
この時点でtest1Account、test2Accountを確認しても、存在しないことになっています。
ブロックチェーン上で、このアドレスのやり取りがないため、存在を確認できないからです。
$ catapult@catapult:~$ mijin-catapult-tools account info -r mijin.json -t test1
2023-01-17T06:36:26.600Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:36:26.601Z [info] : Network: 96
2023-01-17T06:36:26.601Z [info] : Mosaic Currency Id: 268CF9B2D33FBD22
2023-01-17T06:36:26.601Z [info] : Mosaic Harvest Id: 4C39D26C386E3182
2023-01-17T06:36:26.601Z [info] : Start Account Info
2023-01-17T06:36:26.620Z [error] : Address Not Found
$ mijin-catapult-tools account info -r mijin.json -t test2
2023-01-17T06:36:43.387Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:36:43.387Z [info] : Network: 96
2023-01-17T06:36:43.387Z [info] : Mosaic Currency Id: 268CF9B2D33FBD22
2023-01-17T06:36:43.387Z [info] : Mosaic Harvest Id: 4C39D26C386E3182
2023-01-17T06:36:43.387Z [info] : Start Account Info
2023-01-17T06:36:43.405Z [error] : Address Not Found

3.2.1.3.2. 手数料について

手数料とは、以下の項目で発行するトランザクションによって手数料が発生し、基軸通貨(cat.currency)にて支払う必要があります。

  • トランザクション手数料

  • Mosaicレンタル手数料

  • Namespaceレンタル手数料

  • ロック保証金

マーケットプレイスで提供する mijin では手数料モードは標準で なし に設定されています。
手数料なしでは、アカウントに基軸通貨の残高を持つ必要がありませんので特に意識することはありませんが、sdkなどで手数料設定を都度 0 を設定する必要があります。
手数料ありでmijinを作成した場合は、(番外)手数料ありモード時の、基軸通貨の移動方法 の項目を参照し、 test1Account のアカウントに基軸通貨を送信してください。

3.2.1.4. Mosaicを作成し転送

まずは基本となるMosaicを作成し、転送してみましょう。

3.2.1.4.1. Mosaicの作成

test1アカウントをオーナーとした 1つの発行数のMosaic(Token) を発行します。

$ mijin-catapult-tools transaction mosaic create -r mijin.json -o test1 -s 1 -d 0
2023-01-17T06:42:51.942Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:42:51.942Z [info] : Network: 96
2023-01-17T06:42:51.942Z [info] : Create Mosaic...
2023-01-17T06:42:51.955Z [info] : Mosaic Owener Account: MAS36UGDCOGG6GYCBDPX3ROISABSNPZ6JQXMJSA
2023-01-17T06:42:51.955Z [info] : MosaicId: 3D86C9FE5D52DE6F
2023-01-17T06:42:51.955Z [info] : Mosaic Flags: supplymutable:true, transferable:true, restrictable:true, revokable:false
2023-01-17T06:42:51.955Z [info] : Mosaic Supply: divisibility:0, supply:1
2023-01-17T06:42:51.964Z [info] : Transaction Fee: 0
2023-01-17T06:42:51.964Z [info] : Mosaic Rental Fee: 0
2023-01-17T06:42:51.964Z [info] : Start Aggregate Transaction...
2023-01-17T06:43:00.967Z [info] : End Aggregate Transaction
2023-01-17T06:43:00.967Z [info] : http://localhost:3000/transactionStatus/39BBE7E083460C3B85EB7D5FA2FB486F9786CA3FF1E0F976214F5753E527383A
2023-01-17T06:43:00.967Z [info] : http://localhost:3000/transactions/confirmed/39BBE7E083460C3B85EB7D5FA2FB486F9786CA3FF1E0F976214F5753E527383A

Aアカウントの情報を確認すると、MosaicId 3D86C9FE5D52DE6F を1だけ持っていることが確認できます。

$ mijin-catapult-tools account info -r mijin.json -t test1
2023-01-17T06:43:43.349Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:43:43.350Z [info] : Network: 96
2023-01-17T06:43:43.350Z [info] : Mosaic Currency Id: 268CF9B2D33FBD22
2023-01-17T06:43:43.350Z [info] : Mosaic Harvest Id: 4C39D26C386E3182
2023-01-17T06:43:43.350Z [info] : Start Account Info
2023-01-17T06:43:43.365Z [info] : test1 Account: {
  "publicKey": "CB51613497A40D9A256B17932579BC64D5037A04B29737B944965C1ADADD6E04",
  "address": "MAS36UGDCOGG6GYCBDPX3ROISABSNPZ6JQXMJSA",
  "mosaics": [
    {
      "id": "3D86C9FE5D52DE6F",
      "amount": "1",
      "currency": false,
      "harvest": false
    }
  ],
  "keylink": {
    "vrf": {
      "publicKey": ""
    },
    "voting": {
      "publicKey": "",
      "startEpoch": "",
      "endEpoch": ""
    }
  }
}

3.2.1.4.2. Mosaicを転送する

先程作成したMosaic 3D86C9FE5D52DE6Ftest1 から test2 に転送します。

$ mijin-catapult-tools transaction transfer -r mijin.json -f test1 -d test2 -m 3D86C9FE5D52DE6F -a 1
2023-01-17T06:44:46.983Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:44:46.984Z [info] : Network: 96
2023-01-17T06:44:46.984Z [info] : Start Transfer Account...
2023-01-17T06:44:46.996Z [info] : From Account Address: MAS36UGDCOGG6GYCBDPX3ROISABSNPZ6JQXMJSA
2023-01-17T06:44:46.996Z [info] : Dest Account Address: MC5AH4UGBPPHNCMPTVNSY6LRDPIMEDODS2O373A
2023-01-17T06:44:47.005Z [info] : Start Transfer Transaction...
2023-01-17T06:44:52.197Z [info] : End Transfer Transaction
2023-01-17T06:44:52.197Z [info] : http://localhost:3000/transactionStatus/454DFDC48F00852A3DE355D7D2AD4B581D718D999BA177E1BB392AECD1656C6A
2023-01-17T06:44:52.197Z [info] : http://localhost:3000/transactions/confirmed/454DFDC48F00852A3DE355D7D2AD4B581D718D999BA177E1BB392AECD1656C6A
test1アカウント の状態を確認します。
Mosaic 3D86C9FE5D52DE6F を持っていないことを確認できます。
$ mijin-catapult-tools account info -r mijin.json -t test1
2023-01-17T06:45:51.931Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:45:51.931Z [info] : Network: 96
2023-01-17T06:45:51.931Z [info] : Mosaic Currency Id: 268CF9B2D33FBD22
2023-01-17T06:45:51.931Z [info] : Mosaic Harvest Id: 4C39D26C386E3182
2023-01-17T06:45:51.931Z [info] : Start Account Info
2023-01-17T06:45:51.946Z [info] : test1 Account: {
  "publicKey": "CB51613497A40D9A256B17932579BC64D5037A04B29737B944965C1ADADD6E04",
  "address": "MAS36UGDCOGG6GYCBDPX3ROISABSNPZ6JQXMJSA",
  "mosaics": [],
  "keylink": {
    "vrf": {
      "publicKey": ""
    },
    "voting": {
      "publicKey": "",
      "startEpoch": "",
      "endEpoch": ""
    }
  }
}
続いて、 test2アカウント の状態を確認します。
Mosaic 3D86C9FE5D52DE6F を所有していることが確認できます。
$ mijin-catapult-tools account info -r mijin.json -t test2
2023-01-17T06:46:41.737Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:46:41.738Z [info] : Network: 96
2023-01-17T06:46:41.738Z [info] : Mosaic Currency Id: 268CF9B2D33FBD22
2023-01-17T06:46:41.738Z [info] : Mosaic Harvest Id: 4C39D26C386E3182
2023-01-17T06:46:41.738Z [info] : Start Account Info
2023-01-17T06:46:41.754Z [info] : test1 Account: {
  "publicKey": "0000000000000000000000000000000000000000000000000000000000000000",
  "address": "MC5AH4UGBPPHNCMPTVNSY6LRDPIMEDODS2O373A",
  "mosaics": [
    {
      "id": "3D86C9FE5D52DE6F",
      "amount": "1",
      "currency": false,
      "harvest": false
    }
  ],
  "keylink": {
    "vrf": {
      "publicKey": ""
    },
    "voting": {
      "publicKey": "",
      "startEpoch": "",
      "endEpoch": ""
    }
  }
}

3.2.1.5. (番外)手数料ありモード時の、基軸通貨の移動方法

手数料ありモードでmijinを作成した場合、トランザクション送信などに全て基軸通貨から手数料が取られるようになります。
そのため、アカウント作成時に基軸通貨の残高を送信する手順を説明します。

3.2.1.5.1. 基軸通貨の保持アカウント登録

注釈

AWS Marketplaceの | mijin | を使用した場合、AWS Cloudformation Stack内にあるOutoutsタブを選択します。
Key「mijinLBEndpint」又は「mijinbEndpoint」のURLを控えてください。
次に、Key「HarvestAddress」のValueのURLをクリックしてください。
apiの中にある一番はじめのVauleにあるprivate_keyの値を控えてください。(ここでは055Eで始まる値)

mijin-catapult-cliにて上記のprivate_keyをimportします。 すでにmijin.jsonファイルがある場合は、balanceAccountのみ追記することができます。

$ mijin-catapult-tools account generate -r mijin.json -w mijin.json -s -p 90EEBCB77A767F8F5CCCE9D0F89A60CB2D7FCD5FD8F469E2F8BDFC0CDD8B8A2F
2023-01-17T06:55:52.167Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:55:52.167Z [info] : Network: 96
2023-01-17T06:55:52.167Z [info] : Mosaic Currency Id: 268CF9B2D33FBD22
2023-01-17T06:55:52.167Z [info] : Mosaic Harvest Id: 4C39D26C386E3182
2023-01-17T06:55:52.167Z [info] : Start Account Generate...
2023-01-17T06:55:52.229Z [info] : Write Config File: mijin.json
2023-01-17T06:55:52.233Z [info] : New Account: {
  "url": "http://localhost:3000",
  "workAccount": {
    "publicKey": "425F06A8870381A00BD83E2D1083BB690F9FCB815F0919DFFA1A53A68E144D06",
    "privateKey": "9E9C660164AB344030DF5E77539952D9F5B380311C978369BA08923F577D8DAB",
    "address": "MC5VTRZO7IGJUG2VPQXBD4GDO4A74YLFUCVZZGI"
  },
  "balanceAccount": {
    "publicKey": "4FAAC9BF9881893CB31BC2065E8A8D0B12364423E2A08DAF4F77E1FEF5D5B2E8",
    "privateKey": "90EEBCB77A767F8F5CCCE9D0F89A60CB2D7FCD5FD8F469E2F8BDFC0CDD8B8A2F",
    "address": "MCPYNELDE5QS63QBRZ2L7OLNZ63YPQJSOCEWXQI"
  },
  "mainAccount": {
    "publicKey": "F2985009341A526B17E954EB6EA3EC77E1A0B33AE31EB29F86A69D9BB283AF67",
    "privateKey": "FF9A552ED35D930378F1E6B349A677771F19A06BCA0C4D5DCA621F354F5C6956",
    "address": "MCV66SABR6MBWT2I56YI3ULCPYWREJFX5DHHGDQ"
  },
  "keylink": {
    "vrf": {
      "publicKey": "C074A57A0EDF633414DDD764C6771926E91596481E0C2CAD4D9C3EFAAA432BCE",
      "privateKey": "9E9C660164AB344030DF5E77539952D9F5B380311C978369BA08923F577D8DAB",
      "address": "MBLYBGODVGLT3HED6EXAQAXJE4CHHVRWGIAS45Y"
    },
    "voting": {
      "publicKey": "F6571CBC420A4EBA09E027AA53E5DD9486642911CDC11E0D3A6D1B2E4BC228D1",
      "privateKey": "FD5744779348F77F6EA6288232D0C8944E2F3C9E24D2E0FB1E93A8C4F9DD9BA5",
      "address": "MD2M6SDIE64O6ZWF2IJ7R4R5RDKOT2FNJDUIYOQ"
    }
  },
  "test1Account": {
    "publicKey": "CB51613497A40D9A256B17932579BC64D5037A04B29737B944965C1ADADD6E04",
    "privateKey": "8D5969EF1796F5F90256C92B5017396E40786ED87995169D4E26C9E5E01D7F8C",
    "address": "MAS36UGDCOGG6GYCBDPX3ROISABSNPZ6JQXMJSA"
  },
  "test2Account": {
    "publicKey": "5CC14799D5B2643914C8E574C8D073A7EE9AE2A405F1339A53612B566498AB1D",
    "privateKey": "FDE625C1D53AF04533FEB06A3556679FC02C4C6246952D3A534EB3E19CF83C56",
    "address": "MC5AH4UGBPPHNCMPTVNSY6LRDPIMEDODS2O373A"
  }
}
これで balanceAccount にインポートすることができました。
アカウントの情報を確認します。
このアカウントでは、初期時2つのMosaicを持っています。
Balance Informationの 268CF9B2D33FBD22 が 基軸通貨(cat.currency)となり、 4C39D26C386E3182 はHarvest有効用のMosaicです。

警告

このIDはmijinを作成毎に違う値になり、基軸通貨は "currency": true と表示されたIDとなります。

$ mijin-catapult-tools account info -r mijin.json -t balance
2023-01-17T06:56:51.299Z [info] : mijin URL: http://localhost:3000
2023-01-17T06:56:51.299Z [info] : Network: 96
2023-01-17T06:56:51.299Z [info] : Mosaic Currency Id: 268CF9B2D33FBD22
2023-01-17T06:56:51.299Z [info] : Mosaic Harvest Id: 4C39D26C386E3182
2023-01-17T06:56:51.299Z [info] : Start Account Info
2023-01-17T06:56:51.315Z [info] : balance Account: {
  "publicKey": "4FAAC9BF9881893CB31BC2065E8A8D0B12364423E2A08DAF4F77E1FEF5D5B2E8",
  "address": "MCPYNELDE5QS63QBRZ2L7OLNZ63YPQJSOCEWXQI",
  "mosaics": [
    {
      "id": "268CF9B2D33FBD22",
      "amount": "8998977498000000",
      "currency": true,
      "harvest": false
    },
    {
      "id": "4C39D26C386E3182",
      "amount": "15000000",
      "currency": false,
      "harvest": true
    }
  ],
  "keylink": {
    "vrf": {
      "publicKey": "2A88BA2689D584B03A3D4B829347F0A8B63AF55A8E9F176F1D2327F9E87E22D8"
    },
    "voting": {
      "publicKey": "22BB9DCA05D483E4D4DDE764E8742E741ADA676F461D5F3E6663840C5290320F",
      "startEpoch": 1,
      "endEpoch": 26280
    }
  }
}