viem 3.0.0-next.12 → 3.0.0-next.13
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.
- package/dist/chains/definitions/creditCoin3Devnet.d.ts +6 -0
- package/dist/chains/definitions/creditCoin3Devnet.d.ts.map +1 -1
- package/dist/chains/definitions/creditCoin3Devnet.js +6 -0
- package/dist/chains/definitions/creditCoin3Devnet.js.map +1 -1
- package/dist/chains/definitions/creditCoin3Mainnet.d.ts +5 -1
- package/dist/chains/definitions/creditCoin3Mainnet.d.ts.map +1 -1
- package/dist/chains/definitions/creditCoin3Mainnet.js +4 -0
- package/dist/chains/definitions/creditCoin3Mainnet.js.map +1 -1
- package/dist/chains/definitions/creditCoin3Testnet.d.ts +5 -1
- package/dist/chains/definitions/creditCoin3Testnet.d.ts.map +1 -1
- package/dist/chains/definitions/creditCoin3Testnet.js +4 -0
- package/dist/chains/definitions/creditCoin3Testnet.js.map +1 -1
- package/dist/chains/definitions/crymad.d.ts +25 -0
- package/dist/chains/definitions/crymad.d.ts.map +1 -0
- package/dist/chains/definitions/crymad.js +23 -0
- package/dist/chains/definitions/crymad.js.map +1 -0
- package/dist/chains/definitions/crymadL2.d.ts +26 -0
- package/dist/chains/definitions/crymadL2.d.ts.map +1 -0
- package/dist/chains/definitions/crymadL2.js +24 -0
- package/dist/chains/definitions/crymadL2.js.map +1 -0
- package/dist/chains/definitions/kortana.d.ts +18 -0
- package/dist/chains/definitions/kortana.d.ts.map +1 -0
- package/dist/chains/definitions/kortana.js +16 -0
- package/dist/chains/definitions/kortana.js.map +1 -0
- package/dist/chains/index.d.ts +3 -0
- package/dist/chains/index.d.ts.map +1 -1
- package/dist/chains/index.js +3 -0
- package/dist/chains/index.js.map +1 -1
- package/dist/core/actions/wallet/sendCalls.d.ts.map +1 -1
- package/dist/core/actions/wallet/sendCalls.js +1 -0
- package/dist/core/actions/wallet/sendCalls.js.map +1 -1
- package/dist/erc4337/actions/userOperation/waitForReceipt.js +1 -1
- package/dist/erc4337/actions/userOperation/waitForReceipt.js.map +1 -1
- package/dist/node/transports/ipc.d.ts.map +1 -1
- package/dist/node/transports/ipc.js +20 -2
- package/dist/node/transports/ipc.js.map +1 -1
- package/dist/tempo/Abis.d.ts +778 -174
- package/dist/tempo/Abis.d.ts.map +1 -1
- package/dist/tempo/Abis.js +178 -37
- package/dist/tempo/Abis.js.map +1 -1
- package/dist/tempo/Capabilities.d.ts +7 -13
- package/dist/tempo/Capabilities.d.ts.map +1 -1
- package/dist/tempo/Client.d.ts +0 -5
- package/dist/tempo/Client.d.ts.map +1 -1
- package/dist/tempo/Client.js +3 -10
- package/dist/tempo/Client.js.map +1 -1
- package/dist/tempo/ExecutionError.d.ts +81 -0
- package/dist/tempo/ExecutionError.d.ts.map +1 -0
- package/dist/tempo/ExecutionError.js +309 -0
- package/dist/tempo/ExecutionError.js.map +1 -0
- package/dist/tempo/Relay.d.ts +303 -0
- package/dist/tempo/Relay.d.ts.map +1 -0
- package/dist/tempo/Relay.js +170 -0
- package/dist/tempo/Relay.js.map +1 -0
- package/dist/tempo/Selectors.d.ts +16 -5
- package/dist/tempo/Selectors.d.ts.map +1 -1
- package/dist/tempo/Selectors.js +16 -5
- package/dist/tempo/Selectors.js.map +1 -1
- package/dist/tempo/Transport.d.ts +11 -11
- package/dist/tempo/Transport.d.ts.map +1 -1
- package/dist/tempo/Transport.js +22 -51
- package/dist/tempo/Transport.js.map +1 -1
- package/dist/tempo/actions/token/burn.d.ts +38 -9
- package/dist/tempo/actions/token/burn.d.ts.map +1 -1
- package/dist/tempo/actions/token/burn.js +12 -5
- package/dist/tempo/actions/token/burn.js.map +1 -1
- package/dist/tempo/actions/token/burnSync.d.ts +2 -0
- package/dist/tempo/actions/token/burnSync.d.ts.map +1 -1
- package/dist/tempo/chainConfig.d.ts +4 -5
- package/dist/tempo/chainConfig.d.ts.map +1 -1
- package/dist/tempo/chainConfig.js +6 -1
- package/dist/tempo/chainConfig.js.map +1 -1
- package/dist/tempo/index.d.ts +5 -3
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +5 -3
- package/dist/tempo/index.js.map +1 -1
- package/dist/tempo/internal/relay/cache.d.ts +9 -0
- package/dist/tempo/internal/relay/cache.d.ts.map +1 -0
- package/dist/tempo/internal/relay/cache.js +72 -0
- package/dist/tempo/internal/relay/cache.js.map +1 -0
- package/dist/tempo/internal/relay/deadline.d.ts +4 -0
- package/dist/tempo/internal/relay/deadline.d.ts.map +1 -0
- package/dist/tempo/internal/relay/deadline.js +34 -0
- package/dist/tempo/internal/relay/deadline.js.map +1 -0
- package/dist/tempo/internal/relay/error.d.ts +47 -0
- package/dist/tempo/internal/relay/error.d.ts.map +1 -0
- package/dist/tempo/internal/relay/error.js +101 -0
- package/dist/tempo/internal/relay/error.js.map +1 -0
- package/dist/tempo/internal/relay/feePayer.d.ts +70 -0
- package/dist/tempo/internal/relay/feePayer.d.ts.map +1 -0
- package/dist/tempo/internal/relay/feePayer.js +442 -0
- package/dist/tempo/internal/relay/feePayer.js.map +1 -0
- package/dist/tempo/internal/relay/feeToken.d.ts +38 -0
- package/dist/tempo/internal/relay/feeToken.d.ts.map +1 -0
- package/dist/tempo/internal/relay/feeToken.js +143 -0
- package/dist/tempo/internal/relay/feeToken.js.map +1 -0
- package/dist/tempo/internal/relay/multisig.d.ts +4 -0
- package/dist/tempo/internal/relay/multisig.d.ts.map +1 -0
- package/dist/tempo/{Multisig.js → internal/relay/multisig.js} +134 -126
- package/dist/tempo/internal/relay/multisig.js.map +1 -0
- package/dist/tempo/internal/relay/plugin.d.ts +5 -0
- package/dist/tempo/internal/relay/plugin.d.ts.map +1 -0
- package/dist/tempo/internal/relay/plugin.js +10 -0
- package/dist/tempo/internal/relay/plugin.js.map +1 -0
- package/dist/tempo/internal/relay/preflight.d.ts +17 -0
- package/dist/tempo/internal/relay/preflight.d.ts.map +1 -0
- package/dist/tempo/internal/relay/preflight.js +53 -0
- package/dist/tempo/internal/relay/preflight.js.map +1 -0
- package/dist/tempo/internal/relay/request.d.ts +16 -0
- package/dist/tempo/internal/relay/request.d.ts.map +1 -0
- package/dist/tempo/internal/relay/request.js +327 -0
- package/dist/tempo/internal/relay/request.js.map +1 -0
- package/dist/tempo/internal/relay/simulate.d.ts +62 -0
- package/dist/tempo/internal/relay/simulate.d.ts.map +1 -0
- package/dist/tempo/internal/relay/simulate.js +284 -0
- package/dist/tempo/internal/relay/simulate.js.map +1 -0
- package/dist/tempo/internal/relay/utils.d.ts +346 -0
- package/dist/tempo/internal/relay/utils.d.ts.map +1 -0
- package/dist/tempo/internal/relay/utils.js +185 -0
- package/dist/tempo/internal/relay/utils.js.map +1 -0
- package/dist/tempo/internal/relay/virtualAddress.d.ts +9 -0
- package/dist/tempo/internal/relay/virtualAddress.d.ts.map +1 -0
- package/dist/tempo/internal/relay/virtualAddress.js +73 -0
- package/dist/tempo/internal/relay/virtualAddress.js.map +1 -0
- package/dist/tempo/internal/relay.d.ts +4 -0
- package/dist/tempo/internal/relay.d.ts.map +1 -0
- package/dist/tempo/internal/relay.js +132 -0
- package/dist/tempo/internal/relay.js.map +1 -0
- package/dist/tokens/definitions/ousd.d.ts +26 -0
- package/dist/tokens/definitions/ousd.d.ts.map +1 -0
- package/dist/tokens/definitions/ousd.js +26 -0
- package/dist/tokens/definitions/ousd.js.map +1 -0
- package/dist/tokens/index.d.ts +2 -0
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +2 -0
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/sets.d.ts +33 -0
- package/dist/tokens/sets.d.ts.map +1 -1
- package/dist/tokens/sets.js +4 -1
- package/dist/tokens/sets.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/chains/definitions/creditCoin3Devnet.ts +6 -0
- package/src/chains/definitions/creditCoin3Mainnet.ts +4 -0
- package/src/chains/definitions/creditCoin3Testnet.ts +4 -0
- package/src/chains/definitions/crymad.ts +23 -0
- package/src/chains/definitions/crymadL2.ts +24 -0
- package/src/chains/definitions/kortana.ts +16 -0
- package/src/chains/index.ts +3 -0
- package/src/core/actions/wallet/sendCalls.ts +1 -0
- package/src/erc4337/actions/userOperation/waitForReceipt.ts +1 -1
- package/src/node/transports/ipc.ts +17 -2
- package/src/tempo/Abis.ts +179 -37
- package/src/tempo/Account.ts +1 -1
- package/src/tempo/Capabilities.ts +7 -15
- package/src/tempo/Client.ts +3 -23
- package/src/tempo/ExecutionError.ts +428 -0
- package/src/tempo/Relay.ts +430 -0
- package/src/tempo/Selectors.ts +25 -11
- package/src/tempo/Transport.ts +71 -41
- package/src/tempo/actions/token/burn.ts +21 -9
- package/src/tempo/actions/token/burnSync.ts +2 -0
- package/src/tempo/chainConfig.ts +9 -6
- package/src/tempo/index.ts +7 -4
- package/src/tempo/internal/relay/cache.ts +82 -0
- package/src/tempo/internal/relay/deadline.ts +45 -0
- package/src/tempo/internal/relay/error.ts +129 -0
- package/src/tempo/internal/relay/feePayer.ts +693 -0
- package/src/tempo/internal/relay/feeToken.ts +190 -0
- package/src/tempo/{Multisig.ts → internal/relay/multisig.ts} +165 -193
- package/src/tempo/internal/relay/plugin.ts +13 -0
- package/src/tempo/internal/relay/preflight.ts +83 -0
- package/src/tempo/internal/relay/request.ts +401 -0
- package/src/tempo/internal/relay/simulate.ts +394 -0
- package/src/tempo/internal/relay/utils.ts +213 -0
- package/src/tempo/internal/relay/virtualAddress.ts +95 -0
- package/src/tempo/internal/relay.ts +149 -0
- package/src/tokens/definitions/ousd.ts +26 -0
- package/src/tokens/index.ts +2 -0
- package/src/tokens/sets.ts +4 -1
- package/src/version.ts +1 -1
- package/dist/tempo/Multisig.d.ts +0 -39
- package/dist/tempo/Multisig.d.ts.map +0 -1
- package/dist/tempo/Multisig.js.map +0 -1
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
import type { Address } from 'abitype';
|
|
2
|
+
import type { Local as LocalAccount } from '../core/Account.js';
|
|
3
|
+
import type { Client as Client_ } from '../core/Client.js';
|
|
4
|
+
import type * as Transport from '../core/Transport.js';
|
|
5
|
+
import * as Sponsorship from './internal/relay/feePayer.js';
|
|
6
|
+
import type * as Store from './Store.js';
|
|
7
|
+
type EIP1193RequestOptions = NonNullable<Parameters<Transport.RequestFn>[1]>;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a relay with RPC and Fetch handlers backed by a client or chain resolver.
|
|
10
|
+
*
|
|
11
|
+
* Pass a chain-configured `client` for a single chain, or `getClient` for multiple
|
|
12
|
+
* chains. Plugins may resolve the chain before forwarding to the selected client.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { Client, http } from 'viem'
|
|
17
|
+
* import { tempo } from 'viem/chains'
|
|
18
|
+
* import { Relay } from 'viem/tempo'
|
|
19
|
+
*
|
|
20
|
+
* const relay = Relay.create({
|
|
21
|
+
* client: Client.create({ chain: tempo, transport: http() }),
|
|
22
|
+
* })
|
|
23
|
+
* export default { fetch: relay.fetch }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @param options - Client selection and relay plugins.
|
|
27
|
+
* @returns RPC and Fetch handlers sharing the same plugins.
|
|
28
|
+
*/
|
|
29
|
+
export declare function create<const chainId extends number>(options: handleRequest.Options & {
|
|
30
|
+
client: Client & {
|
|
31
|
+
chain: {
|
|
32
|
+
id: chainId;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
getClient?: never;
|
|
36
|
+
}): create.ReturnType<chainId>;
|
|
37
|
+
export declare function create<const chainId extends number = number>(options: handleRequest.Options & {
|
|
38
|
+
client?: never;
|
|
39
|
+
getClient: (options: {
|
|
40
|
+
chainId: chainId;
|
|
41
|
+
}) => Client;
|
|
42
|
+
}): create.ReturnType<chainId>;
|
|
43
|
+
export declare function create<getClient extends (options: never) => Client>(options: handleRequest.Options & {
|
|
44
|
+
client?: never;
|
|
45
|
+
getClient: getClient;
|
|
46
|
+
}): create.ReturnType<Parameters<getClient>[0] extends {
|
|
47
|
+
chainId: infer chainId extends number;
|
|
48
|
+
} ? chainId : number>;
|
|
49
|
+
export declare namespace create {
|
|
50
|
+
/** Client selection and middleware for a relay. */
|
|
51
|
+
type Options<chainId extends number = number> = handleRequest.Options & ({
|
|
52
|
+
/** Chain-configured client used for every forwarded request. */
|
|
53
|
+
client: Client & {
|
|
54
|
+
chain: {
|
|
55
|
+
id: chainId;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
getClient?: never;
|
|
59
|
+
} | {
|
|
60
|
+
client?: never;
|
|
61
|
+
/** Resolves the client after plugins have selected the request's chain. */
|
|
62
|
+
getClient: (options: {
|
|
63
|
+
chainId: chainId;
|
|
64
|
+
}) => Client & {
|
|
65
|
+
chain: {
|
|
66
|
+
id: number;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
/** Optional chain selection and RPC request options. */
|
|
71
|
+
type RequestOptions<chainId extends number = number> = Omit<handleRequest.RequestOptions, 'chainId'> & {
|
|
72
|
+
chainId?: chainId | undefined;
|
|
73
|
+
};
|
|
74
|
+
/** Handlers sharing one composed relay pipeline. */
|
|
75
|
+
type ReturnType<chainId extends number = number> = {
|
|
76
|
+
/** Handles a POST JSON-RPC request, returning JSON or an empty 204 for notifications. */
|
|
77
|
+
fetch: {
|
|
78
|
+
(request: Request): Promise<Response>;
|
|
79
|
+
(request: Request, options?: RequestOptions<chainId> | undefined): Promise<Response>;
|
|
80
|
+
};
|
|
81
|
+
/** Handles a parsed RPC call and returns its result. */
|
|
82
|
+
request: (request: handleRequest.Request, options?: RequestOptions<chainId> | undefined) => Promise<unknown>;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Creates an RPC request handler by composing relay plugins around a downstream handler.
|
|
87
|
+
*
|
|
88
|
+
* Requests enter plugins in array order, and responses return in reverse order.
|
|
89
|
+
* Post-fill hooks run concurrently after middleware finishes. Middleware sees
|
|
90
|
+
* the downstream result before post-fill enrichment and signing.
|
|
91
|
+
* Without plugins, the downstream handler is returned unchanged. Plugins decide
|
|
92
|
+
* whether to forward, transform, or handle a request. Errors propagate unchanged
|
|
93
|
+
* unless a plugin handles them.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts
|
|
97
|
+
* import { http } from 'viem'
|
|
98
|
+
* import { Relay } from 'viem/tempo'
|
|
99
|
+
*
|
|
100
|
+
* const rpc = http('https://rpc.tempo.xyz').setup()
|
|
101
|
+
* const handle = Relay.handleRequest(rpc.request, {
|
|
102
|
+
* plugins: [
|
|
103
|
+
* {
|
|
104
|
+
* async handleRequest(context, next) {
|
|
105
|
+
* context.options.retryCount = 0
|
|
106
|
+
* await next()
|
|
107
|
+
* },
|
|
108
|
+
* },
|
|
109
|
+
* ],
|
|
110
|
+
* })
|
|
111
|
+
* const chainId = await handle({ method: 'eth_chainId' })
|
|
112
|
+
* // @log: '0x1079'
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* @param next - Downstream RPC request handler, typically forwarding to the Tempo (Execution) RPC.
|
|
116
|
+
* @param options - Relay options.
|
|
117
|
+
* @returns The composed RPC request handler.
|
|
118
|
+
*/
|
|
119
|
+
export declare function handleRequest(next: handleRequest.Handler, options?: handleRequest.Options): handleRequest.Handler;
|
|
120
|
+
export declare namespace handleRequest {
|
|
121
|
+
/** RPC request handler shared by relay plugins and the downstream execution RPC. */
|
|
122
|
+
type Handler = (request: Request, options?: RequestOptions | undefined) => Promise<unknown>;
|
|
123
|
+
/** Options for {@link handleRequest}. */
|
|
124
|
+
type Options = {
|
|
125
|
+
/** Plugins in request execution order. Defaults to an empty list. */
|
|
126
|
+
plugins?: readonly Plugin[] | undefined;
|
|
127
|
+
/** Fee-token candidates shared by all plugins, memoized per request and chain. */
|
|
128
|
+
resolveTokens?: ((chainId: number) => readonly Address[] | Promise<readonly Address[]>) | undefined;
|
|
129
|
+
/** Deadline in milliseconds for a plugin-handled fill, including callbacks. Defaults to 10,000. */
|
|
130
|
+
timeout?: number | undefined;
|
|
131
|
+
};
|
|
132
|
+
/** RPC request passed to a handler. */
|
|
133
|
+
type Request = {
|
|
134
|
+
/** RPC method name. */
|
|
135
|
+
method: string;
|
|
136
|
+
/** RPC method parameters. */
|
|
137
|
+
params?: readonly unknown[] | undefined;
|
|
138
|
+
};
|
|
139
|
+
/** Options for one handled request. */
|
|
140
|
+
type RequestOptions = EIP1193RequestOptions & {
|
|
141
|
+
/** Chain selected by the caller or resolved by a plugin. */
|
|
142
|
+
chainId?: number | undefined;
|
|
143
|
+
/** Response metadata collected by the Fetch adapter. */
|
|
144
|
+
response?: {
|
|
145
|
+
sponsorship_details?: Sponsorship.SponsorshipDetails | undefined;
|
|
146
|
+
} | undefined;
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/** Hooks extending relay request processing and filled transaction responses. */
|
|
150
|
+
export type Plugin = {
|
|
151
|
+
/** Processes an RPC request. Await next(), then read or replace context.result. */
|
|
152
|
+
handleRequest?: ((context: Plugin.Context, next: () => Promise<void>) => Promise<unknown>) | undefined;
|
|
153
|
+
/** Runs concurrently after the final fill. Returns capability fields to merge. */
|
|
154
|
+
afterFill?: ((filled: Plugin.FillResult, context: Plugin.Context) => Promise<Plugin.Enrichment | undefined>) | undefined;
|
|
155
|
+
/** Signs the final fill concurrently with enrichment. Only one signer may be registered. */
|
|
156
|
+
signTransaction?: ((filled: Plugin.FillResult, context: Plugin.Context) => Promise<Plugin.Signature | undefined>) | undefined;
|
|
157
|
+
};
|
|
158
|
+
export declare namespace Plugin {
|
|
159
|
+
/** State and services isolated to one RPC invocation. */
|
|
160
|
+
type Context = {
|
|
161
|
+
/** Current RPC request. Changes are passed to next(). */
|
|
162
|
+
request: handleRequest.Request;
|
|
163
|
+
/** Downstream result, populated by next(). */
|
|
164
|
+
result: unknown;
|
|
165
|
+
/** Transport options and selected chain. */
|
|
166
|
+
options: handleRequest.RequestOptions;
|
|
167
|
+
/** Downstream client for the selected chain. */
|
|
168
|
+
readonly client: Client_;
|
|
169
|
+
/** Gets a downstream client for the selected or specified chain. */
|
|
170
|
+
getClient: (chainId?: number) => Client_;
|
|
171
|
+
/** Gets the shared token candidates for the selected or specified chain. */
|
|
172
|
+
resolveTokens: (chainId?: number) => Promise<readonly Address[]>;
|
|
173
|
+
/** Scopes a configured store to this invocation. */
|
|
174
|
+
getStore: (store: Store.Store | undefined) => Store.Store | undefined;
|
|
175
|
+
};
|
|
176
|
+
/** Immutable RPC fill supplied to post-fill hooks. */
|
|
177
|
+
type FillResult = {
|
|
178
|
+
readonly tx: Readonly<Record<string, unknown>>;
|
|
179
|
+
readonly capabilities?: Readonly<Record<string, unknown>> | undefined;
|
|
180
|
+
readonly sponsor?: unknown;
|
|
181
|
+
};
|
|
182
|
+
/** Additional response capabilities. Duplicate keys from hooks are rejected. */
|
|
183
|
+
type Enrichment = {
|
|
184
|
+
capabilities?: Record<string, unknown> | undefined;
|
|
185
|
+
};
|
|
186
|
+
/** Fee-payer signature in RPC format. */
|
|
187
|
+
type Signature = {
|
|
188
|
+
r: `0x${string}`;
|
|
189
|
+
s: `0x${string}`;
|
|
190
|
+
yParity: `0x${string}`;
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
declare const multisigBrand: unique symbol;
|
|
194
|
+
/**
|
|
195
|
+
* Coordinates native multisig approvals using shared atomic storage.
|
|
196
|
+
*
|
|
197
|
+
* Memory storage is process-local. Independent clients and multiple server
|
|
198
|
+
* instances must use the same persistent store to share pending approvals.
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```ts
|
|
202
|
+
* import { http } from 'viem'
|
|
203
|
+
* import { Relay, Store, withRelay } from 'viem/tempo'
|
|
204
|
+
*
|
|
205
|
+
* const transport = withRelay(http(), {
|
|
206
|
+
* plugins: [Relay.multisig({ store: Store.memory() })],
|
|
207
|
+
* })
|
|
208
|
+
* ```
|
|
209
|
+
*
|
|
210
|
+
* @param options - Shared atomic storage.
|
|
211
|
+
* @returns A plugin that coordinates multisig requests and forwards other calls.
|
|
212
|
+
*/
|
|
213
|
+
export declare function multisig(options: multisig.Options): multisig.ReturnType;
|
|
214
|
+
export declare namespace multisig {
|
|
215
|
+
/** Multisig coordination options. */
|
|
216
|
+
type Options = {
|
|
217
|
+
/** Store shared by multisig coordinators, with atomic compare-and-set support. */
|
|
218
|
+
store: Store.Atomic;
|
|
219
|
+
};
|
|
220
|
+
/** Middleware advertising native multisig coordination. */
|
|
221
|
+
type ReturnType = Plugin & {
|
|
222
|
+
readonly [multisigBrand]: true;
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Sponsors transactions with a local account or an external fee-payer relay.
|
|
227
|
+
*
|
|
228
|
+
* Place multisig before this plugin and fee-token selection after it.
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```ts
|
|
232
|
+
* import { Account } from 'viem'
|
|
233
|
+
* import { Relay } from 'viem/tempo'
|
|
234
|
+
* const plugin = Relay.feePayer({ account: Account.fromPrivateKey('0x...') })
|
|
235
|
+
* ```
|
|
236
|
+
* @param options - Sponsor account, policy, and display metadata.
|
|
237
|
+
* @returns A fee-payer relay plugin.
|
|
238
|
+
*/
|
|
239
|
+
export declare function feePayer(options?: feePayer.Options): Plugin;
|
|
240
|
+
export declare namespace feePayer {
|
|
241
|
+
/** Fee sponsorship configuration. */
|
|
242
|
+
type Options = {
|
|
243
|
+
/** Local sponsor. Omit when requests use an external fee-payer URL. */
|
|
244
|
+
account?: LocalAccount | undefined;
|
|
245
|
+
/** Trusted external fee-payer URLs. Matches the normalized full URL, including path and query. Defaults to none. */
|
|
246
|
+
allowedFeePayers?: readonly string[] | undefined;
|
|
247
|
+
/** Sponsor's preferred fee token. Overrides the request token on sponsored fills. */
|
|
248
|
+
feeToken?: Address | undefined;
|
|
249
|
+
/** Allow HTTP and private external relay hosts in trusted development environments. @default false */
|
|
250
|
+
internal_allowUnsafeUrls?: boolean | undefined;
|
|
251
|
+
/** Display name returned in sponsor capabilities. */
|
|
252
|
+
name?: string | undefined;
|
|
253
|
+
/** Called after signing and before returning or broadcasting. A thrown error aborts sponsorship. */
|
|
254
|
+
onSponsored?: Sponsorship.sign.Options['onSponsored'] | undefined;
|
|
255
|
+
/** Sponsor display URL. */
|
|
256
|
+
url?: string | undefined;
|
|
257
|
+
/** Only `true` authorizes sponsorship. Rejected fills fall back to sender-paid transactions. */
|
|
258
|
+
validate?: Sponsorship.Validate | undefined;
|
|
259
|
+
};
|
|
260
|
+
/** Result of a sponsorship policy check. */
|
|
261
|
+
type Validation = Sponsorship.Validation;
|
|
262
|
+
/** Facts passed to the sponsorship callback. */
|
|
263
|
+
type SponsoredEvent = Sponsorship.SponsoredEvent;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Resolves fee tokens from user preferences, balances, and available fee AMM liquidity.
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* ```ts
|
|
270
|
+
* import { Relay } from 'viem/tempo'
|
|
271
|
+
* const plugin = Relay.feeToken()
|
|
272
|
+
* ```
|
|
273
|
+
* @returns A fee-token relay plugin.
|
|
274
|
+
*/
|
|
275
|
+
export declare function feeToken(): Plugin;
|
|
276
|
+
/**
|
|
277
|
+
* Adds balance changes, estimated fees, and execution errors to fill capabilities.
|
|
278
|
+
*
|
|
279
|
+
* Runs after transaction middleware to simulate the final filled result.
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```ts
|
|
283
|
+
* import { Relay } from 'viem/tempo'
|
|
284
|
+
* const plugin = Relay.simulate()
|
|
285
|
+
* ```
|
|
286
|
+
* @param options - Optional metadata store.
|
|
287
|
+
* @returns A simulation relay plugin.
|
|
288
|
+
*/
|
|
289
|
+
export declare function simulate(options?: simulate.Options): Plugin;
|
|
290
|
+
export declare namespace simulate {
|
|
291
|
+
/** Simulation configuration. */
|
|
292
|
+
type Options = {
|
|
293
|
+
/** Store for cached metadata. Omit to read metadata for each request. */
|
|
294
|
+
store?: Store.Store | undefined;
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
type Client = Pick<Client_, 'request'> & {
|
|
298
|
+
chain: {
|
|
299
|
+
id: number;
|
|
300
|
+
};
|
|
301
|
+
};
|
|
302
|
+
export {};
|
|
303
|
+
//# sourceMappingURL=Relay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Relay.d.ts","sourceRoot":"","sources":["../../src/tempo/Relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import * as RpcResponse from 'ox/RpcResponse';
|
|
2
|
+
import { ChainNotConfiguredError } from '../core/Client.js';
|
|
3
|
+
import * as Sponsorship from './internal/relay/feePayer.js';
|
|
4
|
+
import * as FeeToken from './internal/relay/feeToken.js';
|
|
5
|
+
import * as Multisig from './internal/relay/multisig.js';
|
|
6
|
+
import * as Request_ from './internal/relay/request.js';
|
|
7
|
+
import * as Simulate from './internal/relay/simulate.js';
|
|
8
|
+
import * as internal from './internal/relay.js';
|
|
9
|
+
export function create(options) {
|
|
10
|
+
if (Boolean(options.client) === Boolean(options.getClient))
|
|
11
|
+
throw new RpcResponse.InvalidParamsError({
|
|
12
|
+
message: 'Expected exactly one of client or getClient.',
|
|
13
|
+
});
|
|
14
|
+
const clientChainId = options.client?.chain?.id;
|
|
15
|
+
if (options.client &&
|
|
16
|
+
(!Number.isSafeInteger(clientChainId) ||
|
|
17
|
+
!clientChainId ||
|
|
18
|
+
clientChainId <= 0))
|
|
19
|
+
throw new RpcResponse.InvalidParamsError({
|
|
20
|
+
message: 'Expected a client with a configured chain.',
|
|
21
|
+
});
|
|
22
|
+
const getClient = (chainId) => {
|
|
23
|
+
try {
|
|
24
|
+
const client = options.client ?? options.getClient({ chainId });
|
|
25
|
+
if (client.chain.id !== chainId)
|
|
26
|
+
throw new RpcResponse.InvalidParamsError({
|
|
27
|
+
message: 'Conflicting chain ids.',
|
|
28
|
+
});
|
|
29
|
+
return client;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
if (error instanceof ChainNotConfiguredError)
|
|
33
|
+
throw new RpcResponse.InvalidParamsError({
|
|
34
|
+
message: error.shortMessage,
|
|
35
|
+
});
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const handle = Request_.compose(async (request, requestOptions) => {
|
|
40
|
+
const { chainId, response: _, ...rest } = requestOptions ?? {};
|
|
41
|
+
if (chainId === undefined)
|
|
42
|
+
throw new RpcResponse.InvalidParamsError({
|
|
43
|
+
message: 'A chain ID is required to resolve the downstream client.',
|
|
44
|
+
});
|
|
45
|
+
return getClient(chainId).request(request, rest);
|
|
46
|
+
}, options, getClient);
|
|
47
|
+
const request = (request, requestOptions) => {
|
|
48
|
+
const chainId = requestOptions?.chainId ?? clientChainId;
|
|
49
|
+
if (chainId !== undefined &&
|
|
50
|
+
(!Number.isSafeInteger(chainId) || chainId <= 0))
|
|
51
|
+
return Promise.reject(new RpcResponse.InvalidParamsError({
|
|
52
|
+
message: 'Expected a valid chain ID.',
|
|
53
|
+
}));
|
|
54
|
+
if (clientChainId !== undefined && chainId !== clientChainId)
|
|
55
|
+
return Promise.reject(new RpcResponse.InvalidParamsError({
|
|
56
|
+
message: 'Conflicting chain ids.',
|
|
57
|
+
}));
|
|
58
|
+
return handle(request, { ...requestOptions, chainId });
|
|
59
|
+
};
|
|
60
|
+
return {
|
|
61
|
+
request,
|
|
62
|
+
fetch: (request_, options = {}) => internal.fetch(request_, request, options),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Creates an RPC request handler by composing relay plugins around a downstream handler.
|
|
67
|
+
*
|
|
68
|
+
* Requests enter plugins in array order, and responses return in reverse order.
|
|
69
|
+
* Post-fill hooks run concurrently after middleware finishes. Middleware sees
|
|
70
|
+
* the downstream result before post-fill enrichment and signing.
|
|
71
|
+
* Without plugins, the downstream handler is returned unchanged. Plugins decide
|
|
72
|
+
* whether to forward, transform, or handle a request. Errors propagate unchanged
|
|
73
|
+
* unless a plugin handles them.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* import { http } from 'viem'
|
|
78
|
+
* import { Relay } from 'viem/tempo'
|
|
79
|
+
*
|
|
80
|
+
* const rpc = http('https://rpc.tempo.xyz').setup()
|
|
81
|
+
* const handle = Relay.handleRequest(rpc.request, {
|
|
82
|
+
* plugins: [
|
|
83
|
+
* {
|
|
84
|
+
* async handleRequest(context, next) {
|
|
85
|
+
* context.options.retryCount = 0
|
|
86
|
+
* await next()
|
|
87
|
+
* },
|
|
88
|
+
* },
|
|
89
|
+
* ],
|
|
90
|
+
* })
|
|
91
|
+
* const chainId = await handle({ method: 'eth_chainId' })
|
|
92
|
+
* // @log: '0x1079'
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @param next - Downstream RPC request handler, typically forwarding to the Tempo (Execution) RPC.
|
|
96
|
+
* @param options - Relay options.
|
|
97
|
+
* @returns The composed RPC request handler.
|
|
98
|
+
*/
|
|
99
|
+
export function handleRequest(next, options = {}) {
|
|
100
|
+
return Request_.compose(next, options);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Coordinates native multisig approvals using shared atomic storage.
|
|
104
|
+
*
|
|
105
|
+
* Memory storage is process-local. Independent clients and multiple server
|
|
106
|
+
* instances must use the same persistent store to share pending approvals.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* import { http } from 'viem'
|
|
111
|
+
* import { Relay, Store, withRelay } from 'viem/tempo'
|
|
112
|
+
*
|
|
113
|
+
* const transport = withRelay(http(), {
|
|
114
|
+
* plugins: [Relay.multisig({ store: Store.memory() })],
|
|
115
|
+
* })
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @param options - Shared atomic storage.
|
|
119
|
+
* @returns A plugin that coordinates multisig requests and forwards other calls.
|
|
120
|
+
*/
|
|
121
|
+
export function multisig(options) {
|
|
122
|
+
return Multisig.create(options);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Sponsors transactions with a local account or an external fee-payer relay.
|
|
126
|
+
*
|
|
127
|
+
* Place multisig before this plugin and fee-token selection after it.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* import { Account } from 'viem'
|
|
132
|
+
* import { Relay } from 'viem/tempo'
|
|
133
|
+
* const plugin = Relay.feePayer({ account: Account.fromPrivateKey('0x...') })
|
|
134
|
+
* ```
|
|
135
|
+
* @param options - Sponsor account, policy, and display metadata.
|
|
136
|
+
* @returns A fee-payer relay plugin.
|
|
137
|
+
*/
|
|
138
|
+
export function feePayer(options = {}) {
|
|
139
|
+
return Sponsorship.create(options);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Resolves fee tokens from user preferences, balances, and available fee AMM liquidity.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```ts
|
|
146
|
+
* import { Relay } from 'viem/tempo'
|
|
147
|
+
* const plugin = Relay.feeToken()
|
|
148
|
+
* ```
|
|
149
|
+
* @returns A fee-token relay plugin.
|
|
150
|
+
*/
|
|
151
|
+
export function feeToken() {
|
|
152
|
+
return FeeToken.create();
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Adds balance changes, estimated fees, and execution errors to fill capabilities.
|
|
156
|
+
*
|
|
157
|
+
* Runs after transaction middleware to simulate the final filled result.
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```ts
|
|
161
|
+
* import { Relay } from 'viem/tempo'
|
|
162
|
+
* const plugin = Relay.simulate()
|
|
163
|
+
* ```
|
|
164
|
+
* @param options - Optional metadata store.
|
|
165
|
+
* @returns A simulation relay plugin.
|
|
166
|
+
*/
|
|
167
|
+
export function simulate(options = {}) {
|
|
168
|
+
return Simulate.create(options);
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=Relay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Relay.js","sourceRoot":"","sources":["../../src/tempo/Relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -148,6 +148,7 @@ export declare const tip20Factory: {
|
|
|
148
148
|
};
|
|
149
149
|
/** Function selectors of the TIP-20 token interface. */
|
|
150
150
|
export declare const tip20: {
|
|
151
|
+
readonly BURN_AT_ROLE: '0xc6990381';
|
|
151
152
|
readonly BURN_BLOCKED_ROLE: '0x32ad9be8';
|
|
152
153
|
readonly DOMAIN_SEPARATOR: '0x3644e515';
|
|
153
154
|
readonly ISSUER_ROLE: '0x82aefa24';
|
|
@@ -157,6 +158,7 @@ export declare const tip20: {
|
|
|
157
158
|
readonly approve: '0x095ea7b3';
|
|
158
159
|
readonly balanceOf: '0x70a08231';
|
|
159
160
|
readonly burn: '0x42966c68';
|
|
161
|
+
readonly burnAt: '0x9803f216';
|
|
160
162
|
readonly burnBlocked: '0xec0cf3dc';
|
|
161
163
|
readonly burnWithMemo: '0x38f23b0b';
|
|
162
164
|
readonly changeTransferPolicyId: '0xfd5e9420';
|
|
@@ -271,10 +273,7 @@ export declare const zoneFactory: {
|
|
|
271
273
|
readonly zones: '0x90b7f6fd';
|
|
272
274
|
};
|
|
273
275
|
export declare const zoneVerifier: {
|
|
274
|
-
readonly verify:
|
|
275
|
-
readonly 'verify(uint32,uint64,uint64,bytes32,uint64,(bytes32,bytes32),(bytes32,bytes32,uint64,uint64),bytes32,bytes,bytes)': '0x7106a43e';
|
|
276
|
-
readonly 'verify(uint32,uint64,uint64,bytes32,uint64,uint256,(bytes32,bytes32),(bytes32,bytes32,uint64,uint64),(uint64,uint64),bytes32,bytes,bytes)': '0xebb2ddc9';
|
|
277
|
-
};
|
|
276
|
+
readonly verify: '0xebb2ddc9';
|
|
278
277
|
};
|
|
279
278
|
export declare const zonePortal: {
|
|
280
279
|
readonly FIXED_DEPOSIT_GAS: '0xf706cfbf';
|
|
@@ -282,6 +281,8 @@ export declare const zonePortal: {
|
|
|
282
281
|
readonly MAX_GAS_FEE_RATE: '0xf490ca96';
|
|
283
282
|
readonly MAX_TOKENS_ENABLED_PER_TEMPO_BLOCK: '0x3fcf7df4';
|
|
284
283
|
readonly MAX_TOKEN_METADATA_BYTES: '0x996329a2';
|
|
284
|
+
readonly MAX_UNPROCESSED_DEPOSITS: '0x5e53dcd3';
|
|
285
|
+
readonly MAX_UNPROCESSED_TOKEN_ENABLEMENTS: '0x3b667e74';
|
|
285
286
|
readonly MAX_WITHDRAWAL_GAS_LIMIT: '0x86f47e55';
|
|
286
287
|
readonly abdicate: '0xbf4c5411';
|
|
287
288
|
readonly abdicationEffectiveAt: '0x04a3b098';
|
|
@@ -315,6 +316,7 @@ export declare const zonePortal: {
|
|
|
315
316
|
readonly isSequencer: '0x6d46e987';
|
|
316
317
|
readonly isTokenEnabled: '0x748538d9';
|
|
317
318
|
readonly lastProcessedDepositNumber: '0xe84abe69';
|
|
319
|
+
readonly lastProcessedEnabledTokenCount: '0xccd537ca';
|
|
318
320
|
readonly lastSyncedTempoBlockNumber: '0xbe2a63ee';
|
|
319
321
|
readonly leader: '0x40eedabb';
|
|
320
322
|
readonly leaderActivationTempoBlock: '0xb83c755f';
|
|
@@ -348,8 +350,12 @@ export declare const zonePortal: {
|
|
|
348
350
|
readonly setSequencerEncryptionKey: '0xef10b187';
|
|
349
351
|
readonly setSequencerSet: '0x86012b45';
|
|
350
352
|
readonly setZoneGasRate: '0x0e86bbdc';
|
|
351
|
-
readonly submitBatch:
|
|
353
|
+
readonly submitBatch: {
|
|
354
|
+
readonly 'submitBatch(uint64,uint64,(bytes32,bytes32),(bytes32,bytes32,uint64,uint64),(uint64,uint64),bytes32,bytes,bytes,uint256,bytes[])': '0x4cd6c7c7';
|
|
355
|
+
readonly 'submitBatch(uint64,uint64,(bytes32,bytes32),(bytes32,bytes32,uint64,uint64),bytes32,bytes,bytes,uint256,bytes[])': '0x78fb159b';
|
|
356
|
+
};
|
|
352
357
|
readonly tokenConfig: '0xfe136c4e';
|
|
358
|
+
readonly tokenEnablementCursorInitialized: '0x370ddf99';
|
|
353
359
|
readonly tokenEnablementHash: '0xb456c0dd';
|
|
354
360
|
readonly transferAdmin: '0x75829def';
|
|
355
361
|
readonly verifier: '0x2b7ac3f3';
|
|
@@ -361,6 +367,11 @@ export declare const zonePortal: {
|
|
|
361
367
|
readonly zoneHeight: '0x430f8b4f';
|
|
362
368
|
readonly zoneId: '0xd179978a';
|
|
363
369
|
};
|
|
370
|
+
export declare const zonePortalPreT13Retired: {
|
|
371
|
+
readonly MAX_DEPOSITS_PER_TEMPO_BLOCK: '0x1bf00ca8';
|
|
372
|
+
readonly MAX_TOKENS_ENABLED_PER_TEMPO_BLOCK: '0x3fcf7df4';
|
|
373
|
+
readonly submitBatch: '0x78fb159b';
|
|
374
|
+
};
|
|
364
375
|
export declare const zoneOutbox: {
|
|
365
376
|
readonly AUTHENTICATED_WITHDRAWAL_CIPHERTEXT_LENGTH: '0x43c3cb83';
|
|
366
377
|
readonly MAX_CALLBACK_DATA_SIZE: '0x53a8d739';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Selectors.d.ts","sourceRoot":"","sources":["../../src/tempo/Selectors.ts"],"names":[],"mappings":"AAcA,6DAA6D;AAC7D,eAAO,MAAM,eAAe;gCACP,YAAY;;iBAE7B,4GAA4G,EAC1G,YAAY;iBACd,oHAAoH,EAClH,YAAY;iBACd,6DAA6D,EAAE,YAAY;;0CAEhD,YAAY;8BACxB,YAAY;qBACrB,YAAY;gCACD,YAAY;0CACF,YAAY;gCACtB,YAAY;yBACnB,YAAY;8CACS,YAAY;iCACzB,YAAY;wBACrB,YAAY;8BACN,YAAY;kCACR,YAAY;CAKU,CAAA;AAE7C,6DAA6D;AAC7D,eAAO,MAAM,eAAe;mCACJ,YAAY;wBACvB,YAAY;mCACD,YAAY;+BAChB,YAAY;oCACP,YAAY;+BACjB,YAAY;oCACP,YAAY;CAC8B,CAAA;AAEnE,eAAO,MAAM,cAAc;4BACV,YAAY;kCACN,YAAY;2BACnB,YAAY;CACsC,CAAA;AAElE,eAAO,MAAM,gBAAgB;kCACN,YAAY;kCACZ,YAAY;CACiC,CAAA;AAEpE,0DAA0D;AAC1D,eAAO,MAAM,KAAK;uBACN,YAAY;CACiC,CAAA;AAEzD,iEAAiE;AACjE,eAAO,MAAM,kBAAkB;wBAClB,YAAY;iCACH,YAAY;oBACzB,YAAY;CACiD,CAAA;AAEtE,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB;sBACnB,YAAY;qBACb,YAAY;6BACJ,YAAY;kCACP,YAAY;CACkC,CAAA;AAErE,2DAA2D;AAC3D,eAAO,MAAM,aAAa;wBACb,YAAY;uBACb,YAAY;+BACJ,YAAY;wBACnB,YAAY;uBACb,YAAY;0BACT,YAAY;2BACX,YAAY;wBACf,YAAY;8BACN,YAAY;8BACZ,YAAY;oBACtB,YAAY;qBACX,YAAY;+BACF,YAAY;yBAClB,YAAY;uBACd,YAAY;2BACR,YAAY;0BACb,YAAY;sBAChB,YAAY;oBACd,YAAY;wBACR,YAAY;0BACV,YAAY;qCACD,YAAY;sCACX,YAAY;2BACvB,YAAY;6BACV,YAAY;gCACT,YAAY;iCACX,YAAY;0BACnB,YAAY;uBACf,YAAY;CACyC,CAAA;AAEjE,4DAA4D;AAC5D,eAAO,MAAM,cAAc;wBACd,YAAY;uBACb,YAAY;qBACd,YAAY;wBACT,YAAY;sBACd,YAAY;CAC2C,CAAA;AAElE,wDAAwD;AACxD,eAAO,MAAM,UAAU;4BACN,YAAY;6BACX,YAAY;2BACd,YAAY;gCACP,YAAY;yBACnB,YAAY;8BACP,YAAY;CAC+B,CAAA;AAE9D,oDAAoD;AACpD,eAAO,MAAM,MAAM;gBACd,YAAY;4BACA,YAAY;gBACxB,YAAY;oBACR,YAAY;mBACb,YAAY;sBACT,YAAY;wBACV,YAAY;gCACJ,YAAY;mBACzB,YAAY;oBACX,YAAY;4BACJ,YAAY;0BACd,YAAY;CAC+B,CAAA;AAE1D,mEAAmE;AACnE,eAAO,MAAM,mBAAmB;iCACV,YAAY;+BACd,YAAY;oBACvB,YAAY;+BACD,YAAY;8BACb,YAAY;yBACjB,YAAY;8BACP,YAAY;oCACN,YAAY;+BACjB,YAAY;mBACxB,YAAY;2BACJ,YAAY;qBAClB,YAAY;6BACJ,YAAY;oBACrB,YAAY;uBACT,YAAY;CAC+C,CAAA;AAEvE,iEAAiE;AACjE,eAAO,MAAM,YAAY;;iBAErB,2DAA2D,EAAE,YAAY;iBACzE,kEAAkE,EAChE,YAAY;;8BAEC,YAAY;sBACpB,YAAY;CAKqB,CAAA;AAE5C,wDAAwD;AACxD,eAAO,MAAM,KAAK;
|
|
1
|
+
{"version":3,"file":"Selectors.d.ts","sourceRoot":"","sources":["../../src/tempo/Selectors.ts"],"names":[],"mappings":"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"}
|
package/dist/tempo/Selectors.js
CHANGED
|
@@ -149,6 +149,7 @@ export const tip20Factory = {
|
|
|
149
149
|
};
|
|
150
150
|
/** Function selectors of the TIP-20 token interface. */
|
|
151
151
|
export const tip20 = {
|
|
152
|
+
BURN_AT_ROLE: '0xc6990381',
|
|
152
153
|
BURN_BLOCKED_ROLE: '0x32ad9be8',
|
|
153
154
|
DOMAIN_SEPARATOR: '0x3644e515',
|
|
154
155
|
ISSUER_ROLE: '0x82aefa24',
|
|
@@ -158,6 +159,7 @@ export const tip20 = {
|
|
|
158
159
|
approve: '0x095ea7b3',
|
|
159
160
|
balanceOf: '0x70a08231',
|
|
160
161
|
burn: '0x42966c68',
|
|
162
|
+
burnAt: '0x9803f216',
|
|
161
163
|
burnBlocked: '0xec0cf3dc',
|
|
162
164
|
burnWithMemo: '0x38f23b0b',
|
|
163
165
|
changeTransferPolicyId: '0xfd5e9420',
|
|
@@ -272,10 +274,7 @@ export const zoneFactory = {
|
|
|
272
274
|
zones: '0x90b7f6fd',
|
|
273
275
|
};
|
|
274
276
|
export const zoneVerifier = {
|
|
275
|
-
verify:
|
|
276
|
-
'verify(uint32,uint64,uint64,bytes32,uint64,(bytes32,bytes32),(bytes32,bytes32,uint64,uint64),bytes32,bytes,bytes)': '0x7106a43e',
|
|
277
|
-
'verify(uint32,uint64,uint64,bytes32,uint64,uint256,(bytes32,bytes32),(bytes32,bytes32,uint64,uint64),(uint64,uint64),bytes32,bytes,bytes)': '0xebb2ddc9',
|
|
278
|
-
},
|
|
277
|
+
verify: '0xebb2ddc9',
|
|
279
278
|
};
|
|
280
279
|
export const zonePortal = {
|
|
281
280
|
FIXED_DEPOSIT_GAS: '0xf706cfbf',
|
|
@@ -283,6 +282,8 @@ export const zonePortal = {
|
|
|
283
282
|
MAX_GAS_FEE_RATE: '0xf490ca96',
|
|
284
283
|
MAX_TOKENS_ENABLED_PER_TEMPO_BLOCK: '0x3fcf7df4',
|
|
285
284
|
MAX_TOKEN_METADATA_BYTES: '0x996329a2',
|
|
285
|
+
MAX_UNPROCESSED_DEPOSITS: '0x5e53dcd3',
|
|
286
|
+
MAX_UNPROCESSED_TOKEN_ENABLEMENTS: '0x3b667e74',
|
|
286
287
|
MAX_WITHDRAWAL_GAS_LIMIT: '0x86f47e55',
|
|
287
288
|
abdicate: '0xbf4c5411',
|
|
288
289
|
abdicationEffectiveAt: '0x04a3b098',
|
|
@@ -316,6 +317,7 @@ export const zonePortal = {
|
|
|
316
317
|
isSequencer: '0x6d46e987',
|
|
317
318
|
isTokenEnabled: '0x748538d9',
|
|
318
319
|
lastProcessedDepositNumber: '0xe84abe69',
|
|
320
|
+
lastProcessedEnabledTokenCount: '0xccd537ca',
|
|
319
321
|
lastSyncedTempoBlockNumber: '0xbe2a63ee',
|
|
320
322
|
leader: '0x40eedabb',
|
|
321
323
|
leaderActivationTempoBlock: '0xb83c755f',
|
|
@@ -349,8 +351,12 @@ export const zonePortal = {
|
|
|
349
351
|
setSequencerEncryptionKey: '0xef10b187',
|
|
350
352
|
setSequencerSet: '0x86012b45',
|
|
351
353
|
setZoneGasRate: '0x0e86bbdc',
|
|
352
|
-
submitBatch:
|
|
354
|
+
submitBatch: {
|
|
355
|
+
'submitBatch(uint64,uint64,(bytes32,bytes32),(bytes32,bytes32,uint64,uint64),(uint64,uint64),bytes32,bytes,bytes,uint256,bytes[])': '0x4cd6c7c7',
|
|
356
|
+
'submitBatch(uint64,uint64,(bytes32,bytes32),(bytes32,bytes32,uint64,uint64),bytes32,bytes,bytes,uint256,bytes[])': '0x78fb159b',
|
|
357
|
+
},
|
|
353
358
|
tokenConfig: '0xfe136c4e',
|
|
359
|
+
tokenEnablementCursorInitialized: '0x370ddf99',
|
|
354
360
|
tokenEnablementHash: '0xb456c0dd',
|
|
355
361
|
transferAdmin: '0x75829def',
|
|
356
362
|
verifier: '0x2b7ac3f3',
|
|
@@ -362,6 +368,11 @@ export const zonePortal = {
|
|
|
362
368
|
zoneHeight: '0x430f8b4f',
|
|
363
369
|
zoneId: '0xd179978a',
|
|
364
370
|
};
|
|
371
|
+
export const zonePortalPreT13Retired = {
|
|
372
|
+
MAX_DEPOSITS_PER_TEMPO_BLOCK: '0x1bf00ca8',
|
|
373
|
+
MAX_TOKENS_ENABLED_PER_TEMPO_BLOCK: '0x3fcf7df4',
|
|
374
|
+
submitBatch: '0x78fb159b',
|
|
375
|
+
};
|
|
365
376
|
export const zoneOutbox = {
|
|
366
377
|
AUTHENTICATED_WITHDRAWAL_CIPHERTEXT_LENGTH: '0x43c3cb83',
|
|
367
378
|
MAX_CALLBACK_DATA_SIZE: '0x53a8d739',
|