@instadapp/avocado-base 0.2.2 → 0.2.3

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/utils/metadata.ts CHANGED
@@ -1,292 +1,265 @@
1
- import { ethers, utils } from "ethers";
2
- import { Forwarder__factory, MultisigForwarder__factory, MultisigAgnosticForwarder__factory } from "../contracts";
3
- import { toBN } from "./bignumber";
1
+ import { ethers, utils } from 'ethers'
2
+ import { Forwarder__factory, MultisigAgnosticForwarder__factory, MultisigForwarder__factory } from '../contracts'
3
+ import { toBN } from './bignumber'
4
4
 
5
5
  export const MetadataEnums = {
6
- transfer: "transfer",
7
- bridge: "bridge",
6
+ 'transfer': 'transfer',
7
+ 'bridge': 'bridge',
8
8
  'bridge-v2': 'bridge-v2',
9
- swap: "swap",
10
- "gas-topup": "gas-topup",
11
- upgrade: "upgrade",
12
- dapp: "dapp",
13
- deploy: "deploy",
14
- permit2: "permit2",
15
- "cross-transfer": "cross-transfer",
9
+ 'swap': 'swap',
10
+ 'gas-topup': 'gas-topup',
11
+ 'upgrade': 'upgrade',
12
+ 'dapp': 'dapp',
13
+ 'deploy': 'deploy',
14
+ 'permit2': 'permit2',
15
+ 'cross-transfer': 'cross-transfer',
16
16
  'cross-transfer-v2': 'cross-transfer-v2',
17
- auth: "auth",
18
- rejection: "rejection",
19
- "instadapp-pro": "instadapp-pro",
20
- "add-signers": "add-signers",
21
- "remove-signers": "remove-signers",
22
- "change-threshold": "change-threshold",
23
- import: "import",
24
- mass: "mass",
25
- "tx-builder": "tx-builder",
26
- "avocado-bridge": "avocado-bridge",
27
- } as const;
28
-
29
- const multiMetadataTypes = ["bytes[]"];
30
-
31
- const metadataTypes = ["bytes32 type", "uint8 version", "bytes data"];
17
+ 'auth': 'auth',
18
+ 'rejection': 'rejection',
19
+ 'instadapp-pro': 'instadapp-pro',
20
+ 'add-signers': 'add-signers',
21
+ 'remove-signers': 'remove-signers',
22
+ 'change-threshold': 'change-threshold',
23
+ 'import': 'import',
24
+ 'mass': 'mass',
25
+ 'tx-builder': 'tx-builder',
26
+ 'avocado-bridge': 'avocado-bridge',
27
+ } as const
28
+
29
+ const multiMetadataTypes = ['bytes[]']
30
+
31
+ const metadataTypes = ['bytes32 type', 'uint8 version', 'bytes data']
32
32
 
33
33
  const actionMetadataTypes: Record<MetadataTypes, string[]> = {
34
- transfer: ["address token", "uint256 amount", "address receiver"],
35
- "cross-transfer": [
36
- "address fromToken",
37
- "address toToken",
38
- "uint256 toChainId",
39
- "uint256 amount",
40
- "address receiver",
34
+ 'transfer': ['address token', 'uint256 amount', 'address receiver'],
35
+ 'cross-transfer': [
36
+ 'address fromToken',
37
+ 'address toToken',
38
+ 'uint256 toChainId',
39
+ 'uint256 amount',
40
+ 'address receiver',
41
41
  ],
42
- "cross-transfer-v2": [
43
- "address fromToken",
44
- "address toToken",
45
- "uint256 toChainId",
46
- "uint256 amount",
47
- "address receiver",
48
- "bytes32 provider",
42
+ 'cross-transfer-v2': [
43
+ 'address fromToken',
44
+ 'address toToken',
45
+ 'uint256 toChainId',
46
+ 'uint256 amount',
47
+ 'address receiver',
48
+ 'bytes32 provider',
49
49
  ],
50
- bridge: [
51
- "uint256 amount",
52
- "address receiver",
53
- "address fromToken",
54
- "address toToken",
55
- "uint256 toChainId",
56
- "uint256 bridgeFee",
57
- "address nativeToken",
50
+ 'bridge': [
51
+ 'uint256 amount',
52
+ 'address receiver',
53
+ 'address fromToken',
54
+ 'address toToken',
55
+ 'uint256 toChainId',
56
+ 'uint256 bridgeFee',
57
+ 'address nativeToken',
58
58
  ],
59
59
  'bridge-v2': [
60
- "uint256 amount",
61
- "address receiver",
62
- "address fromToken",
63
- "address toToken",
64
- "uint256 toChainId",
65
- "uint256 bridgeFee",
66
- "address nativeToken",
67
- "bytes32 provider",
60
+ 'uint256 amount',
61
+ 'address receiver',
62
+ 'address fromToken',
63
+ 'address toToken',
64
+ 'uint256 toChainId',
65
+ 'uint256 bridgeFee',
66
+ 'address nativeToken',
67
+ 'bytes32 provider',
68
68
  ],
69
- swap: [
70
- "address sellToken",
71
- "address buyToken",
72
- "uint256 sellAmount",
73
- "uint256 buyAmount",
74
- "address receiver",
75
- "bytes32 protocol",
69
+ 'swap': [
70
+ 'address sellToken',
71
+ 'address buyToken',
72
+ 'uint256 sellAmount',
73
+ 'uint256 buyAmount',
74
+ 'address receiver',
75
+ 'bytes32 protocol',
76
76
  ],
77
- "gas-topup": ["uint256 amount", "address token", "address onBehalf"],
78
- upgrade: ["bytes32 version", "address walletImpl"],
79
- dapp: ["string name", "string url"],
80
- import: ["bytes32 protocol", "uint256 valueInUsd"],
81
- auth: ["address address", "uint256 chainId", "bool remove"],
82
- deploy: [],
83
- "tx-builder": ["bytes32 actionCount"],
84
- permit2: [
85
- "address token",
86
- "address spender",
87
- "uint160 amount",
88
- "uint48 expiration",
77
+ 'gas-topup': ['uint256 amount', 'address token', 'address onBehalf'],
78
+ 'upgrade': ['bytes32 version', 'address walletImpl'],
79
+ 'dapp': ['string name', 'string url'],
80
+ 'import': ['bytes32 protocol', 'uint256 valueInUsd'],
81
+ 'auth': ['address address', 'uint256 chainId', 'bool remove'],
82
+ 'deploy': [],
83
+ 'tx-builder': ['bytes32 actionCount'],
84
+ 'permit2': [
85
+ 'address token',
86
+ 'address spender',
87
+ 'uint160 amount',
88
+ 'uint48 expiration',
89
89
  ],
90
- "instadapp-pro": ["string castDetails"],
91
- "add-signers": ["address[] signers"],
92
- "remove-signers": ["address[] signers"],
93
- "change-threshold": ["uint8 count"],
94
- rejection: ["bytes32 id"],
95
- "avocado-bridge": ["bytes32 id", "uint256 toChainId"],
96
- mass: ["bool isMass"],
97
- };
98
-
99
- const encodeMetadata = (props: MetadataProps) => {
90
+ 'instadapp-pro': ['string castDetails'],
91
+ 'add-signers': ['address[] signers'],
92
+ 'remove-signers': ['address[] signers'],
93
+ 'change-threshold': ['uint8 count'],
94
+ 'rejection': ['bytes32 id'],
95
+ 'avocado-bridge': ['bytes32 id', 'uint256 toChainId'],
96
+ 'mass': ['bool isMass'],
97
+ }
98
+
99
+ function encodeMetadata(props: MetadataProps) {
100
100
  return ethers.utils.defaultAbiCoder.encode(metadataTypes, [
101
101
  ethers.utils.formatBytes32String(props.type),
102
- props.version || "1",
102
+ props.version || '1',
103
103
  props.encodedData,
104
- ]);
105
- };
104
+ ])
105
+ }
106
106
 
107
- export const encodeDappMetadata = (
108
- params: DappMetadataProps,
109
- single = true
110
- ) => {
107
+ export function encodeDappMetadata(params: DappMetadataProps, single = true) {
111
108
  const encodedData = ethers.utils.defaultAbiCoder.encode(
112
109
  actionMetadataTypes.dapp,
113
- [params.name, params.url]
114
- );
110
+ [params.name, params.url],
111
+ )
115
112
 
116
113
  const data = encodeMetadata({
117
114
  type: MetadataEnums.dapp,
118
115
  encodedData,
119
- });
116
+ })
120
117
 
121
- return single ? encodeMultipleActions(data) : data;
122
- };
118
+ return single ? encodeMultipleActions(data) : data
119
+ }
123
120
 
124
- export const encodeAvocadoBridgeMetadata = (
125
- id: string,
126
- toChainId: string | number,
127
- single = true
128
- ) => {
121
+ export function encodeAvocadoBridgeMetadata(id: string, toChainId: string | number, single = true) {
129
122
  const encodedData = ethers.utils.defaultAbiCoder.encode(
130
- actionMetadataTypes["avocado-bridge"],
131
- [id, toChainId]
132
- );
123
+ actionMetadataTypes['avocado-bridge'],
124
+ [id, toChainId],
125
+ )
133
126
 
134
127
  const data = encodeMetadata({
135
- type: MetadataEnums["avocado-bridge"],
128
+ type: MetadataEnums['avocado-bridge'],
136
129
  encodedData,
137
- });
130
+ })
138
131
 
139
- return single ? encodeMultipleActions(data) : data;
140
- };
132
+ return single ? encodeMultipleActions(data) : data
133
+ }
141
134
 
142
- export const encodeTransferMetadata = (
143
- params: SendMetadataProps,
144
- single = true
145
- ) => {
135
+ export function encodeTransferMetadata(params: SendMetadataProps, single = true) {
146
136
  const encodedData = ethers.utils.defaultAbiCoder.encode(
147
137
  actionMetadataTypes.transfer,
148
- [params.token, params.amount, params.receiver]
149
- );
138
+ [params.token, params.amount, params.receiver],
139
+ )
150
140
 
151
141
  const data = encodeMetadata({
152
142
  type: MetadataEnums.transfer,
153
143
  encodedData,
154
- });
144
+ })
155
145
 
156
- return single ? encodeMultipleActions(data) : data;
157
- };
146
+ return single ? encodeMultipleActions(data) : data
147
+ }
158
148
 
159
- export const encodeRejectionMetadata = (id: string, single = true) => {
149
+ export function encodeRejectionMetadata(id: string, single = true) {
160
150
  const encodedData = ethers.utils.defaultAbiCoder.encode(
161
151
  actionMetadataTypes.rejection,
162
- [id]
163
- );
152
+ [id],
153
+ )
164
154
 
165
155
  const data = encodeMetadata({
166
156
  type: MetadataEnums.rejection,
167
157
  encodedData,
168
- });
169
-
170
- return single ? encodeMultipleActions(data) : data;
171
- };
158
+ })
172
159
 
173
- export const encodeCrossTransferMetadata = (
174
- params: CrossSendMetadataProps,
175
- single = true
176
- ) => {
160
+ return single ? encodeMultipleActions(data) : data
161
+ }
177
162
 
178
- const type = params.provider ? MetadataEnums["cross-transfer-v2"] : MetadataEnums["cross-transfer"]
163
+ export function encodeCrossTransferMetadata(params: CrossSendMetadataProps, single = true) {
164
+ const type = params.provider ? MetadataEnums['cross-transfer-v2'] : MetadataEnums['cross-transfer']
179
165
 
180
- const encodedData = params.provider ? ethers.utils.defaultAbiCoder.encode(
181
- actionMetadataTypes[type],
182
- [
183
- params.fromToken,
184
- params.toToken,
185
- params.toChainId,
186
- params.amount,
187
- params.receiver,
188
- params.provider
189
- ]
190
- ) : ethers.utils.defaultAbiCoder.encode(
191
- actionMetadataTypes[type],
192
- [
193
- params.fromToken,
194
- params.toToken,
195
- params.toChainId,
196
- params.amount,
197
- params.receiver,
198
- ]
199
- );
166
+ const encodedData = params.provider
167
+ ? ethers.utils.defaultAbiCoder.encode(
168
+ actionMetadataTypes[type],
169
+ [
170
+ params.fromToken,
171
+ params.toToken,
172
+ params.toChainId,
173
+ params.amount,
174
+ params.receiver,
175
+ params.provider,
176
+ ],
177
+ )
178
+ : ethers.utils.defaultAbiCoder.encode(
179
+ actionMetadataTypes[type],
180
+ [
181
+ params.fromToken,
182
+ params.toToken,
183
+ params.toChainId,
184
+ params.amount,
185
+ params.receiver,
186
+ ],
187
+ )
200
188
 
201
189
  const data = encodeMetadata({
202
190
  type: MetadataEnums[type],
203
191
  encodedData,
204
- });
192
+ })
205
193
 
206
- return single ? encodeMultipleActions(data) : data;
207
- };
194
+ return single ? encodeMultipleActions(data) : data
195
+ }
208
196
 
209
- export const encodeAuthMetadata = (
210
- params: AuthMetadataProps,
211
- single = true
212
- ) => {
197
+ export function encodeAuthMetadata(params: AuthMetadataProps, single = true) {
213
198
  const encodedData = ethers.utils.defaultAbiCoder.encode(
214
- actionMetadataTypes["auth"],
215
- [params.address, params.chainId, params.remove]
216
- );
199
+ actionMetadataTypes.auth,
200
+ [params.address, params.chainId, params.remove],
201
+ )
217
202
 
218
203
  const data = encodeMetadata({
219
204
  type: MetadataEnums.auth,
220
205
  encodedData,
221
- });
206
+ })
222
207
 
223
- return single ? encodeMultipleActions(data) : data;
224
- };
208
+ return single ? encodeMultipleActions(data) : data
209
+ }
225
210
 
226
- export const encodeDeployMetadata = (single = true) => {
211
+ export function encodeDeployMetadata(single = true) {
227
212
  const data = encodeMetadata({
228
213
  type: MetadataEnums.deploy,
229
- encodedData: "0x",
230
- });
214
+ encodedData: '0x',
215
+ })
231
216
 
232
- return single ? encodeMultipleActions(data) : data;
233
- };
217
+ return single ? encodeMultipleActions(data) : data
218
+ }
234
219
 
235
- export const encodeTransactionBuilderMetadata = (
236
- actionCount: string,
237
- single = true
238
- ) => {
220
+ export function encodeTransactionBuilderMetadata(actionCount: string, single = true) {
239
221
  const encodedData = ethers.utils.defaultAbiCoder.encode(
240
- actionMetadataTypes["tx-builder"],
241
- [actionCount]
242
- );
222
+ actionMetadataTypes['tx-builder'],
223
+ [actionCount],
224
+ )
243
225
 
244
226
  const data = encodeMetadata({
245
- type: MetadataEnums["tx-builder"],
227
+ type: MetadataEnums['tx-builder'],
246
228
  encodedData,
247
- });
229
+ })
248
230
 
249
- return single ? encodeMultipleActions(data) : data;
250
- };
231
+ return single ? encodeMultipleActions(data) : data
232
+ }
251
233
 
252
- export const encodeWCSignMetadata = (
253
- params: SignMetadataProps,
254
- single = true
255
- ) => {
234
+ export function encodeWCSignMetadata(params: SignMetadataProps, single = true) {
256
235
  const encodedData = ethers.utils.defaultAbiCoder.encode(
257
- actionMetadataTypes["permit2"],
258
- [params.token, params.spender, params.amount, params.expiration]
259
- );
236
+ actionMetadataTypes.permit2,
237
+ [params.token, params.spender, params.amount, params.expiration],
238
+ )
260
239
 
261
240
  const data = encodeMetadata({
262
241
  type: MetadataEnums.permit2,
263
242
  encodedData,
264
- });
243
+ })
265
244
 
266
- return single ? encodeMultipleActions(data) : data;
267
- };
245
+ return single ? encodeMultipleActions(data) : data
246
+ }
268
247
 
269
- export const encodeUpgradeMetadata = (
270
- params: UpgradeMetadataProps,
271
- single = true
272
- ) => {
248
+ export function encodeUpgradeMetadata(params: UpgradeMetadataProps, single = true) {
273
249
  const encodedData = ethers.utils.defaultAbiCoder.encode(
274
250
  actionMetadataTypes.upgrade,
275
- [params.version, params.walletImpl]
276
- );
251
+ [params.version, params.walletImpl],
252
+ )
277
253
 
278
254
  const data = encodeMetadata({
279
255
  type: MetadataEnums.upgrade,
280
256
  encodedData,
281
- });
257
+ })
282
258
 
283
- return single ? encodeMultipleActions(data) : data;
284
- };
259
+ return single ? encodeMultipleActions(data) : data
260
+ }
285
261
 
286
- export const encodeSwapMetadata = (
287
- params: SwapMetadataProps,
288
- single = true
289
- ) => {
262
+ export function encodeSwapMetadata(params: SwapMetadataProps, single = true) {
290
263
  const encodedData = ethers.utils.defaultAbiCoder.encode(
291
264
  actionMetadataTypes.swap,
292
265
  [
@@ -296,239 +269,227 @@ export const encodeSwapMetadata = (
296
269
  params.buyAmount,
297
270
  params.receiver,
298
271
  params.protocol,
299
- ]
300
- );
272
+ ],
273
+ )
301
274
 
302
275
  const data = encodeMetadata({
303
276
  type: MetadataEnums.swap,
304
277
  encodedData,
305
- });
278
+ })
306
279
 
307
- return single ? encodeMultipleActions(data) : data;
308
- };
280
+ return single ? encodeMultipleActions(data) : data
281
+ }
309
282
 
310
- export const encodeTopupMetadata = (
311
- params: TopupMetadataProps,
312
- single = true
313
- ) => {
283
+ export function encodeTopupMetadata(params: TopupMetadataProps, single = true) {
314
284
  const encodedData = ethers.utils.defaultAbiCoder.encode(
315
- actionMetadataTypes["gas-topup"],
316
- [params.amount, params.token, params.onBehalf]
317
- );
285
+ actionMetadataTypes['gas-topup'],
286
+ [params.amount, params.token, params.onBehalf],
287
+ )
318
288
 
319
289
  const data = encodeMetadata({
320
- type: MetadataEnums["gas-topup"],
290
+ type: MetadataEnums['gas-topup'],
321
291
  encodedData,
322
- });
292
+ })
323
293
 
324
- return single ? encodeMultipleActions(data) : data;
325
- };
326
-
327
- export const encodeBridgeMetadata = (
328
- params: BridgeMetadataProps,
329
- single = true
330
- ) => {
331
- const type = params.version === '2' ? MetadataEnums["bridge-v2"] : MetadataEnums.bridge
294
+ return single ? encodeMultipleActions(data) : data
295
+ }
332
296
 
333
- const encodedData = params.version === '2' ? ethers.utils.defaultAbiCoder.encode(
334
- actionMetadataTypes["bridge-v2"],
335
- [
336
- params.amount,
337
- params.receiver,
338
- params.fromToken,
339
- params.toToken,
340
- params.toChainId,
341
- params.bridgeFee,
342
- params.nativeToken,
343
- params.provider
344
- ]
345
- ): ethers.utils.defaultAbiCoder.encode(
346
- actionMetadataTypes.bridge,
347
- [
348
- params.amount,
349
- params.receiver,
350
- params.fromToken,
351
- params.toToken,
352
- params.toChainId,
353
- params.bridgeFee,
354
- params.nativeToken,
355
- ]
356
- );
297
+ export function encodeBridgeMetadata(params: BridgeMetadataProps, single = true) {
298
+ const type = params.version === '2' ? MetadataEnums['bridge-v2'] : MetadataEnums.bridge
299
+
300
+ const encodedData = params.version === '2'
301
+ ? ethers.utils.defaultAbiCoder.encode(
302
+ actionMetadataTypes['bridge-v2'],
303
+ [
304
+ params.amount,
305
+ params.receiver,
306
+ params.fromToken,
307
+ params.toToken,
308
+ params.toChainId,
309
+ params.bridgeFee,
310
+ params.nativeToken,
311
+ params.provider,
312
+ ],
313
+ )
314
+ : ethers.utils.defaultAbiCoder.encode(
315
+ actionMetadataTypes.bridge,
316
+ [
317
+ params.amount,
318
+ params.receiver,
319
+ params.fromToken,
320
+ params.toToken,
321
+ params.toChainId,
322
+ params.bridgeFee,
323
+ params.nativeToken,
324
+ ],
325
+ )
357
326
 
358
327
  const data = encodeMetadata({
359
328
  type,
360
329
  encodedData,
361
- });
330
+ })
362
331
 
363
- return single ? encodeMultipleActions(data) : data;
364
- };
332
+ return single ? encodeMultipleActions(data) : data
333
+ }
365
334
 
366
- export const encodeChangeThresholdMetadata = (
367
- threshold: string | number,
368
- single = true
369
- ) => {
335
+ export function encodeChangeThresholdMetadata(threshold: string | number, single = true) {
370
336
  const encodedData = ethers.utils.defaultAbiCoder.encode(
371
- actionMetadataTypes["change-threshold"],
372
- [toBN(threshold).toNumber()]
373
- );
337
+ actionMetadataTypes['change-threshold'],
338
+ [toBN(threshold).toNumber()],
339
+ )
374
340
 
375
341
  const data = encodeMetadata({
376
- type: MetadataEnums["change-threshold"],
342
+ type: MetadataEnums['change-threshold'],
377
343
  encodedData,
378
- });
344
+ })
379
345
 
380
- return single ? encodeMultipleActions(data) : data;
381
- };
346
+ return single ? encodeMultipleActions(data) : data
347
+ }
382
348
 
383
- export const encodeRemoveSignersMetadata = (
384
- addresses: string[],
385
- single = true
386
- ) => {
349
+ export function encodeRemoveSignersMetadata(addresses: string[], single = true) {
387
350
  const encodedData = ethers.utils.defaultAbiCoder.encode(
388
- actionMetadataTypes["remove-signers"],
389
- [addresses]
390
- );
351
+ actionMetadataTypes['remove-signers'],
352
+ [addresses],
353
+ )
391
354
 
392
355
  const data = encodeMetadata({
393
- type: MetadataEnums["remove-signers"],
356
+ type: MetadataEnums['remove-signers'],
394
357
  encodedData,
395
- });
358
+ })
396
359
 
397
- return single ? encodeMultipleActions(data) : data;
398
- };
360
+ return single ? encodeMultipleActions(data) : data
361
+ }
399
362
 
400
- export const encodeImportMetadata = (
401
- protocol: string,
402
- valueInUsd: string,
403
- single = true
404
- ) => {
363
+ export function encodeImportMetadata(protocol: string, valueInUsd: string, single = true) {
405
364
  const encodedData = ethers.utils.defaultAbiCoder.encode(
406
- actionMetadataTypes["import"],
407
- [protocol, valueInUsd]
408
- );
365
+ actionMetadataTypes.import,
366
+ [protocol, valueInUsd],
367
+ )
409
368
 
410
369
  const data = encodeMetadata({
411
- type: MetadataEnums["import"],
370
+ type: MetadataEnums.import,
412
371
  encodedData,
413
- });
372
+ })
414
373
 
415
- return single ? encodeMultipleActions(data) : data;
416
- };
374
+ return single ? encodeMultipleActions(data) : data
375
+ }
417
376
 
418
- export const encodeMassMetadata = (single = true) => {
377
+ export function encodeMassMetadata(single = true) {
419
378
  const data = encodeMetadata({
420
379
  type: MetadataEnums.mass,
421
380
  encodedData: '0x',
422
- });
381
+ })
423
382
 
424
- return single ? encodeMultipleActions(data) : data;
383
+ return single ? encodeMultipleActions(data) : data
425
384
  }
426
385
 
427
- export const encodeAddSignersMetadata = (
428
- addresses: string[],
429
- single = true
430
- ) => {
386
+ export function encodeAddSignersMetadata(addresses: string[], single = true) {
431
387
  const encodedData = ethers.utils.defaultAbiCoder.encode(
432
- actionMetadataTypes["add-signers"],
433
- [addresses]
434
- );
388
+ actionMetadataTypes['add-signers'],
389
+ [addresses],
390
+ )
435
391
 
436
392
  const data = encodeMetadata({
437
- type: MetadataEnums["add-signers"],
393
+ type: MetadataEnums['add-signers'],
438
394
  encodedData,
439
- });
395
+ })
440
396
 
441
- return single ? encodeMultipleActions(data) : data;
442
- };
397
+ return single ? encodeMultipleActions(data) : data
398
+ }
443
399
 
444
- export const encodeMultipleActions = (...actionData: string[]) => {
445
- return ethers.utils.defaultAbiCoder.encode(multiMetadataTypes, [actionData]);
446
- };
400
+ export function encodeMultipleActions(...actionData: string[]) {
401
+ return ethers.utils.defaultAbiCoder.encode(multiMetadataTypes, [actionData])
402
+ }
447
403
 
448
- export const decodeData = (data: string) => {
404
+ export function decodeData(data: string) {
449
405
  try {
450
- const metadata = getMetadataFromData(data) || "0x";
406
+ const metadata = getMetadataFromData(data) || '0x'
451
407
 
452
- return parseMetadata(metadata);
453
- } catch (e) {
408
+ return parseMetadata(metadata)
409
+ }
410
+ catch {
454
411
  // console.log(e);
455
- return null;
412
+ return null
456
413
  }
457
- };
414
+ }
458
415
 
459
- export const decodeMetadata = (metadata: string) => {
416
+ export function decodeMetadata(metadata: string) {
460
417
  try {
461
- return parseMetadata(metadata);
462
- } catch (e) {
463
- return null;
418
+ return parseMetadata(metadata)
464
419
  }
465
- };
466
-
467
- const iface = Forwarder__factory.createInterface();
468
- const ifaceMultisig = MultisigForwarder__factory.createInterface();
469
- const ifaceAgnostic = MultisigAgnosticForwarder__factory.createInterface();
470
-
471
- const getMetadataFromData = (data: string) => {
472
- let metadata = "0x";
420
+ catch {
421
+ return null
422
+ }
423
+ }
473
424
 
474
- if(data.startsWith('0xc5e15557')) {
425
+ const iface = Forwarder__factory.createInterface()
426
+ const ifaceMultisig = MultisigForwarder__factory.createInterface()
427
+ const ifaceAgnostic = MultisigAgnosticForwarder__factory.createInterface()
475
428
 
476
- const executeData = ifaceAgnostic.decodeFunctionData("executeChainAgnosticV1", data);
429
+ function getMetadataFromData(data: string) {
430
+ let metadata = '0x'
477
431
 
432
+ if (data.startsWith('0xc5e15557')) {
433
+ const executeData = ifaceAgnostic.decodeFunctionData('executeChainAgnosticV1', data)
478
434
 
479
435
  const metadata = executeData?.params_?.params?.metadata
480
436
 
481
437
  return metadata === '0x' || !metadata ? null : metadata
482
438
  }
483
439
 
484
- else if (data.startsWith("0x18e7f485")) {
485
- const executeData = iface.decodeFunctionData("execute", data);
486
- if (executeData.metadata_ === "0x" || !executeData.metadata_) {
487
- return null;
488
- } else {
489
- metadata = executeData.metadata_;
440
+ else if (data.startsWith('0x18e7f485')) {
441
+ const executeData = iface.decodeFunctionData('execute', data)
442
+ if (executeData.metadata_ === '0x' || !executeData.metadata_) {
443
+ return null
444
+ }
445
+ else {
446
+ metadata = executeData.metadata_
490
447
  }
491
- } else if (data.startsWith("0x14f80a8d")) {
492
- const executeDataV2 = iface.decodeFunctionData("executeV2", data);
448
+ }
449
+ else if (data.startsWith('0x14f80a8d')) {
450
+ const executeDataV2 = iface.decodeFunctionData('executeV2', data)
493
451
  if (
494
- executeDataV2.params_.metadata === "0x" ||
495
- !executeDataV2.params_.metadata
452
+ executeDataV2.params_.metadata === '0x'
453
+ || !executeDataV2.params_.metadata
496
454
  ) {
497
- return null;
498
- } else {
499
- metadata = executeDataV2.params_.metadata;
455
+ return null
456
+ }
457
+ else {
458
+ metadata = executeDataV2.params_.metadata
500
459
  }
501
- } else {
460
+ }
461
+ else {
502
462
  const executeDataMultisig = ifaceMultisig.decodeFunctionData(
503
- "executeV1",
504
- data
505
- );
463
+ 'executeV1',
464
+ data,
465
+ )
506
466
  if (
507
- executeDataMultisig.params_.metadata === "0x" ||
508
- !executeDataMultisig.params_.metadata
467
+ executeDataMultisig.params_.metadata === '0x'
468
+ || !executeDataMultisig.params_.metadata
509
469
  ) {
510
- return null;
511
- } else {
512
- metadata = executeDataMultisig.params_.metadata;
470
+ return null
471
+ }
472
+ else {
473
+ metadata = executeDataMultisig.params_.metadata
513
474
  }
514
475
  }
515
476
 
516
- return metadata;
517
- };
477
+ return metadata
478
+ }
518
479
 
519
480
  const typesPayload: IPayload = {
520
- import: (data, type) => ({
481
+ 'import': (data, type) => ({
521
482
  type,
522
- protocol: utils.parseBytes32String(data.protocol || ""),
483
+ protocol: utils.parseBytes32String(data.protocol || ''),
523
484
  valueInUsd: toBN(data.valueInUsd).toFixed(),
524
485
  }),
525
- transfer: (data, type) => ({
486
+ 'transfer': (data, type) => ({
526
487
  type,
527
488
  token: data.token,
528
489
  amount: toBN(data.amount).toFixed(),
529
490
  receiver: data.receiver,
530
491
  }),
531
- bridge: (data, type) => ({
492
+ 'bridge': (data, type) => ({
532
493
  type,
533
494
  amount: toBN(data.amount).toFixed(),
534
495
  receiver: data.receiver,
@@ -537,7 +498,7 @@ const typesPayload: IPayload = {
537
498
  toChainId: data.toChainId ? data.toChainId.toString() : null,
538
499
  bridgeFee: toBN(data.bridgeFee).toFixed(),
539
500
  }),
540
- 'bridge-v2': (data, type) => ({
501
+ 'bridge-v2': data => ({
541
502
  type: 'bridge',
542
503
  amount: toBN(data.amount).toFixed(),
543
504
  receiver: data.receiver,
@@ -545,48 +506,48 @@ const typesPayload: IPayload = {
545
506
  fromToken: data.fromToken,
546
507
  toChainId: data.toChainId ? data.toChainId.toString() : null,
547
508
  bridgeFee: toBN(data.bridgeFee).toFixed(),
548
- provider: utils.parseBytes32String(data.provider || ""),
509
+ provider: utils.parseBytes32String(data.provider || ''),
549
510
  }),
550
- swap: (data, type) => ({
511
+ 'swap': (data, type) => ({
551
512
  type,
552
513
  buyAmount: toBN(data.buyAmount).toFixed(),
553
514
  sellAmount: toBN(data.sellAmount).toFixed(),
554
515
  buyToken: data.buyToken,
555
516
  sellToken: data.sellToken,
556
517
  receiver: data.receiver,
557
- protocol: utils.parseBytes32String(data.protocol || ""),
518
+ protocol: utils.parseBytes32String(data.protocol || ''),
558
519
  }),
559
- upgrade: (data, type) => ({
520
+ 'upgrade': (data, type) => ({
560
521
  type,
561
- version: utils.parseBytes32String(data.version || ""),
522
+ version: utils.parseBytes32String(data.version || ''),
562
523
  walletImpl: data.walletImpl,
563
524
  }),
564
- "gas-topup": (data, type) => ({
525
+ 'gas-topup': (data, type) => ({
565
526
  type,
566
527
  amount: toBN(data.amount).toFixed(),
567
528
  token: data.token,
568
529
  onBehalf: data.onBehalf,
569
530
  }),
570
- dapp: (data, type) => ({
531
+ 'dapp': (data, type) => ({
571
532
  type,
572
533
  name: data.name,
573
534
  url: data.url,
574
535
  }),
575
- deploy: (data, type) => ({
536
+ 'deploy': (data, type) => ({
576
537
  type,
577
538
  }),
578
- "tx-builder": (data, type) => ({
539
+ 'tx-builder': (data, type) => ({
579
540
  type,
580
- actionCount: utils.parseBytes32String(data.actionCount || ""),
541
+ actionCount: utils.parseBytes32String(data.actionCount || ''),
581
542
  }),
582
- permit2: (data, type) => ({
543
+ 'permit2': (data, type) => ({
583
544
  type,
584
545
  token: data.token,
585
546
  spender: data.spender,
586
547
  amount: toBN(data.amount).toFixed(),
587
548
  expiration: data.expiration,
588
549
  }),
589
- "cross-transfer": (data, type) => ({
550
+ 'cross-transfer': (data, type) => ({
590
551
  type,
591
552
  fromToken: data.fromToken,
592
553
  toToken: data.toToken,
@@ -594,86 +555,88 @@ const typesPayload: IPayload = {
594
555
  amount: toBN(data.amount).toFixed(),
595
556
  receiver: data.receiver,
596
557
  }),
597
- "cross-transfer-v2": (data, type) => ({
558
+ 'cross-transfer-v2': data => ({
598
559
  type: 'cross-transfer',
599
560
  fromToken: data.fromToken,
600
561
  toToken: data.toToken,
601
562
  toChainId: data.toChainId ? data.toChainId.toString() : null,
602
563
  amount: toBN(data.amount).toFixed(),
603
564
  receiver: data.receiver,
604
- provider: utils.parseBytes32String(data.provider || ""),
565
+ provider: utils.parseBytes32String(data.provider || ''),
605
566
  }),
606
- auth: (data) => ({
607
- type: data.remove ? "remove-authority" : "add-authority",
567
+ 'auth': data => ({
568
+ type: data.remove ? 'remove-authority' : 'add-authority',
608
569
  address: data.address,
609
570
  chainId: data.chainId ? data.chainId.toString() : null,
610
571
  remove: data.remove,
611
572
  }),
612
- "instadapp-pro": (data, type) => ({
573
+ 'instadapp-pro': (data, type) => ({
613
574
  type,
614
575
  castDetails: data.castDetails,
615
576
  }),
616
- rejection: (data, type) => ({
577
+ 'rejection': (data, type) => ({
617
578
  type,
618
579
  id: data.id,
619
580
  }),
620
- "add-signers": (data, type) => ({
581
+ 'add-signers': (data, type) => ({
621
582
  type,
622
583
  addresses: data.signers,
623
584
  }),
624
- "remove-signers": (data, type) => ({
585
+ 'remove-signers': (data, type) => ({
625
586
  type,
626
587
  addresses: data.signers,
627
588
  }),
628
- "change-threshold": (data, type) => ({
589
+ 'change-threshold': (data, type) => ({
629
590
  type,
630
591
  count: data.count,
631
592
  }),
632
- "avocado-bridge": (data, type) => ({
593
+ 'avocado-bridge': (data, type) => ({
633
594
  type,
634
595
  id: data.id,
635
596
  toChainId: data.toChainId ? data.toChainId.toString() : null,
636
597
  }),
637
- mass: (data, type) => ({
598
+ 'mass': (data, type) => ({
638
599
  type,
639
600
  data,
640
601
  }),
641
- };
602
+ }
642
603
 
643
- const parseMetadata = (metadata: string) => {
644
- const metadataArr = [];
604
+ function parseMetadata(metadata: string) {
605
+ const metadataArr = []
645
606
 
646
- const [decodedMultiMetadata = []] =
647
- (ethers.utils.defaultAbiCoder.decode(
607
+ const [decodedMultiMetadata = []]
608
+ = (ethers.utils.defaultAbiCoder.decode(
648
609
  multiMetadataTypes,
649
- metadata
650
- ) as string[]) || [];
610
+ metadata,
611
+ ) as string[]) || []
651
612
 
652
- for (let metadata of decodedMultiMetadata) {
613
+ for (const metadata of decodedMultiMetadata) {
653
614
  const decodedMetadata = ethers.utils.defaultAbiCoder.decode(
654
615
  metadataTypes,
655
- metadata
656
- );
616
+ metadata,
617
+ )
657
618
 
658
619
  const type = ethers.utils.parseBytes32String(
659
- decodedMetadata.type
660
- ) as keyof typeof actionMetadataTypes;
620
+ decodedMetadata.type,
621
+ ) as keyof typeof actionMetadataTypes
661
622
 
662
- const decodedData = decodedMetadata?.data === '0x' ? '' : ethers.utils.defaultAbiCoder.decode(
663
- actionMetadataTypes[type],
664
- decodedMetadata.data
665
- );
623
+ const decodedData = decodedMetadata?.data === '0x'
624
+ ? ''
625
+ : ethers.utils.defaultAbiCoder.decode(
626
+ actionMetadataTypes[type],
627
+ decodedMetadata.data,
628
+ )
666
629
 
667
- const payloadFunc = typesPayload[type];
630
+ const payloadFunc = typesPayload[type]
668
631
 
669
632
  if (payloadFunc) {
670
- const payload = payloadFunc(decodedData, type);
671
- metadataArr.push(payload);
633
+ const payload = payloadFunc(decodedData, type)
634
+ metadataArr.push(payload)
672
635
  }
673
636
  }
674
637
 
675
- return metadataArr;
676
- };
638
+ return metadataArr
639
+ }
677
640
 
678
641
  /**
679
642
  * Replaces hyphens with spaces and capitalizes the first letter of each word in a sentence.
@@ -681,14 +644,14 @@ const parseMetadata = (metadata: string) => {
681
644
  *
682
645
  * @returns {string} - The modified sentence with hyphens replaced with spaces and the first letter of each word capitalized.
683
646
  */
684
- export const formatTxType = (txType: string) => {
685
- if(txType === 'mass') {
686
- return 'Chain Agnostic Payments'
647
+ export function formatTxType(txType: string) {
648
+ if (txType === 'mass') {
649
+ return 'Chain Agnostic Payments'
687
650
  }
688
651
 
689
652
  const finalSentence = txType
690
- .replace("-", " ")
691
- .replace(/(^\w{1})|(\s+\w{1})/g, (letter) => letter.toUpperCase());
653
+ .replace('-', ' ')
654
+ .replace(/(^\w)|(\s+\w)/g, letter => letter.toUpperCase())
692
655
 
693
- return finalSentence;
694
- };
656
+ return finalSentence
657
+ }