Skip to content

Commit

Permalink
address function return decoded address
Browse files Browse the repository at this point in the history
  • Loading branch information
sh-cha committed Jan 6, 2025
1 parent a599334 commit 64f5fa4
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 18 deletions.
8 changes: 4 additions & 4 deletions e2e/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ func (op *DockerOPBot) AddKey(ctx context.Context, chainID, keyName, bech32Prefi
return nil, res.Err
}

wallet, err := op.c.ParseAddKeyOutput(string(res.Stdout), string(res.Stderr))
wallet, err := op.c.ParseAddKeyOutput(string(res.Stdout), string(res.Stderr), bech32Prefix)
if err != nil {
return nil, err
}
Expand All @@ -317,7 +317,7 @@ func (op *DockerOPBot) RestoreKey(ctx context.Context, chainID, keyName, bech32P
}
addrBytes := op.c.ParseRestoreKeyOutput(string(res.Stdout), string(res.Stderr))

op.AddWallet(chainID, op.c.CreateWallet(keyName, addrBytes, mnemonic))
op.AddWallet(chainID, op.c.CreateWallet(keyName, addrBytes, mnemonic, bech32Prefix))
return nil
}

Expand Down Expand Up @@ -518,10 +518,10 @@ type OPBotCommander interface {
DockerUser() string

// create wallet
CreateWallet(keyName, address, mnemonic string) ibc.Wallet
CreateWallet(keyName, address, mnemonic, bech32Prefix string) ibc.Wallet

// parse the output of the add key command to get wallet
ParseAddKeyOutput(stdout, stderr string) (ibc.Wallet, error)
ParseAddKeyOutput(stdout, stderr, bech32Prefix string) (ibc.Wallet, error)

// parse the output of the restore key command to get the address
ParseRestoreKeyOutput(stdout, stderr string) string
Expand Down
2 changes: 1 addition & 1 deletion e2e/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ require (
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect
github.com/pierrec/xxHash v0.1.5 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/errors v0.9.1
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.20.4 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
Expand Down
34 changes: 21 additions & 13 deletions e2e/opbot.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package e2e
import (
"context"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
Expand All @@ -15,9 +14,12 @@ import (
"github.com/docker/docker/client"
"go.uber.org/zap"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/initia-labs/opinit-bots/executor"
executortypes "github.com/initia-labs/opinit-bots/executor/types"
"github.com/strangelove-ventures/interchaintest/v8/ibc"

"github.com/pkg/errors"
)

const (
Expand Down Expand Up @@ -215,12 +217,12 @@ func (commander) DefaultContainerVersion() string {
return DefaultContainerVersion
}

func (commander) ParseAddKeyOutput(stdout, stderr string) (ibc.Wallet, error) {
func (commander) ParseAddKeyOutput(stdout, stderr, bech32Prefix string) (ibc.Wallet, error) {
var wallet WalletModel
err := json.Unmarshal([]byte(stdout), &wallet)

for keyName, elem := range wallet {
opWallet := NewWallet(keyName, elem.Address, elem.Mnemonic)
opWallet := NewWallet(keyName, elem.Address, elem.Mnemonic, bech32Prefix)
return opWallet, err
}
return nil, errors.New("failed to parse wallet")
Expand All @@ -237,8 +239,8 @@ func (commander) Init(botName string, homeDir string) []string {
}
}

func (c commander) CreateWallet(keyName, address, mnemonic string) ibc.Wallet {
return NewWallet(keyName, address, mnemonic)
func (c commander) CreateWallet(keyName, address, mnemonic, bech32Prefix string) ibc.Wallet {
return NewWallet(keyName, address, mnemonic, bech32Prefix)
}

var _ ibc.Wallet = &OPWallet{}
Expand All @@ -249,16 +251,18 @@ type WalletModel map[string]struct {
}

type OPWallet struct {
mnemonic string
address string
keyName string
mnemonic string
address string
keyName string
bech32Prefix string
}

func NewWallet(keyname string, address string, mnemonic string) *OPWallet {
func NewWallet(keyname string, address string, mnemonic string, bech32Prefix string) *OPWallet {
return &OPWallet{
mnemonic: mnemonic,
address: address,
keyName: keyname,
mnemonic: mnemonic,
address: address,
keyName: keyname,
bech32Prefix: bech32Prefix,
}
}

Expand All @@ -276,5 +280,9 @@ func (op *OPWallet) Mnemonic() string {

// Get Address.
func (op *OPWallet) Address() []byte {
return []byte(op.address)
addr, err := sdk.GetFromBech32(op.address, op.bech32Prefix)
if err != nil {
panic(errors.Wrap(err, "failed to decode address"))
}
return addr
}

0 comments on commit 64f5fa4

Please sign in to comment.