@pushchain/core 6.0.26 → 6.0.27-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 (169) hide show
  1. package/AGW.md +194 -0
  2. package/CHANGELOG.md +8 -0
  3. package/README.md +2 -0
  4. package/package.json +7 -1
  5. package/src/lib/agentic/agentic.d.ts +23 -0
  6. package/src/lib/agentic/agentic.js +51 -0
  7. package/src/lib/agentic/agentic.types.d.ts +409 -0
  8. package/src/lib/agentic/agentic.types.js +3 -0
  9. package/src/lib/agentic/capabilities.d.ts +37 -0
  10. package/src/lib/agentic/capabilities.js +64 -0
  11. package/src/lib/agentic/chain.d.ts +3 -0
  12. package/src/lib/agentic/chain.js +15 -0
  13. package/src/lib/agentic/codec/abi-layout.d.ts +15 -0
  14. package/src/lib/agentic/codec/abi-layout.js +121 -0
  15. package/src/lib/agentic/codec/defaults.d.ts +51 -0
  16. package/src/lib/agentic/codec/defaults.js +53 -0
  17. package/src/lib/agentic/codec/ids.d.ts +35 -0
  18. package/src/lib/agentic/codec/ids.js +74 -0
  19. package/src/lib/agentic/codec/native.d.ts +75 -0
  20. package/src/lib/agentic/codec/native.js +328 -0
  21. package/src/lib/agentic/codec/rules.d.ts +45 -0
  22. package/src/lib/agentic/codec/rules.js +110 -0
  23. package/src/lib/agentic/codec/selectors.d.ts +19 -0
  24. package/src/lib/agentic/codec/selectors.js +60 -0
  25. package/src/lib/agentic/codec/session.d.ts +54 -0
  26. package/src/lib/agentic/codec/session.js +65 -0
  27. package/src/lib/agentic/codec/svm-accounts.d.ts +35 -0
  28. package/src/lib/agentic/codec/svm-accounts.js +68 -0
  29. package/src/lib/agentic/codec/svm-idl.d.ts +11 -0
  30. package/src/lib/agentic/codec/svm-idl.js +226 -0
  31. package/src/lib/agentic/codec/svm-terms.d.ts +157 -0
  32. package/src/lib/agentic/codec/svm-terms.js +242 -0
  33. package/src/lib/agentic/codec/universal-terms.d.ts +67 -0
  34. package/src/lib/agentic/codec/universal-terms.js +41 -0
  35. package/src/lib/agentic/codec/universal.d.ts +14 -0
  36. package/src/lib/agentic/codec/universal.js +157 -0
  37. package/src/lib/agentic/constants.d.ts +11 -0
  38. package/src/lib/agentic/constants.js +15 -0
  39. package/src/lib/agentic/context.d.ts +29 -0
  40. package/src/lib/agentic/context.js +56 -0
  41. package/src/lib/agentic/contracts/abi/v5/agent-validator.d.ts +105 -0
  42. package/src/lib/agentic/contracts/abi/v5/agent-validator.js +149 -0
  43. package/src/lib/agentic/contracts/abi/v5/agw-factory.d.ts +847 -0
  44. package/src/lib/agentic/contracts/abi/v5/agw-factory.js +1108 -0
  45. package/src/lib/agentic/contracts/abi/v5/agw.d.ts +1211 -0
  46. package/src/lib/agentic/contracts/abi/v5/agw.js +1588 -0
  47. package/src/lib/agentic/contracts/abi/v5/index.d.ts +6 -0
  48. package/src/lib/agentic/contracts/abi/v5/index.js +17 -0
  49. package/src/lib/agentic/contracts/abi/v5/smart-session.d.ts +1493 -0
  50. package/src/lib/agentic/contracts/abi/v5/smart-session.js +1965 -0
  51. package/src/lib/agentic/contracts/abi/v5/universal-rules-policy.d.ts +1640 -0
  52. package/src/lib/agentic/contracts/abi/v5/universal-rules-policy.js +2160 -0
  53. package/src/lib/agentic/contracts/donut-v5.d.ts +11 -0
  54. package/src/lib/agentic/contracts/donut-v5.js +15 -0
  55. package/src/lib/agentic/contracts/prc20-metadata.d.ts +26 -0
  56. package/src/lib/agentic/contracts/prc20-metadata.js +87 -0
  57. package/src/lib/agentic/contracts/reader.d.ts +35 -0
  58. package/src/lib/agentic/contracts/reader.js +16 -0
  59. package/src/lib/agentic/contracts/v5.d.ts +5323 -0
  60. package/src/lib/agentic/contracts/v5.js +316 -0
  61. package/src/lib/agentic/deployments.d.ts +61 -0
  62. package/src/lib/agentic/deployments.js +203 -0
  63. package/src/lib/agentic/errors.d.ts +71 -0
  64. package/src/lib/agentic/errors.js +92 -0
  65. package/src/lib/agentic/execution/guards.d.ts +9 -0
  66. package/src/lib/agentic/execution/guards.js +30 -0
  67. package/src/lib/agentic/execution/outbound.d.ts +55 -0
  68. package/src/lib/agentic/execution/outbound.js +187 -0
  69. package/src/lib/agentic/execution/send.d.ts +9 -0
  70. package/src/lib/agentic/execution/send.js +276 -0
  71. package/src/lib/agentic/execution/svm-instruction.d.ts +24 -0
  72. package/src/lib/agentic/execution/svm-instruction.js +40 -0
  73. package/src/lib/agentic/execution/svm-outbound.d.ts +18 -0
  74. package/src/lib/agentic/execution/svm-outbound.js +86 -0
  75. package/src/lib/agentic/execution/svm-payload.d.ts +18 -0
  76. package/src/lib/agentic/execution/svm-payload.js +136 -0
  77. package/src/lib/agentic/execution/svm-public.d.ts +5 -0
  78. package/src/lib/agentic/execution/svm-public.js +182 -0
  79. package/src/lib/agentic/execution/svm-quote.d.ts +11 -0
  80. package/src/lib/agentic/execution/svm-quote.js +24 -0
  81. package/src/lib/agentic/execution/svm-send.d.ts +44 -0
  82. package/src/lib/agentic/execution/svm-send.js +90 -0
  83. package/src/lib/agentic/index.d.ts +5 -0
  84. package/src/lib/agentic/index.js +10 -0
  85. package/src/lib/agentic/management/common.d.ts +29 -0
  86. package/src/lib/agentic/management/common.js +114 -0
  87. package/src/lib/agentic/management/create.d.ts +16 -0
  88. package/src/lib/agentic/management/create.js +271 -0
  89. package/src/lib/agentic/management/duplicates.d.ts +4 -0
  90. package/src/lib/agentic/management/duplicates.js +20 -0
  91. package/src/lib/agentic/management/label.d.ts +3 -0
  92. package/src/lib/agentic/management/label.js +17 -0
  93. package/src/lib/agentic/management/prepare.d.ts +7 -0
  94. package/src/lib/agentic/management/prepare.js +95 -0
  95. package/src/lib/agentic/management/rules-write.d.ts +42 -0
  96. package/src/lib/agentic/management/rules-write.js +279 -0
  97. package/src/lib/agentic/management/svm-context.d.ts +25 -0
  98. package/src/lib/agentic/management/svm-context.js +55 -0
  99. package/src/lib/agentic/management/svm-metadata.d.ts +10 -0
  100. package/src/lib/agentic/management/svm-metadata.js +56 -0
  101. package/src/lib/agentic/management/svm-public.d.ts +6 -0
  102. package/src/lib/agentic/management/svm-public.js +125 -0
  103. package/src/lib/agentic/management/svm.d.ts +27 -0
  104. package/src/lib/agentic/management/svm.js +150 -0
  105. package/src/lib/agentic/presets/catalog.d.ts +21 -0
  106. package/src/lib/agentic/presets/catalog.js +10 -0
  107. package/src/lib/agentic/presets/index.d.ts +5 -0
  108. package/src/lib/agentic/presets/index.js +190 -0
  109. package/src/lib/agentic/presets/types.d.ts +44 -0
  110. package/src/lib/agentic/presets/types.js +3 -0
  111. package/src/lib/agentic/public-rule.d.ts +9 -0
  112. package/src/lib/agentic/public-rule.js +342 -0
  113. package/src/lib/agentic/reads/checkpoints.d.ts +17 -0
  114. package/src/lib/agentic/reads/checkpoints.js +109 -0
  115. package/src/lib/agentic/reads/rules.d.ts +42 -0
  116. package/src/lib/agentic/reads/rules.js +286 -0
  117. package/src/lib/agentic/reads/snapshot.d.ts +28 -0
  118. package/src/lib/agentic/reads/snapshot.js +85 -0
  119. package/src/lib/agentic/reads/svm.d.ts +17 -0
  120. package/src/lib/agentic/reads/svm.js +52 -0
  121. package/src/lib/agentic/reads/wallets.d.ts +25 -0
  122. package/src/lib/agentic/reads/wallets.js +122 -0
  123. package/src/lib/agentic/response.d.ts +41 -0
  124. package/src/lib/agentic/response.js +358 -0
  125. package/src/lib/agentic/revert.d.ts +7 -0
  126. package/src/lib/agentic/revert.js +102 -0
  127. package/src/lib/agentic/runtime.d.ts +58 -0
  128. package/src/lib/agentic/runtime.js +95 -0
  129. package/src/lib/agentic/utils.d.ts +57 -0
  130. package/src/lib/agentic/utils.js +165 -0
  131. package/src/lib/agentic/wallet.d.ts +32 -0
  132. package/src/lib/agentic/wallet.js +130 -0
  133. package/src/lib/constants/enums.d.ts +6 -3
  134. package/src/lib/constants/enums.js +6 -3
  135. package/src/lib/constants/index.d.ts +60 -4
  136. package/src/lib/constants/index.js +17 -3
  137. package/src/lib/constants/read-state.d.ts +9 -0
  138. package/src/lib/constants/read-state.js +13 -1
  139. package/src/lib/index.d.ts +8 -2
  140. package/src/lib/index.js +9 -1
  141. package/src/lib/orchestrator/internals/errors.d.ts +7 -0
  142. package/src/lib/orchestrator/internals/errors.js +13 -1
  143. package/src/lib/orchestrator/internals/execute-standard.d.ts +3 -1
  144. package/src/lib/orchestrator/internals/execute-standard.js +3 -3
  145. package/src/lib/orchestrator/internals/outbound-sync.js +52 -7
  146. package/src/lib/orchestrator/internals/push-chain-tx.d.ts +1 -1
  147. package/src/lib/orchestrator/internals/push-chain-tx.js +13 -1
  148. package/src/lib/orchestrator/orchestrator.d.ts +3 -0
  149. package/src/lib/orchestrator/orchestrator.js +13 -1
  150. package/src/lib/orchestrator/orchestrator.types.d.ts +8 -0
  151. package/src/lib/orchestrator/route-detector.js +3 -2
  152. package/src/lib/orchestrator/svm-idl/resolve.d.ts +2 -0
  153. package/src/lib/orchestrator/svm-idl/resolve.js +11 -1
  154. package/src/lib/progress-hook/progress-hook.js +63 -0
  155. package/src/lib/progress-hook/progress-hook.types.d.ts +10 -1
  156. package/src/lib/progress-hook/progress-hook.types.js +10 -0
  157. package/src/lib/push-chain/push-chain.d.ts +56 -15
  158. package/src/lib/push-chain/push-chain.js +66 -7
  159. package/src/lib/read-state/destination.js +6 -1
  160. package/src/lib/read-state/read-params.d.ts +3 -3
  161. package/src/lib/read-state/read-params.js +3 -2
  162. package/src/lib/read-state/read-state.types.d.ts +3 -1
  163. package/src/lib/read-state/read-tracker.js +2 -2
  164. package/src/lib/read-state/spec-builder.js +1 -1
  165. package/src/lib/universal/prc20-address.d.ts +15 -0
  166. package/src/lib/universal/prc20-address.js +135 -0
  167. package/src/lib/utils.d.ts +6 -13
  168. package/src/lib/utils.js +5 -128
  169. package/src/lib/vm-client/evm-client.js +34 -20
@@ -205,12 +205,19 @@ class EvmClient {
205
205
  const resolveGas = async () => {
206
206
  if (explicitGas)
207
207
  return explicitGas;
208
- const estimate = () => this.publicClient.estimateGas({
209
- account: signer.account.address,
210
- to,
211
- data,
212
- value,
213
- });
208
+ const estimate = async () => {
209
+ const estimatedGas = await this.publicClient.estimateGas({
210
+ account: signer.account.address,
211
+ to,
212
+ data,
213
+ value,
214
+ });
215
+ // Leave headroom for nested calls and state changes before inclusion,
216
+ // as on the EIP-7702 batch path. Donut can return an estimate that
217
+ // reverts inside an AGW -> gateway -> token call even at the same state.
218
+ // This is the Push execution limit, separate from destination gas.
219
+ return (estimatedGas * BigInt(120) + BigInt(99)) / BigInt(100);
220
+ };
214
221
  if (data !== '0x')
215
222
  return estimate();
216
223
  // A plain native transfer to a code-free EOA always costs 21k. Empty
@@ -323,30 +330,37 @@ class EvmClient {
323
330
  catch (err) {
324
331
  throw new EIP7702NotSupportedError(err);
325
332
  }
326
- // Estimate gas against the delegated account: override the EOA's code with
327
- // the 7702 delegation designator (0xef0100 || executor) so estimation runs
328
- // the executor. Fall back to a safe ceiling if the node rejects overrides.
333
+ // Prefer authorization-aware estimation of the actual type-4 transaction.
334
+ // Some RPCs reject that format or state overrides. An ordinary estimate is
335
+ // valid only if the account is already delegated to this exact executor.
336
+ // Never guess a per-call ceiling: contract deployment/grants vary in cost.
337
+ const delegation = ('0xef0100' + executor.slice(2));
329
338
  let gas;
330
339
  try {
331
340
  gas = await this.publicClient.estimateGas({
332
341
  account,
333
342
  to: account,
334
343
  data,
335
- stateOverride: [
336
- {
337
- address: account,
338
- code: ('0xef0100' + executor.slice(2)),
339
- },
340
- ],
344
+ authorizationList: [authorization],
341
345
  });
342
- gas = (gas * BigInt(120)) / BigInt(100); // headroom for delegation + auth
343
346
  }
344
347
  catch {
345
- // Estimation unavailable (e.g. node rejects state overrides). Scale the
346
- // ceiling with the batch size so large batches don't OOG — the legacy
347
- // per-call loop budgeted ~500k gas per call; mirror that plus overhead.
348
- gas = BigInt(500_000) * BigInt(calls.length) + BigInt(100_000);
348
+ const code = await this.publicClient.getCode({ address: account });
349
+ if (code?.toLowerCase() === delegation.toLowerCase()) {
350
+ gas = await this.publicClient.estimateGas({ account, to: account, data });
351
+ }
352
+ else {
353
+ gas = await this.publicClient.estimateGas({
354
+ account,
355
+ to: account,
356
+ data,
357
+ stateOverride: [{ address: account, code: delegation }],
358
+ });
359
+ }
349
360
  }
361
+ // The fallback estimates omit authorization processing (25k intrinsic).
362
+ // Include it conservatively on every path, plus 20% execution headroom.
363
+ gas = (gas * BigInt(120) + BigInt(99)) / BigInt(100) + BigInt(25_000);
350
364
  const unsignedTx = (0, viem_1.serializeTransaction)({
351
365
  chainId,
352
366
  type: 'eip7702',