Update neo_client.go
This commit is contained in:
parent
474679f042
commit
36938f47db
1 changed files with 31 additions and 34 deletions
|
@ -1,47 +1,44 @@
|
||||||
package neo
|
package neo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/rpcclient"
|
"github.com/nspcc-dev/neo-go/pkg/rpcclient"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/rpcclient/actor"
|
"github.com/nspcc-dev/neo-go/pkg/rpcclient/actor"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/wallet"
|
"github.com/nspcc-dev/neo-go/pkg/wallet"
|
||||||
)
|
)
|
||||||
|
|
||||||
type NeoClient struct {
|
type NeoClient struct {
|
||||||
Actor *actor.Actor
|
Actor *actor.Actor
|
||||||
RPC *rpcclient.Client
|
RPC *rpcclient.Client
|
||||||
Context context.Context
|
Context context.Context
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewNeoClient(rpcEndpoint, walletPath, walletPass string) (*NeoClient, error) {
|
func NewNeoClient(rpcEndpoint, walletPath, walletPass string) (*NeoClient, error) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
rpcCli, err := rpcclient.New(ctx, rpcEndpoint, rpcclient.Options{})
|
rpcCli, err := rpcclient.New(ctx, rpcEndpoint, rpcclient.Options{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("rpcclient new: %w", err)
|
return nil, fmt.Errorf("rpcclient new: %w", err)
|
||||||
}
|
}
|
||||||
|
w, err := wallet.NewWalletFromFile(walletPath)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("wallet load: %w", err)
|
||||||
|
}
|
||||||
|
acc := w.GetAccount(w.GetChangeAddress())
|
||||||
|
err = acc.Decrypt(walletPass, w.Scrypt)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("wallet decrypt: %w", err)
|
||||||
|
}
|
||||||
|
act, err := actor.NewSimple(rpcCli, acc)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("actor new: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
w, err := wallet.NewWalletFromFile(walletPath)
|
return &NeoClient{
|
||||||
if err != nil {
|
Actor: act,
|
||||||
return nil, fmt.Errorf("wallet load: %w", err)
|
RPC: rpcCli,
|
||||||
}
|
Context: ctx,
|
||||||
|
}, nil
|
||||||
acc := w.GetAccount(w.GetChangeAddress())
|
|
||||||
err = acc.Decrypt(walletPass, w.Scrypt)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("wallet decrypt: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
act, err := actor.NewSimple(rpcCli, acc)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("actor new: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return &NeoClient{
|
|
||||||
Actor: act,
|
|
||||||
RPC: rpcCli,
|
|
||||||
Context: ctx,
|
|
||||||
}, nil
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue