aiia-vault-sdk 1.0.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 (39) hide show
  1. package/SeedRoundFundraiser.ts +742 -0
  2. package/TradingVault.ts +863 -0
  3. package/abis/SeedRoundFundraiser.json +1519 -0
  4. package/abis/TradingVault.json +1647 -0
  5. package/common.ts +131 -0
  6. package/contracts/SeedRoundFundraiser.ts +1670 -0
  7. package/contracts/TradingVault.ts +1752 -0
  8. package/contracts/common.ts +131 -0
  9. package/contracts/factories/SeedRoundFundraiser__factory.ts +1495 -0
  10. package/contracts/factories/index.ts +4 -0
  11. package/contracts/index.ts +6 -0
  12. package/contracts.json +28 -0
  13. package/dist/SeedRoundFundraiser.d.ts +130 -0
  14. package/dist/SeedRoundFundraiser.js +445 -0
  15. package/dist/TradingVault.d.ts +175 -0
  16. package/dist/TradingVault.js +521 -0
  17. package/dist/abis/SeedRoundFundraiser.json +1519 -0
  18. package/dist/abis/TradingVault.json +1647 -0
  19. package/dist/common.d.ts +50 -0
  20. package/dist/common.js +2 -0
  21. package/dist/contracts/SeedRoundFundraiser.d.ts +936 -0
  22. package/dist/contracts/SeedRoundFundraiser.js +2 -0
  23. package/dist/contracts/TradingVault.d.ts +930 -0
  24. package/dist/contracts/TradingVault.js +2 -0
  25. package/dist/contracts.json +28 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.js +19 -0
  28. package/dist/types.d.ts +291 -0
  29. package/dist/types.js +2 -0
  30. package/dist/utils.d.ts +95 -0
  31. package/dist/utils.js +370 -0
  32. package/dist/whitelist-tokens.json +14 -0
  33. package/index.ts +3 -0
  34. package/package.json +21 -0
  35. package/temp/aiia-vault-sdk-1.0.0.tgz +0 -0
  36. package/tsconfig.json +15 -0
  37. package/types.ts +301 -0
  38. package/utils.ts +576 -0
  39. package/whitelist-tokens.json +14 -0
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,28 @@
1
+ {
2
+ "sepolia": {
3
+ "Currency-old": "0x8c1598399bEb88F9a2aF5966438D4f481512C2f8",
4
+ "Reward-old": "0x098048C7F6Afd2dA8661965e2d34bf009faA12F2",
5
+ "TradingVault": "0x1567fEF642c15bbc0738200F04c52e4966cFA0c9",
6
+ "TradingVault-implemented": "0x74890EC41c499d998d9131a738EFF51229A7f989",
7
+ "TradingVault-implemented-old": "0x74890EC41c499d998d9131a738EFF51229A7f989",
8
+ "Currency": "0x2677818cf5e8519273f354FBDA21F794309d8D98",
9
+ "Reward": "0x09F827Fa3307cF467F51782722A5e3f43a2598dc",
10
+ "SeedRoundFundraiser": "0xDB40B1E554718555B2E55574B36f0974635c93f4",
11
+ "SeedRoundFundraiser-implemented": "0xEF7bDB1A5D287d6B3f9a6bD9008471C728249732",
12
+ "WETH": "0xC82AE9c8b25F5b48ac200efd3e86Ca372AE1AD91"
13
+ },
14
+ "hardhat": {
15
+ "Currency": "0x5FbDB2315678afecb367f032d93F642f64180aa3",
16
+ "Reward": "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0",
17
+ "TradingVault": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",
18
+ "TradingVault-implemented": "0x5FbDB2315678afecb367f032d93F642f64180aa3"
19
+ },
20
+ "base-sepolia": {
21
+ "Currency": "0xDB2e50234a3BE8aA4200C96712F190cf712cd8ec",
22
+ "Reward": "0xa5Ef2328aa2F6F231D15cdcF48503974D0938eD4",
23
+ "SeedRoundFundraiser": "0xbd520dbcb8e0b062D10d7879D27C20d214a262F6",
24
+ "SeedRoundFundraiser-implemented": "0x539C6D1f51d42f4A1376B0998b4Fff602C9908a6",
25
+ "WETH": "0x08a2d38807B1D345b6c1642f8030a29DC2Cc7223",
26
+ "SeedRoundFundraiser-implemented-old": "0x823f099526F2c69bD764686bb4D41afeD7509366"
27
+ }
28
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./TradingVault";
2
+ export * from "./SeedRoundFundraiser";
3
+ export * from "./types";
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./TradingVault"), exports);
18
+ __exportStar(require("./SeedRoundFundraiser"), exports);
19
+ __exportStar(require("./types"), exports);
@@ -0,0 +1,291 @@
1
+ import { BaseEventRaw } from "./utils";
2
+ export interface RawEventTypes {
3
+ TotalAmountUpdated: {
4
+ newTotalAmount: bigint;
5
+ };
6
+ PositionCreated: {
7
+ user: string;
8
+ tokenId: bigint;
9
+ entryPrice: bigint;
10
+ amount: bigint;
11
+ openedAt: bigint;
12
+ };
13
+ PositionReduced: {
14
+ user: string;
15
+ tokenId: bigint;
16
+ reducedAmount: bigint;
17
+ remainingAmount: bigint;
18
+ totalReward: bigint;
19
+ weight: bigint;
20
+ userReward: bigint;
21
+ treasuryReward: bigint;
22
+ rewardedAmount: bigint;
23
+ lossAmount: bigint;
24
+ price: bigint;
25
+ loss: bigint;
26
+ };
27
+ CurrencyBorrowed: {
28
+ borrower: string;
29
+ amount: bigint;
30
+ };
31
+ CurrencyRepaid: {
32
+ borrower: string;
33
+ amount: bigint;
34
+ };
35
+ PriceUpdated: {
36
+ oldPrice: bigint;
37
+ newPrice: bigint;
38
+ requiredReward: bigint;
39
+ };
40
+ CurrencyUpdated: {
41
+ oldCurrency: string;
42
+ newCurrency: string;
43
+ };
44
+ RewardTokenUpdated: {
45
+ oldRewardToken: string;
46
+ newRewardToken: string;
47
+ };
48
+ TreasuryUpdated: {
49
+ oldTreasury: string;
50
+ newTreasury: string;
51
+ };
52
+ RewardConfigsUpdated: Record<string, never>;
53
+ ReduceEnabledUpdated: {
54
+ enabled: boolean;
55
+ };
56
+ TotalRewardsUpdated: {
57
+ oldAmount: bigint;
58
+ newAmount: bigint;
59
+ };
60
+ TotalRewardsHarvestedUpdated: {
61
+ oldAmount: bigint;
62
+ newAmount: bigint;
63
+ };
64
+ }
65
+ export interface RawSeedRoundFundraiserEventTypes {
66
+ TokenWhitelisted: {
67
+ token: string;
68
+ price: bigint;
69
+ };
70
+ TokenPriceUpdated: {
71
+ token: string;
72
+ oldPrice: bigint;
73
+ newPrice: bigint;
74
+ };
75
+ TokenRemovedFromWhitelist: {
76
+ token: string;
77
+ };
78
+ RoundCreated: {
79
+ roundId: bigint;
80
+ startTime: bigint;
81
+ endTime: bigint;
82
+ targetFund: bigint;
83
+ totalAllocation: bigint;
84
+ maxFundPerAccount: bigint;
85
+ };
86
+ RoundUpdated: {
87
+ roundId: bigint;
88
+ startTime: bigint;
89
+ endTime: bigint;
90
+ targetFund: bigint;
91
+ totalAllocation: bigint;
92
+ maxFundPerAccount: bigint;
93
+ };
94
+ RoundEnded: {
95
+ roundId: bigint;
96
+ raisedFunds: bigint;
97
+ participants: bigint;
98
+ };
99
+ Contribution: {
100
+ roundId: bigint;
101
+ contributor: string;
102
+ token: string;
103
+ amount: bigint;
104
+ fundAmount: bigint;
105
+ tokenAllocation: bigint;
106
+ };
107
+ TokensClaimed: {
108
+ roundId: bigint;
109
+ user: string;
110
+ amount: bigint;
111
+ };
112
+ ProjectTokenUpdated: {
113
+ oldToken: string;
114
+ newToken: string;
115
+ };
116
+ ClaimingEnabledUpdated: {
117
+ roundId: bigint;
118
+ enabled: boolean;
119
+ };
120
+ RefundEnabledUpdated: {
121
+ roundId: bigint;
122
+ enabled: boolean;
123
+ };
124
+ Refunded: {
125
+ roundId: bigint;
126
+ user: string;
127
+ token: string;
128
+ amount: bigint;
129
+ };
130
+ }
131
+ export interface EventTypes {
132
+ TotalAmountUpdated: {
133
+ newTotalAmount: number;
134
+ };
135
+ PositionCreated: {
136
+ user: string;
137
+ tokenId: number;
138
+ entryPrice: number;
139
+ amount: number;
140
+ openedAt: number;
141
+ };
142
+ PositionReduced: {
143
+ user: string;
144
+ tokenId: number;
145
+ reducedAmount: number;
146
+ remainingAmount: number;
147
+ totalReward: number;
148
+ weight: number;
149
+ userReward: number;
150
+ treasuryReward: number;
151
+ rewardedAmount: number;
152
+ lossAmount: number;
153
+ price: number;
154
+ loss: number;
155
+ };
156
+ CurrencyBorrowed: {
157
+ borrower: string;
158
+ amount: number;
159
+ };
160
+ CurrencyRepaid: {
161
+ borrower: string;
162
+ amount: number;
163
+ };
164
+ PriceUpdated: {
165
+ oldPrice: number;
166
+ newPrice: number;
167
+ requiredReward: number;
168
+ };
169
+ CurrencyUpdated: {
170
+ oldCurrency: string;
171
+ newCurrency: string;
172
+ };
173
+ RewardTokenUpdated: {
174
+ oldRewardToken: string;
175
+ newRewardToken: string;
176
+ };
177
+ TreasuryUpdated: {
178
+ oldTreasury: string;
179
+ newTreasury: string;
180
+ };
181
+ RewardConfigsUpdated: Record<string, never>;
182
+ ReduceEnabledUpdated: {
183
+ enabled: boolean;
184
+ };
185
+ TotalRewardsUpdated: {
186
+ oldAmount: number;
187
+ newAmount: number;
188
+ };
189
+ TotalRewardsHarvestedUpdated: {
190
+ oldAmount: number;
191
+ newAmount: number;
192
+ };
193
+ }
194
+ export interface SeedRoundFundraiserEventTypes {
195
+ TokenWhitelisted: {
196
+ token: string;
197
+ price: number;
198
+ };
199
+ TokenPriceUpdated: {
200
+ token: string;
201
+ oldPrice: number;
202
+ newPrice: number;
203
+ };
204
+ TokenRemovedFromWhitelist: {
205
+ token: string;
206
+ };
207
+ RoundCreated: {
208
+ roundId: number;
209
+ startTime: number;
210
+ endTime: number;
211
+ targetFund: number;
212
+ totalAllocation: number;
213
+ maxFundPerAccount: number;
214
+ };
215
+ RoundUpdated: {
216
+ roundId: number;
217
+ startTime: number;
218
+ endTime: number;
219
+ targetFund: number;
220
+ totalAllocation: number;
221
+ maxFundPerAccount: number;
222
+ };
223
+ RoundEnded: {
224
+ roundId: number;
225
+ raisedFunds: number;
226
+ participants: number;
227
+ };
228
+ Contribution: {
229
+ roundId: number;
230
+ contributor: string;
231
+ token: string;
232
+ amount: number;
233
+ fundAmount: number;
234
+ tokenAllocation: number;
235
+ };
236
+ TokensClaimed: {
237
+ roundId: number;
238
+ user: string;
239
+ amount: number;
240
+ };
241
+ ProjectTokenUpdated: {
242
+ oldToken: string;
243
+ newToken: string;
244
+ };
245
+ ClaimingEnabledUpdated: {
246
+ roundId: number;
247
+ enabled: boolean;
248
+ };
249
+ RefundEnabledUpdated: {
250
+ roundId: number;
251
+ enabled: boolean;
252
+ };
253
+ Refunded: {
254
+ roundId: number;
255
+ user: string;
256
+ token: string;
257
+ amount: number;
258
+ };
259
+ }
260
+ export type ParsedEventRaw = {
261
+ [K in keyof RawEventTypes]: BaseEventRaw & {
262
+ eventName: K;
263
+ args: RawEventTypes[K];
264
+ };
265
+ }[keyof RawEventTypes];
266
+ export type ParsedSeedRoundFundraiserEventRaw = {
267
+ [K in keyof RawSeedRoundFundraiserEventTypes]: BaseEventRaw & {
268
+ eventName: K;
269
+ args: RawSeedRoundFundraiserEventTypes[K];
270
+ };
271
+ }[keyof RawSeedRoundFundraiserEventTypes];
272
+ export type AnyEventRaw = ParsedEventRaw & BaseEventRaw;
273
+ export type ParsedEvent = {
274
+ [K in keyof EventTypes]: {
275
+ eventName: K;
276
+ blockNumber: number;
277
+ transactionHash: string;
278
+ args: EventTypes[K];
279
+ timestamp: number | null;
280
+ };
281
+ }[keyof EventTypes];
282
+ export type ParsedSeedRoundFundraiserEvent = {
283
+ [K in keyof SeedRoundFundraiserEventTypes]: {
284
+ eventName: K;
285
+ blockNumber: number;
286
+ transactionHash: string;
287
+ args: SeedRoundFundraiserEventTypes[K];
288
+ timestamp: number | null;
289
+ };
290
+ }[keyof SeedRoundFundraiserEventTypes];
291
+ export type AnyEvent = ParsedEvent;
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,95 @@
1
+ import { ethers } from "ethers";
2
+ export declare const LOG_PREFIXES: {
3
+ INFO: string;
4
+ BLOCK: string;
5
+ EVENT: string;
6
+ ERROR: string;
7
+ SAVE: string;
8
+ DEBUG: string;
9
+ };
10
+ export declare const sleep: (ms: number) => Promise<void>;
11
+ export declare const getRandomProvider: (providers: ethers.Provider[]) => ethers.Provider;
12
+ export declare const checkRpcHealth: (provider: ethers.Provider, index?: number) => Promise<boolean>;
13
+ export declare const getTransactionStatus: (provider: ethers.Provider, txHash: string, maxRetries?: number) => Promise<{
14
+ hash: string;
15
+ status: boolean | null;
16
+ confirmations: number;
17
+ isCompleted: boolean;
18
+ attempts: number;
19
+ }>;
20
+ export declare const getTokenDecimals: (tokenAddress: string, provider: ethers.Provider) => Promise<number>;
21
+ export declare const getTokenSymbol: (tokenAddress: string, provider: ethers.Provider) => Promise<string>;
22
+ export declare const getTokenAllowance: (tokenAddress: string, owner: string, spender: string, provider: ethers.Provider) => Promise<bigint>;
23
+ export declare const buildApproveERC20Tx: (tokenAddress: string, spender: string, amount: bigint, provider: ethers.Provider) => Promise<ethers.ContractTransaction>;
24
+ export declare const getRewardWeight: (duration: number, configs: Array<{
25
+ weight: number;
26
+ duration: number;
27
+ }>) => number;
28
+ export declare const resolveContractAddress: (rpcUrl: string, contractName: string, contracts: any, providedAddress?: string) => string;
29
+ export interface BaseEventRaw {
30
+ eventName: string;
31
+ blockNumber: number;
32
+ transactionHash: string;
33
+ args: Record<string, any>;
34
+ timestamp: number | null;
35
+ }
36
+ /**
37
+ * Generic function to get all events from a contract within a block range
38
+ * @param contract The ethers contract instance
39
+ * @param getRandomProvider Function to get a random provider
40
+ * @param fromBlock Starting block number
41
+ * @param toBlock Ending block number
42
+ * @returns Array of parsed events with timestamps
43
+ */
44
+ export declare const getAllEvents: <TEventRaw extends BaseEventRaw, TContract extends ethers.BaseContract>(contract: TContract, getRandomProvider: () => ethers.Provider, getContractWithRandomProvider: () => TContract, fromBlock: number, toBlock: number) => Promise<TEventRaw[]>;
45
+ /**
46
+ * Generic function to stream blockchain events
47
+ * @param getProvider Function to get a provider
48
+ * @param getAllEvents Function to get events for a block range
49
+ * @param formatEvent Function to format raw events
50
+ * @param onEvent Callback for each processed event
51
+ * @param saveLatestBlock Function to save the latest processed block
52
+ * @param fromBlock Starting block number
53
+ * @param batchSize Number of blocks to process in each batch
54
+ * @param sleepTime Time to wait between iterations when caught up
55
+ */
56
+ export declare const streamEvents: <TRawEvent, TFormattedEvent>({ getProvider, getAllEvents, formatEvent, onEvent, saveLatestBlock, fromBlock, batchSize, sleepTime, }: {
57
+ getProvider: () => ethers.Provider;
58
+ getAllEvents: (fromBlock: number, toBlock: number) => Promise<TRawEvent[]>;
59
+ formatEvent: (event: TRawEvent) => TFormattedEvent;
60
+ onEvent: (event: TFormattedEvent) => Promise<void>;
61
+ saveLatestBlock: (blockNumber: number) => Promise<void>;
62
+ fromBlock: number;
63
+ batchSize?: number;
64
+ sleepTime?: number;
65
+ }) => Promise<void>;
66
+ /**
67
+ * Generic function to sign and send a transaction
68
+ * @param tx The transaction to send
69
+ * @param wallet The wallet or sendTransaction function to use
70
+ * @param getRandomProvider Function to get a random provider
71
+ * @param contract Optional contract instance
72
+ * @param callbacks Optional callbacks for transaction events
73
+ * @returns Transaction result with status
74
+ */
75
+ export declare const signAndSendTransaction: (tx: ethers.ContractTransaction, wallet: ethers.Wallet | any, getRandomProvider: () => ethers.Provider, { onSubmit, onFinally, onError, }?: {
76
+ onSubmit?: (tx: string) => void | Promise<void>;
77
+ onFinally?: (status: {
78
+ status: boolean | null;
79
+ confirmations: number;
80
+ txHash: string;
81
+ isCompleted: boolean;
82
+ attempts: number;
83
+ }) => void | Promise<void>;
84
+ onError?: (error: Error) => void | Promise<void>;
85
+ }, contract?: ethers.BaseContract) => Promise<{
86
+ transaction: {
87
+ hash: string;
88
+ };
89
+ status: {
90
+ status: boolean | null;
91
+ confirmations: number;
92
+ isCompleted: boolean;
93
+ attempts: number;
94
+ };
95
+ }>;