@instadapp/avocado-base 0.0.0-dev.d831e20 → 0.0.0-dev.dcb4af3

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.
Files changed (45) hide show
  1. package/.github/workflows/npm-publish-dev.yml +2 -5
  2. package/.vscode/settings.json +67 -0
  3. package/abi/avoFactoryProxy.json +1 -1
  4. package/abi/forwarder.json +1 -1
  5. package/abi/multisigAgnosticForwarder.json +937 -0
  6. package/abi/multisigForwarder.json +697 -0
  7. package/app.vue +5 -5
  8. package/assets/images/icons/check.svg +3 -0
  9. package/assets/images/icons/copy.svg +9 -2
  10. package/assets/images/icons/hammer.svg +5 -0
  11. package/assets/images/icons/info-2.svg +12 -0
  12. package/assets/images/icons/reject-proposal.svg +3 -3
  13. package/assets/images/icons/stars.svg +4 -0
  14. package/assets/images/icons/trash-2.svg +5 -5
  15. package/components/ActionLogo.vue +33 -29
  16. package/components/ActionMetadata.vue +44 -29
  17. package/components/Address.vue +74 -0
  18. package/components/AuthorityAvatar.vue +39 -0
  19. package/components/ChainLogo.vue +18 -563
  20. package/components/CopyClipboard.vue +42 -0
  21. package/components/metadata/Bridge.vue +33 -14
  22. package/components/metadata/CrossTransfer.vue +37 -28
  23. package/components/metadata/GasTopup.vue +17 -12
  24. package/components/metadata/Permit2.vue +14 -10
  25. package/components/metadata/Signers.vue +19 -0
  26. package/components/metadata/Swap.vue +45 -46
  27. package/components/metadata/Transfer.vue +28 -25
  28. package/contracts/MultisigAgnosticForwarder.ts +1423 -0
  29. package/contracts/MultisigForwarder.ts +859 -0
  30. package/contracts/factories/MultisigAgnosticForwarder__factory.ts +2135 -0
  31. package/contracts/factories/MultisigForwarder__factory.ts +721 -0
  32. package/contracts/factories/index.ts +2 -0
  33. package/contracts/index.ts +4 -0
  34. package/eslint.config.mjs +34 -0
  35. package/nuxt.config.ts +21 -12
  36. package/package.json +16 -14
  37. package/server/utils/index.ts +4 -4
  38. package/utils/avocado.ts +17 -17
  39. package/utils/bignumber.ts +47 -36
  40. package/utils/formatter.ts +55 -61
  41. package/utils/helper.ts +34 -30
  42. package/utils/metadata.ts +431 -310
  43. package/utils/network.ts +569 -186
  44. package/utils/services.ts +15 -10
  45. package/utils/utils.d.ts +122 -104
package/utils/services.ts CHANGED
@@ -1,14 +1,19 @@
1
- export const fetchTokenByAddress = async (
2
- address: string,
3
- chainId: string | number
4
- ) => {
5
- if (!address || !chainId) return null;
1
+ export async function fetchTokenByAddress(address: string, chainId: string | number, tokens?: ITokenPrice[]) {
2
+ if (!address || !chainId)
3
+ return null
4
+
5
+ if (tokens?.length) {
6
+ const token = tokens.find(token => token.address?.toLocaleLowerCase() === address?.toLocaleLowerCase() && token.chain_id == chainId)
7
+ if (token)
8
+ return token
9
+ }
10
+
6
11
  const [token] = (await $fetch(`${blockQueryURL}/${chainId}/tokens`, {
7
12
  params: {
8
- sparkline: false,
9
- "addresses[]": [address],
13
+ 'sparkline': false,
14
+ 'addresses[]': [address],
10
15
  },
11
- })) as ITokenPrice[];
16
+ })) as ITokenPrice[]
12
17
 
13
- return token;
14
- };
18
+ return token
19
+ }
package/utils/utils.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { Chain } from 'viem'
2
+
1
3
  declare global {
2
4
  type ChainId =
3
5
  | 1
@@ -11,121 +13,137 @@ declare global {
11
13
  | 250
12
14
  | 634
13
15
  | 1313161554
14
- | 63400;
15
-
16
- type ISlackMessageType = "danger" | "error" | "success" | "banner";
16
+ | 8453
17
+ | 122
18
+ | 534352
19
+ | 204
20
+ | 63400
21
+ | 169
22
+ | 34443
23
+ | 81457
24
+ | 59144
25
+ | 146
26
+ | 9745
27
+
28
+ type ISlackMessageType = 'danger' | 'error' | 'success' | 'banner'
17
29
 
18
- type MetadataTypes = keyof typeof MetadataEnums;
30
+ type MetadataTypes = keyof typeof MetadataEnums
19
31
 
20
- type PayloadFunction = (data: any, type: MetadataTypes) => any;
32
+ type PayloadFunction = (data: any, type: MetadataTypes) => any
21
33
 
22
- type IPayload = Record<MetadataTypes, PayloadFunction>;
34
+ type IPayload = Record<MetadataTypes, PayloadFunction>
23
35
 
24
36
  interface Network {
25
- name: string;
26
- debankName?: string;
27
- ankrName?: string;
28
- zerionName?: string;
29
- chainId: ChainId;
30
- color: string;
31
- isAvocado?: boolean;
32
- serverRpcUrl: string | undefined;
33
- balanceResolverAddress?: string;
34
- usdcAddress: string;
35
- explorerUrl: string;
37
+ name: string
38
+ debankName?: string
39
+ ankrName?: string
40
+ zerionName?: string
41
+ chainId: ChainId
42
+ color: string
43
+ isAvocado?: boolean
44
+ serverRpcUrl: string | undefined
45
+ balanceResolverAddress?: string
46
+ usdcAddress?: string
47
+ explorerUrl: string
48
+ fakeTransactionHash: string
49
+ viemChain: Chain
50
+ legacySupported: boolean
51
+ // must start with https://
52
+ apiURL: `https://${string}` | null
36
53
  params: {
37
- chainName?: string;
38
- iconUrls?: string[];
39
- rpcUrls: string[];
54
+ chainName?: string
55
+ iconUrls?: string[]
56
+ rpcUrls: string[] | readonly string[]
40
57
  nativeCurrency?: {
41
- name: string;
42
- symbol: string;
43
- decimals: number;
44
- };
45
- };
58
+ name: string
59
+ symbol: string
60
+ decimals: number
61
+ }
62
+ }
46
63
  }
47
64
 
48
- type SignMetadataProps = {
49
- token: string;
50
- spender: string;
51
- amount: string;
52
- expiration: string;
53
- };
54
-
55
- type DappMetadataProps = {
56
- name: string;
57
- url: string;
58
- };
59
-
60
- type SendMetadataProps = {
61
- token: string;
62
- amount: string;
63
- receiver: string;
64
- };
65
-
66
- type CrossSendMetadataProps = {
67
- fromToken: string;
68
- toToken: string;
69
- toChainId: string;
70
- amount: string;
71
- receiver: string;
72
- };
73
-
74
- type AuthMetadataProps = {
75
- address: string;
76
- chainId: string;
77
- remove: boolean;
78
- };
79
-
80
- type UpgradeMetadataProps = {
81
- version: string;
82
- walletImpl: string;
83
- };
84
-
85
- type TopupMetadataProps = {
86
- amount: string;
87
- token: string;
88
- onBehalf: string;
89
- };
90
-
91
- type BridgeMetadataProps = {
92
- amount: string;
93
- receiver: string;
94
- fromToken: string;
95
- toToken: string;
96
- toChainId: string;
97
- bridgeFee: string;
98
- nativeToken: string;
99
- };
100
-
101
- type SwapMetadataProps = {
102
- sellToken: string;
103
- buyToken: string;
104
- sellAmount: string;
105
- buyAmount: string;
106
- receiver: string;
107
- protocol?: string;
108
- };
109
-
110
- type MetadataProps = {
111
- type: MetadataTypes,
112
- encodedData: string;
113
- version?: string;
114
- };
65
+ interface SignMetadataProps {
66
+ token: string
67
+ spender: string
68
+ amount: string
69
+ expiration: string
70
+ }
115
71
 
116
- interface ITokenPrice {
117
- address: string;
118
- chain_id: string;
119
- name: string;
120
- symbol: string;
121
- decimals: number;
122
- logo_url: string;
123
- price: string;
124
- coingecko_id: string;
125
- sparkline_price_7d: number[];
72
+ interface DappMetadataProps {
73
+ name: string
74
+ url: string
126
75
  }
127
76
 
128
- }
77
+ interface SendMetadataProps {
78
+ token: string
79
+ amount: string
80
+ receiver: string
81
+ }
82
+
83
+ interface CrossSendMetadataProps {
84
+ fromToken: string
85
+ toToken: string
86
+ toChainId: string
87
+ amount: string
88
+ receiver: string
89
+ provider?: string
90
+ }
91
+
92
+ interface AuthMetadataProps {
93
+ address: string
94
+ chainId: string
95
+ remove: boolean
96
+ }
97
+
98
+ interface UpgradeMetadataProps {
99
+ version: string
100
+ walletImpl: string
101
+ }
129
102
 
130
- export { }
103
+ interface TopupMetadataProps {
104
+ amount: string
105
+ token: string
106
+ onBehalf: string
107
+ }
108
+
109
+ interface BridgeMetadataProps {
110
+ amount: string
111
+ receiver: string
112
+ fromToken: string
113
+ toToken: string
114
+ toChainId: string
115
+ bridgeFee: string
116
+ nativeToken: string
117
+ version?: string
118
+ provider: string
119
+ }
120
+
121
+ interface SwapMetadataProps {
122
+ sellToken: string
123
+ buyToken: string
124
+ sellAmount: string
125
+ buyAmount: string
126
+ receiver: string
127
+ protocol?: string
128
+ }
129
+
130
+ interface MetadataProps {
131
+ type: MetadataTypes
132
+ encodedData: string
133
+ version?: string
134
+ }
135
+
136
+ interface ITokenPrice {
137
+ address: string
138
+ chain_id: string
139
+ name: string
140
+ symbol: string
141
+ decimals: number
142
+ logo_url: string
143
+ price: string
144
+ coingecko_id: string
145
+ sparkline_price_7d: number[]
146
+ }
147
+ }
131
148
 
149
+ export {}