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.
- package/SeedRoundFundraiser.ts +742 -0
- package/TradingVault.ts +863 -0
- package/abis/SeedRoundFundraiser.json +1519 -0
- package/abis/TradingVault.json +1647 -0
- package/common.ts +131 -0
- package/contracts/SeedRoundFundraiser.ts +1670 -0
- package/contracts/TradingVault.ts +1752 -0
- package/contracts/common.ts +131 -0
- package/contracts/factories/SeedRoundFundraiser__factory.ts +1495 -0
- package/contracts/factories/index.ts +4 -0
- package/contracts/index.ts +6 -0
- package/contracts.json +28 -0
- package/dist/SeedRoundFundraiser.d.ts +130 -0
- package/dist/SeedRoundFundraiser.js +445 -0
- package/dist/TradingVault.d.ts +175 -0
- package/dist/TradingVault.js +521 -0
- package/dist/abis/SeedRoundFundraiser.json +1519 -0
- package/dist/abis/TradingVault.json +1647 -0
- package/dist/common.d.ts +50 -0
- package/dist/common.js +2 -0
- package/dist/contracts/SeedRoundFundraiser.d.ts +936 -0
- package/dist/contracts/SeedRoundFundraiser.js +2 -0
- package/dist/contracts/TradingVault.d.ts +930 -0
- package/dist/contracts/TradingVault.js +2 -0
- package/dist/contracts.json +28 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +19 -0
- package/dist/types.d.ts +291 -0
- package/dist/types.js +2 -0
- package/dist/utils.d.ts +95 -0
- package/dist/utils.js +370 -0
- package/dist/whitelist-tokens.json +14 -0
- package/index.ts +3 -0
- package/package.json +21 -0
- package/temp/aiia-vault-sdk-1.0.0.tgz +0 -0
- package/tsconfig.json +15 -0
- package/types.ts +301 -0
- package/utils.ts +576 -0
- package/whitelist-tokens.json +14 -0
@@ -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
|
+
}
|
package/dist/index.d.ts
ADDED
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);
|
package/dist/types.d.ts
ADDED
@@ -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
package/dist/utils.d.ts
ADDED
@@ -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
|
+
}>;
|