1.6 KiB
1.6 KiB
Initialisation
The Router
struct is only initialised in one place in the application, in wallet/api.go
:
func NewAPI(s *Service) *API {
router := NewRouter(s)
return &API{s, s.reader, router}
}
type API struct {
s *Service
reader *Reader
router *Router
}
Method and field calls
The API.router
field is only called in two places:
GetSuggestedRoutes()
This function is a straight through wrapper of Router.suggestedRoutes()
:
func (api *API) GetSuggestedRoutes(
ctx context.Context,
sendType SendType,
addrFrom common.Address,
addrTo common.Address,
amountIn *hexutil.Big,
tokenID string,
disabledFromChainIDs,
disabledToChaindIDs,
preferedChainIDs []uint64,
gasFeeMode GasFeeMode,
fromLockedAmount map[uint64]*hexutil.Big,
) (*SuggestedRoutes, error) {
log.Debug("call to GetSuggestedRoutes")
return api.router.suggestedRoutes(ctx, sendType, addrFrom, addrTo, amountIn.ToInt(), tokenID, disabledFromChainIDs,
disabledToChaindIDs, preferedChainIDs, gasFeeMode, fromLockedAmount)
}
CreateMultiTransaction()
This function simply makes a read call to Router.bridges
func (api *API) CreateMultiTransaction(ctx context.Context, multiTransactionCommand *transfer.MultiTransactionCommand, data []*bridge.TransactionBridge, password string) (*transfer.MultiTransactionCommandResult, error) {
log.Debug("[WalletAPI:: CreateMultiTransaction] create multi transaction")
return api.s.transactionManager.CreateMultiTransactionFromCommand(ctx, multiTransactionCommand, data, api.router.bridges, password)
}