@raac/rpc 2.0.0-beta.4 → 2.0.0-beta.5

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 (31) hide show
  1. package/dist/RPCLibrary.js +25 -0
  2. package/dist/artifacts/mocks/core/tokens/ERC721Mock.sol/ERC721Mock.json +491 -0
  3. package/dist/configs/chains/8453.json +6 -1
  4. package/dist/contracts/lockers/botLocker/addRewardTokens.js +21 -0
  5. package/dist/contracts/lockers/botLocker/distributeRewardToken.js +23 -0
  6. package/dist/contracts/lockers/botLocker/getConfig.js +29 -0
  7. package/dist/contracts/lockers/botLocker/getLocks.js +11 -1
  8. package/dist/contracts/lockers/botLocker/getRoles.js +22 -0
  9. package/dist/contracts/lockers/botLocker/getUnlockWindow.js +29 -0
  10. package/dist/contracts/lockers/botLocker/grantRole.js +38 -0
  11. package/dist/contracts/lockers/botLocker/hasRole.js +18 -0
  12. package/dist/contracts/lockers/botLocker/pause.js +24 -0
  13. package/dist/contracts/lockers/botLocker/rescueTokens.js +22 -0
  14. package/dist/nfts/getNFTBalance.js +29 -0
  15. package/dist/nfts/transferNFT.js +34 -0
  16. package/dist/types/RPCLibrary.d.ts +26 -1
  17. package/dist/types/contracts/lockers/botLocker/addRewardTokens.d.ts +11 -0
  18. package/dist/types/contracts/lockers/botLocker/distributeRewardToken.d.ts +13 -0
  19. package/dist/types/contracts/lockers/botLocker/getConfig.d.ts +20 -0
  20. package/dist/types/contracts/lockers/botLocker/getLocks.d.ts +4 -0
  21. package/dist/types/contracts/lockers/botLocker/getRoles.d.ts +20 -0
  22. package/dist/types/contracts/lockers/botLocker/getUnlockWindow.d.ts +24 -0
  23. package/dist/types/contracts/lockers/botLocker/grantRole.d.ts +20 -0
  24. package/dist/types/contracts/lockers/botLocker/hasRole.d.ts +12 -0
  25. package/dist/types/contracts/lockers/botLocker/pause.d.ts +6 -0
  26. package/dist/types/contracts/lockers/botLocker/rescueTokens.d.ts +12 -0
  27. package/dist/types/nfts/getNFTBalance.d.ts +13 -0
  28. package/dist/types/nfts/transferNFT.d.ts +15 -0
  29. package/dist/types/utils/artifacts.d.ts +99 -0
  30. package/dist/utils/artifacts.js +3 -0
  31. package/package.json +1 -1
@@ -164,6 +164,8 @@ const getNFTApproval_1 = __importDefault(require("./nfts/getNFTApproval"));
164
164
  const getApprovalForAll_1 = __importDefault(require("./nfts/getApprovalForAll"));
165
165
  const setApprovalForAll_1 = __importDefault(require("./nfts/setApprovalForAll"));
166
166
  const approveNFT_1 = __importDefault(require("./nfts/approveNFT"));
167
+ const getNFTBalance_1 = __importDefault(require("./nfts/getNFTBalance"));
168
+ const transferNFT_1 = __importDefault(require("./nfts/transferNFT"));
167
169
  const vaultOpened_1 = __importDefault(require("./pools/lendingPool/vaultOpened"));
168
170
  const getWithdrawRequestInfo_1 = require("./pools/stabilityPool/getWithdrawRequestInfo");
169
171
  const getWithdrawTimelockConfig_1 = require("./pools/stabilityPool/getWithdrawTimelockConfig");
@@ -322,6 +324,15 @@ const getRewardTokens_2 = require("./contracts/lockers/botLocker/getRewardTokens
322
324
  const getRewardTokenCount_1 = require("./contracts/lockers/botLocker/getRewardTokenCount");
323
325
  const getLocks_2 = require("./contracts/lockers/botLocker/getLocks");
324
326
  const getLockedTokenIds_1 = require("./contracts/lockers/botLocker/getLockedTokenIds");
327
+ const getConfig_3 = require("./contracts/lockers/botLocker/getConfig");
328
+ const getUnlockWindow_1 = require("./contracts/lockers/botLocker/getUnlockWindow");
329
+ const getRoles_3 = require("./contracts/lockers/botLocker/getRoles");
330
+ const hasRole_3 = require("./contracts/lockers/botLocker/hasRole");
331
+ const grantRole_1 = require("./contracts/lockers/botLocker/grantRole");
332
+ const addRewardTokens_1 = require("./contracts/lockers/botLocker/addRewardTokens");
333
+ const distributeRewardToken_1 = require("./contracts/lockers/botLocker/distributeRewardToken");
334
+ const pause_2 = require("./contracts/lockers/botLocker/pause");
335
+ const rescueTokens_1 = require("./contracts/lockers/botLocker/rescueTokens");
325
336
  // leRAAC token
326
337
  const getBalance_8 = require("./contracts/tokens/leRAAC/getBalance");
327
338
  const getTotalSupply_7 = require("./contracts/tokens/leRAAC/getTotalSupply");
@@ -453,6 +464,8 @@ class RPCLibrary {
453
464
  getApprovedForAll: getApprovalForAll_1.default,
454
465
  setApprovalForAll: setApprovalForAll_1.default,
455
466
  approveNFT: approveNFT_1.default,
467
+ getNFTBalance: getNFTBalance_1.default,
468
+ transferNFT: transferNFT_1.default,
456
469
  };
457
470
  this.contracts = {
458
471
  housePrices: {
@@ -624,8 +637,20 @@ class RPCLibrary {
624
637
  getRewardTokens: getRewardTokens_2.getRewardTokens,
625
638
  getRewardTokenCount: getRewardTokenCount_1.getRewardTokenCount,
626
639
  getLocks: getLocks_2.getLocks,
640
+ getLock: getLocks_2.getLock,
627
641
  getLocksByOwner: getLocks_2.getLocksByOwner,
628
642
  getLockedTokenIds: getLockedTokenIds_1.getLockedTokenIds,
643
+ getConfig: getConfig_3.getConfig,
644
+ getUnlockWindow: getUnlockWindow_1.getUnlockWindow,
645
+ getRoles: getRoles_3.getRoles,
646
+ hasRole: hasRole_3.hasRole,
647
+ grantRole: grantRole_1.grantRole,
648
+ revokeRole: grantRole_1.revokeRole,
649
+ addRewardTokens: addRewardTokens_1.addRewardTokens,
650
+ distributeRewardToken: distributeRewardToken_1.distributeRewardToken,
651
+ pause: pause_2.pause,
652
+ unpause: pause_2.unpause,
653
+ rescueTokens: rescueTokens_1.rescueTokens,
629
654
  },
630
655
  };
631
656
  this.zap = {
@@ -0,0 +1,491 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC721Mock",
4
+ "sourceName": "contracts/mocks/core/tokens/ERC721Mock.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "string",
10
+ "name": "name",
11
+ "type": "string"
12
+ },
13
+ {
14
+ "internalType": "string",
15
+ "name": "symbol",
16
+ "type": "string"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "address",
26
+ "name": "sender",
27
+ "type": "address"
28
+ },
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "tokenId",
32
+ "type": "uint256"
33
+ },
34
+ {
35
+ "internalType": "address",
36
+ "name": "owner",
37
+ "type": "address"
38
+ }
39
+ ],
40
+ "name": "ERC721IncorrectOwner",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "address",
47
+ "name": "operator",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "tokenId",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "ERC721InsufficientApproval",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "address",
63
+ "name": "approver",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "ERC721InvalidApprover",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "operator",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "ERC721InvalidOperator",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "address",
85
+ "name": "owner",
86
+ "type": "address"
87
+ }
88
+ ],
89
+ "name": "ERC721InvalidOwner",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "address",
96
+ "name": "receiver",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "name": "ERC721InvalidReceiver",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "address",
107
+ "name": "sender",
108
+ "type": "address"
109
+ }
110
+ ],
111
+ "name": "ERC721InvalidSender",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "uint256",
118
+ "name": "tokenId",
119
+ "type": "uint256"
120
+ }
121
+ ],
122
+ "name": "ERC721NonexistentToken",
123
+ "type": "error"
124
+ },
125
+ {
126
+ "anonymous": false,
127
+ "inputs": [
128
+ {
129
+ "indexed": true,
130
+ "internalType": "address",
131
+ "name": "owner",
132
+ "type": "address"
133
+ },
134
+ {
135
+ "indexed": true,
136
+ "internalType": "address",
137
+ "name": "approved",
138
+ "type": "address"
139
+ },
140
+ {
141
+ "indexed": true,
142
+ "internalType": "uint256",
143
+ "name": "tokenId",
144
+ "type": "uint256"
145
+ }
146
+ ],
147
+ "name": "Approval",
148
+ "type": "event"
149
+ },
150
+ {
151
+ "anonymous": false,
152
+ "inputs": [
153
+ {
154
+ "indexed": true,
155
+ "internalType": "address",
156
+ "name": "owner",
157
+ "type": "address"
158
+ },
159
+ {
160
+ "indexed": true,
161
+ "internalType": "address",
162
+ "name": "operator",
163
+ "type": "address"
164
+ },
165
+ {
166
+ "indexed": false,
167
+ "internalType": "bool",
168
+ "name": "approved",
169
+ "type": "bool"
170
+ }
171
+ ],
172
+ "name": "ApprovalForAll",
173
+ "type": "event"
174
+ },
175
+ {
176
+ "anonymous": false,
177
+ "inputs": [
178
+ {
179
+ "indexed": true,
180
+ "internalType": "address",
181
+ "name": "from",
182
+ "type": "address"
183
+ },
184
+ {
185
+ "indexed": true,
186
+ "internalType": "address",
187
+ "name": "to",
188
+ "type": "address"
189
+ },
190
+ {
191
+ "indexed": true,
192
+ "internalType": "uint256",
193
+ "name": "tokenId",
194
+ "type": "uint256"
195
+ }
196
+ ],
197
+ "name": "Transfer",
198
+ "type": "event"
199
+ },
200
+ {
201
+ "inputs": [
202
+ {
203
+ "internalType": "address",
204
+ "name": "to",
205
+ "type": "address"
206
+ },
207
+ {
208
+ "internalType": "uint256",
209
+ "name": "tokenId",
210
+ "type": "uint256"
211
+ }
212
+ ],
213
+ "name": "approve",
214
+ "outputs": [],
215
+ "stateMutability": "nonpayable",
216
+ "type": "function"
217
+ },
218
+ {
219
+ "inputs": [
220
+ {
221
+ "internalType": "address",
222
+ "name": "owner",
223
+ "type": "address"
224
+ }
225
+ ],
226
+ "name": "balanceOf",
227
+ "outputs": [
228
+ {
229
+ "internalType": "uint256",
230
+ "name": "",
231
+ "type": "uint256"
232
+ }
233
+ ],
234
+ "stateMutability": "view",
235
+ "type": "function"
236
+ },
237
+ {
238
+ "inputs": [
239
+ {
240
+ "internalType": "uint256",
241
+ "name": "tokenId",
242
+ "type": "uint256"
243
+ }
244
+ ],
245
+ "name": "getApproved",
246
+ "outputs": [
247
+ {
248
+ "internalType": "address",
249
+ "name": "",
250
+ "type": "address"
251
+ }
252
+ ],
253
+ "stateMutability": "view",
254
+ "type": "function"
255
+ },
256
+ {
257
+ "inputs": [
258
+ {
259
+ "internalType": "address",
260
+ "name": "owner",
261
+ "type": "address"
262
+ },
263
+ {
264
+ "internalType": "address",
265
+ "name": "operator",
266
+ "type": "address"
267
+ }
268
+ ],
269
+ "name": "isApprovedForAll",
270
+ "outputs": [
271
+ {
272
+ "internalType": "bool",
273
+ "name": "",
274
+ "type": "bool"
275
+ }
276
+ ],
277
+ "stateMutability": "view",
278
+ "type": "function"
279
+ },
280
+ {
281
+ "inputs": [
282
+ {
283
+ "internalType": "address",
284
+ "name": "to",
285
+ "type": "address"
286
+ },
287
+ {
288
+ "internalType": "uint256",
289
+ "name": "tokenId",
290
+ "type": "uint256"
291
+ }
292
+ ],
293
+ "name": "mint",
294
+ "outputs": [],
295
+ "stateMutability": "nonpayable",
296
+ "type": "function"
297
+ },
298
+ {
299
+ "inputs": [],
300
+ "name": "name",
301
+ "outputs": [
302
+ {
303
+ "internalType": "string",
304
+ "name": "",
305
+ "type": "string"
306
+ }
307
+ ],
308
+ "stateMutability": "view",
309
+ "type": "function"
310
+ },
311
+ {
312
+ "inputs": [
313
+ {
314
+ "internalType": "uint256",
315
+ "name": "tokenId",
316
+ "type": "uint256"
317
+ }
318
+ ],
319
+ "name": "ownerOf",
320
+ "outputs": [
321
+ {
322
+ "internalType": "address",
323
+ "name": "",
324
+ "type": "address"
325
+ }
326
+ ],
327
+ "stateMutability": "view",
328
+ "type": "function"
329
+ },
330
+ {
331
+ "inputs": [
332
+ {
333
+ "internalType": "address",
334
+ "name": "from",
335
+ "type": "address"
336
+ },
337
+ {
338
+ "internalType": "address",
339
+ "name": "to",
340
+ "type": "address"
341
+ },
342
+ {
343
+ "internalType": "uint256",
344
+ "name": "tokenId",
345
+ "type": "uint256"
346
+ }
347
+ ],
348
+ "name": "safeTransferFrom",
349
+ "outputs": [],
350
+ "stateMutability": "nonpayable",
351
+ "type": "function"
352
+ },
353
+ {
354
+ "inputs": [
355
+ {
356
+ "internalType": "address",
357
+ "name": "from",
358
+ "type": "address"
359
+ },
360
+ {
361
+ "internalType": "address",
362
+ "name": "to",
363
+ "type": "address"
364
+ },
365
+ {
366
+ "internalType": "uint256",
367
+ "name": "tokenId",
368
+ "type": "uint256"
369
+ },
370
+ {
371
+ "internalType": "bytes",
372
+ "name": "data",
373
+ "type": "bytes"
374
+ }
375
+ ],
376
+ "name": "safeTransferFrom",
377
+ "outputs": [],
378
+ "stateMutability": "nonpayable",
379
+ "type": "function"
380
+ },
381
+ {
382
+ "inputs": [
383
+ {
384
+ "internalType": "address",
385
+ "name": "operator",
386
+ "type": "address"
387
+ },
388
+ {
389
+ "internalType": "bool",
390
+ "name": "approved",
391
+ "type": "bool"
392
+ }
393
+ ],
394
+ "name": "setApprovalForAll",
395
+ "outputs": [],
396
+ "stateMutability": "nonpayable",
397
+ "type": "function"
398
+ },
399
+ {
400
+ "inputs": [
401
+ {
402
+ "internalType": "bytes4",
403
+ "name": "interfaceId",
404
+ "type": "bytes4"
405
+ }
406
+ ],
407
+ "name": "supportsInterface",
408
+ "outputs": [
409
+ {
410
+ "internalType": "bool",
411
+ "name": "",
412
+ "type": "bool"
413
+ }
414
+ ],
415
+ "stateMutability": "view",
416
+ "type": "function"
417
+ },
418
+ {
419
+ "inputs": [],
420
+ "name": "symbol",
421
+ "outputs": [
422
+ {
423
+ "internalType": "string",
424
+ "name": "",
425
+ "type": "string"
426
+ }
427
+ ],
428
+ "stateMutability": "view",
429
+ "type": "function"
430
+ },
431
+ {
432
+ "inputs": [],
433
+ "name": "tokenIdCounter",
434
+ "outputs": [
435
+ {
436
+ "internalType": "uint256",
437
+ "name": "",
438
+ "type": "uint256"
439
+ }
440
+ ],
441
+ "stateMutability": "view",
442
+ "type": "function"
443
+ },
444
+ {
445
+ "inputs": [
446
+ {
447
+ "internalType": "uint256",
448
+ "name": "tokenId",
449
+ "type": "uint256"
450
+ }
451
+ ],
452
+ "name": "tokenURI",
453
+ "outputs": [
454
+ {
455
+ "internalType": "string",
456
+ "name": "",
457
+ "type": "string"
458
+ }
459
+ ],
460
+ "stateMutability": "view",
461
+ "type": "function"
462
+ },
463
+ {
464
+ "inputs": [
465
+ {
466
+ "internalType": "address",
467
+ "name": "from",
468
+ "type": "address"
469
+ },
470
+ {
471
+ "internalType": "address",
472
+ "name": "to",
473
+ "type": "address"
474
+ },
475
+ {
476
+ "internalType": "uint256",
477
+ "name": "tokenId",
478
+ "type": "uint256"
479
+ }
480
+ ],
481
+ "name": "transferFrom",
482
+ "outputs": [],
483
+ "stateMutability": "nonpayable",
484
+ "type": "function"
485
+ }
486
+ ],
487
+ "bytecode": "0x608060405234610310576110a48038038061001981610314565b9283398101906040818303126103105780516001600160401b0381116103105782610045918301610339565b60208201519092906001600160401b038111610310576100659201610339565b81516001600160401b038111610226575f54600181811c91168015610306575b602082101461020857601f81116102a4575b50602092601f821160011461024557928192935f9261023a575b50508160011b915f199060031b1c1916175f555b80516001600160401b03811161022657600154600181811c9116801561021c575b602082101461020857601f81116101a5575b50602091601f8211600114610145579181925f9261013a575b50508160011b915f199060031b1c1916176001555b6001600655604051610d0190816103a38239f35b015190505f80610111565b601f1982169260015f52805f20915f5b85811061018d57508360019510610175575b505050811b01600155610126565b01515f1960f88460031b161c191690555f8080610167565b91926020600181928685015181550194019201610155565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c810191602084106101fe575b601f0160051c01905b8181106101f357506100f8565b5f81556001016101e6565b90915081906101dd565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100e6565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b1565b601f198216935f8052805f20915f5b86811061028c5750836001959610610274575b505050811b015f556100c5565b01515f1960f88460031b161c191690555f8080610267565b91926020600181928685015181550194019201610254565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c810191602084106102fc575b601f0160051c01905b8181106102f15750610097565b5f81556001016102e4565b90915081906102db565b90607f1690610085565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761022657604052565b81601f82011215610310578051906001600160401b03821161022657610368601f8301601f1916602001610314565b9282845260208383010111610310575f5b82811061038d57505060205f918301015290565b8060208092840101518282870101520161037956fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146108745750806306fdde03146107bc578063081812fc14610780578063095ea7b31461069657806323b872dd1461067f57806340c10f191461048057806342842e0e146104515780636352211e1461042157806370a08231146103d057806395d89b41146102c857806398bdf6f5146102ab578063a22cb46514610210578063b88d4fde1461017a578063c87b56dd1461011d5763e985e9c5146100c3575f80fd5b3461011a57604036600319011261011a5760406100de61091e565b916100e7610934565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b3461017657602036600319011261017657610139600435610b36565b505f604051610149602082610984565b5261017260405161015b602082610984565b5f81526040519182916020835260208301906108df565b0390f35b5f80fd5b346101765760803660031901126101765761019361091e565b61019b610934565b6064359190604435906001600160401b0384116101765736602385011215610176578360040135926101cc846109bb565b936101da6040519586610984565b8085523660248288010111610176576020815f92602461020e990183890137860101526102088383836109d6565b33610b6a565b005b346101765760403660031901126101765761022961091e565b60243590811515809203610176576001600160a01b031690811561029857335f52600560205260405f20825f5260205260405f2060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b50630b61174360e31b5f5260045260245ffd5b34610176575f366003190112610176576020600654604051908152f35b34610176575f366003190112610176576040515f6001548060011c906001811680156103c6575b6020831081146103b25782855290811561038e5750600114610330575b6101728361031c81850382610984565b6040519182916020835260208301906108df565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106103745750909150810160200161031c61030c565b91926001816020925483858801015201910190929161035c565b60ff191660208086019190915291151560051b8401909101915061031c905061030c565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102ef565b34610176576020366003190112610176576001600160a01b036103f161091e565b16801561040e575f526003602052602060405f2054604051908152f35b6322718ad960e21b5f525f60045260245ffd5b3461017657602036600319011261017657602061043f600435610b36565b6040516001600160a01b039091168152f35b346101765761020e6104623661094a565b9060405192610472602085610984565b5f84526102088383836109d6565b346101765760403660031901126101765761049961091e565b6040516020906024356104ac8383610984565b5f82526001600160a01b03841693841561066c575f8281526002855260409020546001600160a01b0316801515908161064c575b5f8781526003875260408082208054600101905585825260028852812080546001600160a01b031916891790558490889083905f516020610cac5f395f51905f529080a450610639573b61053057005b61056a9183916040519384928392630a85bd0160e11b84523360048501525f602485015260448401526080606484015260848301906108df565b03815f875af15f91816105f9575b506105cc57503d156105c4573d9061058f826109bb565b9161059d6040519384610984565b82523d5f8284013e5b815191826105c15783633250574960e11b5f5260045260245ffd5b01fd5b6060906105a6565b6001600160e01b03191663757a42ff60e11b0190506105e757005b633250574960e11b5f5260045260245ffd5b9091508281813d8311610632575b6106118183610984565b8101031261017657516001600160e01b031981168103610176579084610578565b503d610607565b6339e3563760e11b5f525f60045260245ffd5b61065584610c8e565b805f526003865260405f205f1981540190556104e0565b633250574960e11b5f525f60045260245ffd5b346101765761020e6106903661094a565b916109d6565b34610176576040366003190112610176576106af61091e565b6024356106bb81610b36565b3315158061076d575b80610740575b61072d5781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f90815260046020526040902080546001600160a01b0319166001600160a01b03909216919091179055005b63a9fbf51f60e01b5f523360045260245ffd5b506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff16156106ca565b506001600160a01b0381163314156106c4565b346101765760203660031901126101765760043561079d81610b36565b505f526004602052602060018060a01b0360405f205416604051908152f35b34610176575f366003190112610176576040515f5f548060011c9060018116801561086a575b6020831081146103b25782855290811561038e575060011461080e576101728361031c81850382610984565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106108505750909150810160200161031c61030c565b919260018160209254838588010152019101909291610838565b91607f16916107e2565b34610176576020366003190112610176576004359063ffffffff60e01b8216809203610176576020916380ac58cd60e01b81149081156108ce575b81156108bd575b5015158152f35b6301ffc9a760e01b149050836108b6565b635b5e139f60e01b811491506108af565b91908251928382525f5b848110610909575050825f602080949584010152601f8019910116010190565b806020809284010151828286010152016108e9565b600435906001600160a01b038216820361017657565b602435906001600160a01b038216820361017657565b6060906003190112610176576004356001600160a01b038116810361017657906024356001600160a01b0381168103610176579060443590565b601f909101601f19168101906001600160401b038211908210176109a757604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116109a757601f01601f191660200190565b6001600160a01b039091169190821561066c575f828152600260205260409020546001600160a01b031692829033151580610aa1575b5084610a80575b805f52600360205260405f2060018154019055815f52600260205260405f208160018060a01b0319825416179055845f516020610cac5f395f51905f525f80a46001600160a01b0316808303610a6857505050565b6364283d7b60e01b5f5260045260245260445260645ffd5b610a8982610c8e565b845f52600360205260405f205f198154019055610a13565b90915080610ae5575b15610ab75782905f610a0c565b8284610acf57637e27328960e01b5f5260045260245ffd5b63177e802f60e01b5f523360045260245260445ffd5b503384148015610b14575b80610aaa57505f838152600460205260409020546001600160a01b03163314610aaa565b505f84815260056020908152604080832033845290915290205460ff16610af0565b5f818152600260205260409020546001600160a01b0316908115610b58575090565b637e27328960e01b5f5260045260245ffd5b823b610b78575b5050505050565b604051630a85bd0160e11b81526001600160a01b039182166004820152918116602483015260448201939093526080606482015291169160209082908190610bc49060848301906108df565b03815f865af15f9181610c49575b50610c2757503d15610c20573d610be8816109bb565b90610bf66040519283610984565b81523d5f602083013e5b80519081610c1b5782633250574960e11b5f5260045260245ffd5b602001fd5b6060610c00565b6001600160e01b03191663757a42ff60e11b016105e757505f80808080610b71565b9091506020813d602011610c86575b81610c6560209383610984565b8101031261017657516001600160e01b03198116810361017657905f610bd2565b3d9150610c58565b5f90815260046020526040902080546001600160a01b031916905556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122044bc4f61ac76fc18193b6f870bcbf783aa0a0646b55bc881b0304d0627dc103964736f6c634300081e0033",
488
+ "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146108745750806306fdde03146107bc578063081812fc14610780578063095ea7b31461069657806323b872dd1461067f57806340c10f191461048057806342842e0e146104515780636352211e1461042157806370a08231146103d057806395d89b41146102c857806398bdf6f5146102ab578063a22cb46514610210578063b88d4fde1461017a578063c87b56dd1461011d5763e985e9c5146100c3575f80fd5b3461011a57604036600319011261011a5760406100de61091e565b916100e7610934565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b3461017657602036600319011261017657610139600435610b36565b505f604051610149602082610984565b5261017260405161015b602082610984565b5f81526040519182916020835260208301906108df565b0390f35b5f80fd5b346101765760803660031901126101765761019361091e565b61019b610934565b6064359190604435906001600160401b0384116101765736602385011215610176578360040135926101cc846109bb565b936101da6040519586610984565b8085523660248288010111610176576020815f92602461020e990183890137860101526102088383836109d6565b33610b6a565b005b346101765760403660031901126101765761022961091e565b60243590811515809203610176576001600160a01b031690811561029857335f52600560205260405f20825f5260205260405f2060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b50630b61174360e31b5f5260045260245ffd5b34610176575f366003190112610176576020600654604051908152f35b34610176575f366003190112610176576040515f6001548060011c906001811680156103c6575b6020831081146103b25782855290811561038e5750600114610330575b6101728361031c81850382610984565b6040519182916020835260208301906108df565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106103745750909150810160200161031c61030c565b91926001816020925483858801015201910190929161035c565b60ff191660208086019190915291151560051b8401909101915061031c905061030c565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102ef565b34610176576020366003190112610176576001600160a01b036103f161091e565b16801561040e575f526003602052602060405f2054604051908152f35b6322718ad960e21b5f525f60045260245ffd5b3461017657602036600319011261017657602061043f600435610b36565b6040516001600160a01b039091168152f35b346101765761020e6104623661094a565b9060405192610472602085610984565b5f84526102088383836109d6565b346101765760403660031901126101765761049961091e565b6040516020906024356104ac8383610984565b5f82526001600160a01b03841693841561066c575f8281526002855260409020546001600160a01b0316801515908161064c575b5f8781526003875260408082208054600101905585825260028852812080546001600160a01b031916891790558490889083905f516020610cac5f395f51905f529080a450610639573b61053057005b61056a9183916040519384928392630a85bd0160e11b84523360048501525f602485015260448401526080606484015260848301906108df565b03815f875af15f91816105f9575b506105cc57503d156105c4573d9061058f826109bb565b9161059d6040519384610984565b82523d5f8284013e5b815191826105c15783633250574960e11b5f5260045260245ffd5b01fd5b6060906105a6565b6001600160e01b03191663757a42ff60e11b0190506105e757005b633250574960e11b5f5260045260245ffd5b9091508281813d8311610632575b6106118183610984565b8101031261017657516001600160e01b031981168103610176579084610578565b503d610607565b6339e3563760e11b5f525f60045260245ffd5b61065584610c8e565b805f526003865260405f205f1981540190556104e0565b633250574960e11b5f525f60045260245ffd5b346101765761020e6106903661094a565b916109d6565b34610176576040366003190112610176576106af61091e565b6024356106bb81610b36565b3315158061076d575b80610740575b61072d5781906001600160a01b0384811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f90815260046020526040902080546001600160a01b0319166001600160a01b03909216919091179055005b63a9fbf51f60e01b5f523360045260245ffd5b506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff16156106ca565b506001600160a01b0381163314156106c4565b346101765760203660031901126101765760043561079d81610b36565b505f526004602052602060018060a01b0360405f205416604051908152f35b34610176575f366003190112610176576040515f5f548060011c9060018116801561086a575b6020831081146103b25782855290811561038e575060011461080e576101728361031c81850382610984565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106108505750909150810160200161031c61030c565b919260018160209254838588010152019101909291610838565b91607f16916107e2565b34610176576020366003190112610176576004359063ffffffff60e01b8216809203610176576020916380ac58cd60e01b81149081156108ce575b81156108bd575b5015158152f35b6301ffc9a760e01b149050836108b6565b635b5e139f60e01b811491506108af565b91908251928382525f5b848110610909575050825f602080949584010152601f8019910116010190565b806020809284010151828286010152016108e9565b600435906001600160a01b038216820361017657565b602435906001600160a01b038216820361017657565b6060906003190112610176576004356001600160a01b038116810361017657906024356001600160a01b0381168103610176579060443590565b601f909101601f19168101906001600160401b038211908210176109a757604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116109a757601f01601f191660200190565b6001600160a01b039091169190821561066c575f828152600260205260409020546001600160a01b031692829033151580610aa1575b5084610a80575b805f52600360205260405f2060018154019055815f52600260205260405f208160018060a01b0319825416179055845f516020610cac5f395f51905f525f80a46001600160a01b0316808303610a6857505050565b6364283d7b60e01b5f5260045260245260445260645ffd5b610a8982610c8e565b845f52600360205260405f205f198154019055610a13565b90915080610ae5575b15610ab75782905f610a0c565b8284610acf57637e27328960e01b5f5260045260245ffd5b63177e802f60e01b5f523360045260245260445ffd5b503384148015610b14575b80610aaa57505f838152600460205260409020546001600160a01b03163314610aaa565b505f84815260056020908152604080832033845290915290205460ff16610af0565b5f818152600260205260409020546001600160a01b0316908115610b58575090565b637e27328960e01b5f5260045260245ffd5b823b610b78575b5050505050565b604051630a85bd0160e11b81526001600160a01b039182166004820152918116602483015260448201939093526080606482015291169160209082908190610bc49060848301906108df565b03815f865af15f9181610c49575b50610c2757503d15610c20573d610be8816109bb565b90610bf66040519283610984565b81523d5f602083013e5b80519081610c1b5782633250574960e11b5f5260045260245ffd5b602001fd5b6060610c00565b6001600160e01b03191663757a42ff60e11b016105e757505f80808080610b71565b9091506020813d602011610c86575b81610c6560209383610984565b8101031261017657516001600160e01b03198116810361017657905f610bd2565b3d9150610c58565b5f90815260046020526040902080546001600160a01b031916905556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122044bc4f61ac76fc18193b6f870bcbf783aa0a0646b55bc881b0304d0627dc103964736f6c634300081e0033",
489
+ "linkReferences": {},
490
+ "deployedLinkReferences": {}
491
+ }
@@ -197,6 +197,11 @@
197
197
  "asset": "crvusd",
198
198
  "name": "RAAC NFT",
199
199
  "contract": "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9"
200
+ },
201
+ "raacbotnft": {
202
+ "id": "raacbotnft",
203
+ "name": "RAAC Bot NFT (mock)",
204
+ "contract": "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"
200
205
  }
201
206
  },
202
207
  "assets": {
@@ -310,7 +315,7 @@
310
315
  "raacbotlocker": {
311
316
  "id": "raacbotlocker",
312
317
  "name": "RAAC Bot Locker",
313
- "contract": "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82"
318
+ "contract": "0x8ce361602B935680E8DeC218b820ff5056BeB7af"
314
319
  }
315
320
  },
316
321
  "zap": {
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addRewardTokens = void 0;
4
+ const _helpers_1 = require("./_helpers");
5
+ /**
6
+ * Register reward tokens that can be distributed to lockers. MANAGER_ROLE only.
7
+ * Reverts if any token is the zero address or already registered.
8
+ *
9
+ * @param chainId - The chain/network to use.
10
+ * @param tokens - ERC20 addresses to register.
11
+ * @param signer - An ethers.js Signer instance (required).
12
+ */
13
+ const addRewardTokens = async (chainId, tokens, signer) => {
14
+ if (!signer)
15
+ throw new Error("Signer is required");
16
+ const contract = await (0, _helpers_1.getBotLockerContract)(chainId, signer);
17
+ const tx = await contract.addRewardTokens(tokens);
18
+ await tx.wait();
19
+ return tx;
20
+ };
21
+ exports.addRewardTokens = addRewardTokens;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.distributeRewardToken = void 0;
4
+ const _helpers_1 = require("./_helpers");
5
+ /**
6
+ * Distribute `amount` of a registered reward token across all currently locked NFTs. DISTRIBUTOR_ROLE only.
7
+ * The signer's tokens are pulled via transferFrom, so approve the locker for `amount` first.
8
+ * Reverts when nothing is locked.
9
+ *
10
+ * @param chainId - The chain/network to use.
11
+ * @param token - Address of a registered reward token.
12
+ * @param amount - Amount to distribute, in `token` base units.
13
+ * @param signer - An ethers.js Signer instance (required).
14
+ */
15
+ const distributeRewardToken = async (chainId, token, amount, signer) => {
16
+ if (!signer)
17
+ throw new Error("Signer is required");
18
+ const contract = await (0, _helpers_1.getBotLockerContract)(chainId, signer);
19
+ const tx = await contract.distributeRewardToken(token, amount);
20
+ await tx.wait();
21
+ return tx;
22
+ };
23
+ exports.distributeRewardToken = distributeRewardToken;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConfig = void 0;
4
+ const _helpers_1 = require("./_helpers");
5
+ /**
6
+ * Read the locker's configuration in a single call batch.
7
+ *
8
+ * @param chainId - The chain/network to use.
9
+ * @param provider - Optional ethers.js Provider instance.
10
+ * @returns The NFT collection, lock timing constants, reward tokens and pause state.
11
+ */
12
+ const getConfig = async (chainId, provider) => {
13
+ const contract = await (0, _helpers_1.getBotLockerContract)(chainId, provider);
14
+ const [nft, epochDuration, lockDurationEpochs, rewardTokens, paused] = await Promise.all([
15
+ contract.nft(),
16
+ contract.EPOCH_DURATION(),
17
+ contract.LOCK_DURATION_IN_EPOCH(),
18
+ contract.getRewardTokens(),
19
+ contract.paused(),
20
+ ]);
21
+ return {
22
+ nft,
23
+ epochDuration: Number(epochDuration),
24
+ lockDurationEpochs: Number(lockDurationEpochs),
25
+ rewardTokens: Array.from(rewardTokens),
26
+ paused,
27
+ };
28
+ };
29
+ exports.getConfig = getConfig;