@0xsequence/relayer 2.3.19 → 2.3.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,42 @@
1
+ import { ethers } from 'ethers';
2
+ import { proto } from "./rpc-relayer/index.js";
3
+ import { commons } from '@0xsequence/core';
4
+ export interface Relayer {
5
+ simulate(wallet: string, ...transactions: commons.transaction.Transaction[]): Promise<SimulateResult[]>;
6
+ getFeeOptions(address: string, ...transactions: commons.transaction.Transaction[]): Promise<{
7
+ options: FeeOption[];
8
+ quote?: FeeQuote;
9
+ }>;
10
+ getFeeOptionsRaw(entrypoint: string, data: ethers.BytesLike, options?: {
11
+ simulate?: boolean;
12
+ }): Promise<{
13
+ options: FeeOption[];
14
+ quote?: FeeQuote;
15
+ }>;
16
+ gasRefundOptions(address: string, ...transactions: commons.transaction.Transaction[]): Promise<FeeOption[]>;
17
+ listGasSponsors(args: proto.ListGasSponsorsArgs): Promise<proto.ListGasSponsorsReturn>;
18
+ addGasSponsor(args: proto.AddGasSponsorArgs): Promise<proto.AddGasSponsorReturn>;
19
+ updateGasSponsor(args: proto.UpdateGasSponsorArgs): Promise<proto.UpdateGasSponsorReturn>;
20
+ removeGasSponsor(args: proto.RemoveGasSponsorArgs): Promise<proto.RemoveGasSponsorReturn>;
21
+ getNonce(address: string, space?: ethers.BigNumberish, blockTag?: ethers.BlockTag): Promise<ethers.BigNumberish>;
22
+ relay(signedTxs: commons.transaction.IntendedTransactionBundle, quote?: FeeQuote, waitForReceipt?: boolean, projectAccessKey?: string): Promise<commons.transaction.TransactionResponse>;
23
+ wait(metaTxnId: string | commons.transaction.SignedTransactionBundle, timeout?: number, delay?: number, maxFails?: number): Promise<commons.transaction.TransactionResponse>;
24
+ getMetaTransactions(projectId: number, page?: proto.Page): Promise<{
25
+ page: proto.Page;
26
+ transactions: proto.MetaTxnLog[];
27
+ }>;
28
+ getTransactionCost(projectId: number, from: string, to: string): Promise<{
29
+ cost: number;
30
+ }>;
31
+ }
32
+ export * from "./local-relayer.js";
33
+ export * from "./provider-relayer.js";
34
+ export * from "./rpc-relayer/index.js";
35
+ export { proto as RpcRelayerProto } from "./rpc-relayer/index.js";
36
+ export type SimulateResult = proto.SimulateResult;
37
+ export type FeeOption = proto.FeeOption;
38
+ export interface FeeQuote {
39
+ _tag: 'FeeQuote';
40
+ _quote: unknown;
41
+ }
42
+ export declare function isRelayer(cand: any): cand is Relayer;
@@ -0,0 +1,35 @@
1
+ import { ethers } from 'ethers';
2
+ import { FeeOption, FeeQuote, proto, Relayer } from "./index.js";
3
+ import { ProviderRelayer, ProviderRelayerOptions } from "./provider-relayer.js";
4
+ import { commons } from '@0xsequence/core';
5
+ export type LocalRelayerOptions = Omit<ProviderRelayerOptions, 'provider'> & {
6
+ signer: ethers.Signer;
7
+ };
8
+ export declare function isLocalRelayerOptions(obj: any): obj is LocalRelayerOptions;
9
+ export declare class LocalRelayer extends ProviderRelayer implements Relayer {
10
+ private signer;
11
+ private txnOptions;
12
+ constructor(options: LocalRelayerOptions | ethers.AbstractSigner);
13
+ getFeeOptions(_address: string, ..._transactions: commons.transaction.Transaction[]): Promise<{
14
+ options: FeeOption[];
15
+ }>;
16
+ getFeeOptionsRaw(_entrypoint: string, _data: ethers.BytesLike, _options?: {
17
+ simulate?: boolean;
18
+ }): Promise<{
19
+ options: FeeOption[];
20
+ }>;
21
+ gasRefundOptions(address: string, ...transactions: commons.transaction.Transaction[]): Promise<FeeOption[]>;
22
+ setTransactionOptions(transactionRequest: ethers.TransactionRequest): void;
23
+ relay(signedTxs: commons.transaction.IntendedTransactionBundle, quote?: FeeQuote, waitForReceipt?: boolean): Promise<commons.transaction.TransactionResponse<ethers.TransactionReceipt>>;
24
+ getMetaTransactions(projectId: number, page?: proto.Page): Promise<{
25
+ page: proto.Page;
26
+ transactions: proto.MetaTxnLog[];
27
+ }>;
28
+ getTransactionCost(projectId: number, from: string, to: string): Promise<{
29
+ cost: number;
30
+ }>;
31
+ listGasSponsors(args: proto.ListGasSponsorsArgs): Promise<proto.ListGasSponsorsReturn>;
32
+ addGasSponsor(args: proto.AddGasSponsorArgs): Promise<proto.AddGasSponsorReturn>;
33
+ updateGasSponsor(args: proto.UpdateGasSponsorArgs): Promise<proto.UpdateGasSponsorReturn>;
34
+ removeGasSponsor(args: proto.RemoveGasSponsorArgs): Promise<proto.RemoveGasSponsorReturn>;
35
+ }
@@ -0,0 +1,47 @@
1
+ import { ethers } from 'ethers';
2
+ import { FeeOption, FeeQuote, proto, Relayer, SimulateResult } from "./index.js";
3
+ import { Optionals } from '@0xsequence/utils';
4
+ import { commons } from '@0xsequence/core';
5
+ export interface ProviderRelayerOptions {
6
+ provider: ethers.Provider;
7
+ waitPollRate?: number;
8
+ deltaBlocksLog?: number;
9
+ fromBlockLog?: number;
10
+ }
11
+ export declare const ProviderRelayerDefaults: Required<Optionals<ProviderRelayerOptions>>;
12
+ export declare function isProviderRelayerOptions(obj: any): obj is ProviderRelayerOptions;
13
+ export declare abstract class ProviderRelayer implements Relayer {
14
+ provider: ethers.Provider;
15
+ waitPollRate: number;
16
+ deltaBlocksLog: number;
17
+ fromBlockLog: number;
18
+ constructor(options: ProviderRelayerOptions);
19
+ abstract getFeeOptions(address: string, ...transactions: commons.transaction.Transaction[]): Promise<{
20
+ options: FeeOption[];
21
+ quote?: FeeQuote;
22
+ }>;
23
+ abstract getFeeOptionsRaw(entrypoint: string, data: ethers.BytesLike, options?: {
24
+ simulate?: boolean;
25
+ }): Promise<{
26
+ options: FeeOption[];
27
+ quote?: FeeQuote;
28
+ }>;
29
+ abstract gasRefundOptions(address: string, ...transactions: commons.transaction.Transaction[]): Promise<FeeOption[]>;
30
+ abstract relay(signedTxs: commons.transaction.IntendedTransactionBundle, quote?: FeeQuote, waitForReceipt?: boolean): Promise<commons.transaction.TransactionResponse>;
31
+ abstract getTransactionCost(projectId: number, from: string, to: string): Promise<{
32
+ cost: number;
33
+ }>;
34
+ abstract getMetaTransactions(projectId: number, page?: proto.Page): Promise<{
35
+ page: proto.Page;
36
+ transactions: proto.MetaTxnLog[];
37
+ }>;
38
+ abstract listGasSponsors(args: proto.ListGasSponsorsArgs): Promise<proto.ListGasSponsorsReturn>;
39
+ abstract addGasSponsor(args: proto.AddGasSponsorArgs): Promise<proto.AddGasSponsorReturn>;
40
+ abstract updateGasSponsor(args: proto.UpdateGasSponsorArgs): Promise<proto.UpdateGasSponsorReturn>;
41
+ abstract removeGasSponsor(args: proto.RemoveGasSponsorArgs): Promise<proto.RemoveGasSponsorReturn>;
42
+ simulate(wallet: string, ...transactions: commons.transaction.Transaction[]): Promise<SimulateResult[]>;
43
+ getNonce(address: string, space?: ethers.BigNumberish, blockTag?: ethers.BlockTag): Promise<ethers.BigNumberish>;
44
+ wait(metaTxnId: string | commons.transaction.SignedTransactionBundle, timeoutDuration?: number, delay?: number, maxFails?: number): Promise<ethers.TransactionResponse & {
45
+ receipt: ethers.TransactionReceipt;
46
+ }>;
47
+ }
@@ -0,0 +1,72 @@
1
+ import { ethers } from 'ethers';
2
+ import { FeeOption, FeeQuote, Relayer, SimulateResult } from "../index.js";
3
+ import * as proto from "./relayer.gen.js";
4
+ import { commons } from '@0xsequence/core';
5
+ export { proto };
6
+ export interface RpcRelayerOptions {
7
+ provider: ethers.AbstractProvider | {
8
+ url: string;
9
+ };
10
+ url: string;
11
+ projectAccessKey?: string;
12
+ jwtAuth?: string;
13
+ }
14
+ export declare function isRpcRelayerOptions(obj: any): obj is RpcRelayerOptions;
15
+ export declare class RpcRelayer implements Relayer {
16
+ options: RpcRelayerOptions;
17
+ private readonly service;
18
+ readonly provider: ethers.Provider;
19
+ constructor(options: RpcRelayerOptions);
20
+ _fetch: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
21
+ waitReceipt(metaTxnId: string | commons.transaction.SignedTransactionBundle, delay?: number, maxFails?: number, isCancelled?: () => boolean): Promise<proto.GetMetaTxnReceiptReturn>;
22
+ simulate(wallet: string, ...transactions: commons.transaction.Transaction[]): Promise<SimulateResult[]>;
23
+ getFeeOptions(address: string, ...transactions: commons.transaction.Transaction[]): Promise<{
24
+ options: FeeOption[];
25
+ quote?: FeeQuote;
26
+ }>;
27
+ getFeeOptionsRaw(entrypoint: string, data: ethers.BytesLike, options?: {
28
+ simulate?: boolean;
29
+ projectAccessKey?: string;
30
+ }): Promise<{
31
+ options: FeeOption[];
32
+ quote?: FeeQuote;
33
+ }>;
34
+ gasRefundOptions(address: string, ...transactions: commons.transaction.Transaction[]): Promise<FeeOption[]>;
35
+ getNonce(address: string, space?: ethers.BigNumberish): Promise<ethers.BigNumberish>;
36
+ relay(signedTxs: commons.transaction.IntendedTransactionBundle, quote?: FeeQuote, waitForReceipt?: boolean, projectAccessKey?: string): Promise<commons.transaction.TransactionResponse<RelayerTxReceipt>>;
37
+ wait(metaTxnId: string | commons.transaction.SignedTransactionBundle, timeout?: number, delay?: number, maxFails?: number): Promise<commons.transaction.TransactionResponse<RelayerTxReceipt>>;
38
+ getMetaTransactions(projectId: number, page?: proto.Page): Promise<{
39
+ page: proto.Page;
40
+ transactions: proto.MetaTxnLog[];
41
+ }>;
42
+ getTransactionCost(projectId: number, from: string, to: string): Promise<{
43
+ cost: number;
44
+ }>;
45
+ listGasSponsors(args: proto.ListGasSponsorsArgs): Promise<proto.ListGasSponsorsReturn>;
46
+ addGasSponsor(args: proto.AddGasSponsorArgs): Promise<proto.AddGasSponsorReturn>;
47
+ updateGasSponsor(args: proto.UpdateGasSponsorArgs): Promise<proto.UpdateGasSponsorReturn>;
48
+ removeGasSponsor(args: proto.RemoveGasSponsorArgs): Promise<proto.RemoveGasSponsorReturn>;
49
+ }
50
+ export type RelayerTxReceipt = {
51
+ blockHash: string;
52
+ blockNumber: string;
53
+ contractAddress: string;
54
+ cumulativeGasUsed: string;
55
+ gasUsed: string;
56
+ logs: {
57
+ address: string;
58
+ blockHash: string;
59
+ blockNumber: string;
60
+ data: string;
61
+ logIndex: string;
62
+ removed: boolean;
63
+ topics: string[];
64
+ transactionHash: string;
65
+ transactionIndex: string;
66
+ }[];
67
+ logsBloom: string;
68
+ root: string;
69
+ status: string;
70
+ transactionHash: string;
71
+ transactionIndex: string;
72
+ };