diff --git a/pkg/rpc/client/native.go b/pkg/rpc/client/native.go index 6081d1175..bfbed495e 100644 --- a/pkg/rpc/client/native.go +++ b/pkg/rpc/client/native.go @@ -30,11 +30,20 @@ func (c *Client) GetNNSPrice(nnsHash util.Uint160) (int64, error) { // GetGasPerBlock invokes `getGasPerBlock` method on a native NEO contract. func (c *Client) GetGasPerBlock() (int64, error) { + return c.getFromNEO("getGasPerBlock") +} + +// GetCandidateRegisterPrice invokes `getRegisterPrice` method on native NEO contract. +func (c *Client) GetCandidateRegisterPrice() (int64, error) { + return c.getFromNEO("getRegisterPrice") +} + +func (c *Client) getFromNEO(meth string) (int64, error) { neoHash, err := c.GetNativeContractHash(nativenames.Neo) if err != nil { return 0, fmt.Errorf("failed to get native NEO hash: %w", err) } - return c.invokeNativeGetMethod(neoHash, "getGasPerBlock") + return c.invokeNativeGetMethod(neoHash, meth) } // GetDesignatedByRole invokes `getDesignatedByRole` method on a native RoleManagement contract. diff --git a/pkg/rpc/client/rpc_test.go b/pkg/rpc/client/rpc_test.go index c33f37497..55fff2543 100644 --- a/pkg/rpc/client/rpc_test.go +++ b/pkg/rpc/client/rpc_test.go @@ -478,6 +478,18 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ }, }, }, + "getCandidateRegisterPrice": { + { + name: "positive", + invoke: func(c *Client) (interface{}, error) { + return c.GetCandidateRegisterPrice() + }, + serverResponse: `{"id":1,"jsonrpc":"2.0","result":{"state":"HALT","gasconsumed":"2007390","script":"EMAMDWdldEZlZVBlckJ5dGUMFJphpG7sl7iTBtfOgfFbRiCR0AkyQWJ9W1I=","stack":[{"type":"Integer","value":"100000000000"}],"tx":null}}`, + result: func(c *Client) interface{} { + return int64(100000000000) + }, + }, + }, "getDesignatedByRole": { { name: "positive",