@ercworldio/blockchain-shared 1.0.3-dev.4-PROJ-1296.10 → 1.0.3-dev.6
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/chains/networks_dev.json +12 -12
- package/build/chains/networks_prod-sh.json +4 -40
- package/build/chains/networks_prod-yb.json +4 -40
- package/build/contracts/Escrow.d.ts +5 -66
- package/build/contracts/Escrow.d.ts.map +1 -1
- package/build/contracts/Escrow.js +2 -93
- package/build/contracts/EscrowErrors.d.ts +1 -85
- package/build/contracts/EscrowErrors.d.ts.map +1 -1
- package/build/contracts/EscrowErrors.js +14 -59
- package/build/contracts/artifacts/Escrow.json +12 -0
- package/build/contracts/contract-events/AccessControlEvents.d.ts +2 -12
- package/build/contracts/contract-events/AccessControlEvents.d.ts.map +1 -1
- package/build/contracts/contract-events/AccessControlEvents.js +5 -29
- package/build/contracts/contract-events/EscrowEvents.d.ts +2 -134
- package/build/contracts/contract-events/EscrowEvents.d.ts.map +1 -1
- package/build/contracts/contract-events/EscrowEvents.js +17 -67
- package/build/contracts/contract-events/types/events.d.ts +1 -35
- package/build/contracts/contract-events/types/events.d.ts.map +1 -1
- package/build/contracts/typechain-types/contracts/escrow/Escrow.d.ts +4 -1
- package/build/contracts/typechain-types/contracts/escrow/Escrow.d.ts.map +1 -1
- package/build/contracts/typechain-types/contracts/lib/Events.d.ts +4 -1
- package/build/contracts/typechain-types/contracts/lib/Events.d.ts.map +1 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/EscrowAccessControl__factory.d.ts +1 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/EscrowAccessControl__factory.js +1 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/Escrow__factory.d.ts +6 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/Escrow__factory.d.ts.map +1 -1
- package/build/contracts/typechain-types/factories/contracts/escrow/Escrow__factory.js +7 -1
- package/build/contracts/typechain-types/factories/contracts/lib/Events__factory.d.ts +6 -1
- package/build/contracts/typechain-types/factories/contracts/lib/Events__factory.d.ts.map +1 -1
- package/build/contracts/typechain-types/factories/contracts/lib/Events__factory.js +7 -1
- package/build/contracts/types/escrow.d.ts +1 -13
- package/build/contracts/types/escrow.d.ts.map +1 -1
- package/build/contracts/types/escrow.js +0 -4
- package/build/entities/AdminOperationThresholds.d.ts +1 -0
- package/build/entities/AdminOperationThresholds.d.ts.map +1 -1
- package/build/entities/AdminOperationThresholds.js +5 -1
- package/build/entities/ClaimJob.d.ts +0 -1
- package/build/entities/ClaimJob.d.ts.map +1 -1
- package/build/entities/ClaimJob.js +0 -4
- package/build/entities/EscrowRoles.js +1 -1
- package/build/entities/GlobalTimelock.d.ts +1 -0
- package/build/entities/GlobalTimelock.d.ts.map +1 -1
- package/build/entities/GlobalTimelock.js +5 -1
- package/build/entities/GranularTimelock .d.ts +1 -0
- package/build/entities/GranularTimelock .d.ts.map +1 -1
- package/build/entities/GranularTimelock .js +4 -0
- package/build/entities/RoleHash.js +1 -1
- package/build/entities/TokenExecutionThresholds.d.ts +1 -0
- package/build/entities/TokenExecutionThresholds.d.ts.map +1 -1
- package/build/entities/TokenExecutionThresholds.js +5 -1
- package/build/errors/errors.d.ts +0 -30
- package/build/errors/errors.d.ts.map +1 -1
- package/build/errors/errors.js +2 -64
- package/build/index.d.ts +9 -6
- package/build/index.d.ts.map +1 -1
- package/build/index.js +11 -22
- package/build/interfaces.d.ts +2 -2
- package/build/interfaces.d.ts.map +1 -1
- package/build/services/AlchemyService.d.ts +1 -2
- package/build/services/AlchemyService.d.ts.map +1 -1
- package/build/services/AlchemyService.js +2 -8
- package/build/services/AlchemyWebhooks.d.ts.map +1 -1
- package/build/services/AlchemyWebhooks.js +29 -36
- package/build/services/AzureEventHubHandler.d.ts.map +1 -1
- package/build/services/AzureEventHubHandler.js +5 -17
- package/build/services/ClaimJobService.d.ts +2 -5
- package/build/services/ClaimJobService.d.ts.map +1 -1
- package/build/services/ClaimJobService.js +24 -135
- package/build/services/SweepJobService.d.ts +3 -3
- package/build/services/SweepJobService.d.ts.map +1 -1
- package/build/services/SweepJobService.js +12 -7
- package/build/services/db/roles/ContractRoles.d.ts +2 -2
- package/build/services/db/roles/ContractRoles.d.ts.map +1 -1
- package/build/services/db/roles/ContractRoles.js +12 -18
- package/build/services/types/alchemy.d.ts +1 -1
- package/build/services/types/alchemy.d.ts.map +1 -1
- package/build/services/types/azure_event_hub_handler.d.ts +1 -9
- package/build/services/types/azure_event_hub_handler.d.ts.map +1 -1
- package/build/services/types/azure_event_hub_handler.js +0 -8
- package/build/services/types/claim.d.ts +1 -17
- package/build/services/types/claim.d.ts.map +1 -1
- package/build/services/types/claim_job_service.d.ts +1 -9
- package/build/services/types/claim_job_service.d.ts.map +1 -1
- package/build/services/types/index.d.ts +0 -1
- package/build/services/types/index.d.ts.map +1 -1
- package/build/services/types/index.js +0 -1
- package/build/services/utils/alchemy.d.ts +1 -1
- package/build/services/utils/alchemy.d.ts.map +1 -1
- package/build/services/utils/alchemy.js +20 -9
- package/build/utils/AsyncTTLCache.d.ts +0 -2
- package/build/utils/AsyncTTLCache.d.ts.map +1 -1
- package/build/utils/AsyncTTLCache.js +2 -18
- package/build/utils/custodial.d.ts +0 -8
- package/build/utils/custodial.d.ts.map +1 -1
- package/build/utils/custodial.js +20 -34
- package/package.json +3 -6
|
@@ -61,45 +61,41 @@ class AlchemyWebhooks {
|
|
|
61
61
|
env = "prod";
|
|
62
62
|
const report = yield this.validate_setup(env);
|
|
63
63
|
let new_webhooks = [];
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
// create missing webhook
|
|
65
|
+
if (report.failed.length) {
|
|
66
|
+
this.logger.info(`Creating ${report.failed.length} missing ADDRESS_ACTIVITY webhooks`);
|
|
67
|
+
const is_created = yield this.create_webhooks(env, report.failed, server_host);
|
|
68
|
+
if (is_created.length > 0) {
|
|
69
|
+
new_webhooks.push(...is_created);
|
|
70
|
+
this.logger.info(`Successfully created ${report.failed.length} missing ADDRESS_ACTIVITY webhooks.`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// // Create missing graphql webhooks
|
|
74
|
+
if (report.failed_graphql.length) {
|
|
75
|
+
this.logger.info(`Creating ${report.failed_graphql.length} missing GRAPHQL webhooks`);
|
|
76
|
+
const is_created = yield this.create_webhooks(env, report.failed_graphql, server_host);
|
|
77
|
+
if (is_created.length > 0) {
|
|
78
|
+
new_webhooks.push(...is_created);
|
|
79
|
+
this.logger.info(`Successfully created ${report.failed.length} missing GRAPHQL webhooks.`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (this.config.config.useTunnel) {
|
|
83
|
+
this.logger.info(`Validating local setup.`);
|
|
84
|
+
const report_dev = yield this.validate_setup("local");
|
|
85
|
+
if (report_dev.failed.length) {
|
|
86
|
+
this.logger.info(`LOCAL: Creating ${report_dev.failed.length} missing ADDRESS_ACTIVITY webhooks`);
|
|
87
|
+
const is_created = yield this.create_webhooks("local", report_dev.failed);
|
|
69
88
|
if (is_created.length > 0) {
|
|
70
89
|
new_webhooks.push(...is_created);
|
|
71
|
-
this.logger.info(`Successfully created ${
|
|
90
|
+
this.logger.info(`LOCAL: Successfully created ${report_dev.failed.length} missing ADDRESS_ACTIVITY webhooks.`);
|
|
72
91
|
}
|
|
73
92
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
this.
|
|
77
|
-
const is_created = yield this.create_webhooks(env, report.failed_graphql, server_host);
|
|
93
|
+
if (report_dev.failed_graphql.length) {
|
|
94
|
+
this.logger.info(`LOCAL: Creating ${report_dev.failed_graphql.length} missing GRAPHQL webhooks`);
|
|
95
|
+
const is_created = yield this.create_webhooks("local", report_dev.failed_graphql);
|
|
78
96
|
if (is_created.length > 0) {
|
|
79
97
|
new_webhooks.push(...is_created);
|
|
80
|
-
this.logger.info(`Successfully created ${
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
if (this.config.config.useTunnel) {
|
|
86
|
-
this.logger.info(`Validating local setup.`);
|
|
87
|
-
// const report_dev = await this.validate_setup("local");
|
|
88
|
-
if (report.failed.length) {
|
|
89
|
-
this.logger.info(`LOCAL: Creating ${report.failed.length} missing ADDRESS_ACTIVITY webhooks`);
|
|
90
|
-
const is_created = yield this.create_webhooks("local", report.failed);
|
|
91
|
-
if (is_created.length > 0) {
|
|
92
|
-
new_webhooks.push(...is_created);
|
|
93
|
-
this.logger.info(`LOCAL: Successfully created ${report.failed.length} missing ADDRESS_ACTIVITY webhooks.`);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
if (report.failed_graphql.length) {
|
|
97
|
-
this.logger.info(`LOCAL: Creating ${report.failed_graphql.length} missing GRAPHQL webhooks`);
|
|
98
|
-
const is_created = yield this.create_webhooks("local", report.failed_graphql);
|
|
99
|
-
if (is_created.length > 0) {
|
|
100
|
-
new_webhooks.push(...is_created);
|
|
101
|
-
this.logger.info(`LOCLA: Successfully created ${report.failed_graphql.length} missing GRAPHQL webhooks.`);
|
|
102
|
-
}
|
|
98
|
+
this.logger.info(`LOCLA: Successfully created ${report_dev.failed_graphql.length} missing GRAPHQL webhooks.`);
|
|
103
99
|
}
|
|
104
100
|
}
|
|
105
101
|
}
|
|
@@ -351,9 +347,6 @@ class AlchemyWebhooks {
|
|
|
351
347
|
}
|
|
352
348
|
});
|
|
353
349
|
const alchemy_service = AlchemyService_1.default.getInstance(this.config);
|
|
354
|
-
console.log(`*********************************************`);
|
|
355
|
-
alchemy_service.invalidate_webhook_cache(env);
|
|
356
|
-
console.log(`*********************************************`);
|
|
357
350
|
const all_webhooks = (yield alchemy_service.get_all_webhooks(env)).filter((result) => (0, alchemy_1.get_blockchain_type)(result.network) === blockchain);
|
|
358
351
|
if (!all_webhooks) {
|
|
359
352
|
throw new Error(this.errors.NoWebhooks(env));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AzureEventHubHandler.d.ts","sourceRoot":"","sources":["../../src/services/AzureEventHubHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"AzureEventHubHandler.d.ts","sourceRoot":"","sources":["../../src/services/AzureEventHubHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI3C,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAC9B,eAAe,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACrC,OAAO,CAAC,MAAM,CAAU;IACjB,4BAA4B,EAAE,aAAa,EAAE,CAAC;IAC9C,4BAA4B,EAAE,MAAM,CAAC,MAAM,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACnF,OAAO,CAAC,MAAM,CAAS;gBAGX,OAAO,EAAE,OAAO;IAiC5B,OAAO,CAAC,yBAAyB;IAajC,gBAAgB;;;;IAchB;;;;OAIG;IACG,SAAS,CAAC,SAAS,EAAE,UAAU;IAwC/B,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,sBAAsB;IAwB7E;;;;;OAKG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,gBAAgB;CAU5D"}
|
|
@@ -32,17 +32,9 @@ class AzureEventHubHandler {
|
|
|
32
32
|
Withdrawal: this.config.config.withdrawalEventHubName,
|
|
33
33
|
LowReserves: 'eventsstream',
|
|
34
34
|
CoverageInfo: 'eventsstream',
|
|
35
|
-
RoleGranted:
|
|
36
|
-
RoleRevoked:
|
|
35
|
+
RoleGranted: this.config.config.rolesEventHubName,
|
|
36
|
+
RoleRevoked: this.config.config.rolesEventHubName,
|
|
37
37
|
TransferLogsRaw: this.config.config.transferLogsRawEventHubName,
|
|
38
|
-
WithdrawalExecuted: 'rawtransferlogs',
|
|
39
|
-
WithdrawalScheduled: 'rawtransferlogs',
|
|
40
|
-
WithdrawalCancelled: 'rawtransferlogs',
|
|
41
|
-
SetTimelockGranular: 'rawtransferlogs',
|
|
42
|
-
SetTokenTimelock: 'rawtransferlogs',
|
|
43
|
-
ConfigureAdminMultisig: 'rawtransferlogs',
|
|
44
|
-
ConfigureTokenMultisig: 'rawtransferlogs',
|
|
45
|
-
AdminWithdraw: 'rawtransferlogs'
|
|
46
38
|
};
|
|
47
39
|
this.logger = (0, Logger_1.createLogger)("AzureEventHubHandler", this.config.pipelineConfig.azureAppName);
|
|
48
40
|
this.initializeEventHubClients();
|
|
@@ -77,10 +69,10 @@ class AzureEventHubHandler {
|
|
|
77
69
|
*/
|
|
78
70
|
sendEvent(eventData) {
|
|
79
71
|
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
|
|
72
|
+
const eventHubName = this.event_name_to_event_hub_name[eventData.eventName];
|
|
81
73
|
if (!eventHubName) {
|
|
82
|
-
this.logger.info(`[AzureEventHubHandler]: Event hub name not found for ${eventData.eventName} event.
|
|
83
|
-
|
|
74
|
+
this.logger.info(`[AzureEventHubHandler]: Event hub name not found for ${eventData.eventName} event. Skipping...`);
|
|
75
|
+
return false;
|
|
84
76
|
}
|
|
85
77
|
const clientDefault = new event_hubs_1.EventHubProducerClient(this.config.config.azureConnectionStringNotifications, eventHubName, { retryOptions: { retryDelayInMs: 10000 } });
|
|
86
78
|
const eventDataBatch = yield clientDefault.createBatch();
|
|
@@ -135,10 +127,6 @@ class AzureEventHubHandler {
|
|
|
135
127
|
getEventHubClient(eventName) {
|
|
136
128
|
return __awaiter(this, void 0, void 0, function* () {
|
|
137
129
|
try {
|
|
138
|
-
// Fallback to rawtransferlogs if event name is not mapped to a event hub client
|
|
139
|
-
if (!this.event_name_to_event_hub_name[eventName]) {
|
|
140
|
-
return this.eventHubClients.get(this.config.config.transferLogsRawEventHubName || 'rawtransferlogs');
|
|
141
|
-
}
|
|
142
130
|
return this.eventHubClients.get(this.event_name_to_event_hub_name[eventName]);
|
|
143
131
|
}
|
|
144
132
|
catch (error) {
|
|
@@ -2,7 +2,7 @@ import { ClaimJobs } from "../entities/ClaimJob";
|
|
|
2
2
|
import { JobStatus } from "./types/claim";
|
|
3
3
|
import { ChainId } from "../interfaces";
|
|
4
4
|
import { IDatabasePool } from "../interfaces/database";
|
|
5
|
-
import { ClaimJobLockMetadata,
|
|
5
|
+
import { ClaimJobLockMetadata, ClaimSearchFilters, CreateClaimJobsPayload, MarkCompletePayload, Paginated } from "./types/claim_job_service";
|
|
6
6
|
declare class ClaimJobsService {
|
|
7
7
|
private dbPool;
|
|
8
8
|
private errors;
|
|
@@ -12,10 +12,7 @@ declare class ClaimJobsService {
|
|
|
12
12
|
private get_repo;
|
|
13
13
|
private get_history_repo;
|
|
14
14
|
private paginate;
|
|
15
|
-
|
|
16
|
-
get_available_jobs_no_timelock: (limit?: number, job_ttl_s?: number, max_retry_count?: number, lock_metadata?: ClaimJobLockMetadata) => Promise<ClaimJobWithDetails[]>;
|
|
17
|
-
get_available_jobs_with_timelock_deprecated: (limit?: number, job_ttl_s?: number, max_retry_count?: number, lock_metadata?: ClaimJobLockMetadata) => Promise<ClaimJobWithDetails[]>;
|
|
18
|
-
get_available_jobs_with_timelock: (limit?: number, job_ttl_s?: number, max_retry_count?: number, lock_metadata?: ClaimJobLockMetadata) => Promise<ClaimJobWithDetails[]>;
|
|
15
|
+
get_available_jobs: (limit?: number, job_ttl_s?: number, lock_metadata?: ClaimJobLockMetadata) => Promise<ClaimJobs[]>;
|
|
19
16
|
requeue_expired_jobs: (current_status: JobStatus, ttl_seconds: number, limit: number, lock_owner: string, lock_reason: string, max_retries: number) => Promise<ClaimJobs[]>;
|
|
20
17
|
get_stale_jobs: (status: JobStatus, stale_time_mins: number, ttl_mins: number, lock_owner: string, lock_reason: string, limit?: number) => Promise<ClaimJobs[]>;
|
|
21
18
|
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,
|
|
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,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI7I,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,kBAAkB,GAAU,QAAO,MAAW,EAAE,YAAW,MAAY,EAAE,gBAAe,oBAAoF,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAyCzM;IAGM,oBAAoB,GACvB,gBAAgB,SAAS,EACzB,aAAa,MAAM,EACnB,OAAO,MAAM,EACb,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,aAAa,MAAM,KACpB,OAAO,CAAC,SAAS,EAAE,CAAC,CAwCrB;IAIK,cAAc,GAAU,QAAQ,SAAS,EAAE,iBAAiB,MAAM,EAAE,UAAU,MAAM,EAAE,YAAY,MAAM,EAAE,aAAa,MAAM,EAAE,QAAO,MAAW,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA4C9K;IAEM,yBAAyB,GAAU,QAAQ,SAAS,EAAE,iBAAiB,MAAM,EAAE,QAAO,MAAW,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAgB9H;IAGM,+BAA+B,GAAU,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAc3H;IAEM,cAAc,GAAU,QAAQ,SAAS,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAGtE;IAEM,wBAAwB,GAAU,MAAM,MAAM,EAAE,WAAW,MAAM,YAAK,EAAE,SAAS,kBAAkB,KAAG,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAE3I;IAGM,sBAAsB,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAG5E;IAEM,4BAA4B,GAAU,YAAY,QAAQ,GAAG,KAAK,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAG/F;IAEM,0BAA0B,GAAU,UAAU,OAAO,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAGlF;IAEM,0BAA0B,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAGhF;IAEM,uBAAuB,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAG3E;IAEM,4BAA4B,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAG1F;IAEM,wBAAwB,GAAU,QAAQ,SAAS,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAGhF;IAEM,gBAAgB,GAAU,SAAS,sBAAsB,KAAG,OAAO,CAAC,SAAS,CAAC,CA2BpF;IAEM,uBAAuB,GAAU,YAAY,MAAM,EAAE,YAAY,SAAS,6CAGhF;IAEM,mBAAmB,GAAU,aAAa,MAAM,EAAE,EAAE,YAAY,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC,CAW9F;IAEK,wBAAwB,GAC3B,aAAa,MAAM,EAAE,EACrB,YAAY,SAAS,EACrB,gBAAgB,MAAM,EACtB,YAAY,OAAO,KACpB,OAAO,CAAC,IAAI,CAAC,CAwBd;IAIK,aAAa,GAAU,UAAU,mBAAmB,EAAE,+BA+C5D;IAEM,0BAA0B,GAC7B,MAAM;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,IAAI,CAAA;KAAE,EAAE,KAC/D,OAAO,CAAC,IAAI,CAAC,CAwBd;IAIK,gBAAgB,GAAU,YAAY,QAAQ,GAAG,KAAK,EAAE,UAAU,OAAO,qBAI/E;IAEM,oBAAoB,GAAU,YAAY,QAAQ,GAAG,KAAK,GAAG,MAAM,EAAE,UAAU,OAAO,EAAE,cAAU,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAW/H;IAEM,iBAAiB,GAAU,aAAa,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAQrE;IAEK,gBAAgB,GAAU,YAAY,MAAM,6CAGlD;IAED,OAAO,CAAC,YAAY,CAcnB;CAEJ;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -55,151 +55,41 @@ class ClaimJobsService {
|
|
|
55
55
|
items: items || []
|
|
56
56
|
};
|
|
57
57
|
});
|
|
58
|
-
this.
|
|
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
|
-
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" }) {
|
|
58
|
+
this.get_available_jobs = (...args_1) => __awaiter(this, [...args_1], void 0, function* (limit = 10, job_ttl_s = 120, lock_metadata = { lock_owner: "claim-worker", lock_reason: "process_queued" }) {
|
|
65
59
|
const repo = this.get_repo();
|
|
60
|
+
const ttlSeconds = job_ttl_s;
|
|
61
|
+
const batchGroupId = (0, uuid_1.v4)();
|
|
66
62
|
const rows = yield repo.query(`
|
|
67
63
|
WITH candidates AS (
|
|
68
64
|
SELECT id
|
|
69
65
|
FROM accounting.claim_jobs
|
|
70
66
|
WHERE job_status = 'queued'
|
|
71
|
-
AND has_timelock = false
|
|
72
67
|
AND (lock_expires_at IS NULL OR lock_expires_at < now())
|
|
73
|
-
AND retry_count < $6
|
|
74
68
|
ORDER BY blockchain, chain_id ASC
|
|
75
69
|
LIMIT $1
|
|
76
70
|
FOR UPDATE SKIP LOCKED
|
|
77
|
-
),
|
|
78
|
-
updated AS (
|
|
79
|
-
UPDATE accounting.claim_jobs cj
|
|
80
|
-
SET
|
|
81
|
-
job_status = 'processing',
|
|
82
|
-
locked_at = now(),
|
|
83
|
-
lock_expires_at = now() + ($2 || ' seconds')::interval,
|
|
84
|
-
batch_group_id = $3,
|
|
85
|
-
metadata = jsonb_set(
|
|
86
|
-
jsonb_set(
|
|
87
|
-
coalesce(cj.metadata, '{}'::jsonb),
|
|
88
|
-
'{lock_owner}', to_jsonb($4::text)
|
|
89
|
-
),
|
|
90
|
-
'{lock_reason}', to_jsonb($5::text)
|
|
91
|
-
),
|
|
92
|
-
updated_at = now()
|
|
93
|
-
FROM candidates c
|
|
94
|
-
WHERE cj.id = c.id
|
|
95
|
-
RETURNING cj.*
|
|
96
71
|
)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
AND LOWER(cer.contract_address) = LOWER(cs.contract_address)
|
|
119
|
-
LEFT JOIN multisig.crypto_role cr ON cr.id = cer.role_id
|
|
120
|
-
WHERE cs.reference_id = u.request_id
|
|
121
|
-
AND cs.v IS NOT NULL
|
|
122
|
-
AND cs.r IS NOT NULL
|
|
123
|
-
AND cs.s IS NOT NULL
|
|
124
|
-
) AS multisig_signatures
|
|
125
|
-
FROM updated u;
|
|
126
|
-
`, [limit, job_ttl_s, (0, uuid_1.v4)(), lock_metadata.lock_owner, lock_metadata.lock_reason, max_retry_count]);
|
|
127
|
-
return rows;
|
|
128
|
-
});
|
|
129
|
-
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" }) {
|
|
130
|
-
var _a;
|
|
131
|
-
const repo = this.get_repo();
|
|
132
|
-
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]);
|
|
133
|
-
return (_a = result[0].fn_get_available_claim_jobs_with_timelock) !== null && _a !== void 0 ? _a : [];
|
|
134
|
-
});
|
|
135
|
-
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" }) {
|
|
136
|
-
const repo = this.get_repo();
|
|
137
|
-
const rows = yield repo.query(`
|
|
138
|
-
WITH scheduled_status AS (
|
|
139
|
-
SELECT id FROM multisig.crypto_commitment_statuses WHERE status = 'scheduled'
|
|
140
|
-
),
|
|
141
|
-
candidates AS (
|
|
142
|
-
SELECT cj.id
|
|
143
|
-
FROM accounting.claim_jobs cj
|
|
144
|
-
JOIN multisig.crypto_withdrawal_commitment cwc ON cwc.request_id = cj.request_id
|
|
145
|
-
JOIN scheduled_status ss ON cwc.status_id = ss.id
|
|
146
|
-
WHERE cj.job_status = 'queued'
|
|
147
|
-
AND cj.has_timelock = true
|
|
148
|
-
AND (cj.lock_expires_at IS NULL OR cj.lock_expires_at < now())
|
|
149
|
-
AND cj.retry_count < $6
|
|
150
|
-
AND cwc.execute_at < now()
|
|
151
|
-
ORDER BY cj.blockchain, cj.chain_id ASC
|
|
152
|
-
LIMIT $1
|
|
153
|
-
FOR UPDATE SKIP LOCKED
|
|
154
|
-
),
|
|
155
|
-
updated AS (
|
|
156
|
-
UPDATE accounting.claim_jobs cj
|
|
157
|
-
SET
|
|
158
|
-
job_status = 'processing',
|
|
159
|
-
locked_at = now(),
|
|
160
|
-
lock_expires_at = now() + ($2 || ' seconds')::interval,
|
|
161
|
-
batch_group_id = $3,
|
|
162
|
-
metadata = jsonb_set(
|
|
163
|
-
jsonb_set(
|
|
164
|
-
coalesce(cj.metadata, '{}'::jsonb),
|
|
165
|
-
'{lock_owner}', to_jsonb($4::text)
|
|
166
|
-
),
|
|
167
|
-
'{lock_reason}', to_jsonb($5::text)
|
|
168
|
-
),
|
|
169
|
-
updated_at = now()
|
|
170
|
-
FROM candidates c
|
|
171
|
-
WHERE cj.id = c.id
|
|
172
|
-
RETURNING cj.*
|
|
173
|
-
)
|
|
174
|
-
SELECT
|
|
175
|
-
u.*,
|
|
176
|
-
cwc.commitment_hash,
|
|
177
|
-
cwc.execute_at,
|
|
178
|
-
(
|
|
179
|
-
SELECT COALESCE(json_agg(json_build_object(
|
|
180
|
-
'name', COALESCE(cr.role_alias, ''),
|
|
181
|
-
'signerAddress', cs.signer_address,
|
|
182
|
-
'contractAddress', cs.contract_address,
|
|
183
|
-
'createdAt', cs.created_at,
|
|
184
|
-
'updatedAt', cs.updated_at,
|
|
185
|
-
'operationType', cs.operation_type,
|
|
186
|
-
'v', cs.v,
|
|
187
|
-
'r', cs.r,
|
|
188
|
-
's', cs.s
|
|
189
|
-
)), '[]'::json)
|
|
190
|
-
FROM multisig.crypto_signatures cs
|
|
191
|
-
LEFT JOIN multisig.crypto_escrow_roles cer
|
|
192
|
-
ON LOWER(cer.wallet_address) = LOWER(cs.signer_address)
|
|
193
|
-
AND LOWER(cer.blockchain) = LOWER(cs.blockchain)
|
|
194
|
-
AND cer.chain_id = cs.chain_id
|
|
195
|
-
AND LOWER(cer.contract_address) = LOWER(cs.contract_address)
|
|
196
|
-
LEFT JOIN multisig.crypto_role cr ON cr.id = cer.role_id
|
|
197
|
-
WHERE cs.reference_id = u.request_id
|
|
198
|
-
) AS multisig_signatures
|
|
199
|
-
FROM updated u
|
|
200
|
-
LEFT JOIN multisig.crypto_withdrawal_commitment cwc ON cwc.request_id = u.request_id;
|
|
201
|
-
`, [limit, job_ttl_s, (0, uuid_1.v4)(), lock_metadata.lock_owner, lock_metadata.lock_reason, max_retry_count]);
|
|
202
|
-
return rows;
|
|
72
|
+
UPDATE accounting.claim_jobs cj
|
|
73
|
+
SET
|
|
74
|
+
job_status = 'processing',
|
|
75
|
+
locked_at = now(),
|
|
76
|
+
lock_expires_at = now() + ($2 || ' seconds')::interval,
|
|
77
|
+
batch_group_id = $3,
|
|
78
|
+
metadata = jsonb_set(
|
|
79
|
+
jsonb_set(
|
|
80
|
+
coalesce(cj.metadata, '{}'::jsonb),
|
|
81
|
+
'{lock_owner}',
|
|
82
|
+
to_jsonb($4::text)
|
|
83
|
+
),
|
|
84
|
+
'{lock_reason}',
|
|
85
|
+
to_jsonb($5::text)
|
|
86
|
+
),
|
|
87
|
+
updated_at = now()
|
|
88
|
+
FROM candidates c
|
|
89
|
+
WHERE cj.id = c.id
|
|
90
|
+
RETURNING cj.*;
|
|
91
|
+
`, [limit, ttlSeconds, batchGroupId, lock_metadata.lock_owner, lock_metadata.lock_reason]);
|
|
92
|
+
return rows[0];
|
|
203
93
|
});
|
|
204
94
|
this.requeue_expired_jobs = (current_status, ttl_seconds, limit, lock_owner, lock_reason, max_retries) => __awaiter(this, void 0, void 0, function* () {
|
|
205
95
|
const rows = yield this.get_repo().query(`
|
|
@@ -510,7 +400,6 @@ class ClaimJobsService {
|
|
|
510
400
|
entity.token = payload.token;
|
|
511
401
|
entity.decimals = payload.decimals;
|
|
512
402
|
entity.job_status = "queued";
|
|
513
|
-
entity.has_timelock = payload.has_timelock;
|
|
514
403
|
return entity;
|
|
515
404
|
};
|
|
516
405
|
this.dbPool = dbPool;
|
|
@@ -21,9 +21,9 @@ WHERE job_status IN ('pending', 'queued');
|
|
|
21
21
|
*/
|
|
22
22
|
createSweepJob(userId: number, blockchain: string, chainId: string, address: string, parentIndex: number, childIndex: number, token: string, decimals: number, balance: bigint): Promise<SweepJob>;
|
|
23
23
|
markBatchComplete(sweepResults: SweepResult[]): Promise<void>;
|
|
24
|
-
findAndLockQueuedBatchJobs(blockchain: BlockchainType, limit: number | undefined, lock_owner: string, lock_expiry_duration_min?: number): Promise<SweepJob[]>;
|
|
25
|
-
findAndLockQueuedJobs(blockchain: BlockchainType, limit: number | undefined, lock_owner: string, lock_expiry_duration_min?: number): Promise<SweepJob[]>;
|
|
26
|
-
findAndLockPendingJobs(blockchain: BlockchainType, lock_owner: string, lock_interval_mins?: number, limit?: number): Promise<SweepJob[]>;
|
|
24
|
+
findAndLockQueuedBatchJobs(blockchain: BlockchainType, limit: number | undefined, lock_owner: string, lock_expiry_duration_min?: number, max_retries?: number): Promise<SweepJob[]>;
|
|
25
|
+
findAndLockQueuedJobs(blockchain: BlockchainType, limit: number | undefined, lock_owner: string, lock_expiry_duration_min?: number, max_retries?: number): Promise<SweepJob[]>;
|
|
26
|
+
findAndLockPendingJobs(blockchain: BlockchainType, lock_owner: string, lock_interval_mins?: number, limit?: number, max_retries?: number): Promise<SweepJob[]>;
|
|
27
27
|
createSweepJobDeprec(userId: number, blockchain: string, chainId: string, address: string, parentIndex: number, childIndex: number, token: string, decimals: number, balance: bigint): Promise<SweepJob>;
|
|
28
28
|
dispatchAddSweepJobWithBalanceCheck(wallet_id: number, blockchain: BlockchainType, user_id: number, address: string, parentIndex: number, childIndex: number, is_full_sweep: boolean): Promise<void>;
|
|
29
29
|
batchCreateSweepJob(user_id: number, address: string, parent_index: number, child_index: number, need_sweep: DepositWalletBalance[]): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SweepJobService.d.ts","sourceRoot":"","sources":["../../src/services/SweepJobService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAI/E,cAAM,eAAe;IACjB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAS;gBACX,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO;IAMlD,OAAO,CAAC,OAAO;IAOT,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAK,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAgCjI;;;;;OAKG;IAEG,cAAc,CAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC;IA8Dd,iBAAiB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmE7D,0BAA0B,CAC5B,UAAU,EAAE,cAAc,EAC1B,KAAK,EAAE,MAAM,YAAM,EACnB,UAAU,EAAE,MAAM,EAClB,wBAAwB,GAAE,MAAW,
|
|
1
|
+
{"version":3,"file":"SweepJobService.d.ts","sourceRoot":"","sources":["../../src/services/SweepJobService.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,8 +222,9 @@ class SweepJobService {
|
|
|
222
222
|
const repo = this.getRepo();
|
|
223
223
|
yield repo.query(`
|
|
224
224
|
UPDATE usersmanagement.sweep_jobs
|
|
225
|
-
SET
|
|
225
|
+
SET
|
|
226
226
|
job_status = $1,
|
|
227
|
+
retry_count = retry_count + 1,
|
|
227
228
|
updated_at = now()
|
|
228
229
|
WHERE id = ANY($2::bigint[])
|
|
229
230
|
`, [
|
|
@@ -241,6 +242,7 @@ class SweepJobService {
|
|
|
241
242
|
SET
|
|
242
243
|
job_status = $1,
|
|
243
244
|
error_message = data.error_message,
|
|
245
|
+
retry_count = j.retry_count + 1,
|
|
244
246
|
updated_at = now()
|
|
245
247
|
FROM (
|
|
246
248
|
SELECT
|
|
@@ -459,7 +461,7 @@ WHERE job_status IN ('pending', 'queued');
|
|
|
459
461
|
}
|
|
460
462
|
// Get batch of jobs for low priority sweeps (midnight worker)
|
|
461
463
|
findAndLockQueuedBatchJobs(blockchain_1) {
|
|
462
|
-
return __awaiter(this, arguments, void 0, function* (blockchain, limit = 100, lock_owner, lock_expiry_duration_min = 30) {
|
|
464
|
+
return __awaiter(this, arguments, void 0, function* (blockchain, limit = 100, lock_owner, lock_expiry_duration_min = 30, max_retries = 5) {
|
|
463
465
|
const repo = this.getRepo();
|
|
464
466
|
const rows = yield repo.query(`
|
|
465
467
|
WITH locked AS (
|
|
@@ -468,6 +470,7 @@ WHERE job_status IN ('pending', 'queued');
|
|
|
468
470
|
WHERE job_status = 'queued'
|
|
469
471
|
AND blockchain = $1
|
|
470
472
|
AND sweep_before IS NULL
|
|
473
|
+
AND retry_count < $5
|
|
471
474
|
AND (locked_at IS NULL OR lock_expires_at < now())
|
|
472
475
|
ORDER BY created_at ASC
|
|
473
476
|
LIMIT $2
|
|
@@ -482,13 +485,13 @@ WHERE job_status IN ('pending', 'queued');
|
|
|
482
485
|
FROM locked
|
|
483
486
|
WHERE j.id = locked.id
|
|
484
487
|
RETURNING j.*;
|
|
485
|
-
`, [blockchain, limit, lock_owner, lock_expiry_duration_min]);
|
|
488
|
+
`, [blockchain, limit, lock_owner, lock_expiry_duration_min, max_retries]);
|
|
486
489
|
return rows[0];
|
|
487
490
|
});
|
|
488
491
|
}
|
|
489
492
|
// Pull jobs ready for transfer by sweep worker
|
|
490
493
|
findAndLockQueuedJobs(blockchain_1) {
|
|
491
|
-
return __awaiter(this, arguments, void 0, function* (blockchain, limit = 100, lock_owner, lock_expiry_duration_min = 5) {
|
|
494
|
+
return __awaiter(this, arguments, void 0, function* (blockchain, limit = 100, lock_owner, lock_expiry_duration_min = 5, max_retries = 5) {
|
|
492
495
|
const repo = this.getRepo();
|
|
493
496
|
const rows = yield repo.query(`
|
|
494
497
|
WITH locked AS (
|
|
@@ -497,6 +500,7 @@ WHERE job_status IN ('pending', 'queued');
|
|
|
497
500
|
WHERE job_status = 'queued'
|
|
498
501
|
AND blockchain = $1
|
|
499
502
|
AND sweep_before <= now()
|
|
503
|
+
AND retry_count < $5
|
|
500
504
|
AND (locked_at IS NULL OR lock_expires_at < now())
|
|
501
505
|
ORDER BY sweep_before ASC
|
|
502
506
|
LIMIT $2
|
|
@@ -510,13 +514,13 @@ WHERE job_status IN ('pending', 'queued');
|
|
|
510
514
|
FROM locked
|
|
511
515
|
WHERE j.id = locked.id
|
|
512
516
|
RETURNING j.*;
|
|
513
|
-
`, [blockchain, limit, lock_owner, lock_expiry_duration_min]);
|
|
517
|
+
`, [blockchain, limit, lock_owner, lock_expiry_duration_min, max_retries]);
|
|
514
518
|
return rows[0];
|
|
515
519
|
});
|
|
516
520
|
}
|
|
517
521
|
// Pull jobs to ensure enough gas cost by funding worker
|
|
518
522
|
findAndLockPendingJobs(blockchain_1, lock_owner_1) {
|
|
519
|
-
return __awaiter(this, arguments, void 0, function* (blockchain, lock_owner, lock_interval_mins = 5, limit = 100) {
|
|
523
|
+
return __awaiter(this, arguments, void 0, function* (blockchain, lock_owner, lock_interval_mins = 5, limit = 100, max_retries = 5) {
|
|
520
524
|
const repo = this.getRepo();
|
|
521
525
|
const rows = yield repo.query(`
|
|
522
526
|
WITH locked AS (
|
|
@@ -524,6 +528,7 @@ WHERE job_status IN ('pending', 'queued');
|
|
|
524
528
|
FROM usersmanagement.sweep_jobs
|
|
525
529
|
WHERE job_status = 'pending'
|
|
526
530
|
AND blockchain = $1
|
|
531
|
+
AND retry_count < $5
|
|
527
532
|
AND (locked_at IS NULL OR lock_expires_at < now())
|
|
528
533
|
ORDER BY created_at
|
|
529
534
|
LIMIT $2
|
|
@@ -536,7 +541,7 @@ WHERE job_status IN ('pending', 'queued');
|
|
|
536
541
|
FROM locked
|
|
537
542
|
WHERE j.id = locked.id
|
|
538
543
|
RETURNING j.*;
|
|
539
|
-
`, [blockchain, limit, lock_owner, lock_interval_mins]);
|
|
544
|
+
`, [blockchain, limit, lock_owner, lock_interval_mins, max_retries]);
|
|
540
545
|
return rows[0];
|
|
541
546
|
});
|
|
542
547
|
}
|
|
@@ -46,9 +46,9 @@ declare class ContractRolesService {
|
|
|
46
46
|
*/
|
|
47
47
|
static get_role_operation_types(pool: Pool, role_id: number): Promise<RoleOperationType[]>;
|
|
48
48
|
/** Records an on-chain role grant for a wallet on an escrow contract. `confirmed` indicates whether the tx was finalised. */
|
|
49
|
-
static fn_grant_escrow_role(pool: Pool, blockchain: BlockchainType, chain_id: ChainId, contract_address: string, wallet_address: string, role_hash: string,
|
|
49
|
+
static fn_grant_escrow_role(pool: Pool, blockchain: BlockchainType, chain_id: ChainId, contract_address: string, wallet_address: string, role_hash: string, confirmed: boolean, p_caller: string, p_sender: string, p_tx_hash: string, p_timestamp: number, p_block_number: number, gas_used: number): Promise<any[]>;
|
|
50
50
|
/** Records an on-chain role revocation for a wallet on an escrow contract. `confirmed` indicates whether the tx was finalised. */
|
|
51
|
-
static fn_revoke_escrow_role(pool: Pool, blockchain: BlockchainType, chain_id: ChainId, contract_address: string, wallet_address: string, role_hash: string,
|
|
51
|
+
static fn_revoke_escrow_role(pool: Pool, blockchain: BlockchainType, chain_id: ChainId, contract_address: string, wallet_address: string, role_hash: string, confirmed: boolean, p_caller: string, p_sender: string, p_tx_hash: string, p_timestamp: number, p_block_number: number, gas_used: number): Promise<any[]>;
|
|
52
52
|
}
|
|
53
53
|
export default ContractRolesService;
|
|
54
54
|
//# sourceMappingURL=ContractRoles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractRoles.d.ts","sourceRoot":"","sources":["../../../../src/services/db/roles/ContractRoles.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ContractRoles.d.ts","sourceRoot":"","sources":["../../../../src/services/db/roles/ContractRoles.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,cAAM,oBAAoB;IAEtB;;;;OAIG;WACU,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAU3D;;;;;OAKG;WACU,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAW1E;;;;OAIG;WACU,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAahG,6HAA6H;WAChH,oBAAoB,CAC7B,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EACtC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAC3C,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EACzC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EACpC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EACnC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAC3C,QAAQ,EAAE,MAAM;IAYpB,kIAAkI;WACrH,qBAAqB,CAC9B,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EACtC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAC3C,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EACzC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EACpC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EACnC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAC3C,QAAQ,EAAE,MAAM;CAavB;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -26,7 +26,7 @@ class ContractRolesService {
|
|
|
26
26
|
`);
|
|
27
27
|
if (!result)
|
|
28
28
|
throw new Error(`DB FN error: multisig.fn_get_roles()`);
|
|
29
|
-
return result.rows
|
|
29
|
+
return result.rows;
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
@@ -40,9 +40,7 @@ class ContractRolesService {
|
|
|
40
40
|
const result = yield pool.query(`
|
|
41
41
|
SELECT multisig.fn_get_all_operation_types()
|
|
42
42
|
`);
|
|
43
|
-
|
|
44
|
-
throw new Error(`DB FN Error: multisig.fn_get_all_operation_types`);
|
|
45
|
-
return result.rows[0].fn_get_all_operation_types;
|
|
43
|
+
return result.rows;
|
|
46
44
|
});
|
|
47
45
|
}
|
|
48
46
|
/**
|
|
@@ -55,31 +53,27 @@ class ContractRolesService {
|
|
|
55
53
|
const result = yield pool.query(`
|
|
56
54
|
SELECT multisig.fn_get_role_operation_types($1::bigint)
|
|
57
55
|
`, [role_id]);
|
|
58
|
-
if (!result
|
|
56
|
+
if (!result)
|
|
59
57
|
throw new Error(`DB FN error: multisig.gn_get_role_operation_types()`);
|
|
60
|
-
return result.rows
|
|
58
|
+
return result.rows;
|
|
61
59
|
});
|
|
62
60
|
}
|
|
63
61
|
/** Records an on-chain role grant for a wallet on an escrow contract. `confirmed` indicates whether the tx was finalised. */
|
|
64
|
-
static fn_grant_escrow_role(pool, blockchain, chain_id, contract_address, wallet_address, role_hash,
|
|
62
|
+
static fn_grant_escrow_role(pool, blockchain, chain_id, contract_address, wallet_address, role_hash, confirmed, p_caller, p_sender, p_tx_hash, p_timestamp, p_block_number, gas_used) {
|
|
65
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
64
|
const result = yield pool.query(`
|
|
67
|
-
SELECT multisig.fn_grant_escrow_role($1::text,$2::text,$3::text,$4::text,$5::text,$6::
|
|
68
|
-
`, [blockchain, chain_id, contract_address, wallet_address, role_hash,
|
|
69
|
-
|
|
70
|
-
throw new Error(`DB FN Error: multisig.fn_grant_escrow_role`);
|
|
71
|
-
return result.rows[0].fn_grant_escrow_role;
|
|
65
|
+
SELECT multisig.fn_grant_escrow_role($1::text,$2::text,$3::text,$4::text,$5::text,$6::boolean,$7::text,$8::text,$9::text,$10::bigint,$11::bigint,$12::numeric)
|
|
66
|
+
`, [blockchain, chain_id, contract_address, wallet_address, role_hash, confirmed, p_caller, p_sender, p_tx_hash, p_timestamp, p_block_number, gas_used]);
|
|
67
|
+
return result.rows;
|
|
72
68
|
});
|
|
73
69
|
}
|
|
74
70
|
/** Records an on-chain role revocation for a wallet on an escrow contract. `confirmed` indicates whether the tx was finalised. */
|
|
75
|
-
static fn_revoke_escrow_role(pool, blockchain, chain_id, contract_address, wallet_address, role_hash,
|
|
71
|
+
static fn_revoke_escrow_role(pool, blockchain, chain_id, contract_address, wallet_address, role_hash, confirmed, p_caller, p_sender, p_tx_hash, p_timestamp, p_block_number, gas_used) {
|
|
76
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
77
73
|
const result = yield pool.query(`
|
|
78
|
-
SELECT multisig.fn_revoke_escrow_role($1::text,$2::text,$3::text,$4::text,$5::text,$6::
|
|
79
|
-
`, [blockchain, chain_id, contract_address, wallet_address, role_hash,
|
|
80
|
-
|
|
81
|
-
throw new Error(`DB FN Error: multisig.fn_revoke_escrow_role`);
|
|
82
|
-
return result.rows[0].fn_revoke_escrow_role;
|
|
74
|
+
SELECT multisig.fn_revoke_escrow_role($1::text,$2::text,$3::text,$4::text,$5::text,$6::boolean,$7::text,$8::text,$9::text,$10::bigint,$11::bigint,$12::numeric)
|
|
75
|
+
`, [blockchain, chain_id, contract_address, wallet_address, role_hash, confirmed, p_caller, p_sender, p_tx_hash, p_timestamp, p_block_number, gas_used]);
|
|
76
|
+
return result.rows;
|
|
83
77
|
});
|
|
84
78
|
}
|
|
85
79
|
}
|
|
@@ -7,7 +7,7 @@ export interface HeadersMap {
|
|
|
7
7
|
export interface AlchemyResponse<T> {
|
|
8
8
|
data: T;
|
|
9
9
|
}
|
|
10
|
-
export type AlchemyWebhookNetwork = "SOLANA_MAINNET" | "SOLANA_DEVNET" | "ETH_MAINNET" | "ETH_SEPOLIA" | "ETH_HOLESKY" | "ARBMAINNET" | "ARBSEPOLIA" | "ARBNOVA_MAINNET" | "MATIC_MAINNET" | "MATIC_AMOY" | "OPTMAINNET" | "OPTGOERLI" | "BASE_MAINNET" | "BASE_SEPOLIA" | "ZKSYNC_MAINNET" | "ZKSYNC_SEPOLIA" | "LINEA_MAINNET" | "LINEA_SEPOLIA" | "GNOSIS_MAINNET" | "GNOSIS_CHIADO" | "FANTOM_MAINNET" | "FANTOM_TESTNET" | "METIS_MAINNET" | "BLAST_MAINNET" | "BLAST_SEPOLIA" | "SHAPE_MAINNET" | "SHAPE_SEPOLIA" | "ZETACHAIN_MAINNET" | "ZETACHAIN_TESTNET" | "WORLDCHAIN_MAINNET" | "WORLDCHAIN_SEPOLIA" | "BNB_MAINNET" | "BNB_TESTNET" | "AVAX_MAINNET" | "AVAX_FUJI" | "SONEIUM_MAINNET" | "SONEIUM_MINATO" | "GEIST_POLTER" | "GEIST_MAINNET" | "STARKNET_MAINNET" | "STARKNET_SEPOLIA" | "STARKNET_GOERLI" | "INK_MAINNET" | "INK_SEPOLIA" | "ROOTSTOCK_MAINNET" | "ROOTSTOCK_TESTNET" | "SCROLL_MAINNET" | "SCROLL_SEPOLIA" | "MONAD_TESTNET" | "MONAD_MAINNET" | "SONIC_MAINNET" | "SONIC_TESTNET" | "SETTLUS_SEPTESTNET" | "APECHAIN_MAINNET" | "APECHAIN_CURTIS";
|
|
10
|
+
export type AlchemyWebhookNetwork = "SOLANA_MAINNET" | "SOLANA_DEVNET" | "ETH_MAINNET" | "ETH_SEPOLIA" | "ETH_HOLESKY" | "ARBMAINNET" | "ARBSEPOLIA" | "ARBNOVA_MAINNET" | "POLYGON_AMOY" | "POLYGON_MAINNET" | "MATIC_MAINNET" | "MATIC_AMOY" | "OPTMAINNET" | "OPTGOERLI" | "BASE_MAINNET" | "BASE_SEPOLIA" | "ZKSYNC_MAINNET" | "ZKSYNC_SEPOLIA" | "LINEA_MAINNET" | "LINEA_SEPOLIA" | "GNOSIS_MAINNET" | "GNOSIS_CHIADO" | "FANTOM_MAINNET" | "FANTOM_TESTNET" | "METIS_MAINNET" | "BLAST_MAINNET" | "BLAST_SEPOLIA" | "SHAPE_MAINNET" | "SHAPE_SEPOLIA" | "ZETACHAIN_MAINNET" | "ZETACHAIN_TESTNET" | "WORLDCHAIN_MAINNET" | "WORLDCHAIN_SEPOLIA" | "BNB_MAINNET" | "BNB_TESTNET" | "AVAX_MAINNET" | "AVAX_FUJI" | "SONEIUM_MAINNET" | "SONEIUM_MINATO" | "GEIST_POLTER" | "GEIST_MAINNET" | "STARKNET_MAINNET" | "STARKNET_SEPOLIA" | "STARKNET_GOERLI" | "INK_MAINNET" | "INK_SEPOLIA" | "ROOTSTOCK_MAINNET" | "ROOTSTOCK_TESTNET" | "SCROLL_MAINNET" | "SCROLL_SEPOLIA" | "MONAD_TESTNET" | "MONAD_MAINNET" | "SONIC_MAINNET" | "SONIC_TESTNET" | "SETTLUS_SEPTESTNET" | "APECHAIN_MAINNET" | "APECHAIN_CURTIS";
|
|
11
11
|
export type AlchemyWebhookType = "GRAPHQL" | "MINED_TRANSACTION" | "DROPPED_TRANSACTION" | "ADDRESS_ACTIVITY" | "NFT_ACTIVITY" | "NFT_METADATA_UPDATE";
|
|
12
12
|
export interface WebhookData {
|
|
13
13
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alchemy.d.ts","sourceRoot":"","sources":["../../../src/services/types/alchemy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alchemy.d.ts","sourceRoot":"","sources":["../../../src/services/types/alchemy.ts"],"names":[],"mappings":"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"}
|