@pushchain/core 5.1.2 → 5.1.4-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/package.json +30 -6
  2. package/src/lib/constants/abi/prc20.evm.d.ts +22 -2
  3. package/src/lib/constants/abi/prc20.evm.js +11 -3
  4. package/src/lib/constants/abi/prc20.evm.js.map +1 -1
  5. package/src/lib/constants/abi/universalGatewayPC.evm.d.ts +59 -0
  6. package/src/lib/constants/abi/universalGatewayPC.evm.js +26 -0
  7. package/src/lib/constants/abi/universalGatewayPC.evm.js.map +1 -1
  8. package/src/lib/constants/chain.d.ts +4 -0
  9. package/src/lib/constants/chain.js +6 -2
  10. package/src/lib/constants/chain.js.map +1 -1
  11. package/src/lib/index.d.ts +2 -2
  12. package/src/lib/index.js.map +1 -1
  13. package/src/lib/internal/bs58.d.ts +2 -0
  14. package/src/lib/internal/bs58.js +7 -0
  15. package/src/lib/internal/bs58.js.map +1 -0
  16. package/src/lib/orchestrator/cea-utils.d.ts +0 -9
  17. package/src/lib/orchestrator/cea-utils.js +15 -4
  18. package/src/lib/orchestrator/cea-utils.js.map +1 -1
  19. package/src/lib/orchestrator/internals/account-manager.d.ts +16 -0
  20. package/src/lib/orchestrator/internals/account-manager.js +191 -0
  21. package/src/lib/orchestrator/internals/account-manager.js.map +1 -0
  22. package/src/lib/orchestrator/internals/cascade.d.ts +23 -0
  23. package/src/lib/orchestrator/internals/cascade.js +945 -0
  24. package/src/lib/orchestrator/internals/cascade.js.map +1 -0
  25. package/src/lib/orchestrator/internals/confirmation.d.ts +9 -0
  26. package/src/lib/orchestrator/internals/confirmation.js +123 -0
  27. package/src/lib/orchestrator/internals/confirmation.js.map +1 -0
  28. package/src/lib/orchestrator/internals/context.d.ts +38 -0
  29. package/src/lib/orchestrator/internals/context.js +49 -0
  30. package/src/lib/orchestrator/internals/context.js.map +1 -0
  31. package/src/lib/orchestrator/internals/execute-funds-only.d.ts +11 -0
  32. package/src/lib/orchestrator/internals/execute-funds-only.js +219 -0
  33. package/src/lib/orchestrator/internals/execute-funds-only.js.map +1 -0
  34. package/src/lib/orchestrator/internals/execute-funds-payload.d.ts +11 -0
  35. package/src/lib/orchestrator/internals/execute-funds-payload.js +222 -0
  36. package/src/lib/orchestrator/internals/execute-funds-payload.js.map +1 -0
  37. package/src/lib/orchestrator/internals/execute-standard.d.ts +13 -0
  38. package/src/lib/orchestrator/internals/execute-standard.js +225 -0
  39. package/src/lib/orchestrator/internals/execute-standard.js.map +1 -0
  40. package/src/lib/orchestrator/internals/gas-calculator.d.ts +30 -0
  41. package/src/lib/orchestrator/internals/gas-calculator.js +283 -0
  42. package/src/lib/orchestrator/internals/gas-calculator.js.map +1 -0
  43. package/src/lib/orchestrator/internals/gateway-client.d.ts +24 -0
  44. package/src/lib/orchestrator/internals/gateway-client.js +191 -0
  45. package/src/lib/orchestrator/internals/gateway-client.js.map +1 -0
  46. package/src/lib/orchestrator/internals/helpers.d.ts +26 -0
  47. package/src/lib/orchestrator/internals/helpers.js +181 -0
  48. package/src/lib/orchestrator/internals/helpers.js.map +1 -0
  49. package/src/lib/orchestrator/internals/index.d.ts +24 -0
  50. package/src/lib/orchestrator/internals/index.js +132 -0
  51. package/src/lib/orchestrator/internals/index.js.map +1 -0
  52. package/src/lib/orchestrator/internals/outbound-sync.d.ts +49 -0
  53. package/src/lib/orchestrator/internals/outbound-sync.js +357 -0
  54. package/src/lib/orchestrator/internals/outbound-sync.js.map +1 -0
  55. package/src/lib/orchestrator/internals/outbound-tracker.d.ts +8 -0
  56. package/src/lib/orchestrator/internals/outbound-tracker.js +64 -0
  57. package/src/lib/orchestrator/internals/outbound-tracker.js.map +1 -0
  58. package/src/lib/orchestrator/internals/payload-builder.d.ts +24 -0
  59. package/src/lib/orchestrator/internals/payload-builder.js +178 -0
  60. package/src/lib/orchestrator/internals/payload-builder.js.map +1 -0
  61. package/src/lib/orchestrator/internals/push-chain-tx.d.ts +32 -0
  62. package/src/lib/orchestrator/internals/push-chain-tx.js +184 -0
  63. package/src/lib/orchestrator/internals/push-chain-tx.js.map +1 -0
  64. package/src/lib/orchestrator/internals/quote.d.ts +9 -0
  65. package/src/lib/orchestrator/internals/quote.js +114 -0
  66. package/src/lib/orchestrator/internals/quote.js.map +1 -0
  67. package/src/lib/orchestrator/internals/rescue.d.ts +20 -0
  68. package/src/lib/orchestrator/internals/rescue.js +112 -0
  69. package/src/lib/orchestrator/internals/rescue.js.map +1 -0
  70. package/src/lib/orchestrator/internals/response-builder.d.ts +26 -0
  71. package/src/lib/orchestrator/internals/response-builder.js +504 -0
  72. package/src/lib/orchestrator/internals/response-builder.js.map +1 -0
  73. package/src/lib/orchestrator/internals/route-handlers.d.ts +77 -0
  74. package/src/lib/orchestrator/internals/route-handlers.js +1203 -0
  75. package/src/lib/orchestrator/internals/route-handlers.js.map +1 -0
  76. package/src/lib/orchestrator/internals/signing.d.ts +27 -0
  77. package/src/lib/orchestrator/internals/signing.js +258 -0
  78. package/src/lib/orchestrator/internals/signing.js.map +1 -0
  79. package/src/lib/orchestrator/internals/svm-bridge.d.ts +21 -0
  80. package/src/lib/orchestrator/internals/svm-bridge.js +122 -0
  81. package/src/lib/orchestrator/internals/svm-bridge.js.map +1 -0
  82. package/src/lib/orchestrator/internals/svm-helpers.d.ts +35 -0
  83. package/src/lib/orchestrator/internals/svm-helpers.js +143 -0
  84. package/src/lib/orchestrator/internals/svm-helpers.js.map +1 -0
  85. package/src/lib/orchestrator/internals/tx-transformer.d.ts +12 -0
  86. package/src/lib/orchestrator/internals/tx-transformer.js +120 -0
  87. package/src/lib/orchestrator/internals/tx-transformer.js.map +1 -0
  88. package/src/lib/orchestrator/internals/uea-manager.d.ts +17 -0
  89. package/src/lib/orchestrator/internals/uea-manager.js +164 -0
  90. package/src/lib/orchestrator/internals/uea-manager.js.map +1 -0
  91. package/src/lib/orchestrator/orchestrator.d.ts +33 -426
  92. package/src/lib/orchestrator/orchestrator.js +124 -6056
  93. package/src/lib/orchestrator/orchestrator.js.map +1 -1
  94. package/src/lib/orchestrator/orchestrator.types.d.ts +11 -10
  95. package/src/lib/orchestrator/orchestrator.types.js.map +1 -1
  96. package/src/lib/orchestrator/payload-builders.js +35 -9
  97. package/src/lib/orchestrator/payload-builders.js.map +1 -1
  98. package/src/lib/price-fetch/price-fetch.js +19 -7
  99. package/src/lib/price-fetch/price-fetch.js.map +1 -1
  100. package/src/lib/push-chain/push-chain.d.ts +24 -3
  101. package/src/lib/push-chain/push-chain.js +89 -6
  102. package/src/lib/push-chain/push-chain.js.map +1 -1
  103. package/src/lib/push-client/push-client.d.ts +3 -0
  104. package/src/lib/push-client/push-client.js +21 -31
  105. package/src/lib/push-client/push-client.js.map +1 -1
  106. package/src/lib/universal/account/account.d.ts +40 -6
  107. package/src/lib/universal/account/account.js +384 -9
  108. package/src/lib/universal/account/account.js.map +1 -1
  109. package/src/lib/universal/signer/signer.d.ts +2 -3
  110. package/src/lib/universal/signer/signer.js +65 -115
  111. package/src/lib/universal/signer/signer.js.map +1 -1
  112. package/src/lib/universal/universal.types.d.ts +41 -0
  113. package/src/lib/utils.d.ts +7 -1
  114. package/src/lib/utils.js +65 -33
  115. package/src/lib/utils.js.map +1 -1
  116. package/src/lib/vm-client/evm-client.js +3 -11
  117. package/src/lib/vm-client/evm-client.js.map +1 -1
  118. package/src/lib/vm-client/svm-client.d.ts +0 -4
  119. package/src/lib/vm-client/svm-client.js +2 -8
  120. package/src/lib/vm-client/svm-client.js.map +1 -1
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * SVM (Solana) specific helper functions extracted from Orchestrator.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildSvmUniversalTxRequest = buildSvmUniversalTxRequest;
7
+ exports.buildSvmUniversalTxRequestFromReq = buildSvmUniversalTxRequestFromReq;
8
+ exports.getSvmProtocolFee = getSvmProtocolFee;
9
+ exports.getSvmGatewayLogIndexFromTx = getSvmGatewayLogIndexFromTx;
10
+ const tslib_1 = require("tslib");
11
+ const web3_js_1 = require("@solana/web3.js");
12
+ const viem_1 = require("viem");
13
+ const universalGatewayV0_json_1 = tslib_1.__importDefault(require("../../constants/abi/universalGatewayV0.json"));
14
+ // ============================================================================
15
+ // SVM Request Builders
16
+ // ============================================================================
17
+ function buildSvmUniversalTxRequest({ recipient, token, amount, payload, revertRecipient, signatureData, }) {
18
+ const payloadBuf = typeof payload === 'string' && payload.startsWith('0x')
19
+ ? (() => {
20
+ const hex = payload.slice(2);
21
+ if (!hex.length)
22
+ return Buffer.alloc(0);
23
+ const normalized = hex.length % 2 === 1 ? `0${hex}` : hex;
24
+ return Buffer.from(normalized, 'hex');
25
+ })()
26
+ : Buffer.from(payload);
27
+ let signatureBuf;
28
+ if (!signatureData) {
29
+ signatureBuf = Buffer.alloc(0);
30
+ }
31
+ else if (typeof signatureData === 'string' &&
32
+ signatureData.startsWith('0x')) {
33
+ const hex = signatureData.slice(2);
34
+ if (!hex.length) {
35
+ signatureBuf = Buffer.alloc(0);
36
+ }
37
+ else {
38
+ const normalized = hex.length % 2 === 1 ? `0${hex}` : hex;
39
+ signatureBuf = Buffer.from(normalized, 'hex');
40
+ }
41
+ }
42
+ else {
43
+ signatureBuf = Buffer.from(signatureData);
44
+ }
45
+ return {
46
+ recipient,
47
+ token,
48
+ amount,
49
+ payload: payloadBuf,
50
+ revertRecipient,
51
+ signatureData: signatureBuf,
52
+ };
53
+ }
54
+ function buildSvmUniversalTxRequestFromReq(req, revertRecipient, signatureDataOverride) {
55
+ const recipientBytes = (0, viem_1.hexToBytes)(req.recipient);
56
+ const recipient = Array.from(recipientBytes.subarray(0, 20));
57
+ const tokenAddress = req.token;
58
+ let token;
59
+ if (tokenAddress === viem_1.zeroAddress || tokenAddress === 'solana-native') {
60
+ token = web3_js_1.PublicKey.default;
61
+ }
62
+ else {
63
+ if (!tokenAddress.startsWith('0x')) {
64
+ throw new Error('Unsupported token format for SVM UniversalTxRequest: ' + tokenAddress);
65
+ }
66
+ const token20 = (0, viem_1.hexToBytes)(tokenAddress);
67
+ const token32 = new Uint8Array(32);
68
+ token32.set(token20, 12);
69
+ token = new web3_js_1.PublicKey(token32);
70
+ }
71
+ return buildSvmUniversalTxRequest({
72
+ recipient,
73
+ token,
74
+ amount: req.amount,
75
+ payload: req.payload,
76
+ revertRecipient,
77
+ signatureData: signatureDataOverride !== null && signatureDataOverride !== void 0 ? signatureDataOverride : req.signatureData,
78
+ });
79
+ }
80
+ // ============================================================================
81
+ // SVM Protocol Fee
82
+ // ============================================================================
83
+ function getSvmProtocolFee(svmClient, programId) {
84
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
85
+ var _a, _b, _c;
86
+ const [feeVaultPda] = web3_js_1.PublicKey.findProgramAddressSync([(0, viem_1.stringToBytes)('fee_vault')], programId);
87
+ try {
88
+ const feeVault = yield svmClient.readContract({
89
+ abi: universalGatewayV0_json_1.default,
90
+ address: universalGatewayV0_json_1.default.address,
91
+ functionName: 'feeVault',
92
+ args: [feeVaultPda.toBase58()],
93
+ });
94
+ const protocolFeeLamports = BigInt((_c = (_b = ((_a = feeVault.protocolFeeLamports) !== null && _a !== void 0 ? _a : feeVault.protocol_fee_lamports)) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : '0');
95
+ return { feeVaultPda, protocolFeeLamports };
96
+ }
97
+ catch (_d) {
98
+ return { feeVaultPda, protocolFeeLamports: BigInt(0) };
99
+ }
100
+ });
101
+ }
102
+ // ============================================================================
103
+ // SVM Log Parsing
104
+ // ============================================================================
105
+ /** Anchor event discriminator for the SVM gateway's UniversalTxSent event */
106
+ const SVM_GATEWAY_EVENT_DISCRIMINATOR = '6c9ad829b5ea1d7c';
107
+ // ============================================================================
108
+ // ============================================================================
109
+ function getSvmGatewayLogIndexFromTx(txResp) {
110
+ var _a;
111
+ const logs = (((_a = txResp === null || txResp === void 0 ? void 0 : txResp.meta) === null || _a === void 0 ? void 0 : _a.logMessages) || []);
112
+ if (!Array.isArray(logs) || logs.length === 0)
113
+ return 0;
114
+ const prefix = 'Program data: ';
115
+ let matchCount = 0;
116
+ let lastMatchIndex = -1;
117
+ for (let i = 0; i < logs.length; i++) {
118
+ const log = logs[i] || '';
119
+ if (!log.startsWith(prefix))
120
+ continue;
121
+ const base64Data = log.slice(prefix.length).trim();
122
+ let decoded = null;
123
+ try {
124
+ decoded = new Uint8Array(Buffer.from(base64Data, 'base64'));
125
+ }
126
+ catch (_b) {
127
+ continue;
128
+ }
129
+ if (!decoded || decoded.length < 8)
130
+ continue;
131
+ const discriminatorHex = (0, viem_1.bytesToHex)(decoded.slice(0, 8)).slice(2);
132
+ if (discriminatorHex === SVM_GATEWAY_EVENT_DISCRIMINATOR) {
133
+ matchCount++;
134
+ lastMatchIndex = i;
135
+ if (matchCount === 2)
136
+ return i;
137
+ }
138
+ }
139
+ if (lastMatchIndex !== -1)
140
+ return lastMatchIndex;
141
+ return 0;
142
+ }
143
+ //# sourceMappingURL=svm-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svm-helpers.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/orchestrator/internals/svm-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Transaction response/receipt transformation and progress reconstruction,
3
+ * extracted from Orchestrator.
4
+ */
5
+ import { TransactionReceipt } from 'viem';
6
+ import type { UniversalTxV2 } from '../../generated/uexecutor/v2/types';
7
+ import { ProgressEvent } from '../../progress-hook/progress-hook.types';
8
+ import { TransactionRoute } from '../route-detector';
9
+ import type { UniversalTxReceipt, UniversalTxResponse } from '../orchestrator.types';
10
+ export declare function transformToUniversalTxReceipt(receipt: TransactionReceipt, originalTxResponse: UniversalTxResponse): UniversalTxReceipt;
11
+ export declare function reconstructProgressEvents(universalTxResponse: UniversalTxResponse, universalTxData?: UniversalTxV2): ProgressEvent[];
12
+ export declare function detectRouteFromUniversalTxData(universalTxData: UniversalTxV2 | undefined): TransactionRoute | undefined;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * Transaction response/receipt transformation and progress reconstruction,
4
+ * extracted from Orchestrator.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.transformToUniversalTxReceipt = transformToUniversalTxReceipt;
8
+ exports.reconstructProgressEvents = reconstructProgressEvents;
9
+ exports.detectRouteFromUniversalTxData = detectRouteFromUniversalTxData;
10
+ const tslib_1 = require("tslib");
11
+ const chain_1 = require("../../constants/chain");
12
+ const enums_1 = require("../../constants/enums");
13
+ const types_1 = require("../../generated/uexecutor/v1/types");
14
+ const progress_hook_1 = tslib_1.__importDefault(require("../../progress-hook/progress-hook"));
15
+ const progress_hook_types_1 = require("../../progress-hook/progress-hook.types");
16
+ const route_detector_1 = require("../route-detector");
17
+ // ============================================================================
18
+ // Receipt Transform
19
+ // ============================================================================
20
+ function transformToUniversalTxReceipt(receipt, originalTxResponse) {
21
+ return {
22
+ hash: receipt.transactionHash,
23
+ blockNumber: receipt.blockNumber,
24
+ blockHash: receipt.blockHash,
25
+ transactionIndex: receipt.transactionIndex,
26
+ from: originalTxResponse.from,
27
+ to: originalTxResponse.to,
28
+ contractAddress: receipt.contractAddress || null,
29
+ gasPrice: originalTxResponse.gasPrice || BigInt(0),
30
+ gasUsed: receipt.gasUsed,
31
+ cumulativeGasUsed: receipt.cumulativeGasUsed,
32
+ logs: receipt.logs || [],
33
+ logsBloom: receipt.logsBloom || '0x',
34
+ status: receipt.status === 'success' ? 1 : 0,
35
+ raw: originalTxResponse.raw || {
36
+ from: originalTxResponse.from,
37
+ to: originalTxResponse.to,
38
+ },
39
+ };
40
+ }
41
+ // ============================================================================
42
+ // Progress Event Reconstruction
43
+ // ============================================================================
44
+ function reconstructProgressEvents(universalTxResponse, universalTxData) {
45
+ var _a;
46
+ const events = [];
47
+ const originParts = universalTxResponse.origin.split(':');
48
+ const chainNamespace = originParts.length >= 2 ? `${originParts[0]}:${originParts[1]}` : originParts[0];
49
+ const originAddress = originParts.length >= 3 ? originParts[2] : universalTxResponse.from;
50
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_01](chainNamespace, originAddress));
51
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_02_01]());
52
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_02_02](universalTxResponse.gasLimit));
53
+ const pushChainIds = [
54
+ chain_1.CHAIN_INFO[enums_1.CHAIN.PUSH_MAINNET].chainId,
55
+ chain_1.CHAIN_INFO[enums_1.CHAIN.PUSH_TESTNET_DONUT].chainId,
56
+ chain_1.CHAIN_INFO[enums_1.CHAIN.PUSH_LOCALNET].chainId,
57
+ ];
58
+ const isPushOrigin = pushChainIds.some((id) => chainNamespace.includes(`eip155:${id}`));
59
+ if (!isPushOrigin) {
60
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_03_01]());
61
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_03_02](universalTxResponse.from, true));
62
+ }
63
+ const inboundTx = universalTxData === null || universalTxData === void 0 ? void 0 : universalTxData.inboundTx;
64
+ const hasFundsFlow = inboundTx && BigInt(inboundTx.amount || '0') > BigInt(0);
65
+ if (!isPushOrigin) {
66
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_04_02]());
67
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_04_03]());
68
+ }
69
+ if (hasFundsFlow && inboundTx) {
70
+ const amount = BigInt(inboundTx.amount);
71
+ const decimals = 18;
72
+ const symbol = 'TOKEN';
73
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_01](amount, decimals, symbol));
74
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_02](inboundTx.txHash, amount, decimals, symbol));
75
+ const confirmations = 1;
76
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_03](confirmations));
77
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_03_02](confirmations, confirmations));
78
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_04]());
79
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_05]());
80
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_06](amount, decimals, symbol));
81
+ }
82
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_07]());
83
+ const pcTx = (_a = universalTxData === null || universalTxData === void 0 ? void 0 : universalTxData.pcTx) === null || _a === void 0 ? void 0 : _a[0];
84
+ const isOutboundFailed = (universalTxData === null || universalTxData === void 0 ? void 0 : universalTxData.universalStatus) === types_1.UniversalTxStatus.OUTBOUND_FAILED;
85
+ const isPcFailed = (pcTx === null || pcTx === void 0 ? void 0 : pcTx.status) === 'FAILED';
86
+ const isFailed = isPcFailed || isOutboundFailed;
87
+ if (isFailed) {
88
+ const errorMsg = isOutboundFailed
89
+ ? 'Outbound transaction failed (status: OUTBOUND_FAILED)'
90
+ : ((pcTx === null || pcTx === void 0 ? void 0 : pcTx.errorMsg) || 'Unknown error');
91
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_99_02](errorMsg));
92
+ }
93
+ else {
94
+ events.push(progress_hook_1.default[progress_hook_types_1.PROGRESS_HOOK.SEND_TX_99_01]([universalTxResponse]));
95
+ }
96
+ return events;
97
+ }
98
+ // ============================================================================
99
+ // Route Detection from V2 Data
100
+ // ============================================================================
101
+ function detectRouteFromUniversalTxData(universalTxData) {
102
+ if (!universalTxData)
103
+ return undefined;
104
+ const hasOutbound = universalTxData.outboundTx.length > 0;
105
+ const hasInbound = !!universalTxData.inboundTx;
106
+ const statusIndicatesOutbound = [
107
+ types_1.UniversalTxStatus.OUTBOUND_PENDING,
108
+ types_1.UniversalTxStatus.OUTBOUND_SUCCESS,
109
+ types_1.UniversalTxStatus.OUTBOUND_FAILED,
110
+ ].includes(universalTxData.universalStatus);
111
+ if (hasOutbound || statusIndicatesOutbound) {
112
+ return hasInbound
113
+ ? route_detector_1.TransactionRoute.CEA_TO_CEA
114
+ : route_detector_1.TransactionRoute.UOA_TO_CEA;
115
+ }
116
+ if (hasInbound)
117
+ return route_detector_1.TransactionRoute.CEA_TO_PUSH;
118
+ return route_detector_1.TransactionRoute.UOA_TO_PUSH;
119
+ }
120
+ //# sourceMappingURL=tx-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-transformer.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/orchestrator/internals/tx-transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * UEA (Universal Executor Account) lifecycle functions extracted from Orchestrator.
3
+ * Covers: compute, nonce, version, deployment status.
4
+ */
5
+ import type { OrchestratorContext } from './context';
6
+ export declare function computeUEAOffchain(ctx: OrchestratorContext): `0x${string}`;
7
+ export declare function computeUEA(ctx: OrchestratorContext): Promise<{
8
+ address: `0x${string}`;
9
+ deployed: boolean;
10
+ }>;
11
+ export declare function getUEANonce(ctx: OrchestratorContext, address: `0x${string}`): Promise<bigint>;
12
+ export declare function getUeaNonceForExecution(ctx: OrchestratorContext): Promise<bigint>;
13
+ export declare function getUeaStatusAndNonce(ctx: OrchestratorContext): Promise<{
14
+ deployed: boolean;
15
+ nonce: bigint;
16
+ }>;
17
+ export declare function fetchUEAVersion(ctx: OrchestratorContext): Promise<string>;
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ /**
3
+ * UEA (Universal Executor Account) lifecycle functions extracted from Orchestrator.
4
+ * Covers: compute, nonce, version, deployment status.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.computeUEAOffchain = computeUEAOffchain;
8
+ exports.computeUEA = computeUEA;
9
+ exports.getUEANonce = getUEANonce;
10
+ exports.getUeaNonceForExecution = getUeaNonceForExecution;
11
+ exports.getUeaStatusAndNonce = getUeaStatusAndNonce;
12
+ exports.fetchUEAVersion = fetchUEAVersion;
13
+ const tslib_1 = require("tslib");
14
+ const bs58_1 = require("../../internal/bs58");
15
+ const viem_1 = require("viem");
16
+ const factoryV1_1 = require("../../constants/abi/factoryV1");
17
+ const uea_svm_1 = require("../../constants/abi/uea.svm");
18
+ const uea_evm_1 = require("../../constants/abi/uea.evm");
19
+ const chain_1 = require("../../constants/chain");
20
+ const enums_1 = require("../../constants/enums");
21
+ const helpers_1 = require("./helpers");
22
+ // ============================================================================
23
+ // Offline UEA Address Computation (CREATE2)
24
+ // ============================================================================
25
+ function computeUEAOffchain(ctx) {
26
+ const { chain, address } = ctx.universalSigner.account;
27
+ const { vm, chainId } = chain_1.CHAIN_INFO[chain];
28
+ if ((0, helpers_1.isPushChain)(chain)) {
29
+ return address;
30
+ }
31
+ let ownerKey;
32
+ if (vm === enums_1.VM.EVM) {
33
+ ownerKey = address;
34
+ }
35
+ else if (vm === enums_1.VM.SVM) {
36
+ ownerKey = (0, viem_1.bytesToHex)(new Uint8Array(bs58_1.bs58.decode(address)));
37
+ }
38
+ else {
39
+ throw new Error(`Unsupported VM type: ${vm}`);
40
+ }
41
+ const encodedAccountId = (0, viem_1.encodeAbiParameters)([
42
+ {
43
+ type: 'tuple',
44
+ components: [
45
+ { name: 'chainNamespace', type: 'string' },
46
+ { name: 'chainId', type: 'string' },
47
+ { name: 'owner', type: 'bytes' },
48
+ ],
49
+ },
50
+ ], [{ chainNamespace: chain_1.VM_NAMESPACE[vm], chainId, owner: ownerKey }]);
51
+ const salt = (0, viem_1.keccak256)(encodedAccountId);
52
+ const minimalProxyRuntimeCode = ('0x3d602d80600a3d3981f3' +
53
+ '363d3d373d3d3d363d73' +
54
+ chain_1.UEA_PROXY[ctx.pushNetwork].toLowerCase().replace(/^0x/, '') +
55
+ '5af43d82803e903d91602b57fd5bf3');
56
+ const initCodeHash = (0, viem_1.keccak256)(minimalProxyRuntimeCode);
57
+ return (0, viem_1.getCreate2Address)({
58
+ from: ctx.pushClient.pushChainInfo.factoryAddress,
59
+ salt,
60
+ bytecodeHash: initCodeHash,
61
+ });
62
+ }
63
+ // ============================================================================
64
+ // On-chain UEA Computation
65
+ // ============================================================================
66
+ function computeUEA(ctx) {
67
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
68
+ const { chain, address } = ctx.universalSigner.account;
69
+ const { vm, chainId } = chain_1.CHAIN_INFO[chain];
70
+ if ((0, helpers_1.isPushChain)(chain)) {
71
+ throw new Error('UEA cannot be computed for a Push Chain Address');
72
+ }
73
+ const computedAddress = yield ctx.pushClient.readContract({
74
+ address: ctx.pushClient.pushChainInfo.factoryAddress,
75
+ abi: factoryV1_1.FACTORY_V1,
76
+ functionName: 'computeUEA',
77
+ args: [
78
+ {
79
+ chainNamespace: chain_1.VM_NAMESPACE[vm],
80
+ chainId,
81
+ owner: vm === enums_1.VM.EVM
82
+ ? address
83
+ : vm === enums_1.VM.SVM
84
+ ? (0, viem_1.bytesToHex)(new Uint8Array(bs58_1.bs58.decode(address)))
85
+ : address,
86
+ },
87
+ ],
88
+ });
89
+ const byteCode = yield ctx.pushClient.publicClient.getCode({
90
+ address: computedAddress,
91
+ });
92
+ return { address: computedAddress, deployed: byteCode !== undefined };
93
+ });
94
+ }
95
+ // ============================================================================
96
+ // UEA Nonce
97
+ // ============================================================================
98
+ function getUEANonce(ctx, address) {
99
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
100
+ const chain = ctx.universalSigner.account.chain;
101
+ const { vm } = chain_1.CHAIN_INFO[chain];
102
+ switch (vm) {
103
+ case enums_1.VM.EVM:
104
+ return ctx.pushClient.readContract({
105
+ address,
106
+ abi: uea_evm_1.UEA_EVM,
107
+ functionName: 'nonce',
108
+ });
109
+ case enums_1.VM.SVM:
110
+ return ctx.pushClient.readContract({
111
+ address,
112
+ abi: uea_svm_1.UEA_SVM,
113
+ functionName: 'nonce',
114
+ });
115
+ default:
116
+ throw new Error(`Unsupported VM type: ${vm}`);
117
+ }
118
+ });
119
+ }
120
+ function getUeaNonceForExecution(ctx) {
121
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
122
+ const UEA = computeUEAOffchain(ctx);
123
+ const code = yield ctx.pushClient.publicClient.getCode({ address: UEA });
124
+ return code !== undefined ? yield getUEANonce(ctx, UEA) : BigInt(0);
125
+ });
126
+ }
127
+ function getUeaStatusAndNonce(ctx) {
128
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
129
+ const UEA = computeUEAOffchain(ctx);
130
+ const code = yield ctx.pushClient.publicClient.getCode({ address: UEA });
131
+ const deployed = code !== undefined;
132
+ const nonce = deployed ? yield getUEANonce(ctx, UEA) : BigInt(0);
133
+ return { deployed, nonce };
134
+ });
135
+ }
136
+ // ============================================================================
137
+ // UEA Version
138
+ // ============================================================================
139
+ function fetchUEAVersion(ctx) {
140
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
141
+ if (ctx.ueaVersionCache) {
142
+ return ctx.ueaVersionCache;
143
+ }
144
+ const chain = ctx.universalSigner.account.chain;
145
+ const { vm } = chain_1.CHAIN_INFO[chain];
146
+ const abi = vm === enums_1.VM.EVM ? uea_evm_1.UEA_EVM : uea_svm_1.UEA_SVM;
147
+ const predictedUEA = computeUEAOffchain(ctx);
148
+ const code = yield ctx.pushClient.publicClient.getCode({
149
+ address: predictedUEA,
150
+ });
151
+ if (code === undefined) {
152
+ ctx.ueaVersionCache = '0.1.0';
153
+ return '0.1.0';
154
+ }
155
+ const version = yield ctx.pushClient.readContract({
156
+ address: predictedUEA,
157
+ abi,
158
+ functionName: 'VERSION',
159
+ });
160
+ ctx.ueaVersionCache = version;
161
+ return version;
162
+ });
163
+ }
164
+ //# sourceMappingURL=uea-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uea-manager.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/orchestrator/internals/uea-manager.ts"],"names":[],"mappings":"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"}