cic-custodial/internal/tasker/client/tx.go

33 lines
597 B
Go

package client
import (
"encoding/json"
"github.com/ethereum/go-ethereum/core/types"
"github.com/hibiken/asynq"
)
const (
TxDispatchTask JobType = "tx:dispatch"
)
type TxPayload struct {
Tx *types.Transaction
}
func (tc *TaskerClient) CreateTxDispatchTask(taskPayload TxPayload, jobType JobType) (*asynq.TaskInfo, error) {
payload, err := json.Marshal(taskPayload)
if err != nil {
return nil, err
}
task := asynq.NewTask(string(jobType), payload, asynq.Retention(defaultRetentionPeriod))
t, err := tc.Client.Enqueue(task)
if err != nil {
return nil, err
}
return t, nil
}