|
|
|
@ -41,6 +41,11 @@ type Manager struct { |
|
|
|
|
// NewManager creates a generic account manager to sign transaction via various
|
|
|
|
|
// supported backends.
|
|
|
|
|
func NewManager(backends ...Backend) *Manager { |
|
|
|
|
// Retrieve the initial list of wallets from the backends and sort by URL
|
|
|
|
|
var wallets []Wallet |
|
|
|
|
for _, backend := range backends { |
|
|
|
|
wallets = merge(wallets, backend.Wallets()...) |
|
|
|
|
} |
|
|
|
|
// Subscribe to wallet notifications from all backends
|
|
|
|
|
updates := make(chan WalletEvent, 4*len(backends)) |
|
|
|
|
|
|
|
|
@ -48,11 +53,6 @@ func NewManager(backends ...Backend) *Manager { |
|
|
|
|
for i, backend := range backends { |
|
|
|
|
subs[i] = backend.Subscribe(updates) |
|
|
|
|
} |
|
|
|
|
// Retrieve the initial list of wallets from the backends and sort by URL
|
|
|
|
|
var wallets []Wallet |
|
|
|
|
for _, backend := range backends { |
|
|
|
|
wallets = merge(wallets, backend.Wallets()...) |
|
|
|
|
} |
|
|
|
|
// Assemble the account manager and return
|
|
|
|
|
am := &Manager{ |
|
|
|
|
backends: make(map[reflect.Type][]Backend), |
|
|
|
|