Commit 38119f4b authored by pengjun's avatar pengjun

#627 fix double types of issuance & collateralize

parent 38154040
......@@ -5,8 +5,6 @@
package executor
import (
"math"
"github.com/33cn/chain33/common/db/table"
"github.com/33cn/chain33/account"
......@@ -30,11 +28,11 @@ const (
const (
Coin = types.Coin // 1e8
DefaultDebtCeiling = 10000 * Coin // 默认借贷限额
DefaultLiquidationRatio = 0.4 // 默认质押比
DefaultStabilityFeeRation = 0.08 // 默认稳定费
DefaultLiquidationRatio = 0.4 * 1e4 // 默认质押比
DefaultStabilityFeeRation = 0.08 * 1e4 // 默认稳定费
DefaultPeriod = 3600 * 24 * 365 // 默认合约限期
DefaultTotalBalance = 0 // 默认放贷总额
PriceWarningRate = 1.3 // 价格提前预警率
PriceWarningRate = 1.3 * 1e4 // 价格提前预警率
ExpireWarningTime = 3600 * 24 * 10 // 提前10天超时预警
)
......@@ -215,8 +213,8 @@ func (action *Action) GetIndex() int64 {
return action.height*types.MaxTxsPerBlock + int64(action.index)
}
func getLatestLiquidationPrice(coll *pty.Collateralize) float64 {
var latest float64
func getLatestLiquidationPrice(coll *pty.Collateralize) int64 {
var latest int64
for _, collRecord := range coll.BorrowRecords {
if collRecord.LiquidationPrice > latest {
latest = collRecord.LiquidationPrice
......@@ -250,8 +248,8 @@ func (action *Action) CollateralizeManage(manage *pty.CollateralizeManage) (*typ
}
// 配置借贷参数
if manage.DebtCeiling < 0 || manage.LiquidationRatio < 0 || manage.LiquidationRatio >= 1 ||
manage.StabilityFeeRatio < 0 || manage.StabilityFeeRatio >= 1 {
if manage.DebtCeiling < 0 || manage.LiquidationRatio < 0 || manage.LiquidationRatio >= 10000 ||
manage.StabilityFeeRatio < 0 || manage.StabilityFeeRatio >= 10000 {
return nil, pty.ErrRiskParam
}
......@@ -464,28 +462,24 @@ func (action *Action) CollateralizeCreate(create *pty.CollateralizeCreate) (*typ
}
// 根据最近抵押物价格计算需要冻结的BTY数量
func getBtyNumToFrozen(value int64, price float64, ratio float64) (int64, error) {
func getBtyNumToFrozen(value int64, price int64, ratio int64) (int64, error) {
if price == 0 {
clog.Error("Bty price should greate to 0")
return 0, pty.ErrPriceInvalid
}
valueReal := float64(value) / 1e8
btyValue := valueReal / (price * ratio)
return int64(math.Trunc((btyValue+0.0000001)*1e4)) * 1e4, nil
btyValue := (value * 1e4) / (price * ratio)
return btyValue * 1e4, nil
}
// 计算清算价格
// value:借出ccny数量, colValue:抵押物数量, price:抵押物价格
func calcLiquidationPrice(value int64, colValue int64) float64 {
liquidationRation := float64(value) / float64(colValue)
liquidationPrice := math.Trunc(liquidationRation*pty.CollateralizePreLiquidationRatio*1e4) / 1e4
return liquidationPrice
func calcLiquidationPrice(value int64, colValue int64) int64 {
return (value *pty.CollateralizePreLiquidationRatio) / colValue
}
// 获取最近抵押物价格
func getLatestPrice(db dbm.KV) (float64, error) {
func getLatestPrice(db dbm.KV) (int64, error) {
data, err := db.Get(PriceKey())
if err != nil {
clog.Error("getLatestPrice", "get", err)
......@@ -621,7 +615,7 @@ func (action *Action) CollateralizeBorrow(borrow *pty.CollateralizeBorrow) (*typ
borrowRecord.StartTime = action.blocktime
borrowRecord.CollateralPrice = lastPrice
borrowRecord.DebtValue = borrow.GetValue()
borrowRecord.LiquidationPrice = math.Trunc(coll.LiquidationRatio*lastPrice*pty.CollateralizePreLiquidationRatio*1e4) / 1e4
borrowRecord.LiquidationPrice = (coll.LiquidationRatio*lastPrice*pty.CollateralizePreLiquidationRatio)/1e8
borrowRecord.Status = pty.CollateralizeUserStatusCreate
borrowRecord.ExpireTime = action.blocktime + coll.Period
......@@ -684,8 +678,8 @@ func (action *Action) CollateralizeRepay(repay *pty.CollateralizeRepay) (*types.
}
// 借贷金额+利息
fee := (float64(borrowRecord.DebtValue) / 1e8) * coll.StabilityFeeRatio
realRepay := borrowRecord.DebtValue + int64(math.Trunc((fee+0.0000001)*1e4))*1e4
fee := (borrowRecord.DebtValue * coll.StabilityFeeRatio)/1e4
realRepay := borrowRecord.DebtValue + fee
// 检查
if !action.CheckExecTokenAccount(action.fromaddr, realRepay, false) {
......@@ -899,12 +893,12 @@ func getGuarantorAddr(db dbm.KV) (string, error) {
}
// 系统清算
func (action *Action) systemLiquidation(coll *pty.Collateralize, price float64) (*types.Receipt, error) {
func (action *Action) systemLiquidation(coll *pty.Collateralize, price int64) (*types.Receipt, error) {
var logs []*types.ReceiptLog
var kv []*types.KeyValue
for index, borrowRecord := range coll.BorrowRecords {
if borrowRecord.LiquidationPrice*PriceWarningRate < price {
if (borrowRecord.LiquidationPrice*PriceWarningRate)/1e4 < price {
if borrowRecord.Status == pty.CollateralizeUserStatusWarning {
borrowRecord.PreStatus = borrowRecord.Status
borrowRecord.Status = pty.CollateralizeUserStatusCreate
......@@ -1013,8 +1007,8 @@ func (action *Action) expireLiquidation(coll *pty.Collateralize) (*types.Receipt
}
// 价格计算策略
func pricePolicy(feed *pty.CollateralizeFeed) float64 {
var totalPrice float64
func pricePolicy(feed *pty.CollateralizeFeed) int64 {
var totalPrice int64
var totalVolume int64
for _, volume := range feed.Volume {
totalVolume += volume
......@@ -1026,7 +1020,7 @@ func pricePolicy(feed *pty.CollateralizeFeed) float64 {
}
for i, price := range feed.Price {
totalPrice += price * (float64(feed.Volume[i]) / float64(totalVolume))
totalPrice += (price * feed.Volume[i]) / totalVolume
}
return totalPrice
......
......@@ -7,14 +7,14 @@ message Collateralize {
string collateralizeId = 1; //放贷ID,一期放贷对应一个ID
int64 totalBalance = 2; //当期放贷的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
double liquidationRatio = 4; //清算比例
double stabilityFeeRatio = 5; //稳定费率
int64 liquidationRatio = 4; //清算比例
int64 stabilityFeeRatio = 5; //稳定费率
string createAddr = 6; //创建人地址
int64 balance = 7; //放贷剩余金额(ccny)
repeated BorrowRecord borrowRecords = 8; //借贷记录
repeated BorrowRecord InvalidRecords = 9; //失效的借贷记录
int32 status = 10;//当期借贷的状态,是否关闭
double latestLiquidationPrice = 11;//最高清算价格
int64 latestLiquidationPrice = 11;//最高清算价格
int64 period = 12;//借贷最大期限
int64 latestExpireTime = 13;//最近超期时间
int64 collBalance = 14;//抵押bty
......@@ -26,9 +26,9 @@ message BorrowRecord {
string accountAddr = 1; //借贷人地址
int64 startTime = 2; //借贷时间
int64 collateralValue = 3; //抵押物价值(bty)
double collateralPrice = 4; //抵押物价格
int64 collateralPrice = 4; //抵押物价格
int64 debtValue = 5; //债务价值(ccny)
double liquidationPrice = 6; //抵押物清算价格
int64 liquidationPrice = 6; //抵押物清算价格
int32 status = 7; //抵押状态,是否被清算
int64 liquidateTime = 8; //清算时间
int64 expireTime = 9; //超时清算时间
......@@ -40,9 +40,9 @@ message BorrowRecord {
// 资产价格记录
message AssetPriceRecord {
int64 recordTime = 1; //价格记录时间
double btyPrice = 2; //bty价格
double btcPrice = 3; //btc价格
double ethPrice = 4; //eth价格
int64 btyPrice = 2; //bty价格
int64 btcPrice = 3; //btc价格
int64 ethPrice = 4; //eth价格
}
// action
......@@ -61,8 +61,8 @@ message CollateralizeAction {
message CollateralizeManage {
int64 debtCeiling = 1; //单用户可借出的限额(ccny)
double liquidationRatio = 2; //清算比例
double stabilityFeeRatio = 3; //稳定费
int64 liquidationRatio = 2; //清算比例
int64 stabilityFeeRatio = 3; //稳定费
int64 period = 4; //合约期限
int64 totalBalance = 5; //放贷总量
int64 currentTime = 6; //设置时间
......@@ -98,7 +98,7 @@ message CollateralizeAppend {
// 喂价
message CollateralizeFeed {
int32 collType = 1; //抵押物价格类型(1,bty,2,btc,3,eth...)
repeated double price = 2; //喂价
repeated int64 price = 2; //喂价
repeated int64 volume = 3; //成交量
}
......@@ -131,8 +131,8 @@ message RepCollateralizeCurrentInfo {
int32 status = 1;//当期借贷的状态,是否关闭
int64 totalBalance = 2; //当期可借贷的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
double liquidationRatio = 4; //清算比例
double stabilityFeeRatio = 5; //稳定费
int64 liquidationRatio = 4; //清算比例
int64 stabilityFeeRatio = 5; //稳定费
string createAddr = 6; //创建人地址
int64 balance = 7; //剩余可借贷金额(ccny)
int64 period = 8; //合约期限
......@@ -192,7 +192,7 @@ message RepCollateralizeRecords {
// 精确查找借贷记录
message ReqCollateralizeRecord {
string collateralizeId = 1;
string recordId = 2;
string recordId = 2;
}
// 返回借贷记录
......@@ -203,8 +203,8 @@ message RepCollateralizeRecord {
// 返回放贷配置
message RepCollateralizeConfig {
int64 debtCeiling = 1; //单用户可借出的限额(ccny)
double liquidationRatio = 2; //清算比例
double stabilityFeeRatio = 3; //稳定费
int64 liquidationRatio = 2; //清算比例
int64 stabilityFeeRatio = 3; //稳定费
int64 period = 4; //合约期限
int64 totalBalance = 5; //放贷总量
int64 balance = 6; //剩余放贷额度
......@@ -213,5 +213,5 @@ message RepCollateralizeConfig {
// 返回最新抵押物价格
message RepCollateralizePrice {
double price = 1; //当前抵押物最新价格
int64 price = 1; //当前抵押物最新价格
}
\ No newline at end of file
## 借贷合约表结构
###放贷表coller表结构
### 放贷表coller表结构
字段名称|类型|说明
---|---|---
collateralizeId|string|放贷ID,主键
......@@ -8,14 +8,14 @@ accountAddr|string|大户地址
recordId|string|借贷ID
status|int32|放贷状态(1:已放贷 2:已收回)
###放贷表coller表索引
### 放贷表coller表索引
索引名|说明
---|---
status|根据放贷状态查询放贷ID
addr|根据大户地址查询放贷ID
addr_status|根据放贷状态和大户地址查询放贷ID
###借贷表borrow表结构
### 借贷表borrow表结构
字段名称|类型|说明
---|---|---
recordId|string|借贷ID,主键
......@@ -23,7 +23,7 @@ collateralizeId|string|放贷ID
accountAddr|string|用户地址
status|int32|借贷状态(1:已发行 2:价格清算告警 3:价格清算 4:超时清算告警 5:超时清算 6:已清算)
###放贷表borrow表索引
### 放贷表borrow表索引
索引名|说明
---|---
status|根据借贷状态查询借贷ID
......
......@@ -270,9 +270,13 @@ func CreateRawCollateralizeFeedTx(cfg *types.Chain33Config, parm *CollateralizeF
}
v := &CollateralizeFeed{
Price: parm.Price,
Volume: parm.Volume,
}
for _, r := range parm.Price {
v.Price = append(v.Price, int64(math.Trunc(r*1e4)))
}
feed := &CollateralizeAction{
Ty: CollateralizeActionFeed,
Value: &CollateralizeAction_Feed{v},
......@@ -330,8 +334,8 @@ func CreateRawCollateralizeManageTx(cfg *types.Chain33Config, parm *Collateraliz
v := &CollateralizeManage{
DebtCeiling: int64(math.Trunc((parm.DebtCeiling+0.0000001)*1e4)) * 1e4,
LiquidationRatio: parm.LiquidationRatio,
StabilityFeeRatio: parm.StabilityFeeRatio,
LiquidationRatio: int64(math.Trunc((parm.LiquidationRatio+0.0000001)*1e4)),
StabilityFeeRatio: int64(math.Trunc((parm.StabilityFeeRatio+0.0000001)*1e4)),
Period: parm.Period,
TotalBalance: int64(math.Trunc((parm.TotalBalance+0.0000001)*1e4)) * 1e4,
}
......
......@@ -5,9 +5,7 @@ package types
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
......@@ -20,21 +18,21 @@ var _ = math.Inf
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// 放贷信息
type Collateralize struct {
CollateralizeId string `protobuf:"bytes,1,opt,name=collateralizeId,proto3" json:"collateralizeId,omitempty"`
TotalBalance int64 `protobuf:"varint,2,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`
DebtCeiling int64 `protobuf:"varint,3,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`
LiquidationRatio float64 `protobuf:"fixed64,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio float64 `protobuf:"fixed64,5,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
LiquidationRatio int64 `protobuf:"varint,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio int64 `protobuf:"varint,5,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
CreateAddr string `protobuf:"bytes,6,opt,name=createAddr,proto3" json:"createAddr,omitempty"`
Balance int64 `protobuf:"varint,7,opt,name=balance,proto3" json:"balance,omitempty"`
BorrowRecords []*BorrowRecord `protobuf:"bytes,8,rep,name=borrowRecords,proto3" json:"borrowRecords,omitempty"`
InvalidRecords []*BorrowRecord `protobuf:"bytes,9,rep,name=InvalidRecords,proto3" json:"InvalidRecords,omitempty"`
Status int32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`
LatestLiquidationPrice float64 `protobuf:"fixed64,11,opt,name=latestLiquidationPrice,proto3" json:"latestLiquidationPrice,omitempty"`
LatestLiquidationPrice int64 `protobuf:"varint,11,opt,name=latestLiquidationPrice,proto3" json:"latestLiquidationPrice,omitempty"`
Period int64 `protobuf:"varint,12,opt,name=period,proto3" json:"period,omitempty"`
LatestExpireTime int64 `protobuf:"varint,13,opt,name=latestExpireTime,proto3" json:"latestExpireTime,omitempty"`
CollBalance int64 `protobuf:"varint,14,opt,name=collBalance,proto3" json:"collBalance,omitempty"`
......@@ -48,16 +46,17 @@ func (m *Collateralize) Reset() { *m = Collateralize{} }
func (m *Collateralize) String() string { return proto.CompactTextString(m) }
func (*Collateralize) ProtoMessage() {}
func (*Collateralize) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{0}
return fileDescriptor_a988fb4a61381972, []int{0}
}
func (m *Collateralize) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Collateralize.Unmarshal(m, b)
}
func (m *Collateralize) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Collateralize.Marshal(b, m, deterministic)
}
func (dst *Collateralize) XXX_Merge(src proto.Message) {
xxx_messageInfo_Collateralize.Merge(dst, src)
func (m *Collateralize) XXX_Merge(src proto.Message) {
xxx_messageInfo_Collateralize.Merge(m, src)
}
func (m *Collateralize) XXX_Size() int {
return xxx_messageInfo_Collateralize.Size(m)
......@@ -89,14 +88,14 @@ func (m *Collateralize) GetDebtCeiling() int64 {
return 0
}
func (m *Collateralize) GetLiquidationRatio() float64 {
func (m *Collateralize) GetLiquidationRatio() int64 {
if m != nil {
return m.LiquidationRatio
}
return 0
}
func (m *Collateralize) GetStabilityFeeRatio() float64 {
func (m *Collateralize) GetStabilityFeeRatio() int64 {
if m != nil {
return m.StabilityFeeRatio
}
......@@ -138,7 +137,7 @@ func (m *Collateralize) GetStatus() int32 {
return 0
}
func (m *Collateralize) GetLatestLiquidationPrice() float64 {
func (m *Collateralize) GetLatestLiquidationPrice() int64 {
if m != nil {
return m.LatestLiquidationPrice
}
......@@ -178,9 +177,9 @@ type BorrowRecord struct {
AccountAddr string `protobuf:"bytes,1,opt,name=accountAddr,proto3" json:"accountAddr,omitempty"`
StartTime int64 `protobuf:"varint,2,opt,name=startTime,proto3" json:"startTime,omitempty"`
CollateralValue int64 `protobuf:"varint,3,opt,name=collateralValue,proto3" json:"collateralValue,omitempty"`
CollateralPrice float64 `protobuf:"fixed64,4,opt,name=collateralPrice,proto3" json:"collateralPrice,omitempty"`
CollateralPrice int64 `protobuf:"varint,4,opt,name=collateralPrice,proto3" json:"collateralPrice,omitempty"`
DebtValue int64 `protobuf:"varint,5,opt,name=debtValue,proto3" json:"debtValue,omitempty"`
LiquidationPrice float64 `protobuf:"fixed64,6,opt,name=liquidationPrice,proto3" json:"liquidationPrice,omitempty"`
LiquidationPrice int64 `protobuf:"varint,6,opt,name=liquidationPrice,proto3" json:"liquidationPrice,omitempty"`
Status int32 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"`
LiquidateTime int64 `protobuf:"varint,8,opt,name=liquidateTime,proto3" json:"liquidateTime,omitempty"`
ExpireTime int64 `protobuf:"varint,9,opt,name=expireTime,proto3" json:"expireTime,omitempty"`
......@@ -196,16 +195,17 @@ func (m *BorrowRecord) Reset() { *m = BorrowRecord{} }
func (m *BorrowRecord) String() string { return proto.CompactTextString(m) }
func (*BorrowRecord) ProtoMessage() {}
func (*BorrowRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{1}
return fileDescriptor_a988fb4a61381972, []int{1}
}
func (m *BorrowRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BorrowRecord.Unmarshal(m, b)
}
func (m *BorrowRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BorrowRecord.Marshal(b, m, deterministic)
}
func (dst *BorrowRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_BorrowRecord.Merge(dst, src)
func (m *BorrowRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_BorrowRecord.Merge(m, src)
}
func (m *BorrowRecord) XXX_Size() int {
return xxx_messageInfo_BorrowRecord.Size(m)
......@@ -237,7 +237,7 @@ func (m *BorrowRecord) GetCollateralValue() int64 {
return 0
}
func (m *BorrowRecord) GetCollateralPrice() float64 {
func (m *BorrowRecord) GetCollateralPrice() int64 {
if m != nil {
return m.CollateralPrice
}
......@@ -251,7 +251,7 @@ func (m *BorrowRecord) GetDebtValue() int64 {
return 0
}
func (m *BorrowRecord) GetLiquidationPrice() float64 {
func (m *BorrowRecord) GetLiquidationPrice() int64 {
if m != nil {
return m.LiquidationPrice
}
......@@ -303,9 +303,9 @@ func (m *BorrowRecord) GetCollateralizeId() string {
// 资产价格记录
type AssetPriceRecord struct {
RecordTime int64 `protobuf:"varint,1,opt,name=recordTime,proto3" json:"recordTime,omitempty"`
BtyPrice float64 `protobuf:"fixed64,2,opt,name=btyPrice,proto3" json:"btyPrice,omitempty"`
BtcPrice float64 `protobuf:"fixed64,3,opt,name=btcPrice,proto3" json:"btcPrice,omitempty"`
EthPrice float64 `protobuf:"fixed64,4,opt,name=ethPrice,proto3" json:"ethPrice,omitempty"`
BtyPrice int64 `protobuf:"varint,2,opt,name=btyPrice,proto3" json:"btyPrice,omitempty"`
BtcPrice int64 `protobuf:"varint,3,opt,name=btcPrice,proto3" json:"btcPrice,omitempty"`
EthPrice int64 `protobuf:"varint,4,opt,name=ethPrice,proto3" json:"ethPrice,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
......@@ -315,16 +315,17 @@ func (m *AssetPriceRecord) Reset() { *m = AssetPriceRecord{} }
func (m *AssetPriceRecord) String() string { return proto.CompactTextString(m) }
func (*AssetPriceRecord) ProtoMessage() {}
func (*AssetPriceRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{2}
return fileDescriptor_a988fb4a61381972, []int{2}
}
func (m *AssetPriceRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AssetPriceRecord.Unmarshal(m, b)
}
func (m *AssetPriceRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AssetPriceRecord.Marshal(b, m, deterministic)
}
func (dst *AssetPriceRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_AssetPriceRecord.Merge(dst, src)
func (m *AssetPriceRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_AssetPriceRecord.Merge(m, src)
}
func (m *AssetPriceRecord) XXX_Size() int {
return xxx_messageInfo_AssetPriceRecord.Size(m)
......@@ -342,21 +343,21 @@ func (m *AssetPriceRecord) GetRecordTime() int64 {
return 0
}
func (m *AssetPriceRecord) GetBtyPrice() float64 {
func (m *AssetPriceRecord) GetBtyPrice() int64 {
if m != nil {
return m.BtyPrice
}
return 0
}
func (m *AssetPriceRecord) GetBtcPrice() float64 {
func (m *AssetPriceRecord) GetBtcPrice() int64 {
if m != nil {
return m.BtcPrice
}
return 0
}
func (m *AssetPriceRecord) GetEthPrice() float64 {
func (m *AssetPriceRecord) GetEthPrice() int64 {
if m != nil {
return m.EthPrice
}
......@@ -384,16 +385,17 @@ func (m *CollateralizeAction) Reset() { *m = CollateralizeAction{} }
func (m *CollateralizeAction) String() string { return proto.CompactTextString(m) }
func (*CollateralizeAction) ProtoMessage() {}
func (*CollateralizeAction) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{3}
return fileDescriptor_a988fb4a61381972, []int{3}
}
func (m *CollateralizeAction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeAction.Unmarshal(m, b)
}
func (m *CollateralizeAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeAction.Marshal(b, m, deterministic)
}
func (dst *CollateralizeAction) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeAction.Merge(dst, src)
func (m *CollateralizeAction) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeAction.Merge(m, src)
}
func (m *CollateralizeAction) XXX_Size() int {
return xxx_messageInfo_CollateralizeAction.Size(m)
......@@ -513,9 +515,9 @@ func (m *CollateralizeAction) GetTy() int32 {
return 0
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*CollateralizeAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _CollateralizeAction_OneofMarshaler, _CollateralizeAction_OneofUnmarshaler, _CollateralizeAction_OneofSizer, []interface{}{
// XXX_OneofWrappers is for the internal use of the proto package.
func (*CollateralizeAction) XXX_OneofWrappers() []interface{} {
return []interface{}{
(*CollateralizeAction_Create)(nil),
(*CollateralizeAction_Borrow)(nil),
(*CollateralizeAction_Repay)(nil),
......@@ -526,166 +528,10 @@ func (*CollateralizeAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.B
}
}
func _CollateralizeAction_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*CollateralizeAction)
// value
switch x := m.Value.(type) {
case *CollateralizeAction_Create:
b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Create); err != nil {
return err
}
case *CollateralizeAction_Borrow:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Borrow); err != nil {
return err
}
case *CollateralizeAction_Repay:
b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Repay); err != nil {
return err
}
case *CollateralizeAction_Append:
b.EncodeVarint(4<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Append); err != nil {
return err
}
case *CollateralizeAction_Feed:
b.EncodeVarint(5<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Feed); err != nil {
return err
}
case *CollateralizeAction_Retrieve:
b.EncodeVarint(6<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Retrieve); err != nil {
return err
}
case *CollateralizeAction_Manage:
b.EncodeVarint(7<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Manage); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("CollateralizeAction.Value has unexpected type %T", x)
}
return nil
}
func _CollateralizeAction_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*CollateralizeAction)
switch tag {
case 1: // value.create
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(CollateralizeCreate)
err := b.DecodeMessage(msg)
m.Value = &CollateralizeAction_Create{msg}
return true, err
case 2: // value.borrow
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(CollateralizeBorrow)
err := b.DecodeMessage(msg)
m.Value = &CollateralizeAction_Borrow{msg}
return true, err
case 3: // value.repay
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(CollateralizeRepay)
err := b.DecodeMessage(msg)
m.Value = &CollateralizeAction_Repay{msg}
return true, err
case 4: // value.append
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(CollateralizeAppend)
err := b.DecodeMessage(msg)
m.Value = &CollateralizeAction_Append{msg}
return true, err
case 5: // value.feed
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(CollateralizeFeed)
err := b.DecodeMessage(msg)
m.Value = &CollateralizeAction_Feed{msg}
return true, err
case 6: // value.retrieve
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(CollateralizeRetrieve)
err := b.DecodeMessage(msg)
m.Value = &CollateralizeAction_Retrieve{msg}
return true, err
case 7: // value.manage
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(CollateralizeManage)
err := b.DecodeMessage(msg)
m.Value = &CollateralizeAction_Manage{msg}
return true, err
default:
return false, nil
}
}
func _CollateralizeAction_OneofSizer(msg proto.Message) (n int) {
m := msg.(*CollateralizeAction)
// value
switch x := m.Value.(type) {
case *CollateralizeAction_Create:
s := proto.Size(x.Create)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *CollateralizeAction_Borrow:
s := proto.Size(x.Borrow)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *CollateralizeAction_Repay:
s := proto.Size(x.Repay)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *CollateralizeAction_Append:
s := proto.Size(x.Append)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *CollateralizeAction_Feed:
s := proto.Size(x.Feed)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *CollateralizeAction_Retrieve:
s := proto.Size(x.Retrieve)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *CollateralizeAction_Manage:
s := proto.Size(x.Manage)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
type CollateralizeManage struct {
DebtCeiling int64 `protobuf:"varint,1,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`
LiquidationRatio float64 `protobuf:"fixed64,2,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio float64 `protobuf:"fixed64,3,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
LiquidationRatio int64 `protobuf:"varint,2,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio int64 `protobuf:"varint,3,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
Period int64 `protobuf:"varint,4,opt,name=period,proto3" json:"period,omitempty"`
TotalBalance int64 `protobuf:"varint,5,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`
CurrentTime int64 `protobuf:"varint,6,opt,name=currentTime,proto3" json:"currentTime,omitempty"`
......@@ -698,16 +544,17 @@ func (m *CollateralizeManage) Reset() { *m = CollateralizeManage{} }
func (m *CollateralizeManage) String() string { return proto.CompactTextString(m) }
func (*CollateralizeManage) ProtoMessage() {}
func (*CollateralizeManage) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{4}
return fileDescriptor_a988fb4a61381972, []int{4}
}
func (m *CollateralizeManage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeManage.Unmarshal(m, b)
}
func (m *CollateralizeManage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeManage.Marshal(b, m, deterministic)
}
func (dst *CollateralizeManage) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeManage.Merge(dst, src)
func (m *CollateralizeManage) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeManage.Merge(m, src)
}
func (m *CollateralizeManage) XXX_Size() int {
return xxx_messageInfo_CollateralizeManage.Size(m)
......@@ -725,14 +572,14 @@ func (m *CollateralizeManage) GetDebtCeiling() int64 {
return 0
}
func (m *CollateralizeManage) GetLiquidationRatio() float64 {
func (m *CollateralizeManage) GetLiquidationRatio() int64 {
if m != nil {
return m.LiquidationRatio
}
return 0
}
func (m *CollateralizeManage) GetStabilityFeeRatio() float64 {
func (m *CollateralizeManage) GetStabilityFeeRatio() int64 {
if m != nil {
return m.StabilityFeeRatio
}
......@@ -771,16 +618,17 @@ func (m *CollateralizeAddr) Reset() { *m = CollateralizeAddr{} }
func (m *CollateralizeAddr) String() string { return proto.CompactTextString(m) }
func (*CollateralizeAddr) ProtoMessage() {}
func (*CollateralizeAddr) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{5}
return fileDescriptor_a988fb4a61381972, []int{5}
}
func (m *CollateralizeAddr) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeAddr.Unmarshal(m, b)
}
func (m *CollateralizeAddr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeAddr.Marshal(b, m, deterministic)
}
func (dst *CollateralizeAddr) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeAddr.Merge(dst, src)
func (m *CollateralizeAddr) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeAddr.Merge(m, src)
}
func (m *CollateralizeAddr) XXX_Size() int {
return xxx_messageInfo_CollateralizeAddr.Size(m)
......@@ -810,16 +658,17 @@ func (m *CollateralizeCreate) Reset() { *m = CollateralizeCreate{} }
func (m *CollateralizeCreate) String() string { return proto.CompactTextString(m) }
func (*CollateralizeCreate) ProtoMessage() {}
func (*CollateralizeCreate) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{6}
return fileDescriptor_a988fb4a61381972, []int{6}
}
func (m *CollateralizeCreate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeCreate.Unmarshal(m, b)
}
func (m *CollateralizeCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeCreate.Marshal(b, m, deterministic)
}
func (dst *CollateralizeCreate) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeCreate.Merge(dst, src)
func (m *CollateralizeCreate) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeCreate.Merge(m, src)
}
func (m *CollateralizeCreate) XXX_Size() int {
return xxx_messageInfo_CollateralizeCreate.Size(m)
......@@ -850,16 +699,17 @@ func (m *CollateralizeBorrow) Reset() { *m = CollateralizeBorrow{} }
func (m *CollateralizeBorrow) String() string { return proto.CompactTextString(m) }
func (*CollateralizeBorrow) ProtoMessage() {}
func (*CollateralizeBorrow) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{7}
return fileDescriptor_a988fb4a61381972, []int{7}
}
func (m *CollateralizeBorrow) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeBorrow.Unmarshal(m, b)
}
func (m *CollateralizeBorrow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeBorrow.Marshal(b, m, deterministic)
}
func (dst *CollateralizeBorrow) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeBorrow.Merge(dst, src)
func (m *CollateralizeBorrow) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeBorrow.Merge(m, src)
}
func (m *CollateralizeBorrow) XXX_Size() int {
return xxx_messageInfo_CollateralizeBorrow.Size(m)
......@@ -897,16 +747,17 @@ func (m *CollateralizeRepay) Reset() { *m = CollateralizeRepay{} }
func (m *CollateralizeRepay) String() string { return proto.CompactTextString(m) }
func (*CollateralizeRepay) ProtoMessage() {}
func (*CollateralizeRepay) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{8}
return fileDescriptor_a988fb4a61381972, []int{8}
}
func (m *CollateralizeRepay) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeRepay.Unmarshal(m, b)
}
func (m *CollateralizeRepay) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeRepay.Marshal(b, m, deterministic)
}
func (dst *CollateralizeRepay) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeRepay.Merge(dst, src)
func (m *CollateralizeRepay) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeRepay.Merge(m, src)
}
func (m *CollateralizeRepay) XXX_Size() int {
return xxx_messageInfo_CollateralizeRepay.Size(m)
......@@ -945,16 +796,17 @@ func (m *CollateralizeAppend) Reset() { *m = CollateralizeAppend{} }
func (m *CollateralizeAppend) String() string { return proto.CompactTextString(m) }
func (*CollateralizeAppend) ProtoMessage() {}
func (*CollateralizeAppend) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{9}
return fileDescriptor_a988fb4a61381972, []int{9}
}
func (m *CollateralizeAppend) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeAppend.Unmarshal(m, b)
}
func (m *CollateralizeAppend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeAppend.Marshal(b, m, deterministic)
}
func (dst *CollateralizeAppend) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeAppend.Merge(dst, src)
func (m *CollateralizeAppend) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeAppend.Merge(m, src)
}
func (m *CollateralizeAppend) XXX_Size() int {
return xxx_messageInfo_CollateralizeAppend.Size(m)
......@@ -988,28 +840,29 @@ func (m *CollateralizeAppend) GetCollateralValue() int64 {
// 喂价
type CollateralizeFeed struct {
CollType int32 `protobuf:"varint,1,opt,name=collType,proto3" json:"collType,omitempty"`
Price []float64 `protobuf:"fixed64,2,rep,packed,name=price,proto3" json:"price,omitempty"`
Volume []int64 `protobuf:"varint,3,rep,packed,name=volume,proto3" json:"volume,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
CollType int32 `protobuf:"varint,1,opt,name=collType,proto3" json:"collType,omitempty"`
Price []int64 `protobuf:"varint,2,rep,packed,name=price,proto3" json:"price,omitempty"`
Volume []int64 `protobuf:"varint,3,rep,packed,name=volume,proto3" json:"volume,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CollateralizeFeed) Reset() { *m = CollateralizeFeed{} }
func (m *CollateralizeFeed) String() string { return proto.CompactTextString(m) }
func (*CollateralizeFeed) ProtoMessage() {}
func (*CollateralizeFeed) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{10}
return fileDescriptor_a988fb4a61381972, []int{10}
}
func (m *CollateralizeFeed) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeFeed.Unmarshal(m, b)
}
func (m *CollateralizeFeed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeFeed.Marshal(b, m, deterministic)
}
func (dst *CollateralizeFeed) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeFeed.Merge(dst, src)
func (m *CollateralizeFeed) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeFeed.Merge(m, src)
}
func (m *CollateralizeFeed) XXX_Size() int {
return xxx_messageInfo_CollateralizeFeed.Size(m)
......@@ -1027,7 +880,7 @@ func (m *CollateralizeFeed) GetCollType() int32 {
return 0
}
func (m *CollateralizeFeed) GetPrice() []float64 {
func (m *CollateralizeFeed) GetPrice() []int64 {
if m != nil {
return m.Price
}
......@@ -1054,16 +907,17 @@ func (m *CollateralizeRetrieve) Reset() { *m = CollateralizeRetrieve{} }
func (m *CollateralizeRetrieve) String() string { return proto.CompactTextString(m) }
func (*CollateralizeRetrieve) ProtoMessage() {}
func (*CollateralizeRetrieve) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{11}
return fileDescriptor_a988fb4a61381972, []int{11}
}
func (m *CollateralizeRetrieve) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeRetrieve.Unmarshal(m, b)
}
func (m *CollateralizeRetrieve) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeRetrieve.Marshal(b, m, deterministic)
}
func (dst *CollateralizeRetrieve) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeRetrieve.Merge(dst, src)
func (m *CollateralizeRetrieve) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeRetrieve.Merge(m, src)
}
func (m *CollateralizeRetrieve) XXX_Size() int {
return xxx_messageInfo_CollateralizeRetrieve.Size(m)
......@@ -1103,16 +957,17 @@ func (m *ReceiptCollateralize) Reset() { *m = ReceiptCollateralize{} }
func (m *ReceiptCollateralize) String() string { return proto.CompactTextString(m) }
func (*ReceiptCollateralize) ProtoMessage() {}
func (*ReceiptCollateralize) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{12}
return fileDescriptor_a988fb4a61381972, []int{12}
}
func (m *ReceiptCollateralize) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReceiptCollateralize.Unmarshal(m, b)
}
func (m *ReceiptCollateralize) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReceiptCollateralize.Marshal(b, m, deterministic)
}
func (dst *ReceiptCollateralize) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReceiptCollateralize.Merge(dst, src)
func (m *ReceiptCollateralize) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReceiptCollateralize.Merge(m, src)
}
func (m *ReceiptCollateralize) XXX_Size() int {
return xxx_messageInfo_ReceiptCollateralize.Size(m)
......@@ -1163,16 +1018,17 @@ func (m *CollateralizeRecords) Reset() { *m = CollateralizeRecords{} }
func (m *CollateralizeRecords) String() string { return proto.CompactTextString(m) }
func (*CollateralizeRecords) ProtoMessage() {}
func (*CollateralizeRecords) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{13}
return fileDescriptor_a988fb4a61381972, []int{13}
}
func (m *CollateralizeRecords) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CollateralizeRecords.Unmarshal(m, b)
}
func (m *CollateralizeRecords) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CollateralizeRecords.Marshal(b, m, deterministic)
}
func (dst *CollateralizeRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeRecords.Merge(dst, src)
func (m *CollateralizeRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_CollateralizeRecords.Merge(m, src)
}
func (m *CollateralizeRecords) XXX_Size() int {
return xxx_messageInfo_CollateralizeRecords.Size(m)
......@@ -1202,16 +1058,17 @@ func (m *ReqCollateralizeInfo) Reset() { *m = ReqCollateralizeInfo{} }
func (m *ReqCollateralizeInfo) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeInfo) ProtoMessage() {}
func (*ReqCollateralizeInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{14}
return fileDescriptor_a988fb4a61381972, []int{14}
}
func (m *ReqCollateralizeInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeInfo.Unmarshal(m, b)
}
func (m *ReqCollateralizeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeInfo.Marshal(b, m, deterministic)
}
func (dst *ReqCollateralizeInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeInfo.Merge(dst, src)
func (m *ReqCollateralizeInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeInfo.Merge(m, src)
}
func (m *ReqCollateralizeInfo) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeInfo.Size(m)
......@@ -1234,8 +1091,8 @@ type RepCollateralizeCurrentInfo struct {
Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
TotalBalance int64 `protobuf:"varint,2,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`
DebtCeiling int64 `protobuf:"varint,3,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`
LiquidationRatio float64 `protobuf:"fixed64,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio float64 `protobuf:"fixed64,5,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
LiquidationRatio int64 `protobuf:"varint,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio int64 `protobuf:"varint,5,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
CreateAddr string `protobuf:"bytes,6,opt,name=createAddr,proto3" json:"createAddr,omitempty"`
Balance int64 `protobuf:"varint,7,opt,name=balance,proto3" json:"balance,omitempty"`
Period int64 `protobuf:"varint,8,opt,name=period,proto3" json:"period,omitempty"`
......@@ -1251,16 +1108,17 @@ func (m *RepCollateralizeCurrentInfo) Reset() { *m = RepCollateralizeCur
func (m *RepCollateralizeCurrentInfo) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeCurrentInfo) ProtoMessage() {}
func (*RepCollateralizeCurrentInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{15}
return fileDescriptor_a988fb4a61381972, []int{15}
}
func (m *RepCollateralizeCurrentInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizeCurrentInfo.Unmarshal(m, b)
}
func (m *RepCollateralizeCurrentInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizeCurrentInfo.Marshal(b, m, deterministic)
}
func (dst *RepCollateralizeCurrentInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeCurrentInfo.Merge(dst, src)
func (m *RepCollateralizeCurrentInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeCurrentInfo.Merge(m, src)
}
func (m *RepCollateralizeCurrentInfo) XXX_Size() int {
return xxx_messageInfo_RepCollateralizeCurrentInfo.Size(m)
......@@ -1292,14 +1150,14 @@ func (m *RepCollateralizeCurrentInfo) GetDebtCeiling() int64 {
return 0
}
func (m *RepCollateralizeCurrentInfo) GetLiquidationRatio() float64 {
func (m *RepCollateralizeCurrentInfo) GetLiquidationRatio() int64 {
if m != nil {
return m.LiquidationRatio
}
return 0
}
func (m *RepCollateralizeCurrentInfo) GetStabilityFeeRatio() float64 {
func (m *RepCollateralizeCurrentInfo) GetStabilityFeeRatio() int64 {
if m != nil {
return m.StabilityFeeRatio
}
......@@ -1360,16 +1218,17 @@ func (m *ReqCollateralizeInfos) Reset() { *m = ReqCollateralizeInfos{} }
func (m *ReqCollateralizeInfos) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeInfos) ProtoMessage() {}
func (*ReqCollateralizeInfos) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{16}
return fileDescriptor_a988fb4a61381972, []int{16}
}
func (m *ReqCollateralizeInfos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeInfos.Unmarshal(m, b)
}
func (m *ReqCollateralizeInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeInfos.Marshal(b, m, deterministic)
}
func (dst *ReqCollateralizeInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeInfos.Merge(dst, src)
func (m *ReqCollateralizeInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeInfos.Merge(m, src)
}
func (m *ReqCollateralizeInfos) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeInfos.Size(m)
......@@ -1399,16 +1258,17 @@ func (m *RepCollateralizeCurrentInfos) Reset() { *m = RepCollateralizeCu
func (m *RepCollateralizeCurrentInfos) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeCurrentInfos) ProtoMessage() {}
func (*RepCollateralizeCurrentInfos) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{17}
return fileDescriptor_a988fb4a61381972, []int{17}
}
func (m *RepCollateralizeCurrentInfos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizeCurrentInfos.Unmarshal(m, b)
}
func (m *RepCollateralizeCurrentInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizeCurrentInfos.Marshal(b, m, deterministic)
}
func (dst *RepCollateralizeCurrentInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeCurrentInfos.Merge(dst, src)
func (m *RepCollateralizeCurrentInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeCurrentInfos.Merge(m, src)
}
func (m *RepCollateralizeCurrentInfos) XXX_Size() int {
return xxx_messageInfo_RepCollateralizeCurrentInfos.Size(m)
......@@ -1439,16 +1299,17 @@ func (m *ReqCollateralizeByStatus) Reset() { *m = ReqCollateralizeByStat
func (m *ReqCollateralizeByStatus) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeByStatus) ProtoMessage() {}
func (*ReqCollateralizeByStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{18}
return fileDescriptor_a988fb4a61381972, []int{18}
}
func (m *ReqCollateralizeByStatus) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeByStatus.Unmarshal(m, b)
}
func (m *ReqCollateralizeByStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeByStatus.Marshal(b, m, deterministic)
}
func (dst *ReqCollateralizeByStatus) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeByStatus.Merge(dst, src)
func (m *ReqCollateralizeByStatus) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeByStatus.Merge(m, src)
}
func (m *ReqCollateralizeByStatus) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeByStatus.Size(m)
......@@ -1487,16 +1348,17 @@ func (m *ReqCollateralizeByAddr) Reset() { *m = ReqCollateralizeByAddr{}
func (m *ReqCollateralizeByAddr) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeByAddr) ProtoMessage() {}
func (*ReqCollateralizeByAddr) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{19}
return fileDescriptor_a988fb4a61381972, []int{19}
}
func (m *ReqCollateralizeByAddr) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeByAddr.Unmarshal(m, b)
}
func (m *ReqCollateralizeByAddr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeByAddr.Marshal(b, m, deterministic)
}
func (dst *ReqCollateralizeByAddr) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeByAddr.Merge(dst, src)
func (m *ReqCollateralizeByAddr) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeByAddr.Merge(m, src)
}
func (m *ReqCollateralizeByAddr) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeByAddr.Size(m)
......@@ -1540,16 +1402,17 @@ func (m *RepCollateralizeIDs) Reset() { *m = RepCollateralizeIDs{} }
func (m *RepCollateralizeIDs) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeIDs) ProtoMessage() {}
func (*RepCollateralizeIDs) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{20}
return fileDescriptor_a988fb4a61381972, []int{20}
}
func (m *RepCollateralizeIDs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizeIDs.Unmarshal(m, b)
}
func (m *RepCollateralizeIDs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizeIDs.Marshal(b, m, deterministic)
}
func (dst *RepCollateralizeIDs) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeIDs.Merge(dst, src)
func (m *RepCollateralizeIDs) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeIDs.Merge(m, src)
}
func (m *RepCollateralizeIDs) XXX_Size() int {
return xxx_messageInfo_RepCollateralizeIDs.Size(m)
......@@ -1582,16 +1445,17 @@ func (m *ReqCollateralizeRecordByAddr) Reset() { *m = ReqCollateralizeRe
func (m *ReqCollateralizeRecordByAddr) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeRecordByAddr) ProtoMessage() {}
func (*ReqCollateralizeRecordByAddr) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{21}
return fileDescriptor_a988fb4a61381972, []int{21}
}
func (m *ReqCollateralizeRecordByAddr) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeRecordByAddr.Unmarshal(m, b)
}
func (m *ReqCollateralizeRecordByAddr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeRecordByAddr.Marshal(b, m, deterministic)
}
func (dst *ReqCollateralizeRecordByAddr) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeRecordByAddr.Merge(dst, src)
func (m *ReqCollateralizeRecordByAddr) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeRecordByAddr.Merge(m, src)
}
func (m *ReqCollateralizeRecordByAddr) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeRecordByAddr.Size(m)
......@@ -1644,16 +1508,17 @@ func (m *ReqCollateralizeRecordByStatus) Reset() { *m = ReqCollateralize
func (m *ReqCollateralizeRecordByStatus) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeRecordByStatus) ProtoMessage() {}
func (*ReqCollateralizeRecordByStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{22}
return fileDescriptor_a988fb4a61381972, []int{22}
}
func (m *ReqCollateralizeRecordByStatus) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeRecordByStatus.Unmarshal(m, b)
}
func (m *ReqCollateralizeRecordByStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeRecordByStatus.Marshal(b, m, deterministic)
}
func (dst *ReqCollateralizeRecordByStatus) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeRecordByStatus.Merge(dst, src)
func (m *ReqCollateralizeRecordByStatus) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeRecordByStatus.Merge(m, src)
}
func (m *ReqCollateralizeRecordByStatus) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeRecordByStatus.Size(m)
......@@ -1697,16 +1562,17 @@ func (m *RepCollateralizeRecords) Reset() { *m = RepCollateralizeRecords
func (m *RepCollateralizeRecords) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeRecords) ProtoMessage() {}
func (*RepCollateralizeRecords) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{23}
return fileDescriptor_a988fb4a61381972, []int{23}
}
func (m *RepCollateralizeRecords) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizeRecords.Unmarshal(m, b)
}
func (m *RepCollateralizeRecords) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizeRecords.Marshal(b, m, deterministic)
}
func (dst *RepCollateralizeRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeRecords.Merge(dst, src)
func (m *RepCollateralizeRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeRecords.Merge(m, src)
}
func (m *RepCollateralizeRecords) XXX_Size() int {
return xxx_messageInfo_RepCollateralizeRecords.Size(m)
......@@ -1737,16 +1603,17 @@ func (m *ReqCollateralizeRecord) Reset() { *m = ReqCollateralizeRecord{}
func (m *ReqCollateralizeRecord) String() string { return proto.CompactTextString(m) }
func (*ReqCollateralizeRecord) ProtoMessage() {}
func (*ReqCollateralizeRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{24}
return fileDescriptor_a988fb4a61381972, []int{24}
}
func (m *ReqCollateralizeRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCollateralizeRecord.Unmarshal(m, b)
}
func (m *ReqCollateralizeRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqCollateralizeRecord.Marshal(b, m, deterministic)
}
func (dst *ReqCollateralizeRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeRecord.Merge(dst, src)
func (m *ReqCollateralizeRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqCollateralizeRecord.Merge(m, src)
}
func (m *ReqCollateralizeRecord) XXX_Size() int {
return xxx_messageInfo_ReqCollateralizeRecord.Size(m)
......@@ -1783,16 +1650,17 @@ func (m *RepCollateralizeRecord) Reset() { *m = RepCollateralizeRecord{}
func (m *RepCollateralizeRecord) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeRecord) ProtoMessage() {}
func (*RepCollateralizeRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{25}
return fileDescriptor_a988fb4a61381972, []int{25}
}
func (m *RepCollateralizeRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizeRecord.Unmarshal(m, b)
}
func (m *RepCollateralizeRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizeRecord.Marshal(b, m, deterministic)
}
func (dst *RepCollateralizeRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeRecord.Merge(dst, src)
func (m *RepCollateralizeRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeRecord.Merge(m, src)
}
func (m *RepCollateralizeRecord) XXX_Size() int {
return xxx_messageInfo_RepCollateralizeRecord.Size(m)
......@@ -1813,8 +1681,8 @@ func (m *RepCollateralizeRecord) GetRecord() *BorrowRecord {
// 返回放贷配置
type RepCollateralizeConfig struct {
DebtCeiling int64 `protobuf:"varint,1,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`
LiquidationRatio float64 `protobuf:"fixed64,2,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio float64 `protobuf:"fixed64,3,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
LiquidationRatio int64 `protobuf:"varint,2,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
StabilityFeeRatio int64 `protobuf:"varint,3,opt,name=stabilityFeeRatio,proto3" json:"stabilityFeeRatio,omitempty"`
Period int64 `protobuf:"varint,4,opt,name=period,proto3" json:"period,omitempty"`
TotalBalance int64 `protobuf:"varint,5,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`
Balance int64 `protobuf:"varint,6,opt,name=balance,proto3" json:"balance,omitempty"`
......@@ -1828,16 +1696,17 @@ func (m *RepCollateralizeConfig) Reset() { *m = RepCollateralizeConfig{}
func (m *RepCollateralizeConfig) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizeConfig) ProtoMessage() {}
func (*RepCollateralizeConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{26}
return fileDescriptor_a988fb4a61381972, []int{26}
}
func (m *RepCollateralizeConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizeConfig.Unmarshal(m, b)
}
func (m *RepCollateralizeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizeConfig.Marshal(b, m, deterministic)
}
func (dst *RepCollateralizeConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeConfig.Merge(dst, src)
func (m *RepCollateralizeConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizeConfig.Merge(m, src)
}
func (m *RepCollateralizeConfig) XXX_Size() int {
return xxx_messageInfo_RepCollateralizeConfig.Size(m)
......@@ -1855,14 +1724,14 @@ func (m *RepCollateralizeConfig) GetDebtCeiling() int64 {
return 0
}
func (m *RepCollateralizeConfig) GetLiquidationRatio() float64 {
func (m *RepCollateralizeConfig) GetLiquidationRatio() int64 {
if m != nil {
return m.LiquidationRatio
}
return 0
}
func (m *RepCollateralizeConfig) GetStabilityFeeRatio() float64 {
func (m *RepCollateralizeConfig) GetStabilityFeeRatio() int64 {
if m != nil {
return m.StabilityFeeRatio
}
......@@ -1899,7 +1768,7 @@ func (m *RepCollateralizeConfig) GetCurrentTime() int64 {
// 返回最新抵押物价格
type RepCollateralizePrice struct {
Price float64 `protobuf:"fixed64,1,opt,name=price,proto3" json:"price,omitempty"`
Price int64 `protobuf:"varint,1,opt,name=price,proto3" json:"price,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
......@@ -1909,16 +1778,17 @@ func (m *RepCollateralizePrice) Reset() { *m = RepCollateralizePrice{} }
func (m *RepCollateralizePrice) String() string { return proto.CompactTextString(m) }
func (*RepCollateralizePrice) ProtoMessage() {}
func (*RepCollateralizePrice) Descriptor() ([]byte, []int) {
return fileDescriptor_collateralize_8df09badc6e8384c, []int{27}
return fileDescriptor_a988fb4a61381972, []int{27}
}
func (m *RepCollateralizePrice) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepCollateralizePrice.Unmarshal(m, b)
}
func (m *RepCollateralizePrice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepCollateralizePrice.Marshal(b, m, deterministic)
}
func (dst *RepCollateralizePrice) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizePrice.Merge(dst, src)
func (m *RepCollateralizePrice) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepCollateralizePrice.Merge(m, src)
}
func (m *RepCollateralizePrice) XXX_Size() int {
return xxx_messageInfo_RepCollateralizePrice.Size(m)
......@@ -1929,7 +1799,7 @@ func (m *RepCollateralizePrice) XXX_DiscardUnknown() {
var xxx_messageInfo_RepCollateralizePrice proto.InternalMessageInfo
func (m *RepCollateralizePrice) GetPrice() float64 {
func (m *RepCollateralizePrice) GetPrice() int64 {
if m != nil {
return m.Price
}
......@@ -1967,84 +1837,83 @@ func init() {
proto.RegisterType((*RepCollateralizePrice)(nil), "types.RepCollateralizePrice")
}
func init() { proto.RegisterFile("collateralize.proto", fileDescriptor_collateralize_8df09badc6e8384c) }
func init() { proto.RegisterFile("collateralize.proto", fileDescriptor_a988fb4a61381972) }
var fileDescriptor_collateralize_8df09badc6e8384c = []byte{
// 1203 bytes of a gzipped FileDescriptorProto
var fileDescriptor_a988fb4a61381972 = []byte{
// 1197 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4d, 0x6f, 0xe4, 0x44,
0x13, 0x8e, 0xc7, 0xf3, 0x91, 0xa9, 0x49, 0xb2, 0xd9, 0x4e, 0x36, 0xaf, 0xdf, 0xdd, 0x28, 0x1a,
0xb5, 0x90, 0x18, 0x01, 0x1b, 0x89, 0x2c, 0x20, 0x16, 0x2e, 0xe4, 0x63, 0x57, 0x19, 0xc4, 0x4a,
0xc8, 0x2c, 0x08, 0xf1, 0x25, 0x79, 0xec, 0x4e, 0xb0, 0xe4, 0x8c, 0x1d, 0xbb, 0x27, 0x30, 0x1c,
0xb8, 0xc1, 0x89, 0x03, 0x27, 0xfe, 0x01, 0x57, 0xfe, 0x12, 0x3f, 0x81, 0xbf, 0x80, 0xaa, 0xbb,
0xfd, 0xd1, 0x6d, 0x7b, 0x35, 0x41, 0x7b, 0x81, 0x4b, 0xe4, 0xae, 0x7e, 0xba, 0xfa, 0xe9, 0xaa,
0xea, 0xa7, 0x2b, 0x03, 0x3b, 0x7e, 0x1c, 0x45, 0x1e, 0x67, 0xa9, 0x17, 0x85, 0x3f, 0xb0, 0xc3,
0x24, 0x8d, 0x79, 0x4c, 0x7a, 0x7c, 0x99, 0xb0, 0x8c, 0xfe, 0xd9, 0x85, 0xcd, 0xd3, 0xea, 0x34,
0x99, 0xc0, 0x1d, 0x0d, 0x3f, 0x0d, 0x1c, 0x6b, 0x6c, 0x4d, 0x86, 0xae, 0x69, 0x26, 0x14, 0x36,
0x78, 0xcc, 0xbd, 0xe8, 0xc4, 0x8b, 0xbc, 0xb9, 0xcf, 0x9c, 0xce, 0xd8, 0x9a, 0xd8, 0xae, 0x66,
0x23, 0x63, 0x18, 0x05, 0x6c, 0xc6, 0x4f, 0x59, 0x18, 0x85, 0xf3, 0x4b, 0xc7, 0x16, 0x90, 0xaa,
0x89, 0xbc, 0x06, 0xdb, 0x51, 0x78, 0xbd, 0x08, 0x03, 0x8f, 0x87, 0xf1, 0xdc, 0xc5, 0xbf, 0x4e,
0x77, 0x6c, 0x4d, 0x2c, 0xb7, 0x66, 0x27, 0x6f, 0xc0, 0xdd, 0x8c, 0x7b, 0xb3, 0x30, 0x0a, 0xf9,
0xf2, 0x29, 0x63, 0x12, 0xdc, 0x13, 0xe0, 0xfa, 0x04, 0x39, 0x00, 0xf0, 0x53, 0xe6, 0x71, 0x76,
0x1c, 0x04, 0xa9, 0xd3, 0x17, 0x87, 0xa8, 0x58, 0x88, 0x03, 0x83, 0x99, 0xa2, 0x3e, 0x10, 0xbc,
0xf2, 0x21, 0x79, 0x0c, 0x9b, 0xb3, 0x38, 0x4d, 0xe3, 0xef, 0x5c, 0xe6, 0xc7, 0x69, 0x90, 0x39,
0xeb, 0x63, 0x7b, 0x32, 0x3a, 0xda, 0x39, 0x14, 0x41, 0x3b, 0x3c, 0xa9, 0xcc, 0xb9, 0x3a, 0x92,
0xbc, 0x0f, 0x5b, 0xd3, 0xf9, 0x8d, 0x17, 0x85, 0x41, 0xbe, 0x76, 0xd8, 0xbe, 0xd6, 0x80, 0x92,
0x3d, 0xe8, 0x67, 0xdc, 0xe3, 0x8b, 0xcc, 0x81, 0xb1, 0x35, 0xe9, 0xb9, 0x6a, 0x44, 0xde, 0x81,
0x3d, 0x8c, 0x7c, 0xc6, 0x3f, 0x2a, 0x23, 0xf2, 0x71, 0x1a, 0xfa, 0xcc, 0x19, 0x89, 0xc3, 0xb7,
0xcc, 0xa2, 0xbf, 0x84, 0xa5, 0x61, 0x1c, 0x38, 0x1b, 0xe2, 0x80, 0x6a, 0x24, 0x62, 0x2e, 0x56,
0x3c, 0xf9, 0x3e, 0x09, 0x53, 0xf6, 0x3c, 0xbc, 0x62, 0xce, 0xa6, 0x40, 0xd4, 0xec, 0x98, 0x41,
0x4c, 0x7c, 0x9e, 0xe4, 0x2d, 0x99, 0xc1, 0x8a, 0x89, 0xec, 0xc3, 0x30, 0x49, 0xd9, 0x27, 0x92,
0xf8, 0x1d, 0x41, 0xbc, 0x34, 0xd0, 0x3f, 0x6c, 0xd8, 0xa8, 0x1e, 0x1a, 0x1d, 0x7a, 0xbe, 0x1f,
0x2f, 0xe6, 0x5c, 0xe4, 0x45, 0x16, 0x57, 0xd5, 0x84, 0x0e, 0x33, 0xee, 0xa5, 0x5c, 0xf0, 0x92,
0x55, 0x55, 0x1a, 0xf4, 0x02, 0xfd, 0xcc, 0x8b, 0x16, 0x4c, 0x95, 0x95, 0x69, 0xd6, 0x91, 0x32,
0x5e, 0xb2, 0xb2, 0x4c, 0x33, 0xee, 0x88, 0x35, 0x29, 0xbd, 0xf5, 0xe4, 0x8e, 0x85, 0xc1, 0x28,
0x51, 0xe9, 0xa8, 0x5f, 0x2b, 0xd1, 0x22, 0xe4, 0x2a, 0x85, 0x03, 0x2d, 0x85, 0xaf, 0xc0, 0x66,
0x8e, 0x95, 0xf1, 0x5e, 0x17, 0xbb, 0xe8, 0x46, 0x2c, 0x59, 0x56, 0xa6, 0x64, 0x28, 0x20, 0x15,
0x8b, 0x1e, 0x6a, 0x30, 0x42, 0x4d, 0xee, 0xc3, 0x7a, 0x2a, 0x62, 0x3c, 0x0d, 0x44, 0x61, 0x0c,
0xdd, 0x62, 0xdc, 0x74, 0xad, 0x37, 0x1a, 0xaf, 0x35, 0xfd, 0xd9, 0x82, 0xed, 0xe3, 0x2c, 0x63,
0x5c, 0x1c, 0x48, 0x25, 0xed, 0x00, 0x40, 0xba, 0x12, 0xc4, 0x2c, 0x49, 0xac, 0xb4, 0xe0, 0xd6,
0x33, 0xbe, 0x94, 0xa1, 0xe9, 0x88, 0xd0, 0x14, 0x63, 0x39, 0xe7, 0xcb, 0x39, 0x3b, 0x9f, 0xf3,
0x8b, 0x39, 0xc6, 0xbf, 0xad, 0xe6, 0xa6, 0x18, 0xd3, 0xdf, 0x6d, 0xd8, 0xd1, 0xb4, 0xe9, 0xd8,
0xc7, 0x38, 0x93, 0xb7, 0xa0, 0x2f, 0x6f, 0xb1, 0xe0, 0x31, 0x3a, 0xba, 0xaf, 0xae, 0x96, 0x86,
0x3d, 0x15, 0x88, 0xf3, 0x35, 0x57, 0x61, 0x71, 0x95, 0xbc, 0xa9, 0x82, 0x5f, 0xcb, 0x2a, 0x59,
0xa8, 0xb8, 0x4a, 0x62, 0xc9, 0x9b, 0xd0, 0x4b, 0x59, 0xe2, 0x2d, 0x05, 0xf1, 0xd1, 0xd1, 0xff,
0x9b, 0x16, 0xb9, 0x08, 0x38, 0x5f, 0x73, 0x25, 0x12, 0x37, 0xf2, 0x92, 0x84, 0xcd, 0x03, 0x71,
0xa0, 0x96, 0x8d, 0x8e, 0x05, 0x02, 0x37, 0x92, 0x58, 0x72, 0x08, 0xdd, 0x0b, 0xc6, 0x02, 0x51,
0x7c, 0xa3, 0x23, 0xa7, 0x69, 0xcd, 0x53, 0xc6, 0x70, 0x85, 0xc0, 0x91, 0xf7, 0x30, 0xd7, 0x3c,
0x0d, 0xd9, 0x8d, 0xac, 0xc5, 0xd1, 0xd1, 0x7e, 0x33, 0x37, 0x89, 0x39, 0x5f, 0x73, 0x0b, 0x3c,
0x32, 0xbc, 0xf2, 0xe6, 0xde, 0xa5, 0xd4, 0xbd, 0x16, 0x86, 0xcf, 0x04, 0x02, 0x19, 0x4a, 0x2c,
0xd9, 0x82, 0x0e, 0x5f, 0xaa, 0xa2, 0xeb, 0xf0, 0xe5, 0xc9, 0x00, 0x7a, 0x37, 0x78, 0x3d, 0xe8,
0x5f, 0x96, 0x91, 0x27, 0xb9, 0xd4, 0xd4, 0x7e, 0x6b, 0x35, 0xed, 0xef, 0xdc, 0x46, 0xfb, 0xed,
0x36, 0xed, 0x2f, 0x95, 0xaf, 0xab, 0x29, 0x9f, 0xf9, 0x66, 0xf5, 0x9a, 0xdf, 0x2c, 0x7f, 0x91,
0xa6, 0x6c, 0x2e, 0x05, 0xa8, 0xaf, 0x14, 0xaf, 0x34, 0xd1, 0x47, 0x70, 0x57, 0xcf, 0x26, 0xaa,
0xd6, 0x01, 0x40, 0xb6, 0x48, 0x58, 0x8a, 0x83, 0xcc, 0xb1, 0xc6, 0x36, 0x3e, 0x37, 0xa5, 0x85,
0x3e, 0x36, 0xa2, 0x24, 0x2b, 0xb4, 0xc6, 0xc8, 0xaa, 0x33, 0xa2, 0x9f, 0x1a, 0x4b, 0x65, 0x99,
0xde, 0xe2, 0xa9, 0xde, 0x55, 0xb9, 0x52, 0x6a, 0xaa, 0x12, 0xf7, 0x05, 0x90, 0x7a, 0x21, 0xdf,
0xc2, 0x6b, 0x55, 0x6f, 0x3a, 0xba, 0xde, 0xd0, 0x9f, 0xcc, 0xa2, 0x90, 0x15, 0xff, 0x72, 0xbc,
0xaf, 0xfe, 0x06, 0xd0, 0xaf, 0x8d, 0x54, 0xe1, 0x25, 0x42, 0xd7, 0x88, 0x7b, 0xbe, 0x4c, 0x64,
0xbc, 0x7b, 0x6e, 0x31, 0xc6, 0x50, 0x25, 0x4a, 0xc6, 0xec, 0x89, 0xe5, 0xca, 0x01, 0xd6, 0xd3,
0x4d, 0x1c, 0x2d, 0xae, 0x70, 0x1f, 0x1b, 0xeb, 0x49, 0x8e, 0xe8, 0x97, 0x70, 0xaf, 0xf1, 0xbe,
0xdd, 0xe2, 0x9c, 0x95, 0x36, 0xa4, 0xa3, 0xb5, 0x21, 0xf4, 0x37, 0x0b, 0x76, 0x5d, 0xe6, 0xb3,
0x30, 0xe1, 0xff, 0xb4, 0x47, 0x33, 0x1e, 0x5b, 0xbb, 0xfe, 0xd8, 0x56, 0xc3, 0xdc, 0x35, 0xc2,
0x5c, 0x3e, 0x66, 0xbd, 0xea, 0x63, 0x46, 0x9f, 0xc1, 0xae, 0x71, 0x6a, 0xd9, 0xbf, 0xbc, 0x0d,
0x83, 0x54, 0x75, 0x3d, 0x96, 0xe8, 0x7a, 0x1e, 0x28, 0x65, 0x69, 0x3a, 0x85, 0x9b, 0x63, 0xe9,
0x07, 0x78, 0xcc, 0x6b, 0x6d, 0x72, 0x3a, 0xbf, 0x88, 0x57, 0x3f, 0x26, 0x36, 0x19, 0x0f, 0x5c,
0x96, 0xe8, 0xf7, 0x4b, 0x5e, 0x58, 0xe1, 0xa9, 0x3c, 0x88, 0xa5, 0xbd, 0xca, 0xff, 0xdd, 0x16,
0xb6, 0x14, 0xc0, 0x75, 0x4d, 0x00, 0x1b, 0x62, 0x3a, 0x6c, 0x2d, 0x9d, 0x6a, 0xe3, 0x07, 0xf5,
0xc6, 0xaf, 0xd6, 0x26, 0x8f, 0x56, 0x6d, 0x93, 0xe9, 0x29, 0xdc, 0x6b, 0x4a, 0x79, 0x86, 0xb1,
0x34, 0x88, 0xe4, 0x5a, 0x5a, 0xb3, 0xd3, 0xcf, 0x61, 0xff, 0x05, 0x49, 0xcf, 0xc8, 0xbb, 0xd0,
0x0b, 0xf1, 0x43, 0x15, 0x23, 0x2d, 0x8a, 0xb1, 0x75, 0x8d, 0x2b, 0x17, 0xd0, 0x0f, 0xc1, 0x31,
0xe9, 0x9d, 0x2c, 0x55, 0x97, 0xd5, 0x56, 0x4b, 0x7b, 0xd0, 0x47, 0x86, 0xd3, 0x33, 0xa5, 0x56,
0x6a, 0x44, 0xbf, 0x82, 0xbd, 0xba, 0x2f, 0x91, 0x3d, 0x02, 0x5d, 0xaf, 0x6c, 0x81, 0xc5, 0x77,
0xc5, 0x7b, 0xa7, 0xc5, 0xbb, 0xad, 0x79, 0x7f, 0x15, 0x76, 0xcc, 0xf3, 0x4c, 0xcf, 0x32, 0xb2,
0x0d, 0xf6, 0xf4, 0x2c, 0x8f, 0x1c, 0x7e, 0xd2, 0x5f, 0x2d, 0x8c, 0xd6, 0x75, 0xc3, 0xbd, 0x55,
0x6c, 0x56, 0x17, 0x95, 0x9c, 0x77, 0xa7, 0x91, 0xb7, 0xad, 0xf1, 0x7e, 0x81, 0xbc, 0xd0, 0x1f,
0xe1, 0xa0, 0x8d, 0x91, 0x8a, 0xf5, 0xea, 0x9c, 0xda, 0xe2, 0x56, 0xdd, 0xdf, 0x36, 0xf6, 0x3f,
0x87, 0xff, 0x99, 0xb1, 0xcb, 0x95, 0xec, 0xa1, 0xa9, 0x64, 0x8d, 0x45, 0x5d, 0x28, 0xd8, 0x37,
0xf5, 0x1c, 0xab, 0xc6, 0xf9, 0xe5, 0xbc, 0xa6, 0x4f, 0xd0, 0x7f, 0x13, 0x53, 0xf2, 0x3a, 0xf4,
0x25, 0x4a, 0x35, 0xc3, 0x8d, 0x3c, 0x15, 0x84, 0xfe, 0xd2, 0xa9, 0xfb, 0x39, 0x8d, 0xe7, 0x17,
0xe1, 0xe5, 0xbf, 0xb6, 0x59, 0xab, 0x28, 0x60, 0x5f, 0x57, 0x40, 0xa3, 0x8d, 0x1b, 0xd4, 0xdb,
0xb8, 0x87, 0x28, 0x42, 0x7a, 0x34, 0xe4, 0x7f, 0x25, 0x45, 0x0f, 0x60, 0x09, 0xca, 0x72, 0x30,
0xeb, 0x8b, 0x5f, 0x4e, 0x1e, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xf5, 0xbb, 0xef, 0x9f, 0x50,
0x11, 0x00, 0x00,
0xb5, 0x90, 0x88, 0x80, 0x8d, 0x44, 0x16, 0x10, 0x0b, 0x17, 0x92, 0xc9, 0xae, 0x32, 0x88, 0x95,
0x90, 0x59, 0x10, 0xe2, 0x4b, 0xf2, 0xd8, 0x9d, 0x60, 0xc9, 0x19, 0x3b, 0x76, 0x4f, 0x60, 0x38,
0x70, 0x83, 0x13, 0x07, 0x4e, 0xfc, 0x03, 0xae, 0xfc, 0x25, 0x7e, 0x02, 0x7f, 0x01, 0x75, 0x57,
0xfb, 0xa3, 0xdb, 0xf6, 0x6a, 0x82, 0xf6, 0x02, 0x97, 0xd5, 0x74, 0xf5, 0x53, 0xe5, 0xea, 0xa7,
0xaa, 0x9f, 0xae, 0x0d, 0xec, 0xf8, 0x71, 0x14, 0x79, 0x9c, 0xa5, 0x5e, 0x14, 0xfe, 0xc0, 0x8e,
0x92, 0x34, 0xe6, 0x31, 0xe9, 0xf1, 0x65, 0xc2, 0x32, 0xfa, 0x67, 0x17, 0x36, 0x27, 0xd5, 0x6d,
0x72, 0x08, 0x77, 0x34, 0xfc, 0x34, 0x70, 0xac, 0xb1, 0x75, 0x38, 0x74, 0x4d, 0x33, 0xa1, 0xb0,
0xc1, 0x63, 0xee, 0x45, 0xa7, 0x5e, 0xe4, 0xcd, 0x7d, 0xe6, 0x74, 0xc6, 0xd6, 0xa1, 0xed, 0x6a,
0x36, 0x32, 0x86, 0x51, 0xc0, 0x66, 0x7c, 0xc2, 0xc2, 0x28, 0x9c, 0x5f, 0x3a, 0xb6, 0x84, 0x54,
0x4d, 0xe4, 0x35, 0xd8, 0x8e, 0xc2, 0xeb, 0x45, 0x18, 0x78, 0x3c, 0x8c, 0xe7, 0xae, 0xf8, 0xd7,
0xe9, 0x4a, 0x58, 0xcd, 0x4e, 0xde, 0x80, 0xbb, 0x19, 0xf7, 0x66, 0x61, 0x14, 0xf2, 0xe5, 0x53,
0xc6, 0x10, 0xdc, 0x93, 0xe0, 0xfa, 0x06, 0x39, 0x00, 0xf0, 0x53, 0xe6, 0x71, 0x76, 0x12, 0x04,
0xa9, 0xd3, 0x97, 0x87, 0xa8, 0x58, 0x88, 0x03, 0x83, 0x99, 0x4a, 0x7d, 0x20, 0x63, 0xe4, 0x4b,
0xf2, 0x18, 0x36, 0x67, 0x71, 0x9a, 0xc6, 0xdf, 0xb9, 0xcc, 0x8f, 0xd3, 0x20, 0x73, 0xd6, 0xc7,
0xf6, 0xe1, 0xe8, 0x78, 0xe7, 0x48, 0x92, 0x76, 0x74, 0x5a, 0xd9, 0x73, 0x75, 0x24, 0x79, 0x1f,
0xb6, 0xa6, 0xf3, 0x1b, 0x2f, 0x0a, 0x83, 0xdc, 0x77, 0xd8, 0xee, 0x6b, 0x40, 0xc9, 0x1e, 0xf4,
0x33, 0xee, 0xf1, 0x45, 0xe6, 0xc0, 0xd8, 0x3a, 0xec, 0xb9, 0x6a, 0x45, 0xde, 0x81, 0x3d, 0xc1,
0x7c, 0xc6, 0x3f, 0x2a, 0x19, 0xf9, 0x38, 0x0d, 0x7d, 0xe6, 0x8c, 0x64, 0xe2, 0x2d, 0xbb, 0x22,
0x5e, 0xc2, 0xd2, 0x30, 0x0e, 0x9c, 0x0d, 0x89, 0x53, 0x2b, 0xc9, 0xb9, 0xf4, 0x78, 0xf2, 0x7d,
0x12, 0xa6, 0xec, 0x79, 0x78, 0xc5, 0x9c, 0x4d, 0xc5, 0xb9, 0x61, 0x17, 0x15, 0x14, 0x85, 0xcf,
0x8b, 0xbc, 0x85, 0x15, 0xac, 0x98, 0xc8, 0x3e, 0x0c, 0x93, 0x94, 0x7d, 0x82, 0x89, 0xdf, 0x91,
0x89, 0x97, 0x06, 0xfa, 0x87, 0x0d, 0x1b, 0xd5, 0x43, 0x8b, 0x80, 0x9e, 0xef, 0xc7, 0x8b, 0x39,
0x97, 0x75, 0xc1, 0xe6, 0xaa, 0x9a, 0x44, 0xc0, 0x8c, 0x7b, 0x29, 0x97, 0x79, 0x61, 0x57, 0x95,
0x06, 0xbd, 0x41, 0x3f, 0xf3, 0xa2, 0x05, 0x53, 0x6d, 0x65, 0x9a, 0x75, 0x24, 0xf2, 0xd5, 0x35,
0x91, 0x48, 0xd4, 0x3e, 0x0c, 0x45, 0x4f, 0x62, 0x34, 0x6c, 0xa8, 0xd2, 0x60, 0xb4, 0x28, 0x06,
0xea, 0xd7, 0x5a, 0xb4, 0xa0, 0x5c, 0x95, 0x70, 0xa0, 0x95, 0xf0, 0x15, 0xd8, 0xcc, 0xb1, 0xc8,
0xf7, 0xba, 0x0c, 0xa0, 0x1b, 0x45, 0xcb, 0xb2, 0xb2, 0x24, 0x43, 0x09, 0xa9, 0x58, 0x74, 0xaa,
0xc1, 0xa0, 0x9a, 0xdc, 0x87, 0xf5, 0x54, 0x72, 0x3c, 0x0d, 0x64, 0x63, 0x0c, 0xdd, 0x62, 0xdd,
0x74, 0xad, 0x37, 0x1a, 0xaf, 0x35, 0xfd, 0xd9, 0x82, 0xed, 0x93, 0x2c, 0x63, 0x5c, 0x1e, 0x48,
0x15, 0xed, 0x00, 0x00, 0x43, 0xc9, 0xc4, 0x2c, 0x4c, 0xac, 0xb4, 0x88, 0x4f, 0xcf, 0xf8, 0x12,
0xa9, 0xc1, 0x8a, 0x15, 0x6b, 0xdc, 0xf3, 0x71, 0xcf, 0xce, 0xf7, 0xfc, 0x62, 0x8f, 0xf1, 0x6f,
0xab, 0xb5, 0x29, 0xd6, 0xf4, 0x77, 0x1b, 0x76, 0x34, 0x6d, 0x3a, 0xf1, 0x05, 0xcf, 0xe4, 0x2d,
0xe8, 0xe3, 0x2d, 0x96, 0x79, 0x8c, 0x8e, 0xef, 0xab, 0xab, 0xa5, 0x61, 0x27, 0x12, 0x71, 0xbe,
0xe6, 0x2a, 0xac, 0xf0, 0xc2, 0x9b, 0x2a, 0xf3, 0x6b, 0xf1, 0xc2, 0x46, 0x15, 0x5e, 0x88, 0x25,
0x6f, 0x42, 0x2f, 0x65, 0x89, 0xb7, 0x94, 0x89, 0x8f, 0x8e, 0xff, 0xdf, 0xe4, 0xe4, 0x0a, 0xc0,
0xf9, 0x9a, 0x8b, 0x48, 0xf1, 0x21, 0x2f, 0x49, 0xd8, 0x3c, 0x90, 0x07, 0x6a, 0xf9, 0xd0, 0x89,
0x44, 0x88, 0x0f, 0x21, 0x96, 0x1c, 0x41, 0xf7, 0x82, 0xb1, 0x40, 0x36, 0xdf, 0xe8, 0xd8, 0x69,
0xf2, 0x79, 0xca, 0x98, 0xf0, 0x90, 0x38, 0xf2, 0x9e, 0xa8, 0x35, 0x4f, 0x43, 0x76, 0x83, 0xbd,
0x38, 0x3a, 0xde, 0x6f, 0xce, 0x0d, 0x31, 0xe7, 0x6b, 0x6e, 0x81, 0x17, 0x19, 0x5e, 0x79, 0x73,
0xef, 0x12, 0x75, 0xaf, 0x25, 0xc3, 0x67, 0x12, 0x21, 0x32, 0x44, 0x2c, 0xd9, 0x82, 0x0e, 0x5f,
0xaa, 0xa6, 0xeb, 0xf0, 0xe5, 0xe9, 0x00, 0x7a, 0x37, 0xe2, 0x7a, 0xd0, 0xbf, 0x2c, 0xa3, 0x4e,
0xe8, 0x6a, 0x6a, 0xbf, 0xb5, 0x9a, 0xf6, 0x77, 0x6e, 0xa3, 0xfd, 0x76, 0x9b, 0xf6, 0x97, 0xca,
0xd7, 0xd5, 0x94, 0xcf, 0x7c, 0xb3, 0x7a, 0xcd, 0x6f, 0x96, 0xbf, 0x48, 0x53, 0x36, 0x47, 0x01,
0xea, 0x2b, 0xc5, 0x2b, 0x4d, 0xf4, 0x11, 0xdc, 0xd5, 0xab, 0x29, 0x54, 0xeb, 0x00, 0x20, 0x5b,
0x24, 0x2c, 0x15, 0x8b, 0xcc, 0xb1, 0xc6, 0xb6, 0x78, 0x6e, 0x4a, 0x0b, 0x7d, 0x6c, 0xb0, 0x84,
0x1d, 0x5a, 0xcb, 0xc8, 0xaa, 0x67, 0x44, 0x3f, 0x35, 0x5c, 0xb1, 0x4d, 0x6f, 0xf1, 0x54, 0xef,
0xaa, 0x5a, 0x29, 0x76, 0x55, 0xe1, 0xbe, 0x00, 0x52, 0x6f, 0xe4, 0x5b, 0x44, 0xad, 0xea, 0x4d,
0x47, 0xd7, 0x1b, 0xfa, 0x93, 0xd9, 0x14, 0xd8, 0xf1, 0x2f, 0x27, 0xfa, 0xea, 0x6f, 0x00, 0xfd,
0xda, 0x28, 0x95, 0xb8, 0x44, 0x22, 0xb4, 0xc0, 0x3d, 0x5f, 0x26, 0xc8, 0x77, 0xcf, 0x2d, 0xd6,
0x82, 0xaa, 0x44, 0xc9, 0x98, 0x2d, 0xa8, 0x4a, 0x72, 0x59, 0xbf, 0x89, 0xa3, 0xc5, 0x95, 0xf8,
0x8e, 0x30, 0xab, 0x15, 0xfd, 0x12, 0xee, 0x35, 0xde, 0xb7, 0x5b, 0x9c, 0xb3, 0x32, 0x86, 0x74,
0xb4, 0x31, 0x84, 0xfe, 0x66, 0xc1, 0xae, 0xcb, 0x7c, 0x16, 0x26, 0xfc, 0x9f, 0xce, 0x68, 0xc6,
0x63, 0x6b, 0xd7, 0x1f, 0xdb, 0x2a, 0xcd, 0x5d, 0x83, 0xe6, 0xf2, 0x31, 0xeb, 0x55, 0x1f, 0x33,
0xfa, 0x0c, 0x76, 0x8d, 0x53, 0xe3, 0xfc, 0xf2, 0x36, 0x0c, 0x52, 0x35, 0xf5, 0x58, 0x72, 0xea,
0x79, 0xa0, 0x94, 0xa5, 0xe9, 0x14, 0x6e, 0x8e, 0xa5, 0x1f, 0x88, 0x63, 0x5e, 0x6b, 0x9b, 0xd3,
0xf9, 0x45, 0xbc, 0xfa, 0x31, 0xc5, 0x90, 0xf1, 0xc0, 0x65, 0x89, 0x7e, 0xbf, 0xf0, 0xc2, 0xca,
0x48, 0xe5, 0x41, 0x2c, 0xed, 0x55, 0xfe, 0xef, 0x8e, 0xb0, 0xa5, 0x00, 0xae, 0x6b, 0x02, 0xd8,
0xc0, 0xe9, 0xb0, 0xb5, 0x75, 0xaa, 0x83, 0x1f, 0xd4, 0x07, 0xbf, 0xda, 0x98, 0x3c, 0x5a, 0x75,
0x4c, 0xa6, 0x13, 0xb8, 0xd7, 0x54, 0xf2, 0x4c, 0x70, 0x69, 0x24, 0x92, 0x6b, 0x69, 0xcd, 0x4e,
0x3f, 0x87, 0xfd, 0x17, 0x14, 0x3d, 0x23, 0xef, 0x42, 0x2f, 0x14, 0x3f, 0x54, 0x33, 0xd2, 0xa2,
0x19, 0x5b, 0x7d, 0x5c, 0x74, 0xa0, 0x1f, 0x82, 0x63, 0xa6, 0x77, 0xba, 0x54, 0x53, 0x56, 0x5b,
0x2f, 0xed, 0x41, 0x5f, 0x64, 0x38, 0x3d, 0x53, 0x6a, 0xa5, 0x56, 0xf4, 0x2b, 0xd8, 0xab, 0xc7,
0x92, 0xd5, 0x23, 0xd0, 0xf5, 0xca, 0x11, 0x58, 0xfe, 0xae, 0x44, 0xef, 0xb4, 0x44, 0xb7, 0xb5,
0xe8, 0xaf, 0xc2, 0x8e, 0x79, 0x9e, 0xe9, 0x59, 0x46, 0xb6, 0xc1, 0x9e, 0x9e, 0xe5, 0xcc, 0x89,
0x9f, 0xf4, 0x57, 0x4b, 0xb0, 0x75, 0xdd, 0x70, 0x6f, 0x55, 0x36, 0xab, 0x8b, 0x4a, 0x9e, 0x77,
0xa7, 0x31, 0x6f, 0x5b, 0xcb, 0xfb, 0x05, 0xf2, 0x42, 0x7f, 0x84, 0x83, 0xb6, 0x8c, 0x14, 0xd7,
0xab, 0xe7, 0xd4, 0xc6, 0x5b, 0xf5, 0xfb, 0xb6, 0xf1, 0xfd, 0x73, 0xf8, 0x9f, 0xc9, 0x5d, 0xae,
0x64, 0x0f, 0x4d, 0x25, 0x6b, 0x6c, 0xea, 0x42, 0xc1, 0xbe, 0xa9, 0xd7, 0x58, 0x0d, 0xce, 0x2f,
0xe7, 0x35, 0x7d, 0x22, 0xe2, 0x37, 0x65, 0x4a, 0x5e, 0x87, 0x3e, 0xa2, 0xd4, 0x30, 0xdc, 0x98,
0xa7, 0x82, 0xd0, 0x5f, 0x3a, 0xf5, 0x38, 0x93, 0x78, 0x7e, 0x11, 0x5e, 0xfe, 0x6b, 0x87, 0xb5,
0x8a, 0x02, 0xf6, 0x75, 0x05, 0x34, 0xc6, 0xb8, 0x41, 0x7d, 0x8c, 0x7b, 0x28, 0x44, 0x48, 0x67,
0x03, 0xff, 0x57, 0x52, 0xcc, 0x00, 0x48, 0x03, 0x2e, 0x66, 0x7d, 0xf9, 0x97, 0x93, 0x47, 0x7f,
0x07, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x5a, 0x9f, 0x55, 0x50, 0x11, 0x00, 0x00,
}
......@@ -27,7 +27,7 @@ const (
const (
CollateralizeX = "collateralize"
CCNYTokenName = "CCNY"
CollateralizePreLiquidationRatio = 1.1 //TODO 预清算比例,抵押物价值跌到借出ccny价值110%的时候开始清算
CollateralizePreLiquidationRatio = 1.1 * 1e4 //TODO 预清算比例,抵押物价值跌到借出ccny价值110%的时候开始清算
)
//Collateralize status
......
......@@ -5,8 +5,6 @@
package executor
import (
"math"
"github.com/33cn/chain33/account"
"github.com/33cn/chain33/common"
dbm "github.com/33cn/chain33/common/db"
......@@ -27,9 +25,9 @@ const (
const (
Coin = types.Coin // 1e8
DefaultDebtCeiling = 100000 * Coin // 默认借贷限额
DefaultLiquidationRatio = 0.25 // 默认质押比
DefaultLiquidationRatio = 0.25 * 1e4 // 默认质押比
DefaultPeriod = 3600 * 24 * 365 // 默认合约限期
PriceWarningRate = 1.3 // 价格提前预警率
PriceWarningRate = 1.3 * 1e4 // 价格提前预警率
ExpireWarningTime = 3600 * 24 * 10 // 提前10天超时预警
)
......@@ -266,8 +264,8 @@ func (action *Action) GetIndex() int64 {
return action.height*types.MaxTxsPerBlock + int64(action.index)
}
func getLatestLiquidationPrice(issu *pty.Issuance) float64 {
var latest float64
func getLatestLiquidationPrice(issu *pty.Issuance) int64 {
var latest int64
for _, collRecord := range issu.DebtRecords {
if collRecord.LiquidationPrice > latest {
latest = collRecord.LiquidationPrice
......@@ -431,19 +429,18 @@ func (action *Action) IssuanceCreate(create *pty.IssuanceCreate) (*types.Receipt
}
// 根据最近抵押物价格计算需要冻结的BTY数量
func getBtyNumToFrozen(value int64, price float64, ratio float64) (int64, error) {
func getBtyNumToFrozen(value int64, price int64, ratio int64) (int64, error) {
if price == 0 {
clog.Error("Bty price should greate to 0")
return 0, pty.ErrPriceInvalid
}
valueReal := float64(value) / 1e8
btyValue := valueReal / (price * ratio)
return int64(math.Trunc((btyValue+0.0000001)*1e4)) * 1e4, nil
btyValue := (value * 1e4) / (price * ratio)
return btyValue * 1e4, nil
}
// 获取最近抵押物价格
func getLatestPrice(db dbm.KV) (float64, error) {
func getLatestPrice(db dbm.KV) (int64, error) {
data, err := db.Get(PriceKey())
if err != nil {
clog.Error("getLatestPrice", "get", err)
......@@ -584,7 +581,7 @@ func (action *Action) IssuanceDebt(debt *pty.IssuanceDebt) (*types.Receipt, erro
debtRecord.StartTime = action.blocktime
debtRecord.CollateralPrice = lastPrice
debtRecord.DebtValue = debt.Value
debtRecord.LiquidationPrice = math.Trunc(issu.LiquidationRatio*lastPrice*pty.IssuancePreLiquidationRatio*1e4) / 1e4
debtRecord.LiquidationPrice = (issu.LiquidationRatio*lastPrice*pty.IssuancePreLiquidationRatio) / 1e8
debtRecord.Status = pty.IssuanceUserStatusCreate
debtRecord.ExpireTime = action.blocktime + issu.Period
......@@ -702,12 +699,12 @@ func (action *Action) IssuanceRepay(repay *pty.IssuanceRepay) (*types.Receipt, e
}
// 系统清算
func (action *Action) systemLiquidation(issu *pty.Issuance, price float64) (*types.Receipt, error) {
func (action *Action) systemLiquidation(issu *pty.Issuance, price int64) (*types.Receipt, error) {
var logs []*types.ReceiptLog
var kv []*types.KeyValue
for index, debtRecord := range issu.DebtRecords {
if debtRecord.LiquidationPrice*PriceWarningRate < price {
if (debtRecord.LiquidationPrice*PriceWarningRate)/1e4 < price {
if debtRecord.Status == pty.IssuanceUserStatusWarning {
debtRecord.PreStatus = debtRecord.Status
debtRecord.Status = pty.IssuanceUserStatusCreate
......@@ -814,8 +811,8 @@ func (action *Action) expireLiquidation(issu *pty.Issuance) (*types.Receipt, err
}
// 价格计算策略
func pricePolicy(feed *pty.IssuanceFeed) float64 {
var totalPrice float64
func pricePolicy(feed *pty.IssuanceFeed) int64 {
var totalPrice int64
var totalVolume int64
for _, volume := range feed.Volume {
totalVolume += volume
......@@ -826,7 +823,7 @@ func pricePolicy(feed *pty.IssuanceFeed) float64 {
return 0
}
for i, price := range feed.Price {
totalPrice += price * (float64(feed.Volume[i]) / float64(totalVolume))
totalPrice += (price * feed.Volume[i]) / totalVolume
}
return totalPrice
......
......@@ -7,13 +7,13 @@ message Issuance {
string issuanceId = 1; //发行ID,一期发行对应一个ID
int64 totalBalance = 2; //当期发行的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
double liquidationRatio = 4; //清算比例
int64 liquidationRatio = 4; //清算比例
int64 collateralValue = 5; //抵押物总数量(bty)
int64 debtValue = 6; //产生的ccny数量
repeated DebtRecord debtRecords = 7; //大户抵押记录
repeated DebtRecord invalidRecords = 8; //大户抵押记录
int32 status = 9; //当期发行的状态,是否关闭
double latestLiquidationPrice = 10;//最高清算价格
int64 latestLiquidationPrice = 10;//最高清算价格
int64 period = 11;//发行最大期限
int64 latestExpireTime = 12;//最近超期时间
int64 createTime = 13;//创建时间
......@@ -26,9 +26,9 @@ message DebtRecord {
string accountAddr = 1; //抵押人地址
int64 startTime = 2; //抵押时间
int64 collateralValue = 3; //抵押物价值(bty)
double collateralPrice = 4; //抵押物价格
int64 collateralPrice = 4; //抵押物价格
int64 debtValue = 5; //债务价值(ccny)
double liquidationPrice = 6; //抵押物清算价格
int64 liquidationPrice = 6; //抵押物清算价格
int32 status = 7; //抵押状态,是否被清算
int64 liquidateTime = 8; //清算时间
int64 expireTime = 9; //超时清算时间
......@@ -40,7 +40,7 @@ message DebtRecord {
// 资产价格记录
message IssuanceAssetPriceRecord {
int64 recordTime = 1; //价格记录时间
double btyPrice = 2; //bty价格
int64 btyPrice = 2; //bty价格
}
// action
......@@ -64,7 +64,7 @@ message IssuanceManage {
message IssuanceCreate {
int64 totalBalance = 1; //发行总金额
int64 debtCeiling = 2; //单用户可借出的限额(ccny)
double liquidationRatio = 3; //清算比例
int64 liquidationRatio = 3; //清算比例
int64 period = 4; //发行最大期限
}
......@@ -83,7 +83,7 @@ message IssuanceRepay {
// 喂价
message IssuanceFeed {
int32 collType = 1; //抵押物价格类型(1,bty,2,btc,3,eth...)
repeated double price = 2; //喂价
repeated int64 price = 2; //喂价
repeated int64 volume = 3; //成交量
}
......@@ -121,7 +121,7 @@ message RepIssuanceCurrentInfo {
int32 status = 1; //当期发行的状态,是否关闭
int64 totalBalance = 2; //当期发行总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
double liquidationRatio = 4; //清算比例
int64 liquidationRatio = 4; //清算比例
int64 balance = 5; //剩余可借贷金额(ccny)
int64 collateralValue = 6; //抵押物总数量(bty)
int64 debtValue = 7; //产生的ccny数量
......@@ -171,5 +171,5 @@ message RepIssuanceDebtInfo {
// 返回最新抵押物价格
message RepIssuancePrice {
double price = 1; //当前抵押物最新价格
int64 price = 1; //当前抵押物最新价格
}
\ No newline at end of file
##发行合约表结构
## 发行合约表结构
###总发行表issuer表结构
### 总发行表issuer表结构
字段名称|类型|说明
---|---|---
issuanceId|string|总发行ID,主键
status|int32|发行状态(1:已发行 2:已下线)
###总发行表issuer表索引
### 总发行表issuer表索引
索引名|说明
---|---
status|根据发行状态查询总发行ID
###大户发行表debt表结构
### 大户发行表debt表结构
字段名称|类型|说明
---|---|---
debtId|string|大户发行ID,主键
......@@ -19,7 +19,7 @@ issuanceId|string|总发行ID
accountAddr|string|用户地址
status|int32|发行状态(1:已发行 2:价格清算告警 3:价格清算 4:超时清算告警 5:超时清算 6:关闭)
###大户发行表debt表索引
### 大户发行表debt表索引
索引名|说明
---|---
status|根据大户发行状态查询大户发行ID
......
......@@ -146,7 +146,7 @@ func CreateRawIssuanceCreateTx(cfg *types.Chain33Config, parm *IssuanceCreateTx)
v := &IssuanceCreate{
TotalBalance: int64(math.Trunc((parm.TotalBalance+0.0000001)*1e4)) * 1e4,
DebtCeiling: int64(math.Trunc((parm.DebtCeiling+0.0000001)*1e4)) * 1e4,
LiquidationRatio: parm.LiquidationRatio,
LiquidationRatio: int64(math.Trunc((parm.LiquidationRatio+0.0000001)*1e4)),
Period: parm.Period,
}
create := &IssuanceAction{
......@@ -233,9 +233,12 @@ func CreateRawIssuanceFeedTx(cfg *types.Chain33Config, parm *IssuanceFeedTx) (*t
}
v := &IssuanceFeed{
Price: parm.Price,
Volume: parm.Volume,
}
for _, r := range parm.Price {
v.Price = append(v.Price, int64(math.Trunc(r*1e4)))
}
feed := &IssuanceAction{
Ty: IssuanceActionFeed,
Value: &IssuanceAction_Feed{v},
......
......@@ -5,9 +5,7 @@ package types
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
......@@ -20,20 +18,20 @@ var _ = math.Inf
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// 发行信息
type Issuance struct {
IssuanceId string `protobuf:"bytes,1,opt,name=issuanceId,proto3" json:"issuanceId,omitempty"`
TotalBalance int64 `protobuf:"varint,2,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`
DebtCeiling int64 `protobuf:"varint,3,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`
LiquidationRatio float64 `protobuf:"fixed64,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
LiquidationRatio int64 `protobuf:"varint,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
CollateralValue int64 `protobuf:"varint,5,opt,name=collateralValue,proto3" json:"collateralValue,omitempty"`
DebtValue int64 `protobuf:"varint,6,opt,name=debtValue,proto3" json:"debtValue,omitempty"`
DebtRecords []*DebtRecord `protobuf:"bytes,7,rep,name=debtRecords,proto3" json:"debtRecords,omitempty"`
InvalidRecords []*DebtRecord `protobuf:"bytes,8,rep,name=invalidRecords,proto3" json:"invalidRecords,omitempty"`
Status int32 `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"`
LatestLiquidationPrice float64 `protobuf:"fixed64,10,opt,name=latestLiquidationPrice,proto3" json:"latestLiquidationPrice,omitempty"`
LatestLiquidationPrice int64 `protobuf:"varint,10,opt,name=latestLiquidationPrice,proto3" json:"latestLiquidationPrice,omitempty"`
Period int64 `protobuf:"varint,11,opt,name=period,proto3" json:"period,omitempty"`
LatestExpireTime int64 `protobuf:"varint,12,opt,name=latestExpireTime,proto3" json:"latestExpireTime,omitempty"`
CreateTime int64 `protobuf:"varint,13,opt,name=createTime,proto3" json:"createTime,omitempty"`
......@@ -48,16 +46,17 @@ func (m *Issuance) Reset() { *m = Issuance{} }
func (m *Issuance) String() string { return proto.CompactTextString(m) }
func (*Issuance) ProtoMessage() {}
func (*Issuance) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{0}
return fileDescriptor_7110f4228953d675, []int{0}
}
func (m *Issuance) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Issuance.Unmarshal(m, b)
}
func (m *Issuance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Issuance.Marshal(b, m, deterministic)
}
func (dst *Issuance) XXX_Merge(src proto.Message) {
xxx_messageInfo_Issuance.Merge(dst, src)
func (m *Issuance) XXX_Merge(src proto.Message) {
xxx_messageInfo_Issuance.Merge(m, src)
}
func (m *Issuance) XXX_Size() int {
return xxx_messageInfo_Issuance.Size(m)
......@@ -89,7 +88,7 @@ func (m *Issuance) GetDebtCeiling() int64 {
return 0
}
func (m *Issuance) GetLiquidationRatio() float64 {
func (m *Issuance) GetLiquidationRatio() int64 {
if m != nil {
return m.LiquidationRatio
}
......@@ -131,7 +130,7 @@ func (m *Issuance) GetStatus() int32 {
return 0
}
func (m *Issuance) GetLatestLiquidationPrice() float64 {
func (m *Issuance) GetLatestLiquidationPrice() int64 {
if m != nil {
return m.LatestLiquidationPrice
}
......@@ -178,9 +177,9 @@ type DebtRecord struct {
AccountAddr string `protobuf:"bytes,1,opt,name=accountAddr,proto3" json:"accountAddr,omitempty"`
StartTime int64 `protobuf:"varint,2,opt,name=startTime,proto3" json:"startTime,omitempty"`
CollateralValue int64 `protobuf:"varint,3,opt,name=collateralValue,proto3" json:"collateralValue,omitempty"`
CollateralPrice float64 `protobuf:"fixed64,4,opt,name=collateralPrice,proto3" json:"collateralPrice,omitempty"`
CollateralPrice int64 `protobuf:"varint,4,opt,name=collateralPrice,proto3" json:"collateralPrice,omitempty"`
DebtValue int64 `protobuf:"varint,5,opt,name=debtValue,proto3" json:"debtValue,omitempty"`
LiquidationPrice float64 `protobuf:"fixed64,6,opt,name=liquidationPrice,proto3" json:"liquidationPrice,omitempty"`
LiquidationPrice int64 `protobuf:"varint,6,opt,name=liquidationPrice,proto3" json:"liquidationPrice,omitempty"`
Status int32 `protobuf:"varint,7,opt,name=status,proto3" json:"status,omitempty"`
LiquidateTime int64 `protobuf:"varint,8,opt,name=liquidateTime,proto3" json:"liquidateTime,omitempty"`
ExpireTime int64 `protobuf:"varint,9,opt,name=expireTime,proto3" json:"expireTime,omitempty"`
......@@ -196,16 +195,17 @@ func (m *DebtRecord) Reset() { *m = DebtRecord{} }
func (m *DebtRecord) String() string { return proto.CompactTextString(m) }
func (*DebtRecord) ProtoMessage() {}
func (*DebtRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{1}
return fileDescriptor_7110f4228953d675, []int{1}
}
func (m *DebtRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DebtRecord.Unmarshal(m, b)
}
func (m *DebtRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DebtRecord.Marshal(b, m, deterministic)
}
func (dst *DebtRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_DebtRecord.Merge(dst, src)
func (m *DebtRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_DebtRecord.Merge(m, src)
}
func (m *DebtRecord) XXX_Size() int {
return xxx_messageInfo_DebtRecord.Size(m)
......@@ -237,7 +237,7 @@ func (m *DebtRecord) GetCollateralValue() int64 {
return 0
}
func (m *DebtRecord) GetCollateralPrice() float64 {
func (m *DebtRecord) GetCollateralPrice() int64 {
if m != nil {
return m.CollateralPrice
}
......@@ -251,7 +251,7 @@ func (m *DebtRecord) GetDebtValue() int64 {
return 0
}
func (m *DebtRecord) GetLiquidationPrice() float64 {
func (m *DebtRecord) GetLiquidationPrice() int64 {
if m != nil {
return m.LiquidationPrice
}
......@@ -303,7 +303,7 @@ func (m *DebtRecord) GetIssuId() string {
// 资产价格记录
type IssuanceAssetPriceRecord struct {
RecordTime int64 `protobuf:"varint,1,opt,name=recordTime,proto3" json:"recordTime,omitempty"`
BtyPrice float64 `protobuf:"fixed64,2,opt,name=btyPrice,proto3" json:"btyPrice,omitempty"`
BtyPrice int64 `protobuf:"varint,2,opt,name=btyPrice,proto3" json:"btyPrice,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
......@@ -313,16 +313,17 @@ func (m *IssuanceAssetPriceRecord) Reset() { *m = IssuanceAssetPriceReco
func (m *IssuanceAssetPriceRecord) String() string { return proto.CompactTextString(m) }
func (*IssuanceAssetPriceRecord) ProtoMessage() {}
func (*IssuanceAssetPriceRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{2}
return fileDescriptor_7110f4228953d675, []int{2}
}
func (m *IssuanceAssetPriceRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IssuanceAssetPriceRecord.Unmarshal(m, b)
}
func (m *IssuanceAssetPriceRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IssuanceAssetPriceRecord.Marshal(b, m, deterministic)
}
func (dst *IssuanceAssetPriceRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceAssetPriceRecord.Merge(dst, src)
func (m *IssuanceAssetPriceRecord) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceAssetPriceRecord.Merge(m, src)
}
func (m *IssuanceAssetPriceRecord) XXX_Size() int {
return xxx_messageInfo_IssuanceAssetPriceRecord.Size(m)
......@@ -340,7 +341,7 @@ func (m *IssuanceAssetPriceRecord) GetRecordTime() int64 {
return 0
}
func (m *IssuanceAssetPriceRecord) GetBtyPrice() float64 {
func (m *IssuanceAssetPriceRecord) GetBtyPrice() int64 {
if m != nil {
return m.BtyPrice
}
......@@ -367,16 +368,17 @@ func (m *IssuanceAction) Reset() { *m = IssuanceAction{} }
func (m *IssuanceAction) String() string { return proto.CompactTextString(m) }
func (*IssuanceAction) ProtoMessage() {}
func (*IssuanceAction) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{3}
return fileDescriptor_7110f4228953d675, []int{3}
}
func (m *IssuanceAction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IssuanceAction.Unmarshal(m, b)
}
func (m *IssuanceAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IssuanceAction.Marshal(b, m, deterministic)
}
func (dst *IssuanceAction) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceAction.Merge(dst, src)
func (m *IssuanceAction) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceAction.Merge(m, src)
}
func (m *IssuanceAction) XXX_Size() int {
return xxx_messageInfo_IssuanceAction.Size(m)
......@@ -483,9 +485,9 @@ func (m *IssuanceAction) GetTy() int32 {
return 0
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*IssuanceAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _IssuanceAction_OneofMarshaler, _IssuanceAction_OneofUnmarshaler, _IssuanceAction_OneofSizer, []interface{}{
// XXX_OneofWrappers is for the internal use of the proto package.
func (*IssuanceAction) XXX_OneofWrappers() []interface{} {
return []interface{}{
(*IssuanceAction_Create)(nil),
(*IssuanceAction_Debt)(nil),
(*IssuanceAction_Repay)(nil),
......@@ -495,144 +497,6 @@ func (*IssuanceAction) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer
}
}
func _IssuanceAction_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*IssuanceAction)
// value
switch x := m.Value.(type) {
case *IssuanceAction_Create:
b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Create); err != nil {
return err
}
case *IssuanceAction_Debt:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Debt); err != nil {
return err
}
case *IssuanceAction_Repay:
b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Repay); err != nil {
return err
}
case *IssuanceAction_Feed:
b.EncodeVarint(4<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Feed); err != nil {
return err
}
case *IssuanceAction_Close:
b.EncodeVarint(5<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Close); err != nil {
return err
}
case *IssuanceAction_Manage:
b.EncodeVarint(6<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Manage); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("IssuanceAction.Value has unexpected type %T", x)
}
return nil
}
func _IssuanceAction_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*IssuanceAction)
switch tag {
case 1: // value.create
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(IssuanceCreate)
err := b.DecodeMessage(msg)
m.Value = &IssuanceAction_Create{msg}
return true, err
case 2: // value.debt
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(IssuanceDebt)
err := b.DecodeMessage(msg)
m.Value = &IssuanceAction_Debt{msg}
return true, err
case 3: // value.repay
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(IssuanceRepay)
err := b.DecodeMessage(msg)
m.Value = &IssuanceAction_Repay{msg}
return true, err
case 4: // value.feed
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(IssuanceFeed)
err := b.DecodeMessage(msg)
m.Value = &IssuanceAction_Feed{msg}
return true, err
case 5: // value.close
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(IssuanceClose)
err := b.DecodeMessage(msg)
m.Value = &IssuanceAction_Close{msg}
return true, err
case 6: // value.manage
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(IssuanceManage)
err := b.DecodeMessage(msg)
m.Value = &IssuanceAction_Manage{msg}
return true, err
default:
return false, nil
}
}
func _IssuanceAction_OneofSizer(msg proto.Message) (n int) {
m := msg.(*IssuanceAction)
// value
switch x := m.Value.(type) {
case *IssuanceAction_Create:
s := proto.Size(x.Create)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *IssuanceAction_Debt:
s := proto.Size(x.Debt)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *IssuanceAction_Repay:
s := proto.Size(x.Repay)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *IssuanceAction_Feed:
s := proto.Size(x.Feed)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *IssuanceAction_Close:
s := proto.Size(x.Close)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case *IssuanceAction_Manage:
s := proto.Size(x.Manage)
n += 1 // tag and wire
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
type IssuanceManage struct {
SuperAddrs []string `protobuf:"bytes,1,rep,name=superAddrs,proto3" json:"superAddrs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
......@@ -644,16 +508,17 @@ func (m *IssuanceManage) Reset() { *m = IssuanceManage{} }
func (m *IssuanceManage) String() string { return proto.CompactTextString(m) }
func (*IssuanceManage) ProtoMessage() {}
func (*IssuanceManage) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{4}
return fileDescriptor_7110f4228953d675, []int{4}
}
func (m *IssuanceManage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IssuanceManage.Unmarshal(m, b)
}
func (m *IssuanceManage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IssuanceManage.Marshal(b, m, deterministic)
}
func (dst *IssuanceManage) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceManage.Merge(dst, src)
func (m *IssuanceManage) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceManage.Merge(m, src)
}
func (m *IssuanceManage) XXX_Size() int {
return xxx_messageInfo_IssuanceManage.Size(m)
......@@ -675,7 +540,7 @@ func (m *IssuanceManage) GetSuperAddrs() []string {
type IssuanceCreate struct {
TotalBalance int64 `protobuf:"varint,1,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`
DebtCeiling int64 `protobuf:"varint,2,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`
LiquidationRatio float64 `protobuf:"fixed64,3,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
LiquidationRatio int64 `protobuf:"varint,3,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
Period int64 `protobuf:"varint,4,opt,name=period,proto3" json:"period,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
......@@ -686,16 +551,17 @@ func (m *IssuanceCreate) Reset() { *m = IssuanceCreate{} }
func (m *IssuanceCreate) String() string { return proto.CompactTextString(m) }
func (*IssuanceCreate) ProtoMessage() {}
func (*IssuanceCreate) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{5}
return fileDescriptor_7110f4228953d675, []int{5}
}
func (m *IssuanceCreate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IssuanceCreate.Unmarshal(m, b)
}
func (m *IssuanceCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IssuanceCreate.Marshal(b, m, deterministic)
}
func (dst *IssuanceCreate) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceCreate.Merge(dst, src)
func (m *IssuanceCreate) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceCreate.Merge(m, src)
}
func (m *IssuanceCreate) XXX_Size() int {
return xxx_messageInfo_IssuanceCreate.Size(m)
......@@ -720,7 +586,7 @@ func (m *IssuanceCreate) GetDebtCeiling() int64 {
return 0
}
func (m *IssuanceCreate) GetLiquidationRatio() float64 {
func (m *IssuanceCreate) GetLiquidationRatio() int64 {
if m != nil {
return m.LiquidationRatio
}
......@@ -747,16 +613,17 @@ func (m *IssuanceDebt) Reset() { *m = IssuanceDebt{} }
func (m *IssuanceDebt) String() string { return proto.CompactTextString(m) }
func (*IssuanceDebt) ProtoMessage() {}
func (*IssuanceDebt) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{6}
return fileDescriptor_7110f4228953d675, []int{6}
}
func (m *IssuanceDebt) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IssuanceDebt.Unmarshal(m, b)
}
func (m *IssuanceDebt) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IssuanceDebt.Marshal(b, m, deterministic)
}
func (dst *IssuanceDebt) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceDebt.Merge(dst, src)
func (m *IssuanceDebt) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceDebt.Merge(m, src)
}
func (m *IssuanceDebt) XXX_Size() int {
return xxx_messageInfo_IssuanceDebt.Size(m)
......@@ -794,16 +661,17 @@ func (m *IssuanceRepay) Reset() { *m = IssuanceRepay{} }
func (m *IssuanceRepay) String() string { return proto.CompactTextString(m) }
func (*IssuanceRepay) ProtoMessage() {}
func (*IssuanceRepay) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{7}
return fileDescriptor_7110f4228953d675, []int{7}
}
func (m *IssuanceRepay) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IssuanceRepay.Unmarshal(m, b)
}
func (m *IssuanceRepay) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IssuanceRepay.Marshal(b, m, deterministic)
}
func (dst *IssuanceRepay) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceRepay.Merge(dst, src)
func (m *IssuanceRepay) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceRepay.Merge(m, src)
}
func (m *IssuanceRepay) XXX_Size() int {
return xxx_messageInfo_IssuanceRepay.Size(m)
......@@ -830,28 +698,29 @@ func (m *IssuanceRepay) GetDebtId() string {
// 喂价
type IssuanceFeed struct {
CollType int32 `protobuf:"varint,1,opt,name=collType,proto3" json:"collType,omitempty"`
Price []float64 `protobuf:"fixed64,2,rep,packed,name=price,proto3" json:"price,omitempty"`
Volume []int64 `protobuf:"varint,3,rep,packed,name=volume,proto3" json:"volume,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
CollType int32 `protobuf:"varint,1,opt,name=collType,proto3" json:"collType,omitempty"`
Price []int64 `protobuf:"varint,2,rep,packed,name=price,proto3" json:"price,omitempty"`
Volume []int64 `protobuf:"varint,3,rep,packed,name=volume,proto3" json:"volume,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *IssuanceFeed) Reset() { *m = IssuanceFeed{} }
func (m *IssuanceFeed) String() string { return proto.CompactTextString(m) }
func (*IssuanceFeed) ProtoMessage() {}
func (*IssuanceFeed) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{8}
return fileDescriptor_7110f4228953d675, []int{8}
}
func (m *IssuanceFeed) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IssuanceFeed.Unmarshal(m, b)
}
func (m *IssuanceFeed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IssuanceFeed.Marshal(b, m, deterministic)
}
func (dst *IssuanceFeed) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceFeed.Merge(dst, src)
func (m *IssuanceFeed) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceFeed.Merge(m, src)
}
func (m *IssuanceFeed) XXX_Size() int {
return xxx_messageInfo_IssuanceFeed.Size(m)
......@@ -869,7 +738,7 @@ func (m *IssuanceFeed) GetCollType() int32 {
return 0
}
func (m *IssuanceFeed) GetPrice() []float64 {
func (m *IssuanceFeed) GetPrice() []int64 {
if m != nil {
return m.Price
}
......@@ -895,16 +764,17 @@ func (m *IssuanceClose) Reset() { *m = IssuanceClose{} }
func (m *IssuanceClose) String() string { return proto.CompactTextString(m) }
func (*IssuanceClose) ProtoMessage() {}
func (*IssuanceClose) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{9}
return fileDescriptor_7110f4228953d675, []int{9}
}
func (m *IssuanceClose) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IssuanceClose.Unmarshal(m, b)
}
func (m *IssuanceClose) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IssuanceClose.Marshal(b, m, deterministic)
}
func (dst *IssuanceClose) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceClose.Merge(dst, src)
func (m *IssuanceClose) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceClose.Merge(m, src)
}
func (m *IssuanceClose) XXX_Size() int {
return xxx_messageInfo_IssuanceClose.Size(m)
......@@ -937,16 +807,17 @@ func (m *ReceiptIssuance) Reset() { *m = ReceiptIssuance{} }
func (m *ReceiptIssuance) String() string { return proto.CompactTextString(m) }
func (*ReceiptIssuance) ProtoMessage() {}
func (*ReceiptIssuance) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{10}
return fileDescriptor_7110f4228953d675, []int{10}
}
func (m *ReceiptIssuance) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReceiptIssuance.Unmarshal(m, b)
}
func (m *ReceiptIssuance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReceiptIssuance.Marshal(b, m, deterministic)
}
func (dst *ReceiptIssuance) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReceiptIssuance.Merge(dst, src)
func (m *ReceiptIssuance) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReceiptIssuance.Merge(m, src)
}
func (m *ReceiptIssuance) XXX_Size() int {
return xxx_messageInfo_ReceiptIssuance.Size(m)
......@@ -998,16 +869,17 @@ func (m *ReceiptIssuanceID) Reset() { *m = ReceiptIssuanceID{} }
func (m *ReceiptIssuanceID) String() string { return proto.CompactTextString(m) }
func (*ReceiptIssuanceID) ProtoMessage() {}
func (*ReceiptIssuanceID) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{11}
return fileDescriptor_7110f4228953d675, []int{11}
}
func (m *ReceiptIssuanceID) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReceiptIssuanceID.Unmarshal(m, b)
}
func (m *ReceiptIssuanceID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReceiptIssuanceID.Marshal(b, m, deterministic)
}
func (dst *ReceiptIssuanceID) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReceiptIssuanceID.Merge(dst, src)
func (m *ReceiptIssuanceID) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReceiptIssuanceID.Merge(m, src)
}
func (m *ReceiptIssuanceID) XXX_Size() int {
return xxx_messageInfo_ReceiptIssuanceID.Size(m)
......@@ -1044,16 +916,17 @@ func (m *IssuanceRecords) Reset() { *m = IssuanceRecords{} }
func (m *IssuanceRecords) String() string { return proto.CompactTextString(m) }
func (*IssuanceRecords) ProtoMessage() {}
func (*IssuanceRecords) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{12}
return fileDescriptor_7110f4228953d675, []int{12}
}
func (m *IssuanceRecords) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IssuanceRecords.Unmarshal(m, b)
}
func (m *IssuanceRecords) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_IssuanceRecords.Marshal(b, m, deterministic)
}
func (dst *IssuanceRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceRecords.Merge(dst, src)
func (m *IssuanceRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_IssuanceRecords.Merge(m, src)
}
func (m *IssuanceRecords) XXX_Size() int {
return xxx_messageInfo_IssuanceRecords.Size(m)
......@@ -1083,16 +956,17 @@ func (m *ReqIssuanceInfo) Reset() { *m = ReqIssuanceInfo{} }
func (m *ReqIssuanceInfo) String() string { return proto.CompactTextString(m) }
func (*ReqIssuanceInfo) ProtoMessage() {}
func (*ReqIssuanceInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{13}
return fileDescriptor_7110f4228953d675, []int{13}
}
func (m *ReqIssuanceInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqIssuanceInfo.Unmarshal(m, b)
}
func (m *ReqIssuanceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqIssuanceInfo.Marshal(b, m, deterministic)
}
func (dst *ReqIssuanceInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqIssuanceInfo.Merge(dst, src)
func (m *ReqIssuanceInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqIssuanceInfo.Merge(m, src)
}
func (m *ReqIssuanceInfo) XXX_Size() int {
return xxx_messageInfo_ReqIssuanceInfo.Size(m)
......@@ -1115,7 +989,7 @@ type RepIssuanceCurrentInfo struct {
Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
TotalBalance int64 `protobuf:"varint,2,opt,name=totalBalance,proto3" json:"totalBalance,omitempty"`
DebtCeiling int64 `protobuf:"varint,3,opt,name=debtCeiling,proto3" json:"debtCeiling,omitempty"`
LiquidationRatio float64 `protobuf:"fixed64,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
LiquidationRatio int64 `protobuf:"varint,4,opt,name=liquidationRatio,proto3" json:"liquidationRatio,omitempty"`
Balance int64 `protobuf:"varint,5,opt,name=balance,proto3" json:"balance,omitempty"`
CollateralValue int64 `protobuf:"varint,6,opt,name=collateralValue,proto3" json:"collateralValue,omitempty"`
DebtValue int64 `protobuf:"varint,7,opt,name=debtValue,proto3" json:"debtValue,omitempty"`
......@@ -1131,16 +1005,17 @@ func (m *RepIssuanceCurrentInfo) Reset() { *m = RepIssuanceCurrentInfo{}
func (m *RepIssuanceCurrentInfo) String() string { return proto.CompactTextString(m) }
func (*RepIssuanceCurrentInfo) ProtoMessage() {}
func (*RepIssuanceCurrentInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{14}
return fileDescriptor_7110f4228953d675, []int{14}
}
func (m *RepIssuanceCurrentInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepIssuanceCurrentInfo.Unmarshal(m, b)
}
func (m *RepIssuanceCurrentInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepIssuanceCurrentInfo.Marshal(b, m, deterministic)
}
func (dst *RepIssuanceCurrentInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceCurrentInfo.Merge(dst, src)
func (m *RepIssuanceCurrentInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceCurrentInfo.Merge(m, src)
}
func (m *RepIssuanceCurrentInfo) XXX_Size() int {
return xxx_messageInfo_RepIssuanceCurrentInfo.Size(m)
......@@ -1172,7 +1047,7 @@ func (m *RepIssuanceCurrentInfo) GetDebtCeiling() int64 {
return 0
}
func (m *RepIssuanceCurrentInfo) GetLiquidationRatio() float64 {
func (m *RepIssuanceCurrentInfo) GetLiquidationRatio() int64 {
if m != nil {
return m.LiquidationRatio
}
......@@ -1233,16 +1108,17 @@ func (m *ReqIssuanceInfos) Reset() { *m = ReqIssuanceInfos{} }
func (m *ReqIssuanceInfos) String() string { return proto.CompactTextString(m) }
func (*ReqIssuanceInfos) ProtoMessage() {}
func (*ReqIssuanceInfos) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{15}
return fileDescriptor_7110f4228953d675, []int{15}
}
func (m *ReqIssuanceInfos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqIssuanceInfos.Unmarshal(m, b)
}
func (m *ReqIssuanceInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqIssuanceInfos.Marshal(b, m, deterministic)
}
func (dst *ReqIssuanceInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqIssuanceInfos.Merge(dst, src)
func (m *ReqIssuanceInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqIssuanceInfos.Merge(m, src)
}
func (m *ReqIssuanceInfos) XXX_Size() int {
return xxx_messageInfo_ReqIssuanceInfos.Size(m)
......@@ -1272,16 +1148,17 @@ func (m *RepIssuanceCurrentInfos) Reset() { *m = RepIssuanceCurrentInfos
func (m *RepIssuanceCurrentInfos) String() string { return proto.CompactTextString(m) }
func (*RepIssuanceCurrentInfos) ProtoMessage() {}
func (*RepIssuanceCurrentInfos) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{16}
return fileDescriptor_7110f4228953d675, []int{16}
}
func (m *RepIssuanceCurrentInfos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepIssuanceCurrentInfos.Unmarshal(m, b)
}
func (m *RepIssuanceCurrentInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepIssuanceCurrentInfos.Marshal(b, m, deterministic)
}
func (dst *RepIssuanceCurrentInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceCurrentInfos.Merge(dst, src)
func (m *RepIssuanceCurrentInfos) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceCurrentInfos.Merge(m, src)
}
func (m *RepIssuanceCurrentInfos) XXX_Size() int {
return xxx_messageInfo_RepIssuanceCurrentInfos.Size(m)
......@@ -1312,16 +1189,17 @@ func (m *ReqIssuanceByStatus) Reset() { *m = ReqIssuanceByStatus{} }
func (m *ReqIssuanceByStatus) String() string { return proto.CompactTextString(m) }
func (*ReqIssuanceByStatus) ProtoMessage() {}
func (*ReqIssuanceByStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{17}
return fileDescriptor_7110f4228953d675, []int{17}
}
func (m *ReqIssuanceByStatus) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqIssuanceByStatus.Unmarshal(m, b)
}
func (m *ReqIssuanceByStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqIssuanceByStatus.Marshal(b, m, deterministic)
}
func (dst *ReqIssuanceByStatus) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqIssuanceByStatus.Merge(dst, src)
func (m *ReqIssuanceByStatus) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqIssuanceByStatus.Merge(m, src)
}
func (m *ReqIssuanceByStatus) XXX_Size() int {
return xxx_messageInfo_ReqIssuanceByStatus.Size(m)
......@@ -1358,16 +1236,17 @@ func (m *RepIssuanceIDs) Reset() { *m = RepIssuanceIDs{} }
func (m *RepIssuanceIDs) String() string { return proto.CompactTextString(m) }
func (*RepIssuanceIDs) ProtoMessage() {}
func (*RepIssuanceIDs) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{18}
return fileDescriptor_7110f4228953d675, []int{18}
}
func (m *RepIssuanceIDs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepIssuanceIDs.Unmarshal(m, b)
}
func (m *RepIssuanceIDs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepIssuanceIDs.Marshal(b, m, deterministic)
}
func (dst *RepIssuanceIDs) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceIDs.Merge(dst, src)
func (m *RepIssuanceIDs) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceIDs.Merge(m, src)
}
func (m *RepIssuanceIDs) XXX_Size() int {
return xxx_messageInfo_RepIssuanceIDs.Size(m)
......@@ -1400,16 +1279,17 @@ func (m *ReqIssuanceRecords) Reset() { *m = ReqIssuanceRecords{} }
func (m *ReqIssuanceRecords) String() string { return proto.CompactTextString(m) }
func (*ReqIssuanceRecords) ProtoMessage() {}
func (*ReqIssuanceRecords) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{19}
return fileDescriptor_7110f4228953d675, []int{19}
}
func (m *ReqIssuanceRecords) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqIssuanceRecords.Unmarshal(m, b)
}
func (m *ReqIssuanceRecords) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ReqIssuanceRecords.Marshal(b, m, deterministic)
}
func (dst *ReqIssuanceRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqIssuanceRecords.Merge(dst, src)
func (m *ReqIssuanceRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_ReqIssuanceRecords.Merge(m, src)
}
func (m *ReqIssuanceRecords) XXX_Size() int {
return xxx_messageInfo_ReqIssuanceRecords.Size(m)
......@@ -1460,16 +1340,17 @@ func (m *RepIssuanceRecords) Reset() { *m = RepIssuanceRecords{} }
func (m *RepIssuanceRecords) String() string { return proto.CompactTextString(m) }
func (*RepIssuanceRecords) ProtoMessage() {}
func (*RepIssuanceRecords) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{20}
return fileDescriptor_7110f4228953d675, []int{20}
}
func (m *RepIssuanceRecords) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepIssuanceRecords.Unmarshal(m, b)
}
func (m *RepIssuanceRecords) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepIssuanceRecords.Marshal(b, m, deterministic)
}
func (dst *RepIssuanceRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceRecords.Merge(dst, src)
func (m *RepIssuanceRecords) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceRecords.Merge(m, src)
}
func (m *RepIssuanceRecords) XXX_Size() int {
return xxx_messageInfo_RepIssuanceRecords.Size(m)
......@@ -1499,16 +1380,17 @@ func (m *RepIssuanceDebtInfo) Reset() { *m = RepIssuanceDebtInfo{} }
func (m *RepIssuanceDebtInfo) String() string { return proto.CompactTextString(m) }
func (*RepIssuanceDebtInfo) ProtoMessage() {}
func (*RepIssuanceDebtInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{21}
return fileDescriptor_7110f4228953d675, []int{21}
}
func (m *RepIssuanceDebtInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepIssuanceDebtInfo.Unmarshal(m, b)
}
func (m *RepIssuanceDebtInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepIssuanceDebtInfo.Marshal(b, m, deterministic)
}
func (dst *RepIssuanceDebtInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceDebtInfo.Merge(dst, src)
func (m *RepIssuanceDebtInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuanceDebtInfo.Merge(m, src)
}
func (m *RepIssuanceDebtInfo) XXX_Size() int {
return xxx_messageInfo_RepIssuanceDebtInfo.Size(m)
......@@ -1528,7 +1410,7 @@ func (m *RepIssuanceDebtInfo) GetRecord() *DebtRecord {
// 返回最新抵押物价格
type RepIssuancePrice struct {
Price float64 `protobuf:"fixed64,1,opt,name=price,proto3" json:"price,omitempty"`
Price int64 `protobuf:"varint,1,opt,name=price,proto3" json:"price,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
......@@ -1538,16 +1420,17 @@ func (m *RepIssuancePrice) Reset() { *m = RepIssuancePrice{} }
func (m *RepIssuancePrice) String() string { return proto.CompactTextString(m) }
func (*RepIssuancePrice) ProtoMessage() {}
func (*RepIssuancePrice) Descriptor() ([]byte, []int) {
return fileDescriptor_issuance_40720e0041940428, []int{22}
return fileDescriptor_7110f4228953d675, []int{22}
}
func (m *RepIssuancePrice) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepIssuancePrice.Unmarshal(m, b)
}
func (m *RepIssuancePrice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RepIssuancePrice.Marshal(b, m, deterministic)
}
func (dst *RepIssuancePrice) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuancePrice.Merge(dst, src)
func (m *RepIssuancePrice) XXX_Merge(src proto.Message) {
xxx_messageInfo_RepIssuancePrice.Merge(m, src)
}
func (m *RepIssuancePrice) XXX_Size() int {
return xxx_messageInfo_RepIssuancePrice.Size(m)
......@@ -1558,7 +1441,7 @@ func (m *RepIssuancePrice) XXX_DiscardUnknown() {
var xxx_messageInfo_RepIssuancePrice proto.InternalMessageInfo
func (m *RepIssuancePrice) GetPrice() float64 {
func (m *RepIssuancePrice) GetPrice() int64 {
if m != nil {
return m.Price
}
......@@ -1591,73 +1474,73 @@ func init() {
proto.RegisterType((*RepIssuancePrice)(nil), "types.RepIssuancePrice")
}
func init() { proto.RegisterFile("issuance.proto", fileDescriptor_issuance_40720e0041940428) }
var fileDescriptor_issuance_40720e0041940428 = []byte{
// 1031 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xcd, 0x6e, 0xdb, 0x46,
0x10, 0x36, 0x49, 0x51, 0xb2, 0x46, 0xb6, 0xec, 0x6c, 0x52, 0x97, 0x28, 0xda, 0x40, 0x58, 0xf4,
0xa0, 0xb4, 0x85, 0x93, 0xda, 0x45, 0x81, 0xde, 0x6a, 0x5b, 0x6d, 0x2d, 0xb4, 0x29, 0x8a, 0x6d,
0x10, 0xf4, 0x4a, 0x93, 0x9b, 0x80, 0x00, 0x2d, 0x32, 0xe4, 0xca, 0x88, 0xce, 0x7d, 0x87, 0x1e,
0xfa, 0x2e, 0xbd, 0xf4, 0x19, 0xfa, 0x40, 0xc5, 0xcc, 0x2e, 0xb9, 0xfc, 0x91, 0x21, 0x9f, 0x72,
0x31, 0xb4, 0xb3, 0xdf, 0xce, 0xce, 0xce, 0xf7, 0xcd, 0x0c, 0x0d, 0xd3, 0xa4, 0x2c, 0xd7, 0xe1,
0x2a, 0x92, 0xa7, 0x79, 0x91, 0xa9, 0x8c, 0xf9, 0x6a, 0x93, 0xcb, 0x92, 0xff, 0x3b, 0x80, 0xfd,
0xa5, 0xd9, 0x61, 0x4f, 0x01, 0x2a, 0xd4, 0x32, 0x0e, 0x9c, 0x99, 0x33, 0x1f, 0x8b, 0x86, 0x85,
0x71, 0x38, 0x50, 0x99, 0x0a, 0xd3, 0xcb, 0x30, 0x45, 0x4b, 0xe0, 0xce, 0x9c, 0xb9, 0x27, 0x5a,
0x36, 0x36, 0x83, 0x49, 0x2c, 0x6f, 0xd4, 0x95, 0x4c, 0xd2, 0x64, 0xf5, 0x36, 0xf0, 0x08, 0xd2,
0x34, 0xb1, 0x2f, 0xe0, 0x38, 0x4d, 0xde, 0xad, 0x93, 0x38, 0x54, 0x49, 0xb6, 0x12, 0xf8, 0x37,
0x18, 0xcc, 0x9c, 0xb9, 0x23, 0x7a, 0x76, 0x36, 0x87, 0xa3, 0x28, 0x4b, 0xd3, 0x50, 0xc9, 0x22,
0x4c, 0x5f, 0x87, 0xe9, 0x5a, 0x06, 0x3e, 0x79, 0xec, 0x9a, 0xd9, 0xa7, 0x30, 0xc6, 0x4b, 0x34,
0x66, 0x48, 0x18, 0x6b, 0x60, 0xe7, 0x3a, 0x2a, 0x21, 0xa3, 0xac, 0x88, 0xcb, 0x60, 0x34, 0xf3,
0xe6, 0x93, 0xb3, 0x47, 0xa7, 0x94, 0x83, 0xd3, 0x45, 0xbd, 0x23, 0x9a, 0x28, 0xf6, 0x1d, 0x4c,
0x93, 0xd5, 0x5d, 0x98, 0x26, 0x71, 0x75, 0x6e, 0xff, 0xbe, 0x73, 0x1d, 0x20, 0x3b, 0x81, 0x61,
0xa9, 0x42, 0xb5, 0x2e, 0x83, 0xf1, 0xcc, 0x99, 0xfb, 0xc2, 0xac, 0xd8, 0xb7, 0x70, 0x82, 0x51,
0x97, 0xea, 0x17, 0xfb, 0xd2, 0xdf, 0x8a, 0x24, 0x92, 0x01, 0x50, 0x06, 0xee, 0xd9, 0x45, 0x7f,
0xb9, 0x2c, 0x92, 0x2c, 0x0e, 0x26, 0xf4, 0x34, 0xb3, 0xa2, 0x5c, 0xd2, 0x89, 0x1f, 0xde, 0xe7,
0x49, 0x21, 0x5f, 0x25, 0xb7, 0x32, 0x38, 0x20, 0x44, 0xcf, 0x8e, 0xec, 0x46, 0x85, 0x0c, 0x95,
0x46, 0x1d, 0x12, 0xaa, 0x61, 0x61, 0x01, 0x8c, 0x6e, 0x0c, 0xb1, 0x53, 0xda, 0xac, 0x96, 0x95,
0x2e, 0x64, 0x71, 0x11, 0xc7, 0x45, 0x70, 0x64, 0x75, 0xa1, 0x2d, 0xfc, 0x2f, 0x0f, 0xc0, 0x26,
0x03, 0x25, 0x10, 0x46, 0x51, 0xb6, 0x5e, 0x29, 0xc2, 0x6b, 0x1d, 0x35, 0x4d, 0x48, 0x56, 0xa9,
0xc2, 0x42, 0x51, 0x24, 0x5a, 0x45, 0xd6, 0xb0, 0x8d, 0x74, 0x6f, 0x3b, 0xe9, 0x2d, 0xa4, 0xce,
0xa3, 0x56, 0x52, 0xd7, 0xdc, 0x96, 0x87, 0xdf, 0x95, 0x47, 0x5b, 0x92, 0xda, 0xd1, 0xb0, 0x27,
0xc9, 0x9a, 0x0a, 0x43, 0xed, 0xa8, 0x45, 0xed, 0xe7, 0x70, 0x58, 0x61, 0x75, 0x86, 0xf7, 0xe9,
0x96, 0xb6, 0x11, 0x53, 0x29, 0x2d, 0x55, 0x63, 0x4d, 0x82, 0xb5, 0x60, 0x9c, 0x79, 0x21, 0x7f,
0xd7, 0x17, 0x00, 0x5d, 0x60, 0x0d, 0x78, 0x37, 0x06, 0xbd, 0xd4, 0x32, 0x18, 0x0b, 0xb3, 0x42,
0x3b, 0xd2, 0xb1, 0x8c, 0x89, 0xfc, 0xb1, 0x30, 0x2b, 0xfe, 0x1a, 0x82, 0xaa, 0xb8, 0x2f, 0xca,
0x52, 0x2a, 0x7a, 0x81, 0x61, 0xe9, 0x29, 0x40, 0x41, 0xbf, 0x28, 0x12, 0x47, 0x47, 0x62, 0x2d,
0xec, 0x13, 0xd8, 0xbf, 0x51, 0x1b, 0x9d, 0x0b, 0x97, 0x72, 0x51, 0xaf, 0xf9, 0x3f, 0x2e, 0x4c,
0x6b, 0xc7, 0x11, 0xe6, 0x86, 0x3d, 0x87, 0xa1, 0xd6, 0x12, 0xb9, 0x9a, 0x9c, 0x7d, 0x64, 0x8a,
0xa4, 0x82, 0x5d, 0xd1, 0xe6, 0xf5, 0x9e, 0x30, 0x30, 0xf6, 0x0c, 0x06, 0x18, 0x3d, 0xf9, 0x9e,
0x9c, 0x3d, 0xee, 0xc0, 0x51, 0x4e, 0xd7, 0x7b, 0x82, 0x20, 0xec, 0x2b, 0xf0, 0x0b, 0x99, 0x87,
0x1b, 0x92, 0xc1, 0xe4, 0xec, 0x49, 0x07, 0x2b, 0x70, 0xef, 0x7a, 0x4f, 0x68, 0x10, 0x3a, 0x7e,
0x23, 0x65, 0x4c, 0x4a, 0xe8, 0x3b, 0xfe, 0x51, 0xca, 0x18, 0x1d, 0x23, 0x04, 0x1d, 0x47, 0x69,
0x56, 0x6a, 0x45, 0xf4, 0x1d, 0x5f, 0xe1, 0x1e, 0x3a, 0x26, 0x10, 0x3e, 0xf1, 0x36, 0x5c, 0x85,
0x6f, 0xb5, 0x36, 0xfa, 0x4f, 0x7c, 0x49, 0x9b, 0xf8, 0x44, 0x0d, 0x63, 0x53, 0x70, 0xd5, 0xc6,
0xb0, 0xe8, 0xaa, 0xcd, 0xe5, 0x08, 0xfc, 0x3b, 0xd4, 0x1b, 0x7f, 0x61, 0xd3, 0xa7, 0x0f, 0x21,
0x1b, 0xe5, 0x3a, 0xd7, 0xf5, 0x54, 0x06, 0xce, 0xcc, 0xc3, 0x12, 0xb3, 0x16, 0xfe, 0xb7, 0x63,
0x8f, 0xe8, 0x54, 0xf6, 0xba, 0xb1, 0xb3, 0xbb, 0x1b, 0xbb, 0x0f, 0xeb, 0xc6, 0xde, 0x3d, 0xdd,
0xd8, 0x76, 0xa1, 0x41, 0xb3, 0x0b, 0xf1, 0x05, 0x1c, 0x34, 0x79, 0xdb, 0x39, 0x47, 0x9e, 0x98,
0x3c, 0x98, 0x78, 0x4c, 0x52, 0x7e, 0x82, 0xc3, 0x16, 0xa3, 0x3b, 0xdd, 0xd8, 0x6a, 0x70, 0x9b,
0xd5, 0xc0, 0xff, 0xb0, 0xe1, 0x20, 0xdb, 0xa8, 0x64, 0x6c, 0x07, 0xaf, 0x36, 0xb9, 0x4e, 0x92,
0x2f, 0xea, 0x35, 0x86, 0x92, 0x1b, 0x89, 0x7b, 0x73, 0x47, 0xe8, 0x05, 0x7a, 0xbe, 0xcb, 0xd2,
0xf5, 0x2d, 0x36, 0x1e, 0x0f, 0x1f, 0xaa, 0x57, 0xfc, 0xb9, 0x0d, 0x91, 0xb4, 0xb1, 0x2b, 0x44,
0xfe, 0xa7, 0x03, 0x47, 0x42, 0x46, 0x32, 0xc9, 0xd5, 0x83, 0xa7, 0x6c, 0xa7, 0x7d, 0xba, 0xfd,
0xf6, 0x69, 0x1f, 0xee, 0x75, 0xdb, 0x80, 0x69, 0x4d, 0x83, 0x66, 0x6b, 0xe2, 0x3f, 0xc3, 0xa3,
0x4e, 0x10, 0xcb, 0xc5, 0x43, 0xb2, 0x6b, 0x9c, 0xb9, 0x2d, 0x67, 0x57, 0x70, 0x64, 0x69, 0xd2,
0xd3, 0xee, 0x05, 0x8c, 0x0a, 0x33, 0x21, 0x1d, 0x9a, 0x90, 0x27, 0xa6, 0x32, 0x3a, 0xb7, 0x8a,
0x0a, 0xc6, 0xbf, 0xc6, 0xb4, 0xbc, 0xab, 0xa3, 0x59, 0xbd, 0xc9, 0x76, 0xa6, 0xf2, 0x3f, 0x17,
0x4e, 0x84, 0xcc, 0xeb, 0xfc, 0xaf, 0x8b, 0x42, 0xae, 0x14, 0x1d, 0xb5, 0xa1, 0x3a, 0xad, 0x96,
0xfc, 0xe1, 0xbf, 0x57, 0x1a, 0x33, 0xd4, 0x6f, 0xcf, 0xd0, 0x2d, 0x43, 0x6d, 0xf8, 0x80, 0x2f,
0x99, 0x51, 0x77, 0x54, 0xd9, 0x1a, 0xdc, 0x6f, 0x7d, 0x09, 0xd8, 0x11, 0x30, 0x6e, 0x8e, 0x80,
0xce, 0xd4, 0x87, 0xee, 0xd4, 0xe7, 0xdf, 0xc0, 0x71, 0x87, 0x89, 0x12, 0x73, 0x62, 0x13, 0x5f,
0x75, 0xa3, 0xa6, 0x89, 0xff, 0x0a, 0x1f, 0x6f, 0xe7, 0xa2, 0x64, 0xe7, 0xe0, 0x27, 0xf8, 0xc3,
0x48, 0xe1, 0xb3, 0x5a, 0x0a, 0xdb, 0xe0, 0x42, 0x63, 0xf9, 0x4b, 0x78, 0xdc, 0x88, 0xe2, 0x72,
0x63, 0xe7, 0xdd, 0x56, 0x62, 0xdb, 0x5a, 0x71, 0x7b, 0x5a, 0xe1, 0x30, 0x6d, 0xdc, 0xb7, 0x5c,
0x94, 0xec, 0x18, 0xbc, 0xe5, 0xa2, 0x7a, 0x0a, 0xfe, 0xe4, 0xef, 0x81, 0x35, 0xae, 0xac, 0xa4,
0xbc, 0xab, 0x2a, 0x18, 0x0c, 0x42, 0x5b, 0x95, 0xf4, 0xbb, 0x11, 0xa5, 0xd7, 0x8a, 0xd2, 0x96,
0xe9, 0xa0, 0xd5, 0x9f, 0x2e, 0xf0, 0xe6, 0xbc, 0x7b, 0xf3, 0x97, 0xdd, 0x22, 0xda, 0xf2, 0x99,
0x59, 0xd7, 0xcf, 0xf7, 0x98, 0xaf, 0xbc, 0xd9, 0x74, 0xa9, 0x10, 0x9e, 0xc1, 0x50, 0x23, 0xcc,
0x10, 0xde, 0xe2, 0xc2, 0x00, 0xf8, 0x1c, 0x79, 0xaf, 0x3d, 0xe8, 0x4f, 0x9b, 0xba, 0x19, 0x3a,
0x24, 0x6f, 0xbd, 0xb8, 0x19, 0xd2, 0x3f, 0x0c, 0xe7, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x7f,
0x53, 0x25, 0x23, 0x42, 0x0c, 0x00, 0x00,
func init() { proto.RegisterFile("issuance.proto", fileDescriptor_7110f4228953d675) }
var fileDescriptor_7110f4228953d675 = []byte{
// 1026 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xcd, 0x6e, 0xe3, 0x36,
0x10, 0x8e, 0x24, 0xcb, 0x3f, 0xe3, 0xc4, 0xc9, 0x72, 0xb7, 0xa9, 0x50, 0xb4, 0x0b, 0x83, 0xe8,
0xc1, 0xdb, 0x16, 0xd9, 0x6d, 0x52, 0x14, 0xe8, 0xad, 0x49, 0xdc, 0x36, 0x46, 0xbb, 0x45, 0xc1,
0x2e, 0x16, 0xbd, 0x2a, 0x12, 0x77, 0x21, 0x40, 0xb1, 0xb4, 0x12, 0x1d, 0xac, 0xcf, 0x7d, 0x87,
0x1e, 0xfa, 0x2e, 0xbd, 0xf4, 0x19, 0xfa, 0x40, 0xc5, 0x90, 0x94, 0x48, 0xd1, 0x0e, 0xec, 0xd3,
0x5e, 0x02, 0x73, 0xf8, 0x71, 0x38, 0x9c, 0xef, 0x9b, 0x19, 0x05, 0x26, 0x59, 0x5d, 0xaf, 0xe2,
0x65, 0xc2, 0xcf, 0xca, 0xaa, 0x10, 0x05, 0x09, 0xc5, 0xba, 0xe4, 0x35, 0xfd, 0xb7, 0x07, 0xc3,
0x85, 0xde, 0x21, 0x4f, 0x01, 0x1a, 0xd4, 0x22, 0x8d, 0xbc, 0xa9, 0x37, 0x1b, 0x31, 0xcb, 0x42,
0x28, 0x1c, 0x8a, 0x42, 0xc4, 0xf9, 0x55, 0x9c, 0xa3, 0x25, 0xf2, 0xa7, 0xde, 0x2c, 0x60, 0x1d,
0x1b, 0x99, 0xc2, 0x38, 0xe5, 0xb7, 0xe2, 0x9a, 0x67, 0x79, 0xb6, 0x7c, 0x1b, 0x05, 0x12, 0x62,
0x9b, 0xc8, 0x17, 0x70, 0x92, 0x67, 0xef, 0x56, 0x59, 0x1a, 0x8b, 0xac, 0x58, 0x32, 0xfc, 0x1b,
0xf5, 0x24, 0x6c, 0xc3, 0x4e, 0x66, 0x70, 0x9c, 0x14, 0x79, 0x1e, 0x0b, 0x5e, 0xc5, 0xf9, 0xeb,
0x38, 0x5f, 0xf1, 0x28, 0x94, 0x50, 0xd7, 0x4c, 0x3e, 0x85, 0x11, 0x5e, 0xa2, 0x30, 0x7d, 0x89,
0x31, 0x06, 0x72, 0xa1, 0xa2, 0x62, 0x3c, 0x29, 0xaa, 0xb4, 0x8e, 0x06, 0xd3, 0x60, 0x36, 0x3e,
0x7f, 0x74, 0x26, 0x73, 0x70, 0x36, 0x6f, 0x77, 0x98, 0x8d, 0x22, 0xdf, 0xc1, 0x24, 0x5b, 0xde,
0xc7, 0x79, 0x96, 0x36, 0xe7, 0x86, 0x0f, 0x9d, 0x73, 0x80, 0xe4, 0x14, 0xfa, 0xb5, 0x88, 0xc5,
0xaa, 0x8e, 0x46, 0x53, 0x6f, 0x16, 0x32, 0xbd, 0x22, 0xdf, 0xc2, 0x29, 0x46, 0x5d, 0x8b, 0x5f,
0xcc, 0x4b, 0x7f, 0xab, 0xb2, 0x84, 0x47, 0x20, 0x43, 0x7e, 0x60, 0x17, 0xfd, 0x95, 0xbc, 0xca,
0x8a, 0x34, 0x1a, 0x4b, 0x9c, 0x5e, 0xc9, 0x5c, 0xca, 0x13, 0x3f, 0xbc, 0x2f, 0xb3, 0x8a, 0xbf,
0xca, 0xee, 0x78, 0x74, 0xa8, 0x73, 0xe9, 0xd8, 0x91, 0xdd, 0xa4, 0xe2, 0xb1, 0x50, 0xa8, 0x23,
0x89, 0xb2, 0x2c, 0x24, 0x82, 0xc1, 0xad, 0x26, 0x76, 0x22, 0x37, 0x9b, 0x65, 0xa3, 0x0b, 0x5e,
0x5d, 0xa6, 0x69, 0x15, 0x1d, 0x1b, 0x5d, 0x28, 0x0b, 0xfd, 0x2b, 0x00, 0x30, 0xc9, 0x40, 0x09,
0xc4, 0x49, 0x52, 0xac, 0x96, 0x42, 0xe2, 0x95, 0x8e, 0x6c, 0x13, 0x92, 0x55, 0x8b, 0xb8, 0x12,
0x32, 0x12, 0xa5, 0x22, 0x63, 0xd8, 0x46, 0x7a, 0xb0, 0x9d, 0xf4, 0x0e, 0x52, 0xe5, 0xb1, 0xe7,
0x22, 0x55, 0x02, 0x3b, 0xf2, 0x08, 0x5d, 0x79, 0x74, 0x25, 0xa9, 0x1c, 0xf5, 0x37, 0x24, 0xd9,
0x52, 0xa1, 0xa9, 0x1d, 0x74, 0xa8, 0xfd, 0x1c, 0x8e, 0x1a, 0xac, 0xca, 0xf0, 0x50, 0x3a, 0xe8,
0x1a, 0x31, 0x95, 0xdc, 0x50, 0x35, 0x52, 0x24, 0x18, 0x0b, 0xc6, 0x59, 0x56, 0xfc, 0x77, 0x75,
0x01, 0xc8, 0x0b, 0x8c, 0x01, 0xef, 0xc6, 0xa0, 0x17, 0x4a, 0x06, 0x23, 0xa6, 0x57, 0x68, 0x47,
0x3a, 0x16, 0xa9, 0x24, 0x7f, 0xc4, 0xf4, 0x8a, 0xbe, 0x86, 0xa8, 0x29, 0xee, 0xcb, 0xba, 0xe6,
0x42, 0xbe, 0x40, 0xb3, 0xf4, 0x14, 0xa0, 0x92, 0xbf, 0x64, 0x24, 0x9e, 0x8a, 0xc4, 0x58, 0xc8,
0x27, 0x30, 0xbc, 0x15, 0x6b, 0x95, 0x0b, 0x45, 0x51, 0xbb, 0xa6, 0xff, 0xf8, 0x30, 0x69, 0x1d,
0x27, 0x98, 0x1b, 0xf2, 0x1c, 0xfa, 0x4a, 0x4b, 0xd2, 0xd5, 0xf8, 0xfc, 0x23, 0x5d, 0x24, 0x0d,
0xec, 0x5a, 0x6e, 0xde, 0x1c, 0x30, 0x0d, 0x23, 0xcf, 0xa0, 0x87, 0xd1, 0x4b, 0xdf, 0xe3, 0xf3,
0xc7, 0x0e, 0x1c, 0xe5, 0x74, 0x73, 0xc0, 0x24, 0x84, 0x7c, 0x05, 0x61, 0xc5, 0xcb, 0x78, 0x2d,
0x65, 0x30, 0x3e, 0x7f, 0xe2, 0x60, 0x19, 0xee, 0xdd, 0x1c, 0x30, 0x05, 0x42, 0xc7, 0x6f, 0x38,
0x4f, 0xa5, 0x12, 0x36, 0x1d, 0xff, 0xc8, 0x79, 0x8a, 0x8e, 0x11, 0x82, 0x8e, 0x93, 0xbc, 0xa8,
0x95, 0x22, 0x36, 0x1d, 0x5f, 0xe3, 0x1e, 0x3a, 0x96, 0x20, 0x7c, 0xe2, 0x5d, 0xbc, 0x8c, 0xdf,
0x2a, 0x6d, 0x6c, 0x3e, 0xf1, 0xa5, 0xdc, 0xc4, 0x27, 0x2a, 0x18, 0x99, 0x80, 0x2f, 0xd6, 0x9a,
0x45, 0x5f, 0xac, 0xaf, 0x06, 0x10, 0xde, 0xa3, 0xde, 0xe8, 0x0b, 0x93, 0x3e, 0x75, 0x08, 0xd9,
0xa8, 0x57, 0xa5, 0xaa, 0xa7, 0x3a, 0xf2, 0xa6, 0x01, 0x96, 0x98, 0xb1, 0xd0, 0xbf, 0x3d, 0x73,
0x44, 0xa5, 0x72, 0xa3, 0x1b, 0x7b, 0xbb, 0xbb, 0xb1, 0xbf, 0x5f, 0x37, 0x0e, 0x1e, 0xe8, 0xc6,
0xa6, 0x0b, 0xf5, 0xec, 0x2e, 0x44, 0xe7, 0x70, 0x68, 0xf3, 0xb6, 0x73, 0x8e, 0x3c, 0xd1, 0x79,
0xd0, 0xf1, 0xe8, 0xa4, 0xfc, 0x04, 0x47, 0x1d, 0x46, 0x77, 0xba, 0x31, 0xd5, 0xe0, 0xdb, 0xd5,
0x40, 0xff, 0x30, 0xe1, 0x20, 0xdb, 0xa8, 0x64, 0x6c, 0x07, 0xaf, 0xd6, 0xa5, 0x4a, 0x52, 0xc8,
0xda, 0x35, 0x86, 0x52, 0x6a, 0x89, 0x07, 0x18, 0x4a, 0xd9, 0xd4, 0xf8, 0x7d, 0x91, 0xaf, 0xee,
0xb0, 0xf1, 0xa0, 0x59, 0xaf, 0xe8, 0x73, 0x13, 0xa2, 0xd4, 0xc6, 0xae, 0x10, 0xe9, 0x9f, 0x1e,
0x1c, 0x33, 0x9e, 0xf0, 0xac, 0x14, 0x7b, 0x4f, 0x59, 0xa7, 0x7d, 0xfa, 0x9b, 0xed, 0xd3, 0x3c,
0x3c, 0x70, 0xdb, 0x80, 0x6e, 0x4d, 0x3d, 0xbb, 0x35, 0xd1, 0x9f, 0xe1, 0x91, 0x13, 0xc4, 0x62,
0xbe, 0x4f, 0x76, 0xb5, 0x33, 0xbf, 0xe3, 0xec, 0x1a, 0x8e, 0x0d, 0x4d, 0x6a, 0xda, 0xbd, 0x80,
0x41, 0xa5, 0x27, 0xa4, 0x27, 0x27, 0xe4, 0xa9, 0xae, 0x0c, 0xe7, 0x56, 0xd6, 0xc0, 0xe8, 0xd7,
0x98, 0x96, 0x77, 0x6d, 0x34, 0xcb, 0x37, 0xc5, 0xce, 0x54, 0xfe, 0xe7, 0xc3, 0x29, 0xe3, 0x65,
0x9b, 0xff, 0x55, 0x55, 0xf1, 0xa5, 0x90, 0x47, 0x4d, 0xa8, 0x5e, 0xa7, 0x25, 0x7f, 0xf8, 0xef,
0x15, 0x6b, 0x86, 0x86, 0xdd, 0x19, 0xba, 0x65, 0xa8, 0xf5, 0xf7, 0xf8, 0x92, 0x19, 0xb8, 0xa3,
0xca, 0xd4, 0xe0, 0xb0, 0xf3, 0x25, 0x60, 0x46, 0xc0, 0xc8, 0x1e, 0x01, 0xce, 0xd4, 0x07, 0x77,
0xea, 0xd3, 0x6f, 0xe0, 0xc4, 0x61, 0xa2, 0xc6, 0x9c, 0x98, 0xc4, 0x37, 0xdd, 0xc8, 0x36, 0xd1,
0x5f, 0xe1, 0xe3, 0xed, 0x5c, 0xd4, 0xe4, 0x02, 0xc2, 0x0c, 0x7f, 0x68, 0x29, 0x7c, 0xd6, 0x4a,
0x61, 0x1b, 0x9c, 0x29, 0x2c, 0x7d, 0x09, 0x8f, 0xad, 0x28, 0xae, 0xd6, 0x66, 0xde, 0x6d, 0x25,
0xb6, 0xab, 0x15, 0x7f, 0x43, 0x2b, 0x14, 0x26, 0xd6, 0x7d, 0x8b, 0x79, 0x4d, 0x4e, 0x20, 0x58,
0xcc, 0x9b, 0xa7, 0xe0, 0x4f, 0xfa, 0x1e, 0x88, 0x75, 0x65, 0x23, 0xe5, 0x5d, 0x55, 0x41, 0xa0,
0x17, 0x9b, 0xaa, 0x94, 0xbf, 0xad, 0x28, 0x83, 0x4e, 0x94, 0xa6, 0x4c, 0x7b, 0x9d, 0xfe, 0x74,
0x89, 0x37, 0x97, 0xee, 0xcd, 0x5f, 0xba, 0x45, 0xb4, 0xe5, 0x33, 0xb3, 0xad, 0x9f, 0xef, 0x31,
0x5f, 0xa5, 0xdd, 0x74, 0x65, 0x21, 0x3c, 0x83, 0xbe, 0x42, 0xe8, 0x21, 0xbc, 0xc5, 0x85, 0x06,
0xd0, 0x19, 0xf2, 0xde, 0x7a, 0x50, 0x9f, 0x36, 0x6d, 0x33, 0x54, 0xa3, 0x44, 0x2d, 0x6e, 0xfb,
0xf2, 0x1f, 0x86, 0x8b, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x58, 0x59, 0x7e, 0xaa, 0x42, 0x0c,
0x00, 0x00,
}
......@@ -25,7 +25,7 @@ const (
const (
IssuanceX = "issuance"
CCNYTokenName = "CCNY"
IssuancePreLiquidationRatio = 1.1 //TODO 预清算比例,抵押物价值跌到借出ccny价值110%的时候开始清算
IssuancePreLiquidationRatio = 11000 //TODO 预清算比例,抵押物价值跌到借出ccny价值110%的时候开始清算
)
//Issuance status
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment