@safe-global/relay-kit 1.1.0 → 1.3.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.
@@ -1,10 +1,30 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  const bignumber_1 = require("@ethersproject/bignumber");
7
- const protocol_kit_1 = __importDefault(require("@safe-global/protocol-kit"));
27
+ const protocol_kit_1 = __importStar(require("@safe-global/protocol-kit"));
8
28
  const safe_core_sdk_types_1 = require("@safe-global/safe-core-sdk-types");
9
29
  const constants_1 = require("../../constants");
10
30
  const GelatoRelayPack_1 = require("./GelatoRelayPack");
@@ -14,9 +34,13 @@ var TaskState;
14
34
  })(TaskState || (TaskState = {}));
15
35
  const CHAIN_ID = 1;
16
36
  const ADDRESS = '0x...address';
37
+ const GAS_TOKEN = '0x...gasToken';
17
38
  const SAFE_ADDRESS = '0x...safe-address';
18
39
  const API_KEY = 'api-key';
19
40
  const FEE_ESTIMATION = bignumber_1.BigNumber.from(100000);
41
+ const BASEGAS_ESTIMATION = '20000';
42
+ const SAFETXGAS_ESTIMATION = '10000';
43
+ const SAFE_DEPLOYMENT_GAS_ESTIMATION = '30000';
20
44
  const TASK_ID = 'task-id';
21
45
  const TASK_STATUS = {
22
46
  chainId: CHAIN_ID,
@@ -58,10 +82,27 @@ jest.mock('@gelatonetwork/relay-sdk', () => {
58
82
  };
59
83
  });
60
84
  jest.mock('@safe-global/protocol-kit');
85
+ // Cast the import to jest.Mocked type
86
+ const mockEstimateTxBaseGas = protocol_kit_1.estimateTxBaseGas;
87
+ const mockEstimateSafeTxGas = protocol_kit_1.estimateSafeTxGas;
88
+ const mockEstimateSafeDeploymentGas = protocol_kit_1.estimateSafeDeploymentGas;
89
+ const mockCreateERC20TokenTransferTransaction = protocol_kit_1.createERC20TokenTransferTransaction;
90
+ const mockedIsGasTokenCompatibleWithHandlePayment = protocol_kit_1.isGasTokenCompatibleWithHandlePayment;
91
+ jest.doMock('@safe-global/protocol-kit', () => ({
92
+ ...jest.requireActual('@safe-global/protocol-kit'),
93
+ estimateTxBaseGas: mockEstimateTxBaseGas,
94
+ estimateSafeTxGas: mockEstimateSafeTxGas,
95
+ estimateSafeDeploymentGas: mockEstimateSafeDeploymentGas,
96
+ createERC20TokenTransferTransaction: mockCreateERC20TokenTransferTransaction,
97
+ isGasTokenCompatibleWithHandlePayment: mockedIsGasTokenCompatibleWithHandlePayment
98
+ }));
61
99
  const gelatoRelayPack = new GelatoRelayPack_1.GelatoRelayPack(API_KEY);
62
100
  describe('GelatoRelayPack', () => {
63
101
  beforeEach(() => {
64
102
  jest.clearAllMocks();
103
+ mockEstimateTxBaseGas.mockResolvedValue(Promise.resolve(BASEGAS_ESTIMATION));
104
+ mockEstimateSafeTxGas.mockResolvedValue(Promise.resolve(SAFETXGAS_ESTIMATION));
105
+ mockEstimateSafeDeploymentGas.mockResolvedValue(Promise.resolve(SAFE_DEPLOYMENT_GAS_ESTIMATION));
65
106
  });
66
107
  it('should allow to get a fee estimation', async () => {
67
108
  const chainId = 1;
@@ -69,7 +110,7 @@ describe('GelatoRelayPack', () => {
69
110
  const gasToken = '0x0000000000000000000000000000000000000000';
70
111
  const estimation = await gelatoRelayPack.getEstimateFee(chainId, gasLimit, gasToken);
71
112
  expect(estimation).toBe(FEE_ESTIMATION.toString());
72
- expect(mockGetEstimateFee).toHaveBeenCalledWith(chainId, constants_1.GELATO_NATIVE_TOKEN_ADDRESS, bignumber_1.BigNumber.from(gasLimit), true);
113
+ expect(mockGetEstimateFee).toHaveBeenCalledWith(chainId, constants_1.GELATO_NATIVE_TOKEN_ADDRESS, bignumber_1.BigNumber.from(gasLimit), false);
73
114
  expect(bignumber_1.BigNumber.from(estimation).gt(bignumber_1.BigNumber.from(0))).toBe(true);
74
115
  });
75
116
  it('should allow to check the task status', async () => {
@@ -92,65 +133,195 @@ describe('GelatoRelayPack', () => {
92
133
  await expect(relayPack.sendSponsorTransaction(SAFE_ADDRESS, '0x', CHAIN_ID)).rejects.toThrowError('API key not defined');
93
134
  });
94
135
  describe('when creating a relayed transaction', () => {
95
- let relayPack;
96
- const safe = new protocol_kit_1.default();
97
- const args = [
98
- safe,
99
- {
100
- to: ADDRESS,
101
- data: '0x',
102
- value: '0'
103
- },
104
- {
105
- gasLimit: bignumber_1.BigNumber.from(100),
136
+ describe('When gas limit is manually defined', () => {
137
+ let relayPack;
138
+ const safe = new protocol_kit_1.default();
139
+ const transactions = [
140
+ {
141
+ to: ADDRESS,
142
+ data: '0x',
143
+ value: '0'
144
+ }
145
+ ];
146
+ const options = {
147
+ gasLimit: '100',
106
148
  isSponsored: true
107
- }
108
- ];
109
- beforeEach(() => {
110
- jest.clearAllMocks();
111
- relayPack = new GelatoRelayPack_1.GelatoRelayPack();
112
- safe.getNonce = jest.fn().mockResolvedValue(0);
113
- safe.getContractManager = jest.fn().mockReturnValue({ safeContract: {} });
114
- safe.createTransaction = jest.fn().mockResolvedValue(SAFE_TRANSACTION);
115
- });
116
- it('should allow you to create a sponsored one', async () => {
117
- await relayPack.createRelayedTransaction(args[0], args[1], args[2]);
118
- expect(safe.createTransaction).toHaveBeenCalledWith({
119
- safeTransactionData: args[1],
120
- options: expect.objectContaining({
121
- nonce: 0
122
- })
149
+ };
150
+ beforeEach(() => {
151
+ jest.clearAllMocks();
152
+ relayPack = new GelatoRelayPack_1.GelatoRelayPack();
153
+ safe.getNonce = jest.fn().mockResolvedValue(0);
154
+ safe.getContractManager = jest.fn().mockReturnValue({ safeContract: {} });
155
+ safe.createTransaction = jest.fn().mockResolvedValue(SAFE_TRANSACTION);
156
+ mockedIsGasTokenCompatibleWithHandlePayment.mockResolvedValue(Promise.resolve(true));
123
157
  });
124
- });
125
- it('should allow to create a sync fee one', async () => {
126
- await relayPack.createRelayedTransaction(args[0], args[1], {
127
- ...args[2],
128
- isSponsored: false
158
+ it('should allow you to create a sponsored one', async () => {
159
+ await relayPack.createRelayedTransaction({ safe, transactions, options });
160
+ expect(safe.createTransaction).toHaveBeenCalledWith({
161
+ safeTransactionData: transactions,
162
+ onlyCalls: false,
163
+ options: {
164
+ nonce: 0
165
+ }
166
+ });
129
167
  });
130
- expect(safe.createTransaction).toHaveBeenCalledWith({
131
- safeTransactionData: args[1],
132
- options: expect.objectContaining({
133
- baseGas: '100000',
134
- gasPrice: '1',
135
- refundReceiver: constants_1.GELATO_FEE_COLLECTOR
136
- })
168
+ it('should allow to create a sync fee one', async () => {
169
+ await relayPack.createRelayedTransaction({
170
+ safe,
171
+ transactions,
172
+ options: { ...options, isSponsored: false }
173
+ });
174
+ expect(safe.createTransaction).toHaveBeenCalledWith({
175
+ safeTransactionData: transactions,
176
+ onlyCalls: false,
177
+ options: {
178
+ baseGas: FEE_ESTIMATION.toString(),
179
+ safeTxGas: SAFETXGAS_ESTIMATION,
180
+ gasPrice: '1',
181
+ gasToken: constants_1.ZERO_ADDRESS,
182
+ refundReceiver: constants_1.GELATO_FEE_COLLECTOR,
183
+ nonce: 0
184
+ }
185
+ });
137
186
  });
138
- });
139
- it('should return the correct gasToken when being sent through the options', async () => {
140
- const GAS_TOKEN = '0x...gasToken';
141
- await relayPack.createRelayedTransaction(args[0], args[1], {
142
- ...args[2],
143
- isSponsored: false,
144
- gasToken: GAS_TOKEN
187
+ it('should return the correct gasToken when being sent through the options', async () => {
188
+ await relayPack.createRelayedTransaction({
189
+ safe,
190
+ transactions,
191
+ options: { ...options, isSponsored: false, gasToken: GAS_TOKEN }
192
+ });
193
+ expect(safe.createTransaction).toHaveBeenCalledWith({
194
+ safeTransactionData: transactions,
195
+ onlyCalls: false,
196
+ options: {
197
+ baseGas: FEE_ESTIMATION.toString(),
198
+ safeTxGas: SAFETXGAS_ESTIMATION,
199
+ gasPrice: '1',
200
+ gasToken: GAS_TOKEN,
201
+ refundReceiver: constants_1.GELATO_FEE_COLLECTOR,
202
+ nonce: 0
203
+ }
204
+ });
145
205
  });
146
- expect(safe.createTransaction).toHaveBeenCalledWith({
147
- safeTransactionData: args[1],
148
- options: expect.objectContaining({
149
- baseGas: '100000',
150
- gasPrice: '1',
206
+ it('should allow you to create relay transaction using a non standard ERC20 gas token to pay Gelato fees', async () => {
207
+ // non standard ERC20 like USDC
208
+ mockedIsGasTokenCompatibleWithHandlePayment.mockResolvedValue(Promise.resolve(false));
209
+ const options = {
151
210
  gasToken: GAS_TOKEN,
152
- refundReceiver: constants_1.GELATO_FEE_COLLECTOR
153
- })
211
+ isSponsored: false,
212
+ gasLimit: '5000' // manual gas limit
213
+ };
214
+ const transferToGelato = {
215
+ to: constants_1.GELATO_FEE_COLLECTOR,
216
+ value: FEE_ESTIMATION.toString(),
217
+ data: '0x'
218
+ };
219
+ mockCreateERC20TokenTransferTransaction.mockReturnValue(transferToGelato);
220
+ await relayPack.createRelayedTransaction({ safe, transactions, options });
221
+ expect(safe.createTransaction).toHaveBeenCalledWith({
222
+ safeTransactionData: [...transactions, transferToGelato],
223
+ onlyCalls: false,
224
+ options: {
225
+ gasToken: GAS_TOKEN,
226
+ nonce: 0
227
+ }
228
+ });
229
+ });
230
+ });
231
+ describe('When gas limit is automatically estimate', () => {
232
+ let relayPack;
233
+ const safe = new protocol_kit_1.default();
234
+ const mockTransferTransacton = {
235
+ to: ADDRESS,
236
+ data: '0x',
237
+ value: '0'
238
+ };
239
+ const transactions = [mockTransferTransacton];
240
+ beforeEach(() => {
241
+ jest.clearAllMocks();
242
+ relayPack = new GelatoRelayPack_1.GelatoRelayPack();
243
+ safe.getNonce = jest.fn().mockResolvedValue(0);
244
+ safe.getContractManager = jest.fn().mockReturnValue({ safeContract: {} });
245
+ safe.createTransaction = jest.fn().mockResolvedValue(SAFE_TRANSACTION);
246
+ mockedIsGasTokenCompatibleWithHandlePayment.mockResolvedValue(Promise.resolve(true));
247
+ });
248
+ it('should allow you to create a sponsored one', async () => {
249
+ const options = {
250
+ isSponsored: true
251
+ };
252
+ await relayPack.createRelayedTransaction({ safe, transactions, options });
253
+ expect(safe.createTransaction).toHaveBeenCalledWith({
254
+ safeTransactionData: transactions,
255
+ onlyCalls: false,
256
+ options: {
257
+ nonce: 0
258
+ }
259
+ });
260
+ });
261
+ describe('When a compatible gas token is used', () => {
262
+ beforeEach(() => {
263
+ jest.clearAllMocks();
264
+ mockedIsGasTokenCompatibleWithHandlePayment.mockResolvedValue(Promise.resolve(true));
265
+ });
266
+ it('should allow you to create relay transaction using the native token to pay Gelato fees', async () => {
267
+ await relayPack.createRelayedTransaction({ safe, transactions });
268
+ expect(safe.createTransaction).toHaveBeenCalledWith({
269
+ safeTransactionData: transactions,
270
+ onlyCalls: false,
271
+ options: {
272
+ baseGas: FEE_ESTIMATION.toString(),
273
+ gasPrice: '1',
274
+ safeTxGas: SAFETXGAS_ESTIMATION,
275
+ gasToken: constants_1.ZERO_ADDRESS,
276
+ refundReceiver: constants_1.GELATO_FEE_COLLECTOR,
277
+ nonce: 0
278
+ }
279
+ });
280
+ });
281
+ it('should allow you to create relay transaction using a compatible ERC20 token to pay Gelato fees', async () => {
282
+ const options = {
283
+ gasToken: GAS_TOKEN
284
+ };
285
+ await relayPack.createRelayedTransaction({ safe, transactions, options });
286
+ expect(safe.createTransaction).toHaveBeenCalledWith({
287
+ safeTransactionData: transactions,
288
+ onlyCalls: false,
289
+ options: {
290
+ baseGas: FEE_ESTIMATION.toString(),
291
+ gasPrice: '1',
292
+ safeTxGas: SAFETXGAS_ESTIMATION,
293
+ gasToken: GAS_TOKEN,
294
+ refundReceiver: constants_1.GELATO_FEE_COLLECTOR,
295
+ nonce: 0
296
+ }
297
+ });
298
+ });
299
+ });
300
+ describe('When a non compatible gas token is used', () => {
301
+ beforeEach(() => {
302
+ jest.clearAllMocks();
303
+ mockedIsGasTokenCompatibleWithHandlePayment.mockResolvedValue(Promise.resolve(false));
304
+ });
305
+ it('should allow you to create relay transaction using a non standard ERC20 gas token to pay Gelato fees', async () => {
306
+ const options = {
307
+ gasToken: GAS_TOKEN
308
+ };
309
+ const transferToGelato = {
310
+ to: constants_1.GELATO_FEE_COLLECTOR,
311
+ value: FEE_ESTIMATION.toString(),
312
+ data: '0x'
313
+ };
314
+ mockCreateERC20TokenTransferTransaction.mockReturnValue(transferToGelato);
315
+ await relayPack.createRelayedTransaction({ safe, transactions, options });
316
+ expect(safe.createTransaction).toHaveBeenCalledWith({
317
+ safeTransactionData: [...transactions, transferToGelato],
318
+ onlyCalls: false,
319
+ options: {
320
+ gasToken: GAS_TOKEN,
321
+ nonce: 0
322
+ }
323
+ });
324
+ });
154
325
  });
155
326
  });
156
327
  });
@@ -208,5 +379,131 @@ describe('GelatoRelayPack', () => {
208
379
  it('should allow to retrieve the fee collector address', () => {
209
380
  expect(gelatoRelayPack.getFeeCollector()).toBe(constants_1.GELATO_FEE_COLLECTOR);
210
381
  });
382
+ describe('executeRelayTransaction', () => {
383
+ const safe = new protocol_kit_1.default();
384
+ const ENCODED_TRANSACTION_DATA = '0x...txData';
385
+ const MULTISEND_ADDRESS = '0x...multiSendAddress';
386
+ const SAFE_DEPLOYMENT_BATCH = {
387
+ to: MULTISEND_ADDRESS,
388
+ value: '0',
389
+ data: '0x...deplymentBachData'
390
+ };
391
+ beforeEach(() => {
392
+ jest.clearAllMocks();
393
+ safe.isSafeDeployed = jest.fn().mockResolvedValue(true);
394
+ safe.getChainId = jest.fn().mockResolvedValue(CHAIN_ID);
395
+ safe.getAddress = jest.fn().mockResolvedValue(SAFE_ADDRESS);
396
+ safe.getEncodedTransaction = jest.fn().mockResolvedValue(ENCODED_TRANSACTION_DATA);
397
+ safe.wrapSafeTransactionIntoDeploymentBatch = jest
398
+ .fn()
399
+ .mockResolvedValue(SAFE_DEPLOYMENT_BATCH);
400
+ });
401
+ describe('when the Safe is already deployed', () => {
402
+ it('should execute a sponsored relay transaction', async () => {
403
+ const options = {
404
+ isSponsored: true
405
+ };
406
+ const relayTransaction = {
407
+ data: {
408
+ nonce: 0,
409
+ to: ADDRESS,
410
+ value: '0',
411
+ data: '0x'
412
+ }
413
+ };
414
+ const gelatoResponse = await gelatoRelayPack.executeRelayTransaction(relayTransaction, safe, options);
415
+ expect(gelatoResponse).toBe(RELAY_RESPONSE);
416
+ expect(mockSponsoredCall).toHaveBeenCalledWith({
417
+ chainId: CHAIN_ID,
418
+ target: SAFE_ADDRESS,
419
+ data: ENCODED_TRANSACTION_DATA
420
+ }, API_KEY);
421
+ // no counterfactual deployment present
422
+ expect(safe.wrapSafeTransactionIntoDeploymentBatch).not.toHaveBeenCalled();
423
+ });
424
+ it('should execute a sync relay transaction', async () => {
425
+ const relayTransaction = {
426
+ data: {
427
+ operation: safe_core_sdk_types_1.OperationType.Call,
428
+ safeTxGas: SAFETXGAS_ESTIMATION,
429
+ baseGas: FEE_ESTIMATION.toString(),
430
+ gasPrice: '1',
431
+ nonce: 0,
432
+ gasToken: GAS_TOKEN,
433
+ refundReceiver: constants_1.GELATO_FEE_COLLECTOR,
434
+ to: ADDRESS,
435
+ value: '0',
436
+ data: '0x'
437
+ }
438
+ };
439
+ const gelatoResponse = await gelatoRelayPack.executeRelayTransaction(relayTransaction, safe);
440
+ expect(gelatoResponse).toBe(RELAY_RESPONSE);
441
+ expect(mockCallWithSyncFee).toHaveBeenCalledWith({
442
+ chainId: CHAIN_ID,
443
+ target: SAFE_ADDRESS,
444
+ data: ENCODED_TRANSACTION_DATA,
445
+ feeToken: GAS_TOKEN,
446
+ isRelayContext: false
447
+ }, { gasLimit: undefined });
448
+ // no counterfactual deployment present
449
+ expect(safe.wrapSafeTransactionIntoDeploymentBatch).not.toHaveBeenCalled();
450
+ });
451
+ });
452
+ describe('when the Safe is not deployed (counterfactual deployment)', () => {
453
+ it('should execute a sponsored relay transaction & counterfactual deployment', async () => {
454
+ // Safe is not deployed
455
+ safe.isSafeDeployed = jest.fn().mockResolvedValue(false);
456
+ const options = {
457
+ isSponsored: true
458
+ };
459
+ const relayTransaction = {
460
+ data: {
461
+ nonce: 0,
462
+ to: ADDRESS,
463
+ value: '0',
464
+ data: '0x'
465
+ }
466
+ };
467
+ const gelatoResponse = await gelatoRelayPack.executeRelayTransaction(relayTransaction, safe, options);
468
+ expect(gelatoResponse).toBe(RELAY_RESPONSE);
469
+ expect(mockSponsoredCall).toHaveBeenCalledWith({
470
+ chainId: CHAIN_ID,
471
+ target: MULTISEND_ADDRESS,
472
+ data: SAFE_DEPLOYMENT_BATCH.data
473
+ }, API_KEY);
474
+ // counterfactual deployment in present
475
+ expect(safe.wrapSafeTransactionIntoDeploymentBatch).toHaveBeenCalled();
476
+ });
477
+ it('should execute a sync relay transaction & counterfactual deployment', async () => {
478
+ // Safe is not deployed
479
+ safe.isSafeDeployed = jest.fn().mockResolvedValue(false);
480
+ const relayTransaction = {
481
+ data: {
482
+ operation: safe_core_sdk_types_1.OperationType.Call,
483
+ safeTxGas: SAFETXGAS_ESTIMATION,
484
+ baseGas: FEE_ESTIMATION.toString(),
485
+ gasPrice: '1',
486
+ nonce: 0,
487
+ gasToken: GAS_TOKEN,
488
+ refundReceiver: constants_1.GELATO_FEE_COLLECTOR,
489
+ to: ADDRESS,
490
+ value: '0',
491
+ data: '0x'
492
+ }
493
+ };
494
+ const gelatoResponse = await gelatoRelayPack.executeRelayTransaction(relayTransaction, safe);
495
+ expect(gelatoResponse).toBe(RELAY_RESPONSE);
496
+ expect(mockCallWithSyncFee).toHaveBeenCalledWith({
497
+ chainId: CHAIN_ID,
498
+ target: MULTISEND_ADDRESS,
499
+ data: SAFE_DEPLOYMENT_BATCH.data,
500
+ feeToken: GAS_TOKEN,
501
+ isRelayContext: false
502
+ }, { gasLimit: undefined });
503
+ // counterfactual deployment in present
504
+ expect(safe.wrapSafeTransactionIntoDeploymentBatch).toHaveBeenCalled();
505
+ });
506
+ });
507
+ });
211
508
  });
212
509
  //# sourceMappingURL=GelatoRelayPack.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GelatoRelayPack.test.js","sourceRoot":"","sources":["../../../../src/packs/gelato/GelatoRelayPack.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GelatoRelayPack.test.js","sourceRoot":"","sources":["../../../../src/packs/gelato/GelatoRelayPack.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAoD;AAEpD,0EAMkC;AAClC,0EAAqF;AAErF,gEAIyC;AACzC,uDAAmD;AAGnD,IAAK,SAEJ;AAFD,WAAK,SAAS;IACZ,0CAA6B,CAAA;AAC/B,CAAC,EAFI,SAAS,KAAT,SAAS,QAEb;AAED,MAAM,QAAQ,GAAG,CAAC,CAAA;AAClB,MAAM,OAAO,GAAG,cAAc,CAAA;AAC9B,MAAM,SAAS,GAAG,eAAe,CAAA;AACjC,MAAM,YAAY,GAAG,mBAAmB,CAAA;AACxC,MAAM,OAAO,GAAG,SAAS,CAAA;AACzB,MAAM,cAAc,GAAG,qBAAS,CAAC,IAAI,CAAC,MAAO,CAAC,CAAA;AAC9C,MAAM,kBAAkB,GAAG,OAAO,CAAA;AAClC,MAAM,oBAAoB,GAAG,OAAO,CAAA;AACpC,MAAM,8BAA8B,GAAG,OAAO,CAAA;AAC9C,MAAM,OAAO,GAAG,SAAS,CAAA;AACzB,MAAM,WAAW,GAA8B;IAC7C,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,SAAS,CAAC,YAAY;IACjC,MAAM,EAAE,OAAO;IACf,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAA;AACD,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,OAAO;CAChB,CAAA;AACD,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE;QACJ,SAAS,EAAE,mCAAa,CAAC,IAAI;QAC7B,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;QACb,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE,IAAI;QACpB,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,IAAI;KACX;CACF,CAAA;AAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;AACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;AAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;AACrE,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;AAEvE,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACzC,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAC7C,OAAO;gBACL,eAAe,EAAE,kBAAkB;gBACnC,aAAa,EAAE,iBAAiB;gBAChC,aAAa,EAAE,iBAAiB;gBAChC,eAAe,EAAE,mBAAmB;aACrC,CAAA;QACH,CAAC,CAAC;KACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;AAEtC,sCAAsC;AACtC,MAAM,qBAAqB,GAAG,gCAAkE,CAAA;AAChG,MAAM,qBAAqB,GAAG,gCAAkE,CAAA;AAChG,MAAM,6BAA6B,GAAG,wCAErC,CAAA;AACD,MAAM,uCAAuC,GAC3C,kDAEC,CAAA;AACH,MAAM,2CAA2C,GAC/C,oDAEC,CAAA;AAEH,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,GAAG,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC;IAClD,iBAAiB,EAAE,qBAAqB;IACxC,iBAAiB,EAAE,qBAAqB;IACxC,yBAAyB,EAAE,6BAA6B;IACxD,mCAAmC,EAAE,uCAAuC;IAC5E,qCAAqC,EAAE,2CAA2C;CACnF,CAAC,CAAC,CAAA;AAEH,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,OAAO,CAAC,CAAA;AAEpD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,qBAAqB,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;QAC5E,qBAAqB,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAC9E,6BAA6B,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAA;IAClG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,OAAO,GAAG,CAAC,CAAA;QACjB,MAAM,QAAQ,GAAG,QAAQ,CAAA;QACzB,MAAM,QAAQ,GAAG,4CAA4C,CAAA;QAC7D,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAEpF,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA;QAClD,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAC7C,OAAO,EACP,uCAA2B,EAC3B,qBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB,KAAK,CACN,CAAA;QACD,MAAM,CAAC,qBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,MAAM,GAAG,SAAS,CAAA;QACxB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAE1D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAChC,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAE3F,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACrC,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAC5C;YACE,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,IAAI;SACX,EACD,OAAO,CACR,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,SAAS,GAAG,IAAI,iCAAe,EAAE,CAAA;QACvC,MAAM,MAAM,CACV,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,CAC/D,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACnD,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAClD,IAAI,SAA0B,CAAA;YAC9B,MAAM,IAAI,GAAS,IAAI,sBAAI,EAAE,CAAA;YAC7B,MAAM,YAAY,GAA0B;gBAC1C;oBACE,EAAE,EAAE,OAAO;oBACX,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,GAAG;iBACX;aACF,CAAA;YACD,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,IAAI;aAClB,CAAA;YAED,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpB,SAAS,GAAG,IAAI,iCAAe,EAAE,CAAA;gBACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;gBAC9C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;gBACzE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;gBACtE,2CAA2C,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YACtF,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,SAAS,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;gBAEzE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;oBAClD,mBAAmB,EAAE,YAAY;oBACjC,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE;wBACP,KAAK,EAAE,CAAC;qBACT;iBACF,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;gBACrD,MAAM,SAAS,CAAC,wBAAwB,CAAC;oBACvC,IAAI;oBACJ,YAAY;oBACZ,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE;iBAC5C,CAAC,CAAA;gBAEF,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;oBAClD,mBAAmB,EAAE,YAAY;oBACjC,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE;wBACP,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE;wBAClC,SAAS,EAAE,oBAAoB;wBAC/B,QAAQ,EAAE,GAAG;wBACb,QAAQ,EAAE,wBAAY;wBACtB,cAAc,EAAE,gCAAoB;wBACpC,KAAK,EAAE,CAAC;qBACT;iBACF,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;gBACtF,MAAM,SAAS,CAAC,wBAAwB,CAAC;oBACvC,IAAI;oBACJ,YAAY;oBACZ,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE;iBACjE,CAAC,CAAA;gBAEF,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;oBAClD,mBAAmB,EAAE,YAAY;oBACjC,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE;wBACP,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE;wBAClC,SAAS,EAAE,oBAAoB;wBAC/B,QAAQ,EAAE,GAAG;wBACb,QAAQ,EAAE,SAAS;wBACnB,cAAc,EAAE,gCAAoB;wBACpC,KAAK,EAAE,CAAC;qBACT;iBACF,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;gBACpH,+BAA+B;gBAC/B,2CAA2C,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;gBAErF,MAAM,OAAO,GAAG;oBACd,QAAQ,EAAE,SAAS;oBACnB,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,MAAM,CAAC,mBAAmB;iBACrC,CAAA;gBAED,MAAM,gBAAgB,GAAG;oBACvB,EAAE,EAAE,gCAAoB;oBACxB,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;oBAChC,IAAI,EAAE,IAAI;iBACX,CAAA;gBAED,uCAAuC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAA;gBAEzE,MAAM,SAAS,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;gBAEzE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;oBAClD,mBAAmB,EAAE,CAAC,GAAG,YAAY,EAAE,gBAAgB,CAAC;oBACxD,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE;wBACP,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,CAAC;qBACT;iBACF,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACxD,IAAI,SAA0B,CAAA;YAC9B,MAAM,IAAI,GAAS,IAAI,sBAAI,EAAE,CAAA;YAE7B,MAAM,sBAAsB,GAAwB;gBAClD,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,GAAG;aACX,CAAA;YAED,MAAM,YAAY,GAA0B,CAAC,sBAAsB,CAAC,CAAA;YAEpE,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpB,SAAS,GAAG,IAAI,iCAAe,EAAE,CAAA;gBACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;gBAC9C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;gBACzE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;gBACtE,2CAA2C,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YACtF,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,OAAO,GAAG;oBACd,WAAW,EAAE,IAAI;iBAClB,CAAA;gBAED,MAAM,SAAS,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;gBAEzE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;oBAClD,mBAAmB,EAAE,YAAY;oBACjC,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE;wBACP,KAAK,EAAE,CAAC;qBACT;iBACF,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBACnD,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,aAAa,EAAE,CAAA;oBACpB,2CAA2C,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;gBACtF,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;oBACtG,MAAM,SAAS,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;oBAEhE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;wBAClD,mBAAmB,EAAE,YAAY;wBACjC,SAAS,EAAE,KAAK;wBAChB,OAAO,EAAE;4BACP,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE;4BAClC,QAAQ,EAAE,GAAG;4BACb,SAAS,EAAE,oBAAoB;4BAC/B,QAAQ,EAAE,wBAAY;4BACtB,cAAc,EAAE,gCAAoB;4BACpC,KAAK,EAAE,CAAC;yBACT;qBACF,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,gGAAgG,EAAE,KAAK,IAAI,EAAE;oBAC9G,MAAM,OAAO,GAAG;wBACd,QAAQ,EAAE,SAAS;qBACpB,CAAA;oBAED,MAAM,SAAS,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;oBAEzE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;wBAClD,mBAAmB,EAAE,YAAY;wBACjC,SAAS,EAAE,KAAK;wBAChB,OAAO,EAAE;4BACP,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE;4BAClC,QAAQ,EAAE,GAAG;4BACb,SAAS,EAAE,oBAAoB;4BAC/B,QAAQ,EAAE,SAAS;4BACnB,cAAc,EAAE,gCAAoB;4BACpC,KAAK,EAAE,CAAC;yBACT;qBACF,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAEF,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;gBACvD,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,aAAa,EAAE,CAAA;oBACpB,2CAA2C,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;gBACvF,CAAC,CAAC,CAAA;gBAEF,EAAE,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;oBACpH,MAAM,OAAO,GAAG;wBACd,QAAQ,EAAE,SAAS;qBACpB,CAAA;oBAED,MAAM,gBAAgB,GAAG;wBACvB,EAAE,EAAE,gCAAoB;wBACxB,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;wBAChC,IAAI,EAAE,IAAI;qBACX,CAAA;oBAED,uCAAuC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAA;oBAEzE,MAAM,SAAS,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;oBAEzE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;wBAClD,mBAAmB,EAAE,CAAC,GAAG,YAAY,EAAE,gBAAgB,CAAC;wBACxD,SAAS,EAAE,KAAK;wBAChB,OAAO,EAAE;4BACP,QAAQ,EAAE,SAAS;4BACnB,KAAK,EAAE,CAAC;yBACT;qBACF,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvF,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAA;QAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACrC,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C;YACE,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,uCAA2B;YACrC,cAAc,EAAE,KAAK;SACtB,EACD;YACE,QAAQ,EAAE,QAAQ;SACnB,CACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+GAA+G,EAAE,KAAK,IAAI,EAAE;QAC7H,MAAM,iBAAiB,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC;YAC/D,MAAM,EAAE,YAAY;YACpB,kBAAkB,EAAE,IAAI;YACxB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE;gBACP,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC9C,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAC5C;YACE,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,IAAI;SACX,EACD,OAAO,CACR,CAAA;QAED,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC;YAC1D,MAAM,EAAE,YAAY;YACpB,kBAAkB,EAAE,IAAI;YACxB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE;gBACP,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,KAAK;aACnB;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACzC,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C;YACE,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,uCAA2B;YACrC,cAAc,EAAE,KAAK;SACtB,EACD;YACE,QAAQ,EAAE,QAAQ;SACnB,CACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,gCAAoB,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI,GAAS,IAAI,sBAAI,EAAE,CAAA;QAE7B,MAAM,wBAAwB,GAAG,aAAa,CAAA;QAC9C,MAAM,iBAAiB,GAAG,uBAAuB,CAAA;QACjD,MAAM,qBAAqB,GAAG;YAC5B,EAAE,EAAE,iBAAiB;YACrB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,wBAAwB;SAC/B,CAAA;QAED,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;YAC3D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,CAAA;YAClF,IAAI,CAAC,sCAAsC,GAAG,IAAI;iBAC/C,EAAE,EAAE;iBACJ,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACjD,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;gBAC5D,MAAM,OAAO,GAAG;oBACd,WAAW,EAAE,IAAI;iBAClB,CAAA;gBAED,MAAM,gBAAgB,GAAG;oBACvB,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;wBACR,EAAE,EAAE,OAAO;wBACX,KAAK,EAAE,GAAG;wBACV,IAAI,EAAE,IAAI;qBACX;iBACF,CAAA;gBAED,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,uBAAuB,CAClE,gBAAmC,EACnC,IAAI,EACJ,OAAO,CACR,CAAA;gBAED,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC3C,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAC5C;oBACE,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,YAAY;oBACpB,IAAI,EAAE,wBAAwB;iBAC/B,EACD,OAAO,CACR,CAAA;gBACD,uCAAuC;gBACvC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;YAC5E,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;gBACvD,MAAM,gBAAgB,GAAG;oBACvB,IAAI,EAAE;wBACJ,SAAS,EAAE,mCAAa,CAAC,IAAI;wBAC7B,SAAS,EAAE,oBAAoB;wBAC/B,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE;wBAClC,QAAQ,EAAE,GAAG;wBACb,KAAK,EAAE,CAAC;wBACR,QAAQ,EAAE,SAAS;wBACnB,cAAc,EAAE,gCAAoB;wBACpC,EAAE,EAAE,OAAO;wBACX,KAAK,EAAE,GAAG;wBACV,IAAI,EAAE,IAAI;qBACX;iBACF,CAAA;gBAED,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,uBAAuB,CAClE,gBAAmC,EACnC,IAAI,CACL,CAAA;gBAED,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC3C,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C;oBACE,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,YAAY;oBACpB,IAAI,EAAE,wBAAwB;oBAC9B,QAAQ,EAAE,SAAS;oBACnB,cAAc,EAAE,KAAK;iBACtB,EACD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAA;gBACD,uCAAuC;gBACvC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;YAC5E,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACzE,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;gBACxF,uBAAuB;gBACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;gBAExD,MAAM,OAAO,GAAG;oBACd,WAAW,EAAE,IAAI;iBAClB,CAAA;gBAED,MAAM,gBAAgB,GAAG;oBACvB,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC;wBACR,EAAE,EAAE,OAAO;wBACX,KAAK,EAAE,GAAG;wBACV,IAAI,EAAE,IAAI;qBACX;iBACF,CAAA;gBAED,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,uBAAuB,CAClE,gBAAmC,EACnC,IAAI,EACJ,OAAO,CACR,CAAA;gBAED,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC3C,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAC5C;oBACE,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,iBAAiB;oBACzB,IAAI,EAAE,qBAAqB,CAAC,IAAI;iBACjC,EACD,OAAO,CACR,CAAA;gBACD,uCAAuC;gBACvC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,gBAAgB,EAAE,CAAA;YACxE,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;gBACnF,uBAAuB;gBACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;gBAExD,MAAM,gBAAgB,GAAG;oBACvB,IAAI,EAAE;wBACJ,SAAS,EAAE,mCAAa,CAAC,IAAI;wBAC7B,SAAS,EAAE,oBAAoB;wBAC/B,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE;wBAClC,QAAQ,EAAE,GAAG;wBACb,KAAK,EAAE,CAAC;wBACR,QAAQ,EAAE,SAAS;wBACnB,cAAc,EAAE,gCAAoB;wBACpC,EAAE,EAAE,OAAO;wBACX,KAAK,EAAE,GAAG;wBACV,IAAI,EAAE,IAAI;qBACX;iBACF,CAAA;gBAED,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,uBAAuB,CAClE,gBAAmC,EACnC,IAAI,CACL,CAAA;gBAED,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC3C,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C;oBACE,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,iBAAiB;oBACzB,IAAI,EAAE,qBAAqB,CAAC,IAAI;oBAChC,QAAQ,EAAE,SAAS;oBACnB,cAAc,EAAE,KAAK;iBACtB,EACD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAA;gBACD,uCAAuC;gBACvC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,gBAAgB,EAAE,CAAA;YACxE,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,10 +1,20 @@
1
1
  import Safe from '@safe-global/protocol-kit';
2
2
  import { RelayResponse, TransactionStatusResponse } from '@gelatonetwork/relay-sdk';
3
3
  import { MetaTransactionData, MetaTransactionOptions, RelayTransaction, SafeTransaction } from '@safe-global/safe-core-sdk-types';
4
+ export interface CreateTransactionProps {
5
+ safe: Safe;
6
+ /** transactions - The transaction array to process */
7
+ transactions: MetaTransactionData[];
8
+ /** options - The transaction array optional properties */
9
+ options?: MetaTransactionOptions;
10
+ /** onlyCalls - Forces the execution of the transaction array with MultiSendCallOnly contract */
11
+ onlyCalls?: boolean;
12
+ }
4
13
  export interface RelayPack {
5
14
  getFeeCollector(): string;
6
15
  getEstimateFee(chainId: number, gasLimit: string, gasToken?: string): Promise<string>;
7
16
  getTaskStatus(taskId: string): Promise<TransactionStatusResponse | undefined>;
8
- createRelayedTransaction(safe: Safe, transactions: MetaTransactionData[], options: MetaTransactionOptions): Promise<SafeTransaction>;
17
+ createRelayedTransaction({ safe, transactions, options, onlyCalls }: CreateTransactionProps): Promise<SafeTransaction>;
9
18
  relayTransaction(transaction: RelayTransaction): Promise<RelayResponse>;
19
+ executeRelayTransaction(safeTransaction: SafeTransaction, safe: Safe, options?: MetaTransactionOptions): Promise<RelayResponse>;
10
20
  }