-
Notifications
You must be signed in to change notification settings - Fork 36
v1.0.0版本分叉文档
新增UpdateCandidatePubKey交易类型,payload参数为公钥(如下),交易成功后,生产者即可用该公钥对应的私钥进行挖矿,达到账号私钥与挖矿私钥分离目的。
arg := &args.UpdateCandidatePubKey{
PubKey: pubKey,
}
发送该交易前可先将设置的私钥配置到挖矿节点上,命令为./ft miner setcoinbase "accout123456" priKey.txt
协议资产转账时,from 和 to 需有一个为协议资产的contract账户才可转账。合约新增transferable()方法后,协议资产的contract中存在transferable()时,协议资产就可以像普通资产一样进行转账,不再受限制。transferable()方法返回true时功能生效,返回false或者无此方法时仍受原有限制。transferable()方法如下:
function transferable() public returns(bool) {
return true;
}
新增代付手续费功能,发送交易可由第三方代付手续费。交易举例如下:
func transferfp(from, to common.Name, amount *big.Int, assetid uint64, nonce uint64, prikey *ecdsa.PrivateKey) {
key := types.MakeKeyPair(prikey, []uint64{0})
gasPrice, _ := testcommon.GasPrice()
fp := &types.FeePayer{
GasPrice: gasPrice,//代付手续费GasPrice,代付时必填项
Payer: toname,//代付手续费账号
Sign: &types.Signature{0, make([]*types.SignData, 0)},
}
payerKey := types.MakeKeyPair(minerprikey, []uint64{0})//代付手续费账号私钥
sendTransferTxfp(types.Transfer, from, to, nonce, assetid, amount, nil, []*types.KeyPair{key}, fp, []*types.KeyPair{payerKey})
}
func sendTransferTxfp(txType types.ActionType, from, to common.Name, nonce, assetID uint64, value *big.Int, input []byte, keys []*types.KeyPair, fp *types.FeePayer, payerKeys []*types.KeyPair) {
action := types.NewAction(txType, from, to, nonce, assetID, gaslimit, value, input, nil)
gasprice, _ := testcommon.GasPrice()
if fp != nil {
gasprice = big.NewInt(0)//存在代付方时,此gasprice必须为0
}
tx := types.NewTransaction(0, gasprice, action)
signer := types.MakeSigner(big.NewInt(1))
err := types.SignActionWithMultiKey(action, tx, signer, 0, keys)
if err != nil {
jww.ERROR.Fatalln(err)
}
if fp != nil {
err = types.SignPayerActionWithMultiKey(action, tx, signer, fp, 0, payerKeys)
if err != nil {
jww.ERROR.Fatalln(err)
}
}
rawtx, err := rlp.EncodeToBytes(tx)
if err != nil {
jww.ERROR.Fatalln(err)
}
hash, err := testcommon.SendRawTx(rawtx)
if err != nil {
jww.INFO.Println("result err: ", err)
}
jww.INFO.Println("result hash: ", hash.Hex())
}
-
1).资产amount流通量限制为uint256
2).资产founder不可修改为空
3).解决合约调用sha256 gas扣除异常问题
4).解决重复部署合约gas扣除异常
5).解决先启动dpos后分叉,出块节点列表可能异常问题