76
中文 (Chinese) / Re: 测试网新版本 test-6.0.0
« on: November 02, 2021, 07:02:13 pm »
闪电贷相关操作 ( cli_wallet 命令 和 API )
基本概念:
* 闪电贷资金池是个人池,与 AMM 池不同,与挂单比较类似。
* 每个账号可以建多个池,每个池内资产可相同也可不同。
1. 建池
op name: samet_fund_create_operation
op code: 64
参数
比如:
abit-test 新建闪电贷资金池,初始注资金额 100 TEST,费率 万分之一
sign_transaction { "operations": [[64,{ "fee": { "amount": 100000, "asset_id": "1.3.0" }, "owner_account": "1.2.3833", "asset_type": "1.3.0", "balance": "10000000", "fee_rate": 100}]] } true
其中,
* TEST 资产精度是5位小数, 100 TEST 等于 10000000 聪,所以金额 balance 填 10000000
* 万分之一 等于 百万分之100,所以费率 fee_rate 填 100
1.1 检查操作结果
可以用 get_account_history 命令查看帐户操作历史,比如
结果示例
格式为:块号 时间 操作 帐号 手续费 结果
上述结果 1.20.0 即池 ID ,可以通过 get_object 命令查看
注:结果中数据比输入多一项 unpaid_amount ,平时检查时该数值恒定为 0 ,可以忽略。其他字段意义相同,不再复述。
2. 删池
op name: samet_fund_delete_operation
op code: 65
参数
注:
* 只有池主才可以删池,删除后池内资金返回账户余额
比如:
abit-test 删除 1.20.0
sign_transaction { "operations": [[65,{ "fee": { "amount": 0, "asset_id": "1.3.0" }, "owner_account": "1.2.3833", "fund_id": "1.20.0"}]] } true
2.1 检查操作结果
可以用 get_account_history 命令查看帐户操作历史,比如
结果示例
格式为:块号 时间 操作 帐号 手续费 结果
结果里 100 TEST ,表示返回 100 TEST 到账户余额
3. 修改池费率/增资/撤资
op name: samet_fund_update_operation
op code: 66
参数
比如:
abit-test 修改池 1.20.1,注资20 TEST,费率变为万分之2
sign_transaction { "operations": [[66,{ "fee": { "amount": 100000, "asset_id": "1.3.0" }, "owner_account": "1.2.3833", "fund_id": "1.20.1", "delta_amount": {"asset_id":"1.3.0","amount":"2000000"}, "new_fee_rate":200}]] } true
其中,
* TEST 资产精度是5位小数, 100 TEST 等于 10000000 聪,所以金额 balance 填 10000000
* 万分之2 等于 百万分之200,所以费率 fee_rate 填 200
3.1 检查操作结果
可以用 get_account_history 命令查看帐户操作历史,比如
结果示例
格式为:块号 时间 操作 帐号 手续费
表示操作成功
通过 get_object 命令查看池数据
4. 借款
op name: samet_fund_borrow_operation
op code: 67
参数
注:
* 借款后,必须在同一个交易(tx)里足额还款付费。示例见还款。
5. 还款
op name: samet_fund_repay_operation
op code: 68
参数
注:
* 借款后,必须在同一个交易(tx)里足额还款付费。在 cli_wallet 里可对预先构造好的交易签名广播,也可使用 transaction builder 来构造交易
* 还款人与借款人可以不同
* 可分多笔借款或者还款
* 费用为额外支付,必须不低于池定义费率
比如:
abit-test 从池 1.20.1 借 0.001 TEST 然后归还
sign_transaction { "operations": [[67, {"fee": { "amount": 100000, "asset_id": "1.3.0" },"borrower":"1.2.3833","fund_id":"1.20.1","borrow_amount":{"asset_id":"1.3.0","amount":100}}], [68, {"fee": { "amount": 100000, "asset_id": "1.3.0" },"account":"1.2.3833","fund_id":"1.20.1","repay_amount":{"asset_id":"1.3.0","amount":100},"fund_fee":{"asset_id":"1.3.0","amount":1}}]]} true
然后用 get_account_history 命令查看帐户操作历史,通过 get_object 命令查看池数据变化,此处略。
6. 批量查询 API
* 查询所有闪电贷资金池 list_samet_funds( limit, start_id )
* 按账户查询 get_samet_funds_by_owner( account_name_or_id, limit, start_id )
* 按资产查询 get_samet_funds_by_asset( asset_symbol_or_id, limit, start_id )
基本概念:
* 闪电贷资金池是个人池,与 AMM 池不同,与挂单比较类似。
* 每个账号可以建多个池,每个池内资产可相同也可不同。
1. 建池
op name: samet_fund_create_operation
op code: 64
参数
Code: [Select]
fee 手续费,测试网默认手续费 1 TEST
owner_account 账号,格式 1.2.x
asset_type 资产类型(币种),格式 1.3.x
balance 金额,整数表示,单位是聪
fee_rate 借款费率,整数表示,单位是百万分之一
比如:
abit-test 新建闪电贷资金池,初始注资金额 100 TEST,费率 万分之一
sign_transaction { "operations": [[64,{ "fee": { "amount": 100000, "asset_id": "1.3.0" }, "owner_account": "1.2.3833", "asset_type": "1.3.0", "balance": "10000000", "fee_rate": 100}]] } true
其中,
* TEST 资产精度是5位小数, 100 TEST 等于 10000000 聪,所以金额 balance 填 10000000
* 万分之一 等于 百万分之100,所以费率 fee_rate 填 100
1.1 检查操作结果
可以用 get_account_history 命令查看帐户操作历史,比如
Code: [Select]
get_account_history abit-test 10
结果示例
Quote
51352616 2021-11-02T18:50:27 samet_fund_create_operation abit-test (Fee: 1 TEST) result: 1.20.0
格式为:块号 时间 操作 帐号 手续费 结果
上述结果 1.20.0 即池 ID ,可以通过 get_object 命令查看
Code: [Select]
>>> get_object 1.20.0
[{
"id": "1.20.0",
"owner_account": "1.2.3833",
"asset_type": "1.3.0",
"balance": 10000000,
"fee_rate": 100,
"unpaid_amount": 0
}
]
注:结果中数据比输入多一项 unpaid_amount ,平时检查时该数值恒定为 0 ,可以忽略。其他字段意义相同,不再复述。
2. 删池
op name: samet_fund_delete_operation
op code: 65
参数
Code: [Select]
fee 手续费,测试网默认手续费 0 ,也就是免费
owner_account 账号,格式 1.2.x
fund_id 池 ID ,格式 1.20.x
注:
* 只有池主才可以删池,删除后池内资金返回账户余额
比如:
abit-test 删除 1.20.0
sign_transaction { "operations": [[65,{ "fee": { "amount": 0, "asset_id": "1.3.0" }, "owner_account": "1.2.3833", "fund_id": "1.20.0"}]] } true
2.1 检查操作结果
可以用 get_account_history 命令查看帐户操作历史,比如
Code: [Select]
get_account_history abit-test 10
结果示例
Quote
51352928 2021-11-02T19:07:57 samet_fund_delete_operation abit-test (Fee: 0 TEST) result: 100 TEST
格式为:块号 时间 操作 帐号 手续费 结果
结果里 100 TEST ,表示返回 100 TEST 到账户余额
3. 修改池费率/增资/撤资
op name: samet_fund_update_operation
op code: 66
参数
Code: [Select]
fee 手续费,测试网默认手续费 1 TEST
owner_account 账号,格式 1.2.x
fund_id 池 ID ,格式 1.20.x
delta_amount 变化金额,可选(不填表示不变),标准金额格式(数量+币种),数量为正为增资,为负为撤资
new_fee_rate 新的借款费率,可选(不填表示不变),整数表示,单位是百万分之一
比如:
abit-test 修改池 1.20.1,注资20 TEST,费率变为万分之2
sign_transaction { "operations": [[66,{ "fee": { "amount": 100000, "asset_id": "1.3.0" }, "owner_account": "1.2.3833", "fund_id": "1.20.1", "delta_amount": {"asset_id":"1.3.0","amount":"2000000"}, "new_fee_rate":200}]] } true
其中,
* TEST 资产精度是5位小数, 100 TEST 等于 10000000 聪,所以金额 balance 填 10000000
* 万分之2 等于 百万分之200,所以费率 fee_rate 填 200
3.1 检查操作结果
可以用 get_account_history 命令查看帐户操作历史,比如
Code: [Select]
get_account_history abit-test 10
结果示例
Quote
51353633 2021-11-02T19:47:21 samet_fund_update_operation abit-test (Fee: 1 TEST)
格式为:块号 时间 操作 帐号 手续费
表示操作成功
通过 get_object 命令查看池数据
Code: [Select]
>>> get_object 1.20.1
[{
"id": "1.20.1",
"owner_account": "1.2.3833",
"asset_type": "1.3.0",
"balance": 12000000,
"fee_rate": 200,
"unpaid_amount": 0
}
]
4. 借款
op name: samet_fund_borrow_operation
op code: 67
参数
Code: [Select]
fee 手续费,测试网默认手续费 1 TEST
borrower 借款人,格式 1.2.x
fund_id 池 ID ,格式 1.20.x
borrow_amount 借款金额,标准金额格式(数量+币种)
注:
* 借款后,必须在同一个交易(tx)里足额还款付费。示例见还款。
5. 还款
op name: samet_fund_repay_operation
op code: 68
参数
Code: [Select]
fee 手续费,测试网默认手续费 1 TEST
account 还款人,格式 1.2.x
fund_id 池 ID ,格式 1.20.x
repay_amount 还款金额,标准金额格式(数量+币种)
fund_fee 支付借款费用,标准金额格式(数量+币种)
注:
* 借款后,必须在同一个交易(tx)里足额还款付费。在 cli_wallet 里可对预先构造好的交易签名广播,也可使用 transaction builder 来构造交易
* 还款人与借款人可以不同
* 可分多笔借款或者还款
* 费用为额外支付,必须不低于池定义费率
比如:
abit-test 从池 1.20.1 借 0.001 TEST 然后归还
sign_transaction { "operations": [[67, {"fee": { "amount": 100000, "asset_id": "1.3.0" },"borrower":"1.2.3833","fund_id":"1.20.1","borrow_amount":{"asset_id":"1.3.0","amount":100}}], [68, {"fee": { "amount": 100000, "asset_id": "1.3.0" },"account":"1.2.3833","fund_id":"1.20.1","repay_amount":{"asset_id":"1.3.0","amount":100},"fund_fee":{"asset_id":"1.3.0","amount":1}}]]} true
然后用 get_account_history 命令查看帐户操作历史,通过 get_object 命令查看池数据变化,此处略。
6. 批量查询 API
* 查询所有闪电贷资金池 list_samet_funds( limit, start_id )
* 按账户查询 get_samet_funds_by_owner( account_name_or_id, limit, start_id )
* 按资产查询 get_samet_funds_by_asset( asset_symbol_or_id, limit, start_id )