@ercworldio/blockchain-shared 1.0.3-dev.3-PROJ-1296.35 → 1.0.3-dev.3-PROJ-1296.37
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/build/contracts/Escrow.d.ts +62 -1
- package/build/contracts/Escrow.d.ts.map +1 -1
- package/build/contracts/Escrow.js +91 -0
- package/build/contracts/types/escrow.d.ts +8 -0
- package/build/contracts/types/escrow.d.ts.map +1 -1
- package/build/services/ClaimJobService.d.ts +4 -0
- package/build/services/ClaimJobService.d.ts.map +1 -1
- package/build/services/ClaimJobService.js +14 -0
- package/build/services/types/claim_job_service.d.ts +2 -4
- package/build/services/types/claim_job_service.d.ts.map +1 -1
- package/build/utils/custodial.d.ts +8 -0
- package/build/utils/custodial.d.ts.map +1 -1
- package/build/utils/custodial.js +23 -2
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { escrow } from "./typechain-types/contracts";
|
|
|
2
2
|
import { Signer, Provider, ethers } from "ethers";
|
|
3
3
|
import { ErrorObject, EscrowErrorMessage } from "./EscrowErrors";
|
|
4
4
|
import Errors from "../errors/TransactionsErrors";
|
|
5
|
-
import { BatchSweepErc20Payload, BatchWithdrawPayload, FundWalletsPayload, OpType, TransactionStatus } from "./types/escrow";
|
|
5
|
+
import { BatchSweepErc20Payload, BatchWithdrawPayload, ExecuteWithdrawalPayload, FundWalletsPayload, OpType, TransactionStatus } from "./types/escrow";
|
|
6
6
|
/**
|
|
7
7
|
* Class to interact with the escrow contract
|
|
8
8
|
* @author @0xgio - Georgio Diab
|
|
@@ -68,6 +68,67 @@ declare class EscrowInteraction extends Errors {
|
|
|
68
68
|
fee?: undefined;
|
|
69
69
|
}>;
|
|
70
70
|
get_used_request_ids(ids: number[]): Promise<number[]>;
|
|
71
|
+
batch_withdraw(payloads: BatchWithdrawPayload[], token_price: number): Promise<{
|
|
72
|
+
status: TransactionStatus;
|
|
73
|
+
transactionHash: null;
|
|
74
|
+
receipt: null;
|
|
75
|
+
data: {
|
|
76
|
+
success: number[];
|
|
77
|
+
failed: number[];
|
|
78
|
+
dropped: number[];
|
|
79
|
+
cancel: number[];
|
|
80
|
+
};
|
|
81
|
+
fee?: undefined;
|
|
82
|
+
feePerTx?: undefined;
|
|
83
|
+
feePerTxDecimals?: undefined;
|
|
84
|
+
feePerTxUsd?: undefined;
|
|
85
|
+
feePerTxUsdDecimals?: undefined;
|
|
86
|
+
executed_at?: undefined;
|
|
87
|
+
error?: undefined;
|
|
88
|
+
} | {
|
|
89
|
+
status: TransactionStatus;
|
|
90
|
+
transactionHash: string;
|
|
91
|
+
fee: bigint;
|
|
92
|
+
feePerTx: bigint;
|
|
93
|
+
feePerTxDecimals: number;
|
|
94
|
+
feePerTxUsd: bigint;
|
|
95
|
+
feePerTxUsdDecimals: number;
|
|
96
|
+
receipt: ethers.ContractTransactionReceipt;
|
|
97
|
+
executed_at: Date;
|
|
98
|
+
data: {
|
|
99
|
+
success: number[];
|
|
100
|
+
failed: number[];
|
|
101
|
+
dropped: number[];
|
|
102
|
+
cancel: number[];
|
|
103
|
+
};
|
|
104
|
+
error?: undefined;
|
|
105
|
+
} | {
|
|
106
|
+
status: TransactionStatus;
|
|
107
|
+
transactionHash: null;
|
|
108
|
+
receipt: null;
|
|
109
|
+
executed_at: Date;
|
|
110
|
+
error: {
|
|
111
|
+
name: "ContractBusy" | "ContractPaused" | "InvalidSignature" | "SignatureAlreadyUsed" | "ZeroValue" | "ZeroAddress" | "RequestAlreadyFulfilled" | "EtherDirectTransferNotAllowed" | "DepositOnlyERC20" | "TokenNotAllowed" | "InsufficientBalance" | "InsufficientReserves" | "TransferError" | "NotAdmin" | "NotAuthorized" | "ExceedsLimit" | "ExceedsMax" | "UnknownError" | "InvalidNonce" | "TimelockConfigGroupNotSet" | "ConfigGroupNotSet" | "TimelockConfigNotSet" | "CommitmentNotFound" | "AlreadyCreatedTransaction" | "AccountAlreadyHasSignerRole" | "InvalidOperation" | "InvalidConfig" | "InvalidSignatures" | "AdminMultisigConfigNotSet" | "MultisigConfigNotSet" | "RequireTreasuryReceiverRole" | "InvalidMultiSig" | "RequireMultiSig" | "TimelockNotExpired" | "InsufficientExecutiveSigs" | "InsufficientManagerSigs";
|
|
112
|
+
message: string;
|
|
113
|
+
data?: any;
|
|
114
|
+
};
|
|
115
|
+
data: {
|
|
116
|
+
success: number[];
|
|
117
|
+
failed: number[];
|
|
118
|
+
dropped: number[];
|
|
119
|
+
cancel: number[];
|
|
120
|
+
};
|
|
121
|
+
fee?: undefined;
|
|
122
|
+
feePerTx?: undefined;
|
|
123
|
+
feePerTxDecimals?: undefined;
|
|
124
|
+
feePerTxUsd?: undefined;
|
|
125
|
+
feePerTxUsdDecimals?: undefined;
|
|
126
|
+
}>;
|
|
127
|
+
execute_withdrawal(payload: ExecuteWithdrawalPayload): Promise<{
|
|
128
|
+
status: TransactionStatus;
|
|
129
|
+
transactionHash: string;
|
|
130
|
+
fee: bigint;
|
|
131
|
+
}>;
|
|
71
132
|
admin_batch_withdraw(payloads: BatchWithdrawPayload[], token_price: number): Promise<{
|
|
72
133
|
status: TransactionStatus;
|
|
73
134
|
transactionHash: null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Escrow.d.ts","sourceRoot":"","sources":["../../src/contracts/Escrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAqC,MAAM,EAA2B,MAAM,QAAQ,CAAC;AAG9G,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;AACpF,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAiB,kBAAkB,EAAiB,MAAM,EAAa,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Escrow.d.ts","sourceRoot":"","sources":["../../src/contracts/Escrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAqC,MAAM,EAA2B,MAAM,QAAQ,CAAC;AAG9G,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;AACpF,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAiB,wBAAwB,EAAE,kBAAkB,EAAiB,MAAM,EAAa,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGhM;;;GAGG;AACH,cAAM,iBAAkB,SAAQ,MAAM;IAClC,OAAO,CAAC,MAAM,CAAuB;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,aAAa,CAAa;gBAEf,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM;IAU7E;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM;IAK/B,uBAAuB;IAEvB;;;;OAIG;IACU,mBAAmB,CAAC,WAAW,EAAE,MAAM;IAYpD;;;;;OAKG;IACU,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAgBzD,uBAAuB;IAEV,WAAW,CAAC,OAAO,EAAE,kBAAkB;;;;;;;;;;;;;;;;;IAiCvC,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;IA6BnE,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAatD,cAAc,CAAC,QAAQ,EAAE,oBAAoB,EAAE,EAAE,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuEpE,kBAAkB,CAAC,OAAO,EAAE,wBAAwB;;;;;IAsBpD,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,EAAE,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoEvF;;;;;;;;OAQG;IACU,QAAQ,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;YAyCpC,aAAa;YAiCb,aAAa;IA0C3B,iBAAiB,CAAC,KAAK,EAAE,WAAW;CAkBvC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -162,6 +162,97 @@ class EscrowInteraction extends TransactionsErrors_1.default {
|
|
|
162
162
|
}
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
|
+
/// Withdrawal requests with no timelock (no scheduling needed)
|
|
166
|
+
batch_withdraw(payloads, token_price) {
|
|
167
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
168
|
+
let success = [];
|
|
169
|
+
let failed = [];
|
|
170
|
+
let dropped = [];
|
|
171
|
+
let cancel = [];
|
|
172
|
+
const executed_at = new Date();
|
|
173
|
+
try {
|
|
174
|
+
if (!this.signer)
|
|
175
|
+
throw new Error("Signer not set");
|
|
176
|
+
if (!payloads.length)
|
|
177
|
+
return {
|
|
178
|
+
status: escrow_1.TransactionStatus.FAILED,
|
|
179
|
+
transactionHash: null,
|
|
180
|
+
receipt: null,
|
|
181
|
+
data: {
|
|
182
|
+
success,
|
|
183
|
+
failed,
|
|
184
|
+
dropped,
|
|
185
|
+
cancel
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
let tx = yield this.escrowContract.batchWithdrawWithTimelock(payloads);
|
|
189
|
+
let receipt = yield tx.wait(this.CONFIRMATIONS);
|
|
190
|
+
if (!receipt)
|
|
191
|
+
throw new Error(this.UnexpectedError("Failed to retrieve transaction receipt"));
|
|
192
|
+
success = payloads.map(p => p.requestId);
|
|
193
|
+
const fee_per_transaction = receipt.fee / BigInt(payloads.length);
|
|
194
|
+
const fee_per_tx_decimals = parseFloat((0, ethers_1.formatEther)(fee_per_transaction));
|
|
195
|
+
const fee_per_tx_usd_decimals = fee_per_tx_decimals * token_price;
|
|
196
|
+
const fee_per_tx_usd = (0, ethers_1.parseUnits)(fee_per_tx_decimals.toFixed(5), 6);
|
|
197
|
+
return {
|
|
198
|
+
status: escrow_1.TransactionStatus.SUCCESS,
|
|
199
|
+
transactionHash: tx.hash,
|
|
200
|
+
fee: receipt.fee,
|
|
201
|
+
feePerTx: fee_per_transaction,
|
|
202
|
+
feePerTxDecimals: fee_per_tx_decimals,
|
|
203
|
+
feePerTxUsd: fee_per_tx_usd,
|
|
204
|
+
feePerTxUsdDecimals: fee_per_tx_usd_decimals,
|
|
205
|
+
receipt,
|
|
206
|
+
executed_at,
|
|
207
|
+
data: {
|
|
208
|
+
success,
|
|
209
|
+
failed,
|
|
210
|
+
dropped,
|
|
211
|
+
cancel
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
catch (e) {
|
|
216
|
+
const errorResult = this.decodeRevertError(e);
|
|
217
|
+
return {
|
|
218
|
+
status: escrow_1.TransactionStatus.FAILED,
|
|
219
|
+
transactionHash: null,
|
|
220
|
+
receipt: null,
|
|
221
|
+
executed_at,
|
|
222
|
+
error: Object.assign({}, errorResult),
|
|
223
|
+
data: {
|
|
224
|
+
success,
|
|
225
|
+
failed,
|
|
226
|
+
dropped,
|
|
227
|
+
cancel
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
// Execute a withdrawal that has a timelock (scheduling needed)
|
|
234
|
+
execute_withdrawal(payload) {
|
|
235
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
236
|
+
const executed_at = new Date();
|
|
237
|
+
try {
|
|
238
|
+
if (!this.signer)
|
|
239
|
+
throw new Error("Signer not set");
|
|
240
|
+
const tx = yield this.escrowContract.executeWithdrawal(payload.amount, payload.requestId, payload.tokenAddress, payload.receiverAddress, payload.executeAt);
|
|
241
|
+
const receipt = yield tx.wait(this.CONFIRMATIONS);
|
|
242
|
+
if (!receipt)
|
|
243
|
+
throw new Error(this.UnexpectedError("Failed to retrieve transaction receipt"));
|
|
244
|
+
return {
|
|
245
|
+
status: escrow_1.TransactionStatus.SUCCESS,
|
|
246
|
+
transactionHash: tx.hash,
|
|
247
|
+
fee: receipt.fee,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
catch (e) {
|
|
251
|
+
const errorResult = this.decodeRevertError(e);
|
|
252
|
+
throw errorResult;
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}
|
|
165
256
|
admin_batch_withdraw(payloads, token_price) {
|
|
166
257
|
return __awaiter(this, void 0, void 0, function* () {
|
|
167
258
|
let success = [];
|
|
@@ -42,5 +42,13 @@ export interface BatchWithdrawPayload {
|
|
|
42
42
|
requestId: number;
|
|
43
43
|
tokenAddress: string;
|
|
44
44
|
receiverAddress: string;
|
|
45
|
+
signatures: Signature[];
|
|
46
|
+
}
|
|
47
|
+
export interface ExecuteWithdrawalPayload {
|
|
48
|
+
amount: bigint;
|
|
49
|
+
requestId: number;
|
|
50
|
+
tokenAddress: string;
|
|
51
|
+
receiverAddress: string;
|
|
52
|
+
executeAt: number;
|
|
45
53
|
}
|
|
46
54
|
//# sourceMappingURL=escrow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escrow.d.ts","sourceRoot":"","sources":["../../../src/contracts/types/escrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,oBAAY,SAAS;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,KAAK;CACb;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,iBAAiB;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,SAAS;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,oBAAY,aAAa;IACrB,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,gBAAgB,IAAI;IACpB,eAAe,IAAI,CAAE,mEAAmE;IACxF,eAAe,IAAI;CACtB;AAGD,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,0BAA0B,GAAG,IAAI,CAAC;IAClD,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CAC3B"}
|
|
1
|
+
{"version":3,"file":"escrow.d.ts","sourceRoot":"","sources":["../../../src/contracts/types/escrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,oBAAY,SAAS;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,KAAK;CACb;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,iBAAiB;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;CACpB;AAED,MAAM,WAAW,SAAS;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,oBAAY,aAAa;IACrB,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,gBAAgB,IAAI;IACpB,eAAe,IAAI,CAAE,mEAAmE;IACxF,eAAe,IAAI;CACtB;AAGD,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,0BAA0B,GAAG,IAAI,CAAC;IAClD,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,SAAS,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -13,7 +13,11 @@ declare class ClaimJobsService {
|
|
|
13
13
|
private get_history_repo;
|
|
14
14
|
private paginate;
|
|
15
15
|
get_available_jobs_no_timelock: (limit?: number, job_ttl_s?: number, max_retry_count?: number, lock_metadata?: ClaimJobLockMetadata) => Promise<ClaimJobWithDetails[]>;
|
|
16
|
+
/** @deprecated Use get_available_jobs_no_timelock instead. Kept for debugging. */
|
|
17
|
+
get_available_jobs_no_timelock_deprecated: (limit?: number, job_ttl_s?: number, max_retry_count?: number, lock_metadata?: ClaimJobLockMetadata) => Promise<ClaimJobWithDetails[]>;
|
|
16
18
|
get_available_jobs_with_timelock: (limit?: number, job_ttl_s?: number, max_retry_count?: number, lock_metadata?: ClaimJobLockMetadata) => Promise<ClaimJobWithDetails[]>;
|
|
19
|
+
/** @deprecated Use get_available_jobs_with_timelock instead. Kept for debugging. */
|
|
20
|
+
get_available_jobs_with_timelock_deprecated: (limit?: number, job_ttl_s?: number, max_retry_count?: number, lock_metadata?: ClaimJobLockMetadata) => Promise<ClaimJobWithDetails[]>;
|
|
17
21
|
requeue_expired_jobs: (current_status: JobStatus, ttl_seconds: number, limit: number, lock_owner: string, lock_reason: string, max_retries: number) => Promise<ClaimJobs[]>;
|
|
18
22
|
get_stale_jobs: (status: JobStatus, stale_time_mins: number, ttl_mins: number, lock_owner: string, lock_reason: string, limit?: number) => Promise<ClaimJobs[]>;
|
|
19
23
|
get_stale_jobs_deprecated: (status: JobStatus, stale_time_mins: number, limit?: number) => Promise<ClaimJobs[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaimJobService.d.ts","sourceRoot":"","sources":["../../src/services/ClaimJobService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAKlK,cAAM,gBAAgB;IAClB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAGV,MAAM,EAAE,aAAa;IAMjC,OAAO,CAAC,QAAQ,CAIf;IAED,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,QAAQ,CAsBf;IAEM,8BAA8B,GAAU,QAAO,MAAW,EAAE,YAAW,MAAY,EAAE,kBAAiB,MAAU,EAAE,gBAAe,oBAAoF,KAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"ClaimJobService.d.ts","sourceRoot":"","sources":["../../src/services/ClaimJobService.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,13 @@ class ClaimJobsService {
|
|
|
56
56
|
};
|
|
57
57
|
});
|
|
58
58
|
this.get_available_jobs_no_timelock = (...args_1) => __awaiter(this, [...args_1], void 0, function* (limit = 10, job_ttl_s = 120, max_retry_count = 5, lock_metadata = { lock_owner: "claim-worker", lock_reason: "process_queued" }) {
|
|
59
|
+
var _a;
|
|
60
|
+
const repo = this.get_repo();
|
|
61
|
+
const result = yield repo.query(`SELECT accounting.fn_get_available_claim_jobs_no_timelock($1::int, $2::int, $3::int, $4::text, $5::text)`, [limit, job_ttl_s, max_retry_count, lock_metadata.lock_owner, lock_metadata.lock_reason]);
|
|
62
|
+
return (_a = result[0].fn_get_available_claim_jobs_no_timelock) !== null && _a !== void 0 ? _a : [];
|
|
63
|
+
});
|
|
64
|
+
/** @deprecated Use get_available_jobs_no_timelock instead. Kept for debugging. */
|
|
65
|
+
this.get_available_jobs_no_timelock_deprecated = (...args_1) => __awaiter(this, [...args_1], void 0, function* (limit = 10, job_ttl_s = 120, max_retry_count = 5, lock_metadata = { lock_owner: "claim-worker", lock_reason: "process_queued" }) {
|
|
59
66
|
const repo = this.get_repo();
|
|
60
67
|
const rows = yield repo.query(`
|
|
61
68
|
WITH candidates AS (
|
|
@@ -94,6 +101,13 @@ class ClaimJobsService {
|
|
|
94
101
|
return rows;
|
|
95
102
|
});
|
|
96
103
|
this.get_available_jobs_with_timelock = (...args_1) => __awaiter(this, [...args_1], void 0, function* (limit = 10, job_ttl_s = 120, max_retry_count = 5, lock_metadata = { lock_owner: "claim-worker", lock_reason: "process_queued" }) {
|
|
104
|
+
var _a;
|
|
105
|
+
const repo = this.get_repo();
|
|
106
|
+
const result = yield repo.query(`SELECT accounting.fn_get_available_claim_jobs_with_timelock($1::int, $2::int, $3::int, $4::text, $5::text)`, [limit, job_ttl_s, max_retry_count, lock_metadata.lock_owner, lock_metadata.lock_reason]);
|
|
107
|
+
return (_a = result[0].fn_get_available_claim_jobs_with_timelock) !== null && _a !== void 0 ? _a : [];
|
|
108
|
+
});
|
|
109
|
+
/** @deprecated Use get_available_jobs_with_timelock instead. Kept for debugging. */
|
|
110
|
+
this.get_available_jobs_with_timelock_deprecated = (...args_1) => __awaiter(this, [...args_1], void 0, function* (limit = 10, job_ttl_s = 120, max_retry_count = 5, lock_metadata = { lock_owner: "claim-worker", lock_reason: "process_queued" }) {
|
|
97
111
|
const repo = this.get_repo();
|
|
98
112
|
const rows = yield repo.query(`
|
|
99
113
|
WITH scheduled_status AS (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ClaimJobs } from "../../entities";
|
|
2
2
|
import { BlockchainType, ChainId } from "../../interfaces";
|
|
3
|
-
import { JobStatus, MultisigSignatureEntry, PaymentType
|
|
3
|
+
import { JobStatus, MultisigSignatureEntry, PaymentType } from "./claim";
|
|
4
4
|
export interface MarkCompletePayload {
|
|
5
5
|
request_id: number;
|
|
6
6
|
from: string;
|
|
@@ -58,7 +58,5 @@ export interface ClaimJobResult extends ClaimJobs {
|
|
|
58
58
|
commitment_hash: string;
|
|
59
59
|
execute_at: Date;
|
|
60
60
|
}
|
|
61
|
-
export type ClaimJobWithDetails =
|
|
62
|
-
withdrawal_details: WithdrawRequestDetails | null;
|
|
63
|
-
};
|
|
61
|
+
export type ClaimJobWithDetails = ClaimJobResult;
|
|
64
62
|
//# sourceMappingURL=claim_job_service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim_job_service.d.ts","sourceRoot":"","sources":["../../../src/services/types/claim_job_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"claim_job_service.d.ts","sourceRoot":"","sources":["../../../src/services/types/claim_job_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzE,MAAM,WAAW,mBAAmB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,WAAW,CAAC;IAC1B,qBAAqB,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,CAAC,CAAC;CACZ;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,cAAe,SAAQ,SAAS;IAE7C,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAG9C,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,IAAI,CAAC;CAEpB;AAED,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC"}
|
|
@@ -14,6 +14,13 @@ export interface EstimateEscrowBatchWithdrawPayload {
|
|
|
14
14
|
receiver: string;
|
|
15
15
|
requestId: number;
|
|
16
16
|
}
|
|
17
|
+
export interface EstimateEscrowExecuteWithdrawalPayload {
|
|
18
|
+
amount: bigint;
|
|
19
|
+
requestId: number;
|
|
20
|
+
tokenAddress: string;
|
|
21
|
+
receiverAddress: string;
|
|
22
|
+
executeAt: number;
|
|
23
|
+
}
|
|
17
24
|
export declare const needs_approval_and_funding: (blockchain: BlockchainType, chainId: ChainId, token: string, parentIndex: number, childIndex: number, spender: string, dbPool: IDatabasePool, config: IConfig) => Promise<{
|
|
18
25
|
status: boolean;
|
|
19
26
|
needs_approval: boolean;
|
|
@@ -27,6 +34,7 @@ export declare const getWalletBalance: (blockchain: BlockchainType, chainId: Cha
|
|
|
27
34
|
balance: bigint;
|
|
28
35
|
decimals: bigint;
|
|
29
36
|
}>;
|
|
37
|
+
export declare const estimate_execute_withdrawal: (chain_id: ChainId, payload: EstimateEscrowExecuteWithdrawalPayload, caller: string, config: IConfig) => Promise<bigint>;
|
|
30
38
|
export declare const estimate_escrow_method_call_cost: (chain_id: ChainId, payloads: EstimateEscrowBatchWithdrawPayload[], dbPool: IDatabasePool, config: IConfig) => Promise<bigint>;
|
|
31
39
|
export declare const estimateGas: (provider: ethers.Provider, tokenAddress: string, spenderAddress: string | null, amount: bigint, fromAddress: string, chainId: number, transactionType: TransactionType, isMockTransfer?: boolean) => Promise<bigint>;
|
|
32
40
|
//# sourceMappingURL=custodial.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custodial.d.ts","sourceRoot":"","sources":["../../src/utils/custodial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,MAAM,EAAwC,MAAM,QAAQ,CAAC;AAC7G,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAYnF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAMvD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC;AACpE,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,kCAAkC;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,0BAA0B,GAAU,YAAY,cAAc,EAAE,SAAS,OAAO,EAAE,OAAO,MAAM,EAAE,aAAa,MAAM,EAAE,YAAY,MAAM,EAAE,SAAS,MAAM,EAAE,QAAQ,aAAa,EAAE,QAAQ,OAAO;;;;EAkC7M,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,YAAY,cAAc,EAAE,SAAS,OAAO,EAAE,aAAa,MAAM,EAAE,YAAY,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,aAAa,EAAE,QAAQ,OAAO;;;EAkC1M,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAU,YAAY,cAAc,EAAE,SAAS,OAAO,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,aAAa,EAAE,QAAQ,OAAO;;;EA0F1J,CAAA;AAED,eAAO,MAAM,gCAAgC,GAAU,UAAU,OAAO,EAAE,UAAU,kCAAkC,EAAE,EAAE,QAAQ,aAAa,EAAE,QAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"custodial.d.ts","sourceRoot":"","sources":["../../src/utils/custodial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,MAAM,EAAwC,MAAM,QAAQ,CAAC;AAC7G,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAYnF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAMvD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC;AACpE,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,kCAAkC;IAC/C,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB;AACD,MAAM,WAAW,sCAAsC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,0BAA0B,GAAU,YAAY,cAAc,EAAE,SAAS,OAAO,EAAE,OAAO,MAAM,EAAE,aAAa,MAAM,EAAE,YAAY,MAAM,EAAE,SAAS,MAAM,EAAE,QAAQ,aAAa,EAAE,QAAQ,OAAO;;;;EAkC7M,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,YAAY,cAAc,EAAE,SAAS,OAAO,EAAE,aAAa,MAAM,EAAE,YAAY,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,aAAa,EAAE,QAAQ,OAAO;;;EAkC1M,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAU,YAAY,cAAc,EAAE,SAAS,OAAO,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM,EAAE,QAAQ,aAAa,EAAE,QAAQ,OAAO;;;EA0F1J,CAAA;AAGD,eAAO,MAAM,2BAA2B,GAAU,UAAU,OAAO,EAAE,SAAS,sCAAsC,EAAE,QAAQ,MAAM,EAAE,QAAQ,OAAO,oBAsBpJ,CAAA;AAED,eAAO,MAAM,gCAAgC,GAAU,UAAU,OAAO,EAAE,UAAU,kCAAkC,EAAE,EAAE,QAAQ,aAAa,EAAE,QAAQ,OAAO,oBA0C/J,CAAA;AAED,eAAO,MAAM,WAAW,GACpB,UAAU,MAAM,CAAC,QAAQ,EACzB,cAAc,MAAM,EACpB,gBAAgB,MAAM,GAAG,IAAI,EAC7B,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,SAAS,MAAM,EACf,iBAAiB,eAAe,EAChC,wBAAsB,oBA8DzB,CAAA"}
|
package/build/utils/custodial.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.estimateGas = exports.estimate_escrow_method_call_cost = exports.getWalletBalance = exports.approve_if_not_approved = exports.needs_approval_and_funding = void 0;
|
|
15
|
+
exports.estimateGas = exports.estimate_escrow_method_call_cost = exports.estimate_execute_withdrawal = exports.getWalletBalance = exports.approve_if_not_approved = exports.needs_approval_and_funding = void 0;
|
|
16
16
|
const ethers_1 = require("ethers");
|
|
17
17
|
const ERC20Mock_json_1 = __importDefault(require("../contracts/artifacts/ERC20Mock.json"));
|
|
18
18
|
const Escrow_json_1 = __importDefault(require("../contracts/artifacts/Escrow.json"));
|
|
@@ -172,6 +172,28 @@ const getWalletBalance = (blockchain, chainId, address, token, dbPool, config) =
|
|
|
172
172
|
}
|
|
173
173
|
});
|
|
174
174
|
exports.getWalletBalance = getWalletBalance;
|
|
175
|
+
/// Estimate gas for withdrawing scheduled transaction (withdraw with timelock)
|
|
176
|
+
const estimate_execute_withdrawal = (chain_id, payload, caller, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
177
|
+
const chain_manager = ChainManager_1.default.getInstance(config);
|
|
178
|
+
const escrow_config = chain_manager.getEscrowContractForChain(parseInt(chain_id));
|
|
179
|
+
const provider = ProviderManager_1.default.getInstance(config).getNewProvider(chain_id).provider;
|
|
180
|
+
const Escrow = new ethers_1.ethers.Contract(escrow_config.addresses[0], Escrow_json_1.default, provider);
|
|
181
|
+
const data = Escrow.interface.encodeFunctionData('executeWithdrawal', [
|
|
182
|
+
payload.amount, payload.requestId, payload.tokenAddress, payload.receiverAddress, payload.executeAt
|
|
183
|
+
]);
|
|
184
|
+
const txDetails = {
|
|
185
|
+
to: Escrow.target,
|
|
186
|
+
data: data,
|
|
187
|
+
from: caller
|
|
188
|
+
};
|
|
189
|
+
const [gasUnits, gasPrice] = yield Promise.all([
|
|
190
|
+
(0, Utility_1.retryWithExponentialBackoff)(() => __awaiter(void 0, void 0, void 0, function* () { return yield provider.estimateGas(txDetails); })),
|
|
191
|
+
(0, Utility_1.retryWithExponentialBackoff)(() => __awaiter(void 0, void 0, void 0, function* () { return yield provider.getFeeData(); }))
|
|
192
|
+
]);
|
|
193
|
+
const totalFee = gasPrice.maxFeePerGas ? gasUnits * gasPrice.maxFeePerGas : gasUnits * (gasPrice.gasPrice || BigInt(0));
|
|
194
|
+
return totalFee;
|
|
195
|
+
});
|
|
196
|
+
exports.estimate_execute_withdrawal = estimate_execute_withdrawal;
|
|
175
197
|
const estimate_escrow_method_call_cost = (chain_id, payloads, dbPool, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
176
198
|
const errors = new TransactionsErrors_1.default();
|
|
177
199
|
if (payloads.length === 0)
|
|
@@ -200,7 +222,6 @@ const estimate_escrow_method_call_cost = (chain_id, payloads, dbPool, config) =>
|
|
|
200
222
|
chainId: chain_id.toString(),
|
|
201
223
|
value: 0
|
|
202
224
|
};
|
|
203
|
-
console.log(`BATCh WITHDRAW DAT: `, { batch_payloads, data, txDetails });
|
|
204
225
|
// Estimate gas units and get current gas price
|
|
205
226
|
const [gasUnits, gasPrice] = yield Promise.all([
|
|
206
227
|
(0, Utility_1.retryWithExponentialBackoff)(() => __awaiter(void 0, void 0, void 0, function* () { return yield provider.estimateGas(txDetails); })),
|
package/package.json
CHANGED