2 JSON-RPC API

2.6 去中心化撮合接口

去中心化撮合接口提供创建挂单、挂单撮合、挂单查询、取消挂单的功能。

2.6.1 创建挂单

2.6.2 查询挂单结果

2.6.3 查看账号挂单

2.6.4 查看挂单簿

2.6.5 取消挂单

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"
        }
    }
}

results matching ""

    No results matching ""