Skip to content

Commit

Permalink
fixed merge
Browse files Browse the repository at this point in the history
  • Loading branch information
abi87 committed Mar 19, 2024
1 parent 40ef4fa commit 5782a14
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 34 deletions.
26 changes: 15 additions & 11 deletions vms/avm/service_backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
"github.com/ava-labs/avalanchego/vms/avm/config"
"github.com/ava-labs/avalanchego/vms/avm/state"
"github.com/ava-labs/avalanchego/vms/components/avax"
"github.com/ava-labs/avalanchego/wallet/chain/x/backends"
"github.com/ava-labs/avalanchego/wallet/chain/x/builder"
)

var _ txBuilderBackend = (*serviceBackend)(nil)
Expand All @@ -26,15 +26,16 @@ func newServiceBackend(
state state.State,
atomicUTXOsMan avax.AtomicUTXOManager,
) *serviceBackend {
backendCtx := backends.NewContext(
ctx.NetworkID,
ctx.XChainID,
feeAssetID,
cfg.TxFee,
cfg.CreateAssetTxFee,
)
backendCtx := &builder.Context{
NetworkID: ctx.NetworkID,
BlockchainID: ctx.XChainID,
AVAXAssetID: feeAssetID,
BaseTxFee: cfg.TxFee,
CreateAssetTxFee: cfg.CreateAssetTxFee,
}

return &serviceBackend{
Context: backendCtx,
ctx: backendCtx,
xchainID: ctx.XChainID,
cfg: cfg,
state: state,
Expand All @@ -43,15 +44,18 @@ func newServiceBackend(
}

type serviceBackend struct {
backends.Context

ctx *builder.Context
xchainID ids.ID
cfg *config.Config
addrs set.Set[ids.ShortID]
state state.State
atomicUTXOsMan avax.AtomicUTXOManager
}

func (b *serviceBackend) Context() *builder.Context {
return b.ctx
}

func (b *serviceBackend) ResetAddresses(addrs set.Set[ids.ShortID]) {
b.addrs = addrs
}
Expand Down
29 changes: 17 additions & 12 deletions vms/avm/tx_builders.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,17 @@ import (
"github.com/ava-labs/avalanchego/vms/components/avax"
"github.com/ava-labs/avalanchego/vms/components/verify"
"github.com/ava-labs/avalanchego/vms/secp256k1fx"
"github.com/ava-labs/avalanchego/wallet/chain/x/backends"
"github.com/ava-labs/avalanchego/wallet/chain/x/signer"
"github.com/ava-labs/avalanchego/wallet/subnet/primary/common"

walletbuilder "github.com/ava-labs/avalanchego/wallet/chain/x/builder"
)

type txBuilderBackend interface {
backends.Backend
walletbuilder.Backend
signer.Backend

Context() *walletbuilder.Context
ResetAddresses(addrs set.Set[ids.ShortID])
}

Expand All @@ -44,7 +48,7 @@ func buildCreateAssetTx(
return nil, ids.ShortEmpty, fmt.Errorf("failed building base tx: %w", err)
}

tx, err := backends.SignUnsigned(context.Background(), pSigner, utx)
tx, err := signer.SignUnsigned(context.Background(), pSigner, utx)
if err != nil {
return nil, ids.ShortEmpty, err
}
Expand All @@ -69,7 +73,7 @@ func buildBaseTx(
return nil, ids.ShortEmpty, fmt.Errorf("failed building base tx: %w", err)
}

tx, err := backends.SignUnsigned(context.Background(), pSigner, utx)
tx, err := signer.SignUnsigned(context.Background(), pSigner, utx)
if err != nil {
return nil, ids.ShortEmpty, err
}
Expand Down Expand Up @@ -97,7 +101,7 @@ func mintNFT(
return nil, fmt.Errorf("failed minting NFTs: %w", err)
}

return backends.SignUnsigned(context.Background(), pSigner, utx)
return signer.SignUnsigned(context.Background(), pSigner, utx)
}

func mintFTs(
Expand All @@ -116,7 +120,7 @@ func mintFTs(
return nil, fmt.Errorf("failed minting FTs: %w", err)
}

return backends.SignUnsigned(context.Background(), pSigner, utx)
return signer.SignUnsigned(context.Background(), pSigner, utx)
}

func buildOperation(
Expand All @@ -135,7 +139,7 @@ func buildOperation(
return nil, fmt.Errorf("failed building operation tx: %w", err)
}

return backends.SignUnsigned(context.Background(), pSigner, utx)
return signer.SignUnsigned(context.Background(), pSigner, utx)
}

func buildImportTx(
Expand All @@ -160,7 +164,7 @@ func buildImportTx(
return nil, fmt.Errorf("failed building import tx: %w", err)
}

return backends.SignUnsigned(context.Background(), pSigner, utx)
return signer.SignUnsigned(context.Background(), pSigner, utx)
}

func buildExportTx(
Expand Down Expand Up @@ -195,19 +199,20 @@ func buildExportTx(
return nil, ids.ShortEmpty, fmt.Errorf("failed building export tx: %w", err)
}

tx, err := backends.SignUnsigned(context.Background(), pSigner, utx)
tx, err := signer.SignUnsigned(context.Background(), pSigner, utx)
if err != nil {
return nil, ids.ShortEmpty, err
}
return tx, changeAddr, nil
}

func builders(backend txBuilderBackend, kc *secp256k1fx.Keychain) (backends.Builder, backends.Signer) {
func builders(backend txBuilderBackend, kc *secp256k1fx.Keychain) (walletbuilder.Builder, signer.Signer) {
var (
addrs = kc.Addresses()
builder = backends.NewBuilder(addrs, backend)
signer = backends.NewSigner(kc, backend)
builder = walletbuilder.New(addrs, backend.Context(), backend)
signer = signer.New(kc, backend)
)

backend.ResetAddresses(addrs)

return builder, signer
Expand Down
26 changes: 15 additions & 11 deletions vms/avm/wallet_service_backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,37 +14,41 @@ import (
"github.com/ava-labs/avalanchego/utils/set"
"github.com/ava-labs/avalanchego/vms/avm/txs"
"github.com/ava-labs/avalanchego/vms/components/avax"
"github.com/ava-labs/avalanchego/wallet/chain/x/backends"
"github.com/ava-labs/avalanchego/wallet/chain/x/builder"
)

var _ txBuilderBackend = (*walletServiceBackend)(nil)

func NewWalletServiceBackend(vm *VM) *walletServiceBackend {
backendCtx := backends.NewContext(
vm.ctx.NetworkID,
vm.ctx.XChainID,
vm.feeAssetID,
vm.Config.TxFee,
vm.Config.CreateAssetTxFee,
)
backendCtx := &builder.Context{
NetworkID: vm.ctx.NetworkID,
BlockchainID: vm.ctx.XChainID,
AVAXAssetID: vm.feeAssetID,
BaseTxFee: vm.Config.TxFee,
CreateAssetTxFee: vm.Config.CreateAssetTxFee,
}

return &walletServiceBackend{
Context: backendCtx,
ctx: backendCtx,
vm: vm,
pendingTxs: linkedhashmap.New[ids.ID, *txs.Tx](),
utxos: make([]*avax.UTXO, 0),
}
}

type walletServiceBackend struct {
backends.Context

ctx *builder.Context
vm *VM
pendingTxs linkedhashmap.LinkedHashmap[ids.ID, *txs.Tx]
utxos []*avax.UTXO

addrs set.Set[ids.ShortID]
}

func (b *walletServiceBackend) Context() *builder.Context {
return b.ctx
}

func (b *walletServiceBackend) ResetAddresses(addrs set.Set[ids.ShortID]) {
b.addrs = addrs
}
Expand Down

0 comments on commit 5782a14

Please sign in to comment.