API说明 V2

正式环境地址: https://api.jingtum.com

测试环境地址: https://tapi.jingtum.com

井通API只提供公众用户公链查询服务,公链的功能测试,应用开发公链测试,公共API不保证生产环境性能,开发者请勿将其用于真实的 商业运作.如果需要运行商业环境,具体信息请联系微信:18612068731。

账号类接口

创建钱包

接口:/v2/wallet/new,GET方法

例子: http://localhost/v2/wallet/new

结果如下:

{
  "success": true,
  "status_code": 0,
  "wallet": {
    "secret": "ssD7KN7xnoznunG4H3TF6weF9kWb4",
    "address": "jN22GEKA4kha8xGktuo1K4MpMhx6RRahQS"
  }
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
wallet Object 井通钱包
  secret String 井通钱包私钥
  address String 井通钱包地址

获得账号余额

接口:/v2/accounts/{:address}/balances,GET方法

接口参数:

参数 类型 说明
address String 井通钱包地址

可选接口参数:

参数 类型 说明
currency String 指定返回对应货币的余额
issuer String 指定返回对应银关发行的货币

例子:

http://localhost/v2/accounts/jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM/balances

结果如下:

{
    "success": true,
    "status_code": "0",
    "balances": [
        {
            "value": "300000",
            "currency": "SWT",
            "issuer": "",
            "freezed": "20"
        },
        {
            "value": "100",
            "currency": "CNY",
            "issuer": "jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
            "freezed": "0.000000"
        },
        {
            "value": "100",
            "currency": "AAA",
            "issuer": "jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
            "freezed": "0.000000"
        }
    ],
    "sequence": 1
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
balances Array 余额数组
  value String 余额
  currency String 货币名称,三个字母或20字节的货币
  issuer String 货币发行方
  freezed String 冻结的金额
sequence Integer 当前交易序列号(用于本地签名)

支付接口

支付请求

接口:/v2/accounts/{:source_address}/payments,POST方法

接口参数:

参数 类型 说明
source_address String 支付方的井通地址

提交参数详情:

参数 类型 说明
secret String 支付方的钱包私钥
client_id String 此次请求的交易单号,交易单需要唯一
payment Object 支付对象
  source String 发起账号
  destination String 目标账号
  amount Object 支付金额
  choice String 支付选择的key,可选
  memos Array 支付的备注,String数组,可选,报文整体长度(含报头和报尾)最大支持1K(实体纯字母1019个,纯汉字339个)。

例子:

http://localhost/v2/accounts/jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM/payments

提交的数据:

{
  "secret": "snxVJXMkURjrscL7gfwfWcywYzPkL",
  "client_id": "109",
  "payment": {
    "source": "jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM",
    "destination": "jD2RbZEpBG3T6iWDPyPiNBvpU8sAhRYbpZ",
    "amount": {
      "value": "1.00",
      "currency": "AAA",
      "issuer": "jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS"
    },
        "memos": ["hello world", "hello payment"]
  }
}

结果:

{
         "success": true,
         "status_code": "0",
         "client_id": "1000",
         "hash": "36BC80F5A451921084BBD5330C6807584CDE3A9A5A24CE85408C9220D46EACB7",
         "result": "tesSUCCESS",
         "fee": 0.01"
     }

结果返回参数:

参数 类型 说明
success Boolean 请求结果
client_id String 支付交易单号
hash String 支付交易Hash
result String 支付交易的服务器结果,tesSUCCESS表示成功,其他类型详见错误信息
date Integer 交易时间,UNIXTIME
fee String 交易费用,井通计价

获得支付信息

接口:/v2/accounts/{:address}/payments/{:id},GET方法

接口参数:

参数 类型 说明
address String 支付用户的井通地址
id String 支付交易的hash

例子:

http://localhost/v2/accounts/jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM/payments/36BC80F5A451921084BBD5330C6807584CDE3A9A5A24CE85408C9220D46EACB7

结果:

{
            "success": true,
            "status_code": "0",
            "date": 1555997090,
            "hash": "36BC80F5A451921084BBD5330C6807584CDE3A9A5A24CE85408C9220D46EACB7",
            "type": "sent",
            "fee": "0.01",
            "result": "tesSUCCESS",
            "memos": [
                "hello world",
                "hello payment"
            ],
            "counterparty": "jD2RbZEpBG3T6iWDPyPiNBvpU8sAhRYbpZ",
            "amount": {
                "currency": "AAA",
                "issuer": "jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
                "value": "1"
            },
            "effects": []
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
date Integer 支付时间,UNIXTIME时间
hash String 支付hash
type String 支付类型,sent或received
fee String 支付费用
result String 支付的服务器结果
memos Array 支付的备注,String数组
counterparty String 交易对家
amount Object 交易金额
effects Array 支付的效果,详见下面交易记录效果

获得支付历史

接口:/v2/accounts/{:address}/payments,GET方法

接口参数:

参数 类型 说明
address String 支付相关的井通地址

例子:

http://localhost/v2/accounts/jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM/payments

结果:

{
    "success": true,
    "status_code": "0",
    "marker": {
        "ledger": 3022875,
        "seq": 0
    },
    "payments": [
        {
            "date": 1555997600,
            "hash": "F4E2E07DBC9B8AC8E879AFFBF712F2DEC715D2F1B5A8BF1D646EA457178F1530",
            "type": "sent",
            "fee": "0.01",
            "result": "tesSUCCESS",
            "memos": [
                "hello world",
                "hello payment"
            ],
            "counterparty": "jD2RbZEpBG3T6iWDPyPiNBvpU8sAhRYbpZ",
            "amount": {
                "currency": "AAA",
                "issuer": "jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
                "value": "1"
            },
            "effects": []
        }
    ]
}

返回的结果是下一页的数据,返回的结果信息:

参数 类型 说明
success Boolean 请求结果
payments Array 支付历史,同交易记录中的信息

挂单类接口

提交挂单

接口:/v2/accounts/{:address}/orders,POST方法

接口参数:

参数 类型 说明
address String 用户的井通地址

提交参数详情:

参数 类型 说明
secret String 用户的钱包私钥
order Object 提交的挂单
  type String 挂单的类型,sell或buy
  pair String 交易的货币对(兼容swt:issuer)
  amount String 挂单的数量
  price String 挂单的价格

POST需要提交的参数格式如下:

{
  "secret": "snxVJXMkURjrscL7gfwfWcywYzPkL",
  "order": {
        "type": "sell",
        "pair": "SWT/CNY:jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
        "amount": "100.00",
        "price": "0.0124"
  }
}

例子:

http://localhost/v2/accounts/jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM/orders

结果:

{
    "success": true,
    "status_code": "0",
    "hash": "3C2E21E02A0D7FBD6D959E79321C3B9ED79C726D6583F4F0BF135620EB0464EB",
    "result": "tesSUCCESS",
    "fee": 0.01,
    "sequence": 4
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
hash String 交易hash
result String 交易结果
fee String 交易费用,井通计价
sequence Integer 交易单子序号

取消挂单

接口:/v2/accounts/{:address}/orders/{:order},DELETE方法

DELETE方法请求时需设置Content-Length消息头

接口参数:

参数 类型 说明
address String 挂单方的井通地址
order String 订单的序号

提交参数详情:

参数 类型 说明
secret String 井通钱包私钥

DELETE需要提交的参数格式如下:

{
  "secret": "snxVJXMkURjrscL7gfwfWcywYzPkL"
}

例子:

http://localhost/v2/accounts/jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM/orders/4

结果:

{
    "success": true,
    "status_code": "0",
    "hash": "0236884C7004A8C3BB355213E6093822F78D78D3B699F1A26403156C7875499B",
    "result": "tesSUCCESS",
    "fee": 0.01,
    "sequence": 5
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
hash String 交易hash
fee String 交易费用,井通计价
sequence Integer 操作订单序列号

获取用户挂单

接口:/v2/accounts/{:address}/orders,GET方法

接口参数:

参数 类型 说明
address String 挂单方的井通地址

例子:

http://localhost /v2/accounts/jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM/orders

结果:

{
    "success": true,
    "status_code": "0",
    "orders": [
        {
            "type": "sell",
            "pair": "SWT/CNY:jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
            "amount": "100.000000",
            "price": "0.0124",
            "sequence": 4
        }
    ]
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
order Object 单子信息
  type String 挂单的类型,sell或buy
  pair String 交易的货币对
  amount String 挂单的数量
  price String 挂单的价格
  sequence Integer 交易序列号

获取挂单信息

接口:/v2/accounts/{:address}/orders/{:hash},GET方法

通用接口参数:

参数 类型 说明
address String 挂单方的井通地址
hash String 挂单交易哈希号

例子:

http://localhost/v2/accounts/jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM/orders/3C2E21E02A0D7FBD6D959E79321C3B9ED79C726D6583F4F0BF135620EB0464EB

结果:

{
            "success": true,
            "status_code": "0",
            "hash": "3C2E21E02A0D7FBD6D959E79321C3B9ED79C726D6583F4F0BF135620EB0464EB",
            "fee": "0.01",
            "action": "sell",
            "order": {
                "account": "jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM",
                "pair": "SWT/CNY:jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
                "amount": "100",
                "price": "0.0124",
                "type": "sell",
                "sequence": 4
            }
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
hash String 交易Hash
fee String 交易费用,井通计价
action String 交易的动作类型
order Object 交易单子信息
  account String 交易帐号
  pair String 交易的货币对
  amount String 挂单的数量
  price String 挂单的价格
  type Integer 交易类型,sell或buy
  sequence Integer 交易序列号

获得货币对的挂单列表

接口:/v2/order_book/{:base}/{:counter},GET方法

通用接口参数:

参数 类型 说明
base String 基准货币(currency+counterparty),兼容swt+counterparty
counter String 目标货币(currency+counterparty),兼容swt+counterparty

可选接口参数:

参数 类型 说明
results_per_page Integer 返回的每页数据量,默认每页买卖单各10项)
page Integer 页码,默认从第一页开始

例子:

http://localhost/v2/order_book/AAA+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/CNY+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS

结果:

{
    "success": true,
    "status_code": "0",
    "pair": "AAA+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/CNY+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
    "bids": [],
    "asks": [
        {
            "price": 0.0124,
            "order_maker": "jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM",
            "sequence": 7,
            "passive": false,
            "sell": true,
            "funded": 10
        }
    ]
}

返回的结果信息:

参数 类型 说明
success Boolean 调用结果
pair String 挂单货币对
bids/asks Array 买入单
  price Object 该档的价格
  funded Integer 实际中用户可以成交的金额
  order_maker String 挂单用户
  sequence String 交易序号
  passive Boolean 交易是否是被动交易

获得货币对的买单列表

接口:/v2/order_book/bids/{:base}/{:counter},GET方法

通用接口参数:

参数 类型 说明
base String 基准货币(currency+counterparty),兼容swt+counterparty
counter String 目标货币(currency+counterparty),兼容swt+counterparty

可选接口参数:

参数 类型 说明
results_per_page Integer 返回的每页数据量,默认每页买卖单各10项)
page Integer 页码,默认从第一页开始

例子:

http://localhost/v2/order_book/bids/AAA+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/CNY+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS?results_per_page=1&page=1

结果:

    {
        "success": true,
        "status_code": "0",
        "pair": "AAA+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/CNY+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
        "bids": [
    {
        "price": 0.0125,
        "order_maker": "jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM",
        "sequence": 8,
        "passive": false,
        "sell": false,
        "funded": 20
    }]
}

返回的结果信息:

参数 类型 说明
success Boolean 调用结果
pair String 挂单货币对
bids/asks Array 买入单
  price Object 该档的价格
  funded Integer 实际中用户可以成交的金额
  order_maker String 挂单用户
  sequence String 交易序号
  passive Boolean 交易是否是被动交易

获得货币对的卖单列表

接口:/v2/order_book/asks/{:base}/{:counter},GET方法

通用接口参数:

参数 类型 说明
base String 基准货币(currency+counterparty),兼容swt+counterparty
counter String 目标货币(currency+counterparty),兼容swt+counterparty

可选接口参数:

参数 类型 说明
results_per_page Integer 返回的每页数据量,默认每页买卖单各10项)
page Integer 页码,默认从第一页开始

例子:

http://localhost/v2/order_book/asks/AAA+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/CNY+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/USD?results_per_page=1&page=1

结果:

{
    "success": true,
    "status_code": "0",
    "pair": "AAA+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/CNY+jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
    "asks": [
        {
            "price": 0.0125,
            "order_maker": "jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM",
            "sequence": 9,
            "passive": false,
            "sell": true,
            "funded": 30
        }
    ]
}

交易记录接口

查询交易信息

接口1:/v2/accounts/{:address}/transactions/{:id},GET方法

接口2:/v2/transactions/{:id}, GET方法

接口参数:

参数 类型 说明
address String 井通钱包地址
id String 交易资源号或者交易hash

说明: 查询交易记录可通过交易hash直接查询, 也可通过钱包地址和hash查询, 两者区别在于加钱包地址的可以判断该交易是否属于该地址。

例子:

http://localhost/v2/accounts/jQNdYXxgNHY49oxDL8mrjr7J6k7tdNy1kM/transactions/3905D77CF864A9CBC70945FCFD458A6DC821DF861296C1B5F05B3BFFD6C81451

结果:

{
            "success": true,
            "status_code": "0",
            "transaction": {
                "date": 1555989600,
                "hash": "3905D77CF864A9CBC70945FCFD458A6DC821DF861296C1B5F05B3BFFD6C81451",
                "type": "received",
                "fee": "0.00001",
                "result": "tesSUCCESS",
                "memos": [],
                "counterparty": "jL8L5f56zjFfmBBq19nvDTuVRfAQ7n19aJ",
                "amount": {
                    "currency": "AAA",
                    "issuer": "jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
                    "value": "100"
                },
                "effects": [],
                "ledger": 3022077
            }
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
transaction Object 具体的交易信息
  date Integer 交易时间,UNIXTIME
  hash Object 交易hash
  type Object 交易类型
  fee Object 交易费用,井通计价
  result Object 交易结果
  counterparty Object 交易对家
  amount Object 交易金额
  effects Object 交易效果,详见下面分析

查询交易记录

接口:/v2/accounts/{:address}/transactions,GET方法

接口参数:

参数 类型 说明
address String 支付相关的井通地址

可选接口参数:

参数 类型 说明
results_per_page Integer 返回的每页数据量,默认每页10项
marker Object 交易记录标记,表示从当前记录继续向下查找
  ledger Integer 账本号
  seq Integer 上一次查询返回的最后一条交易号

例子:

http://localhost/v2/accounts/jHZ5pAKGcpCdvU8N177eePYtMY4ZtC85o6/transactions?results_per_page=1&page=2&marker={ledger:3023160,seq:0}

结果:

{
    "success": true,
    "status_code": "0",
    "marker": {
        "ledger": 3023110,
        "seq": 0
    },
    "transactions": [
        {
            "date": 1556000430,
            "hash": "5C6917554D44A4B9C76A3576E3A97DBD5154B8E239FA6F90582615F0533737C5",
            "type": "offernew",
            "fee": "0.01",
            "result": "tesSUCCESS",
            "memos": [],
            "offertype": "buy",
            "seq": 8,
            "effects": [
                {
                    "effect": "offer_cancelled",
                    "hash": "0139A5C6E82ECFF4F23C2523DE05D950AD7199C9A2C57A7CB84276961347D1BA",
                    "type": "sell",
                    "seq": 7,
                    "price": "0.0124",
                    "deleted": true,
                    "pair": "AAA:jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/CNY:jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
                    "amount": "10"
                },
                {
                    "effect": "offer_created",
                    "type": "buy",
                    "seq": 8,
                    "price": "0.0125",
                    "pair": "AAA:jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/CNY:jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
                    "amount": "20"
                }
            ],
            "pair": "AAA:jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS/CNY:jBciDE8Q3uJjf111VeiUNM775AMKHEbBLS",
            "amount": "20",
            "price": "0.0125"
        }
    ]
}

返回的结果信息:

参数 类型 说明
success Boolean 调用结果
marker Object 交易记录标记
transactions Array 具体的交易信息数组
  date Integer 交易时间,UNIXTIME
  hash String 交易hash
  type String 交易类型
  fee String 交易费用,井通计价
  result String 交易结果
  memos String 交易备注
  counterparty String 交易对家,支付交易才有
  amount String 交易金额/挂单数量,支付交易或者挂单交易才有
  offertype String 挂单类型,sell或者buy,挂单交易才有
  pair String 交易的货币对,挂单交易才有
  price String 挂单的价格,挂单交易才有
  effects Object 交易效果,详见如下

交易记录信息

用户提交的交易类型主要有Payment、OfferCreate、OfferCancel和RelationSet;

交易信息存储在系统中,查询交易信息时,系统解析交易信息,将交易信息解析为主要有如下信息:

date 交易时间UNIXTIME hash 交易hash fee 交易费用 result 交易结果 client_resource_id 交易资源号 memos 交易的备注信息 type 交易类型

type有如下几种:

  1. sent,用户进行支付操作,在交易信息中包含的信息有:
参数 类型 说明
counterparty String 支付对家,即接收方
amount Object 交易记录标记
  value String 金额
  currency String 货币
  issuer String 货币发行方,SWT为空
effects Array [],空
  1. received,用户接受支付,在交易信息中包含的信息有:
参数 类型 说明
counterparty String 支付对家,即接收方
amount Object 交易记录标记
  value String 金额
  currency String 货币
  issuer String 货币发行方,SWT为空
effects Array [],空
  1. convert,用户进行兑换操作,在交易信息中包含的信息有:
参数 类型 说明
spent Object 兑换支付的金额
  value String 金额
  currency String 货币
issuer
String 货币发行方,SWT为空
amount Object 交易记录标记
  value String 金额
  currency String 货币
issuer
String 货币发行方,SWT为空
effects Array [],空
  1. offernew,用户进行挂单操作,在交易信息中包含的信息有:
参数 类型 说明
offertype String 挂单类型,sell或buy
pair String 交易的货币对
amount String 挂单的数量
price String 挂单的价格
effects Array 详见下面的effects解释
  1. offercancel,用户进行取消挂单操作,在交易信息中包含的信息有:
参数 类型 说明
type String 挂单的类型,sell或buy
pair String 交易的货币对
amount String 挂单的数量
price String 挂单的价格
effects Array 详见下面的effects解释
  1. offereffect,挂单成交情况,即被动成交的情况,在交易信息中包含的信息有:
参数 类型 说明
effects Array 详见下面的effects解释

交易效果effects

effects是每个用户交易记录信息里面的交易效果,是个JSON数组,数字可以包含多项,每项内容都包含效果类型effect字段,根据effect的不同里面的内容也不同 :

  1. offer_funded,交易实际成交;交易提示信息建议:交易成交,您以XXX价格买了/卖了XXX卖了/买了XXX,价格是XXX;其中包含的信息有:
参数 类型 说明
effect String offer_funded
type String 交易类型,sell或buy
pair String 交易的货币对
amount String 挂单的数量
got Object 用户获得的金额
  value String 金额
  currency String 货币
issuer
String 货币发行方,SWT为空
paid Object 用户付出的金额
  value String 金额
  currency String 货币
issuer
String 货币发行方,SWT为空
price String 价格,4位小数
seq Integer 挂单序号,表示被成交的单子
counterparty Object 对家信息
  account String 对家账号
  seq Integer 对家单子序号
  hash String 对家交易hash
  1. offer_partially_funded,交易部分成交;交易提示信息建议:交易部分成交,您以XXX价格买了/卖了XXX卖了/买了XXX,价格是XXX,剩余挂单由于金额不足被取消(可选,根据cancelled),还剩XXX单子(可选,根据remaining);其中包含的信息有:
参数 类型 说明
effect String offer_partially_funded
type String 交易类型,sold或bought
got Object 用户获得的金额
  value String 金额
  currency String 货币
issuer
String 货币发行方,SWT为空
paid Object 用户付出的金额
  value String 金额
  currency String 货币
issuer
String 货币发行方,SWT为空
price String 价格,4位小数
seq Integer 挂单序号,表示被成交的单子
cancelled Boolean |剩余的单子是否被取消了,可选
remaining Boolean 是否有剩余的单子,可选
pair String 交易的货币对,remaining为true才有
amount String 挂单的数量,remaining为true才有
price String 挂单的价格,remaining为true才有
counterparty Object 对家信息
  account String 对家账号
  seq Integer 对家单子序号
  hash String 对家交易hash
  1. offer_cancelled,被关联交易取消单子,交易单子被取消;交易提示信息建议:由于缺少金额单子XXX被取消;其中包含的信息有:
参数 类型 说明
effect String offer_cancelled
type String 交易类型,sell或buy
pair String 交易的货币对
amount String 挂单的数量
price String 挂单的价格
seq Integer 被取消单子的序号
hash String 被取消单子的hash
deleted Boolean 单子是否被删除,取消单子为true
  1. offer_created,交易单子创建;交易提示信息建议:您创建了一个买/卖单,以XXX交易XXX;其中包含的信息有:
参数 类型 说明
effect String offer_created
type String 交易类型,sell或buy
pair String 交易的货币对
amount String 挂单的数量
price String 挂单的价格
seq Integer 新建的单子序号
  1. offer_bought,挂单买到/卖出,成交的单子信息;交易提示信息建议:您以XXX价格买了/卖了XXX卖了/买了XXX;其中包含的信息有:
参数 类型 说明
effect String offer_bought
type String 交易类型,sell或buy
got Object 用户获得的金额
  value String 金额
  currency String 货币
issuer
String 货币发行方,SWT为空
paid Object 用户付出的金额
  value String 金额
  currency String 货币
issuer
String 货币发行方,SWT为空
price String 价格,4位小数
pair String 交易的货币对
amount String 挂单的数量
counterparty Object 对家信息
  account String 对家账号
  seq Integer 对家单子序号
  hash String 对家交易hash

智能合约

部署合约

接口:/v2/accounts/{:address}/contract/deploy,POST方法

合约测试地址:http://tapi1.jingtum.com/v2

ws://139.129.194.175:5020

接口参数:

参数 类型 说明
address string 井通钱包地址

提交参数详情:

参数 类型 说明
secret String 用户的钱包私钥
amount Integer 支付金额
payload String 智能合约代码

可选接口参数:

参数 类型 说明
params Array 合约参数

POST需要提交的参数格式如下:

{
          "secret": "snUaJxp2k4WFt5LCCtEx2zjThQhpT",
          "amount": 10,
          "payload": "result={};  function Init(t)  result=scGetAccountInfo(t)  return result  end;  function foo(t) a={} result=scGetAccountInfo(t)  return result  end",
          "params":  ["jsqRs9BDCjyTuRWEPZk3yHa4MFmRi9D834"]
}

例子:

http://localhost/v2/accounts/jf96oSdxU7kwfCHF2sjm9GmcvhFBcfN8Py/contract/deploy

结果:

    {
        "success": true,
        "status_code": "0",
        "ContractState": "jHDqbmoyhFw2MnuNeX2fhjwVECAdgTiAjB",
        "engine_result": "tesSUCCESS",
        "engine_result_code": 0,
        "engine_result_message": "The transaction was applied. Only final in a validated ledger.",
        "tx_blob": "12001E22000000002400000001202400000000614000000000989680684000000000002710732102013E3FDABB9FCC24B4C207AA808C863CC06A5E89F030F9AE0C3ECA505BC22B3A74473045022100A90AF352FA44272A9D735AA7ABD3C19894FE85F3FD24331D7C6511C51424A37702206C3DDC0567074FF8207F576B9475F4945D6F46C54EA50231B9CF1D8A381332F87F92726573756C743D7B7D3B202066756E6374696F6E20496E69742874292020726573756C743D73634765744163636F756E74496E666F287429202072657475726E20726573756C742020656E643B202066756E6374696F6E20666F6F28742920613D7B7D20726573756C743D73634765744163636F756E74496E666F287429202072657475726E20726573756C742020656E64811443762420DF114F9D4C9C82BC8906EB9667FA2F4AFAEB7012226A73715273394244436A795475525745505A6B33794861344D466D52693944383334E1F1",
        "tx_json": {
            "Account": "jf96oSdxU7kwfCHF2sjm9GmcvhFBcfN8Py",
            "Amount": "10000000",
            "Args": [
                {
                    "Arg": {
                        "Parameter": "6A73715273394244436A795475525745505A6B33794861344D466D52693944383334"
                    }
                }
            ],
            "Fee": "10000",
            "Flags": 0,
            "Method": 0,
            "Payload": "726573756C743D7B7D3B202066756E6374696F6E20496E69742874292020726573756C743D73634765744163636F756E74496E666F287429202072657475726E20726573756C742020656E643B202066756E6374696F6E20666F6F28742920613D7B7D20726573756C743D73634765744163636F756E74496E666F287429202072657475726E20726573756C742020656E64",
            "Sequence": 1,
            "SigningPubKey": "02013E3FDABB9FCC24B4C207AA808C863CC06A5E89F030F9AE0C3ECA505BC22B3A",
            "TransactionType": "ConfigContract",
            "TxnSignature": "3045022100A90AF352FA44272A9D735AA7ABD3C19894FE85F3FD24331D7C6511C51424A37702206C3DDC0567074FF8207F576B9475F4945D6F46C54EA50231B9CF1D8A381332F8",
            "hash": "ED18B99B5073835F4057F2B1998E4DF3EAB9150797059738300DCD091DDA67F7"
        }
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
ContractState String 生成的合约地址
engine_result Object 合约结果
engine_result_code String 合约结果码
engine_result_message String 合约结果说明
tx_blob String 请求合约的blob
tx_json Object 请求信息
  Account String 请求的井通地址
  Amount String 支付金额
Fee
String 交易费用,井通计价
|Flags String 交易标识
  Method String 交易方法:0表示部署,1表示调用
  Payload String 16进制智能合约代码
  Sequence String 单子号
  SigningPubKey String 签名公钥
  Timestamp Integer 交易时间,UNIXTIME
  TransactionType String 交易类型
  TxnSignature String 交易签名
  hash String 交易hash

调用合约

接口:/v2/accounts/{:address}/contract/call,POST方法

接口参数:

参数 类型 说明
address string 井通钱包地址

提交参数详情:

参数 类型 说明
secret String 用户的钱包私钥
destination String 合约所在地址
foo String 合约函数名

可选接口参数:

参数 类型 说明
params Array 合约参数

POST需要提交的参数格式如下:

{
  "secret": "snUaJxp2k4WFt5LCCtEx2zjThQhpT",
  "destination": "jHDqbmoyhFw2MnuNeX2fhjwVECAdgTiAjB",
  "params":  ["jsqRs9BDCjyTuRWEPZk3yHa4MFmRi9D834"],
  "foo": "foo"
}

例子:

http://localhost/v2/accounts/jf96oSdxU7kwfCHF2sjm9GmcvhFBcfN8Py/contract/call

结果:

{
    "success": true,
    "status_code": "0",
    "ContractState":"{
                "Account" : "jsqRs9BDCjyTuRWEPZk3yHa4MFmRi9D834",
                "Balance" : "3000000000000",
                "Flags" : 0,
                "LedgerEntryType" : "AccountRoot",
                "OwnerCount" : 0,
                "PreviousTxnID" : "38BC4FCE15251FE6653C66A7396FA515D6E848A0E9730BE61C0F65E6A18A9D0C",
                "PreviousTxnLgrSeq" : 2159165,
                "Sequence" : 1,
                "index" : "70792A2F04C2C5AA1DFDD126DDEF1A7B3550A62C0AA28984662D87B02A4883A8"
        }",
    "engine_result": "tesSUCCESS",
    "engine_result_code": 0,
    "engine_result_message": "The transaction was applied. Only final in a validated ledger.",
    "tx_blob": "12001E22000000002400000002202400000001684000000000002710732102013E3FDABB9FCC24B4C207AA808C863CC06A5E89F030F9AE0C3ECA505BC22B3A74473045022100DF68F03F5D6C2C013FDDC70D78B83AF8ECF5A92C11B62008C7B2E81FCF0415E202203C12C57E42C5CB70CE3A213E957269CA4967F0C0AD955FF827C223FC68E53273701103666F6F811443762420DF114F9D4C9C82BC8906EB9667FA2F4A8314B1EF92AB29F58C569EEF413EEE6AA01C5497365FFAEB7012226A73715273394244436A795475525745505A6B33794861344D466D52693944383334E1F1",
    "tx_json": {
        "Account": "jf96oSdxU7kwfCHF2sjm9GmcvhFBcfN8Py",
        "Args": [
            {
                "Arg": {
                    "Parameter": "6A73715273394244436A795475525745505A6B33794861344D466D52693944383334"
                }
            }
        ],
        "ContractMethod": "666F6F",
        "Destination": "jHDqbmoyhFw2MnuNeX2fhjwVECAdgTiAjB",
        "Fee": "10000",
        "Flags": 0,
        "Method": 1,
        "Sequence": 2,
        "SigningPubKey": "02013E3FDABB9FCC24B4C207AA808C863CC06A5E89F030F9AE0C3ECA505BC22B3A",
        "TransactionType": "ConfigContract",
        "TxnSignature": "3045022100DF68F03F5D6C2C013FDDC70D78B83AF8ECF5A92C11B62008C7B2E81FCF0415E202203C12C57E42C5CB70CE3A213E957269CA4967F0C0AD955FF827C223FC68E53273",
        "hash": "AE0784B8E5A50D541887CF6BCD7DF591452D2B93B1A473D0E0E02A5B51E95927"
    }
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
ContractState Object 调用方信息
engine_result String 合约结果
engine_result_code String 合约结果码
engine_result_message String 合约结果说明
tx_blob String 请求合约的blob
tx_json Object 请求信息
  Account String 请求的井通地址
  Args Array 合约传入的参数
ContractMethod
String 合约方法
|Destination String 调用的合约地址
Fee
String 交易费用,井通计价
|Flags String 交易标识
  Method String 交易方法:0表示部署,1表示调用
  Sequence String 单子号
  SigningPubKey String 签名公钥
  Timestamp Integer 交易时间,UNIXTIME
  TransactionType String 交易类型
  TxnSignature String 交易签名
  hash String 交易hash

账本

获得最新账本号

接口:/v2/ledger/index, GET方法

接口参数:无

例子:

http://localhost/v2/ledger/index

结果:

{
  "success": true,
  "status_code": "0",
  "ledger_hash": "B6EC1E9526DBEB2C746DE76366FBF82F9890BA6813B5AEDAD7A27A0B18226B45",
  "ledger_index": 9590468
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
ledger_hash String 账本hash
ledger_index Integer 账本号/区块高度

通过账本号获得某一账本信息及交易信息

接口:/v2/ledger/index/{:index}, GET方法

接口参数:

参数 类型 说明
index string 账本号/区块高度

例子:

http://localhost/v2/ledger/index/9590468

结果:

{
  "success": true,
  "status_code": "0",
  "accepted": true,
  "accout_hash": "DA4D9D7626DAACA4E42C7155E75D3873F492D3DB47B0359F42E336D710C1878B",
  "close_time": 579062540,
  "close_time_human": "2018-May-08 02:42:20",
  "close_time_resolution": 10,
  "closed": true,
  "hash": "B6EC1E9526DBEB2C746DE76366FBF82F9890BA6813B5AEDAD7A27A0B18226B45",
  "ledger_hash": "B6EC1E9526DBEB2C746DE76366FBF82F9890BA6813B5AEDAD7A27A0B18226B45",
  "ledger_index": "9590468",
  "parent_hash": "042F30BB6FC77424D5A49B12E3F60C2309F350C9B95622E76FFF307B916BACE8",
  "seqNum": "9590468",
  "totalCoins": "599999999999460713",
  "total_coins": "599999999999460713",
  "transaction_hash": "55B92B8C95B1C4AF8F46A65084F70A049565B3926E6E95410ED53000BE6DEBAB",
  "transactions": [
     "432709B5DAA873132819DED7F71B6AF3E89E05AE35268DC7AE13BAB1CF685FCC"
  ]
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
accepted Boolean 区块是否已经产生
account_hash String 状态hash树根
close_time Integer 关闭时间
close_time_human String 关闭时间
close_time_resolution Integer 关闭周期
closed Boolean 账本是否已经关闭
hash String 账本hash
ledger_hash String 账本hash
ledger_index String 账本高度/区块高度
parent_hash String 上一区块hash值
seqNum String 账本高度/区块高度
totalCoins String swt总量
total_coins String swt总量
transaction_hash String 交易hash树根
transactions Array 该账本里的交易列表

通过账本hash获得某一账本信息及交易信息

接口:/v2/ledger/hash/{:hash}, GET方法

接口参数:

参数 类型 说明
hash string 账本hash

例子:

http://localhost/v2/ledger/hash/C08847C320D4F9E136BFCBC58D1F39C630C0F5421A06C739AF30BAF05F94714F

结果:

{
  "success": true,
  "status_code": "0",
  "accepted": true,
  "account_hash": "DA4D9D7626DAACA4E42C7155E75D3873F492D3DB47B0359F42E336D710C1878B",
  "close_time": 579062540,
  "close_time_human": "2018-May-08 02:42:20",
  "close_time_resolution": 10,
  "closed": true,
  "hash": "B6EC1E9526DBEB2C746DE76366FBF82F9890BA6813B5AEDAD7A27A0B18226B45",
  "ledger_hash": "B6EC1E9526DBEB2C746DE76366FBF82F9890BA6813B5AEDAD7A27A0B18226B45",
  "ledger_index": "9590468",
  "parent_hash": "9590468",
  "parent_hash": "042F30BB6FC77424D5A49B12E3F60C2309F350C9B95622E76FFF307B916BACE8",
  "seqNum": "9590468",
  "totalCoins": "599999999999460713",
  "total_coins": "599999999999460713",
  "transaction_hash": "55B92B8C95B1C4AF8F46A65084F70A049565B3926E6E95410ED53000BE6DEBAB",
  "transactions": [
     "432709B5DAA873132819DED7F71B6AF3E89E05AE35268DC7AE13BAB1CF685FCC"
  ]
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
accepted Boolean 区块是否已经产生
account_hash String 状态hash树根
close_time Integer 关闭时间
close_time_human String 关闭时间
close_time_resolution Integer 关闭周期
closed Boolean 账本是否已经关闭
hash String 账本hash
ledger_hash String 账本hash
ledger_index String 账本高度/区块高度
parent_hash String 上一区块hash值
seqNum String 账本高度/区块高度
totalCoins String swt总量
total_coins String swt总量
transaction_hash String 交易hash树根
transactions Array 该账本里的交易列表

本地签名

提交本地签名

接口:/v2/blob,POST方法

提交参数详情:

参数 类型 说明
blob String 签名后的交易信息

POST需要提交的参数格式如下:

{
  "blob": "1200002200000000240000028461400000000007A12068400000000000000A73210224445F6980BBC7F34F5042893C419E536468F92A9034177C0CB786CC7836025B74473045022100FC7EA9B7200CA4D3F2C4948E86140F14D5C1FA1CE68682288B51928A7C7256ED02204D3993571B4EEA50A64A3CDB2A38D61EA28F46C3563CF64B48A211E44456738D81147A44B90BCADB1F585D590DC31AB83245E049BB668314B9DFBBDC029B81C608497CE3D61C70D79BCCA955"
}

例子:

http://localhost/v2/blob

结果:

{
  "success": true,
  "status_code": "0",
  "engine_result": "tesSUCCESS",
  "engine_result_code": 0,
  "eengine_result_message": "The transaction was applied. Only final in a validated ledger.",
  "tx_blob": "1200002200000000240000028461400000000007A12068400000000000000A73210224445F6980BBC7F34F5042893C419E536468F92A9034177C0CB786CC7836025B74473045022100FC7EA9B7200CA4D3F2C4948E86140F14D5C1FA1CE68682288B51928A7C7256ED02204D3993571B4EEA50A64A3CDB2A38D61EA28F46C3563CF64B48A211E44456738D81147A44B90BCADB1F585D590DC31AB83245E049BB668314B9DFBBDC029B81C608497CE3D61C70D79BCCA955",
  "tx_json": {
        "Account": "jU9VmMHKk1jakMKpjGhWYibnmz5sDw3ZNt",
        "Amount": "500000",
        "Destination": "jHAFp8CrBM48QJyqB8V7NWH9XBsHRQcUu8",
        "Fee": "10",
        "Flags": 0,
        "Sequence": 644,
        "SigningPubKey": "02FE64E0C20F0058F22F3742EDC15F49F318C04F88B130742C68BAF3B1C89FD167",
        "TransactionType": "Payment",
        "TxnSignature": "3045022100948A033830881A3BCF90EBCF79CAD2000149CA347BF3C19997083DD247FBB45D02203977E0AB7B59F3982719F2A38C6363649620CF4F441C8FA7E4FC3CDFAEFA879C",
        "hash": "E663D510536DCE4DEE48B1C6F958B102386E462F80CAA77720921341AFD0A3DC"
        }
}

返回的结果信息:

参数 类型 说明
success Boolean 请求结果
engine_result Object 交易结果
engine_result_code String 交易结果码
engine_result_message String 交易结果说明
tx_blob String 请求交易的blob
tx_json Object 请求信息
  Account String 请求的井通地址
  Amount String 支付金额*1000000
Fee
String 交易费用,井通计价*1000000
|Flags String 交易标识
  Sequence String 单子号
  SigningPubKey String 签名公钥
  TransactionType String 交易类型
  TxnSignature String 交易签名
  hash String 交易hash

订阅功能

为了减少前端软件的复杂度,井通标准接口(REST API)提供井通地址的websocket长连接服务。前端软件可以通过websocket连接向标准接口订阅和井通地址相关的交易信息。任何和该地址相关的交易信息将会通过相应的websocket连接传出。 REST API订阅后台是API一个服务地址,测试环境的接口是wss://tapi.jingtum.com:5443/v2

连接服务

连接Websocket服务之后,后台返回订阅ID,如下:

{
  "type": "connection",
  "success": true,
  "id": "03afb5a3-0bdb-4a6b-bc6a-4ff72cce05bc"
}

发起订阅

客户端在连接上服务之后,通过发送订阅请求进行订阅,订阅请求如下:

{
  "command": "subscribe",
  "type": "account",
  "account": "jDUjqoDZLhzx4DCf6pvSivjkjgtRESY62c"
}

订阅请求中,必须将订阅用户的地址和类型一起提交上来,参数type表示所订阅的类型,包含3种:account(订阅某个账号的交易记录)、transactions(订阅所有交易记录)、ledger(订阅账本消息)。 订阅成功之后,返回:

{
  "account": "jDUjqoDZLhzx4DCf6pvSivjkjgtRESY62c",
  "success": true,
  "command": "subscribe",
  "type": "account",
}

当请求的JSON格式不对时,失败返回

{
  "success": false,
  "error": "xxx"
}

当请求的参数有问题时,返回:

{
  "account": "jDUjqoDZLhzx4DCf6pvSivjkjgtRESY62c",
  "success": false,
  "all": true,
  "command": "subscribe",
  "type": "account",
  "error": "XXX"
}

error包括缺少account,type,account格式不对,type格式不对等,分别是: 1.missing account 2.account is not valid jingtum address 3.invalid type

取消订阅

客户端在连接上服务之后,通过发送取消订阅请求进行取消订阅,取消订阅请求如下:

{
  "command": "unsubscribe",
  "account": "jDUjqoDZLhzx4DCf6pvSivjkjgtRESY62c",
  "type": "account",
}

取消订阅成功时候,返回:

{
  "command": "unsubscribe",
  "account": "jDUjqoDZLhzx4DCf6pvSivjkjgtRESY62c",
  "success": true,
  "type": "account"
}

当请求的JSON格式有问题时,返回:

{
  "success": false,
  "error": "xxx"
}

当请求的参数不正确时,返回:

{
  "account": "jDUjqoDZLhzx4DCf6pvSivjkjgtRESYdfad62c",
  "success": false,
  "command": "unsubscribe",
  "type": "account",
  "error": "XXX"
}

取消订阅,参数不正确主要是account缺失或者格式不正确: a)account is missing b)Invalid type c)等

接收消息

用户在做完异步操作之后,且订阅了用户的交易消息,用户可以收到如下的交易信息:

{
  "account": "jsGn5UAxwTuYfN5aa6TBC2KZyDDoFJfM8b",
  "type": "Payment",
  "success": true,
  "transaction": {
    "date": 1449484040,
    "hash": "599424E57016194C987F3F8A5F9723251C1458E7F33C4D88BC7624088238313F",
    "type": "sent",
    "fee": "0.000012",
    "result": "tesSUCCESS",
    "counterparty": "jfEPgtxzezSPievdVNpdyEJndkQki2xEZ6",
    "amount": {
      "value": "0.1",
      "currency": "CNY",
      "issuer": "j3nH2JYBPupQwHLz5UDSD2i7i4nnSsVWb5"
    },
    "effects": [ ]
  }
}

基本格式为account: 帐号,type: 交易类型,transaction: 交易信息,交易类型和交易信息里面的内容和API里面的信息一致。 在用户被动成交时,用户也会收到交易相关的信息。 当交易失败时,会有如下的格式的消息:

{
  "account": "jsGn5UAxwTuYfN5aa6TBC2KZyDDoFJfM8b",
  "type": "Payment",
  "success": false,
  "transaction": {
    "result": "tecNO_DST_INSUF_SWT",
    "message": "xxx"
  }
}

通过success可以判断返回的交易结果是成功的还是失败的,其他的失败记录均即时反馈回给用户,无需在订阅中获得。

关闭订阅

通过发送如下命令,关闭订阅

{
  "command": "close"
}

关闭订阅之后,后台返回订阅关闭结果

{
  "command": "close",
  "success": true
}

错误信息

客户端错误

ClientError,此错误主要是客户端请求参数错误,包括井通地址格式不对,私钥格式不对,货币格式不对等以及根据每个接口提交的参数格式不对等导致的错误;

网络错误

NetworkError,此错误主要是网络错误,包括链接井通网络没有连上,请求服务超时等;

交易错误

TransactionError,此错误主要是重复资源号的错误,即DuplicateTransactionError;

服务端错误

ServerError,此错误主要是后台程序错误,包括代码BUG、代码实现问题等;

0 success
1000 client error
1001 Invalid parameter: address
1002 Invalid parameter: secret
1003 Invalid parameter: currency
1004 Invalid parameter: issuer
1005 Invalid parameter: order
1006 Invalid parameter: order.type
1007 Invalid parameter: order.price
1008 Invalid parameter: order.sequence
1009 Invalid parameter: hash
1010 not an order transaction
1011 Transaction specified did not affect the given account
1012 Invalid parameter: base
1013 Invalid parameter: counter
1014 Invalid parameter: destination_address
1015 Invalid parameter: amount
1016 Invalid parameter: payment
1017 Invalid parameter: payment.source
1018 Invalid parameter: payment.destination
1019 Invalid parameter: payment.amount
1020 Invalid parameter: memos,it must be an array
1021 Invalid parameter: choice,it must be a string
1022 Invalid parameter: client_id,must be a number
1023 Invalid parameter: client_id, already exits
1024 Invalid parameter: choice, not exist
1025 Not a payment transaction
1026 Invalid parameter:results_per_page
1027 Invalid parameter:page
1028 Invalid parameter:results_per_page, it mast be a number and not less than 10
1029 Invalid parameter: order.pair
1030 Invalid parameter: order.amount
1031 Missing parameters
1032 Invalid parameter: method, it must be 0 or 1
1033 Invalid parameter: payload, it must be string
1034 Invalid parameter: amount,it must be a number greater than zero
1035 Invalid parameter: params,it must be an array
2000 Server error
3000 Transaction error
3001 Could not generate wallet
4000 Network error
4001 Remote is disconnected
4002 Time out
4003 Bad gateway