Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[api] web3 rewarding action #3691

Merged
merged 13 commits into from
Dec 22, 2022
10 changes: 5 additions & 5 deletions action/claimreward.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@ var (
)

func init() {
rewardingInterface, err := abi.JSON(strings.NewReader(_claimRewardingInterfaceABI))
claimRewardInterface, err := abi.JSON(strings.NewReader(_claimRewardingInterfaceABI))
if err != nil {
panic(err)
}
var ok bool
_claimRewardingMethod, ok = rewardingInterface.Methods["claim"]
_claimRewardingMethod, ok = claimRewardInterface.Methods["claim"]
if !ok {
panic("fail to load the claim method")
}
Expand Down Expand Up @@ -151,8 +151,8 @@ func (b *ClaimFromRewardingFundBuilder) Build() ClaimFromRewardingFund {
return b.claim
}

// EncodeABIBinary encodes data in abi encoding
func (c *ClaimFromRewardingFund) EncodeABIBinary() ([]byte, error) {
// encodeABIBinary encodes data in abi encoding
func (c *ClaimFromRewardingFund) encodeABIBinary() ([]byte, error) {
data, err := _claimRewardingMethod.Inputs.Pack(c.Amount(), c.Data())
if err != nil {
return nil, err
Expand All @@ -167,7 +167,7 @@ func (c *ClaimFromRewardingFund) ToEthTx() (*types.Transaction, error) {
return nil, err
}
ethAddr := common.BytesToAddress(addr.Bytes())
data, err := c.EncodeABIBinary()
data, err := c.encodeABIBinary()
if err != nil {
return nil, err
}
Expand Down
23 changes: 2 additions & 21 deletions action/claimreward_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (

"github.com/ethereum/go-ethereum/common"
"github.com/iotexproject/iotex-address/address"
"github.com/iotexproject/iotex-proto/golang/iotextypes"
"github.com/stretchr/testify/require"
)

Expand All @@ -16,24 +15,6 @@ var (
_errNegativeNumberMsg = "negative value"
)

func TestClaimRewardProto(t *testing.T) {
r := require.New(t)

rc := &ClaimFromRewardingFund{}

p := rc.Proto()
r.NotNil(p)
r.IsType(&iotextypes.ClaimFromRewardingFund{}, p)
r.Nil(p.Data)

rc.amount = big.NewInt(100)
rc.data = []byte{1}
p = rc.Proto()
r.NotNil(p)
r.EqualValues([]byte{1}, p.Data)
r.EqualValues("100", p.Amount)
}

ququzone marked this conversation as resolved.
Show resolved Hide resolved
func TestClaimRewardSerialize(t *testing.T) {
r := require.New(t)

Expand Down Expand Up @@ -107,15 +88,15 @@ func TestClaimRewardEncodeABIBinary(t *testing.T) {

rc := &ClaimFromRewardingFund{}
rc.amount = big.NewInt(101)
data, err := rc.EncodeABIBinary()
data, err := rc.encodeABIBinary()
r.Nil(err)
r.EqualValues(
"2df163ef000000000000000000000000000000000000000000000000000000000000006500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000",
hex.EncodeToString(data),
)

rc.data = []byte{1, 2, 3}
data, err = rc.EncodeABIBinary()
data, err = rc.encodeABIBinary()
r.Nil(err)
r.EqualValues(
"2df163ef000000000000000000000000000000000000000000000000000000000000006500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003",
Expand Down
15 changes: 7 additions & 8 deletions action/depositreward.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@ var (
)

func init() {
rewardingInterface, err := abi.JSON(strings.NewReader(_depositRewardInterfaceABI))
depositRewardInterface, err := abi.JSON(strings.NewReader(_depositRewardInterfaceABI))
if err != nil {
panic(err)
}
var ok bool
_depositRewardMethod, ok = rewardingInterface.Methods["deposit"]
_depositRewardMethod, ok = depositRewardInterface.Methods["deposit"]
if !ok {
panic("fail to load the deposit method")
}
Expand Down Expand Up @@ -115,8 +115,7 @@ func (d *DepositToRewardingFund) Cost() (*big.Int, error) {
if err != nil {
return nil, errors.Wrap(err, "error when getting intrinsic gas for the deposit action")
}
fee := big.NewInt(0).Mul(d.GasPrice(), big.NewInt(0).SetUint64(intrinsicGas))
return new(big.Int).Add(d.Amount(), fee), nil
return big.NewInt(0).Mul(d.GasPrice(), big.NewInt(0).SetUint64(intrinsicGas)), nil
}

// SanityCheck validates the variables in the action
Expand Down Expand Up @@ -152,8 +151,8 @@ func (b *DepositToRewardingFundBuilder) Build() DepositToRewardingFund {
return b.deposit
}

// EncodeABIBinary encodes data in abi encoding
func (d *DepositToRewardingFund) EncodeABIBinary() ([]byte, error) {
// encodeABIBinary encodes data in abi encoding
func (d *DepositToRewardingFund) encodeABIBinary() ([]byte, error) {
data, err := _depositRewardMethod.Inputs.Pack(d.Amount(), d.Data())
if err != nil {
return nil, err
Expand All @@ -168,11 +167,11 @@ func (d *DepositToRewardingFund) ToEthTx() (*types.Transaction, error) {
return nil, err
}
ethAddr := common.BytesToAddress(addr.Bytes())
data, err := d.EncodeABIBinary()
data, err := d.encodeABIBinary()
if err != nil {
return nil, err
}
return types.NewTransaction(d.Nonce(), ethAddr, d.Amount(), d.GasLimit(), d.GasPrice(), data), nil
return types.NewTransaction(d.Nonce(), ethAddr, big.NewInt(0), d.GasLimit(), d.GasPrice(), data), nil
}

// NewDepositToRewardingFundFromABIBinary decodes data into action
Expand Down
31 changes: 6 additions & 25 deletions action/depositreward_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,9 @@ import (

"github.com/ethereum/go-ethereum/common"
"github.com/iotexproject/iotex-address/address"
"github.com/iotexproject/iotex-proto/golang/iotextypes"
"github.com/stretchr/testify/require"
)

func TestDepositRewardProto(t *testing.T) {
r := require.New(t)

rp := &DepositToRewardingFund{}

p := rp.Proto()
r.NotNil(p)
r.IsType(&iotextypes.DepositToRewardingFund{}, p)
r.Nil(p.Data)

rp.amount = big.NewInt(100)
rp.data = []byte{1}
p = rp.Proto()
r.NotNil(p)
r.EqualValues([]byte{1}, p.Data)
r.EqualValues("100", p.Amount)
}
ququzone marked this conversation as resolved.
Show resolved Hide resolved

func TestDepositRewardSerialize(t *testing.T) {
r := require.New(t)

Expand Down Expand Up @@ -85,12 +66,12 @@ func TestDepositRewardCost(t *testing.T) {
rp.amount = big.NewInt(100)
cost, err := rp.Cost()
r.Nil(err)
r.EqualValues("10000000000000100", cost.String())
r.EqualValues("10000000000000000", cost.String())

rp.data = []byte{1}
cost, err = rp.Cost()
r.Nil(err)
r.EqualValues("10100000000000100", cost.String())
r.EqualValues("10100000000000000", cost.String())
}

func TestDepositRewardEncodeABIBinary(t *testing.T) {
Expand All @@ -99,15 +80,15 @@ func TestDepositRewardEncodeABIBinary(t *testing.T) {
rp := &DepositToRewardingFund{}

rp.amount = big.NewInt(101)
data, err := rp.EncodeABIBinary()
data, err := rp.encodeABIBinary()
r.Nil(err)
r.EqualValues(
"27852a6b000000000000000000000000000000000000000000000000000000000000006500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000",
hex.EncodeToString(data),
)

rp.data = []byte{1, 2, 3}
data, err = rp.EncodeABIBinary()
data, err = rp.encodeABIBinary()
r.Nil(err)
r.EqualValues(
"27852a6b000000000000000000000000000000000000000000000000000000000000006500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003",
Expand All @@ -130,7 +111,7 @@ func TestDepositRewardToEthTx(t *testing.T) {
"27852a6b000000000000000000000000000000000000000000000000000000000000006500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000",
hex.EncodeToString(tx.Data()),
)
r.EqualValues("101", tx.Value().String())
r.EqualValues("0", tx.Value().String())

rp.data = []byte{1, 2, 3}
tx, err = rp.ToEthTx()
Expand All @@ -140,7 +121,7 @@ func TestDepositRewardToEthTx(t *testing.T) {
"27852a6b000000000000000000000000000000000000000000000000000000000000006500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003",
hex.EncodeToString(tx.Data()),
)
r.EqualValues("101", tx.Value().String())
r.EqualValues("0", tx.Value().String())
}

func TestNewRewardingDepositFromABIBinary(t *testing.T) {
Expand Down
6 changes: 3 additions & 3 deletions action/rlp_tx_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -275,14 +275,14 @@ func TestRlpDecodeVerify(t *testing.T) {
},
{
"rewardingDeposit",
"f8c6016482520894a576c141e5659137ddda4223d209d4744b2106be65b86427852a6b0000000000000000000000000000000000000000000000000000000000000065000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000008224c5a0112ab2b0eea79a4377bb89a0452f0a6e414431160ba0f8536bb07e9eff7d51f5a01bcc21d24ac2c5c715675753e5db3a00d249c49fafbe9ac31ec0c7b293a9f2c2",
"f8c6016482520894a576c141e5659137ddda4223d209d4744b2106be80b86427852a6b0000000000000000000000000000000000000000000000000000000000000065000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000008224c6a013b7679dbabcb0f97b93942436f5072cca3c7fe43451a8fedcdf3c84c1344e1da02af4cc67594c0200b59f4e30ba149af15e546acbfc69fa31f14e8788ab063d85",
1,
21000,
"100",
"101",
"0",
"0xA576C141e5659137ddDa4223d209d4744b2106BE",
100,
"2bc65273dfb59cbad42478dbdac2a3c1ac76a4b19c865eb186464b85deb02cca",
"842fea9a292c0bc7a1e05a14a8255ed8dc945fdae7c01a6b70f5213ebe35583b",
"04830579b50e01602c2015c24e72fbc48bca1cca1e601b119ca73abe2e0b5bd61fcb7874567e091030d6b644f927445d80e00b3f9ca0c566c21c30615e94c343da",
"8d38efe45794d7fceea10b2262c23c12245959db",
},
Expand Down