Skip to content
33cn edited this page Dec 6, 2018 · 4 revisions

用户资产的存储结构:

// Account 的信息
message Account {
    // coins标识,目前只有0 一个值
    int32 currency = 1;
    //账户可用余额
    int64 balance = 2;
    //账户冻结余额
    int64 frozen = 3;
    //账户的地址
    string addr = 4;
}

currency = 0 表示可切分资产,后面可能会引入不可切分的资产。

资产的操作:

在一个合约中,资产有三种操作

//资产控制权转移给合约
message AssetsTransferToExec {
    string cointoken = 1;
    int64  amount    = 2;
    bytes  note      = 3;
    string execName  = 4;
    string to        = 5;
}
//从合约中转回资产控制权
message AssetsWithdraw {
    string cointoken = 1;
    int64  amount    = 2;
    bytes  note      = 3;
    string execName  = 4;
    string to        = 5;
}
//资产在合约内部转移
message AssetsTransfer {
    string cointoken = 1;
    int64  amount    = 2;
    bytes  note      = 3;
    string to        = 4;
}

合约内的资产操作:

资产控制权给合约后,合约可以任意控制资产,主要是要支持下面几种操作:

//冻结资产
ExecFrozen
//解冻资产
ExecActive
//给账户减少活动资产
ExecWithraw
//给账户增加活动资产
ExecDeposit
Clone this wiki locally