@avail-project/ca-common 1.0.0-beta.1

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 (97) hide show
  1. package/dist/cjs/balances/ub-api.js +25 -0
  2. package/dist/cjs/cosmos/index.js +31 -0
  3. package/dist/cjs/data/chaindata.js +680 -0
  4. package/dist/cjs/data/chainid.js +91 -0
  5. package/dist/cjs/data/currency.js +77 -0
  6. package/dist/cjs/data/index.js +7 -0
  7. package/dist/cjs/data/utils.js +44 -0
  8. package/dist/cjs/evmabi/erc20.abi.js +349 -0
  9. package/dist/cjs/evmabi/index.js +6 -0
  10. package/dist/cjs/evmabi/vault.abi.js +1021 -0
  11. package/dist/cjs/evmabi/yakaggregator.abi.js +275 -0
  12. package/dist/cjs/fuelcontracts/ArcanaVault.js +2407 -0
  13. package/dist/cjs/fuelcontracts/ArcanaVaultFactory.js +18 -0
  14. package/dist/cjs/fuelcontracts/common.js +3 -0
  15. package/dist/cjs/fuelcontracts/index.js +5 -0
  16. package/dist/cjs/index.js +21 -0
  17. package/dist/cjs/permitutils/index.js +186 -0
  18. package/dist/cjs/proto/definition.js +4263 -0
  19. package/dist/cjs/proto/grpc.js +303 -0
  20. package/dist/cjs/rff/fuel.js +27 -0
  21. package/dist/cjs/rff/rff.js +77 -0
  22. package/dist/cjs/types/binarytypes.js +2 -0
  23. package/dist/cjs/types/index.js +5 -0
  24. package/dist/cjs/types/msgpack-axios.js +22 -0
  25. package/dist/cjs/vaultcontracts/index.js +4 -0
  26. package/dist/cjs/vaultcontracts/vaultcontracts.js +145 -0
  27. package/dist/cjs/xcs/autochoice.js +374 -0
  28. package/dist/cjs/xcs/bebop-agg.js +128 -0
  29. package/dist/cjs/xcs/iface.js +13 -0
  30. package/dist/cjs/xcs/index.js +8 -0
  31. package/dist/cjs/xcs/lifi-agg.js +104 -0
  32. package/dist/cjs/xcs/yieldyak-agg.js +113 -0
  33. package/dist/esm/balances/ub-api.js +21 -0
  34. package/dist/esm/cosmos/index.js +26 -0
  35. package/dist/esm/data/chaindata.js +677 -0
  36. package/dist/esm/data/chainid.js +85 -0
  37. package/dist/esm/data/currency.js +72 -0
  38. package/dist/esm/data/index.js +4 -0
  39. package/dist/esm/data/utils.js +34 -0
  40. package/dist/esm/evmabi/erc20.abi.js +346 -0
  41. package/dist/esm/evmabi/index.js +3 -0
  42. package/dist/esm/evmabi/vault.abi.js +1018 -0
  43. package/dist/esm/evmabi/yakaggregator.abi.js +272 -0
  44. package/dist/esm/fuelcontracts/ArcanaVault.js +2402 -0
  45. package/dist/esm/fuelcontracts/ArcanaVaultFactory.js +14 -0
  46. package/dist/esm/fuelcontracts/common.js +2 -0
  47. package/dist/esm/fuelcontracts/index.js +2 -0
  48. package/dist/esm/index.js +12 -0
  49. package/dist/esm/permitutils/index.js +181 -0
  50. package/dist/esm/proto/definition.js +4255 -0
  51. package/dist/esm/proto/grpc.js +297 -0
  52. package/dist/esm/rff/fuel.js +23 -0
  53. package/dist/esm/rff/rff.js +73 -0
  54. package/dist/esm/types/binarytypes.js +1 -0
  55. package/dist/esm/types/index.js +2 -0
  56. package/dist/esm/types/msgpack-axios.js +18 -0
  57. package/dist/esm/vaultcontracts/index.js +1 -0
  58. package/dist/esm/vaultcontracts/vaultcontracts.js +141 -0
  59. package/dist/esm/xcs/autochoice.js +364 -0
  60. package/dist/esm/xcs/bebop-agg.js +123 -0
  61. package/dist/esm/xcs/iface.js +10 -0
  62. package/dist/esm/xcs/index.js +5 -0
  63. package/dist/esm/xcs/lifi-agg.js +99 -0
  64. package/dist/esm/xcs/yieldyak-agg.js +109 -0
  65. package/dist/types/balances/ub-api.d.ts +14 -0
  66. package/dist/types/cosmos/index.d.ts +6 -0
  67. package/dist/types/data/chaindata.d.ts +20 -0
  68. package/dist/types/data/chainid.d.ts +31 -0
  69. package/dist/types/data/currency.d.ts +29 -0
  70. package/dist/types/data/index.d.ts +4 -0
  71. package/dist/types/data/utils.d.ts +10 -0
  72. package/dist/types/evmabi/erc20.abi.d.ts +264 -0
  73. package/dist/types/evmabi/index.d.ts +3 -0
  74. package/dist/types/evmabi/vault.abi.d.ts +785 -0
  75. package/dist/types/evmabi/yakaggregator.abi.d.ts +298 -0
  76. package/dist/types/fuelcontracts/ArcanaVault.d.ts +448 -0
  77. package/dist/types/fuelcontracts/ArcanaVaultFactory.d.ts +8 -0
  78. package/dist/types/fuelcontracts/common.d.ts +23 -0
  79. package/dist/types/fuelcontracts/index.d.ts +2 -0
  80. package/dist/types/index.d.ts +12 -0
  81. package/dist/types/permitutils/index.d.ts +13 -0
  82. package/dist/types/proto/definition.d.ts +373 -0
  83. package/dist/types/proto/grpc.d.ts +75 -0
  84. package/dist/types/rff/fuel.d.ts +4 -0
  85. package/dist/types/rff/rff.d.ts +12 -0
  86. package/dist/types/types/binarytypes.d.ts +1 -0
  87. package/dist/types/types/index.d.ts +2 -0
  88. package/dist/types/types/msgpack-axios.d.ts +1 -0
  89. package/dist/types/vaultcontracts/index.d.ts +22 -0
  90. package/dist/types/vaultcontracts/vaultcontracts.d.ts +8 -0
  91. package/dist/types/xcs/autochoice.d.ts +57 -0
  92. package/dist/types/xcs/bebop-agg.d.ts +104 -0
  93. package/dist/types/xcs/iface.d.ts +36 -0
  94. package/dist/types/xcs/index.d.ts +5 -0
  95. package/dist/types/xcs/lifi-agg.d.ts +35 -0
  96. package/dist/types/xcs/yieldyak-agg.d.ts +21 -0
  97. package/package.json +63 -0
@@ -0,0 +1,14 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ import { ContractFactory, decompressBytecode } from "fuels";
3
+ import { ArcanaVault } from "./ArcanaVault";
4
+ const bytecode = decompressBytecode("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");
5
+ export class ArcanaVaultFactory extends ContractFactory {
6
+ static bytecode = bytecode;
7
+ constructor(accountOrProvider) {
8
+ super(bytecode, ArcanaVault.abi, accountOrProvider, ArcanaVault.storageSlots);
9
+ }
10
+ static deploy(wallet, options = {}) {
11
+ const factory = new ArcanaVaultFactory(wallet);
12
+ return factory.deploy(options);
13
+ }
14
+ }
@@ -0,0 +1,2 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './ArcanaVault';
2
+ export * from './ArcanaVaultFactory';
@@ -0,0 +1,12 @@
1
+ export { ArcanaVault, ArcanaVaultFactory } from './fuelcontracts';
2
+ export * from './proto/definition';
3
+ export { QueryClientImpl, GrpcWebError, GrpcWebImpl } from './proto/grpc';
4
+ export * from './data';
5
+ export * from './vaultcontracts';
6
+ export * from './permitutils';
7
+ export * from './xcs';
8
+ export * from './cosmos';
9
+ export * from './rff/rff';
10
+ export * from './types';
11
+ export * from './balances/ub-api';
12
+ export * from './evmabi';
@@ -0,0 +1,181 @@
1
+ import { bytesToHex, encodeFunctionData, getContract, hexToBigInt, pad, } from "viem";
2
+ import { ERC20ABI } from "../evmabi";
3
+ export var PermitVariant;
4
+ (function (PermitVariant) {
5
+ PermitVariant[PermitVariant["Unsupported"] = 0] = "Unsupported";
6
+ PermitVariant[PermitVariant["EIP2612Canonical"] = 1] = "EIP2612Canonical";
7
+ PermitVariant[PermitVariant["DAI"] = 2] = "DAI";
8
+ PermitVariant[PermitVariant["Polygon2612"] = 3] = "Polygon2612";
9
+ PermitVariant[PermitVariant["PolygonEMT"] = 4] = "PolygonEMT";
10
+ })(PermitVariant || (PermitVariant = {}));
11
+ export class PermitCreationError extends Error {
12
+ }
13
+ const EIP712Domain = [
14
+ { name: "name", type: "string" },
15
+ { name: "version", type: "string" },
16
+ { name: "chainId", type: "uint256" },
17
+ { name: "verifyingContract", type: "address" },
18
+ ];
19
+ const PolygonDomain = [
20
+ { name: "name", type: "string" },
21
+ { name: "version", type: "string" },
22
+ { name: "verifyingContract", type: "address" },
23
+ { name: "salt", type: "bytes32" },
24
+ ];
25
+ export async function signPermitForAddressAndValue(cur, client, account, spender, value, contract, deadline) {
26
+ if (contract == null) {
27
+ contract = getContract({
28
+ address: bytesToHex(cur.tokenAddress.subarray(12)),
29
+ abi: ERC20ABI,
30
+ client,
31
+ });
32
+ }
33
+ const walletAddress = account.address;
34
+ deadline = deadline ?? 2n ** 256n - 1n;
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ const requestsToBeMade = [
37
+ contract.read.name(),
38
+ client.request({ method: "eth_chainId" }, { dedupe: true }),
39
+ ];
40
+ switch (cur.permitVariant) {
41
+ case PermitVariant.Unsupported:
42
+ default: {
43
+ throw new PermitCreationError("Permits are unsupported on this currency");
44
+ }
45
+ case PermitVariant.EIP2612Canonical:
46
+ case PermitVariant.DAI:
47
+ case PermitVariant.Polygon2612: {
48
+ requestsToBeMade[2] = contract.read.nonces([walletAddress]);
49
+ break;
50
+ }
51
+ case PermitVariant.PolygonEMT: {
52
+ requestsToBeMade[2] = contract.read.getNonce([walletAddress]);
53
+ }
54
+ }
55
+ const [name, chainID, nonce] = await Promise.all(requestsToBeMade);
56
+ switch (cur.permitVariant) {
57
+ case PermitVariant.EIP2612Canonical: {
58
+ return client.signTypedData({
59
+ types: {
60
+ EIP712Domain,
61
+ Permit: [
62
+ { name: "owner", type: "address" },
63
+ { name: "spender", type: "address" },
64
+ { name: "value", type: "uint256" },
65
+ { name: "nonce", type: "uint256" },
66
+ { name: "deadline", type: "uint256" },
67
+ ],
68
+ },
69
+ primaryType: "Permit",
70
+ domain: {
71
+ name,
72
+ version: cur.permitContractVersion.toString(10),
73
+ chainId: hexToBigInt(chainID),
74
+ verifyingContract: contract.address,
75
+ },
76
+ message: {
77
+ owner: walletAddress,
78
+ spender,
79
+ value,
80
+ nonce,
81
+ deadline,
82
+ },
83
+ account,
84
+ });
85
+ }
86
+ case PermitVariant.DAI: {
87
+ return client.signTypedData({
88
+ types: {
89
+ EIP712Domain,
90
+ Permit: [
91
+ { name: "holder", type: "address" },
92
+ { name: "spender", type: "address" },
93
+ { name: "nonce", type: "uint256" },
94
+ { name: "expiry", type: "uint256" },
95
+ { name: "allowed", type: "bool" },
96
+ ],
97
+ },
98
+ primaryType: "Permit",
99
+ domain: {
100
+ name,
101
+ version: cur.permitContractVersion.toString(10),
102
+ chainId: hexToBigInt(chainID),
103
+ verifyingContract: contract.address,
104
+ },
105
+ message: {
106
+ holder: walletAddress,
107
+ spender: spender,
108
+ nonce,
109
+ expiry: deadline,
110
+ allowed: true,
111
+ },
112
+ account,
113
+ });
114
+ }
115
+ case PermitVariant.Polygon2612: {
116
+ return client.signTypedData({
117
+ types: {
118
+ EIP712Domain: PolygonDomain,
119
+ Permit: [
120
+ { name: "holder", type: "address" },
121
+ { name: "spender", type: "address" },
122
+ { name: "nonce", type: "uint256" },
123
+ { name: "expiry", type: "uint256" },
124
+ { name: "allowed", type: "bool" },
125
+ ],
126
+ },
127
+ primaryType: "Permit",
128
+ domain: {
129
+ name,
130
+ version: cur.permitContractVersion.toString(10),
131
+ verifyingContract: contract.address,
132
+ salt: pad(chainID, {
133
+ dir: "left",
134
+ size: 32,
135
+ }),
136
+ },
137
+ message: {
138
+ holder: walletAddress,
139
+ spender: spender,
140
+ nonce,
141
+ expiry: deadline,
142
+ allowed: true,
143
+ },
144
+ account,
145
+ });
146
+ }
147
+ case PermitVariant.PolygonEMT: {
148
+ const funcSig = encodeFunctionData({
149
+ abi: ERC20ABI,
150
+ functionName: "approve",
151
+ args: [spender, value],
152
+ });
153
+ return client.signTypedData({
154
+ types: {
155
+ EIP712Domain: PolygonDomain,
156
+ MetaTransaction: [
157
+ { name: "nonce", type: "uint256" },
158
+ { name: "from", type: "address" },
159
+ { name: "functionSignature", type: "bytes" },
160
+ ],
161
+ },
162
+ primaryType: "MetaTransaction",
163
+ domain: {
164
+ name,
165
+ version: cur.permitContractVersion.toString(10),
166
+ verifyingContract: contract.address,
167
+ salt: pad(chainID, {
168
+ dir: "left",
169
+ size: 32,
170
+ }),
171
+ },
172
+ message: {
173
+ nonce,
174
+ from: walletAddress,
175
+ functionSignature: funcSig,
176
+ },
177
+ account,
178
+ });
179
+ }
180
+ }
181
+ }