Counterpartyd create_dividend APIを使って配当する(XCPで支払う)

f:id:yzono:20141228171433j:plain

はじめに

以前、create_dividend APIを利用して配当を行いました。その時はアセット"XSTAR"を 配当しましたが、今回はより流動性の高い"XCP"を配当アセットとした時にどうなるかを見ていきます。

目次

  • 使用するアドレスと残高
  • create_dividend API実行
  • 結果確認

使用するアドレスと残高

配当を実行するアドレス *XSTARのオーナー

(ビットコインインスタンス)自分のサーバー

(ビットコインアドレス)1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy

(保有しているアセット)

$ curl http://127.0.0.1:4000/api/ --user rpc:xcppw1234 -H 'Content-Type: application/json; charset=UTF-8' -H 'Accept: application/json, text/javascript' --data-binary '{"jsonrpc":"2.0", "id":0, "method":"get_balances", "params":{"filters": {"field": "address", "op": "==", "value": "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy"}}}'

{"result": [{"asset": "XCP", "quantity": 120860000, "address": "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy"}, {"asset": "XSTAR", "quantity": 70, "address": "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy"}, {"asset": "XZCOIN", "quantity": 99495, "address": "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy"}], "id": 0, "jsonrpc": "2.0"}

配当を受け取るアドレス(1)

(ビットコインインスタンス)自分のサーバー

(ビットコインアドレス)1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ

(保有しているアセット)

$ curl http://127.0.0.1:4000/api/ --user rpc:xcppw1234 -H 'Content-Type: application/json; charset=UTF-8' -H 'Accept: application/json, text/javascript' --data-binary '{"jsonrpc":"2.0", "id":0, "method":"get_balances", "params":{"filters": {"field": "address", "op": "==", "value": "1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ"}}}'

{"result": [{"asset": "XSTAR", "quantity": 10, "address": "1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ"}, {"asset": "XZCOIN", "quantity": 101, "address": "1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ"}], "id": 0, "jsonrpc": "2.0"}

配当を受け取るアドレス(2)

(ビットコインインスタンス)counterwallet.io

(ビットコインアドレス)17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2

(保有しているアセット)

$ curl http://127.0.0.1:4000/api/ --user rpc:xcppw1234 -H 'Content-Type: application/json; charset=UTF-8' -H 'Accept: application/json, text/javascript' --data-binary '{"jsonrpc":"2.0", "id":0, "method":"get_balances", "params":{"filters": {"field": "address", "op": "==", "value": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}}}'

{"result": [{"asset": "XCP", "quantity": 88480000, "address": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}, {"asset": "XSMILE", "quantity": 10000000000, "address": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}, {"asset": "XSTAR", "quantity": 20, "address": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}, {"asset": "XZCOIN", "quantity": 202, "address": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}], "id": 0, "jsonrpc": "2.0"}

アセット保有者のリスト

Asset Info XSTAR

*実行した時の状態です。

status: "success",
message: "XSTAR asset holders",
totalcount: "3",
data: [
    {
        address: "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy",
        balance: "0.0000007",
        percentage: "70.0000000000"
    },
    {
        address: "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2",
        balance: "0.0000002",
        percentage: "20.0000000000"
    },
    {
        address: "1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ",
        balance: "0.0000001",
        percentage: "10.0000000000"
    }
]
}

create_dividend API実行

$ curl http://127.0.0.1:4000/api/ --user rpc:xcppw1234 -H 'Content-Type: application/json; charset=UTF-8' -H 'Accept: application/json, text/javascript' --data-binary '{"jsonrpc":"2.0", "id":0, "method":"create_dividend", "params":{"source":"1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy", "asset":"XSTAR", "dividend_asset":"XCP", "quantity_per_unit":10000000}}'

...unsign_transactionが表示されますので、create_order時と同様にsign、broadcastしてください。途中は省略してブロードキャスト時のレスポンスです。

{"result": "cdc528bc152df101c653e5a68e3b1aa8e4e63667a3b04b24fa5bf585c781e679", "id": 0, "jsonrpc": "2.0"}

結果確認

トランザクション確認

blockscan

配当を実行するアドレス *XZCOINのオーナー

(ビットコインインスタンス)自分のサーバー

(ビットコインアドレス)1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy

(保有しているアセット)

$ curl http://127.0.0.1:4000/api/ --user rpc:xcppw1234 -H 'Content-Type: application/json; charset=UTF-8' -H 'Accept: application/json, text/javascript' --data-binary '{"jsonrpc":"2.0", "id":0, "method":"get_balances", "params":{"filters": {"field": "address", "op": "==", "value": "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy"}}}'

{"result": [{"asset": "XCP", "quantity": 120819997, "address": "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy"}, {"asset": "XSTAR", "quantity": 70, "address": "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy"}, {"asset": "XZCOIN", "quantity": 99495, "address": "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy"}], "id": 0, "jsonrpc": "2.0"}

配当を受け取るアドレス(1)

(ビットコインインスタンス)自分のサーバー

(ビットコインアドレス)1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ

(保有しているアセット)

$ curl http://127.0.0.1:4000/api/ --user rpc:xcppw1234 -H 'Content-Type: application/json; charset=UTF-8' -H 'Accept: application/json, text/javascript' --data-binary '{"jsonrpc":"2.0", "id":0, "method":"get_balances", "params":{"filters": {"field": "address", "op": "==", "value": "1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ"}}}'

{"result": [{"asset": "XCP", "quantity": 1, "address": "1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ"}, {"asset": "XSTAR", "quantity": 10, "address": "1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ"}, {"asset": "XZCOIN", "quantity": 101, "address": "1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ"}], "id": 0, "jsonrpc": "2.0"}

配当を受け取るアドレス(2)

(ビットコインインスタンス)counterwallet.io

(ビットコインアドレス)17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2

(保有しているアセット)

$ curl http://127.0.0.1:4000/api/ --user rpc:xcppw1234 -H 'Content-Type: application/json; charset=UTF-8' -H 'Accept: application/json, text/javascript' --data-binary '{"jsonrpc":"2.0", "id":0, "method":"get_balances", "params":{"filters": {"field": "address", "op": "==", "value": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}}}'

{"result": [{"asset": "XCP", "quantity": 88480002, "address": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}, {"asset": "XSMILE", "quantity": 10000000000, "address": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}, {"asset": "XSTAR", "quantity": 20, "address": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}, {"asset": "XZCOIN", "quantity": 202, "address": "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2"}], "id": 0, "jsonrpc": "2.0"}

アセット保有者のリスト

Asset Info XSTAR

*実行した時の状態です。

status: "success",
message: "XSTAR asset holders",
totalcount: "3",
data: [
    {
        address: "1A31xhRp9FyQZXG57hXczaVLkH5Dm3m9jy",
        balance: "0.0000007",
        percentage: "70.0000000000"
    },
    {
        address: "17sdLuNtD7ZpFCVZ3Doz58fwxFF6i6CKk2",
        balance: "0.0000002",
        percentage: "20.0000000000"
    },
    {
        address: "1KMdf7VWLEBdCo9iwmtpW7kJaSzSAUz2zJ",
        balance: "0.0000001",
        percentage: "10.0000000000"
    }
]
}

配当が正しくできていることが確認できます。

120860000 -> 120819997 (0.00040030XCP減)

0 -> 1 (0.00000010XCP増)

88480000 -> 88480002 (0.00000020XCP増)

まとめ

今回はアセットXSTARを保持している人に対して、より流動性の高いXCPを配当する手順について書きました。

配当を実行したアセットオーナーのXCPが0.00040030XCP減っている件については調査中です。手数料でしょうか..

参考

create_dividend: Do I have to pay for fee in XCP? (0.0004XCP)