@pushchain/core 5.1.5-alpha.1 → 5.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/package.json +1 -1
- package/src/lib/constants/abi/index.d.ts +2 -0
- package/src/lib/constants/abi/index.js +6 -1
- package/src/lib/constants/abi/uniswap-v3-router.evm.d.ts +58 -0
- package/src/lib/constants/abi/uniswap-v3-router.evm.js +41 -0
- package/src/lib/constants/abi/wpc.evm.d.ts +24 -0
- package/src/lib/constants/abi/wpc.evm.js +27 -0
- package/src/lib/constants/chain.d.ts +1 -0
- package/src/lib/constants/chain.js +8 -6
- package/src/lib/constants/tokens.js +3 -3
- package/src/lib/generated/uexecutor/v2/types.d.ts +14 -0
- package/src/lib/generated/uexecutor/v2/types.js +96 -3
- package/src/lib/orchestrator/internals/cascade.d.ts +1 -1
- package/src/lib/orchestrator/internals/cascade.js +521 -239
- package/src/lib/orchestrator/internals/confirmation.js +60 -15
- package/src/lib/orchestrator/internals/context.d.ts +23 -0
- package/src/lib/orchestrator/internals/context.js +54 -0
- package/src/lib/orchestrator/internals/execute-funds-only.js +47 -21
- package/src/lib/orchestrator/internals/execute-funds-payload.js +53 -31
- package/src/lib/orchestrator/internals/execute-standard.js +137 -26
- package/src/lib/orchestrator/internals/gas-calculator.d.ts +5 -2
- package/src/lib/orchestrator/internals/gas-calculator.js +59 -11
- package/src/lib/orchestrator/internals/gas-usd-sizer.d.ts +53 -0
- package/src/lib/orchestrator/internals/gas-usd-sizer.js +165 -0
- package/src/lib/orchestrator/internals/helpers.js +2 -0
- package/src/lib/orchestrator/internals/inbound-tracker.d.ts +83 -0
- package/src/lib/orchestrator/internals/inbound-tracker.js +322 -0
- package/src/lib/orchestrator/internals/index.d.ts +3 -1
- package/src/lib/orchestrator/internals/index.js +8 -2
- package/src/lib/orchestrator/internals/outbound-sync.d.ts +32 -1
- package/src/lib/orchestrator/internals/outbound-sync.js +154 -17
- package/src/lib/orchestrator/internals/pc-usd-oracle.d.ts +28 -0
- package/src/lib/orchestrator/internals/pc-usd-oracle.js +285 -0
- package/src/lib/orchestrator/internals/progress-route-hooks.d.ts +23 -0
- package/src/lib/orchestrator/internals/progress-route-hooks.js +72 -0
- package/src/lib/orchestrator/internals/push-chain-tx.d.ts +27 -1
- package/src/lib/orchestrator/internals/push-chain-tx.js +111 -15
- package/src/lib/orchestrator/internals/rescue.js +1 -1
- package/src/lib/orchestrator/internals/response-builder.d.ts +5 -0
- package/src/lib/orchestrator/internals/response-builder.js +242 -66
- package/src/lib/orchestrator/internals/route-handlers.js +480 -206
- package/src/lib/orchestrator/internals/tx-transformer.js +293 -35
- package/src/lib/orchestrator/orchestrator.d.ts +7 -1
- package/src/lib/orchestrator/orchestrator.js +108 -56
- package/src/lib/orchestrator/orchestrator.types.d.ts +111 -5
- package/src/lib/orchestrator/payload-builders.d.ts +16 -0
- package/src/lib/orchestrator/payload-builders.js +6 -5
- package/src/lib/orchestrator/route-detector.js +20 -8
- package/src/lib/orchestrator/svm-idl/normalize-address.d.ts +19 -0
- package/src/lib/orchestrator/svm-idl/normalize-address.js +56 -0
- package/src/lib/orchestrator/svm-idl/registry.d.ts +13 -4
- package/src/lib/orchestrator/svm-idl/registry.js +15 -14
- package/src/lib/orchestrator/svm-idl/resolve.js +5 -2
- package/src/lib/progress-hook/progress-hook.d.ts +28 -0
- package/src/lib/progress-hook/progress-hook.js +545 -131
- package/src/lib/progress-hook/progress-hook.types.d.ts +76 -29
- package/src/lib/progress-hook/progress-hook.types.js +74 -35
- package/src/lib/push-client/push-client.d.ts +7 -0
- package/src/lib/push-client/push-client.js +18 -1
- package/src/lib/universal-tx-detector/__tests__/fixtures/builders.d.ts +32 -0
- package/src/lib/universal-tx-detector/__tests__/fixtures/builders.js +65 -0
- package/src/lib/universal-tx-detector/__tests__/fixtures/scenarios.d.ts +72 -0
- package/src/lib/universal-tx-detector/__tests__/fixtures/scenarios.js +669 -0
- package/src/lib/universal-tx-detector/auto-detect.d.ts +37 -0
- package/src/lib/universal-tx-detector/auto-detect.js +112 -0
- package/src/lib/universal-tx-detector/cascade.d.ts +64 -0
- package/src/lib/universal-tx-detector/cascade.js +254 -0
- package/src/lib/universal-tx-detector/child-inbounds.d.ts +58 -0
- package/src/lib/universal-tx-detector/child-inbounds.js +145 -0
- package/src/lib/universal-tx-detector/classify.d.ts +33 -0
- package/src/lib/universal-tx-detector/classify.js +228 -0
- package/src/lib/universal-tx-detector/detector-svm.d.ts +46 -0
- package/src/lib/universal-tx-detector/detector-svm.js +324 -0
- package/src/lib/universal-tx-detector/detector.d.ts +13 -0
- package/src/lib/universal-tx-detector/detector.js +233 -0
- package/src/lib/universal-tx-detector/events.d.ts +765 -0
- package/src/lib/universal-tx-detector/events.js +241 -0
- package/src/lib/universal-tx-detector/index.d.ts +18 -0
- package/src/lib/universal-tx-detector/index.js +36 -0
- package/src/lib/universal-tx-detector/svm-events.d.ts +41 -0
- package/src/lib/universal-tx-detector/svm-events.js +68 -0
- package/src/lib/universal-tx-detector/types.d.ts +100 -0
- package/src/lib/universal-tx-detector/types.js +3 -0
- package/src/lib/utils.d.ts +30 -13
- package/src/lib/utils.js +47 -21
|
@@ -7,40 +7,82 @@ export type ProgressEvent = {
|
|
|
7
7
|
id: string;
|
|
8
8
|
title: string;
|
|
9
9
|
message: string;
|
|
10
|
-
level: 'INFO' | 'SUCCESS' | '
|
|
11
|
-
response:
|
|
10
|
+
level: 'INFO' | 'SUCCESS' | 'ERROR';
|
|
11
|
+
response: object | null;
|
|
12
12
|
timestamp: string;
|
|
13
13
|
};
|
|
14
14
|
export type ProgressEventFunction = (...args: any[]) => ProgressEvent;
|
|
15
15
|
export type ProgressEventFunctionWithoutTimestamp = (...args: any[]) => Omit<ProgressEvent, 'timestamp'>;
|
|
16
16
|
export declare enum PROGRESS_HOOK {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
17
|
+
SEND_TX_101 = "SEND-TX-101",
|
|
18
|
+
SEND_TX_102_01 = "SEND-TX-102-01",
|
|
19
|
+
SEND_TX_102_02 = "SEND-TX-102-02",
|
|
20
|
+
SEND_TX_103_01 = "SEND-TX-103-01",
|
|
21
|
+
SEND_TX_103_02 = "SEND-TX-103-02",
|
|
22
|
+
SEND_TX_104_01 = "SEND-TX-104-01",// fee-lock path only
|
|
23
|
+
SEND_TX_104_02 = "SEND-TX-104-02",// signature path only
|
|
24
|
+
SEND_TX_104_03 = "SEND-TX-104-03",
|
|
25
|
+
SEND_TX_104_04 = "SEND-TX-104-04",
|
|
26
|
+
SEND_TX_105_01 = "SEND-TX-105-01",
|
|
27
|
+
SEND_TX_105_02 = "SEND-TX-105-02",
|
|
28
|
+
SEND_TX_106_01 = "SEND-TX-106-01",
|
|
29
|
+
SEND_TX_106_02 = "SEND-TX-106-02",
|
|
30
|
+
SEND_TX_106_03 = "SEND-TX-106-03",
|
|
31
|
+
SEND_TX_106_03_01 = "SEND-TX-106-03-01",
|
|
32
|
+
SEND_TX_106_03_02 = "SEND-TX-106-03-02",
|
|
33
|
+
SEND_TX_106_04 = "SEND-TX-106-04",
|
|
34
|
+
SEND_TX_106_05 = "SEND-TX-106-05",
|
|
35
|
+
SEND_TX_106_06 = "SEND-TX-106-06",
|
|
36
|
+
SEND_TX_106_07_01 = "SEND-TX-106-07-01",// R1 Sizer: Case A (push-gas < $1, padded to $1 floor)
|
|
37
|
+
SEND_TX_106_07_02 = "SEND-TX-106-07-02",// R1 Sizer: Case B (push-gas $1–$10, pass-through)
|
|
38
|
+
SEND_TX_106_07_03 = "SEND-TX-106-07-03",// R1 Sizer: Case C (push-gas > $10, pass-through to contract cap)
|
|
39
|
+
SEND_TX_107 = "SEND-TX-107",
|
|
40
|
+
SEND_TX_199_01 = "SEND-TX-199-01",// R1 terminal Push success
|
|
41
|
+
SEND_TX_199_02 = "SEND-TX-199-02",// R1 terminal Push failure
|
|
42
|
+
SEND_TX_199_99_99 = "SEND-TX-199-99-99",// R3 intermediate Push success
|
|
43
|
+
SEND_TX_201 = "SEND-TX-201",
|
|
44
|
+
SEND_TX_202_01 = "SEND-TX-202-01",
|
|
45
|
+
SEND_TX_202_02 = "SEND-TX-202-02",
|
|
46
|
+
SEND_TX_203_01 = "SEND-TX-203-01",
|
|
47
|
+
SEND_TX_203_02 = "SEND-TX-203-02",
|
|
48
|
+
SEND_TX_204_01 = "SEND-TX-204-01",
|
|
49
|
+
SEND_TX_204_02 = "SEND-TX-204-02",
|
|
50
|
+
SEND_TX_204_03 = "SEND-TX-204-03",
|
|
51
|
+
SEND_TX_204_04 = "SEND-TX-204-04",
|
|
52
|
+
SEND_TX_207 = "SEND-TX-207",
|
|
53
|
+
SEND_TX_209_01 = "SEND-TX-209-01",
|
|
54
|
+
SEND_TX_209_02 = "SEND-TX-209-02",
|
|
55
|
+
SEND_TX_299_01 = "SEND-TX-299-01",// R2 terminal external success
|
|
56
|
+
SEND_TX_299_02 = "SEND-TX-299-02",
|
|
57
|
+
SEND_TX_299_03 = "SEND-TX-299-03",
|
|
58
|
+
SEND_TX_299_99 = "SEND-TX-299-99",// R2 intermediate Push success
|
|
59
|
+
SEND_TX_301 = "SEND-TX-301",
|
|
60
|
+
SEND_TX_302_01 = "SEND-TX-302-01",
|
|
61
|
+
SEND_TX_302_02 = "SEND-TX-302-02",
|
|
62
|
+
SEND_TX_302_03_01 = "SEND-TX-302-03-01",// Sizer: Case A (< $1, padded)
|
|
63
|
+
SEND_TX_302_03_02 = "SEND-TX-302-03-02",// Sizer: Case B ($1–$10, happy path)
|
|
64
|
+
SEND_TX_302_03_03 = "SEND-TX-302-03-03",// Sizer: Case C (> $10, split + overflow bridge)
|
|
65
|
+
SEND_TX_303_01 = "SEND-TX-303-01",
|
|
66
|
+
SEND_TX_303_02 = "SEND-TX-303-02",
|
|
67
|
+
SEND_TX_304_01 = "SEND-TX-304-01",
|
|
68
|
+
SEND_TX_304_02 = "SEND-TX-304-02",
|
|
69
|
+
SEND_TX_304_03 = "SEND-TX-304-03",
|
|
70
|
+
SEND_TX_304_04 = "SEND-TX-304-04",
|
|
71
|
+
SEND_TX_307 = "SEND-TX-307",
|
|
72
|
+
SEND_TX_309_01 = "SEND-TX-309-01",
|
|
73
|
+
SEND_TX_309_02 = "SEND-TX-309-02",
|
|
74
|
+
SEND_TX_309_03 = "SEND-TX-309-03",
|
|
75
|
+
SEND_TX_310_01 = "SEND-TX-310-01",
|
|
76
|
+
SEND_TX_310_02 = "SEND-TX-310-02",
|
|
77
|
+
SEND_TX_399_01 = "SEND-TX-399-01",
|
|
78
|
+
SEND_TX_399_02 = "SEND-TX-399-02",
|
|
79
|
+
SEND_TX_399_03 = "SEND-TX-399-03",
|
|
80
|
+
SEND_TX_001 = "SEND-TX-001",
|
|
81
|
+
SEND_TX_002_01 = "SEND-TX-002-01",
|
|
82
|
+
SEND_TX_002_99_99 = "SEND-TX-002-99-99",
|
|
83
|
+
SEND_TX_999_01 = "SEND-TX-999-01",
|
|
84
|
+
SEND_TX_999_02 = "SEND-TX-999-02",
|
|
85
|
+
SEND_TX_999_03 = "SEND-TX-999-03",
|
|
44
86
|
UEA_MIG_01 = "UEA-MIG-01",
|
|
45
87
|
UEA_MIG_02 = "UEA-MIG-02",
|
|
46
88
|
UEA_MIG_03 = "UEA-MIG-03",
|
|
@@ -48,4 +90,9 @@ export declare enum PROGRESS_HOOK {
|
|
|
48
90
|
UEA_MIG_9902 = "UEA-MIG-9902",
|
|
49
91
|
UEA_MIG_9903 = "UEA-MIG-9903"
|
|
50
92
|
}
|
|
93
|
+
export type PROGRESS_HOOK_R1 = PROGRESS_HOOK.SEND_TX_101 | PROGRESS_HOOK.SEND_TX_102_01 | PROGRESS_HOOK.SEND_TX_102_02 | PROGRESS_HOOK.SEND_TX_103_01 | PROGRESS_HOOK.SEND_TX_103_02 | PROGRESS_HOOK.SEND_TX_104_01 | PROGRESS_HOOK.SEND_TX_104_02 | PROGRESS_HOOK.SEND_TX_104_03 | PROGRESS_HOOK.SEND_TX_104_04 | PROGRESS_HOOK.SEND_TX_105_01 | PROGRESS_HOOK.SEND_TX_105_02 | PROGRESS_HOOK.SEND_TX_106_01 | PROGRESS_HOOK.SEND_TX_106_02 | PROGRESS_HOOK.SEND_TX_106_03 | PROGRESS_HOOK.SEND_TX_106_03_01 | PROGRESS_HOOK.SEND_TX_106_03_02 | PROGRESS_HOOK.SEND_TX_106_04 | PROGRESS_HOOK.SEND_TX_106_05 | PROGRESS_HOOK.SEND_TX_106_06 | PROGRESS_HOOK.SEND_TX_106_07_01 | PROGRESS_HOOK.SEND_TX_106_07_02 | PROGRESS_HOOK.SEND_TX_106_07_03 | PROGRESS_HOOK.SEND_TX_107 | PROGRESS_HOOK.SEND_TX_199_01 | PROGRESS_HOOK.SEND_TX_199_02;
|
|
94
|
+
export type PROGRESS_HOOK_R2 = PROGRESS_HOOK.SEND_TX_201 | PROGRESS_HOOK.SEND_TX_202_01 | PROGRESS_HOOK.SEND_TX_202_02 | PROGRESS_HOOK.SEND_TX_203_01 | PROGRESS_HOOK.SEND_TX_203_02 | PROGRESS_HOOK.SEND_TX_204_01 | PROGRESS_HOOK.SEND_TX_204_02 | PROGRESS_HOOK.SEND_TX_204_03 | PROGRESS_HOOK.SEND_TX_204_04 | PROGRESS_HOOK.SEND_TX_207 | PROGRESS_HOOK.SEND_TX_209_01 | PROGRESS_HOOK.SEND_TX_209_02 | PROGRESS_HOOK.SEND_TX_299_01 | PROGRESS_HOOK.SEND_TX_299_02 | PROGRESS_HOOK.SEND_TX_299_03 | PROGRESS_HOOK.SEND_TX_299_99;
|
|
95
|
+
export type PROGRESS_HOOK_R3 = PROGRESS_HOOK.SEND_TX_199_99_99 | PROGRESS_HOOK.SEND_TX_301 | PROGRESS_HOOK.SEND_TX_302_01 | PROGRESS_HOOK.SEND_TX_302_02 | PROGRESS_HOOK.SEND_TX_302_03_01 | PROGRESS_HOOK.SEND_TX_302_03_02 | PROGRESS_HOOK.SEND_TX_302_03_03 | PROGRESS_HOOK.SEND_TX_303_01 | PROGRESS_HOOK.SEND_TX_303_02 | PROGRESS_HOOK.SEND_TX_304_01 | PROGRESS_HOOK.SEND_TX_304_02 | PROGRESS_HOOK.SEND_TX_304_03 | PROGRESS_HOOK.SEND_TX_304_04 | PROGRESS_HOOK.SEND_TX_307 | PROGRESS_HOOK.SEND_TX_309_01 | PROGRESS_HOOK.SEND_TX_309_02 | PROGRESS_HOOK.SEND_TX_309_03 | PROGRESS_HOOK.SEND_TX_310_01 | PROGRESS_HOOK.SEND_TX_310_02 | PROGRESS_HOOK.SEND_TX_399_01 | PROGRESS_HOOK.SEND_TX_399_02 | PROGRESS_HOOK.SEND_TX_399_03;
|
|
96
|
+
export type PROGRESS_HOOK_MULTICHAIN = PROGRESS_HOOK.SEND_TX_001 | PROGRESS_HOOK.SEND_TX_002_01 | PROGRESS_HOOK.SEND_TX_002_99_99 | PROGRESS_HOOK.SEND_TX_999_01 | PROGRESS_HOOK.SEND_TX_999_02 | PROGRESS_HOOK.SEND_TX_999_03;
|
|
97
|
+
export type PROGRESS_HOOK_MIG = PROGRESS_HOOK.UEA_MIG_01 | PROGRESS_HOOK.UEA_MIG_02 | PROGRESS_HOOK.UEA_MIG_03 | PROGRESS_HOOK.UEA_MIG_9901 | PROGRESS_HOOK.UEA_MIG_9902 | PROGRESS_HOOK.UEA_MIG_9903;
|
|
51
98
|
export {};
|
|
@@ -3,41 +3,80 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PROGRESS_HOOK = void 0;
|
|
4
4
|
var PROGRESS_HOOK;
|
|
5
5
|
(function (PROGRESS_HOOK) {
|
|
6
|
-
//
|
|
7
|
-
PROGRESS_HOOK["
|
|
8
|
-
PROGRESS_HOOK["
|
|
9
|
-
PROGRESS_HOOK["
|
|
10
|
-
PROGRESS_HOOK["
|
|
11
|
-
PROGRESS_HOOK["
|
|
12
|
-
|
|
13
|
-
PROGRESS_HOOK["
|
|
14
|
-
PROGRESS_HOOK["
|
|
15
|
-
PROGRESS_HOOK["
|
|
16
|
-
PROGRESS_HOOK["
|
|
17
|
-
|
|
18
|
-
PROGRESS_HOOK["
|
|
19
|
-
PROGRESS_HOOK["
|
|
20
|
-
|
|
21
|
-
PROGRESS_HOOK["
|
|
22
|
-
PROGRESS_HOOK["
|
|
23
|
-
PROGRESS_HOOK["
|
|
24
|
-
PROGRESS_HOOK["
|
|
25
|
-
PROGRESS_HOOK["
|
|
26
|
-
PROGRESS_HOOK["
|
|
27
|
-
PROGRESS_HOOK["
|
|
28
|
-
PROGRESS_HOOK["
|
|
29
|
-
|
|
30
|
-
PROGRESS_HOOK["
|
|
31
|
-
|
|
32
|
-
PROGRESS_HOOK["
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
PROGRESS_HOOK["
|
|
36
|
-
PROGRESS_HOOK["
|
|
37
|
-
PROGRESS_HOOK["
|
|
38
|
-
PROGRESS_HOOK["
|
|
39
|
-
PROGRESS_HOOK["
|
|
40
|
-
|
|
6
|
+
// Route 1: UOA → Push Chain (101–199)
|
|
7
|
+
PROGRESS_HOOK["SEND_TX_101"] = "SEND-TX-101";
|
|
8
|
+
PROGRESS_HOOK["SEND_TX_102_01"] = "SEND-TX-102-01";
|
|
9
|
+
PROGRESS_HOOK["SEND_TX_102_02"] = "SEND-TX-102-02";
|
|
10
|
+
PROGRESS_HOOK["SEND_TX_103_01"] = "SEND-TX-103-01";
|
|
11
|
+
PROGRESS_HOOK["SEND_TX_103_02"] = "SEND-TX-103-02";
|
|
12
|
+
PROGRESS_HOOK["SEND_TX_104_01"] = "SEND-TX-104-01";
|
|
13
|
+
PROGRESS_HOOK["SEND_TX_104_02"] = "SEND-TX-104-02";
|
|
14
|
+
PROGRESS_HOOK["SEND_TX_104_03"] = "SEND-TX-104-03";
|
|
15
|
+
PROGRESS_HOOK["SEND_TX_104_04"] = "SEND-TX-104-04";
|
|
16
|
+
PROGRESS_HOOK["SEND_TX_105_01"] = "SEND-TX-105-01";
|
|
17
|
+
PROGRESS_HOOK["SEND_TX_105_02"] = "SEND-TX-105-02";
|
|
18
|
+
PROGRESS_HOOK["SEND_TX_106_01"] = "SEND-TX-106-01";
|
|
19
|
+
PROGRESS_HOOK["SEND_TX_106_02"] = "SEND-TX-106-02";
|
|
20
|
+
PROGRESS_HOOK["SEND_TX_106_03"] = "SEND-TX-106-03";
|
|
21
|
+
PROGRESS_HOOK["SEND_TX_106_03_01"] = "SEND-TX-106-03-01";
|
|
22
|
+
PROGRESS_HOOK["SEND_TX_106_03_02"] = "SEND-TX-106-03-02";
|
|
23
|
+
PROGRESS_HOOK["SEND_TX_106_04"] = "SEND-TX-106-04";
|
|
24
|
+
PROGRESS_HOOK["SEND_TX_106_05"] = "SEND-TX-106-05";
|
|
25
|
+
PROGRESS_HOOK["SEND_TX_106_06"] = "SEND-TX-106-06";
|
|
26
|
+
PROGRESS_HOOK["SEND_TX_106_07_01"] = "SEND-TX-106-07-01";
|
|
27
|
+
PROGRESS_HOOK["SEND_TX_106_07_02"] = "SEND-TX-106-07-02";
|
|
28
|
+
PROGRESS_HOOK["SEND_TX_106_07_03"] = "SEND-TX-106-07-03";
|
|
29
|
+
PROGRESS_HOOK["SEND_TX_107"] = "SEND-TX-107";
|
|
30
|
+
PROGRESS_HOOK["SEND_TX_199_01"] = "SEND-TX-199-01";
|
|
31
|
+
PROGRESS_HOOK["SEND_TX_199_02"] = "SEND-TX-199-02";
|
|
32
|
+
PROGRESS_HOOK["SEND_TX_199_99_99"] = "SEND-TX-199-99-99";
|
|
33
|
+
// Route 2: UEA → UGPC → CEA on target chain (201–299)
|
|
34
|
+
PROGRESS_HOOK["SEND_TX_201"] = "SEND-TX-201";
|
|
35
|
+
PROGRESS_HOOK["SEND_TX_202_01"] = "SEND-TX-202-01";
|
|
36
|
+
PROGRESS_HOOK["SEND_TX_202_02"] = "SEND-TX-202-02";
|
|
37
|
+
PROGRESS_HOOK["SEND_TX_203_01"] = "SEND-TX-203-01";
|
|
38
|
+
PROGRESS_HOOK["SEND_TX_203_02"] = "SEND-TX-203-02";
|
|
39
|
+
PROGRESS_HOOK["SEND_TX_204_01"] = "SEND-TX-204-01";
|
|
40
|
+
PROGRESS_HOOK["SEND_TX_204_02"] = "SEND-TX-204-02";
|
|
41
|
+
PROGRESS_HOOK["SEND_TX_204_03"] = "SEND-TX-204-03";
|
|
42
|
+
PROGRESS_HOOK["SEND_TX_204_04"] = "SEND-TX-204-04";
|
|
43
|
+
PROGRESS_HOOK["SEND_TX_207"] = "SEND-TX-207";
|
|
44
|
+
PROGRESS_HOOK["SEND_TX_209_01"] = "SEND-TX-209-01";
|
|
45
|
+
PROGRESS_HOOK["SEND_TX_209_02"] = "SEND-TX-209-02";
|
|
46
|
+
PROGRESS_HOOK["SEND_TX_299_01"] = "SEND-TX-299-01";
|
|
47
|
+
PROGRESS_HOOK["SEND_TX_299_02"] = "SEND-TX-299-02";
|
|
48
|
+
PROGRESS_HOOK["SEND_TX_299_03"] = "SEND-TX-299-03";
|
|
49
|
+
PROGRESS_HOOK["SEND_TX_299_99"] = "SEND-TX-299-99";
|
|
50
|
+
// Route 3: UEA → UGPC → CEA → sendUniversalTxToUEA → Push Chain (301–399)
|
|
51
|
+
PROGRESS_HOOK["SEND_TX_301"] = "SEND-TX-301";
|
|
52
|
+
PROGRESS_HOOK["SEND_TX_302_01"] = "SEND-TX-302-01";
|
|
53
|
+
PROGRESS_HOOK["SEND_TX_302_02"] = "SEND-TX-302-02";
|
|
54
|
+
PROGRESS_HOOK["SEND_TX_302_03_01"] = "SEND-TX-302-03-01";
|
|
55
|
+
PROGRESS_HOOK["SEND_TX_302_03_02"] = "SEND-TX-302-03-02";
|
|
56
|
+
PROGRESS_HOOK["SEND_TX_302_03_03"] = "SEND-TX-302-03-03";
|
|
57
|
+
PROGRESS_HOOK["SEND_TX_303_01"] = "SEND-TX-303-01";
|
|
58
|
+
PROGRESS_HOOK["SEND_TX_303_02"] = "SEND-TX-303-02";
|
|
59
|
+
PROGRESS_HOOK["SEND_TX_304_01"] = "SEND-TX-304-01";
|
|
60
|
+
PROGRESS_HOOK["SEND_TX_304_02"] = "SEND-TX-304-02";
|
|
61
|
+
PROGRESS_HOOK["SEND_TX_304_03"] = "SEND-TX-304-03";
|
|
62
|
+
PROGRESS_HOOK["SEND_TX_304_04"] = "SEND-TX-304-04";
|
|
63
|
+
PROGRESS_HOOK["SEND_TX_307"] = "SEND-TX-307";
|
|
64
|
+
PROGRESS_HOOK["SEND_TX_309_01"] = "SEND-TX-309-01";
|
|
65
|
+
PROGRESS_HOOK["SEND_TX_309_02"] = "SEND-TX-309-02";
|
|
66
|
+
PROGRESS_HOOK["SEND_TX_309_03"] = "SEND-TX-309-03";
|
|
67
|
+
PROGRESS_HOOK["SEND_TX_310_01"] = "SEND-TX-310-01";
|
|
68
|
+
PROGRESS_HOOK["SEND_TX_310_02"] = "SEND-TX-310-02";
|
|
69
|
+
PROGRESS_HOOK["SEND_TX_399_01"] = "SEND-TX-399-01";
|
|
70
|
+
PROGRESS_HOOK["SEND_TX_399_02"] = "SEND-TX-399-02";
|
|
71
|
+
PROGRESS_HOOK["SEND_TX_399_03"] = "SEND-TX-399-03";
|
|
72
|
+
// Multichain (multi-hop) cascade markers
|
|
73
|
+
PROGRESS_HOOK["SEND_TX_001"] = "SEND-TX-001";
|
|
74
|
+
PROGRESS_HOOK["SEND_TX_002_01"] = "SEND-TX-002-01";
|
|
75
|
+
PROGRESS_HOOK["SEND_TX_002_99_99"] = "SEND-TX-002-99-99";
|
|
76
|
+
PROGRESS_HOOK["SEND_TX_999_01"] = "SEND-TX-999-01";
|
|
77
|
+
PROGRESS_HOOK["SEND_TX_999_02"] = "SEND-TX-999-02";
|
|
78
|
+
PROGRESS_HOOK["SEND_TX_999_03"] = "SEND-TX-999-03";
|
|
79
|
+
// UEA Migration hooks (unchanged)
|
|
41
80
|
PROGRESS_HOOK["UEA_MIG_01"] = "UEA-MIG-01";
|
|
42
81
|
PROGRESS_HOOK["UEA_MIG_02"] = "UEA-MIG-02";
|
|
43
82
|
PROGRESS_HOOK["UEA_MIG_03"] = "UEA-MIG-03";
|
|
@@ -22,6 +22,7 @@ export declare class PushClient extends EvmClient {
|
|
|
22
22
|
dex?: {
|
|
23
23
|
uniV3Factory?: `0x${string}`;
|
|
24
24
|
uniV3QuoterV2?: `0x${string}`;
|
|
25
|
+
uniV3SwapRouter?: `0x${string}`;
|
|
25
26
|
weth?: `0x${string}`;
|
|
26
27
|
};
|
|
27
28
|
} & {
|
|
@@ -75,6 +76,12 @@ export declare class PushClient extends EvmClient {
|
|
|
75
76
|
* V2 returns expanded OutboundTx fields and repeated outbound_tx array.
|
|
76
77
|
*/
|
|
77
78
|
getUniversalTxByIdV2(id: string): Promise<QueryGetUniversalTxResponseV2>;
|
|
79
|
+
/**
|
|
80
|
+
* Generic Cosmos searchTx — returns the raw indexed results so callers can
|
|
81
|
+
* walk events themselves. Used by the inbound-tracker to find a child UTX
|
|
82
|
+
* created from an external tx hash (`universal_tx_created.inbound_tx_hash`).
|
|
83
|
+
*/
|
|
84
|
+
searchCosmosByQuery(query: string): Promise<DeliverTxResponse[]>;
|
|
78
85
|
/**
|
|
79
86
|
* Fetches a Cosmos transaction by its hash.
|
|
80
87
|
* @param txHash The hex‐encoded transaction hash (without "0x" or with—both work).
|
|
@@ -134,7 +134,10 @@ class PushClient extends evm_client_1.EvmClient {
|
|
|
134
134
|
}
|
|
135
135
|
catch (err) {
|
|
136
136
|
// Account may not exist on-chain yet; default to sequence=0 / accountNumber=0
|
|
137
|
-
|
|
137
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
138
|
+
if (!msg.includes('NotFound') && !msg.includes('not found')) {
|
|
139
|
+
console.warn(`[PushClient:signCosmosTx] Account lookup failed for ${sender}:`, err);
|
|
140
|
+
}
|
|
138
141
|
}
|
|
139
142
|
// 📦 Encode pubkey
|
|
140
143
|
const uncompressedPubKey = (0, viem_1.hexToBytes)(this.ephemeralAccount.publicKey);
|
|
@@ -206,6 +209,20 @@ class PushClient extends evm_client_1.EvmClient {
|
|
|
206
209
|
}), 'getUniversalTxByIdV2');
|
|
207
210
|
});
|
|
208
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Generic Cosmos searchTx — returns the raw indexed results so callers can
|
|
214
|
+
* walk events themselves. Used by the inbound-tracker to find a child UTX
|
|
215
|
+
* created from an external tx hash (`universal_tx_created.inbound_tx_hash`).
|
|
216
|
+
*/
|
|
217
|
+
searchCosmosByQuery(query) {
|
|
218
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
219
|
+
return this.executeWithRpcFallback((rpcUrl) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
220
|
+
const client = yield stargate_1.StargateClient.connect(rpcUrl);
|
|
221
|
+
const results = yield client.searchTx(query);
|
|
222
|
+
return results.map((result) => JSON.parse(JSON.stringify(result, (_key, value) => typeof value === 'bigint' ? value.toString() : value)));
|
|
223
|
+
}), 'searchCosmosByQuery');
|
|
224
|
+
});
|
|
225
|
+
}
|
|
209
226
|
/**
|
|
210
227
|
* Fetches a Cosmos transaction by its hash.
|
|
211
228
|
* @param txHash The hex‐encoded transaction hash (without "0x" or with—both work).
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared fixture builders for universal-tx-detector specs.
|
|
3
|
+
*
|
|
4
|
+
* These helpers encode viem-compatible logs and receipts so every spec
|
|
5
|
+
* (classify, detector, cascade, scenarios) can build test data uniformly.
|
|
6
|
+
*
|
|
7
|
+
* Keep these pure — no jest mocks, no module-level state.
|
|
8
|
+
*/
|
|
9
|
+
import { type TransactionReceipt } from 'viem';
|
|
10
|
+
export type EventDef = {
|
|
11
|
+
name: string;
|
|
12
|
+
inputs: readonly {
|
|
13
|
+
indexed: boolean;
|
|
14
|
+
type: string;
|
|
15
|
+
name: string;
|
|
16
|
+
components?: readonly unknown[];
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
19
|
+
export type BuiltLog = {
|
|
20
|
+
address: `0x${string}`;
|
|
21
|
+
topics: ReadonlyArray<`0x${string}` | null>;
|
|
22
|
+
data: `0x${string}`;
|
|
23
|
+
blockNumber: bigint;
|
|
24
|
+
transactionHash: `0x${string}`;
|
|
25
|
+
transactionIndex: number;
|
|
26
|
+
blockHash: `0x${string}`;
|
|
27
|
+
logIndex: number;
|
|
28
|
+
removed: false;
|
|
29
|
+
};
|
|
30
|
+
export declare function indexedArgs(event: EventDef, argsObj: Record<string, unknown>): Record<string, unknown>;
|
|
31
|
+
export declare function buildLog(event: EventDef, argsObj: Record<string, unknown>, address: `0x${string}`, logIndex: number, txHash?: `0x${string}`): BuiltLog;
|
|
32
|
+
export declare function buildReceipt(logs: BuiltLog[], to: `0x${string}`, txHash?: `0x${string}`): TransactionReceipt;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.indexedArgs = indexedArgs;
|
|
4
|
+
exports.buildLog = buildLog;
|
|
5
|
+
exports.buildReceipt = buildReceipt;
|
|
6
|
+
/**
|
|
7
|
+
* Shared fixture builders for universal-tx-detector specs.
|
|
8
|
+
*
|
|
9
|
+
* These helpers encode viem-compatible logs and receipts so every spec
|
|
10
|
+
* (classify, detector, cascade, scenarios) can build test data uniformly.
|
|
11
|
+
*
|
|
12
|
+
* Keep these pure — no jest mocks, no module-level state.
|
|
13
|
+
*/
|
|
14
|
+
const viem_1 = require("viem");
|
|
15
|
+
const ZERO_HASH = '0x0000000000000000000000000000000000000000000000000000000000000000';
|
|
16
|
+
function indexedArgs(event, argsObj) {
|
|
17
|
+
const out = {};
|
|
18
|
+
for (const i of event.inputs)
|
|
19
|
+
if (i.indexed)
|
|
20
|
+
out[i.name] = argsObj[i.name];
|
|
21
|
+
return out;
|
|
22
|
+
}
|
|
23
|
+
function buildLog(event, argsObj, address, logIndex, txHash = ZERO_HASH) {
|
|
24
|
+
const topics = (0, viem_1.encodeEventTopics)({
|
|
25
|
+
abi: [
|
|
26
|
+
event,
|
|
27
|
+
],
|
|
28
|
+
eventName: event.name,
|
|
29
|
+
args: indexedArgs(event, argsObj),
|
|
30
|
+
});
|
|
31
|
+
const nonIndexed = event.inputs.filter((i) => !i.indexed);
|
|
32
|
+
const data = nonIndexed.length === 0
|
|
33
|
+
? '0x'
|
|
34
|
+
: (0, viem_1.encodeAbiParameters)(nonIndexed, nonIndexed.map((i) => argsObj[i.name]));
|
|
35
|
+
return {
|
|
36
|
+
address,
|
|
37
|
+
topics,
|
|
38
|
+
data,
|
|
39
|
+
blockNumber: BigInt(1),
|
|
40
|
+
transactionHash: txHash,
|
|
41
|
+
transactionIndex: 0,
|
|
42
|
+
blockHash: ZERO_HASH,
|
|
43
|
+
logIndex,
|
|
44
|
+
removed: false,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function buildReceipt(logs, to, txHash = ZERO_HASH) {
|
|
48
|
+
return {
|
|
49
|
+
status: 'success',
|
|
50
|
+
logs,
|
|
51
|
+
blockNumber: BigInt(1),
|
|
52
|
+
blockHash: ZERO_HASH,
|
|
53
|
+
contractAddress: null,
|
|
54
|
+
cumulativeGasUsed: BigInt(0),
|
|
55
|
+
effectiveGasPrice: BigInt(0),
|
|
56
|
+
from: to,
|
|
57
|
+
gasUsed: BigInt(0),
|
|
58
|
+
logsBloom: '0x',
|
|
59
|
+
to,
|
|
60
|
+
transactionHash: txHash,
|
|
61
|
+
transactionIndex: 0,
|
|
62
|
+
type: 'eip1559',
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=builders.js.map
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parametric scenario catalogue for universal-tx-detector specs.
|
|
3
|
+
*
|
|
4
|
+
* Each ScenarioFixture declares a deterministic tx (receipt + optional
|
|
5
|
+
* mocked cosmos state) plus the assertions every consumer should check.
|
|
6
|
+
*
|
|
7
|
+
* Adding coverage for a new event shape or cascade topology = append one
|
|
8
|
+
* row here. The driver spec (__tests__/scenarios.spec.ts) picks it up
|
|
9
|
+
* automatically via describe.each.
|
|
10
|
+
*/
|
|
11
|
+
import type { TransactionReceipt } from 'viem';
|
|
12
|
+
import { CHAIN } from '../../../constants/enums';
|
|
13
|
+
import type { DecodedIdentifiers, MatchingLog, UniversalTxKind } from '../../types';
|
|
14
|
+
import { deriveChildUniversalTxId, derivePcUniversalTxId } from '../../child-inbounds';
|
|
15
|
+
import { type EventDef } from './builders';
|
|
16
|
+
export type LogSpec = {
|
|
17
|
+
event: EventDef;
|
|
18
|
+
args: Record<string, unknown>;
|
|
19
|
+
address: `0x${string}`;
|
|
20
|
+
logIndex: number;
|
|
21
|
+
};
|
|
22
|
+
export type ReceiptEntry = {
|
|
23
|
+
txHash: `0x${string}`;
|
|
24
|
+
chain: CHAIN;
|
|
25
|
+
to: `0x${string}`;
|
|
26
|
+
logs: LogSpec[];
|
|
27
|
+
};
|
|
28
|
+
export type UtxRecordFixture = {
|
|
29
|
+
/** 32-byte hex id (no 0x prefix) or prefix; matcher lowercases and strips. */
|
|
30
|
+
id: string;
|
|
31
|
+
record: Record<string, unknown> | null;
|
|
32
|
+
};
|
|
33
|
+
export type ExpectedCascade = {
|
|
34
|
+
outboundCount?: number;
|
|
35
|
+
refundCount?: number;
|
|
36
|
+
childInboundCount?: number;
|
|
37
|
+
totalFlatNodes?: number;
|
|
38
|
+
rootKind?: UniversalTxKind;
|
|
39
|
+
/** For each outbound edge, the destinationChain CAIP (order-insensitive). */
|
|
40
|
+
outboundDestinations?: string[];
|
|
41
|
+
};
|
|
42
|
+
export type ScenarioFixture = {
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
kind: UniversalTxKind;
|
|
46
|
+
chain: CHAIN;
|
|
47
|
+
txHash: `0x${string}`;
|
|
48
|
+
to: `0x${string}`;
|
|
49
|
+
logs: LogSpec[];
|
|
50
|
+
/** Additional receipts the cascade walker will fetch when recursing. */
|
|
51
|
+
extraReceipts?: ReceiptEntry[];
|
|
52
|
+
/** Cosmos utx records keyed by id (hex without 0x prefix). */
|
|
53
|
+
utxRecords?: UtxRecordFixture[];
|
|
54
|
+
expectedDecoded?: Partial<DecodedIdentifiers>;
|
|
55
|
+
expectedClassifyAll?: UniversalTxKind[];
|
|
56
|
+
expectedCascade?: ExpectedCascade;
|
|
57
|
+
};
|
|
58
|
+
export declare function matchingLogsForFixture(f: ScenarioFixture): MatchingLog[];
|
|
59
|
+
export declare function receiptForFixture(f: ScenarioFixture): TransactionReceipt;
|
|
60
|
+
export declare function receiptForExtra(r: ReceiptEntry): TransactionReceipt;
|
|
61
|
+
/**
|
|
62
|
+
* Flatten all utxRecord entries across a scenario and its linked fixtures
|
|
63
|
+
* into a single Map keyed by the lowercased id (no 0x prefix).
|
|
64
|
+
*/
|
|
65
|
+
export declare function utxRecordMap(fixtures: ScenarioFixture[]): Map<string, Record<string, unknown> | null>;
|
|
66
|
+
/**
|
|
67
|
+
* Build a Map<txHashLower, TransactionReceipt> covering the primary tx +
|
|
68
|
+
* all extraReceipts across every fixture.
|
|
69
|
+
*/
|
|
70
|
+
export declare function receiptMap(fixtures: ScenarioFixture[]): Map<string, TransactionReceipt>;
|
|
71
|
+
export declare const SCENARIOS: ScenarioFixture[];
|
|
72
|
+
export { deriveChildUniversalTxId, derivePcUniversalTxId };
|