From 6f8428f1bc42a6ef64c00a66e94e34fded53f7cf Mon Sep 17 00:00:00 2001 From: Patryk Kalinowski Date: Fri, 9 Oct 2026 12:10:51 +0200 Subject: [PATCH] relayer: update client bindings to 0xsequence/relayer@ab4093e Adds the non-blocking GetMetaTxnStatus RPC and regenerates the mock. Co-Authored-By: Claude Opus 5 --- lib/mock/relayer.mock.go | 57 +++++--- relayer/proto/relayer.gen.go | 261 +++++++++++++++++++++++------------ 2 files changed, 213 insertions(+), 105 deletions(-) diff --git a/lib/mock/relayer.mock.go b/lib/mock/relayer.mock.go index d08e3678..08486e92 100644 --- a/lib/mock/relayer.mock.go +++ b/lib/mock/relayer.mock.go @@ -43,9 +43,9 @@ func (m *Relayer) EXPECT() *RelayerMockRecorder { } // AddEcosystemGasSponsor mocks base method. -func (m *Relayer) AddEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, address string, name *string, active *bool) (bool, *proto.GasSponsor, error) { +func (m *Relayer) AddEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, address string, name *string, active *bool, webhookUrl, webhookAuthToken *string) (bool, *proto.GasSponsor, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddEcosystemGasSponsor", ctx, ecosystemId, address, name, active) + ret := m.ctrl.Call(m, "AddEcosystemGasSponsor", ctx, ecosystemId, address, name, active, webhookUrl, webhookAuthToken) ret0, _ := ret[0].(bool) ret1, _ := ret[1].(*proto.GasSponsor) ret2, _ := ret[2].(error) @@ -53,15 +53,15 @@ func (m *Relayer) AddEcosystemGasSponsor(ctx context.Context, ecosystemId uint64 } // AddEcosystemGasSponsor indicates an expected call of AddEcosystemGasSponsor. -func (mr *RelayerMockRecorder) AddEcosystemGasSponsor(ctx, ecosystemId, address, name, active any) *gomock.Call { +func (mr *RelayerMockRecorder) AddEcosystemGasSponsor(ctx, ecosystemId, address, name, active, webhookUrl, webhookAuthToken any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddEcosystemGasSponsor", reflect.TypeOf((*Relayer)(nil).AddEcosystemGasSponsor), ctx, ecosystemId, address, name, active) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddEcosystemGasSponsor", reflect.TypeOf((*Relayer)(nil).AddEcosystemGasSponsor), ctx, ecosystemId, address, name, active, webhookUrl, webhookAuthToken) } // AddGasSponsor mocks base method. -func (m *Relayer) AddGasSponsor(ctx context.Context, projectId uint64, address string, name *string, active *bool) (bool, *proto.GasSponsor, error) { +func (m *Relayer) AddGasSponsor(ctx context.Context, projectId uint64, address string, name *string, active *bool, webhookUrl, webhookAuthToken *string) (bool, *proto.GasSponsor, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "AddGasSponsor", ctx, projectId, address, name, active) + ret := m.ctrl.Call(m, "AddGasSponsor", ctx, projectId, address, name, active, webhookUrl, webhookAuthToken) ret0, _ := ret[0].(bool) ret1, _ := ret[1].(*proto.GasSponsor) ret2, _ := ret[2].(error) @@ -69,9 +69,9 @@ func (m *Relayer) AddGasSponsor(ctx context.Context, projectId uint64, address s } // AddGasSponsor indicates an expected call of AddGasSponsor. -func (mr *RelayerMockRecorder) AddGasSponsor(ctx, projectId, address, name, active any) *gomock.Call { +func (mr *RelayerMockRecorder) AddGasSponsor(ctx, projectId, address, name, active, webhookUrl, webhookAuthToken any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddGasSponsor", reflect.TypeOf((*Relayer)(nil).AddGasSponsor), ctx, projectId, address, name, active) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddGasSponsor", reflect.TypeOf((*Relayer)(nil).AddGasSponsor), ctx, projectId, address, name, active, webhookUrl, webhookAuthToken) } // AddGasTank mocks base method. @@ -264,9 +264,9 @@ func (mr *RelayerMockRecorder) GetGasTankBalanceAdjustment(ctx, id, nonce any) * } // GetMetaTransactions mocks base method. -func (m *Relayer) GetMetaTransactions(ctx context.Context, projectId uint64, page *proto.Page) (*proto.Page, []*proto.MetaTxnLog, error) { +func (m *Relayer) GetMetaTransactions(ctx context.Context, projectId uint64, page *proto.Page, includeNonSponsored *bool) (*proto.Page, []*proto.MetaTxnLog, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetMetaTransactions", ctx, projectId, page) + ret := m.ctrl.Call(m, "GetMetaTransactions", ctx, projectId, page, includeNonSponsored) ret0, _ := ret[0].(*proto.Page) ret1, _ := ret[1].([]*proto.MetaTxnLog) ret2, _ := ret[2].(error) @@ -274,9 +274,9 @@ func (m *Relayer) GetMetaTransactions(ctx context.Context, projectId uint64, pag } // GetMetaTransactions indicates an expected call of GetMetaTransactions. -func (mr *RelayerMockRecorder) GetMetaTransactions(ctx, projectId, page any) *gomock.Call { +func (mr *RelayerMockRecorder) GetMetaTransactions(ctx, projectId, page, includeNonSponsored any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMetaTransactions", reflect.TypeOf((*Relayer)(nil).GetMetaTransactions), ctx, projectId, page) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMetaTransactions", reflect.TypeOf((*Relayer)(nil).GetMetaTransactions), ctx, projectId, page, includeNonSponsored) } // GetMetaTxnNetworkFeeOptions mocks base method. @@ -325,6 +325,23 @@ func (mr *RelayerMockRecorder) GetMetaTxnReceipt(ctx, metaTxID any) *gomock.Call return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMetaTxnReceipt", reflect.TypeOf((*Relayer)(nil).GetMetaTxnReceipt), ctx, metaTxID) } +// GetMetaTxnStatus mocks base method. +func (m *Relayer) GetMetaTxnStatus(ctx context.Context, metaTxID string) (proto.ETHTxnStatus, bool, *proto.MetaTxnReceipt, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetMetaTxnStatus", ctx, metaTxID) + ret0, _ := ret[0].(proto.ETHTxnStatus) + ret1, _ := ret[1].(bool) + ret2, _ := ret[2].(*proto.MetaTxnReceipt) + ret3, _ := ret[3].(error) + return ret0, ret1, ret2, ret3 +} + +// GetMetaTxnStatus indicates an expected call of GetMetaTxnStatus. +func (mr *RelayerMockRecorder) GetMetaTxnStatus(ctx, metaTxID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMetaTxnStatus", reflect.TypeOf((*Relayer)(nil).GetMetaTxnStatus), ctx, metaTxID) +} + // GetProjectBalance mocks base method. func (m *Relayer) GetProjectBalance(ctx context.Context, projectId uint64) (float64, error) { m.ctrl.T.Helper() @@ -598,9 +615,9 @@ func (mr *RelayerMockRecorder) StopSender(ctx, sender any) *gomock.Call { } // UpdateEcosystemGasSponsor mocks base method. -func (m *Relayer) UpdateEcosystemGasSponsor(ctx context.Context, ecosystemId, id uint64, name *string, active *bool) (bool, *proto.GasSponsor, error) { +func (m *Relayer) UpdateEcosystemGasSponsor(ctx context.Context, ecosystemId, id uint64, name *string, active *bool, webhookUrl, webhookAuthToken *string) (bool, *proto.GasSponsor, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateEcosystemGasSponsor", ctx, ecosystemId, id, name, active) + ret := m.ctrl.Call(m, "UpdateEcosystemGasSponsor", ctx, ecosystemId, id, name, active, webhookUrl, webhookAuthToken) ret0, _ := ret[0].(bool) ret1, _ := ret[1].(*proto.GasSponsor) ret2, _ := ret[2].(error) @@ -608,15 +625,15 @@ func (m *Relayer) UpdateEcosystemGasSponsor(ctx context.Context, ecosystemId, id } // UpdateEcosystemGasSponsor indicates an expected call of UpdateEcosystemGasSponsor. -func (mr *RelayerMockRecorder) UpdateEcosystemGasSponsor(ctx, ecosystemId, id, name, active any) *gomock.Call { +func (mr *RelayerMockRecorder) UpdateEcosystemGasSponsor(ctx, ecosystemId, id, name, active, webhookUrl, webhookAuthToken any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateEcosystemGasSponsor", reflect.TypeOf((*Relayer)(nil).UpdateEcosystemGasSponsor), ctx, ecosystemId, id, name, active) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateEcosystemGasSponsor", reflect.TypeOf((*Relayer)(nil).UpdateEcosystemGasSponsor), ctx, ecosystemId, id, name, active, webhookUrl, webhookAuthToken) } // UpdateGasSponsor mocks base method. -func (m *Relayer) UpdateGasSponsor(ctx context.Context, projectId, id uint64, name *string, active *bool) (bool, *proto.GasSponsor, error) { +func (m *Relayer) UpdateGasSponsor(ctx context.Context, projectId, id uint64, name *string, active *bool, webhookUrl, webhookAuthToken *string) (bool, *proto.GasSponsor, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateGasSponsor", ctx, projectId, id, name, active) + ret := m.ctrl.Call(m, "UpdateGasSponsor", ctx, projectId, id, name, active, webhookUrl, webhookAuthToken) ret0, _ := ret[0].(bool) ret1, _ := ret[1].(*proto.GasSponsor) ret2, _ := ret[2].(error) @@ -624,9 +641,9 @@ func (m *Relayer) UpdateGasSponsor(ctx context.Context, projectId, id uint64, na } // UpdateGasSponsor indicates an expected call of UpdateGasSponsor. -func (mr *RelayerMockRecorder) UpdateGasSponsor(ctx, projectId, id, name, active any) *gomock.Call { +func (mr *RelayerMockRecorder) UpdateGasSponsor(ctx, projectId, id, name, active, webhookUrl, webhookAuthToken any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGasSponsor", reflect.TypeOf((*Relayer)(nil).UpdateGasSponsor), ctx, projectId, id, name, active) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateGasSponsor", reflect.TypeOf((*Relayer)(nil).UpdateGasSponsor), ctx, projectId, id, name, active, webhookUrl, webhookAuthToken) } // UpdateGasTank mocks base method. diff --git a/relayer/proto/relayer.gen.go b/relayer/proto/relayer.gen.go index f925295b..f32fa2c9 100644 --- a/relayer/proto/relayer.gen.go +++ b/relayer/proto/relayer.gen.go @@ -1,4 +1,4 @@ -// sequence-relayer v0.4.1 bbe47231e764cdbdf21f7181326c5b1709f630a3 +// sequence-relayer v0.4.1 3f3835f4f866bc9b4938e84a81ed8081dce1414d // -- // Code generated by webrpc-gen@v0.32.2 with golang generator. DO NOT EDIT. // @@ -35,7 +35,7 @@ func WebRPCSchemaVersion() string { // Schema hash generated from your RIDL schema func WebRPCSchemaHash() string { - return "bbe47231e764cdbdf21f7181326c5b1709f630a3" + return "3f3835f4f866bc9b4938e84a81ed8081dce1414d" } // @@ -56,13 +56,11 @@ type RelayerClient interface { // TODO: rename return txnHash: string to metaTxnID: string SendMetaTxn(ctx context.Context, call *MetaTxn, quote *string, projectID *uint64, preconditions []*TransactionPrecondition) (bool, string, error) GetMetaTxnNonce(ctx context.Context, walletContractAddress string, space *string) (string, error) - // TODO: one day, make GetMetaTxnReceipt respond immediately with receipt or not - // and add WaitTransactionReceipt method, which will block and wait, similar to how GetMetaTxnReceipt - // is implemented now. - // For backwards compat, we can leave the current GetMetaTxnReceipt how it is, an deprecate it, and introduce - // new, GetTransactionReceipt and WaitTransactionReceipt methods - // we can also accept metaTxnId and txnHash .. so can take either or.. I wonder if ERC-4337 has any convention on this? + // GetMetaTxnReceipt blocks (up to ~25s) waiting for the receipt. For a non-blocking variant, use GetMetaTxnStatus. GetMetaTxnReceipt(ctx context.Context, metaTxID string) (*MetaTxnReceipt, bool, error) + // GetMetaTxnStatus returns the current status of a meta-transaction without waiting. + // receipt is set iff status is SUCCEEDED, FAILED or PARTIALLY_FAILED. + GetMetaTxnStatus(ctx context.Context, metaTxID string) (ETHTxnStatus, bool, *MetaTxnReceipt, error) Simulate(ctx context.Context, wallet string, transactions string) ([]*SimulateResult, error) SimulateV3(ctx context.Context, wallet string, calls string) ([]*SimulateV3Result, error) // TODO: deprecated, to be removed by https://github.com/0xsequence/stack/pull/356 at a later date @@ -82,7 +80,7 @@ type RelayerClient interface { StartSender(ctx context.Context, sender int) error StopSender(ctx context.Context, sender int) error RepairSender(ctx context.Context, sender int, nonce uint64, operation RepairOperation) error - GetMetaTransactions(ctx context.Context, projectId uint64, page *Page) (*Page, []*MetaTxnLog, error) + GetMetaTransactions(ctx context.Context, projectId uint64, page *Page, includeNonSponsored *bool) (*Page, []*MetaTxnLog, error) GetTransactionCost(ctx context.Context, projectId uint64, from time.Time, to time.Time) (float64, error) // Legacy Gas Tank GetGasTank(ctx context.Context, id uint64) (*GasTank, error) @@ -96,14 +94,14 @@ type RelayerClient interface { // Project-Level Gas Sponsorship ListGasSponsors(ctx context.Context, projectId uint64, page *Page) (*Page, []*GasSponsor, error) GetGasSponsor(ctx context.Context, projectId uint64, id uint64) (*GasSponsor, error) - AddGasSponsor(ctx context.Context, projectId uint64, address string, name *string, active *bool) (bool, *GasSponsor, error) - UpdateGasSponsor(ctx context.Context, projectId uint64, id uint64, name *string, active *bool) (bool, *GasSponsor, error) + AddGasSponsor(ctx context.Context, projectId uint64, address string, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) + UpdateGasSponsor(ctx context.Context, projectId uint64, id uint64, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) RemoveGasSponsor(ctx context.Context, projectId uint64, id uint64) (bool, error) // Ecosystem-level Gas Sponsorship ListEcosystemGasSponsors(ctx context.Context, ecosystemId uint64, page *Page) (*Page, []*GasSponsor, error) GetEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64) (*GasSponsor, error) - AddEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, address string, name *string, active *bool) (bool, *GasSponsor, error) - UpdateEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64, name *string, active *bool) (bool, *GasSponsor, error) + AddEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, address string, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) + UpdateEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) RemoveEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64) (bool, error) // Gas Sponsor Lookup AddressGasSponsors(ctx context.Context, address string, page *Page) (*Page, []*GasSponsor, error) @@ -130,13 +128,11 @@ type RelayerServer interface { // TODO: rename return txnHash: string to metaTxnID: string SendMetaTxn(ctx context.Context, call *MetaTxn, quote *string, projectID *uint64, preconditions []*TransactionPrecondition) (bool, string, error) GetMetaTxnNonce(ctx context.Context, walletContractAddress string, space *string) (string, error) - // TODO: one day, make GetMetaTxnReceipt respond immediately with receipt or not - // and add WaitTransactionReceipt method, which will block and wait, similar to how GetMetaTxnReceipt - // is implemented now. - // For backwards compat, we can leave the current GetMetaTxnReceipt how it is, an deprecate it, and introduce - // new, GetTransactionReceipt and WaitTransactionReceipt methods - // we can also accept metaTxnId and txnHash .. so can take either or.. I wonder if ERC-4337 has any convention on this? + // GetMetaTxnReceipt blocks (up to ~25s) waiting for the receipt. For a non-blocking variant, use GetMetaTxnStatus. GetMetaTxnReceipt(ctx context.Context, metaTxID string) (*MetaTxnReceipt, bool, error) + // GetMetaTxnStatus returns the current status of a meta-transaction without waiting. + // receipt is set iff status is SUCCEEDED, FAILED or PARTIALLY_FAILED. + GetMetaTxnStatus(ctx context.Context, metaTxID string) (ETHTxnStatus, bool, *MetaTxnReceipt, error) Simulate(ctx context.Context, wallet string, transactions string) ([]*SimulateResult, error) SimulateV3(ctx context.Context, wallet string, calls string) ([]*SimulateV3Result, error) // TODO: deprecated, to be removed by https://github.com/0xsequence/stack/pull/356 at a later date @@ -156,7 +152,7 @@ type RelayerServer interface { StartSender(ctx context.Context, sender int) error StopSender(ctx context.Context, sender int) error RepairSender(ctx context.Context, sender int, nonce uint64, operation RepairOperation) error - GetMetaTransactions(ctx context.Context, projectId uint64, page *Page) (*Page, []*MetaTxnLog, error) + GetMetaTransactions(ctx context.Context, projectId uint64, page *Page, includeNonSponsored *bool) (*Page, []*MetaTxnLog, error) GetTransactionCost(ctx context.Context, projectId uint64, from time.Time, to time.Time) (float64, error) // Legacy Gas Tank GetGasTank(ctx context.Context, id uint64) (*GasTank, error) @@ -170,14 +166,14 @@ type RelayerServer interface { // Project-Level Gas Sponsorship ListGasSponsors(ctx context.Context, projectId uint64, page *Page) (*Page, []*GasSponsor, error) GetGasSponsor(ctx context.Context, projectId uint64, id uint64) (*GasSponsor, error) - AddGasSponsor(ctx context.Context, projectId uint64, address string, name *string, active *bool) (bool, *GasSponsor, error) - UpdateGasSponsor(ctx context.Context, projectId uint64, id uint64, name *string, active *bool) (bool, *GasSponsor, error) + AddGasSponsor(ctx context.Context, projectId uint64, address string, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) + UpdateGasSponsor(ctx context.Context, projectId uint64, id uint64, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) RemoveGasSponsor(ctx context.Context, projectId uint64, id uint64) (bool, error) // Ecosystem-level Gas Sponsorship ListEcosystemGasSponsors(ctx context.Context, ecosystemId uint64, page *Page) (*Page, []*GasSponsor, error) GetEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64) (*GasSponsor, error) - AddEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, address string, name *string, active *bool) (bool, *GasSponsor, error) - UpdateEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64, name *string, active *bool) (bool, *GasSponsor, error) + AddEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, address string, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) + UpdateEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) RemoveEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64) (bool, error) // Gas Sponsor Lookup AddressGasSponsors(ctx context.Context, address string, page *Page) (*Page, []*GasSponsor, error) @@ -571,17 +567,19 @@ type GasTankBalanceAdjustment struct { } type GasSponsor struct { - ID uint64 `json:"id" db:"id,omitempty"` - GasTankID uint64 `json:"gasTankId" db:"gas_tank_id,omitempty"` - ProjectID uint64 `json:"projectId" db:"project_id"` - EcosystemID uint64 `json:"ecosystemId" db:"ecosystem_id"` - ChainID uint64 `json:"chainId" db:"chain_id,omitempty"` - Address prototyp.Hash `json:"address" db:"address"` - Name string `json:"name" db:"name"` - Active bool `json:"active" db:"active"` - UpdatedAt *time.Time `json:"updatedAt" db:"updated_at,omitempty"` - CreatedAt *time.Time `json:"createdAt" db:"created_at,omitempty"` - DeletedAt *time.Time `json:"-" db:"deleted_at,omitempty"` + ID uint64 `json:"id" db:"id,omitempty"` + GasTankID uint64 `json:"gasTankId" db:"gas_tank_id,omitempty"` + ProjectID uint64 `json:"projectId" db:"project_id"` + EcosystemID uint64 `json:"ecosystemId" db:"ecosystem_id"` + ChainID uint64 `json:"chainId" db:"chain_id,omitempty"` + Address prototyp.Hash `json:"address" db:"address"` + Name string `json:"name" db:"name"` + Active bool `json:"active" db:"active"` + WebhookURL string `json:"webhookUrl" db:"webhook_url"` + WebhookAuthToken string `json:"-" db:"webhook_auth_token"` + UpdatedAt *time.Time `json:"updatedAt" db:"updated_at,omitempty"` + CreatedAt *time.Time `json:"createdAt" db:"created_at,omitempty"` + DeletedAt *time.Time `json:"-" db:"deleted_at,omitempty"` } type GasSponsorUsage struct { @@ -773,12 +771,12 @@ const RelayerPathPrefix = "/rpc/Relayer/" type relayerClient struct { client HTTPClient - urls [41]string + urls [42]string } func NewRelayerClient(addr string, client HTTPClient) RelayerClient { prefix := urlBase(addr) + RelayerPathPrefix - urls := [41]string{ + urls := [42]string{ prefix + "Ping", prefix + "Version", prefix + "RuntimeStatus", @@ -787,6 +785,7 @@ func NewRelayerClient(addr string, client HTTPClient) RelayerClient { prefix + "SendMetaTxn", prefix + "GetMetaTxnNonce", prefix + "GetMetaTxnReceipt", + prefix + "GetMetaTxnStatus", prefix + "Simulate", prefix + "SimulateV3", prefix + "UpdateMetaTxnGasLimits", @@ -970,6 +969,27 @@ func (c *relayerClient) GetMetaTxnReceipt(ctx context.Context, metaTxID string) return out.Ret0, out.Ret1, err } +func (c *relayerClient) GetMetaTxnStatus(ctx context.Context, metaTxID string) (ETHTxnStatus, bool, *MetaTxnReceipt, error) { + in := struct { + Arg0 string `json:"metaTxID"` + }{metaTxID} + out := struct { + Ret0 ETHTxnStatus `json:"status"` + Ret1 bool `json:"metaTxnEnqueued"` + Ret2 *MetaTxnReceipt `json:"receipt"` + }{} + + resp, err := doHTTPRequest(ctx, c.client, c.urls[8], in, &out) + if resp != nil { + cerr := resp.Body.Close() + if err == nil && cerr != nil { + err = ErrWebrpcRequestFailed.WithCausef("failed to close response body: %w", cerr) + } + } + + return out.Ret0, out.Ret1, out.Ret2, err +} + func (c *relayerClient) Simulate(ctx context.Context, wallet string, transactions string) ([]*SimulateResult, error) { in := struct { Arg0 string `json:"wallet"` @@ -979,7 +999,7 @@ func (c *relayerClient) Simulate(ctx context.Context, wallet string, transaction Ret0 []*SimulateResult `json:"results"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[8], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[9], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -999,7 +1019,7 @@ func (c *relayerClient) SimulateV3(ctx context.Context, wallet string, calls str Ret0 []*SimulateV3Result `json:"results"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[9], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[10], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1020,7 +1040,7 @@ func (c *relayerClient) UpdateMetaTxnGasLimits(ctx context.Context, walletAddres Ret0 string `json:"payload"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[10], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[11], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1038,7 +1058,7 @@ func (c *relayerClient) FeeTokens(ctx context.Context) (bool, []*FeeToken, strin Ret2 string `json:"paymentAddress"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[11], nil, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[12], nil, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1063,7 +1083,7 @@ func (c *relayerClient) FeeOptions(ctx context.Context, wallet string, to string Ret2 *string `json:"quote"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[12], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[13], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1087,7 +1107,7 @@ func (c *relayerClient) SendMetaTxnWithBridgeGas(ctx context.Context, call *Meta Ret1 string `json:"txnHash"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[13], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[14], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1113,7 +1133,7 @@ func (c *relayerClient) FeeOptionsWithBridgeGas(ctx context.Context, wallet stri Ret2 *string `json:"quote"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[14], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[15], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1133,7 +1153,7 @@ func (c *relayerClient) GetMetaTxnNetworkFeeOptions(ctx context.Context, walletC Ret0 []*FeeOption `json:"options"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[15], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[16], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1149,7 +1169,7 @@ func (c *relayerClient) StartSender(ctx context.Context, sender int) error { Arg0 int `json:"sender"` }{sender} - resp, err := doHTTPRequest(ctx, c.client, c.urls[16], in, nil) + resp, err := doHTTPRequest(ctx, c.client, c.urls[17], in, nil) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1165,7 +1185,7 @@ func (c *relayerClient) StopSender(ctx context.Context, sender int) error { Arg0 int `json:"sender"` }{sender} - resp, err := doHTTPRequest(ctx, c.client, c.urls[17], in, nil) + resp, err := doHTTPRequest(ctx, c.client, c.urls[18], in, nil) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1183,7 +1203,7 @@ func (c *relayerClient) RepairSender(ctx context.Context, sender int, nonce uint Arg2 RepairOperation `json:"operation"` }{sender, nonce, operation} - resp, err := doHTTPRequest(ctx, c.client, c.urls[18], in, nil) + resp, err := doHTTPRequest(ctx, c.client, c.urls[19], in, nil) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1194,17 +1214,18 @@ func (c *relayerClient) RepairSender(ctx context.Context, sender int, nonce uint return err } -func (c *relayerClient) GetMetaTransactions(ctx context.Context, projectId uint64, page *Page) (*Page, []*MetaTxnLog, error) { +func (c *relayerClient) GetMetaTransactions(ctx context.Context, projectId uint64, page *Page, includeNonSponsored *bool) (*Page, []*MetaTxnLog, error) { in := struct { Arg0 uint64 `json:"projectId"` Arg1 *Page `json:"page"` - }{projectId, page} + Arg2 *bool `json:"includeNonSponsored"` + }{projectId, page, includeNonSponsored} out := struct { Ret0 *Page `json:"page"` Ret1 []*MetaTxnLog `json:"transactions"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[19], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[20], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1225,7 +1246,7 @@ func (c *relayerClient) GetTransactionCost(ctx context.Context, projectId uint64 Ret0 float64 `json:"cost"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[20], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[21], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1244,7 +1265,7 @@ func (c *relayerClient) GetGasTank(ctx context.Context, id uint64) (*GasTank, er Ret0 *GasTank `json:"gasTank"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[21], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[22], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1266,7 +1287,7 @@ func (c *relayerClient) AddGasTank(ctx context.Context, name string, feeMarkupFa Ret1 *GasTank `json:"gasTank"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[22], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[23], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1289,7 +1310,7 @@ func (c *relayerClient) UpdateGasTank(ctx context.Context, id uint64, name *stri Ret1 *GasTank `json:"gasTank"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[23], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[24], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1308,7 +1329,7 @@ func (c *relayerClient) NextGasTankBalanceAdjustmentNonce(ctx context.Context, i Ret0 uint64 `json:"nonce"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[24], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[25], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1330,7 +1351,7 @@ func (c *relayerClient) AdjustGasTankBalance(ctx context.Context, id uint64, non Ret1 *GasTankBalanceAdjustment `json:"adjustment"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[25], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[26], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1350,7 +1371,7 @@ func (c *relayerClient) GetGasTankBalanceAdjustment(ctx context.Context, id uint Ret0 *GasTankBalanceAdjustment `json:"adjustment"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[26], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[27], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1371,7 +1392,7 @@ func (c *relayerClient) ListGasTankBalanceAdjustments(ctx context.Context, id ui Ret1 []*GasTankBalanceAdjustment `json:"adjustments"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[27], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[28], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1392,7 +1413,7 @@ func (c *relayerClient) ListGasSponsors(ctx context.Context, projectId uint64, p Ret1 []*GasSponsor `json:"gasSponsors"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[28], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[29], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1412,7 +1433,7 @@ func (c *relayerClient) GetGasSponsor(ctx context.Context, projectId uint64, id Ret0 *GasSponsor `json:"gasSponsor"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[29], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[30], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1423,19 +1444,21 @@ func (c *relayerClient) GetGasSponsor(ctx context.Context, projectId uint64, id return out.Ret0, err } -func (c *relayerClient) AddGasSponsor(ctx context.Context, projectId uint64, address string, name *string, active *bool) (bool, *GasSponsor, error) { +func (c *relayerClient) AddGasSponsor(ctx context.Context, projectId uint64, address string, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) { in := struct { Arg0 uint64 `json:"projectId"` Arg1 string `json:"address"` Arg2 *string `json:"name"` Arg3 *bool `json:"active"` - }{projectId, address, name, active} + Arg4 *string `json:"webhookUrl"` + Arg5 *string `json:"webhookAuthToken"` + }{projectId, address, name, active, webhookUrl, webhookAuthToken} out := struct { Ret0 bool `json:"status"` Ret1 *GasSponsor `json:"gasSponsor"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[30], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[31], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1446,19 +1469,21 @@ func (c *relayerClient) AddGasSponsor(ctx context.Context, projectId uint64, add return out.Ret0, out.Ret1, err } -func (c *relayerClient) UpdateGasSponsor(ctx context.Context, projectId uint64, id uint64, name *string, active *bool) (bool, *GasSponsor, error) { +func (c *relayerClient) UpdateGasSponsor(ctx context.Context, projectId uint64, id uint64, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) { in := struct { Arg0 uint64 `json:"projectId"` Arg1 uint64 `json:"id"` Arg2 *string `json:"name"` Arg3 *bool `json:"active"` - }{projectId, id, name, active} + Arg4 *string `json:"webhookUrl"` + Arg5 *string `json:"webhookAuthToken"` + }{projectId, id, name, active, webhookUrl, webhookAuthToken} out := struct { Ret0 bool `json:"status"` Ret1 *GasSponsor `json:"gasSponsor"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[31], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[32], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1478,7 +1503,7 @@ func (c *relayerClient) RemoveGasSponsor(ctx context.Context, projectId uint64, Ret0 bool `json:"status"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[32], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[33], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1499,7 +1524,7 @@ func (c *relayerClient) ListEcosystemGasSponsors(ctx context.Context, ecosystemI Ret1 []*GasSponsor `json:"gasSponsors"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[33], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[34], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1519,7 +1544,7 @@ func (c *relayerClient) GetEcosystemGasSponsor(ctx context.Context, ecosystemId Ret0 *GasSponsor `json:"gasSponsor"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[34], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[35], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1530,19 +1555,21 @@ func (c *relayerClient) GetEcosystemGasSponsor(ctx context.Context, ecosystemId return out.Ret0, err } -func (c *relayerClient) AddEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, address string, name *string, active *bool) (bool, *GasSponsor, error) { +func (c *relayerClient) AddEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, address string, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) { in := struct { Arg0 uint64 `json:"ecosystemId"` Arg1 string `json:"address"` Arg2 *string `json:"name"` Arg3 *bool `json:"active"` - }{ecosystemId, address, name, active} + Arg4 *string `json:"webhookUrl"` + Arg5 *string `json:"webhookAuthToken"` + }{ecosystemId, address, name, active, webhookUrl, webhookAuthToken} out := struct { Ret0 bool `json:"status"` Ret1 *GasSponsor `json:"gasSponsor"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[35], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[36], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1553,19 +1580,21 @@ func (c *relayerClient) AddEcosystemGasSponsor(ctx context.Context, ecosystemId return out.Ret0, out.Ret1, err } -func (c *relayerClient) UpdateEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64, name *string, active *bool) (bool, *GasSponsor, error) { +func (c *relayerClient) UpdateEcosystemGasSponsor(ctx context.Context, ecosystemId uint64, id uint64, name *string, active *bool, webhookUrl *string, webhookAuthToken *string) (bool, *GasSponsor, error) { in := struct { Arg0 uint64 `json:"ecosystemId"` Arg1 uint64 `json:"id"` Arg2 *string `json:"name"` Arg3 *bool `json:"active"` - }{ecosystemId, id, name, active} + Arg4 *string `json:"webhookUrl"` + Arg5 *string `json:"webhookAuthToken"` + }{ecosystemId, id, name, active, webhookUrl, webhookAuthToken} out := struct { Ret0 bool `json:"status"` Ret1 *GasSponsor `json:"gasSponsor"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[36], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[37], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1585,7 +1614,7 @@ func (c *relayerClient) RemoveEcosystemGasSponsor(ctx context.Context, ecosystem Ret0 bool `json:"status"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[37], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[38], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1606,7 +1635,7 @@ func (c *relayerClient) AddressGasSponsors(ctx context.Context, address string, Ret1 []*GasSponsor `json:"gasSponsors"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[38], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[39], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1625,7 +1654,7 @@ func (c *relayerClient) GetProjectBalance(ctx context.Context, projectId uint64) Ret0 float64 `json:"balance"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[39], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[40], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1646,7 +1675,7 @@ func (c *relayerClient) AdjustProjectBalance(ctx context.Context, projectId uint Ret0 float64 `json:"balance"` }{} - resp, err := doHTTPRequest(ctx, c.client, c.urls[40], in, &out) + resp, err := doHTTPRequest(ctx, c.client, c.urls[41], in, &out) if resp != nil { cerr := resp.Body.Close() if err == nil && cerr != nil { @@ -1713,6 +1742,8 @@ func (s *relayerService) ServeHTTP(w http.ResponseWriter, r *http.Request) { handler = s.serveGetMetaTxnNonceJSON case "/rpc/Relayer/GetMetaTxnReceipt": handler = s.serveGetMetaTxnReceiptJSON + case "/rpc/Relayer/GetMetaTxnStatus": + handler = s.serveGetMetaTxnStatusJSON case "/rpc/Relayer/Simulate": handler = s.serveSimulateJSON case "/rpc/Relayer/SimulateV3": @@ -2093,6 +2124,51 @@ func (s *relayerService) serveGetMetaTxnReceiptJSON(ctx context.Context, w http. w.Write(respBody) } +func (s *relayerService) serveGetMetaTxnStatusJSON(ctx context.Context, w http.ResponseWriter, r *http.Request) { + ctx = context.WithValue(ctx, MethodNameCtxKey, "GetMetaTxnStatus") + + reqBody, err := io.ReadAll(r.Body) + if err != nil { + s.sendErrorJSON(w, r, ErrWebrpcBadRequest.WithCausef("failed to read request data: %w", err)) + return + } + defer r.Body.Close() + + reqPayload := struct { + Arg0 string `json:"metaTxID"` + }{} + if err := json.Unmarshal(reqBody, &reqPayload); err != nil { + s.sendErrorJSON(w, r, ErrWebrpcBadRequest.WithCausef("failed to unmarshal request data: %w", err)) + return + } + + // Call service method implementation. + ret0, ret1, ret2, err := s.RelayerServer.GetMetaTxnStatus(ctx, reqPayload.Arg0) + if err != nil { + rpcErr, ok := err.(WebRPCError) + if !ok { + rpcErr = ErrWebrpcEndpoint.WithCause(err) + } + s.sendErrorJSON(w, r, rpcErr) + return + } + + respPayload := struct { + Ret0 ETHTxnStatus `json:"status"` + Ret1 bool `json:"metaTxnEnqueued"` + Ret2 *MetaTxnReceipt `json:"receipt"` + }{ret0, ret1, ret2} + respBody, err := json.Marshal(respPayload) + if err != nil { + s.sendErrorJSON(w, r, ErrWebrpcBadResponse.WithCausef("failed to marshal json response: %w", err)) + return + } + + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + w.Write(respBody) +} + func (s *relayerService) serveSimulateJSON(ctx context.Context, w http.ResponseWriter, r *http.Request) { ctx = context.WithValue(ctx, MethodNameCtxKey, "Simulate") @@ -2564,6 +2640,7 @@ func (s *relayerService) serveGetMetaTransactionsJSON(ctx context.Context, w htt reqPayload := struct { Arg0 uint64 `json:"projectId"` Arg1 *Page `json:"page"` + Arg2 *bool `json:"includeNonSponsored"` }{} if err := json.Unmarshal(reqBody, &reqPayload); err != nil { s.sendErrorJSON(w, r, ErrWebrpcBadRequest.WithCausef("failed to unmarshal request data: %w", err)) @@ -2571,7 +2648,7 @@ func (s *relayerService) serveGetMetaTransactionsJSON(ctx context.Context, w htt } // Call service method implementation. - ret0, ret1, err := s.RelayerServer.GetMetaTransactions(ctx, reqPayload.Arg0, reqPayload.Arg1) + ret0, ret1, err := s.RelayerServer.GetMetaTransactions(ctx, reqPayload.Arg0, reqPayload.Arg1, reqPayload.Arg2) if err != nil { rpcErr, ok := err.(WebRPCError) if !ok { @@ -3059,6 +3136,8 @@ func (s *relayerService) serveAddGasSponsorJSON(ctx context.Context, w http.Resp Arg1 string `json:"address"` Arg2 *string `json:"name"` Arg3 *bool `json:"active"` + Arg4 *string `json:"webhookUrl"` + Arg5 *string `json:"webhookAuthToken"` }{} if err := json.Unmarshal(reqBody, &reqPayload); err != nil { s.sendErrorJSON(w, r, ErrWebrpcBadRequest.WithCausef("failed to unmarshal request data: %w", err)) @@ -3066,7 +3145,7 @@ func (s *relayerService) serveAddGasSponsorJSON(ctx context.Context, w http.Resp } // Call service method implementation. - ret0, ret1, err := s.RelayerServer.AddGasSponsor(ctx, reqPayload.Arg0, reqPayload.Arg1, reqPayload.Arg2, reqPayload.Arg3) + ret0, ret1, err := s.RelayerServer.AddGasSponsor(ctx, reqPayload.Arg0, reqPayload.Arg1, reqPayload.Arg2, reqPayload.Arg3, reqPayload.Arg4, reqPayload.Arg5) if err != nil { rpcErr, ok := err.(WebRPCError) if !ok { @@ -3106,6 +3185,8 @@ func (s *relayerService) serveUpdateGasSponsorJSON(ctx context.Context, w http.R Arg1 uint64 `json:"id"` Arg2 *string `json:"name"` Arg3 *bool `json:"active"` + Arg4 *string `json:"webhookUrl"` + Arg5 *string `json:"webhookAuthToken"` }{} if err := json.Unmarshal(reqBody, &reqPayload); err != nil { s.sendErrorJSON(w, r, ErrWebrpcBadRequest.WithCausef("failed to unmarshal request data: %w", err)) @@ -3113,7 +3194,7 @@ func (s *relayerService) serveUpdateGasSponsorJSON(ctx context.Context, w http.R } // Call service method implementation. - ret0, ret1, err := s.RelayerServer.UpdateGasSponsor(ctx, reqPayload.Arg0, reqPayload.Arg1, reqPayload.Arg2, reqPayload.Arg3) + ret0, ret1, err := s.RelayerServer.UpdateGasSponsor(ctx, reqPayload.Arg0, reqPayload.Arg1, reqPayload.Arg2, reqPayload.Arg3, reqPayload.Arg4, reqPayload.Arg5) if err != nil { rpcErr, ok := err.(WebRPCError) if !ok { @@ -3286,6 +3367,8 @@ func (s *relayerService) serveAddEcosystemGasSponsorJSON(ctx context.Context, w Arg1 string `json:"address"` Arg2 *string `json:"name"` Arg3 *bool `json:"active"` + Arg4 *string `json:"webhookUrl"` + Arg5 *string `json:"webhookAuthToken"` }{} if err := json.Unmarshal(reqBody, &reqPayload); err != nil { s.sendErrorJSON(w, r, ErrWebrpcBadRequest.WithCausef("failed to unmarshal request data: %w", err)) @@ -3293,7 +3376,7 @@ func (s *relayerService) serveAddEcosystemGasSponsorJSON(ctx context.Context, w } // Call service method implementation. - ret0, ret1, err := s.RelayerServer.AddEcosystemGasSponsor(ctx, reqPayload.Arg0, reqPayload.Arg1, reqPayload.Arg2, reqPayload.Arg3) + ret0, ret1, err := s.RelayerServer.AddEcosystemGasSponsor(ctx, reqPayload.Arg0, reqPayload.Arg1, reqPayload.Arg2, reqPayload.Arg3, reqPayload.Arg4, reqPayload.Arg5) if err != nil { rpcErr, ok := err.(WebRPCError) if !ok { @@ -3333,6 +3416,8 @@ func (s *relayerService) serveUpdateEcosystemGasSponsorJSON(ctx context.Context, Arg1 uint64 `json:"id"` Arg2 *string `json:"name"` Arg3 *bool `json:"active"` + Arg4 *string `json:"webhookUrl"` + Arg5 *string `json:"webhookAuthToken"` }{} if err := json.Unmarshal(reqBody, &reqPayload); err != nil { s.sendErrorJSON(w, r, ErrWebrpcBadRequest.WithCausef("failed to unmarshal request data: %w", err)) @@ -3340,7 +3425,7 @@ func (s *relayerService) serveUpdateEcosystemGasSponsorJSON(ctx context.Context, } // Call service method implementation. - ret0, ret1, err := s.RelayerServer.UpdateEcosystemGasSponsor(ctx, reqPayload.Arg0, reqPayload.Arg1, reqPayload.Arg2, reqPayload.Arg3) + ret0, ret1, err := s.RelayerServer.UpdateEcosystemGasSponsor(ctx, reqPayload.Arg0, reqPayload.Arg1, reqPayload.Arg2, reqPayload.Arg3, reqPayload.Arg4, reqPayload.Arg5) if err != nil { rpcErr, ok := err.(WebRPCError) if !ok { @@ -3618,6 +3703,11 @@ var methods = map[string]*method{ service: "Relayer", annotations: map[string]string{}, }, + "/rpc/Relayer/GetMetaTxnStatus": { + name: "GetMetaTxnStatus", + service: "Relayer", + annotations: map[string]string{}, + }, "/rpc/Relayer/Simulate": { name: "Simulate", service: "Relayer", @@ -3809,6 +3899,7 @@ var WebRPCServices = map[string][]string{ "SendMetaTxn", "GetMetaTxnNonce", "GetMetaTxnReceipt", + "GetMetaTxnStatus", "Simulate", "SimulateV3", "UpdateMetaTxnGasLimits",