見出し画像

ripple-lib を使ってマルチシグアカウントから送金してみよう

みなさんこんにちは。

今日は、javascript ライブラリである ripple-lib を使ってマルチシグな XRP アドレスから XRP を送金してみます。

基本的な XRP 送金の方法や、マルチシグアカウントの作成方法については以下の記事をご覧ください。

ripple-lib を使って XRP を送金してみよう
ripple-lib を使ってマルチシグアカウントを作ってみよう

今回は、アカウント A に対して B, C, D のうち 2 つ以上のサインが必要なようにマルチシグ設定し、A の秘密鍵だけによるサインを無効にし、A から E に対して 1.23 XRP を送金してみます。

今日の記事までマスターすれば、購入した XRP をマルチシグアカウントで保管、いざというときに取引所などに送金して fiat 化するところまでできると思います。

また、プログラムからアカウントを管理したり送金したりする方法を学ぶことで、何かしらのサービスを開発するのにも役立つでしょう。

必要なソフトウェアの準備については、以前の記事「ripple-lib を使って XRP を送金してみよう」をご覧ください。


1. アカウント(アドレスと秘密鍵) A, B, C, D, E を用意する

さっそくやってみましょう。

いきなりメインネットは怖いので、テストネットで送金します。

以下のページで、開発用にテスト用の XRP が入ったアカウントを簡単に作ることができます。

XRP Test Net Faucet

RippleAPI Reference の最初の方にある Boilerplate code に対してコードを追加/変更していきます。

まずはアカウントを定義しましょう。

// Testnet accounts
// DO NOT PUT MAIN NET SECRET
var keypairs = [
	{
		publicKey: "rwjJdKrrASaMkyvDqEvaNRKSsGUQfW4qjs",
		privateKey: "ssqzi5gCLNzumBNKKQPMA7amRRj4K",
	},
	{
		publicKey: "r3Jhh7RBzB6Hk7yQgDfswv1BUmNcfvbk59",
		privateKey: "snpxT2VfFQB7wWQFQ93MYXRUtEqvc",
	},
	{
		publicKey: "r9GbmLUtbNQrigzkPXZpiiBZjpKzhUp2U8",
		privateKey: "ssafg9dKz4baXzwGPJ1SspV8q4mui",
	},
	{
		publicKey: "rfwkJw6srRo44zRYnvxGc8MSCJ4WmwLyUH",
		privateKey: "shUS3UvYVEHPFnSB64Rg54SZx3PW4",
	},
	{
		publicKey: "rHR4Ud6YEhtokwM567u8t1azxGzMFbTBfU",
		privateKey: "sh6i3nV3riNb9RssF3cEcinkEP9uL",
	},
];


2. A をマルチシグ化する

前回の記事「ripple-lib を使ってマルチシグアカウントを作ってみよう」の通りに、A をマルチシグアカウント化します。

$ node payment_trial.js multisig
(出力は省略)
$ node payment_trial.js disable_masterkey
(出力は省略)
$ node payment_trial.js show
connected
----------------------------------------------------
show rwjJdKrrASaMkyvDqEvaNRKSsGUQfW4qjs
----------------------------------------------------
getAccountInfo ok. { sequence: 3,
 xrpBalance: '9999.99992',
 ownerCount: 1,
 previousAffectingTransactionID:
  '4C4C27C8531B50CA621E2DBA7090BF2E5BD6292F8E4BCD5C7972444692DC7EB6',
 previousAffectingTransactionLedgerVersion: 21674853 }
getSettings ok. { disableMasterKey: true,
 signers: { threshold: 2, weights: [ [Object], [Object], [Object] ] } }
signers [ { address: 'rfwkJw6srRo44zRYnvxGc8MSCJ4WmwLyUH', weight: 1 },
 { address: 'r3Jhh7RBzB6Hk7yQgDfswv1BUmNcfvbk59', weight: 1 },
 { address: 'r9GbmLUtbNQrigzkPXZpiiBZjpKzhUp2U8', weight: 1 } ]
(以下省略)

アカウント A がマルチシグアカウントになっていることが確認できました。


3. マルチサインで送金する

マルチサインで送金するコードを書きます。

ここから先は

34,292字

¥ 10,000

この記事が気に入ったらチップで応援してみませんか?