forked from TrueCloudLab/frostfs-node
Add Inner Ring code
This commit is contained in:
parent
dadfd90dcd
commit
b7b5079934
400 changed files with 11420 additions and 8690 deletions
62
pkg/morph/client/static.go
Normal file
62
pkg/morph/client/static.go
Normal file
|
@ -0,0 +1,62 @@
|
|||
package client
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
sc "github.com/nspcc-dev/neo-go/pkg/smartcontract"
|
||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||
)
|
||||
|
||||
// StaticClient is a wrapper over Neo:Morph client
|
||||
// that invokes single smart contract methods with fixed fee.
|
||||
//
|
||||
// Working static client must be created via constructor NewStatic.
|
||||
// Using the StaticClient that has been created with new(StaticClient)
|
||||
// expression (or just declaring a StaticClient variable) is unsafe
|
||||
// and can lead to panic.
|
||||
type StaticClient struct {
|
||||
client *Client // neo-go client instance
|
||||
|
||||
scScriptHash util.Uint160 // contract script-hash
|
||||
|
||||
fee util.Fixed8 // invocation fee
|
||||
}
|
||||
|
||||
// ErrNilStaticClient is returned by functions that expect
|
||||
// a non-nil StaticClient pointer, but received nil.
|
||||
var ErrNilStaticClient = errors.New("static client is nil")
|
||||
|
||||
// NewStatic creates, initializes and returns the StaticClient instance.
|
||||
//
|
||||
// If provided Client instance is nil, ErrNilClient is returned.
|
||||
func NewStatic(client *Client, scriptHash util.Uint160, fee util.Fixed8) (*StaticClient, error) {
|
||||
if client == nil {
|
||||
return nil, ErrNilClient
|
||||
}
|
||||
|
||||
return &StaticClient{
|
||||
client: client,
|
||||
scScriptHash: scriptHash,
|
||||
fee: fee,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Invoke calls Invoke method of Client with static internal script hash and fee.
|
||||
// Supported args types are the same as in Client.
|
||||
func (s StaticClient) Invoke(method string, args ...interface{}) error {
|
||||
return s.client.Invoke(
|
||||
s.scScriptHash,
|
||||
s.fee,
|
||||
method,
|
||||
args...,
|
||||
)
|
||||
}
|
||||
|
||||
// TestInvoke calls TestInvoke method of Client with static internal script hash.
|
||||
func (s StaticClient) TestInvoke(method string, args ...interface{}) ([]sc.Parameter, error) {
|
||||
return s.client.TestInvoke(
|
||||
s.scScriptHash,
|
||||
method,
|
||||
args...,
|
||||
)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue