smart-multisig-engine 0.1.0

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/index.cjs ADDED
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var src_exports = {};
32
+ __export(src_exports, {
33
+ extractCallData: () => extractCallData,
34
+ fetchPendingTxs: () => fetchPendingTxs,
35
+ matchPendingTransaction: () => matchPendingTransaction,
36
+ safe: () => safe_exports,
37
+ simulate: () => simulate,
38
+ submitTx: () => submitTx,
39
+ waitForExecution: () => waitForExecution2,
40
+ write: () => write
41
+ });
42
+ module.exports = __toCommonJS(src_exports);
43
+
44
+ // src/core/extract-call-data.ts
45
+ var import_viem = require("viem");
46
+ function extractCallData(params) {
47
+ const data = (0, import_viem.encodeFunctionData)({
48
+ abi: params.abi,
49
+ functionName: params.functionName,
50
+ args: params.args
51
+ });
52
+ return {
53
+ to: params.address,
54
+ data,
55
+ value: params.value ?? 0n
56
+ };
57
+ }
58
+
59
+ // src/core/match-pending-tx.ts
60
+ function matchPendingTransaction(pendingTxs, criteria) {
61
+ return pendingTxs.find(
62
+ (tx) => tx.to.toLowerCase() === criteria.to.toLowerCase() && tx.value === String(criteria.value) && tx.data?.toLowerCase() === criteria.data.toLowerCase()
63
+ );
64
+ }
65
+
66
+ // src/adapters/safe/index.ts
67
+ var safe_exports = {};
68
+ __export(safe_exports, {
69
+ fetchPendingTransactions: () => fetchPendingTransactions,
70
+ simulateContractCall: () => simulateContractCall,
71
+ submitAndFindSafeTx: () => submitAndFindSafeTx,
72
+ waitForExecution: () => waitForExecution,
73
+ writeContractCall: () => writeContractCall
74
+ });
75
+
76
+ // src/adapters/safe/simulate-contract-call.ts
77
+ var import_core = require("@wagmi/core");
78
+ async function simulateContractCall(config, params) {
79
+ return (0, import_core.simulateContract)(config, {
80
+ address: params.address,
81
+ abi: params.abi,
82
+ functionName: params.functionName,
83
+ args: params.args,
84
+ value: params.value,
85
+ chainId: params.chainId,
86
+ account: params.account
87
+ });
88
+ }
89
+
90
+ // src/adapters/safe/write-contract-call.ts
91
+ var import_core2 = require("@wagmi/core");
92
+ async function writeContractCall(config, request) {
93
+ return (0, import_core2.writeContract)(config, request);
94
+ }
95
+
96
+ // src/adapters/safe/fetch-pending-transactions.ts
97
+ var import_api_kit = __toESM(require("@safe-global/api-kit"), 1);
98
+ async function fetchPendingTransactions(params) {
99
+ const apiKit = new import_api_kit.default({
100
+ chainId: params.chainId,
101
+ ...params.txServiceUrl && { txServiceUrl: params.txServiceUrl },
102
+ apiKey: params.apiKey
103
+ });
104
+ const response = await apiKit.getPendingTransactions(params.safeAddress);
105
+ return response.results;
106
+ }
107
+
108
+ // src/adapters/safe/submit-and-find-safe-tx.ts
109
+ function delay(ms) {
110
+ return new Promise((resolve) => setTimeout(resolve, ms));
111
+ }
112
+ async function submitAndFindSafeTx(options) {
113
+ const {
114
+ config,
115
+ safeAddress,
116
+ txServiceUrl,
117
+ apiKey,
118
+ pollingInterval = 3e3,
119
+ maxAttempts = 20,
120
+ ...callParams
121
+ } = options;
122
+ const callData = extractCallData(callParams);
123
+ const simulation = await simulateContractCall(config, callParams);
124
+ await writeContractCall(config, simulation.request);
125
+ const chainId = BigInt(callParams.chainId ?? await getChainId(config));
126
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
127
+ await delay(pollingInterval);
128
+ const pendingTxs = await fetchPendingTransactions({
129
+ chainId,
130
+ safeAddress,
131
+ txServiceUrl,
132
+ apiKey
133
+ });
134
+ const match = matchPendingTransaction(pendingTxs, callData);
135
+ if (match) {
136
+ return {
137
+ safeTxHash: match.safeTxHash
138
+ };
139
+ }
140
+ }
141
+ throw new Error(
142
+ `Could not find matching Safe transaction after ${maxAttempts} attempts`
143
+ );
144
+ }
145
+ async function getChainId(config) {
146
+ const { getChainId: wagmiGetChainId } = await import("@wagmi/core");
147
+ return wagmiGetChainId(config);
148
+ }
149
+
150
+ // src/adapters/safe/wait-for-execution.ts
151
+ var import_api_kit2 = __toESM(require("@safe-global/api-kit"), 1);
152
+ function delay2(ms) {
153
+ return new Promise((resolve) => setTimeout(resolve, ms));
154
+ }
155
+ async function waitForExecution(options) {
156
+ const {
157
+ safeTxHash,
158
+ chainId,
159
+ txServiceUrl,
160
+ apiKey,
161
+ pollingInterval = 5e3,
162
+ maxAttempts = 60
163
+ } = options;
164
+ const apiKit = new import_api_kit2.default({
165
+ chainId,
166
+ ...txServiceUrl && { txServiceUrl },
167
+ apiKey
168
+ });
169
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
170
+ const tx = await apiKit.getTransaction(safeTxHash);
171
+ if (tx.isExecuted && tx.transactionHash) {
172
+ return {
173
+ transactionHash: tx.transactionHash
174
+ };
175
+ }
176
+ await delay2(pollingInterval);
177
+ }
178
+ throw new Error(
179
+ `Safe transaction ${safeTxHash} was not executed after ${maxAttempts} attempts`
180
+ );
181
+ }
182
+
183
+ // src/adapters/registry.ts
184
+ var adapters = {
185
+ safe: {
186
+ submitTx: submitAndFindSafeTx,
187
+ waitForExecution,
188
+ fetchPending: fetchPendingTransactions,
189
+ simulate: simulateContractCall,
190
+ write: writeContractCall
191
+ }
192
+ };
193
+
194
+ // src/adapters/index.ts
195
+ async function submitTx(options) {
196
+ const { adapter, walletAddress, ...rest } = options;
197
+ assertAdapter(adapter);
198
+ const result = await adapters[adapter].submitTx({
199
+ safeAddress: walletAddress,
200
+ ...rest
201
+ });
202
+ return { txHash: result.safeTxHash };
203
+ }
204
+ async function waitForExecution2(options) {
205
+ const { adapter, txHash, ...rest } = options;
206
+ assertAdapter(adapter);
207
+ const result = await adapters[adapter].waitForExecution({
208
+ safeTxHash: txHash,
209
+ ...rest
210
+ });
211
+ return { transactionHash: result.transactionHash };
212
+ }
213
+ async function fetchPendingTxs(options) {
214
+ const { adapter, walletAddress, ...rest } = options;
215
+ assertAdapter(adapter);
216
+ return adapters[adapter].fetchPending({
217
+ safeAddress: walletAddress,
218
+ ...rest
219
+ });
220
+ }
221
+ async function simulate(options) {
222
+ const { adapter, config, ...params } = options;
223
+ assertAdapter(adapter);
224
+ return adapters[adapter].simulate(config, params);
225
+ }
226
+ async function write(options) {
227
+ const { adapter, config, request } = options;
228
+ assertAdapter(adapter);
229
+ return adapters[adapter].write(config, request);
230
+ }
231
+ function assertAdapter(adapter) {
232
+ if (!(adapter in adapters)) {
233
+ throw new Error(`Unknown adapter: ${adapter}. Available: ${Object.keys(adapters).join(", ")}`);
234
+ }
235
+ }
236
+ // Annotate the CommonJS export names for ESM import in node:
237
+ 0 && (module.exports = {
238
+ extractCallData,
239
+ fetchPendingTxs,
240
+ matchPendingTransaction,
241
+ safe,
242
+ simulate,
243
+ submitTx,
244
+ waitForExecution,
245
+ write
246
+ });
247
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/core/extract-call-data.ts","../src/core/match-pending-tx.ts","../src/adapters/safe/index.ts","../src/adapters/safe/simulate-contract-call.ts","../src/adapters/safe/write-contract-call.ts","../src/adapters/safe/fetch-pending-transactions.ts","../src/adapters/safe/submit-and-find-safe-tx.ts","../src/adapters/safe/wait-for-execution.ts","../src/adapters/registry.ts","../src/adapters/index.ts"],"sourcesContent":["export * from \"./core/index.js\";\nexport * from \"./adapters/index.js\";\n","import type { Abi, Address } from \"viem\";\nimport { encodeFunctionData } from \"viem\";\nimport type { EncodedCallData } from \"./types.js\";\n\nexport function extractCallData(params: {\n abi: Abi;\n functionName: string;\n args?: readonly unknown[];\n address: Address;\n value?: bigint;\n}): EncodedCallData {\n const data = encodeFunctionData({\n abi: params.abi,\n functionName: params.functionName,\n args: params.args as unknown[],\n });\n\n return {\n to: params.address,\n data,\n value: params.value ?? 0n,\n };\n}\n","import type { SafeMultisigTransactionResponse } from \"@safe-global/types-kit\";\nimport type { TxMatchCriteria } from \"./types.js\";\n\nexport function matchPendingTransaction(\n pendingTxs: SafeMultisigTransactionResponse[],\n criteria: TxMatchCriteria,\n): SafeMultisigTransactionResponse | undefined {\n return pendingTxs.find(\n (tx) =>\n tx.to.toLowerCase() === criteria.to.toLowerCase() &&\n tx.value === String(criteria.value) &&\n tx.data?.toLowerCase() === criteria.data.toLowerCase(),\n );\n}\n","export * from \"./types.js\";\nexport * from \"./simulate-contract-call.js\";\nexport * from \"./write-contract-call.js\";\nexport * from \"./fetch-pending-transactions.js\";\nexport * from \"./submit-and-find-safe-tx.js\";\nexport * from \"./wait-for-execution.js\";\n","import { simulateContract, type Config } from \"@wagmi/core\";\nimport type { ContractCallParams } from \"../../core/types.js\";\n\nexport async function simulateContractCall(\n config: Config,\n params: ContractCallParams,\n) {\n return simulateContract(config, {\n address: params.address,\n abi: params.abi,\n functionName: params.functionName,\n args: params.args as unknown[],\n value: params.value,\n chainId: params.chainId,\n account: params.account,\n });\n}\n","import { writeContract, type Config } from \"@wagmi/core\";\nimport type { Hex } from \"viem\";\n\nexport async function writeContractCall(\n config: Config,\n request: Parameters<typeof writeContract>[1],\n): Promise<Hex> {\n return writeContract(config, request);\n}\n","import SafeApiKit from \"@safe-global/api-kit\";\nimport type { SafeMultisigTransactionResponse } from \"@safe-global/types-kit\";\n\nexport interface FetchPendingTransactionsParams {\n chainId: bigint;\n safeAddress: string;\n txServiceUrl?: string;\n apiKey?: string;\n}\n\nexport async function fetchPendingTransactions(\n params: FetchPendingTransactionsParams,\n): Promise<SafeMultisigTransactionResponse[]> {\n const apiKit = new SafeApiKit({\n chainId: params.chainId,\n ...(params.txServiceUrl && { txServiceUrl: params.txServiceUrl }),\n apiKey: params.apiKey,\n });\n\n const response = await apiKit.getPendingTransactions(params.safeAddress);\n return response.results;\n}\n","import { extractCallData } from \"../../core/extract-call-data.js\";\nimport { matchPendingTransaction } from \"../../core/match-pending-tx.js\";\nimport { fetchPendingTransactions } from \"./fetch-pending-transactions.js\";\nimport { simulateContractCall } from \"./simulate-contract-call.js\";\nimport { writeContractCall } from \"./write-contract-call.js\";\nimport type {\n SubmitAndFindSafeTxOptions,\n SubmitAndFindSafeTxResult,\n} from \"./types.js\";\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport async function submitAndFindSafeTx(\n options: SubmitAndFindSafeTxOptions,\n): Promise<SubmitAndFindSafeTxResult> {\n const {\n config,\n safeAddress,\n txServiceUrl,\n apiKey,\n pollingInterval = 3000,\n maxAttempts = 20,\n ...callParams\n } = options;\n\n const callData = extractCallData(callParams);\n\n const simulation = await simulateContractCall(config, callParams);\n\n await writeContractCall(config, simulation.request as Parameters<typeof writeContractCall>[1]);\n\n const chainId = BigInt(callParams.chainId ?? (await getChainId(config)));\n\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n await delay(pollingInterval);\n\n const pendingTxs = await fetchPendingTransactions({\n chainId,\n safeAddress,\n txServiceUrl,\n apiKey,\n });\n const match = matchPendingTransaction(pendingTxs, callData);\n\n if (match) {\n return {\n safeTxHash: match.safeTxHash,\n };\n }\n }\n\n throw new Error(\n `Could not find matching Safe transaction after ${maxAttempts} attempts`,\n );\n}\n\nasync function getChainId(config: Parameters<typeof simulateContractCall>[0]): Promise<number> {\n const { getChainId: wagmiGetChainId } = await import(\"@wagmi/core\");\n return wagmiGetChainId(config);\n}\n","import SafeApiKit from \"@safe-global/api-kit\";\nimport type {\n WaitForExecutionOptions,\n WaitForExecutionResult,\n} from \"./types.js\";\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport async function waitForExecution(\n options: WaitForExecutionOptions,\n): Promise<WaitForExecutionResult> {\n const {\n safeTxHash,\n chainId,\n txServiceUrl,\n apiKey,\n pollingInterval = 5000,\n maxAttempts = 60,\n } = options;\n\n const apiKit = new SafeApiKit({\n chainId,\n ...(txServiceUrl && { txServiceUrl }),\n apiKey,\n });\n\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n const tx = await apiKit.getTransaction(safeTxHash);\n\n if (tx.isExecuted && tx.transactionHash) {\n return {\n transactionHash: tx.transactionHash,\n };\n }\n\n await delay(pollingInterval);\n }\n\n throw new Error(\n `Safe transaction ${safeTxHash} was not executed after ${maxAttempts} attempts`,\n );\n}\n","import * as safe from \"./safe/index.js\";\n\nexport const adapters = {\n safe: {\n submitTx: safe.submitAndFindSafeTx,\n waitForExecution: safe.waitForExecution,\n fetchPending: safe.fetchPendingTransactions,\n simulate: safe.simulateContractCall,\n write: safe.writeContractCall,\n },\n} as const;\n\nexport type AdapterRegistry = typeof adapters;\n","import { adapters } from \"./registry.js\";\nimport type {\n AdapterType,\n SubmitTxOptions,\n SubmitTxResult,\n WaitForExecutionOptions,\n WaitForExecutionResult,\n FetchPendingOptions,\n SimulateOptions,\n WriteOptions,\n} from \"./types.js\";\n\n// Re-export types\nexport * from \"./types.js\";\n\n// Re-export Safe adapter for direct access\nexport * as safe from \"./safe/index.js\";\n\n// Generic entry functions\n\nexport async function submitTx(\n options: SubmitTxOptions,\n): Promise<SubmitTxResult> {\n const { adapter, walletAddress, ...rest } = options;\n assertAdapter(adapter);\n\n const result = await adapters[adapter].submitTx({\n safeAddress: walletAddress,\n ...rest,\n });\n\n return { txHash: result.safeTxHash };\n}\n\nexport async function waitForExecution(\n options: WaitForExecutionOptions,\n): Promise<WaitForExecutionResult> {\n const { adapter, txHash, ...rest } = options;\n assertAdapter(adapter);\n\n const result = await adapters[adapter].waitForExecution({\n safeTxHash: txHash,\n ...rest,\n });\n\n return { transactionHash: result.transactionHash };\n}\n\nexport async function fetchPendingTxs(\n options: FetchPendingOptions,\n): Promise<unknown[]> {\n const { adapter, walletAddress, ...rest } = options;\n assertAdapter(adapter);\n\n return adapters[adapter].fetchPending({\n safeAddress: walletAddress,\n ...rest,\n });\n}\n\nexport async function simulate(\n options: SimulateOptions,\n): Promise<unknown> {\n const { adapter, config, ...params } = options;\n assertAdapter(adapter);\n\n return adapters[adapter].simulate(config, params);\n}\n\nexport async function write(\n options: WriteOptions,\n): Promise<string> {\n const { adapter, config, request } = options;\n assertAdapter(adapter);\n\n return adapters[adapter].write(config, request as Parameters<typeof adapters.safe.write>[1]);\n}\n\nfunction assertAdapter(adapter: AdapterType): asserts adapter is keyof typeof adapters {\n if (!(adapter in adapters)) {\n throw new Error(`Unknown adapter: ${adapter}. Available: ${Object.keys(adapters).join(\", \")}`);\n }\n}\n"],"mappings":"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","names":["waitForExecution","import_core","SafeApiKit","import_api_kit","delay","SafeApiKit","waitForExecution"]}
@@ -0,0 +1,85 @@
1
+ import { E as EncodedCallData, T as TxMatchCriteria, C as ContractCallParams, F as FetchPendingOptions, S as SimulateOptions, a as SubmitTxOptions, b as SubmitTxResult, W as WaitForExecutionOptions$1, c as WaitForExecutionResult$1, d as WriteOptions } from './types-BJD1jdcY.cjs';
2
+ export { A as AdapterServiceOptions, e as AdapterType } from './types-BJD1jdcY.cjs';
3
+ import * as viem from 'viem';
4
+ import { Abi, Address, Hex } from 'viem';
5
+ import { SafeMultisigTransactionResponse } from '@safe-global/types-kit';
6
+ export { SafeMultisigTransactionResponse } from '@safe-global/types-kit';
7
+ import { Config, writeContract } from '@wagmi/core';
8
+ import * as abitype from 'abitype';
9
+
10
+ declare function extractCallData(params: {
11
+ abi: Abi;
12
+ functionName: string;
13
+ args?: readonly unknown[];
14
+ address: Address;
15
+ value?: bigint;
16
+ }): EncodedCallData;
17
+
18
+ declare function matchPendingTransaction(pendingTxs: SafeMultisigTransactionResponse[], criteria: TxMatchCriteria): SafeMultisigTransactionResponse | undefined;
19
+
20
+ interface SafeServiceOptions {
21
+ txServiceUrl?: string;
22
+ apiKey?: string;
23
+ }
24
+ interface SubmitAndFindSafeTxOptions extends ContractCallParams, SafeServiceOptions {
25
+ safeAddress: Address;
26
+ config: Config;
27
+ pollingInterval?: number;
28
+ maxAttempts?: number;
29
+ }
30
+ interface SubmitAndFindSafeTxResult {
31
+ safeTxHash: string;
32
+ }
33
+ interface WaitForExecutionOptions extends SafeServiceOptions {
34
+ safeTxHash: string;
35
+ chainId: bigint;
36
+ pollingInterval?: number;
37
+ maxAttempts?: number;
38
+ }
39
+ interface WaitForExecutionResult {
40
+ transactionHash: string;
41
+ }
42
+
43
+ declare function simulateContractCall(config: Config, params: ContractCallParams): Promise<viem.SimulateContractReturnType<abitype.Abi, string, unknown[], viem.Chain, viem.Account, viem.Chain> & {
44
+ chainId: number;
45
+ request: {
46
+ chainId: number;
47
+ chain: viem.Chain;
48
+ };
49
+ }>;
50
+
51
+ declare function writeContractCall(config: Config, request: Parameters<typeof writeContract>[1]): Promise<Hex>;
52
+
53
+ interface FetchPendingTransactionsParams {
54
+ chainId: bigint;
55
+ safeAddress: string;
56
+ txServiceUrl?: string;
57
+ apiKey?: string;
58
+ }
59
+ declare function fetchPendingTransactions(params: FetchPendingTransactionsParams): Promise<SafeMultisigTransactionResponse[]>;
60
+
61
+ declare function submitAndFindSafeTx(options: SubmitAndFindSafeTxOptions): Promise<SubmitAndFindSafeTxResult>;
62
+
63
+ declare function waitForExecution$1(options: WaitForExecutionOptions): Promise<WaitForExecutionResult>;
64
+
65
+ type index_FetchPendingTransactionsParams = FetchPendingTransactionsParams;
66
+ type index_SafeServiceOptions = SafeServiceOptions;
67
+ type index_SubmitAndFindSafeTxOptions = SubmitAndFindSafeTxOptions;
68
+ type index_SubmitAndFindSafeTxResult = SubmitAndFindSafeTxResult;
69
+ type index_WaitForExecutionOptions = WaitForExecutionOptions;
70
+ type index_WaitForExecutionResult = WaitForExecutionResult;
71
+ declare const index_fetchPendingTransactions: typeof fetchPendingTransactions;
72
+ declare const index_simulateContractCall: typeof simulateContractCall;
73
+ declare const index_submitAndFindSafeTx: typeof submitAndFindSafeTx;
74
+ declare const index_writeContractCall: typeof writeContractCall;
75
+ declare namespace index {
76
+ export { type index_FetchPendingTransactionsParams as FetchPendingTransactionsParams, type index_SafeServiceOptions as SafeServiceOptions, type index_SubmitAndFindSafeTxOptions as SubmitAndFindSafeTxOptions, type index_SubmitAndFindSafeTxResult as SubmitAndFindSafeTxResult, type index_WaitForExecutionOptions as WaitForExecutionOptions, type index_WaitForExecutionResult as WaitForExecutionResult, index_fetchPendingTransactions as fetchPendingTransactions, index_simulateContractCall as simulateContractCall, index_submitAndFindSafeTx as submitAndFindSafeTx, waitForExecution$1 as waitForExecution, index_writeContractCall as writeContractCall };
77
+ }
78
+
79
+ declare function submitTx(options: SubmitTxOptions): Promise<SubmitTxResult>;
80
+ declare function waitForExecution(options: WaitForExecutionOptions$1): Promise<WaitForExecutionResult$1>;
81
+ declare function fetchPendingTxs(options: FetchPendingOptions): Promise<unknown[]>;
82
+ declare function simulate(options: SimulateOptions): Promise<unknown>;
83
+ declare function write(options: WriteOptions): Promise<string>;
84
+
85
+ export { ContractCallParams, EncodedCallData, FetchPendingOptions, SimulateOptions, SubmitTxOptions, SubmitTxResult, TxMatchCriteria, WaitForExecutionOptions$1 as WaitForExecutionOptions, WaitForExecutionResult$1 as WaitForExecutionResult, WriteOptions, extractCallData, fetchPendingTxs, matchPendingTransaction, index as safe, simulate, submitTx, waitForExecution, write };
@@ -0,0 +1,85 @@
1
+ import { E as EncodedCallData, T as TxMatchCriteria, C as ContractCallParams, F as FetchPendingOptions, S as SimulateOptions, a as SubmitTxOptions, b as SubmitTxResult, W as WaitForExecutionOptions$1, c as WaitForExecutionResult$1, d as WriteOptions } from './types-BJD1jdcY.js';
2
+ export { A as AdapterServiceOptions, e as AdapterType } from './types-BJD1jdcY.js';
3
+ import * as viem from 'viem';
4
+ import { Abi, Address, Hex } from 'viem';
5
+ import { SafeMultisigTransactionResponse } from '@safe-global/types-kit';
6
+ export { SafeMultisigTransactionResponse } from '@safe-global/types-kit';
7
+ import { Config, writeContract } from '@wagmi/core';
8
+ import * as abitype from 'abitype';
9
+
10
+ declare function extractCallData(params: {
11
+ abi: Abi;
12
+ functionName: string;
13
+ args?: readonly unknown[];
14
+ address: Address;
15
+ value?: bigint;
16
+ }): EncodedCallData;
17
+
18
+ declare function matchPendingTransaction(pendingTxs: SafeMultisigTransactionResponse[], criteria: TxMatchCriteria): SafeMultisigTransactionResponse | undefined;
19
+
20
+ interface SafeServiceOptions {
21
+ txServiceUrl?: string;
22
+ apiKey?: string;
23
+ }
24
+ interface SubmitAndFindSafeTxOptions extends ContractCallParams, SafeServiceOptions {
25
+ safeAddress: Address;
26
+ config: Config;
27
+ pollingInterval?: number;
28
+ maxAttempts?: number;
29
+ }
30
+ interface SubmitAndFindSafeTxResult {
31
+ safeTxHash: string;
32
+ }
33
+ interface WaitForExecutionOptions extends SafeServiceOptions {
34
+ safeTxHash: string;
35
+ chainId: bigint;
36
+ pollingInterval?: number;
37
+ maxAttempts?: number;
38
+ }
39
+ interface WaitForExecutionResult {
40
+ transactionHash: string;
41
+ }
42
+
43
+ declare function simulateContractCall(config: Config, params: ContractCallParams): Promise<viem.SimulateContractReturnType<abitype.Abi, string, unknown[], viem.Chain, viem.Account, viem.Chain> & {
44
+ chainId: number;
45
+ request: {
46
+ chainId: number;
47
+ chain: viem.Chain;
48
+ };
49
+ }>;
50
+
51
+ declare function writeContractCall(config: Config, request: Parameters<typeof writeContract>[1]): Promise<Hex>;
52
+
53
+ interface FetchPendingTransactionsParams {
54
+ chainId: bigint;
55
+ safeAddress: string;
56
+ txServiceUrl?: string;
57
+ apiKey?: string;
58
+ }
59
+ declare function fetchPendingTransactions(params: FetchPendingTransactionsParams): Promise<SafeMultisigTransactionResponse[]>;
60
+
61
+ declare function submitAndFindSafeTx(options: SubmitAndFindSafeTxOptions): Promise<SubmitAndFindSafeTxResult>;
62
+
63
+ declare function waitForExecution$1(options: WaitForExecutionOptions): Promise<WaitForExecutionResult>;
64
+
65
+ type index_FetchPendingTransactionsParams = FetchPendingTransactionsParams;
66
+ type index_SafeServiceOptions = SafeServiceOptions;
67
+ type index_SubmitAndFindSafeTxOptions = SubmitAndFindSafeTxOptions;
68
+ type index_SubmitAndFindSafeTxResult = SubmitAndFindSafeTxResult;
69
+ type index_WaitForExecutionOptions = WaitForExecutionOptions;
70
+ type index_WaitForExecutionResult = WaitForExecutionResult;
71
+ declare const index_fetchPendingTransactions: typeof fetchPendingTransactions;
72
+ declare const index_simulateContractCall: typeof simulateContractCall;
73
+ declare const index_submitAndFindSafeTx: typeof submitAndFindSafeTx;
74
+ declare const index_writeContractCall: typeof writeContractCall;
75
+ declare namespace index {
76
+ export { type index_FetchPendingTransactionsParams as FetchPendingTransactionsParams, type index_SafeServiceOptions as SafeServiceOptions, type index_SubmitAndFindSafeTxOptions as SubmitAndFindSafeTxOptions, type index_SubmitAndFindSafeTxResult as SubmitAndFindSafeTxResult, type index_WaitForExecutionOptions as WaitForExecutionOptions, type index_WaitForExecutionResult as WaitForExecutionResult, index_fetchPendingTransactions as fetchPendingTransactions, index_simulateContractCall as simulateContractCall, index_submitAndFindSafeTx as submitAndFindSafeTx, waitForExecution$1 as waitForExecution, index_writeContractCall as writeContractCall };
77
+ }
78
+
79
+ declare function submitTx(options: SubmitTxOptions): Promise<SubmitTxResult>;
80
+ declare function waitForExecution(options: WaitForExecutionOptions$1): Promise<WaitForExecutionResult$1>;
81
+ declare function fetchPendingTxs(options: FetchPendingOptions): Promise<unknown[]>;
82
+ declare function simulate(options: SimulateOptions): Promise<unknown>;
83
+ declare function write(options: WriteOptions): Promise<string>;
84
+
85
+ export { ContractCallParams, EncodedCallData, FetchPendingOptions, SimulateOptions, SubmitTxOptions, SubmitTxResult, TxMatchCriteria, WaitForExecutionOptions$1 as WaitForExecutionOptions, WaitForExecutionResult$1 as WaitForExecutionResult, WriteOptions, extractCallData, fetchPendingTxs, matchPendingTransaction, index as safe, simulate, submitTx, waitForExecution, write };
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ import {
2
+ extractCallData,
3
+ fetchPendingTxs,
4
+ matchPendingTransaction,
5
+ safe_exports,
6
+ simulate,
7
+ submitTx,
8
+ waitForExecution,
9
+ write
10
+ } from "./chunk-YQE6NIEB.js";
11
+ export {
12
+ extractCallData,
13
+ fetchPendingTxs,
14
+ matchPendingTransaction,
15
+ safe_exports as safe,
16
+ simulate,
17
+ submitTx,
18
+ waitForExecution,
19
+ write
20
+ };
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}