@instadapp/avocado-base 0.0.0-dev.ebef45a → 0.0.0-dev.f0b0c4f

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.
@@ -6,9 +6,11 @@ export type { BalanceResolver } from "./BalanceResolver";
6
6
  export type { Erc20 } from "./Erc20";
7
7
  export type { Forwarder } from "./Forwarder";
8
8
  export type { GaslessWallet } from "./GaslessWallet";
9
+ export type { MultisigForwarder } from "./MultisigForwarder";
9
10
  export * as factories from "./factories";
10
11
  export { AvoFactoryProxy__factory } from "./factories/AvoFactoryProxy__factory";
11
12
  export { BalanceResolver__factory } from "./factories/BalanceResolver__factory";
12
13
  export { Erc20__factory } from "./factories/Erc20__factory";
13
14
  export { Forwarder__factory } from "./factories/Forwarder__factory";
14
15
  export { GaslessWallet__factory } from "./factories/GaslessWallet__factory";
16
+ export { MultisigForwarder__factory } from "./factories/MultisigForwarder__factory";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instadapp/avocado-base",
3
- "version": "0.0.0-dev.ebef45a",
3
+ "version": "0.0.0-dev.f0b0c4f",
4
4
  "type": "module",
5
5
  "main": "./nuxt.config.ts",
6
6
  "types": "global.d.ts",
package/utils/metadata.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ethers, utils } from "ethers";
2
- import { Forwarder__factory } from "../contracts";
2
+ import { Forwarder__factory, MultisigForwarder__factory } from "../contracts";
3
+ import { toBN } from "./bignumber";
3
4
 
4
5
  export const MetadataEnums = {
5
6
  "transfer": "transfer",
@@ -17,6 +18,7 @@ import { Forwarder__factory } from "../contracts";
17
18
  "add-signers": "add-signers",
18
19
  "remove-signers": "remove-signers",
19
20
  "change-threshold": "change-threshold",
21
+ "import": "import",
20
22
  } as const;
21
23
 
22
24
  const multiMetadataTypes = ["bytes[]"];
@@ -52,6 +54,7 @@ const actionMetadataTypes: Record<MetadataTypes, string[]> = {
52
54
  "gas-topup": ["uint256 amount", "address token", "address onBehalf"],
53
55
  upgrade: ["bytes32 version", "address walletImpl"],
54
56
  dapp: ["string name", "string url"],
57
+ "import": ["bytes32 protocol", "uint256 valueInUsd"],
55
58
  auth: ["address address", "uint256 chainId", "bool remove"],
56
59
  deploy: [],
57
60
  permit2: [
@@ -306,6 +309,24 @@ export const encodeRemoveSignersMetadata = (
306
309
  return single ? encodeMultipleActions(data) : data;
307
310
  };
308
311
 
312
+ export const encodeImportMetadata = (
313
+ protocol: string,
314
+ valueInUsd: string,
315
+ single = true
316
+ ) => {
317
+ const encodedData = ethers.utils.defaultAbiCoder.encode(
318
+ actionMetadataTypes["import"],
319
+ [protocol, valueInUsd]
320
+ );
321
+
322
+ const data = encodeMetadata({
323
+ type: MetadataEnums["import"],
324
+ encodedData,
325
+ });
326
+
327
+ return single ? encodeMultipleActions(data) : data;
328
+ };
329
+
309
330
  export const encodeAddSignersMetadata = (
310
331
  addresses: string[],
311
332
  single = true
@@ -346,8 +367,10 @@ export const decodeMetadata = (metadata: string) => {
346
367
  }
347
368
  };
348
369
 
370
+ const iface = Forwarder__factory.createInterface();
371
+ const ifaceMultisig = MultisigForwarder__factory.createInterface();
372
+
349
373
  const getMetadataFromData = (data: string) => {
350
- const iface = Forwarder__factory.createInterface();
351
374
  let metadata = "0x";
352
375
 
353
376
  if (data.startsWith("0x18e7f485")) {
@@ -367,28 +390,18 @@ const getMetadataFromData = (data: string) => {
367
390
  } else {
368
391
  metadata = executeDataV2.params_.metadata;
369
392
  }
370
- } else if (data.startsWith("0x85114d53")) {
371
- const executeDataV3 = iface.decodeFunctionData("executeV3", data);
372
- if (
373
- executeDataV3.params_.metadata === "0x" ||
374
- !executeDataV3.params_.metadata
375
- ) {
376
- return null;
377
- } else {
378
- metadata = executeDataV3.params_.metadata;
379
- }
380
393
  } else {
381
- const executeDataMultisigV3 = iface.decodeFunctionData(
382
- "executeMultisigV3",
394
+ const executeDataMultisig = ifaceMultisig.decodeFunctionData(
395
+ "executeV1",
383
396
  data
384
397
  );
385
398
  if (
386
- executeDataMultisigV3.params_.metadata === "0x" ||
387
- !executeDataMultisigV3.params_.metadata
399
+ executeDataMultisig.params_.metadata === "0x" ||
400
+ !executeDataMultisig.params_.metadata
388
401
  ) {
389
402
  return null;
390
403
  } else {
391
- metadata = executeDataMultisigV3.params_.metadata;
404
+ metadata = executeDataMultisig.params_.metadata;
392
405
  }
393
406
  }
394
407
 
@@ -397,6 +410,11 @@ const getMetadataFromData = (data: string) => {
397
410
 
398
411
 
399
412
  const typesPayload: IPayload = {
413
+ import: (data, type) => ({
414
+ type,
415
+ protocol: utils.parseBytes32String(data.protocol || ""),
416
+ valueInUsd: toBN(data.valueInUsd).toFixed(),
417
+ }),
400
418
  transfer: (data, type) => ({
401
419
  type,
402
420
  token: data.token,
package/utils/network.ts CHANGED
@@ -10,7 +10,9 @@ import {
10
10
  AVO_STAGING_EXPLORER_URL,
11
11
  } from './avocado'
12
12
 
13
- export const bridgeDisabledNetworks = [1101];
13
+ export const bridgeDisabledNetworks = [];
14
+
15
+ export const networksSimulationNotSupported = [1313161554, 1101]
14
16
 
15
17
  export const networks: Network[] = [
16
18
  {
@@ -88,6 +90,7 @@ export const networks: Network[] = [
88
90
  name: 'Base',
89
91
  chainId: 8453,
90
92
  color: '#1E2024',
93
+ ankrName:'base',
91
94
  explorerUrl: 'https://basescan.org',
92
95
  apiURL: 'https://api.basescan.org',
93
96
  get serverRpcUrl() {
@@ -133,6 +136,7 @@ export const networks: Network[] = [
133
136
  name: "Polygon zkEVM",
134
137
  chainId: 1101,
135
138
  color: "#8544f6",
139
+ ankrName: 'polygon_zkevm',
136
140
  explorerUrl: "https://zkevm.polygonscan.com",
137
141
  apiURL: 'https://api-zkevm.polygonscan.com',
138
142
  balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
@@ -225,6 +229,7 @@ export const networks: Network[] = [
225
229
  debankName: "xdai",
226
230
  zerionName: "xdai",
227
231
  color: "#04795C",
232
+ ankrName: 'gnosis',
228
233
  chainId: 100,
229
234
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
230
235
  explorerUrl: "https://gnosisscan.io",