XRPアドレスには、所有者が設定できる項目があります。
たとえば、以下のような設定があります。
項目名 | 概要 |
---|---|
domain | ドメイン |
requireDestinationTag | 宛先タグの要否 |
memos | メモ |
その他の設定項目の詳細につきましては、以下を参考にするとよいでしょう。
settingsの確認
指定したアドレスの設定を確認する例を以下に示します。
const RippleAPI = require('ripple-lib').RippleAPI; const api = new RippleAPI({ //server: 'wss://s1.ripple.com' // Public rippled server server: 'wss://s.altnet.rippletest.net:51233' // testnet }); (async ()=>{ try { await api.connect(); const settings = await api.getSettings('<アドレス>'); console.log(JSON.stringify(settings, null, 2)); await api.disconnect(); } catch (e) { console.error(e); } })();
実行結果例
デフォルト値の場合は省略されるようですので設定項目はありません。
{}
settingsの変更
それでは、settingsを変更してみたいと思います。
多くの暗号資産取引所のように、一つの送付先アドレスで複数ユーザを宛先タグで区別したい場合には、requireDestinationTagをtrueに設定しておくとよいでしょう。
const RippleAPI = require('ripple-lib').RippleAPI; const api = new RippleAPI({ server: 'wss://s.altnet.rippletest.net:51233' // testnet }); let address = '<アドレス>'; let secret = '<シークレット>'; (async()=>{ try { await api.connect(); const settings = { requireDestinationTag: true }; let prepared = await api.prepareSettings(address, settings); const {signedTransaction} = api.sign(prepared.txJSON, secret); let result = await api.submit(signedTransaction); console.log(result); await api.disconnect(); } catch (e) { console.error(e); } })();
なお、1トランザクションで設定できる項目は1項目のようです。まとめて複数の項目を変更しようとしたところ、以下のようなエラーがスローされました。
AssertionError [ERR_ASSERTION]: ERROR: can only set one setting per transaction
実行結果例
{ "resultCode": "tesSUCCESS", "resultMessage": "The transaction was applied. Only final in a validated ledger.", "engine_result": "tesSUCCESS", "engine_result_code": 0, "engine_result_message": "The transaction was applied. Only final in a validated ledger.", "tx_blob": "1200032280000000240000000A201B012452AC20210000000168400000000000000C732103D9278E3BAE27CAA9EF9892523A6402253F9D96CACAC9EF5A7EB9F6D2377CDDC97446304402204A26A005B1BE70F1545C4961D69E8A5E53B78EBCDDC6A3FC0D13A8356C2383BC022048195E71B2BA47CFB4D6183C8DF9F81B77B6DFFE5704F53BF442CE257E860E03811406C4D2C0F9CC2E16D1699836EED1D0B94655B7D0", "tx_json": { "Account": "<アドレス>", "Fee": "12", "Flags": 2147483648, "LastLedgerSequence": 19157676, "Sequence": 10, "SetFlag": 1, "SigningPubKey": "03D9278E3BAE27CAA9EF9892523A6402253F9D96CACAC9EF5A7EB9F6D2377CDDC9", "TransactionType": "AccountSet", "TxnSignature": "304402204A26A005B1BE70F1545C4961D69E8A5E53B78EBCDDC6A3FC0D13A8356C2383BC022048195E71B2BA47CFB4D6183C8DF9F81B77B6DFFE5704F53BF442CE257E860E03", "hash": "<トランザクションID>" } }
settingsの変更確認
settingsが変更されていることを確認しました。
{ "requireDestinationTag": true }