2 JSON-RPC API
2.6 去中心化撮合接口
去中心化撮合接口提供创建挂单、挂单撮合、挂单查询、取消挂单的功能。
2.6.1 创建挂单
创建TakerGets/TakerPays交易对,可以是原生通证HWT或二级通证。TakerGets:对手将得到的通证,TakerPays:对手需要付出的通证。
注意:相同的通证之间不能创建挂单。
请求:
{
"method": "submit",
"params": [{
"secret": "ssqtQ2Jc********ARqb9EYe",
"tx_json": {
"TransactionType": "OfferCreate",
"Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"TakerGets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"TakerPays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "700"
}
}
}]
}
字段名称 | 类型 | 描述 |
---|---|---|
TakerGets | object | 对手将得到的。可以是原生通证HWT或二级通证。 |
TakerPays | object | 对手需要付出的。可以是原生通证HWT或二级通证。 |
currency | string | 二级通证名称 |
issuer | string | 二级通证的发行商账号 |
value | unsign int | 通证数量 |
响应:
{
"result": {
"engine_result": "tesSUCCESS",
"engine_result_code": 0,
"engine_result_message": "The transaction was applied. Only final in a validated ledger.",
"status": "success",
"tx_blob": "1200072280000000240000000364D518DE76816D8000000000000000000000000000434E5900000000002E244E6F20104E57C0C60BD823CB312BF10928C765D5038D7EA4C6800000000000000000000000000055534400000000002E244E6F20104E57C0C60BD823CB312BF10928C76840000000000027107321029A80E85C9EAFE4CF6376524AF360724D4ECE4F2B6197A2E1172E81CC071B7D0C74463044022011DD92C442CE9FFFABA68CB33CD74984C7D07232678BD7FAD61D01ECE579757702201C6A432C01DDD96DB7EF852FBF47BA3D8843D3081B14AC53A96A6A92BE221C8C81148B240FCDC580525F0BFCABB590F434252AC36AF8",
"tx_json": {
"Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"Fee": "10000",
"Flags": 2147483648,
"Sequence": 3,
"SigningPubKey": "029A80E85C9EAFE4CF6376524AF360724D4ECE4F2B6197A2E1172E81CC071B7D0C",
"TakerGets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"TakerPays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "700"
},
"TransactionType": "OfferCreate",
"TxnSignature": "3044022011DD92C442CE9FFFABA68CB33CD74984C7D07232678BD7FAD61D01ECE579757702201C6A432C01DDD96DB7EF852FBF47BA3D8843D3081B14AC53A96A6A92BE221C8C",
"hash": "6AC9F34B7829FCE1897AB1841D842EBEEDF64C1FC3D0B38E5C51A4F0145CB1BA"
}
}
}
2.6.2 查询挂单结果
根据挂单流水号 hash 查询挂单在链上的详细信息。 请求:
{
"method": "tx",
"params": [
{
"transaction": "6AC9F34B7829FCE1897AB1841D842EBEEDF64C1FC3D0B38E5C51A4F0145CB1BA",
"binary": false
}
]
}
响应:
{
"result": {
"Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"Fee": "10000",
"Flags": 2147483648,
"Sequence": 3,
"SigningPubKey": "029A80E85C9EAFE4CF6376524AF360724D4ECE4F2B6197A2E1172E81CC071B7D0C",
"TakerGets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"TakerPays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "700"
},
"TransactionType": "OfferCreate",
"TxnSignature": "3044022011DD92C442CE9FFFABA68CB33CD74984C7D07232678BD7FAD61D01ECE579757702201C6A432C01DDD96DB7EF852FBF47BA3D8843D3081B14AC53A96A6A92BE221C8C",
"date": 628326350,
"hash": "6AC9F34B7829FCE1897AB1841D842EBEEDF64C1FC3D0B38E5C51A4F0145CB1BA",
"inLedger": 77,
"ledger_current_index": 89,
"ledger_index": 77,
"meta": {
"AffectedNodes": [
{
"CreatedNode": {
"LedgerEntryType": "Offer",
"LedgerIndex": "0FB6597BF3397BE7CEF9BCBE77CE346468DC2FA97B656866D5A8B65ECE5E146D",
"NewFields": {
"Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"BookDirectory": "5319B6ABC4C54DB20FC004231D9515081371E71E7F4183B85518DE76816D8000",
"Sequence": 3,
"TakerGets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"TakerPays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "700"
},
"TotalTakerGets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"TotalTakerPays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "700"
}
}
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "hHb9CJAWyB4hj91VRWn96DkukG4bwdtyTr",
"Balance": "99999990000140000",
"Flags": 0,
"OwnerCount": 0,
"Sequence": 6
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8",
"PreviousFields": {
"Balance": "99999990000130000"
},
"PreviousTxnID": "0349C6FC223B5B308087B4A2BCDF7524458170C349F66F575557769C6005BACA",
"PreviousTxnLgrSeq": 28
}
},
{
"ModifiedNode": {
"FinalFields": {
"Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"Balance": "1999970000",
"Flags": 0,
"OwnerCount": 3,
"Sequence": 4
},
"LedgerEntryType": "AccountRoot",
"LedgerIndex": "3E85929FA644A46D1A96D685D00B5A4BDEB90FD1D7D7FCD1C556DDC79CDF8101",
"PreviousFields": {
"Balance": "1999980000",
"OwnerCount": 2,
"Sequence": 3
},
"PreviousTxnID": "B5B98C9C6BE09F8BF9AC50DECADC3F7800C26EE3FFD6749E52706B06949E107F",
"PreviousTxnLgrSeq": 21
}
},
{
"ModifiedNode": {
"FinalFields": {
"Flags": 0,
"Owner": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"RootIndex": "4239D02F30951004B5E01A1A4026A0B1B5AAA7B0B50B17709B18225CB4C160F0"
},
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "4239D02F30951004B5E01A1A4026A0B1B5AAA7B0B50B17709B18225CB4C160F0"
}
},
{
"CreatedNode": {
"LedgerEntryType": "DirectoryNode",
"LedgerIndex": "5319B6ABC4C54DB20FC004231D9515081371E71E7F4183B85518DE76816D8000",
"NewFields": {
"ExchangeRate": "5518DE76816D8000",
"RootIndex": "5319B6ABC4C54DB20FC004231D9515081371E71E7F4183B85518DE76816D8000",
"TakerGetsCurrency": "0000000000000000000000005553440000000000",
"TakerGetsIssuer": "2E244E6F20104E57C0C60BD823CB312BF10928C7",
"TakerPaysCurrency": "000000000000000000000000434E590000000000",
"TakerPaysIssuer": "2E244E6F20104E57C0C60BD823CB312BF10928C7"
}
}
}
],
"TransactionIndex": 0,
"TransactionResult": "tesSUCCESS"
},
"status": "success",
"validated": true
}
}
字段名称 | 类型 | 描述 |
---|---|---|
OfferCreate | string | 挂单的交易类型。 |
Offer | string | 挂单在账本中存储的类型 |
TakerGets | object | 对手总共将得到的。挂单当前未成交的数量。 |
TakerPays | object | 对手总共将付出的。挂单当前未成交的数量。 |
TotalTakerGets | object | 对手总共将得到的。用于记录创建挂单时提交的数量,区别于部分撮合后的剩余数量。 |
TotalTakerPays | object | 对手总共将付出的。用于记录创建挂单时提交的数量,区别于部分撮合后的剩余数量。 |
TakerGetsCurrency | object | 对手将得到的。可以是原生通证HWT和二级通证,十六进制 |
TakerPaysCurrency | object | 对手需要付出的。可以是原生通证HWT和二级通证, 十六进制 |
TakerGetsIssuer | string | 二级通证的发行商账号,十六进制 |
TakerPaysIssuer | string | 二级通证的发行商账号,十六进制 |
2.6.3 查看账号挂单
根据账号,查询账号目前在链上持有的还未成交的挂单列表。
请求:
{
"method": "account_offers",
"params": [
{
"account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd"
}
]
}
响应:
{
"result": {
"account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"ledger_current_index": 113,
"offers": [
{
"flags": 0,
"quality": "7",
"seq": 3,
"taker_gets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"taker_pays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "700"
}
},
{
"flags": 0,
"quality": "8",
"seq": 4,
"taker_gets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"taker_pays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "800"
}
}
],
"status": "success",
"validated": false
}
}
字段名称 | 类型 | 描述 |
---|---|---|
quality | string | 比率。quality = taker_pays/taker_gets |
seq | unsigned int | 挂单的序号。从1开始,自增。可以根据序号来取消挂单。 |
2.6.4 查看挂单簿
根据 taker_gets/taker_pays 交易对,查询目前链上存在的还未成交的挂单列表。 请求:
{
"method": "book_offers",
"params": [{
"taker":"hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"taker_gets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA"
},
"taker_pays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA"
}
}]
}
字段名称 | 类型 | 描述 |
---|---|---|
taker | string | (可选)挂单者的账号 |
taker_gets | object | 挂单交易对中对手获得的通证,由curreny和issuer组成 |
taker_pays | object | 挂单交易对中对手付出的通证,由curreny和issuer组成 |
响应:
{
"result": {
"ledger_current_index": 141,
"offers": [
{
"Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"BookDirectory": "5319B6ABC4C54DB20FC004231D9515081371E71E7F4183B85518DE76816D8000",
"BookNode": "0000000000000000",
"Flags": 0,
"LedgerEntryType": "Offer",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "6AC9F34B7829FCE1897AB1841D842EBEEDF64C1FC3D0B38E5C51A4F0145CB1BA",
"PreviousTxnLgrSeq": 77,
"Sequence": 3,
"TakerGets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"TakerPays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "700"
},
"TotalTakerGets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"TotalTakerPays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "700"
},
"index": "0FB6597BF3397BE7CEF9BCBE77CE346468DC2FA97B656866D5A8B65ECE5E146D",
"owner_funds": "5000",
"quality": "7"
},
{
"Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"BookDirectory": "5319B6ABC4C54DB20FC004231D9515081371E71E7F4183B8551C6BF526340000",
"BookNode": "0000000000000000",
"Flags": 0,
"LedgerEntryType": "Offer",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "C874C308954932BA44C8522F343152310FF2D7596C86FE5DA9DA00DFF8A83C1C",
"PreviousTxnLgrSeq": 105,
"Sequence": 4,
"TakerGets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"TakerPays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "800"
},
"TotalTakerGets": {
"currency": "AAA",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "100"
},
"TotalTakerPays": {
"currency": "BBB",
"issuer": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
"value": "800"
},
"index": "2115A29C82919CB995840E3DAE2E424CB5B6EC3D38F57853D5A5E465339C17CD",
"quality": "8"
}
],
"status": "success",
"validated": false
}
}
2.6.5 取消挂单
账号根据自己挂单的序号,取消对应的挂单。 请求:
{
"method": "submit",
"params": [{
"secret": "ssqtQ2Jc********ARqb9EYe",
"tx_json": {
"TransactionType": "OfferCancel",
"Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"OfferSequence": 4
}
}]
}
字段名称 | 类型 | 描述 |
---|---|---|
OfferSequence | unsigned int | 挂单的序号。即用户挂单查询中的“seq” |
响应:
{
"result": {
"engine_result": "tesSUCCESS",
"engine_result_code": 0,
"engine_result_message": "The transaction was applied. Only final in a validated ledger.",
"status": "success",
"tx_blob": "120008228000000024000000052019000000046840000000000027107321029A80E85C9EAFE4CF6376524AF360724D4ECE4F2B6197A2E1172E81CC071B7D0C7446304402206BF8EEEF66CEA74CC9A1E42D4D4DC2FA3138777F91EFF48468510803014A45C60220358E8C31BDAF43AD5441C1026D9012C4182501F13A39911A0C6E25608AD7990E81148B240FCDC580525F0BFCABB590F434252AC36AF8",
"tx_json": {
"Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
"Fee": "10000",
"Flags": 2147483648,
"OfferSequence": 4,
"Sequence": 5,
"SigningPubKey": "029A80E85C9EAFE4CF6376524AF360724D4ECE4F2B6197A2E1172E81CC071B7D0C",
"TransactionType": "OfferCancel",
"TxnSignature": "304402206BF8EEEF66CEA74CC9A1E42D4D4DC2FA3138777F91EFF48468510803014A45C60220358E8C31BDAF43AD5441C1026D9012C4182501F13A39911A0C6E25608AD7990E",
"hash": "A58B4BCF8405BB3A01FF221C73075B82D3E6E599081B762436A42088C4BCBB7F"
}
}
}