Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 123 additions & 4 deletions packages/services/relayer/src/rpc-relayer/relayer.gen.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
/* eslint-disable */
// sequence-relayer v0.4.1 21533968fc37ec3f4c11628f97ffca4049919dd0
// sequence-relayer v0.4.1 62fe2b49d57c4a0d3960ac1176d48ecfffc7af5a
// --
// Code generated by webrpc-gen@v0.24.0 with typescript generator. DO NOT EDIT.
// Code generated by webrpc-gen@v0.26.0 with typescript generator. DO NOT EDIT.
//
// webrpc-gen -schema=relayer.ridl -target=typescript -client -out=./clients/relayer.gen.ts

export const WebrpcHeader = 'Webrpc'

export const WebrpcHeaderValue = 'webrpc@v0.24.0;gen-typescript@v0.16.3;sequence-relayer@v0.4.1'
export const WebrpcHeaderValue = 'webrpc@v0.26.0;gen-typescript@v0.17.0;sequence-relayer@v0.4.1'

// WebRPC description and code-gen version
export const WebRPCVersion = 'v1'
Expand All @@ -16,7 +16,7 @@ export const WebRPCVersion = 'v1'
export const WebRPCSchemaVersion = 'v0.4.1'

// Schema hash generated from your RIDL schema
export const WebRPCSchemaHash = '21533968fc37ec3f4c11628f97ffca4049919dd0'
export const WebRPCSchemaHash = '62fe2b49d57c4a0d3960ac1176d48ecfffc7af5a'

type WebrpcGenVersions = {
webrpcGenVersion: string
Expand Down Expand Up @@ -90,6 +90,15 @@ export enum TransferType {
UNKNOWN = 'UNKNOWN',
}

export enum SimulateStatus {
SKIPPED = 'SKIPPED',
SUCCEEDED = 'SUCCEEDED',
FAILED = 'FAILED',
ABORTED = 'ABORTED',
REVERTED = 'REVERTED',
NOT_ENOUGH_GAS = 'NOT_ENOUGH_GAS',
}

export enum FeeTokenType {
UNKNOWN = 'UNKNOWN',
ERC20_TOKEN = 'ERC20_TOKEN',
Expand Down Expand Up @@ -230,6 +239,8 @@ export interface MetaTxnReceipt {
index: number
logs: Array<MetaTxnReceiptLog>
receipts: Array<MetaTxnReceipt>
blockNumber: string
txnHash: string
txnReceipt: string
}

Expand Down Expand Up @@ -291,6 +302,14 @@ export interface SimulateResult {
gasLimit: number
}

export interface SimulateV3Result {
status: SimulateStatus
result?: string
error?: string
gasUsed: number
gasLimit: number
}

export interface FeeOption {
token: FeeToken
to: string
Expand Down Expand Up @@ -331,21 +350,44 @@ export interface Relayer {
runtimeStatus(headers?: object, signal?: AbortSignal): Promise<RuntimeStatusReturn>
getSequenceContext(headers?: object, signal?: AbortSignal): Promise<GetSequenceContextReturn>
getChainID(headers?: object, signal?: AbortSignal): Promise<GetChainIDReturn>
/**
*
* Transactions
*
* TODO (future): rename this to just, 'SendTransaction(txn: MetaTransaction)' or 'SendTransaction(txn: SignedTransaction)', or something..
* Project ID is only used by service and admin calls. Other clients must have projectID passed via the context
* TODO: rename return txnHash: string to metaTxnID: string
*/
sendMetaTxn(args: SendMetaTxnArgs, headers?: object, signal?: AbortSignal): Promise<SendMetaTxnReturn>
getMetaTxnNonce(args: GetMetaTxnNonceArgs, headers?: object, signal?: AbortSignal): Promise<GetMetaTxnNonceReturn>
/**
* 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(
args: GetMetaTxnReceiptArgs,
headers?: object,
signal?: AbortSignal,
): Promise<GetMetaTxnReceiptReturn>
simulate(args: SimulateArgs, headers?: object, signal?: AbortSignal): Promise<SimulateReturn>
simulateV3(args: SimulateV3Args, headers?: object, signal?: AbortSignal): Promise<SimulateV3Return>
/**
* TODO: deprecated, to be removed by https://github.com/0xsequence/stack/pull/356 at a later date
*/
updateMetaTxnGasLimits(
args: UpdateMetaTxnGasLimitsArgs,
headers?: object,
signal?: AbortSignal,
): Promise<UpdateMetaTxnGasLimitsReturn>
feeTokens(headers?: object, signal?: AbortSignal): Promise<FeeTokensReturn>
feeOptions(args: FeeOptionsArgs, headers?: object, signal?: AbortSignal): Promise<FeeOptionsReturn>
/**
* TODO: deprecated, to be removed by https://github.com/0xsequence/stack/pull/356 at a later date
*/
getMetaTxnNetworkFeeOptions(
args: GetMetaTxnNetworkFeeOptionsArgs,
headers?: object,
Expand All @@ -361,15 +403,28 @@ export interface Relayer {
headers?: object,
signal?: AbortSignal,
): Promise<GetTransactionCostReturn>
/**
* Sent transactions from an account. If filter is omitted then it will return all transactions.
*/
sentTransactions(args: SentTransactionsArgs, headers?: object, signal?: AbortSignal): Promise<SentTransactionsReturn>
/**
* Pending transactions waiting to be mined for an account. This endpoint is just a sugar of `SentTransactions`
* with the filter set to pending: true.
*/
pendingTransactions(
args: PendingTransactionsArgs,
headers?: object,
signal?: AbortSignal,
): Promise<PendingTransactionsReturn>
/**
* Legacy Gas Tank
*/
getGasTank(args: GetGasTankArgs, headers?: object, signal?: AbortSignal): Promise<GetGasTankReturn>
addGasTank(args: AddGasTankArgs, headers?: object, signal?: AbortSignal): Promise<AddGasTankReturn>
updateGasTank(args: UpdateGasTankArgs, headers?: object, signal?: AbortSignal): Promise<UpdateGasTankReturn>
/**
* Legacy Gas Adjustment
*/
nextGasTankBalanceAdjustmentNonce(
args: NextGasTankBalanceAdjustmentNonceArgs,
headers?: object,
Expand All @@ -390,16 +445,25 @@ export interface Relayer {
headers?: object,
signal?: AbortSignal,
): Promise<ListGasTankBalanceAdjustmentsReturn>
/**
* Gas Sponsorship
*/
listGasSponsors(args: ListGasSponsorsArgs, headers?: object, signal?: AbortSignal): Promise<ListGasSponsorsReturn>
getGasSponsor(args: GetGasSponsorArgs, headers?: object, signal?: AbortSignal): Promise<GetGasSponsorReturn>
addGasSponsor(args: AddGasSponsorArgs, headers?: object, signal?: AbortSignal): Promise<AddGasSponsorReturn>
updateGasSponsor(args: UpdateGasSponsorArgs, headers?: object, signal?: AbortSignal): Promise<UpdateGasSponsorReturn>
removeGasSponsor(args: RemoveGasSponsorArgs, headers?: object, signal?: AbortSignal): Promise<RemoveGasSponsorReturn>
/**
* Gas Sponsor Lookup
*/
addressGasSponsors(
args: AddressGasSponsorsArgs,
headers?: object,
signal?: AbortSignal,
): Promise<AddressGasSponsorsReturn>
/**
* Project Balance
*/
getProjectBalance(
args: GetProjectBalanceArgs,
headers?: object,
Expand Down Expand Up @@ -471,6 +535,14 @@ export interface SimulateArgs {
export interface SimulateReturn {
results: Array<SimulateResult>
}
export interface SimulateV3Args {
wallet: string
calls: string
}

export interface SimulateV3Return {
results: Array<SimulateV3Result>
}
export interface UpdateMetaTxnGasLimitsArgs {
walletAddress: string
walletConfig: any
Expand Down Expand Up @@ -837,6 +909,21 @@ export class Relayer implements Relayer {
)
}

simulateV3 = (args: SimulateV3Args, headers?: object, signal?: AbortSignal): Promise<SimulateV3Return> => {
return this.fetch(this.url('SimulateV3'), createHTTPRequest(args, headers, signal)).then(
(res) => {
return buildResponse(res).then((_data) => {
return {
results: <Array<SimulateV3Result>>_data.results,
}
})
},
(error) => {
throw WebrpcRequestFailedError.new({ cause: `fetch(): ${error.message || ''}` })
},
)
}

updateMetaTxnGasLimits = (
args: UpdateMetaTxnGasLimitsArgs,
headers?: object,
Expand Down Expand Up @@ -1798,6 +1885,32 @@ export class InsufficientFeeError extends WebrpcError {
}
}

export class NotEnoughBalanceError extends WebrpcError {
constructor(
name: string = 'NotEnoughBalance',
code: number = 3005,
message: string = `Not enough balance`,
status: number = 0,
cause?: string,
) {
super(name, code, message, status, cause)
Object.setPrototypeOf(this, NotEnoughBalanceError.prototype)
}
}

export class SimulationFailedError extends WebrpcError {
constructor(
name: string = 'SimulationFailed',
code: number = 3006,
message: string = `Simulation failed`,
status: number = 0,
cause?: string,
) {
super(name, code, message, status, cause)
Object.setPrototypeOf(this, SimulationFailedError.prototype)
}
}

export enum errors {
WebrpcEndpoint = 'WebrpcEndpoint',
WebrpcRequestFailed = 'WebrpcRequestFailed',
Expand Down Expand Up @@ -1835,6 +1948,8 @@ export enum errors {
QueryFailed = 'QueryFailed',
NotFound = 'NotFound',
InsufficientFee = 'InsufficientFee',
NotEnoughBalance = 'NotEnoughBalance',
SimulationFailed = 'SimulationFailed',
}

export enum WebrpcErrorCodes {
Expand Down Expand Up @@ -1874,6 +1989,8 @@ export enum WebrpcErrorCodes {
QueryFailed = 2003,
NotFound = 3000,
InsufficientFee = 3004,
NotEnoughBalance = 3005,
SimulationFailed = 3006,
}

export const webrpcErrorByCode: { [code: number]: any } = {
Expand Down Expand Up @@ -1913,6 +2030,8 @@ export const webrpcErrorByCode: { [code: number]: any } = {
[2003]: QueryFailedError,
[3000]: NotFoundError,
[3004]: InsufficientFeeError,
[3005]: NotEnoughBalanceError,
[3006]: SimulationFailedError,
}

export type Fetch = (input: RequestInfo, init?: RequestInit) => Promise<Response>
Loading