@continuumdao/continuum-node-sdk 1.2.17 → 1.2.18

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 (241) hide show
  1. package/dist/core/agent/mcp-servers-catalog.d.ts +12 -1
  2. package/dist/core/agent/mcp-servers-catalog.d.ts.map +1 -1
  3. package/dist/core/agent/mcp-servers-catalog.js +67 -4
  4. package/dist/core/agent/mcp-servers-catalog.js.map +1 -1
  5. package/dist/core/agent/webhooks-catalog.d.ts +10 -0
  6. package/dist/core/agent/webhooks-catalog.d.ts.map +1 -0
  7. package/dist/core/agent/webhooks-catalog.js +19 -0
  8. package/dist/core/agent/webhooks-catalog.js.map +1 -0
  9. package/package.json +2 -2
  10. package/dist/core/signing-flow.d.ts +0 -9
  11. package/dist/core/signing-flow.d.ts.map +0 -1
  12. package/dist/core/signing-flow.js +0 -139
  13. package/dist/core/signing-flow.js.map +0 -1
  14. package/dist/data/mpc-keys.d.ts +0 -8
  15. package/dist/data/mpc-keys.d.ts.map +0 -1
  16. package/dist/data/mpc-keys.js +0 -38
  17. package/dist/data/mpc-keys.js.map +0 -1
  18. package/dist/detops/general.d.ts +0 -11
  19. package/dist/detops/general.d.ts.map +0 -1
  20. package/dist/detops/general.js +0 -34
  21. package/dist/detops/general.js.map +0 -1
  22. package/dist/detops/group-actions.d.ts +0 -71
  23. package/dist/detops/group-actions.d.ts.map +0 -1
  24. package/dist/detops/group-actions.js +0 -360
  25. package/dist/detops/group-actions.js.map +0 -1
  26. package/dist/detops/groups.d.ts +0 -33
  27. package/dist/detops/groups.d.ts.map +0 -1
  28. package/dist/detops/groups.js +0 -223
  29. package/dist/detops/groups.js.map +0 -1
  30. package/dist/detops/keygen.d.ts +0 -72
  31. package/dist/detops/keygen.d.ts.map +0 -1
  32. package/dist/detops/keygen.js +0 -245
  33. package/dist/detops/keygen.js.map +0 -1
  34. package/dist/detops/management-keys.d.ts +0 -44
  35. package/dist/detops/management-keys.d.ts.map +0 -1
  36. package/dist/detops/management-keys.js +0 -216
  37. package/dist/detops/management-keys.js.map +0 -1
  38. package/dist/detops/management-signer.d.ts +0 -129
  39. package/dist/detops/management-signer.d.ts.map +0 -1
  40. package/dist/detops/management-signer.js +0 -619
  41. package/dist/detops/management-signer.js.map +0 -1
  42. package/dist/detops/management-signing.d.ts +0 -11
  43. package/dist/detops/management-signing.d.ts.map +0 -1
  44. package/dist/detops/management-signing.js +0 -131
  45. package/dist/detops/management-signing.js.map +0 -1
  46. package/dist/detops/mpc/broadcast-sign-result.d.ts +0 -9
  47. package/dist/detops/mpc/broadcast-sign-result.d.ts.map +0 -1
  48. package/dist/detops/mpc/broadcast-sign-result.js +0 -147
  49. package/dist/detops/mpc/broadcast-sign-result.js.map +0 -1
  50. package/dist/detops/mpc/bump-sign-result.d.ts +0 -25
  51. package/dist/detops/mpc/bump-sign-result.d.ts.map +0 -1
  52. package/dist/detops/mpc/bump-sign-result.js +0 -314
  53. package/dist/detops/mpc/bump-sign-result.js.map +0 -1
  54. package/dist/detops/mpc/client.d.ts +0 -15
  55. package/dist/detops/mpc/client.d.ts.map +0 -1
  56. package/dist/detops/mpc/client.js +0 -62
  57. package/dist/detops/mpc/client.js.map +0 -1
  58. package/dist/detops/mpc/compose-request.d.ts +0 -6
  59. package/dist/detops/mpc/compose-request.d.ts.map +0 -1
  60. package/dist/detops/mpc/compose-request.js +0 -33
  61. package/dist/detops/mpc/compose-request.js.map +0 -1
  62. package/dist/detops/mpc/context.d.ts +0 -11
  63. package/dist/detops/mpc/context.d.ts.map +0 -1
  64. package/dist/detops/mpc/context.js +0 -43
  65. package/dist/detops/mpc/context.js.map +0 -1
  66. package/dist/detops/mpc/forge-request.d.ts +0 -6
  67. package/dist/detops/mpc/forge-request.d.ts.map +0 -1
  68. package/dist/detops/mpc/forge-request.js +0 -46
  69. package/dist/detops/mpc/forge-request.js.map +0 -1
  70. package/dist/detops/mpc/gas-preflight.d.ts +0 -25
  71. package/dist/detops/mpc/gas-preflight.d.ts.map +0 -1
  72. package/dist/detops/mpc/gas-preflight.js +0 -101
  73. package/dist/detops/mpc/gas-preflight.js.map +0 -1
  74. package/dist/detops/mpc/list-ready.d.ts +0 -10
  75. package/dist/detops/mpc/list-ready.d.ts.map +0 -1
  76. package/dist/detops/mpc/list-ready.js +0 -48
  77. package/dist/detops/mpc/list-ready.js.map +0 -1
  78. package/dist/detops/mpc/management-post-sig.d.ts +0 -11
  79. package/dist/detops/mpc/management-post-sig.d.ts.map +0 -1
  80. package/dist/detops/mpc/management-post-sig.js +0 -20
  81. package/dist/detops/mpc/management-post-sig.js.map +0 -1
  82. package/dist/detops/mpc/mpa-top-up.d.ts +0 -18
  83. package/dist/detops/mpc/mpa-top-up.d.ts.map +0 -1
  84. package/dist/detops/mpc/mpa-top-up.js +0 -213
  85. package/dist/detops/mpc/mpa-top-up.js.map +0 -1
  86. package/dist/detops/mpc/register-keygen.d.ts +0 -6
  87. package/dist/detops/mpc/register-keygen.d.ts.map +0 -1
  88. package/dist/detops/mpc/register-keygen.js +0 -41
  89. package/dist/detops/mpc/register-keygen.js.map +0 -1
  90. package/dist/detops/mpc/schemas.d.ts +0 -251
  91. package/dist/detops/mpc/schemas.d.ts.map +0 -1
  92. package/dist/detops/mpc/schemas.js +0 -163
  93. package/dist/detops/mpc/schemas.js.map +0 -1
  94. package/dist/detops/mpc/sign-request-body.d.ts +0 -10
  95. package/dist/detops/mpc/sign-request-body.d.ts.map +0 -1
  96. package/dist/detops/mpc/sign-request-body.js +0 -64
  97. package/dist/detops/mpc/sign-request-body.js.map +0 -1
  98. package/dist/detops/mpc/sign-request-utils.d.ts +0 -33
  99. package/dist/detops/mpc/sign-request-utils.d.ts.map +0 -1
  100. package/dist/detops/mpc/sign-request-utils.js +0 -467
  101. package/dist/detops/mpc/sign-request-utils.js.map +0 -1
  102. package/dist/detops/mpc/transfer-native.d.ts +0 -6
  103. package/dist/detops/mpc/transfer-native.d.ts.map +0 -1
  104. package/dist/detops/mpc/transfer-native.js +0 -167
  105. package/dist/detops/mpc/transfer-native.js.map +0 -1
  106. package/dist/detops/mpc/transfer-tokens.d.ts +0 -15
  107. package/dist/detops/mpc/transfer-tokens.d.ts.map +0 -1
  108. package/dist/detops/mpc/transfer-tokens.js +0 -110
  109. package/dist/detops/mpc/transfer-tokens.js.map +0 -1
  110. package/dist/detops/mpc/trigger-sign-result.d.ts +0 -8
  111. package/dist/detops/mpc/trigger-sign-result.d.ts.map +0 -1
  112. package/dist/detops/mpc/trigger-sign-result.js +0 -244
  113. package/dist/detops/mpc/trigger-sign-result.js.map +0 -1
  114. package/dist/detops/mpc/types.d.ts +0 -62
  115. package/dist/detops/mpc/types.d.ts.map +0 -1
  116. package/dist/detops/mpc/types.js +0 -2
  117. package/dist/detops/mpc/types.js.map +0 -1
  118. package/dist/detops/node-info.d.ts +0 -27
  119. package/dist/detops/node-info.d.ts.map +0 -1
  120. package/dist/detops/node-info.js +0 -96
  121. package/dist/detops/node-info.js.map +0 -1
  122. package/dist/detops/registry/address-book.d.ts +0 -25
  123. package/dist/detops/registry/address-book.d.ts.map +0 -1
  124. package/dist/detops/registry/address-book.js +0 -83
  125. package/dist/detops/registry/address-book.js.map +0 -1
  126. package/dist/detops/registry/networks.d.ts +0 -20
  127. package/dist/detops/registry/networks.d.ts.map +0 -1
  128. package/dist/detops/registry/networks.js +0 -154
  129. package/dist/detops/registry/networks.js.map +0 -1
  130. package/dist/detops/registry/tokens.d.ts +0 -29
  131. package/dist/detops/registry/tokens.d.ts.map +0 -1
  132. package/dist/detops/registry/tokens.js +0 -142
  133. package/dist/detops/registry/tokens.js.map +0 -1
  134. package/dist/detops/result.d.ts +0 -21
  135. package/dist/detops/result.d.ts.map +0 -1
  136. package/dist/detops/result.js +0 -2
  137. package/dist/detops/result.js.map +0 -1
  138. package/dist/detops/schemas.d.ts +0 -153
  139. package/dist/detops/schemas.d.ts.map +0 -1
  140. package/dist/detops/schemas.js +0 -82
  141. package/dist/detops/schemas.js.map +0 -1
  142. package/dist/detops/signing-flow.d.ts +0 -9
  143. package/dist/detops/signing-flow.d.ts.map +0 -1
  144. package/dist/detops/signing-flow.js +0 -139
  145. package/dist/detops/signing-flow.js.map +0 -1
  146. package/dist/detops/types.d.ts +0 -58
  147. package/dist/detops/types.d.ts.map +0 -1
  148. package/dist/detops/types.js +0 -46
  149. package/dist/detops/types.js.map +0 -1
  150. package/dist/internal/ed25519/management-signing.d.ts +0 -51
  151. package/dist/internal/ed25519/management-signing.d.ts.map +0 -1
  152. package/dist/internal/ed25519/management-signing.js +0 -198
  153. package/dist/internal/ed25519/management-signing.js.map +0 -1
  154. package/dist/internal/ed25519/openssh-ed25519.d.ts +0 -20
  155. package/dist/internal/ed25519/openssh-ed25519.d.ts.map +0 -1
  156. package/dist/internal/ed25519/openssh-ed25519.js +0 -129
  157. package/dist/internal/ed25519/openssh-ed25519.js.map +0 -1
  158. package/dist/internal/management-request-signing.d.ts +0 -32
  159. package/dist/internal/management-request-signing.d.ts.map +0 -1
  160. package/dist/internal/management-request-signing.js +0 -186
  161. package/dist/internal/management-request-signing.js.map +0 -1
  162. package/dist/mcp/detops/registry/address-book.d.ts +0 -4
  163. package/dist/mcp/detops/registry/address-book.d.ts.map +0 -1
  164. package/dist/mcp/detops/registry/address-book.js +0 -39
  165. package/dist/mcp/detops/registry/address-book.js.map +0 -1
  166. package/dist/mcp/detops/registry/networks.d.ts +0 -4
  167. package/dist/mcp/detops/registry/networks.d.ts.map +0 -1
  168. package/dist/mcp/detops/registry/networks.js +0 -32
  169. package/dist/mcp/detops/registry/networks.js.map +0 -1
  170. package/dist/mcp/detops/registry/tokens.d.ts +0 -4
  171. package/dist/mcp/detops/registry/tokens.d.ts.map +0 -1
  172. package/dist/mcp/detops/registry/tokens.js +0 -43
  173. package/dist/mcp/detops/registry/tokens.js.map +0 -1
  174. package/dist/mcp/ed25519/management-signing.d.ts +0 -51
  175. package/dist/mcp/ed25519/management-signing.d.ts.map +0 -1
  176. package/dist/mcp/ed25519/management-signing.js +0 -198
  177. package/dist/mcp/ed25519/management-signing.js.map +0 -1
  178. package/dist/mcp/ed25519/openssh-ed25519.d.ts +0 -20
  179. package/dist/mcp/ed25519/openssh-ed25519.d.ts.map +0 -1
  180. package/dist/mcp/ed25519/openssh-ed25519.js +0 -129
  181. package/dist/mcp/ed25519/openssh-ed25519.js.map +0 -1
  182. package/dist/mcp/groups.d.ts +0 -71
  183. package/dist/mcp/groups.d.ts.map +0 -1
  184. package/dist/mcp/groups.js +0 -360
  185. package/dist/mcp/groups.js.map +0 -1
  186. package/dist/mcp/management-keys.d.ts +0 -4
  187. package/dist/mcp/management-keys.d.ts.map +0 -1
  188. package/dist/mcp/management-keys.js +0 -75
  189. package/dist/mcp/management-keys.js.map +0 -1
  190. package/dist/mcp/normalize.d.ts +0 -15
  191. package/dist/mcp/normalize.d.ts.map +0 -1
  192. package/dist/mcp/normalize.js +0 -204
  193. package/dist/mcp/normalize.js.map +0 -1
  194. package/dist/mcp/schemas.d.ts +0 -360
  195. package/dist/mcp/schemas.d.ts.map +0 -1
  196. package/dist/mcp/schemas.js +0 -263
  197. package/dist/mcp/schemas.js.map +0 -1
  198. package/dist/mcp/signing.d.ts +0 -32
  199. package/dist/mcp/signing.d.ts.map +0 -1
  200. package/dist/mcp/signing.js +0 -186
  201. package/dist/mcp/signing.js.map +0 -1
  202. package/dist/ops/general.d.ts +0 -11
  203. package/dist/ops/general.d.ts.map +0 -1
  204. package/dist/ops/general.js +0 -34
  205. package/dist/ops/general.js.map +0 -1
  206. package/dist/ops/groups.d.ts +0 -17
  207. package/dist/ops/groups.d.ts.map +0 -1
  208. package/dist/ops/groups.js +0 -105
  209. package/dist/ops/groups.js.map +0 -1
  210. package/dist/ops/management-signing.d.ts +0 -11
  211. package/dist/ops/management-signing.d.ts.map +0 -1
  212. package/dist/ops/management-signing.js +0 -131
  213. package/dist/ops/management-signing.js.map +0 -1
  214. package/dist/ops/result.d.ts +0 -21
  215. package/dist/ops/result.d.ts.map +0 -1
  216. package/dist/ops/result.js +0 -2
  217. package/dist/ops/result.js.map +0 -1
  218. package/dist/ops/schemas.d.ts +0 -153
  219. package/dist/ops/schemas.d.ts.map +0 -1
  220. package/dist/ops/schemas.js +0 -82
  221. package/dist/ops/schemas.js.map +0 -1
  222. package/dist/ops/signing-flow.d.ts +0 -8
  223. package/dist/ops/signing-flow.d.ts.map +0 -1
  224. package/dist/ops/signing-flow.js +0 -125
  225. package/dist/ops/signing-flow.js.map +0 -1
  226. package/dist/ops/types.d.ts +0 -58
  227. package/dist/ops/types.d.ts.map +0 -1
  228. package/dist/ops/types.js +0 -46
  229. package/dist/ops/types.js.map +0 -1
  230. package/dist/registry/address-book.d.ts +0 -25
  231. package/dist/registry/address-book.d.ts.map +0 -1
  232. package/dist/registry/address-book.js +0 -103
  233. package/dist/registry/address-book.js.map +0 -1
  234. package/dist/registry/networks.d.ts +0 -18
  235. package/dist/registry/networks.d.ts.map +0 -1
  236. package/dist/registry/networks.js +0 -180
  237. package/dist/registry/networks.js.map +0 -1
  238. package/dist/registry/tokens.d.ts +0 -29
  239. package/dist/registry/tokens.d.ts.map +0 -1
  240. package/dist/registry/tokens.js +0 -157
  241. package/dist/registry/tokens.js.map +0 -1
@@ -1,467 +0,0 @@
1
- import { parseTransaction, serializeTransaction } from 'viem';
2
- function feeFieldString(c, camel, snake) {
3
- const raw = c[camel] ?? c[snake];
4
- if (raw == null)
5
- return undefined;
6
- const s = String(raw).trim();
7
- return s !== '' ? s : undefined;
8
- }
9
- export function txParamsFromGetSignRequestIdData(data) {
10
- if (data == null || typeof data !== 'object' || Array.isArray(data))
11
- return null;
12
- const d = data;
13
- const nested = (d.txParams ?? d.TxParams);
14
- const c = nested && typeof nested === 'object' && !Array.isArray(nested) ? nested : d;
15
- const txTypeRaw = (c.txType ?? c.tx_type ?? c.TxType);
16
- const txType = txTypeRaw != null ? String(txTypeRaw).trim() : '';
17
- if (txType !== 'eip1559' && txType !== 'legacy')
18
- return null;
19
- const nRaw = c.nonce ?? c.Nonce;
20
- const nonce = typeof nRaw === 'number' && Number.isFinite(nRaw)
21
- ? nRaw
22
- : typeof nRaw === 'string' && nRaw.trim() !== ''
23
- ? parseInt(nRaw, 10)
24
- : NaN;
25
- if (!Number.isFinite(nonce) || nonce < 0)
26
- return null;
27
- const gl = c.gasLimit ?? c.gas_limit ?? c.GasLimit ?? c.gas;
28
- if (gl == null || String(gl).trim() === '')
29
- return null;
30
- const out = {
31
- nonce,
32
- gasLimit: String(gl).trim(),
33
- txType: txType,
34
- };
35
- const maxFee = feeFieldString(c, 'maxFeePerGas', 'max_fee_per_gas');
36
- const maxPrio = feeFieldString(c, 'maxPriorityFeePerGas', 'max_priority_fee_per_gas');
37
- const gasPrice = feeFieldString(c, 'gasPrice', 'gas_price');
38
- if (txType === 'eip1559') {
39
- if (maxFee == null || maxPrio == null)
40
- return null;
41
- out.maxFeePerGas = maxFee;
42
- out.maxPriorityFeePerGas = maxPrio;
43
- }
44
- else if (gasPrice == null) {
45
- return null;
46
- }
47
- else {
48
- out.gasPrice = gasPrice;
49
- }
50
- return out;
51
- }
52
- export function mpcAuthEnvelopeData(raw) {
53
- if (raw == null || typeof raw !== 'object' || Array.isArray(raw))
54
- return null;
55
- const r = raw;
56
- const code = r.Code ?? r.code;
57
- if (code !== 0)
58
- return null;
59
- const data = r.Data ?? r.data;
60
- return data ?? null;
61
- }
62
- export function parseSignRequestExtraJSON(detail) {
63
- if (!detail)
64
- return null;
65
- const d = detail;
66
- const raw = d.ExtraJSON ?? d.extraJSON;
67
- if (raw == null)
68
- return null;
69
- if (typeof raw === 'object' && raw !== null && !Array.isArray(raw)) {
70
- return raw;
71
- }
72
- if (typeof raw !== 'string')
73
- return null;
74
- try {
75
- const parsed = JSON.parse(raw);
76
- return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)
77
- ? parsed
78
- : null;
79
- }
80
- catch {
81
- return null;
82
- }
83
- }
84
- export function chainSnapshotForCustomGasExtraJSON(chainDetail) {
85
- const lr = chainDetail.legacy;
86
- const legacy = lr === true || (typeof lr === 'string' && lr.toLowerCase() === 'true');
87
- const push = (o, key, v) => {
88
- if (v === undefined || v === null)
89
- return;
90
- if (typeof v === 'string' && v.trim() === '')
91
- return;
92
- o[key] = v;
93
- };
94
- const fields = {};
95
- push(fields, 'gasLimit', chainDetail.gasLimit);
96
- if (legacy) {
97
- push(fields, 'gasMultiplier', chainDetail.gasMultiplier);
98
- push(fields, 'gasPrice', chainDetail.gasPrice);
99
- }
100
- else {
101
- push(fields, 'baseFee', chainDetail.baseFee);
102
- push(fields, 'priorityFee', chainDetail.priorityFee);
103
- push(fields, 'baseFeeMultiplier', chainDetail.baseFeeMultiplier);
104
- }
105
- if (Object.keys(fields).length === 0)
106
- return {};
107
- return { legacy, ...fields };
108
- }
109
- export function getCustomGasChainDetailsFromExtraJSON(detail) {
110
- const o = parseSignRequestExtraJSON(detail);
111
- if (!o)
112
- return null;
113
- const c = o.customGasChainDetails ?? o.CustomGasChainDetails;
114
- if (c && typeof c === 'object' && !Array.isArray(c)) {
115
- return c;
116
- }
117
- return null;
118
- }
119
- export function applyCustomGasChainDetailsToChainDetail(chainDetail, customGas) {
120
- if (!customGas || typeof customGas !== 'object' || Array.isArray(customGas)) {
121
- return chainDetail;
122
- }
123
- const num = (key) => {
124
- const v = customGas[key];
125
- if (v == null || v === '')
126
- return undefined;
127
- const n = typeof v === 'number' ? v : Number(v);
128
- return Number.isFinite(n) ? n : undefined;
129
- };
130
- const out = { ...chainDetail };
131
- if (customGas.legacy != null) {
132
- const lr = customGas.legacy;
133
- out.legacy = lr === true || (typeof lr === 'string' && lr.toLowerCase() === 'true');
134
- }
135
- const gasLimit = num('gasLimit');
136
- if (gasLimit != null && gasLimit > 0)
137
- out.gasLimit = gasLimit;
138
- if (out.legacy) {
139
- const gasMultiplier = num('gasMultiplier');
140
- if (gasMultiplier != null)
141
- out.gasMultiplier = gasMultiplier;
142
- const gasPrice = num('gasPrice');
143
- if (gasPrice != null)
144
- out.gasPrice = gasPrice;
145
- }
146
- else {
147
- const baseFee = num('baseFee');
148
- if (baseFee != null)
149
- out.baseFee = baseFee;
150
- const priorityFee = num('priorityFee');
151
- if (priorityFee != null)
152
- out.priorityFee = priorityFee;
153
- const baseFeeMultiplier = num('baseFeeMultiplier');
154
- if (baseFeeMultiplier != null)
155
- out.baseFeeMultiplier = baseFeeMultiplier;
156
- }
157
- return out;
158
- }
159
- export function isBatchSignRequest(detail) {
160
- if (!detail)
161
- return false;
162
- const d = detail;
163
- const rawBatch = d.MessageRawBatch ?? d.messageRawBatch;
164
- const hashes = d.MessageHashes ?? d.messageHashes;
165
- if (Array.isArray(rawBatch) && rawBatch.length > 1)
166
- return true;
167
- if (Array.isArray(hashes) && hashes.length > 1)
168
- return true;
169
- return false;
170
- }
171
- export function getBatchLength(detail) {
172
- if (!detail)
173
- return 1;
174
- const d = detail;
175
- const rawBatch = d.MessageRawBatch ?? d.messageRawBatch;
176
- const hashes = d.MessageHashes ?? d.messageHashes;
177
- if (!isBatchSignRequest(detail))
178
- return 1;
179
- return Math.max(Array.isArray(rawBatch) ? rawBatch.length : 0, Array.isArray(hashes) ? hashes.length : 0, 1);
180
- }
181
- export function mpaTotalCreditsRemaining(status) {
182
- if (!status?.registered || status.error)
183
- return 0;
184
- const free = status.freeTransactionsLeft ?? 0;
185
- const r = status.remainingNonces ?? 0;
186
- return free + Math.max(0, r - free);
187
- }
188
- export function getMessageRawForDetail(detail, index) {
189
- if (!detail)
190
- return undefined;
191
- const d = detail;
192
- const topRaw = (d.MessageRaw ?? d.messageRaw);
193
- const rawBatch = d.MessageRawBatch ?? d.messageRawBatch;
194
- if (index === 0 && topRaw != null && String(topRaw).trim() !== '') {
195
- return String(topRaw);
196
- }
197
- if (Array.isArray(rawBatch)) {
198
- if (rawBatch[index] != null)
199
- return String(rawBatch[index]);
200
- if (index > 0 && rawBatch[index - 1] != null)
201
- return String(rawBatch[index - 1]);
202
- }
203
- if (index === 0)
204
- return topRaw != null ? String(topRaw) : undefined;
205
- return undefined;
206
- }
207
- export function tryParseNonceFromMessageRawForGetSig(raw) {
208
- if (raw == null || typeof raw !== 'string')
209
- return null;
210
- const t = raw.trim();
211
- if (!t)
212
- return null;
213
- const hex = (t.startsWith('0x') ? t : `0x${t}`);
214
- if (hex.length < 10)
215
- return null;
216
- try {
217
- const parsed = parseTransaction(hex);
218
- const n = parsed.nonce;
219
- const num = typeof n === 'bigint' ? Number(n) : Number(n);
220
- if (!Number.isFinite(num) || num < 0)
221
- return null;
222
- return num;
223
- }
224
- catch {
225
- return null;
226
- }
227
- }
228
- export function getSignatureTextForDetail(detail, index) {
229
- if (!detail)
230
- return undefined;
231
- const d = detail;
232
- const batchMeta = getBatchMeta(detail);
233
- const topSig = detail.SignatureText;
234
- if (index === 0 && topSig != null && String(topSig).trim() !== '') {
235
- return String(topSig);
236
- }
237
- if (batchMeta[index]?.signatureText != null &&
238
- String(batchMeta[index].signatureText).trim() !== '') {
239
- return String(batchMeta[index].signatureText);
240
- }
241
- if (index > 0 &&
242
- batchMeta[index - 1]?.signatureText != null &&
243
- String(batchMeta[index - 1].signatureText).trim() !== '') {
244
- return String(batchMeta[index - 1].signatureText);
245
- }
246
- if (index === 0)
247
- return topSig != null ? String(topSig) : undefined;
248
- return undefined;
249
- }
250
- export function getDestinationAddressForDetail(detail, index) {
251
- if (!detail)
252
- return undefined;
253
- const batchMeta = getBatchMeta(detail);
254
- const topAddr = detail.DestinationAddress;
255
- if (index === 0 && topAddr != null && String(topAddr).trim() !== '') {
256
- return String(topAddr);
257
- }
258
- if (batchMeta[index]?.destinationAddress != null &&
259
- String(batchMeta[index].destinationAddress).trim() !== '') {
260
- return String(batchMeta[index].destinationAddress);
261
- }
262
- if (index > 0 &&
263
- batchMeta[index - 1]?.destinationAddress != null &&
264
- String(batchMeta[index - 1].destinationAddress).trim() !== '') {
265
- return String(batchMeta[index - 1].destinationAddress);
266
- }
267
- if (index === 0)
268
- return topAddr != null ? String(topAddr) : undefined;
269
- return undefined;
270
- }
271
- export function getBatchMeta(detail) {
272
- const parsed = parseSignRequestExtraJSON(detail);
273
- if (!parsed)
274
- return [];
275
- const meta = parsed.batchMeta;
276
- if (!Array.isArray(meta))
277
- return [];
278
- return meta.map(m => ({
279
- destinationAddress: typeof m.destinationAddress === 'string'
280
- ? m.destinationAddress
281
- : '',
282
- signatureText: typeof m.signatureText === 'string'
283
- ? m.signatureText
284
- : '',
285
- }));
286
- }
287
- export function recordLooksLikeProposalTxParams(o) {
288
- const gl = o.gasLimit ?? o.GasLimit ?? o.gas_limit;
289
- const tt = o.txType ?? o.TxType ?? o.tx_type;
290
- return gl != null && String(gl).trim() !== '' && tt != null && String(tt).trim() !== '';
291
- }
292
- export function getProposalTxParamsForDetailIndex(txParamsEnvelope, isBatch, index) {
293
- if (!txParamsEnvelope)
294
- return null;
295
- const batchArr = txParamsEnvelope.proposalTxParams ??
296
- txParamsEnvelope.ProposalTxParams ??
297
- txParamsEnvelope.proposal_tx_params;
298
- if (Array.isArray(batchArr) && batchArr.length > 0) {
299
- const row = batchArr[index];
300
- if (row && typeof row === 'object' && !Array.isArray(row)) {
301
- return row;
302
- }
303
- return null;
304
- }
305
- const single = txParamsEnvelope.txParams ?? txParamsEnvelope.TxParams;
306
- if (single && typeof single === 'object' && !Array.isArray(single)) {
307
- if (!isBatch)
308
- return single;
309
- if (isBatch && index === 0)
310
- return single;
311
- }
312
- if (recordLooksLikeProposalTxParams(txParamsEnvelope)) {
313
- if (!isBatch)
314
- return txParamsEnvelope;
315
- if (isBatch && index === 0)
316
- return txParamsEnvelope;
317
- }
318
- return null;
319
- }
320
- export function resolveProposalGasLimitWeiForDetailIndex(detail, index) {
321
- if (!detail)
322
- return null;
323
- const d = detail;
324
- const batchArr = (d.proposal_tx_params ??
325
- d.proposalTxParams ??
326
- d.ProposalTxParams);
327
- if (Array.isArray(batchArr) && batchArr.length > index) {
328
- const row = batchArr[index];
329
- if (row && typeof row === 'object' && !Array.isArray(row)) {
330
- const r = row;
331
- const gl = parsePositiveGasLimitBigInt(r.gas_limit ?? r.gasLimit ?? r.GasLimit ?? r.gas);
332
- if (gl != null)
333
- return gl;
334
- }
335
- }
336
- if (index === 0) {
337
- const single = (d.txParams ?? d.TxParams);
338
- if (single && typeof single === 'object') {
339
- const gl = parsePositiveGasLimitBigInt(single.gasLimit ?? single.GasLimit ?? single.gas_limit ?? single.gas);
340
- if (gl != null)
341
- return gl;
342
- }
343
- }
344
- return null;
345
- }
346
- function parsePositiveGasLimitBigInt(raw) {
347
- if (raw == null)
348
- return null;
349
- try {
350
- const s = String(raw).trim();
351
- if (!s)
352
- return null;
353
- const n = BigInt(s);
354
- return n > 0n ? n : null;
355
- }
356
- catch {
357
- return null;
358
- }
359
- }
360
- export function buildSignedTxFromUnsignedAndSignature(serializedUnsignedHex, sigr, sigs, sigrecover) {
361
- try {
362
- const hex = serializedUnsignedHex.trim().startsWith('0x')
363
- ? serializedUnsignedHex.trim()
364
- : `0x${serializedUnsignedHex.trim()}`;
365
- const parsed = parseTransaction(hex);
366
- if (!parsed)
367
- return null;
368
- const r = (sigr.startsWith('0x') ? sigr : `0x${sigr}`);
369
- const s = (sigs.startsWith('0x') ? sigs : `0x${sigs}`);
370
- const recovery = (sigrecover ?? '').trim().toLowerCase();
371
- const isRecoveryOne = recovery === '01' || recovery === '1';
372
- const v = parsed.type === 'legacy' ? (isRecoveryOne ? 28n : 27n) : isRecoveryOne ? 1n : 0n;
373
- const signed = serializeTransaction(parsed, { r, s, v });
374
- return signed;
375
- }
376
- catch {
377
- return null;
378
- }
379
- }
380
- export function buildBatchSignedTxsFromResult(result) {
381
- const batchSigs = (result.batchsignatures ?? result.BatchSignatures);
382
- const rawBatch = (result.MessageRawBatch ?? result.messageRawBatch);
383
- if (!Array.isArray(batchSigs) ||
384
- !Array.isArray(rawBatch) ||
385
- batchSigs.length !== rawBatch.length ||
386
- batchSigs.length === 0) {
387
- return null;
388
- }
389
- const out = [];
390
- for (let i = 0; i < batchSigs.length; i++) {
391
- const sig = batchSigs[i];
392
- if (!sig || typeof sig !== 'object')
393
- return null;
394
- const sigr = String(sig.sigr ?? sig.Sigr ?? '').trim();
395
- const sigs = String(sig.sigs ?? sig.Sigs ?? '').trim();
396
- const sigrecover = String(sig.sigrecover ?? sig.Sigrecover ?? '').trim();
397
- const raw = rawBatch[i];
398
- if (!sigr || !sigs || raw == null)
399
- return null;
400
- const signed = buildSignedTxFromUnsignedAndSignature(String(raw), sigr, sigs, sigrecover);
401
- if (!signed)
402
- return null;
403
- out.push(signed);
404
- }
405
- return out;
406
- }
407
- export function keyGenIdFromRecord(r) {
408
- if (!r)
409
- return '';
410
- const d = r;
411
- const fromTop = d['KeyGenRequestId'] ??
412
- d['keyGenRequestId'] ??
413
- d.KeyGenRequestId ??
414
- d.keyGenRequestId ??
415
- d.keygenRequestId ??
416
- d.KeygenRequestId;
417
- let s = fromTop != null ? String(fromTop).trim() : '';
418
- if (s)
419
- return s;
420
- const extra = parseSignRequestExtraJSON(r);
421
- if (extra) {
422
- const e = extra['KeyGenRequestId'] ??
423
- extra['keyGenRequestId'] ??
424
- extra.KeyGenRequestId ??
425
- extra.keyGenRequestId ??
426
- extra.keygenRequestId ??
427
- extra.KeygenRequestId;
428
- s = e != null ? String(e).trim() : '';
429
- }
430
- return s;
431
- }
432
- export function messageRawToCalldata(rawHex) {
433
- const t = rawHex.trim();
434
- if (!t)
435
- return '0x';
436
- if (t.startsWith('{') || t.startsWith('['))
437
- return null;
438
- try {
439
- const hex = (t.startsWith('0x') ? t : `0x${t}`);
440
- if (hex.length < 10)
441
- return hex;
442
- const parsed = parseTransaction(hex);
443
- const d = parsed.data;
444
- if (d != null && String(d).length > 0)
445
- return String(d);
446
- return hex;
447
- }
448
- catch {
449
- return t.startsWith('0x') ? t : `0x${t}`;
450
- }
451
- }
452
- export function broadcastErrorMessage(rawMessage) {
453
- const lower = rawMessage.toLowerCase();
454
- if (lower.includes('replacement transaction underpriced') ||
455
- lower.includes('replacement gas price')) {
456
- return ('Replacement underpriced: a tx with the same nonce is already in the mempool. ' +
457
- 'Increase max fee and priority above the pending transaction, or run Get Sig again.');
458
- }
459
- if (lower.includes('already known') || lower.includes('alreadyknown')) {
460
- return 'This exact transaction was already submitted. Check the block explorer.';
461
- }
462
- if (lower.includes('nonce too low') || lower.includes('nonce too high')) {
463
- return 'Nonce mismatch: the chain has already moved past this transaction.';
464
- }
465
- return rawMessage;
466
- }
467
- //# sourceMappingURL=sign-request-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign-request-utils.js","sourceRoot":"","sources":["../../../src/detops/mpc/sign-request-utils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { NodeSdkConfig } from '../../config/schema.js';
2
- import type { SdkResult } from '../result.js';
3
- export declare function transferNativeGas(config: NodeSdkConfig, input: unknown): Promise<SdkResult<{
4
- requestId: string;
5
- }>>;
6
- //# sourceMappingURL=transfer-native.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transfer-native.d.ts","sourceRoot":"","sources":["../../../src/detops/mpc/transfer-native.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAY5C,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC,CA4KzC"}
@@ -1,167 +0,0 @@
1
- import { createPublicClient, defineChain, getAddress, http, keccak256, parseGwei, serializeTransaction, } from 'viem';
2
- import { TransferNativeInputSchema } from './schemas.js';
3
- import { fetchKeyGenResult } from '../keygen.js';
4
- import { resolveChainRegistryEntry } from '../registry/networks.js';
5
- import { getClientIdFromKeyGenResult, isValidRpcUrl } from '../../evm/rpc-utils.js';
6
- import { fetchChainFeeParams } from '../../evm/chain-fees.js';
7
- import { gweiToDecimalString } from '../../evm/gwei.js';
8
- import { composeFeePayloadToTxParams } from '../../evm/tx-params.js';
9
- import { signAndSubmitMultiSignRequest } from './sign-request-body.js';
10
- import { assertExecutorNativeSufficientForProposal } from './gas-preflight.js';
11
- export async function transferNativeGas(config, input) {
12
- const parsed = TransferNativeInputSchema.safeParse(input);
13
- if (!parsed.success) {
14
- return { ok: false, reason: 'Invalid native transfer input.' };
15
- }
16
- const kg = await fetchKeyGenResult(config, parsed.data.keyGenId);
17
- if (!kg.ok)
18
- return kg;
19
- const chainResult = await resolveChainRegistryEntry(config, parsed.data.chainId);
20
- if (!chainResult.ok)
21
- return chainResult;
22
- const chainDetail = chainResult.data;
23
- const rpcUrl = (chainDetail.rpcGateway ?? '').trim();
24
- if (!rpcUrl || !isValidRpcUrl(rpcUrl)) {
25
- return { ok: false, reason: 'Chain has no RPC URL.' };
26
- }
27
- const chain = defineChain({
28
- id: parsed.data.chainId,
29
- name: 'Assets',
30
- nativeCurrency: { decimals: 18, name: 'Ether', symbol: 'ETH' },
31
- rpcUrls: { default: { http: [rpcUrl] } },
32
- });
33
- const publicClient = createPublicClient({ chain, transport: http(rpcUrl) });
34
- const executorAddress = getAddress(kg.data.ethereumaddress.startsWith('0x')
35
- ? kg.data.ethereumaddress
36
- : `0x${kg.data.ethereumaddress}`);
37
- const toAddress = getAddress(parsed.data.toAddress.startsWith('0x')
38
- ? parsed.data.toAddress
39
- : `0x${parsed.data.toAddress}`);
40
- const valueBigInt = BigInt(parsed.data.amountWei);
41
- if (valueBigInt <= 0n) {
42
- return { ok: false, reason: 'Amount must be greater than zero.' };
43
- }
44
- const nonce = parsed.data.startingNonce ??
45
- (await publicClient.getTransactionCount({
46
- address: executorAddress,
47
- blockTag: 'pending',
48
- }));
49
- const feeParams = await fetchChainFeeParams(rpcUrl, parsed.data.chainId);
50
- const legacy = Boolean(chainDetail?.legacy) || !feeParams.isEip1559;
51
- const gasLimit = chainDetail?.gasLimit != null && chainDetail.gasLimit > 0
52
- ? BigInt(Math.floor(chainDetail.gasLimit))
53
- : 21000n;
54
- const gasFeeMultiplier = chainDetail?.gasMultiplier != null ? Number(chainDetail.gasMultiplier) : undefined;
55
- const dataHex = '0x';
56
- const txFeePayload = {
57
- txNonce: nonce,
58
- txGasLimit: gasLimit.toString(),
59
- };
60
- let txSigningHash;
61
- if (legacy) {
62
- let gasPriceWei = await publicClient.getGasPrice();
63
- if (gasFeeMultiplier != null && gasFeeMultiplier > 0) {
64
- gasPriceWei = (gasPriceWei * BigInt(100 + gasFeeMultiplier)) / 100n;
65
- }
66
- const configuredGasPriceGwei = chainDetail?.gasPrice != null ? Number(chainDetail.gasPrice) : undefined;
67
- const configuredGasPriceWei = configuredGasPriceGwei != null && configuredGasPriceGwei > 0
68
- ? parseGwei(gweiToDecimalString(configuredGasPriceGwei))
69
- : 0n;
70
- const gasPrice = configuredGasPriceWei > gasPriceWei ? configuredGasPriceWei : gasPriceWei;
71
- txFeePayload.txGasPrice = gasPrice.toString();
72
- const serialized = serializeTransaction({
73
- type: 'legacy',
74
- to: toAddress,
75
- data: dataHex,
76
- value: valueBigInt,
77
- gas: gasLimit,
78
- gasPrice,
79
- nonce,
80
- chainId: parsed.data.chainId,
81
- });
82
- txSigningHash = keccak256(serialized);
83
- }
84
- else {
85
- const fetchedBase = feeParams.baseFeeGwei ?? 0;
86
- const fetchedPriority = feeParams.priorityFeeGwei ?? 0;
87
- const configuredBase = chainDetail?.baseFee != null ? Number(chainDetail.baseFee) : 0;
88
- const configuredPriority = chainDetail?.priorityFee != null ? Number(chainDetail.priorityFee) : 0;
89
- const effectiveBaseFeeGwei = Math.max(fetchedBase, configuredBase);
90
- const effectivePriorityFeeGwei = Math.max(fetchedPriority, configuredPriority);
91
- const baseFeeMultiplierPct = chainDetail?.baseFeeMultiplier != null
92
- ? Math.max(100, Number(chainDetail.baseFeeMultiplier))
93
- : 100;
94
- const baseComponentGwei = (effectiveBaseFeeGwei * baseFeeMultiplierPct) / 100;
95
- const maxFeePerGasGwei = baseComponentGwei + effectivePriorityFeeGwei;
96
- let maxPriorityFeePerGas = effectivePriorityFeeGwei > 0
97
- ? parseGwei(gweiToDecimalString(effectivePriorityFeeGwei))
98
- : parseGwei('1');
99
- let maxFeePerGas = effectiveBaseFeeGwei > 0
100
- ? parseGwei(gweiToDecimalString(maxFeePerGasGwei))
101
- : maxPriorityFeePerGas * 2n;
102
- if (gasFeeMultiplier != null && gasFeeMultiplier > 0) {
103
- maxPriorityFeePerGas =
104
- (maxPriorityFeePerGas * BigInt(100 + gasFeeMultiplier)) / 100n;
105
- maxFeePerGas = (maxFeePerGas * BigInt(100 + gasFeeMultiplier)) / 100n;
106
- }
107
- txFeePayload.txMaxFeePerGas = maxFeePerGas.toString();
108
- txFeePayload.txMaxPriorityFeePerGas = maxPriorityFeePerGas.toString();
109
- const serialized = serializeTransaction({
110
- type: 'eip1559',
111
- to: toAddress,
112
- data: dataHex,
113
- value: valueBigInt,
114
- gas: gasLimit,
115
- maxFeePerGas,
116
- maxPriorityFeePerGas,
117
- nonce,
118
- chainId: parsed.data.chainId,
119
- });
120
- txSigningHash = keccak256(serialized);
121
- }
122
- const msgHash = txSigningHash.startsWith('0x')
123
- ? txSigningHash.slice(2)
124
- : txSigningHash;
125
- const keyList = kg.data.keylist ?? [];
126
- const clientId = getClientIdFromKeyGenResult(kg.data);
127
- const signatureText = JSON.stringify({
128
- signature: 'transfer',
129
- names: ['to', 'value'],
130
- });
131
- const bodyForSign = {
132
- keyList,
133
- pubKey: kg.data.pubkeyhex,
134
- msgHash,
135
- msgRaw: '0x',
136
- destinationChainID: String(parsed.data.chainId),
137
- destinationAddress: parsed.data.toAddress,
138
- destinationContract: parsed.data.toAddress,
139
- signatureText,
140
- ...txFeePayload,
141
- sendGas: true,
142
- value: parsed.data.amountWei,
143
- };
144
- if (clientId)
145
- bodyForSign.clientId = clientId;
146
- if (parsed.data.purpose)
147
- bodyForSign.purpose = parsed.data.purpose;
148
- const tp = composeFeePayloadToTxParams(txFeePayload, legacy);
149
- if (tp)
150
- bodyForSign.txParams = tp;
151
- const proposal = {
152
- bodyForSign,
153
- messageToSign: JSON.stringify(bodyForSign),
154
- chainId: parsed.data.chainId,
155
- isBatch: false,
156
- };
157
- const preflight = await assertExecutorNativeSufficientForProposal(config, {
158
- keyGenResult: kg.data,
159
- chainId: parsed.data.chainId,
160
- proposal,
161
- valueWeiPerLeg: [valueBigInt],
162
- });
163
- if (!preflight.ok)
164
- return preflight;
165
- return signAndSubmitMultiSignRequest(config, bodyForSign);
166
- }
167
- //# sourceMappingURL=transfer-native.js.map