cic-custodial/internal/tasker/server/dispatch.go
Mohammed Sohail 1bc8d65016
refactor: remove action provider
* allows better control over accounting  locking
2022-10-26 09:11:15 +00:00

33 lines
660 B
Go

package server
import (
"context"
"encoding/json"
"fmt"
"github.com/ethereum/go-ethereum/common"
"github.com/grassrootseconomics/cic-custodial/internal/tasker/client"
"github.com/hibiken/asynq"
"github.com/lmittmann/w3/module/eth"
)
func (tp *TaskerProcessor) txDispatcher(ctx context.Context, t *asynq.Task) error {
var (
p client.TxPayload
txHash common.Hash
)
if err := json.Unmarshal(t.Payload(), &p); err != nil {
return fmt.Errorf("json.Unmarshal failed: %v: %w", err, asynq.SkipRetry)
}
if err := tp.ChainProvider.EthClient.CallCtx(
ctx,
eth.SendTx(p.Tx).Returns(&txHash),
); err != nil {
return err
}
return nil
}