@obolnetwork/obol-sdk 2.8.0 → 2.9.0
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/dist/cjs/package.json +2 -4
- package/dist/cjs/src/abi/splitV2FactoryAbi.js +420 -0
- package/dist/cjs/src/ajv.js +24 -0
- package/dist/cjs/src/bytecodes.js +3 -1
- package/dist/cjs/src/constants.js +24 -16
- package/dist/cjs/src/index.js +10 -10
- package/dist/cjs/src/schema.js +29 -3
- package/dist/cjs/src/splits/splitHelpers.js +100 -109
- package/dist/cjs/src/splits/splits.js +77 -16
- package/dist/cjs/test/client/ajv.spec.js +32 -0
- package/dist/cjs/test/splits/splits.spec.js +76 -2
- package/dist/esm/package.json +2 -4
- package/dist/esm/src/abi/splitV2FactoryAbi.js +417 -0
- package/dist/esm/src/ajv.js +24 -0
- package/dist/esm/src/bytecodes.js +2 -0
- package/dist/esm/src/constants.js +25 -17
- package/dist/esm/src/index.js +10 -10
- package/dist/esm/src/schema.js +28 -2
- package/dist/esm/src/splits/splitHelpers.js +101 -110
- package/dist/esm/src/splits/splits.js +79 -18
- package/dist/esm/test/client/ajv.spec.js +33 -1
- package/dist/esm/test/splits/splits.spec.js +77 -3
- package/dist/types/src/abi/splitV2FactoryAbi.d.ts +60 -0
- package/dist/types/src/bytecodes.d.ts +2 -0
- package/dist/types/src/exits/verificationHelpers.d.ts +1 -0
- package/dist/types/src/schema.d.ts +30 -3
- package/dist/types/src/splits/splitHelpers.d.ts +17 -3
- package/dist/types/src/splits/splits.d.ts +28 -1
- package/dist/types/src/types.d.ts +21 -6
- package/dist/types/src/verification/common.d.ts +1 -0
- package/package.json +2 -4
- package/src/abi/splitV2FactoryAbi.ts +417 -0
- package/src/ajv.ts +33 -0
- package/src/bytecodes.ts +4 -0
- package/src/constants.ts +26 -16
- package/src/index.ts +14 -14
- package/src/schema.ts +29 -2
- package/src/splits/splitHelpers.ts +169 -124
- package/src/splits/splits.ts +115 -17
- package/src/types.ts +24 -6
|
@@ -7,9 +7,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { formatRecipientsForSplitV2, predictSplitV2Address, isSplitV2Deployed, deployOVMContract, deployOVMAndSplitV2, } from './splitHelpers';
|
|
10
|
+
import { formatRecipientsForSplitV2, predictSplitV2Address, isSplitV2Deployed, deployOVMContract, deployOVMAndSplitV2, requestWithdrawalFromOVM, } from './splitHelpers';
|
|
11
11
|
import { CHAIN_CONFIGURATION, SPLITS_V2_SALT, DEFAULT_RETROACTIVE_FUNDING_REWARDS_ONLY_SPLIT, isChainSupportedForSplitters, } from '../constants';
|
|
12
|
-
import { ovmRewardsSplitPayloadSchema, ovmTotalSplitPayloadSchema, } from '../schema';
|
|
12
|
+
import { ovmRewardsSplitPayloadSchema, ovmTotalSplitPayloadSchema, ovmRequestWithdrawalPayloadSchema, } from '../schema';
|
|
13
13
|
import { validatePayload } from '../ajv';
|
|
14
14
|
import { isContractAvailable } from '../utils';
|
|
15
15
|
/**
|
|
@@ -54,22 +54,33 @@ export class ObolSplits {
|
|
|
54
54
|
throw new Error(`Splitter configuration is not supported on ${this.chainId} chain`);
|
|
55
55
|
}
|
|
56
56
|
const chainConfig = CHAIN_CONFIGURATION[this.chainId];
|
|
57
|
-
if (!(chainConfig === null || chainConfig === void 0 ? void 0 : chainConfig.
|
|
57
|
+
if (!(chainConfig === null || chainConfig === void 0 ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
|
|
58
58
|
throw new Error(`OVM contract factory is not configured for chain ${this.chainId}`);
|
|
59
59
|
}
|
|
60
60
|
if (!this.provider) {
|
|
61
61
|
throw new Error('Provider is required to check OVM factory contract availability');
|
|
62
62
|
}
|
|
63
|
-
const ovmFactoryConfig = chainConfig.
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
const ovmFactoryConfig = chainConfig.OVM_FACTORY_CONTRACT;
|
|
64
|
+
const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
|
|
65
|
+
const multiCallConfig = chainConfig.MULTICALL_CONTRACT;
|
|
66
|
+
if (!(ovmFactoryConfig === null || ovmFactoryConfig === void 0 ? void 0 : ovmFactoryConfig.address) ||
|
|
67
|
+
!(ovmFactoryConfig === null || ovmFactoryConfig === void 0 ? void 0 : ovmFactoryConfig.bytecode) ||
|
|
68
|
+
!(splitV2FactoryConfig === null || splitV2FactoryConfig === void 0 ? void 0 : splitV2FactoryConfig.address) ||
|
|
69
|
+
!(splitV2FactoryConfig === null || splitV2FactoryConfig === void 0 ? void 0 : splitV2FactoryConfig.bytecode) ||
|
|
70
|
+
!(multiCallConfig === null || multiCallConfig === void 0 ? void 0 : multiCallConfig.address) ||
|
|
71
|
+
!(multiCallConfig === null || multiCallConfig === void 0 ? void 0 : multiCallConfig.bytecode)) {
|
|
72
|
+
throw new Error(`Contracts configuration is incomplete for chain ${this.chainId}`);
|
|
66
73
|
}
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
74
|
+
const checkOVMFactoryContract = yield isContractAvailable(ovmFactoryConfig.address, this.provider, ovmFactoryConfig.bytecode);
|
|
75
|
+
const checkSplitV2FactoryContract = yield isContractAvailable(splitV2FactoryConfig.address, this.provider, splitV2FactoryConfig.bytecode);
|
|
76
|
+
const checkMultiCallContract = yield isContractAvailable(multiCallConfig.address, this.provider, multiCallConfig.bytecode);
|
|
77
|
+
if (!checkOVMFactoryContract ||
|
|
78
|
+
!checkSplitV2FactoryContract ||
|
|
79
|
+
!checkMultiCallContract) {
|
|
80
|
+
throw new Error(`Splitter contract is not deployed or available on chain ${this.chainId}`);
|
|
70
81
|
}
|
|
71
82
|
const retroActiveFundingRecipient = {
|
|
72
|
-
address: chainConfig.
|
|
83
|
+
address: chainConfig.RETROACTIVE_FUNDING_CONTRACT.address,
|
|
73
84
|
percentAllocation: DEFAULT_RETROACTIVE_FUNDING_REWARDS_ONLY_SPLIT,
|
|
74
85
|
};
|
|
75
86
|
const copiedRewardsSplitRecipients = [
|
|
@@ -159,22 +170,33 @@ export class ObolSplits {
|
|
|
159
170
|
throw new Error(`Splitter configuration is not supported on ${this.chainId} chain`);
|
|
160
171
|
}
|
|
161
172
|
const chainConfig = CHAIN_CONFIGURATION[this.chainId];
|
|
162
|
-
if (!(chainConfig === null || chainConfig === void 0 ? void 0 : chainConfig.
|
|
173
|
+
if (!(chainConfig === null || chainConfig === void 0 ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
|
|
163
174
|
throw new Error(`OVM contract factory is not configured for chain ${this.chainId}`);
|
|
164
175
|
}
|
|
165
176
|
if (!this.provider) {
|
|
166
177
|
throw new Error('Provider is required to check OVM factory contract availability');
|
|
167
178
|
}
|
|
168
|
-
const ovmFactoryConfig = chainConfig.
|
|
169
|
-
|
|
170
|
-
|
|
179
|
+
const ovmFactoryConfig = chainConfig.OVM_FACTORY_CONTRACT;
|
|
180
|
+
const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
|
|
181
|
+
const multiCallConfig = chainConfig.MULTICALL_CONTRACT;
|
|
182
|
+
if (!(ovmFactoryConfig === null || ovmFactoryConfig === void 0 ? void 0 : ovmFactoryConfig.address) ||
|
|
183
|
+
!(ovmFactoryConfig === null || ovmFactoryConfig === void 0 ? void 0 : ovmFactoryConfig.bytecode) ||
|
|
184
|
+
!(splitV2FactoryConfig === null || splitV2FactoryConfig === void 0 ? void 0 : splitV2FactoryConfig.address) ||
|
|
185
|
+
!(splitV2FactoryConfig === null || splitV2FactoryConfig === void 0 ? void 0 : splitV2FactoryConfig.bytecode) ||
|
|
186
|
+
!(multiCallConfig === null || multiCallConfig === void 0 ? void 0 : multiCallConfig.address) ||
|
|
187
|
+
!(multiCallConfig === null || multiCallConfig === void 0 ? void 0 : multiCallConfig.bytecode)) {
|
|
188
|
+
throw new Error(`Contracts configuration is incomplete for chain ${this.chainId}`);
|
|
171
189
|
}
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
|
|
190
|
+
const checkOVMFactoryContract = yield isContractAvailable(ovmFactoryConfig.address, this.provider, ovmFactoryConfig.bytecode);
|
|
191
|
+
const checkSplitV2FactoryContract = yield isContractAvailable(splitV2FactoryConfig.address, this.provider, splitV2FactoryConfig.bytecode);
|
|
192
|
+
const checkMultiCallContract = yield isContractAvailable(multiCallConfig.address, this.provider, multiCallConfig.bytecode);
|
|
193
|
+
if (!checkOVMFactoryContract ||
|
|
194
|
+
!checkSplitV2FactoryContract ||
|
|
195
|
+
!checkMultiCallContract) {
|
|
196
|
+
throw new Error(`Splitter contract is not deployed or available on chain ${this.chainId}`);
|
|
175
197
|
}
|
|
176
198
|
const retroActiveFundingRecipient = {
|
|
177
|
-
address: chainConfig.
|
|
199
|
+
address: chainConfig.RETROACTIVE_FUNDING_CONTRACT.address,
|
|
178
200
|
percentAllocation: DEFAULT_RETROACTIVE_FUNDING_REWARDS_ONLY_SPLIT,
|
|
179
201
|
};
|
|
180
202
|
const copiedRewardsSplitRecipients = [
|
|
@@ -254,4 +276,43 @@ export class ObolSplits {
|
|
|
254
276
|
}
|
|
255
277
|
});
|
|
256
278
|
}
|
|
279
|
+
/**
|
|
280
|
+
* Requests withdrawal from an OVM contract.
|
|
281
|
+
*
|
|
282
|
+
* This method allows requesting withdrawal of validator funds from an OVM contract.
|
|
283
|
+
* The withdrawal request includes OVM address, validator public keys and corresponding withdrawal amounts.
|
|
284
|
+
*
|
|
285
|
+
* @remarks
|
|
286
|
+
* **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
|
|
287
|
+
* and not pushed to version control.
|
|
288
|
+
*
|
|
289
|
+
* @param {OVMRequestWithdrawalPayload} payload - Data needed to request withdrawal
|
|
290
|
+
* @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
|
|
291
|
+
* @throws Will throw an error if the signer is not provided, OVM address is invalid, or the request fails
|
|
292
|
+
*
|
|
293
|
+
* An example of how to use requestWithdrawal:
|
|
294
|
+
* ```typescript
|
|
295
|
+
* const result = await client.splits.requestWithdrawal({
|
|
296
|
+
* ovmAddress: '0x1234567890123456789012345678901234567890',
|
|
297
|
+
* pubKeys: ['0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456'],
|
|
298
|
+
* amounts: ['32000000000'] // 32 ETH in gwei
|
|
299
|
+
* });
|
|
300
|
+
* console.log('Withdrawal requested:', result.txHash);
|
|
301
|
+
* ```
|
|
302
|
+
*/
|
|
303
|
+
requestWithdrawal(payload) {
|
|
304
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
305
|
+
if (!this.signer) {
|
|
306
|
+
throw new Error('Signer is required in requestWithdrawal');
|
|
307
|
+
}
|
|
308
|
+
// [TBD] need to move ovm verification to sdk method and use it here
|
|
309
|
+
const validatedPayload = validatePayload(payload, ovmRequestWithdrawalPayloadSchema);
|
|
310
|
+
return yield requestWithdrawalFromOVM({
|
|
311
|
+
ovmAddress: validatedPayload.ovmAddress,
|
|
312
|
+
pubKeys: validatedPayload.pubKeys,
|
|
313
|
+
amounts: validatedPayload.amounts,
|
|
314
|
+
signer: this.signer,
|
|
315
|
+
});
|
|
316
|
+
});
|
|
317
|
+
}
|
|
257
318
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { validatePayload } from '../../src/ajv';
|
|
2
|
-
import { ovmRewardsSplitPayloadSchema, ovmTotalSplitPayloadSchema, } from '../../src/schema';
|
|
2
|
+
import { ovmRewardsSplitPayloadSchema, ovmTotalSplitPayloadSchema, ovmRequestWithdrawalPayloadSchema, } from '../../src/schema';
|
|
3
3
|
import { TEST_ADDRESSES } from '../fixtures';
|
|
4
4
|
describe('validatePayload - OVM Schemas', () => {
|
|
5
5
|
describe('ovmRewardsSplitPayloadSchema', () => {
|
|
@@ -265,3 +265,35 @@ describe('validatePayload - OVM Schemas', () => {
|
|
|
265
265
|
});
|
|
266
266
|
});
|
|
267
267
|
});
|
|
268
|
+
describe('ovmRequestWithdrawalPayloadSchema', () => {
|
|
269
|
+
const validPayload = {
|
|
270
|
+
ovmAddress: '0x1234567890123456789012345678901234567890',
|
|
271
|
+
pubKeys: [
|
|
272
|
+
'0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
|
|
273
|
+
],
|
|
274
|
+
amounts: ['32000000000'],
|
|
275
|
+
};
|
|
276
|
+
it('should throw error when OVM address is missing', () => {
|
|
277
|
+
const payload = {
|
|
278
|
+
pubKeys: validPayload.pubKeys,
|
|
279
|
+
amounts: validPayload.amounts,
|
|
280
|
+
};
|
|
281
|
+
expect(() => validatePayload(payload, ovmRequestWithdrawalPayloadSchema)).toThrow("Validation failed: must have required property 'ovmAddress'");
|
|
282
|
+
});
|
|
283
|
+
it('should throw error when OVM address is invalid', () => {
|
|
284
|
+
const payload = {
|
|
285
|
+
ovmAddress: '0x123', // Too short
|
|
286
|
+
pubKeys: validPayload.pubKeys,
|
|
287
|
+
amounts: validPayload.amounts,
|
|
288
|
+
};
|
|
289
|
+
expect(() => validatePayload(payload, ovmRequestWithdrawalPayloadSchema)).toThrow('Validation failed: /ovmAddress must match pattern');
|
|
290
|
+
});
|
|
291
|
+
it('should throw error when number of public keys does not match number of amounts', () => {
|
|
292
|
+
const payload = {
|
|
293
|
+
ovmAddress: validPayload.ovmAddress,
|
|
294
|
+
pubKeys: validPayload.pubKeys,
|
|
295
|
+
amounts: ['32000000000', '16000000000'], // 2 amounts, 1 pubKey
|
|
296
|
+
};
|
|
297
|
+
expect(() => validatePayload(payload, ovmRequestWithdrawalPayloadSchema)).toThrow('Validation failed: must pass "validateOVMRequestWithdrawalPayload" keyword validation');
|
|
298
|
+
});
|
|
299
|
+
});
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { Client } from '../../src';
|
|
11
11
|
import { CHAIN_CONFIGURATION } from '../../src/constants';
|
|
12
|
-
import { formatRecipientsForSplitV2, predictSplitV2Address, isSplitV2Deployed, deployOVMAndSplitV2, deployOVMContract, } from '../../src/splits/splitHelpers';
|
|
12
|
+
import { formatRecipientsForSplitV2, predictSplitV2Address, isSplitV2Deployed, deployOVMAndSplitV2, deployOVMContract, requestWithdrawalFromOVM, } from '../../src/splits/splitHelpers';
|
|
13
13
|
import { isContractAvailable } from '../../src/utils';
|
|
14
14
|
import { TEST_ADDRESSES } from '../fixtures';
|
|
15
15
|
// Mock the split helpers
|
|
@@ -19,6 +19,7 @@ jest.mock('../../src/splits/splitHelpers', () => ({
|
|
|
19
19
|
isSplitV2Deployed: jest.fn(),
|
|
20
20
|
deployOVMContract: jest.fn(),
|
|
21
21
|
deployOVMAndSplitV2: jest.fn(),
|
|
22
|
+
requestWithdrawalFromOVM: jest.fn(),
|
|
22
23
|
}));
|
|
23
24
|
// Mock the utils
|
|
24
25
|
jest.mock('../../src/utils', () => ({
|
|
@@ -34,6 +35,7 @@ const mockPredictSplitV2Address = predictSplitV2Address;
|
|
|
34
35
|
const mockIsSplitV2Deployed = isSplitV2Deployed;
|
|
35
36
|
const mockDeployOVMAndSplitV2 = deployOVMAndSplitV2;
|
|
36
37
|
const mockDeployOVMContract = deployOVMContract;
|
|
38
|
+
const mockRequestWithdrawalFromOVM = requestWithdrawalFromOVM;
|
|
37
39
|
const mockIsContractAvailable = isContractAvailable;
|
|
38
40
|
describe('ObolSplits', () => {
|
|
39
41
|
let client;
|
|
@@ -42,6 +44,8 @@ describe('ObolSplits', () => {
|
|
|
42
44
|
beforeEach(() => {
|
|
43
45
|
// Clear all mocks before each test
|
|
44
46
|
jest.clearAllMocks();
|
|
47
|
+
// Reset the mock to not be called by default
|
|
48
|
+
mockRequestWithdrawalFromOVM.mockReset();
|
|
45
49
|
mockSigner = {
|
|
46
50
|
getAddress: jest
|
|
47
51
|
.fn()
|
|
@@ -102,9 +106,9 @@ describe('ObolSplits', () => {
|
|
|
102
106
|
it('should throw error when OVM factory is not configured', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
103
107
|
// Mock chain configuration without OVM factory
|
|
104
108
|
const originalConfig = CHAIN_CONFIGURATION[1];
|
|
105
|
-
// Create a new config object without
|
|
109
|
+
// Create a new config object without OVM_FACTORY_CONTRACT
|
|
106
110
|
const configWithoutOVM = Object.assign({}, originalConfig);
|
|
107
|
-
delete configWithoutOVM.
|
|
111
|
+
delete configWithoutOVM.OVM_FACTORY_CONTRACT;
|
|
108
112
|
CHAIN_CONFIGURATION[1] = configWithoutOVM;
|
|
109
113
|
yield expect(client.splits.createValidatorManagerAndRewardsSplit(mockRewardsSplitPayload)).rejects.toThrow('OVM contract factory is not configured for chain 1');
|
|
110
114
|
// Restore original config
|
|
@@ -226,6 +230,76 @@ describe('ObolSplits', () => {
|
|
|
226
230
|
yield expect(clientUnsupportedChain.splits.createValidatorManagerAndTotalSplit(mockTotalSplitPayload)).rejects.toThrow('Splitter configuration is not supported on 999 chain');
|
|
227
231
|
}));
|
|
228
232
|
});
|
|
233
|
+
describe('requestWithdrawal', () => {
|
|
234
|
+
const mockOVMAddress = '0x1234567890123456789012345678901234567890';
|
|
235
|
+
const mockPubKeys = [
|
|
236
|
+
'0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
|
|
237
|
+
];
|
|
238
|
+
const mockAmounts = ['32000000000']; // 32 ETH in gwei
|
|
239
|
+
it('should request withdrawal successfully', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
240
|
+
mockRequestWithdrawalFromOVM.mockResolvedValue({
|
|
241
|
+
txHash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
|
|
242
|
+
});
|
|
243
|
+
const result = yield client.splits.requestWithdrawal({
|
|
244
|
+
ovmAddress: mockOVMAddress,
|
|
245
|
+
pubKeys: mockPubKeys,
|
|
246
|
+
amounts: mockAmounts,
|
|
247
|
+
});
|
|
248
|
+
expect(result).toEqual({
|
|
249
|
+
txHash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
|
|
250
|
+
});
|
|
251
|
+
expect(mockRequestWithdrawalFromOVM).toHaveBeenCalledWith({
|
|
252
|
+
ovmAddress: mockOVMAddress,
|
|
253
|
+
pubKeys: mockPubKeys,
|
|
254
|
+
amounts: mockAmounts,
|
|
255
|
+
signer: mockSigner,
|
|
256
|
+
});
|
|
257
|
+
}));
|
|
258
|
+
it('should throw error when signer is not provided', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
259
|
+
const clientWithoutSigner = new Client({ chainId: 1 }, undefined, mockProvider);
|
|
260
|
+
yield expect(clientWithoutSigner.splits.requestWithdrawal({
|
|
261
|
+
ovmAddress: mockOVMAddress,
|
|
262
|
+
pubKeys: mockPubKeys,
|
|
263
|
+
amounts: mockAmounts,
|
|
264
|
+
})).rejects.toThrow('Signer is required in requestWithdrawal');
|
|
265
|
+
}));
|
|
266
|
+
// it('should throw error when amount is below minimum (1,000,000 gwei)', async () => {
|
|
267
|
+
// await expect(
|
|
268
|
+
// client.splits.requestWithdrawal({
|
|
269
|
+
// ovmAddress: mockOVMAddress,
|
|
270
|
+
// pubKeys: mockPubKeys,
|
|
271
|
+
// amounts: ['500000'], // Below minimum of 1,000,000 gwei
|
|
272
|
+
// }),
|
|
273
|
+
// ).rejects.toThrow('Validation failed');
|
|
274
|
+
// });
|
|
275
|
+
it('should handle multiple validators withdrawal request', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
276
|
+
const multiplePubKeys = [
|
|
277
|
+
'0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
|
|
278
|
+
'0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd',
|
|
279
|
+
];
|
|
280
|
+
const multipleAmounts = [
|
|
281
|
+
'32000000000', // 32 ETH
|
|
282
|
+
'16000000000', // 16 ETH
|
|
283
|
+
];
|
|
284
|
+
mockRequestWithdrawalFromOVM.mockResolvedValue({
|
|
285
|
+
txHash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
|
|
286
|
+
});
|
|
287
|
+
const result = yield client.splits.requestWithdrawal({
|
|
288
|
+
ovmAddress: mockOVMAddress,
|
|
289
|
+
pubKeys: multiplePubKeys,
|
|
290
|
+
amounts: multipleAmounts,
|
|
291
|
+
});
|
|
292
|
+
expect(result).toEqual({
|
|
293
|
+
txHash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
|
|
294
|
+
});
|
|
295
|
+
expect(mockRequestWithdrawalFromOVM).toHaveBeenCalledWith({
|
|
296
|
+
ovmAddress: mockOVMAddress,
|
|
297
|
+
pubKeys: multiplePubKeys,
|
|
298
|
+
amounts: multipleAmounts,
|
|
299
|
+
signer: mockSigner,
|
|
300
|
+
});
|
|
301
|
+
}));
|
|
302
|
+
});
|
|
229
303
|
describe('constructor', () => {
|
|
230
304
|
it('should create Client instance with splits property', () => {
|
|
231
305
|
const testClient = new Client({ chainId: 1 }, mockSigner, mockProvider);
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export declare const splitV2FactoryAbi: ({
|
|
2
|
+
inputs: {
|
|
3
|
+
internalType: string;
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
}[];
|
|
7
|
+
stateMutability: string;
|
|
8
|
+
type: string;
|
|
9
|
+
anonymous?: undefined;
|
|
10
|
+
name?: undefined;
|
|
11
|
+
outputs?: undefined;
|
|
12
|
+
} | {
|
|
13
|
+
anonymous: boolean;
|
|
14
|
+
inputs: ({
|
|
15
|
+
indexed: boolean;
|
|
16
|
+
internalType: string;
|
|
17
|
+
name: string;
|
|
18
|
+
type: string;
|
|
19
|
+
components?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
components: {
|
|
22
|
+
internalType: string;
|
|
23
|
+
name: string;
|
|
24
|
+
type: string;
|
|
25
|
+
}[];
|
|
26
|
+
indexed: boolean;
|
|
27
|
+
internalType: string;
|
|
28
|
+
name: string;
|
|
29
|
+
type: string;
|
|
30
|
+
})[];
|
|
31
|
+
name: string;
|
|
32
|
+
type: string;
|
|
33
|
+
stateMutability?: undefined;
|
|
34
|
+
outputs?: undefined;
|
|
35
|
+
} | {
|
|
36
|
+
inputs: ({
|
|
37
|
+
components: {
|
|
38
|
+
internalType: string;
|
|
39
|
+
name: string;
|
|
40
|
+
type: string;
|
|
41
|
+
}[];
|
|
42
|
+
internalType: string;
|
|
43
|
+
name: string;
|
|
44
|
+
type: string;
|
|
45
|
+
} | {
|
|
46
|
+
internalType: string;
|
|
47
|
+
name: string;
|
|
48
|
+
type: string;
|
|
49
|
+
components?: undefined;
|
|
50
|
+
})[];
|
|
51
|
+
name: string;
|
|
52
|
+
outputs: {
|
|
53
|
+
internalType: string;
|
|
54
|
+
name: string;
|
|
55
|
+
type: string;
|
|
56
|
+
}[];
|
|
57
|
+
stateMutability: string;
|
|
58
|
+
type: string;
|
|
59
|
+
anonymous?: undefined;
|
|
60
|
+
})[];
|
|
@@ -11,3 +11,5 @@ export declare const MAINNET_WAREHOUSE_BYTECODE = "0x608060405260043610156100115
|
|
|
11
11
|
export declare const HOODI_OWR_FACTORY_BYTECODE = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c3d7aa861461003b578063c52425e41461006b575b600080fd5b61005560048036038101906100509190610471565b610089565b6040516100629190610537565b60405180910390f35b6100736102c3565b6040516100809190610537565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806100f15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610128576040517ffca23e2a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008203610162576040517f8966ee9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6bffffffffffffffffffffffff80168211156101b557816040517f7a95f4750000000000000000000000000000000000000000000000000000000081526004016101ac9190610561565b60405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff1660a084901b17905060008473ffffffffffffffffffffffffffffffffffffffff1690506000878383604051602001610208939291906105e5565b6040516020818303038152906040529050610262817f000000000000000000000000f28cd9c47ebee843638cacb1a47505fd60fe5bcf73ffffffffffffffffffffffffffffffffffffffff166102e790919063ffffffff16565b93508373ffffffffffffffffffffffffffffffffffffffff167ff818472e7ef9970531a3465a1d70817d221d2c79dc98ea49bdb1254783dba6eb898989896040516102b09493929190610631565b60405180910390a2505050949350505050565b7f000000000000000000000000f28cd9c47ebee843638cacb1a47505fd60fe5bcf81565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a036000f09750876103b35763301164256000526004601cfd5b8183528389528460208a03528560408a03528660608a03525050505050505092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610408826103dd565b9050919050565b610418816103fd565b811461042357600080fd5b50565b6000813590506104358161040f565b92915050565b6000819050919050565b61044e8161043b565b811461045957600080fd5b50565b60008135905061046b81610445565b92915050565b6000806000806080858703121561048b5761048a6103d8565b5b600061049987828801610426565b94505060206104aa87828801610426565b93505060406104bb87828801610426565b92505060606104cc8782880161045c565b91505092959194509250565b6000819050919050565b60006104fd6104f86104f3846103dd565b6104d8565b6103dd565b9050919050565b600061050f826104e2565b9050919050565b600061052182610504565b9050919050565b61053181610516565b82525050565b600060208201905061054c6000830184610528565b92915050565b61055b8161043b565b82525050565b60006020820190506105766000830184610552565b92915050565b60008160601b9050919050565b60006105948261057c565b9050919050565b60006105a682610589565b9050919050565b6105be6105b9826103fd565b61059b565b82525050565b6000819050919050565b6105df6105da8261043b565b6105c4565b82525050565b60006105f182866105ad565b60148201915061060182856105ce565b60208201915061061182846105ce565b602082019150819050949350505050565b61062b816103fd565b82525050565b60006080820190506106466000830187610622565b6106536020830186610622565b6106606040830185610622565b61066d6060830184610552565b9594505050505056fea2646970667358221220fcf81212e88e4cccbb5e7ef128150f04003e9c896bd3f612c627d77808aac1f664736f6c63430008130033";
|
|
12
12
|
export declare const HOODI_MULTICALL_BYTECODE = "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033";
|
|
13
13
|
export declare const HOODI_SPLITMAIN_BYTECODE = "0x6080604052600436106101185760003560e01c806377b1e4e9116100a0578063c7de644011610064578063c7de64401461034e578063d0e4b2f41461036e578063e10e51d61461038e578063e61cb05e146103cb578063ecef0ace146103eb57600080fd5b806377b1e4e91461027e5780638117abc11461029e57806388c662aa146102d2578063a5e3909e1461030e578063c3a8962c1461032e57600080fd5b80633bb66a7b116100e75780633bb66a7b146101cf5780633f26479e146101ef57806352844dd3146102065780636e5f69191461023e5780637601f7821461025e57600080fd5b80631267c6da146101245780631581130214610146578063189cbaa0146101665780631da0b8fc1461018657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f366004612ab2565b61040b565b005b34801561015257600080fd5b50610144610161366004612c4c565b6104a6565b34801561017257600080fd5b50610144610181366004612ab2565b61081a565b34801561019257600080fd5b506101bc6101a1366004612ab2565b6001600160a01b031660009081526002602052604090205490565b6040519081526020015b60405180910390f35b3480156101db57600080fd5b506101bc6101ea366004612ab2565b6108e5565b3480156101fb57600080fd5b506101bc620f424081565b34801561021257600080fd5b50610226610221366004612d5d565b61093e565b6040516001600160a01b0390911681526020016101c6565b34801561024a57600080fd5b50610144610259366004612d03565b610c4d565b34801561026a57600080fd5b50610226610279366004612ddb565b610d82565b34801561028a57600080fd5b50610144610299366004612c4c565b611144565b3480156102aa57600080fd5b506102267f000000000000000000000000110966463c090a7f90283548f03f68f745aad63881565b3480156102de57600080fd5b506102266102ed366004612ab2565b6001600160a01b039081166000908152600260205260409020600101541690565b34801561031a57600080fd5b50610144610329366004612b95565b611487565b34801561033a57600080fd5b506101bc610349366004612c3a565b6117aa565b34801561035a57600080fd5b50610144610369366004612ab2565b61187e565b34801561037a57600080fd5b50610144610389366004612ace565b61194d565b34801561039a57600080fd5b506102266103a9366004612ab2565b6001600160a01b03908116600090815260026020819052604090912001541690565b3480156103d757600080fd5b506101446103e6366004612b95565b611a1f565b3480156103f757600080fd5b50610144610406366004612b06565b611d6f565b6001600160a01b0381811660009081526002602052604090206001015482911633146104515760405163472511eb60e11b81523360048201526024015b60405180910390fd5b6001600160a01b038216600081815260026020819052604080832090910180546001600160a01b0319169055517f6c2460a415b84be3720c209fe02f2cad7a6bcba21e8637afe8957b7ec4b6ef879190a25050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050610535578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610564578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061057183612020565b63ffffffff16146105a75761058582612020565b60405163fcc487c160e01b815263ffffffff9091166004820152602401610448565b82516000190160005b8181101561069e578481600101815181106105db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061060c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061063e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061066657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561069657604051630db7e4c760e01b815260048101829052602401610448565b6001016105b0565b50600063ffffffff168382815181106106c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156106f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561072a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b61079a8b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250612073915050565b61080d8b8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506120c59050565b5050505050505050505050565b6001600160a01b03818116600090815260026020526040902060010154829116331461085b5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905191931691907f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d0908490a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b0319169055565b6001600160a01b038116600090815260026020526040812054610909576000610915565b816001600160a01b0316315b6001600160a01b0383166000908152602081905260409020546109389190612f98565b92915050565b6000858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152505083518692506002111590506109cf578251604051630e8c626560e41b815260040161044891815260200190565b81518351146109fe578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610a0b83612020565b63ffffffff1614610a1f5761058582612020565b82516000190160005b81811015610b1657848160010181518110610a5357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610a8457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610ab65760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610ade57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b0e57604051630db7e4c760e01b815260048101829052602401610448565b600101610a28565b50600063ffffffff16838281518110610b3f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b6f57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610ba25760405163308440e360e21b815263ffffffff82166004820152602401610448565b6000610c138a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061239f915050565b9050610c3f7f000000000000000000000000110966463c090a7f90283548f03f68f745aad638826123d5565b9a9950505050505050505050565b60008167ffffffffffffffff811115610c7657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c9f578160200160208202803683370190505b50905060008415610cb657610cb38661247a565b90505b60005b83811015610d3257610cff87868684818110610ce557634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfa9190612ab2565b6124cd565b838281518110610d1f57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152600101610cb9565b50856001600160a01b03167fa9e30bf144f83390a4fe47562a4e16892108102221c674ff538da0b72a83d17482868686604051610d729493929190612f08565b60405180910390a2505050505050565b600086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050610e13578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610e42578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610e4f83612020565b63ffffffff1614610e635761058582612020565b82516000190160005b81811015610f5a57848160010181518110610e9757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610ec857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610efa5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610f2257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610f5257604051630db7e4c760e01b815260048101829052602401610448565b600101610e6c565b50600063ffffffff16838281518110610f8357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610fb357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610fe65760405163308440e360e21b815263ffffffff82166004820152602401610448565b60006110578b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c925061239f915050565b90506001600160a01b038616611098576110917f000000000000000000000000110966463c090a7f90283548f03f68f745aad63882612539565b94506110f5565b6110c17f000000000000000000000000110966463c090a7f90283548f03f68f745aad6386125e9565b6001600160a01b03818116600090815260026020526040902060010180546001600160a01b03191691891691909117905594505b6001600160a01b038516600081815260026020526040808220849055517f8d5f9943c664a3edaf4d3eb18cc5e2c45a7d2dc5869be33d33bbc0fff9bc25909190a2505050509695505050505050565b6001600160a01b0388811660009081526002602052604090206001015489911633146111855760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611214578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611243578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061125083612020565b63ffffffff16146112645761058582612020565b82516000190160005b8181101561135b5784816001018151811061129857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168582815181106112c957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316106112fb5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061132357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561135357604051630db7e4c760e01b815260048101829052602401610448565b60010161126d565b50600063ffffffff1683828151811061138457634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156113b457604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156113e75760405163308440e360e21b815263ffffffff82166004820152602401610448565b6113f58c8b8b8b8b8b612698565b6114798c8c8c8c80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c91506120c59050565b505050505050505050505050565b6001600160a01b0387811660009081526002602052604090206001015488911633146114c85760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611557578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611586578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061159383612020565b63ffffffff16146115a75761058582612020565b82516000190160005b8181101561169e578481600101815181106115db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061160c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061163e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061166657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561169657604051630db7e4c760e01b815260048101829052602401610448565b6001016115b0565b50600063ffffffff168382815181106116c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156116f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561172a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b6117388b8b8b8b8b8b612698565b61080d8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506127589050565b6001600160a01b0382166000908152600260205260408120546117ce576000611847565b6040516370a0823160e01b81526001600160a01b0384811660048301528316906370a082319060240160206040518083038186803b15801561180f57600080fd5b505afa158015611823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118479190612e6c565b6001600160a01b038084166000908152600160209081526040808320938816835292905220546118779190612f98565b9392505050565b6001600160a01b038181166000908152600260208190526040909120015482911633146118c05760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905133949190911692917f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d091a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b03191633179055565b6001600160a01b03828116600090815260026020526040902060010154839116331461198e5760405163472511eb60e11b8152336004820152602401610448565b816001600160a01b0381166119c15760405163c369130760e01b81526001600160a01b0382166004820152602401610448565b6001600160a01b03848116600081815260026020819052604080832090910180546001600160a01b0319169488169485179055517f107cf6ea8668d533df1aab5bb8b6315bb0c25f0b6c955558d09368f290668fc79190a350505050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611aae578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611add578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611aea83612020565b63ffffffff1614611afe5761058582612020565b82516000190160005b81811015611bf557848160010181518110611b3257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611b6357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611b955760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611bbd57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611bed57604051630db7e4c760e01b815260048101829052602401610448565b600101611b07565b50600063ffffffff16838281518110611c1e57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c4e57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115611c815760405163308440e360e21b815263ffffffff82166004820152602401610448565b611cf18a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250612073915050565b611d638a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92508a91506127589050565b50505050505050505050565b6001600160a01b038681166000908152600260205260409020600101548791163314611db05760405163472511eb60e11b8152336004820152602401610448565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611e3f578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611e6e578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611e7b83612020565b63ffffffff1614611e8f5761058582612020565b82516000190160005b81811015611f8657848160010181518110611ec357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611ef457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611f265760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611f4e57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611f7e57604051630db7e4c760e01b815260048101829052602401610448565b600101611e98565b50600063ffffffff16838281518110611faf57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611fdf57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156120125760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d638a8a8a8a8a8a612698565b8051600090815b8181101561206c5783818151811061204f57634e487b7160e01b600052603260045260246000fd5b6020026020010151836120629190612fb0565b9250600101612027565b5050919050565b600061208084848461239f565b6001600160a01b03861660009081526002602052604090205490915081146120be5760405163dd5ff45760e01b815260048101829052602401610448565b5050505050565b6001600160a01b038581166000818152600160209081526040808320948b16808452949091528082205490516370a0823160e01b815260048101949094529092909183916370a082319060240160206040518083038186803b15801561212a57600080fd5b505afa15801561213e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121629190612e6c565b9050801561216f57600019015b811561217c576001820391505b818101925081156121b0576001600160a01b038089166000908152600160208181526040808420948e168452939052919020555b836001600160a01b0316886001600160a01b03168a6001600160a01b03167fb5ee5dc3d2c31a019bbf2c787e0e9c97971c96aceea1c38c12fc8fd25c536d46866040516121ff91815260200190565b60405180910390a463ffffffff851615612271576001600160a01b038881166000908152600160205260408120620f424063ffffffff891687020492839290881661224a573361224c565b875b6001600160a01b03168152602081019190915260400160002080549091019055909203915b865160005b81811015612329576122ba858983815181106122a257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16620f424091020490565b6001600160a01b038b1660009081526001602052604081208b519091908c90859081106122f757634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091019055600101612276565b5050801561239457604051633e0f9fff60e11b81526001600160a01b038981166004830152602482018390528a1690637c1f3ffe90604401600060405180830381600087803b15801561237b57600080fd5b505af115801561238f573d6000803e3d6000fd5b505050505b505050505050505050565b60008383836040516020016123b693929190612e84565b6040516020818303038152906040528051906020012090509392505050565b6000611877838330604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b6033820152606093841b60468201526d5af43d3d93803e605b57fd5bf3ff60901b605a820152921b6068830152607c8201526067808220609c830152605591012090565b6001600160a01b03811660009081526020819052604081205461249f90600190612fd8565b6001600160a01b0383166000818152602081905260409020600190559091506124c8908261293a565b919050565b6001600160a01b038082166000908152600160208181526040808420948716845293905291812054909161250091612fd8565b6001600160a01b038084166000818152600160208181526040808420958a16845294905292902091909155909150610938908483612990565b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528360601b60468201526c5af43d3d93803e605b57fd5bf360981b605a820152826067826000f59150506001600160a01b0381166109385760405163380bbe1360e01b815260040160405180910390fd5b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528260601b60468201526c5af43d3d93803e605b57fd5bf360981b605a8201526067816000f09150506001600160a01b0381166124c857604051630985da9b60e41b815260040160405180910390fd5b600061270986868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525087925061239f915050565b6001600160a01b0388166000818152600260205260408082208490555192935090917f45e1e99513dd915ac128b94953ca64c6375717ea1894b3114db08cdca51debd29190a250505050505050565b6001600160a01b0385166000818152602081905260408120549131908215612781576001830392505b5081810182156127a8576001600160a01b0388166000908152602081905260409020600190555b836001600160a01b0316886001600160a01b03167f87c3ca0a87d9b82033e4bc55e6d30621f8d7e0c9d8ca7988edfde8932787b77b836040516127ed91815260200190565b60405180910390a363ffffffff85161561284c57620f424063ffffffff8616820204806000806001600160a01b0388166128275733612829565b875b6001600160a01b0316815260208101919091526040016000208054909101905590035b865160005b818110156128d25761287d838983815181106122a257634e487b7160e01b600052603260045260246000fd5b6000808b84815181106128a057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091019055600101612851565b5050811561293057604051632ac3affd60e21b8152600481018390526001600160a01b0389169063ab0ebff490602401600060405180830381600087803b15801561291c57600080fd5b505af1158015611479573d6000803e3d6000fd5b5050505050505050565b600080600080600085875af190508061298b5760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610448565b505050565b600060405163a9059cbb60e01b81526001600160a01b03841660048201528260248201526000806044836000895af19150506129cb81612a0f565b612a095760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610448565b50505050565b60003d82612a2157806000803e806000fd5b8060208114612a39578015612a4a576000925061206c565b816000803e6000511515925061206c565b5060019392505050565b60008083601f840112612a65578182fd5b50813567ffffffffffffffff811115612a7c578182fd5b6020830191508360208260051b8501011115612a9757600080fd5b9250929050565b803563ffffffff811681146124c857600080fd5b600060208284031215612ac3578081fd5b813561187781613005565b60008060408385031215612ae0578081fd5b8235612aeb81613005565b91506020830135612afb81613005565b809150509250929050565b60008060008060008060808789031215612b1e578182fd5b8635612b2981613005565b9550602087013567ffffffffffffffff80821115612b45578384fd5b612b518a838b01612a54565b90975095506040890135915080821115612b69578384fd5b50612b7689828a01612a54565b9094509250612b89905060608801612a9e565b90509295509295509295565b600080600080600080600060a0888a031215612baf578081fd5b8735612bba81613005565b9650602088013567ffffffffffffffff80821115612bd6578283fd5b612be28b838c01612a54565b909850965060408a0135915080821115612bfa578283fd5b50612c078a828b01612a54565b9095509350612c1a905060608901612a9e565b91506080880135612c2a81613005565b8091505092959891949750929550565b60008060408385031215612ae0578182fd5b60008060008060008060008060c0898b031215612c67578081fd5b8835612c7281613005565b97506020890135612c8281613005565b9650604089013567ffffffffffffffff80821115612c9e578283fd5b612caa8c838d01612a54565b909850965060608b0135915080821115612cc2578283fd5b50612ccf8b828c01612a54565b9095509350612ce2905060808a01612a9e565b915060a0890135612cf281613005565b809150509295985092959890939650565b60008060008060608587031215612d18578384fd5b8435612d2381613005565b935060208501359250604085013567ffffffffffffffff811115612d45578283fd5b612d5187828801612a54565b95989497509550505050565b600080600080600060608688031215612d74578081fd5b853567ffffffffffffffff80821115612d8b578283fd5b612d9789838a01612a54565b90975095506020880135915080821115612daf578283fd5b50612dbc88828901612a54565b9094509250612dcf905060408701612a9e565b90509295509295909350565b60008060008060008060808789031215612df3578182fd5b863567ffffffffffffffff80821115612e0a578384fd5b612e168a838b01612a54565b90985096506020890135915080821115612e2e578384fd5b50612e3b89828a01612a54565b9095509350612e4e905060408801612a9e565b91506060870135612e5e81613005565b809150509295509295509295565b600060208284031215612e7d578081fd5b5051919050565b835160009082906020808801845b83811015612eb75781516001600160a01b031685529382019390820190600101612e92565b50508651818801939250845b81811015612ee557845163ffffffff1684529382019392820192600101612ec3565b50505060e09490941b6001600160e01b0319168452505060049091019392505050565b84815260606020808301829052908201849052600090859060808401835b87811015612f54578335612f3981613005565b6001600160a01b031682529282019290820190600101612f26565b5084810360408601528551808252908201925081860190845b81811015612f8957825185529383019391830191600101612f6d565b50929998505050505050505050565b60008219821115612fab57612fab612fef565b500190565b600063ffffffff808316818516808303821115612fcf57612fcf612fef565b01949350505050565b600082821015612fea57612fea612fef565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461301a57600080fd5b5056fea264697066735822122078638564d8f0338df6cf15b5c2680d5c2ef45167f59938471977e9756316b94964736f6c63430008040033";
|
|
14
|
+
export declare const MAINNET_SPLIT_V2_FACTORY_BYTECODE = "0x6080604090808252600480361015610015575f80fd5b5f3560e01c9182632556fa391461043c5750816380ebf0ab146102be5781639e317f121461027a578163cd6bc1211461023f578163e9889edd1461016d578163f79918b0146100de575063fc6119b11461006d575f80fd5b346100da575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100da576020905173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000f9c25250523df26343222fc46de932355b850c97168152f35b5f80fd5b82346100da577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc916080833601126100da5780359267ffffffffffffffff84116100da5760809084360301126100da5761016573ffffffffffffffffffffffffffffffffffffffff916020946101526105e7565b61015a61060a565b91606435930161090f565b915191168152f35b82346100da5760209073ffffffffffffffffffffffffffffffffffffffff6101656101a061019a3661062d565b91610b37565b309061023a7f000000000000000000000000f9c25250523df26343222fc46de932355b850c9790604051916c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f20916040525f606052565b610b7a565b82346100da576102546101a061019a3661062d565b803b151573ffffffffffffffffffffffffffffffffffffffff8351921682526020820152f35b82346100da5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100da57602091355f525f8252805f20549051908152f35b82346100da577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9181833601126100da5780359267ffffffffffffffff84116100da5760809084360301126100da5761016561039c73ffffffffffffffffffffffffffffffffffffffff9261034a6103766103376105e7565b875192839160209a8b84019601866107c7565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610858565b519020805f525f8652845f205490855191878301528682526103978261083c565b6108c2565b848151910120309061023a7f000000000000000000000000f9c25250523df26343222fc46de932355b850c9790604051916c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f20916040525f606052565b9083346100da577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126100da5782359067ffffffffffffffff82116100da5760809082850192360301126100da576104976105e7565b6105286104a261060a565b6104e4602097888101906104bb8161034a888a866107c7565b519020805f525f8952865f20908154916001830190558751918a8301528982526103978261083c565b73ffffffffffffffffffffffffffffffffffffffff9281898593519101207f000000000000000000000000f9c25250523df26343222fc46de932355b850c97610aae565b1695863b156100da575f858592610569895194859384937fbaa7fda400000000000000000000000000000000000000000000000000000000855284016107c7565b0381838b5af180156105dd57928795927fb3ec24e9259e438f9917b49f27c0dd89a11b7626cb63e6fc977863c0b26a681b95926105ba956105ce575b508188519586956060875260608701906106f5565b93168a85015216868301520390a251908152f35b6105d7906107fb565b8a6105a5565b86513d5f823e3d90fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100da57565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036100da57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc906060828201126100da576004359167ffffffffffffffff83116100da57826080920301126100da576004019060243573ffffffffffffffffffffffffffffffffffffffff811681036100da579060443590565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112156100da57016020813591019167ffffffffffffffff82116100da578160051b360383136100da57565b6080820161070382806106a2565b608085529182905260a08401915f905b80821061078f5750505061072a60208301836106a2565b909284830360208601528183527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82116100da5760609160051b8094602085013760408101356040860152013561ffff81168091036100da5760606020940152010190565b90919283359073ffffffffffffffffffffffffffffffffffffffff82168092036100da57600191815260208091019401920190610713565b9073ffffffffffffffffffffffffffffffffffffffff6107f46020929594956040855260408501906106f5565b9416910152565b67ffffffffffffffff811161080f57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761080f57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761080f57604052565b908151915f5b8381106108af575050015f815290565b806020809284010151818501520161089f565b61090d909291926108e160405194859260208401526040830190610899565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283610858565b565b93929161091d838387610b37565b7f000000000000000000000000f9c25250523df26343222fc46de932355b850c976109bb308361023a8490604051916c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f20916040525f606052565b803b610aa55750906109cc91610aae565b9473ffffffffffffffffffffffffffffffffffffffff9283871694853b156100da57604051947fbaa7fda40000000000000000000000000000000000000000000000000000000086525f8680610a268688600484016107c7565b0381838b5af1948515610a9a577fc4cec5a1846f5c98dc275670618bfecffec4da2e7cba63760ef46f38c75d236e96610a7496610a8b575b50816040519687966080885260808801906106f5565b9416602086015216604084015260608301520390a2565b610a94906107fb565b5f610a5e565b6040513d5f823e3d90fd5b96505050505050565b9190604051926c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f5ff5916040525f6060528115610b2a57565b63301164255f526004601cfd5b6040519291610b4f9184916108e191602084016107c7565b610b7460206040518093610b668383018097610899565b908152038084520182610858565b51902090565b91909160ff5f5360355260601b60015260155260555f20905f60355256fea2646970667358221220edd55753c55f257991df670fc562cdf54adb62d710125933fc4a0a7afddbc02564736f6c63430008170033";
|
|
15
|
+
export declare const HOODI_SPLIT_V2_FACTORY_BYTECODE = "0x6080604090808252600480361015610015575f80fd5b5f3560e01c9182632556fa391461043c5750816380ebf0ab146102be5781639e317f121461027a578163cd6bc1211461023f578163e9889edd1461016d578163f79918b0146100de575063fc6119b11461006d575f80fd5b346100da575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100da576020905173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000f9c25250523df26343222fc46de932355b850c97168152f35b5f80fd5b82346100da577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc916080833601126100da5780359267ffffffffffffffff84116100da5760809084360301126100da5761016573ffffffffffffffffffffffffffffffffffffffff916020946101526105e7565b61015a61060a565b91606435930161090f565b915191168152f35b82346100da5760209073ffffffffffffffffffffffffffffffffffffffff6101656101a061019a3661062d565b91610b37565b309061023a7f000000000000000000000000f9c25250523df26343222fc46de932355b850c9790604051916c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f20916040525f606052565b610b7a565b82346100da576102546101a061019a3661062d565b803b151573ffffffffffffffffffffffffffffffffffffffff8351921682526020820152f35b82346100da5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100da57602091355f525f8252805f20549051908152f35b82346100da577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc9181833601126100da5780359267ffffffffffffffff84116100da5760809084360301126100da5761016561039c73ffffffffffffffffffffffffffffffffffffffff9261034a6103766103376105e7565b875192839160209a8b84019601866107c7565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610858565b519020805f525f8652845f205490855191878301528682526103978261083c565b6108c2565b848151910120309061023a7f000000000000000000000000f9c25250523df26343222fc46de932355b850c9790604051916c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f20916040525f606052565b9083346100da577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126100da5782359067ffffffffffffffff82116100da5760809082850192360301126100da576104976105e7565b6105286104a261060a565b6104e4602097888101906104bb8161034a888a866107c7565b519020805f525f8952865f20908154916001830190558751918a8301528982526103978261083c565b73ffffffffffffffffffffffffffffffffffffffff9281898593519101207f000000000000000000000000f9c25250523df26343222fc46de932355b850c97610aae565b1695863b156100da575f858592610569895194859384937fbaa7fda400000000000000000000000000000000000000000000000000000000855284016107c7565b0381838b5af180156105dd57928795927fb3ec24e9259e438f9917b49f27c0dd89a11b7626cb63e6fc977863c0b26a681b95926105ba956105ce575b508188519586956060875260608701906106f5565b93168a85015216868301520390a251908152f35b6105d7906107fb565b8a6105a5565b86513d5f823e3d90fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036100da57565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036100da57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc906060828201126100da576004359167ffffffffffffffff83116100da57826080920301126100da576004019060243573ffffffffffffffffffffffffffffffffffffffff811681036100da579060443590565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112156100da57016020813591019167ffffffffffffffff82116100da578160051b360383136100da57565b6080820161070382806106a2565b608085529182905260a08401915f905b80821061078f5750505061072a60208301836106a2565b909284830360208601528183527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82116100da5760609160051b8094602085013760408101356040860152013561ffff81168091036100da5760606020940152010190565b90919283359073ffffffffffffffffffffffffffffffffffffffff82168092036100da57600191815260208091019401920190610713565b9073ffffffffffffffffffffffffffffffffffffffff6107f46020929594956040855260408501906106f5565b9416910152565b67ffffffffffffffff811161080f57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761080f57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761080f57604052565b908151915f5b8381106108af575050015f815290565b806020809284010151818501520161089f565b61090d909291926108e160405194859260208401526040830190610899565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283610858565b565b93929161091d838387610b37565b7f000000000000000000000000f9c25250523df26343222fc46de932355b850c976109bb308361023a8490604051916c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f20916040525f606052565b803b610aa55750906109cc91610aae565b9473ffffffffffffffffffffffffffffffffffffffff9283871694853b156100da57604051947fbaa7fda40000000000000000000000000000000000000000000000000000000086525f8680610a268688600484016107c7565b0381838b5af1948515610a9a577fc4cec5a1846f5c98dc275670618bfecffec4da2e7cba63760ef46f38c75d236e96610a7496610a8b575b50816040519687966080885260808801906106f5565b9416602086015216604084015260608301520390a2565b610a94906107fb565b5f610a5e565b6040513d5f823e3d90fd5b96505050505050565b9190604051926c5af43d3d93803e605757fd5bf36051526044526f593da1005b3d3d3d3d363d3d37363d736030527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff6020527060593d8160093d39f336602c57343d527f5f526071600f5ff5916040525f6060528115610b2a57565b63301164255f526004601cfd5b6040519291610b4f9184916108e191602084016107c7565b610b7460206040518093610b668383018097610899565b908152038084520182610858565b51902090565b91909160ff5f5360355260601b60015260155260555f20905f60355256fea2646970667358221220edd55753c55f257991df670fc562cdf54adb62d710125933fc4a0a7afddbc02564736f6c63430008170033";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
export declare const GENESIS_VALIDATOR_ROOT_HEX_STRING = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
3
4
|
/**
|
|
4
5
|
* Computes the domain for a given domain type, fork version, and genesis state.
|
|
@@ -200,7 +200,7 @@ export declare const ovmBaseSplitPayload: {
|
|
|
200
200
|
splitOwnerAddress: {
|
|
201
201
|
type: string;
|
|
202
202
|
pattern: string;
|
|
203
|
-
default:
|
|
203
|
+
default: string;
|
|
204
204
|
};
|
|
205
205
|
principalThreshold: {
|
|
206
206
|
type: string;
|
|
@@ -244,7 +244,7 @@ export declare const ovmRewardsSplitPayloadSchema: {
|
|
|
244
244
|
splitOwnerAddress: {
|
|
245
245
|
type: string;
|
|
246
246
|
pattern: string;
|
|
247
|
-
default:
|
|
247
|
+
default: string;
|
|
248
248
|
};
|
|
249
249
|
principalThreshold: {
|
|
250
250
|
type: string;
|
|
@@ -303,7 +303,7 @@ export declare const ovmTotalSplitPayloadSchema: {
|
|
|
303
303
|
splitOwnerAddress: {
|
|
304
304
|
type: string;
|
|
305
305
|
pattern: string;
|
|
306
|
-
default:
|
|
306
|
+
default: string;
|
|
307
307
|
};
|
|
308
308
|
principalThreshold: {
|
|
309
309
|
type: string;
|
|
@@ -321,3 +321,30 @@ export declare const ovmTotalSplitPayloadSchema: {
|
|
|
321
321
|
validateOVMTotalSplitRecipients: boolean;
|
|
322
322
|
required: string[];
|
|
323
323
|
};
|
|
324
|
+
export declare const ovmRequestWithdrawalPayloadSchema: {
|
|
325
|
+
type: string;
|
|
326
|
+
properties: {
|
|
327
|
+
ovmAddress: {
|
|
328
|
+
type: string;
|
|
329
|
+
pattern: string;
|
|
330
|
+
};
|
|
331
|
+
pubKeys: {
|
|
332
|
+
type: string;
|
|
333
|
+
minItems: number;
|
|
334
|
+
items: {
|
|
335
|
+
type: string;
|
|
336
|
+
pattern: string;
|
|
337
|
+
};
|
|
338
|
+
};
|
|
339
|
+
amounts: {
|
|
340
|
+
type: string;
|
|
341
|
+
minItems: number;
|
|
342
|
+
items: {
|
|
343
|
+
type: string;
|
|
344
|
+
pattern: string;
|
|
345
|
+
};
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
validateOVMRequestWithdrawalPayload: boolean;
|
|
349
|
+
required: string[];
|
|
350
|
+
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { type OWRTranches, type ClusterValidator, type ETH_ADDRESS, type SplitRecipient, type SignerType, type SplitV2Recipient, type OVMArgs } from '../types';
|
|
2
|
-
import { SplitsClient } from '@0xsplits/splits-sdk';
|
|
3
2
|
type Call = {
|
|
4
3
|
target: ETH_ADDRESS;
|
|
5
4
|
callData: string;
|
|
@@ -62,9 +61,8 @@ export declare const getOWRTranches: ({ owrAddress, signer, }: {
|
|
|
62
61
|
owrAddress: ETH_ADDRESS;
|
|
63
62
|
signer: SignerType;
|
|
64
63
|
}) => Promise<OWRTranches>;
|
|
65
|
-
export declare const multicall: (calls: Call[], signer: SignerType,
|
|
64
|
+
export declare const multicall: (calls: Call[], signer: SignerType, chainId: number) => Promise<any>;
|
|
66
65
|
export declare const formatRecipientsForSplitV2: (splitRecipients: SplitRecipient[] | SplitV2Recipient[]) => SplitV2Recipient[];
|
|
67
|
-
export declare const createSplitsClient: (signer: SignerType, chainId: number) => Promise<SplitsClient>;
|
|
68
66
|
export declare const predictSplitV2Address: ({ splitOwnerAddress, recipients, distributorFeePercent, salt, signer, chainId, }: {
|
|
69
67
|
splitOwnerAddress: string;
|
|
70
68
|
recipients: SplitV2Recipient[];
|
|
@@ -101,4 +99,20 @@ export declare const deployOVMAndSplitV2: ({ ovmArgs, rewardRecipients, isReward
|
|
|
101
99
|
isPrincipalSplitDeployed?: boolean | undefined;
|
|
102
100
|
splitOwnerAddress: string;
|
|
103
101
|
}) => Promise<string>;
|
|
102
|
+
/**
|
|
103
|
+
* Requests withdrawal from an OVM contract
|
|
104
|
+
* @param ovmAddress - The address of the OVM contract
|
|
105
|
+
* @param pubKeys - Array of validator public keys in bytes format
|
|
106
|
+
* @param amounts - Array of withdrawal amounts in wei (uint64)
|
|
107
|
+
* @param signer - The signer to use for the transaction
|
|
108
|
+
* @returns Promise that resolves to the transaction hash
|
|
109
|
+
*/
|
|
110
|
+
export declare const requestWithdrawalFromOVM: ({ ovmAddress, pubKeys, amounts, signer, }: {
|
|
111
|
+
ovmAddress: string;
|
|
112
|
+
pubKeys: string[];
|
|
113
|
+
amounts: string[];
|
|
114
|
+
signer: SignerType;
|
|
115
|
+
}) => Promise<{
|
|
116
|
+
txHash: string;
|
|
117
|
+
}>;
|
|
104
118
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ClusterValidator, type ProviderType, type SignerType, type OVMRewardsSplitPayload, type OVMTotalSplitPayload } from '../types';
|
|
1
|
+
import { type ClusterValidator, type ProviderType, type SignerType, type OVMRewardsSplitPayload, type OVMTotalSplitPayload, type OVMRequestWithdrawalPayload } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* ObolSplits can be used for creating and managing Obol splits.
|
|
4
4
|
* @class
|
|
@@ -48,4 +48,31 @@ export declare class ObolSplits {
|
|
|
48
48
|
* [createValidatorManagerAndTotalSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#340)
|
|
49
49
|
*/
|
|
50
50
|
createValidatorManagerAndTotalSplit(payload: OVMTotalSplitPayload): Promise<ClusterValidator>;
|
|
51
|
+
/**
|
|
52
|
+
* Requests withdrawal from an OVM contract.
|
|
53
|
+
*
|
|
54
|
+
* This method allows requesting withdrawal of validator funds from an OVM contract.
|
|
55
|
+
* The withdrawal request includes OVM address, validator public keys and corresponding withdrawal amounts.
|
|
56
|
+
*
|
|
57
|
+
* @remarks
|
|
58
|
+
* **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
|
|
59
|
+
* and not pushed to version control.
|
|
60
|
+
*
|
|
61
|
+
* @param {OVMRequestWithdrawalPayload} payload - Data needed to request withdrawal
|
|
62
|
+
* @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
|
|
63
|
+
* @throws Will throw an error if the signer is not provided, OVM address is invalid, or the request fails
|
|
64
|
+
*
|
|
65
|
+
* An example of how to use requestWithdrawal:
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const result = await client.splits.requestWithdrawal({
|
|
68
|
+
* ovmAddress: '0x1234567890123456789012345678901234567890',
|
|
69
|
+
* pubKeys: ['0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456'],
|
|
70
|
+
* amounts: ['32000000000'] // 32 ETH in gwei
|
|
71
|
+
* });
|
|
72
|
+
* console.log('Withdrawal requested:', result.txHash);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
requestWithdrawal(payload: OVMRequestWithdrawalPayload): Promise<{
|
|
76
|
+
txHash: string;
|
|
77
|
+
}>;
|
|
51
78
|
}
|