forked from TrueCloudLab/frostfs-node
[#1711] morph: Simplify code using neo-go actors
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
4582b8f0d4
commit
6d277a57aa
2 changed files with 13 additions and 71 deletions
|
@ -179,18 +179,7 @@ func (c *Client) Invoke(contract util.Uint160, fee fixedn.Fixed8, method string,
|
||||||
return ErrConnectionLost
|
return ErrConnectionLost
|
||||||
}
|
}
|
||||||
|
|
||||||
params := make([]sc.Parameter, 0, len(args))
|
txHash, vub, err := c.rpcActor.SendTunedCall(contract, method, nil, addFeeCheckerModifier(int64(fee)), args...)
|
||||||
|
|
||||||
for i := range args {
|
|
||||||
param, err := toStackParameter(args[i])
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
params = append(params, param)
|
|
||||||
}
|
|
||||||
|
|
||||||
txHash, vub, err := c.rpcActor.SendTunedCall(contract, method, nil, addFeeCheckerModifier(int64(fee)), params)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("could not invoke %s: %w", method, err)
|
return fmt.Errorf("could not invoke %s: %w", method, err)
|
||||||
}
|
}
|
||||||
|
@ -213,25 +202,7 @@ func (c *Client) TestInvoke(contract util.Uint160, method string, args ...interf
|
||||||
return nil, ErrConnectionLost
|
return nil, ErrConnectionLost
|
||||||
}
|
}
|
||||||
|
|
||||||
var params = make([]sc.Parameter, 0, len(args))
|
val, err := c.rpcActor.Call(contract, method, args...)
|
||||||
|
|
||||||
for i := range args {
|
|
||||||
p, err := toStackParameter(args[i])
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
params = append(params, p)
|
|
||||||
}
|
|
||||||
|
|
||||||
cosigner := []transaction.Signer{
|
|
||||||
{
|
|
||||||
Account: c.acc.PrivateKey().PublicKey().GetScriptHash(),
|
|
||||||
Scopes: transaction.Global,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
val, err := c.client.InvokeFunction(contract, method, params, cosigner)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -252,13 +223,7 @@ func (c *Client) TransferGas(receiver util.Uint160, amount fixedn.Fixed8) error
|
||||||
return ErrConnectionLost
|
return ErrConnectionLost
|
||||||
}
|
}
|
||||||
|
|
||||||
gas, err := c.client.GetNativeContractHash(nativenames.Gas)
|
txHash, vub, err := c.gasToken.Transfer(c.accAddr, receiver, big.NewInt(int64(amount)), nil)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
gasToken := nep17.New(c.rpcActor, gas)
|
|
||||||
txHash, vub, err := gasToken.Transfer(c.accAddr, receiver, big.NewInt(int64(amount)), nil)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -288,7 +253,7 @@ func (c *Client) Wait(ctx context.Context, n uint32) error {
|
||||||
height, newHeight uint32
|
height, newHeight uint32
|
||||||
)
|
)
|
||||||
|
|
||||||
height, err = c.client.GetBlockCount()
|
height, err = c.rpcActor.GetBlockCount()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("can't get blockchain height",
|
c.logger.Error("can't get blockchain height",
|
||||||
zap.String("error", err.Error()))
|
zap.String("error", err.Error()))
|
||||||
|
@ -302,7 +267,7 @@ func (c *Client) Wait(ctx context.Context, n uint32) error {
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
|
|
||||||
newHeight, err = c.client.GetBlockCount()
|
newHeight, err = c.rpcActor.GetBlockCount()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.logger.Error("can't get blockchain height",
|
c.logger.Error("can't get blockchain height",
|
||||||
zap.String("error", err.Error()))
|
zap.String("error", err.Error()))
|
||||||
|
@ -326,13 +291,7 @@ func (c *Client) GasBalance() (res int64, err error) {
|
||||||
return 0, ErrConnectionLost
|
return 0, ErrConnectionLost
|
||||||
}
|
}
|
||||||
|
|
||||||
gas, err := c.client.GetNativeContractHash(nativenames.Gas)
|
bal, err := c.gasToken.BalanceOf(c.accAddr)
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
|
|
||||||
gasToken := nep17.New(c.rpcActor, gas)
|
|
||||||
bal, err := gasToken.BalanceOf(c.accAddr)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
@ -413,7 +372,7 @@ func (c *Client) GetDesignateHash() (res util.Uint160, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) roleList(r noderoles.Role) (keys.PublicKeys, error) {
|
func (c *Client) roleList(r noderoles.Role) (keys.PublicKeys, error) {
|
||||||
height, err := c.client.GetBlockCount()
|
height, err := c.rpcActor.GetBlockCount()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("can't get chain height: %w", err)
|
return nil, fmt.Errorf("can't get chain height: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -489,14 +448,7 @@ func (c *Client) MagicNumber() (uint64, error) {
|
||||||
return 0, ErrConnectionLost
|
return 0, ErrConnectionLost
|
||||||
}
|
}
|
||||||
|
|
||||||
mNum, err := c.client.GetNetwork()
|
return uint64(c.rpcActor.GetNetwork()), nil
|
||||||
if err != nil {
|
|
||||||
// error appears only if client
|
|
||||||
// has not been initialized
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return uint64(mNum), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// BlockCount returns block count of the network
|
// BlockCount returns block count of the network
|
||||||
|
@ -509,7 +461,7 @@ func (c *Client) BlockCount() (res uint32, err error) {
|
||||||
return 0, ErrConnectionLost
|
return 0, ErrConnectionLost
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.client.GetBlockCount()
|
return c.rpcActor.GetBlockCount()
|
||||||
}
|
}
|
||||||
|
|
||||||
// MsPerBlock returns MillisecondsPerBlock network parameter.
|
// MsPerBlock returns MillisecondsPerBlock network parameter.
|
||||||
|
@ -521,10 +473,7 @@ func (c *Client) MsPerBlock() (res int64, err error) {
|
||||||
return 0, ErrConnectionLost
|
return 0, ErrConnectionLost
|
||||||
}
|
}
|
||||||
|
|
||||||
v, err := c.client.GetVersion()
|
v := c.rpcActor.GetVersion()
|
||||||
if err != nil {
|
|
||||||
return 0, fmt.Errorf("getVersion: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return int64(v.Protocol.MillisecondsPerBlock), nil
|
return int64(v.Protocol.MillisecondsPerBlock), nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ import (
|
||||||
"github.com/nspcc-dev/neo-go/pkg/crypto/hash"
|
"github.com/nspcc-dev/neo-go/pkg/crypto/hash"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/encoding/fixedn"
|
"github.com/nspcc-dev/neo-go/pkg/encoding/fixedn"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/rpcclient/nep17"
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
"github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
||||||
sc "github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
sc "github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||||
|
@ -149,7 +148,7 @@ func (c *Client) DepositNotary(amount fixedn.Fixed8, delta uint32) (res util.Uin
|
||||||
panic(notaryNotEnabledPanicMsg)
|
panic(notaryNotEnabledPanicMsg)
|
||||||
}
|
}
|
||||||
|
|
||||||
bc, err := c.client.GetBlockCount()
|
bc, err := c.rpcActor.GetBlockCount()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return util.Uint256{}, fmt.Errorf("can't get blockchain height: %w", err)
|
return util.Uint256{}, fmt.Errorf("can't get blockchain height: %w", err)
|
||||||
}
|
}
|
||||||
|
@ -164,13 +163,7 @@ func (c *Client) DepositNotary(amount fixedn.Fixed8, delta uint32) (res util.Uin
|
||||||
till = currentTill
|
till = currentTill
|
||||||
}
|
}
|
||||||
|
|
||||||
gas, err := c.client.GetNativeContractHash(nativenames.Gas)
|
txHash, vub, err := c.gasToken.Transfer(
|
||||||
if err != nil {
|
|
||||||
return util.Uint256{}, fmt.Errorf("can't get GAS script hash: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
gasToken := nep17.New(c.rpcActor, gas)
|
|
||||||
txHash, vub, err := gasToken.Transfer(
|
|
||||||
c.accAddr,
|
c.accAddr,
|
||||||
c.notary.notary,
|
c.notary.notary,
|
||||||
big.NewInt(int64(amount)),
|
big.NewInt(int64(amount)),
|
||||||
|
@ -704,7 +697,7 @@ func (c *Client) notaryMultisigAccount(ir []*keys.PublicKey, committee, invokedB
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) notaryTxValidationLimit() (uint32, error) {
|
func (c *Client) notaryTxValidationLimit() (uint32, error) {
|
||||||
bc, err := c.client.GetBlockCount()
|
bc, err := c.rpcActor.GetBlockCount()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, fmt.Errorf("can't get current blockchain height: %w", err)
|
return 0, fmt.Errorf("can't get current blockchain height: %w", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue