@dev.sail.money/sailor 1.4.0-244 → 1.4.0-246

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 (109) hide show
  1. package/package.json +1 -1
  2. package/packages/cli/dist/index.cjs +58 -32
  3. package/packages/cli/dist/server.cjs +66 -15
  4. package/packages/sdk/dist/chains.d.ts +7 -0
  5. package/packages/sdk/dist/chains.d.ts.map +1 -1
  6. package/packages/sdk/dist/chains.js +25 -2
  7. package/packages/sdk/dist/chains.js.map +1 -1
  8. package/packages/sdk/dist/fees.d.ts +7 -3
  9. package/packages/sdk/dist/fees.d.ts.map +1 -1
  10. package/packages/sdk/dist/fees.js +11 -7
  11. package/packages/sdk/dist/fees.js.map +1 -1
  12. package/packages/sdk/dist/index.d.ts +1 -1
  13. package/packages/sdk/dist/index.d.ts.map +1 -1
  14. package/packages/sdk/dist/index.js +1 -1
  15. package/packages/sdk/dist/index.js.map +1 -1
  16. package/packages/sdk/dist/intelligence.d.ts +1 -1
  17. package/packages/sdk/dist/intelligence.js +1 -1
  18. package/packages/sdk/dist/signing.d.ts +8 -2
  19. package/packages/sdk/dist/signing.d.ts.map +1 -1
  20. package/packages/sdk/dist/types.d.ts +11 -0
  21. package/packages/sdk/dist/types.d.ts.map +1 -1
  22. package/packages/ui/dist/assets/{add-sHg4oAtj.js → add-CtJUci6C.js} +1 -1
  23. package/packages/ui/dist/assets/{all-wallets-BhPcqrMm.js → all-wallets-CmoyTLu1.js} +1 -1
  24. package/packages/ui/dist/assets/{app-store-B_PQMwCf.js → app-store-DTGAxMMc.js} +1 -1
  25. package/packages/ui/dist/assets/{apple-CqAFK7Fj.js → apple-CWqFpAem.js} +1 -1
  26. package/packages/ui/dist/assets/{arrow-bottom-CbxIflTv.js → arrow-bottom-BFcyIsf6.js} +1 -1
  27. package/packages/ui/dist/assets/{arrow-bottom-circle-BFgY35YA.js → arrow-bottom-circle-D7LA8RLx.js} +1 -1
  28. package/packages/ui/dist/assets/{arrow-left-DCG2m2BY.js → arrow-left-Dw325uUv.js} +1 -1
  29. package/packages/ui/dist/assets/{arrow-right-NrPOhG6W.js → arrow-right-DUH-BM2U.js} +1 -1
  30. package/packages/ui/dist/assets/{arrow-top-BHTmGsDP.js → arrow-top-eaiSDE6T.js} +1 -1
  31. package/packages/ui/dist/assets/{bank-BqDvUazs.js → bank-CkMxHT1h.js} +1 -1
  32. package/packages/ui/dist/assets/{basic-CHFjQMod.js → basic-CUWDDxlb.js} +1 -1
  33. package/packages/ui/dist/assets/{browser-C_VdKE7p.js → browser-C7bBquZ7.js} +1 -1
  34. package/packages/ui/dist/assets/{card-w-1brQoV.js → card-DYhUqAqo.js} +1 -1
  35. package/packages/ui/dist/assets/{ccip-jvDTeGaI.js → ccip-Ce6Za_Q7.js} +1 -1
  36. package/packages/ui/dist/assets/{checkmark-CLBmxdAF.js → checkmark-BYWSBHZq.js} +1 -1
  37. package/packages/ui/dist/assets/{checkmark-bold-Ca_e1PMs.js → checkmark-bold-DXcFaXzG.js} +1 -1
  38. package/packages/ui/dist/assets/{chevron-bottom-BhvFRdSL.js → chevron-bottom-DFvy00qk.js} +1 -1
  39. package/packages/ui/dist/assets/{chevron-left-cjMaNbHC.js → chevron-left-WiP3Cux5.js} +1 -1
  40. package/packages/ui/dist/assets/{chevron-right-CRuHR0b-.js → chevron-right-D92guNRC.js} +1 -1
  41. package/packages/ui/dist/assets/{chevron-top-Bq0a2jj-.js → chevron-top-4LSvHoLT.js} +1 -1
  42. package/packages/ui/dist/assets/{chrome-store-Cieq6j7x.js → chrome-store-DXliZUXe.js} +1 -1
  43. package/packages/ui/dist/assets/{clock-Dkj5WbVg.js → clock-sCqloEyi.js} +1 -1
  44. package/packages/ui/dist/assets/{close-C8eE6Dfz.js → close-Dz0TKSii.js} +1 -1
  45. package/packages/ui/dist/assets/{coinPlaceholder-DndKH-8C.js → coinPlaceholder-QMi-sKN3.js} +1 -1
  46. package/packages/ui/dist/assets/{compass-DzoLByzm.js → compass-D-0gTf_V.js} +1 -1
  47. package/packages/ui/dist/assets/{copy-Y7UMmVLt.js → copy-DAc1EqPJ.js} +1 -1
  48. package/packages/ui/dist/assets/{core-BkWdAWjX.js → core-ntNpthWA.js} +3 -3
  49. package/packages/ui/dist/assets/{cursor-BAQNxqYB.js → cursor-BhrhwUyj.js} +1 -1
  50. package/packages/ui/dist/assets/{cursor-transparent-BUHY29Re.js → cursor-transparent-8cOX-3uX.js} +1 -1
  51. package/packages/ui/dist/assets/{desktop-DkZLCs5P.js → desktop-DyozX_8i.js} +1 -1
  52. package/packages/ui/dist/assets/{disconnect-CphsO-wg.js → disconnect-B8CfjrDl.js} +1 -1
  53. package/packages/ui/dist/assets/{discord-CYH46bgt.js → discord-Dr3yXdjP.js} +1 -1
  54. package/packages/ui/dist/assets/{etherscan-2-3-Icbx.js → etherscan-BNpBz1HD.js} +1 -1
  55. package/packages/ui/dist/assets/{exclamation-triangle-Bx9-1mpn.js → exclamation-triangle-DFY30hb1.js} +1 -1
  56. package/packages/ui/dist/assets/{extension-BuDZDNPV.js → extension-Dv3iYkI2.js} +1 -1
  57. package/packages/ui/dist/assets/{external-link-k6oTiNch.js → external-link-BflubRj1.js} +1 -1
  58. package/packages/ui/dist/assets/{facebook-BVB4qCju.js → facebook-BWFRpFEI.js} +1 -1
  59. package/packages/ui/dist/assets/{farcaster-CxfWmDK3.js → farcaster-jQMHtCE2.js} +1 -1
  60. package/packages/ui/dist/assets/{filters-CXyIzkBz.js → filters-Bj1lMjaM.js} +1 -1
  61. package/packages/ui/dist/assets/{github-Bga1HQTm.js → github-D3Y1bD4Z.js} +1 -1
  62. package/packages/ui/dist/assets/{google-CKLjkN5t.js → google-0pri24t7.js} +1 -1
  63. package/packages/ui/dist/assets/{help-circle-CW4A601v.js → help-circle-9YlhA7Xs.js} +1 -1
  64. package/packages/ui/dist/assets/{id-BaRFLHqy.js → id-2yC43QZe.js} +1 -1
  65. package/packages/ui/dist/assets/{image-4pE_c0pP.js → image-C_b8Yv_f.js} +1 -1
  66. package/packages/ui/dist/assets/{index-BKPTb_0U.js → index-B7KR7tEX.js} +1 -1
  67. package/packages/ui/dist/assets/{index-BaLMTrx4.js → index-Bf44ZhbB.js} +1 -1
  68. package/packages/ui/dist/assets/index-Bhs04pyf.js +1780 -0
  69. package/packages/ui/dist/assets/{index-CguqCMNp.js → index-CwgW7-a2.js} +1 -1
  70. package/packages/ui/dist/assets/{index-_n5fH6AD.js → index-DeLyQU4R.js} +3 -3
  71. package/packages/ui/dist/assets/{index.es-rQvUXQTw.js → index.es-472Wq2GN.js} +4 -4
  72. package/packages/ui/dist/assets/{info-UMAWEFh_.js → info-MHTInMgZ.js} +1 -1
  73. package/packages/ui/dist/assets/{info-circle-DuTp8NTC.js → info-circle-CWkQmZMQ.js} +1 -1
  74. package/packages/ui/dist/assets/{lightbulb-CkYYJbAa.js → lightbulb-DSHpsXDK.js} +1 -1
  75. package/packages/ui/dist/assets/{mail-CntZNMWz.js → mail-BY9B7ocg.js} +1 -1
  76. package/packages/ui/dist/assets/{metamask-sdk-DIj7UxWU.js → metamask-sdk-CGt17A-t.js} +1 -1
  77. package/packages/ui/dist/assets/{mobile-DdyrzTfW.js → mobile-kvpaAq-t.js} +1 -1
  78. package/packages/ui/dist/assets/{more-DpZ1Bqpv.js → more-DWUvbIxb.js} +1 -1
  79. package/packages/ui/dist/assets/{network-placeholder-B8yy8U56.js → network-placeholder-BPmLhg_I.js} +1 -1
  80. package/packages/ui/dist/assets/{nftPlaceholder-BXFbCJ-Z.js → nftPlaceholder-BoffPbNz.js} +1 -1
  81. package/packages/ui/dist/assets/{off-DavoQSqH.js → off-BQiIFK5j.js} +1 -1
  82. package/packages/ui/dist/assets/{play-store-BJeHSxBp.js → play-store-DqQyxCwm.js} +1 -1
  83. package/packages/ui/dist/assets/{plus-B-L3uTWl.js → plus-CznpWpiG.js} +1 -1
  84. package/packages/ui/dist/assets/{qr-code-CcQBy6o3.js → qr-code-vDajj4NN.js} +1 -1
  85. package/packages/ui/dist/assets/{recycle-horizontal-BLC3_x1m.js → recycle-horizontal-1Blw-7_T.js} +1 -1
  86. package/packages/ui/dist/assets/{refresh-78cbzBlS.js → refresh-BGL9QB-h.js} +1 -1
  87. package/packages/ui/dist/assets/{reown-logo-Bx5RmN6G.js → reown-logo-Bt-5VP9T.js} +1 -1
  88. package/packages/ui/dist/assets/{search-XWB8l5E2.js → search-BjIZCK7B.js} +1 -1
  89. package/packages/ui/dist/assets/{secp256k1-u9EmDRXd.js → secp256k1-CsXOYtlo.js} +1 -1
  90. package/packages/ui/dist/assets/{send-BjGwACTt.js → send-C91RzpHQ.js} +1 -1
  91. package/packages/ui/dist/assets/{swapHorizontal-DJWcWn3A.js → swapHorizontal-BYL8bzzZ.js} +1 -1
  92. package/packages/ui/dist/assets/{swapHorizontalBold-CG930oAl.js → swapHorizontalBold-SZc8vSlj.js} +1 -1
  93. package/packages/ui/dist/assets/{swapHorizontalMedium-CHIdtnCI.js → swapHorizontalMedium-DKWd3qQh.js} +1 -1
  94. package/packages/ui/dist/assets/{swapHorizontalRoundedBold-B2oGt4O4.js → swapHorizontalRoundedBold-B46POIZ2.js} +1 -1
  95. package/packages/ui/dist/assets/{swapVertical-CnjOFXH3.js → swapVertical-D4f0jkeH.js} +1 -1
  96. package/packages/ui/dist/assets/{telegram-BtOilYdH.js → telegram-BVVbjRio.js} +1 -1
  97. package/packages/ui/dist/assets/{three-dots-D_VsAJlo.js → three-dots-DQVGHO9G.js} +1 -1
  98. package/packages/ui/dist/assets/{twitch-BIX3n7hL.js → twitch-CjcFqp-d.js} +1 -1
  99. package/packages/ui/dist/assets/{twitterIcon-C3DDaPem.js → twitterIcon-B47ZoR0v.js} +1 -1
  100. package/packages/ui/dist/assets/{verify-CtzMScZy.js → verify-D3Gyf9Im.js} +1 -1
  101. package/packages/ui/dist/assets/{verify-filled-CVjdmBEW.js → verify-filled-B-9w_cGB.js} +1 -1
  102. package/packages/ui/dist/assets/{w3m-modal-BZ3BUhSD.js → w3m-modal-B3dED8lF.js} +1 -1
  103. package/packages/ui/dist/assets/{wallet-hURaFgJp.js → wallet-D_B2tpmo.js} +1 -1
  104. package/packages/ui/dist/assets/{wallet-placeholder-BcF2KreB.js → wallet-placeholder-DToho7LE.js} +1 -1
  105. package/packages/ui/dist/assets/{walletconnect-C8XCABRo.js → walletconnect-DTGJU1ef.js} +1 -1
  106. package/packages/ui/dist/assets/{warning-circle-BMz6LCU4.js → warning-circle-DdBh-wEA.js} +1 -1
  107. package/packages/ui/dist/assets/{x-deAHZeLU.js → x-CaOZqgx4.js} +1 -1
  108. package/packages/ui/dist/index.html +1 -1
  109. package/packages/ui/dist/assets/index-RMrT9ktE.js +0 -1780
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev.sail.money/sailor",
3
- "version": "1.4.0-244",
3
+ "version": "1.4.0-246",
4
4
  "description": "Operator toolkit for Sail Protocol",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35214,6 +35214,9 @@ var {
35214
35214
  var CREATE2_KERNEL = "0x38b508756c976e876EFF05a29E731A4d348BA6ED";
35215
35215
  var CREATE2_MANDATE_FACTORY = "0x6d2C802ffa0d9A8Ed69A5Bf22c1b63ccB566B8Fc";
35216
35216
  var CREATE2_GOVERNANCE = "0x4315B37cA4A315A7042af1Fcb37F8436f4D24356";
35217
+ var ETH = { name: "Ether", symbol: "ETH", decimals: 18 };
35218
+ var BNB = { name: "BNB", symbol: "BNB", decimals: 18 };
35219
+ var HYPE = { name: "HYPE", symbol: "HYPE", decimals: 18 };
35217
35220
  var chains = {
35218
35221
  // Ethereum mainnet
35219
35222
  1: {
@@ -35225,7 +35228,8 @@ var chains = {
35225
35228
  mandateFactory: CREATE2_MANDATE_FACTORY,
35226
35229
  governance: CREATE2_GOVERNANCE,
35227
35230
  dispatchModel: "selective",
35228
- protocols: {}
35231
+ protocols: {},
35232
+ nativeCurrency: ETH
35229
35233
  },
35230
35234
  // Base mainnet
35231
35235
  8453: {
@@ -35237,7 +35241,8 @@ var chains = {
35237
35241
  mandateFactory: CREATE2_MANDATE_FACTORY,
35238
35242
  governance: CREATE2_GOVERNANCE,
35239
35243
  dispatchModel: "selective",
35240
- protocols: {}
35244
+ protocols: {},
35245
+ nativeCurrency: ETH
35241
35246
  },
35242
35247
  // Arbitrum mainnet
35243
35248
  42161: {
@@ -35249,7 +35254,8 @@ var chains = {
35249
35254
  mandateFactory: CREATE2_MANDATE_FACTORY,
35250
35255
  governance: CREATE2_GOVERNANCE,
35251
35256
  dispatchModel: "selective",
35252
- protocols: {}
35257
+ protocols: {},
35258
+ nativeCurrency: ETH
35253
35259
  },
35254
35260
  // Optimism mainnet
35255
35261
  10: {
@@ -35261,7 +35267,8 @@ var chains = {
35261
35267
  mandateFactory: CREATE2_MANDATE_FACTORY,
35262
35268
  governance: CREATE2_GOVERNANCE,
35263
35269
  dispatchModel: "selective",
35264
- protocols: {}
35270
+ protocols: {},
35271
+ nativeCurrency: ETH
35265
35272
  },
35266
35273
  // Unichain mainnet
35267
35274
  130: {
@@ -35273,9 +35280,10 @@ var chains = {
35273
35280
  mandateFactory: CREATE2_MANDATE_FACTORY,
35274
35281
  governance: CREATE2_GOVERNANCE,
35275
35282
  dispatchModel: "selective",
35276
- protocols: {}
35283
+ protocols: {},
35284
+ nativeCurrency: ETH
35277
35285
  },
35278
- // BSC mainnet
35286
+ // BSC mainnet — native gas token is BNB, not ETH.
35279
35287
  56: {
35280
35288
  chainId: 56,
35281
35289
  name: "BSC",
@@ -35285,7 +35293,8 @@ var chains = {
35285
35293
  mandateFactory: CREATE2_MANDATE_FACTORY,
35286
35294
  governance: CREATE2_GOVERNANCE,
35287
35295
  dispatchModel: "selective",
35288
- protocols: {}
35296
+ protocols: {},
35297
+ nativeCurrency: BNB
35289
35298
  },
35290
35299
  // World Chain mainnet
35291
35300
  480: {
@@ -35297,9 +35306,10 @@ var chains = {
35297
35306
  mandateFactory: CREATE2_MANDATE_FACTORY,
35298
35307
  governance: CREATE2_GOVERNANCE,
35299
35308
  dispatchModel: "selective",
35300
- protocols: {}
35309
+ protocols: {},
35310
+ nativeCurrency: ETH
35301
35311
  },
35302
- // HyperEVM mainnet
35312
+ // HyperEVM mainnet — native gas token is HYPE, not ETH.
35303
35313
  999: {
35304
35314
  chainId: 999,
35305
35315
  name: "HyperEVM",
@@ -35309,7 +35319,8 @@ var chains = {
35309
35319
  mandateFactory: CREATE2_MANDATE_FACTORY,
35310
35320
  governance: CREATE2_GOVERNANCE,
35311
35321
  dispatchModel: "selective",
35312
- protocols: {}
35322
+ protocols: {},
35323
+ nativeCurrency: HYPE
35313
35324
  },
35314
35325
  // MegaETH mainnet
35315
35326
  4326: {
@@ -35321,7 +35332,8 @@ var chains = {
35321
35332
  mandateFactory: CREATE2_MANDATE_FACTORY,
35322
35333
  governance: CREATE2_GOVERNANCE,
35323
35334
  dispatchModel: "selective",
35324
- protocols: {}
35335
+ protocols: {},
35336
+ nativeCurrency: ETH
35325
35337
  },
35326
35338
  // Base Sepolia (testnet)
35327
35339
  84532: {
@@ -35333,7 +35345,8 @@ var chains = {
35333
35345
  mandateFactory: CREATE2_MANDATE_FACTORY,
35334
35346
  governance: CREATE2_GOVERNANCE,
35335
35347
  dispatchModel: "selective",
35336
- protocols: {}
35348
+ protocols: {},
35349
+ nativeCurrency: ETH
35337
35350
  },
35338
35351
  // Eth Sepolia (testnet)
35339
35352
  11155111: {
@@ -35345,7 +35358,8 @@ var chains = {
35345
35358
  mandateFactory: CREATE2_MANDATE_FACTORY,
35346
35359
  governance: CREATE2_GOVERNANCE,
35347
35360
  dispatchModel: "selective",
35348
- protocols: {}
35361
+ protocols: {},
35362
+ nativeCurrency: ETH
35349
35363
  }
35350
35364
  };
35351
35365
  function getChain(chainId) {
@@ -35356,6 +35370,9 @@ function getChain(chainId) {
35356
35370
  return config;
35357
35371
  }
35358
35372
  var defaultRpcUrls = Object.fromEntries(Object.values(chains).map((c) => [c.chainId, c.defaultRpcUrl]));
35373
+ function getNativeCurrencySymbol(chainId) {
35374
+ return chains[chainId]?.nativeCurrency.symbol ?? "ETH";
35375
+ }
35359
35376
 
35360
35377
  // ../sdk/dist/client.js
35361
35378
  init_esm2();
@@ -38155,13 +38172,13 @@ async function estimateMandateRegistrationFee(publicClient, governance, permissi
38155
38172
  const totalWei = flatFeeWei * BigInt(permissions.length);
38156
38173
  return { totalWei, perPermission };
38157
38174
  }
38158
- function describeMandateFee(estimate) {
38175
+ function describeMandateFee(estimate, symbol = "ETH") {
38159
38176
  const count = estimate.perPermission.length;
38160
38177
  if (count === 0)
38161
- return "Registration fee: 0 ETH (no new permissions to register)";
38178
+ return `Registration fee: 0 ${symbol} (no new permissions to register)`;
38162
38179
  const noun = count === 1 ? "permission" : "permissions";
38163
38180
  const perFeeWei = estimate.perPermission[0].feeWei;
38164
- return `Registration fee: ${formatEther(estimate.totalWei)} ETH (${count} ${noun} \xD7 ${formatEther(perFeeWei)} ETH)`;
38181
+ return `Registration fee: ${formatEther(estimate.totalWei)} ${symbol} (${count} ${noun} \xD7 ${formatEther(perFeeWei)} ${symbol})`;
38165
38182
  }
38166
38183
  var RegistrationFeeError = class extends Error {
38167
38184
  /** Total fee required (wei). */
@@ -38175,9 +38192,9 @@ var RegistrationFeeError = class extends Error {
38175
38192
  this.balanceWei = balanceWei;
38176
38193
  }
38177
38194
  };
38178
- function assertFeeAffordable(balanceWei, totalFeeWei) {
38195
+ function assertFeeAffordable(balanceWei, totalFeeWei, symbol = "ETH") {
38179
38196
  if (balanceWei < totalFeeWei) {
38180
- throw new RegistrationFeeError(`Insufficient ETH for the ${formatEther(totalFeeWei)} ETH registration fee; signer balance is ${formatEther(balanceWei)} ETH.`, totalFeeWei, balanceWei);
38197
+ throw new RegistrationFeeError(`Insufficient ${symbol} for the ${formatEther(totalFeeWei)} ${symbol} registration fee; signer balance is ${formatEther(balanceWei)} ${symbol}.`, totalFeeWei, balanceWei);
38181
38198
  }
38182
38199
  }
38183
38200
 
@@ -41973,14 +41990,15 @@ init_esm2();
41973
41990
 
41974
41991
  // src/lib/registration-fee.ts
41975
41992
  function registrationGate(args) {
41976
- const { estimate, agentBalanceWei } = args;
41993
+ const { estimate, agentBalanceWei, chainId } = args;
41994
+ const symbol = chainId !== void 0 ? getNativeCurrencySymbol(chainId) : "ETH";
41977
41995
  if (agentBalanceWei !== void 0) {
41978
- assertFeeAffordable(agentBalanceWei, estimate.totalWei);
41996
+ assertFeeAffordable(agentBalanceWei, estimate.totalWei, symbol);
41979
41997
  }
41980
41998
  return {
41981
41999
  totalFeeWei: estimate.totalWei,
41982
42000
  permissionCount: estimate.perPermission.length,
41983
- disclosure: describeMandateFee(estimate)
42001
+ disclosure: describeMandateFee(estimate, symbol)
41984
42002
  };
41985
42003
  }
41986
42004
 
@@ -42372,7 +42390,7 @@ async function attachMandate(project, channel, publicClient, agentSigner, smaAdd
42372
42390
  const agentBalanceWei = await publicClient.getBalance({
42373
42391
  address: agentSigner.viemAccount.address
42374
42392
  });
42375
- const gate = registrationGate({ estimate: feeEstimate, agentBalanceWei });
42393
+ const gate = registrationGate({ estimate: feeEstimate, agentBalanceWei, chainId: project.chainId });
42376
42394
  say(() => console.log(gate.disclosure));
42377
42395
  say(() => console.log(`
42378
42396
  Pushing signing request for "${template.label}" permission\u2026`));
@@ -42401,7 +42419,8 @@ Pushing signing request for "${template.label}" permission\u2026`));
42401
42419
  // fee to disclose (zero-fee chains pass 0 ETH, still informative).
42402
42420
  registrationFee: {
42403
42421
  totalEth: formatEther(fee),
42404
- permissionCount: 1
42422
+ permissionCount: 1,
42423
+ symbol: getNativeCurrencySymbol(project.chainId)
42405
42424
  },
42406
42425
  typedData
42407
42426
  });
@@ -42481,7 +42500,8 @@ Connect the owner wallet (mandate signer) in the browser \u2014 the agent wallet
42481
42500
  chainId: project.chainId,
42482
42501
  // Registration fee actually paid by the agent for this permission.
42483
42502
  fee: fee.toString(),
42484
- feeEth: formatEther(fee)
42503
+ feeEth: formatEther(fee),
42504
+ feeSymbol: getNativeCurrencySymbol(project.chainId)
42485
42505
  });
42486
42506
  return txHash;
42487
42507
  }
@@ -42928,7 +42948,8 @@ ${spec.label} clone (${options.template})`);
42928
42948
  ],
42929
42949
  registrationFee: {
42930
42950
  totalEth: formatEther(fee),
42931
- permissionCount: 1
42951
+ permissionCount: 1,
42952
+ symbol: getNativeCurrencySymbol(project.chainId)
42932
42953
  },
42933
42954
  typedData
42934
42955
  });
@@ -43011,7 +43032,8 @@ Connect the owner wallet (mandate signer) in the browser \u2014 the agent wallet
43011
43032
  chainId: project.chainId,
43012
43033
  // Registration fee actually paid by the agent for this permission.
43013
43034
  fee: fee.toString(),
43014
- feeEth: formatEther(fee)
43035
+ feeEth: formatEther(fee),
43036
+ feeSymbol: getNativeCurrencySymbol(project.chainId)
43015
43037
  });
43016
43038
  emit(json, () => {
43017
43039
  }, {
@@ -43361,7 +43383,8 @@ Attaching ${permissions.length} permissions in one signature \u2014 the mandate
43361
43383
  registrationFee: {
43362
43384
  totalEth: formatEther(fee),
43363
43385
  permissionCount: permissions.length,
43364
- ...permissions.length > 1 ? { perPermissionEth: formatEther(flatFee) } : {}
43386
+ ...permissions.length > 1 ? { perPermissionEth: formatEther(flatFee) } : {},
43387
+ symbol: getNativeCurrencySymbol(project.chainId)
43365
43388
  },
43366
43389
  typedData
43367
43390
  });
@@ -43406,7 +43429,8 @@ Attaching ${permissions.length} permissions in one signature \u2014 the mandate
43406
43429
  chainId: project.chainId,
43407
43430
  // Each permission in the batch is charged the same flat fee.
43408
43431
  fee: flatFee.toString(),
43409
- feeEth: formatEther(flatFee)
43432
+ feeEth: formatEther(flatFee),
43433
+ feeSymbol: getNativeCurrencySymbol(project.chainId)
43410
43434
  });
43411
43435
  say(() => {
43412
43436
  if (!present) {
@@ -43636,7 +43660,8 @@ async function liveMandateFee(chainId, permissionAddresses) {
43636
43660
  return null;
43637
43661
  }
43638
43662
  }
43639
- function draftFeeFromEstimate(estimate) {
43663
+ function draftFeeFromEstimate(estimate, chainId) {
43664
+ const symbol = getNativeCurrencySymbol(chainId);
43640
43665
  const perFeeWei = estimate.perPermission[0]?.feeWei ?? 0n;
43641
43666
  return {
43642
43667
  perPermissionWei: perFeeWei.toString(),
@@ -43644,7 +43669,8 @@ function draftFeeFromEstimate(estimate) {
43644
43669
  totalWei: estimate.totalWei.toString(),
43645
43670
  totalEth: formatEther(estimate.totalWei),
43646
43671
  permissionCount: estimate.perPermission.length,
43647
- disclosure: describeMandateFee(estimate)
43672
+ disclosure: describeMandateFee(estimate, symbol),
43673
+ symbol
43648
43674
  };
43649
43675
  }
43650
43676
  function resolveActiveChain(account2) {
@@ -43752,7 +43778,7 @@ ${permissions.length} permission(s) tracked for SMA ${account2.safe}:
43752
43778
  const unregisteredAddresses = chargeable.map((p) => p.address);
43753
43779
  if (unregisteredAddresses.length > 0) {
43754
43780
  const estimate = await liveMandateFee(chainId, unregisteredAddresses);
43755
- if (estimate !== null) registrationFee = draftFeeFromEstimate(estimate);
43781
+ if (estimate !== null) registrationFee = draftFeeFromEstimate(estimate, chainId);
43756
43782
  }
43757
43783
  const draft = {
43758
43784
  account: account2.safe,
@@ -43795,7 +43821,7 @@ Permissions tracked for SMA ${account2.safe}:
43795
43821
  const estimate = await liveMandateFee(chainId, unregistered.map((p) => p.address));
43796
43822
  if (estimate !== null) {
43797
43823
  console.log(`
43798
- ${describeMandateFee(estimate)}`);
43824
+ ${describeMandateFee(estimate, getNativeCurrencySymbol(chainId))}`);
43799
43825
  console.log(" Paid by the agent wallet on registration, per permission.");
43800
43826
  }
43801
43827
  }
@@ -46402,6 +46402,9 @@ var import_websocket_server = __toESM(require_websocket_server(), 1);
46402
46402
  var CREATE2_KERNEL = "0x38b508756c976e876EFF05a29E731A4d348BA6ED";
46403
46403
  var CREATE2_MANDATE_FACTORY = "0x6d2C802ffa0d9A8Ed69A5Bf22c1b63ccB566B8Fc";
46404
46404
  var CREATE2_GOVERNANCE = "0x4315B37cA4A315A7042af1Fcb37F8436f4D24356";
46405
+ var ETH = { name: "Ether", symbol: "ETH", decimals: 18 };
46406
+ var BNB = { name: "BNB", symbol: "BNB", decimals: 18 };
46407
+ var HYPE = { name: "HYPE", symbol: "HYPE", decimals: 18 };
46405
46408
  var chains = {
46406
46409
  // Ethereum mainnet
46407
46410
  1: {
@@ -46413,7 +46416,8 @@ var chains = {
46413
46416
  mandateFactory: CREATE2_MANDATE_FACTORY,
46414
46417
  governance: CREATE2_GOVERNANCE,
46415
46418
  dispatchModel: "selective",
46416
- protocols: {}
46419
+ protocols: {},
46420
+ nativeCurrency: ETH
46417
46421
  },
46418
46422
  // Base mainnet
46419
46423
  8453: {
@@ -46425,7 +46429,8 @@ var chains = {
46425
46429
  mandateFactory: CREATE2_MANDATE_FACTORY,
46426
46430
  governance: CREATE2_GOVERNANCE,
46427
46431
  dispatchModel: "selective",
46428
- protocols: {}
46432
+ protocols: {},
46433
+ nativeCurrency: ETH
46429
46434
  },
46430
46435
  // Arbitrum mainnet
46431
46436
  42161: {
@@ -46437,7 +46442,8 @@ var chains = {
46437
46442
  mandateFactory: CREATE2_MANDATE_FACTORY,
46438
46443
  governance: CREATE2_GOVERNANCE,
46439
46444
  dispatchModel: "selective",
46440
- protocols: {}
46445
+ protocols: {},
46446
+ nativeCurrency: ETH
46441
46447
  },
46442
46448
  // Optimism mainnet
46443
46449
  10: {
@@ -46449,7 +46455,8 @@ var chains = {
46449
46455
  mandateFactory: CREATE2_MANDATE_FACTORY,
46450
46456
  governance: CREATE2_GOVERNANCE,
46451
46457
  dispatchModel: "selective",
46452
- protocols: {}
46458
+ protocols: {},
46459
+ nativeCurrency: ETH
46453
46460
  },
46454
46461
  // Unichain mainnet
46455
46462
  130: {
@@ -46461,9 +46468,10 @@ var chains = {
46461
46468
  mandateFactory: CREATE2_MANDATE_FACTORY,
46462
46469
  governance: CREATE2_GOVERNANCE,
46463
46470
  dispatchModel: "selective",
46464
- protocols: {}
46471
+ protocols: {},
46472
+ nativeCurrency: ETH
46465
46473
  },
46466
- // BSC mainnet
46474
+ // BSC mainnet — native gas token is BNB, not ETH.
46467
46475
  56: {
46468
46476
  chainId: 56,
46469
46477
  name: "BSC",
@@ -46473,7 +46481,8 @@ var chains = {
46473
46481
  mandateFactory: CREATE2_MANDATE_FACTORY,
46474
46482
  governance: CREATE2_GOVERNANCE,
46475
46483
  dispatchModel: "selective",
46476
- protocols: {}
46484
+ protocols: {},
46485
+ nativeCurrency: BNB
46477
46486
  },
46478
46487
  // World Chain mainnet
46479
46488
  480: {
@@ -46485,9 +46494,10 @@ var chains = {
46485
46494
  mandateFactory: CREATE2_MANDATE_FACTORY,
46486
46495
  governance: CREATE2_GOVERNANCE,
46487
46496
  dispatchModel: "selective",
46488
- protocols: {}
46497
+ protocols: {},
46498
+ nativeCurrency: ETH
46489
46499
  },
46490
- // HyperEVM mainnet
46500
+ // HyperEVM mainnet — native gas token is HYPE, not ETH.
46491
46501
  999: {
46492
46502
  chainId: 999,
46493
46503
  name: "HyperEVM",
@@ -46497,7 +46507,8 @@ var chains = {
46497
46507
  mandateFactory: CREATE2_MANDATE_FACTORY,
46498
46508
  governance: CREATE2_GOVERNANCE,
46499
46509
  dispatchModel: "selective",
46500
- protocols: {}
46510
+ protocols: {},
46511
+ nativeCurrency: HYPE
46501
46512
  },
46502
46513
  // MegaETH mainnet
46503
46514
  4326: {
@@ -46509,7 +46520,8 @@ var chains = {
46509
46520
  mandateFactory: CREATE2_MANDATE_FACTORY,
46510
46521
  governance: CREATE2_GOVERNANCE,
46511
46522
  dispatchModel: "selective",
46512
- protocols: {}
46523
+ protocols: {},
46524
+ nativeCurrency: ETH
46513
46525
  },
46514
46526
  // Base Sepolia (testnet)
46515
46527
  84532: {
@@ -46521,7 +46533,8 @@ var chains = {
46521
46533
  mandateFactory: CREATE2_MANDATE_FACTORY,
46522
46534
  governance: CREATE2_GOVERNANCE,
46523
46535
  dispatchModel: "selective",
46524
- protocols: {}
46536
+ protocols: {},
46537
+ nativeCurrency: ETH
46525
46538
  },
46526
46539
  // Eth Sepolia (testnet)
46527
46540
  11155111: {
@@ -46533,10 +46546,14 @@ var chains = {
46533
46546
  mandateFactory: CREATE2_MANDATE_FACTORY,
46534
46547
  governance: CREATE2_GOVERNANCE,
46535
46548
  dispatchModel: "selective",
46536
- protocols: {}
46549
+ protocols: {},
46550
+ nativeCurrency: ETH
46537
46551
  }
46538
46552
  };
46539
46553
  var defaultRpcUrls = Object.fromEntries(Object.values(chains).map((c) => [c.chainId, c.defaultRpcUrl]));
46554
+ function getNativeCurrencySymbol(chainId) {
46555
+ return chains[chainId]?.nativeCurrency.symbol ?? "ETH";
46556
+ }
46540
46557
 
46541
46558
  // ../sdk/dist/abis/SailKernel.js
46542
46559
  var SailKernelAbi = [
@@ -48085,6 +48102,8 @@ var CHAIN_RPC_ENV_KEYS = {
48085
48102
  };
48086
48103
  var SUPPORTED_CHAIN_IDS = [1, 8453, 42161, 10, 130, 56, 480, 999, 4326, 84532];
48087
48104
  var DEFAULT_RPC_URLS = { ...defaultRpcUrls };
48105
+ var REGISTRATION_FEE_TTL_MS = 5 * 60 * 1e3;
48106
+ var registrationFeeCache = /* @__PURE__ */ new Map();
48088
48107
  function resolveRpcUrl(env, chainId) {
48089
48108
  const keys = CHAIN_RPC_ENV_KEYS[chainId] ?? [`RPC_URL_${chainId}`];
48090
48109
  for (const k of keys) {
@@ -48744,6 +48763,7 @@ function startServer(sailDir, { port = PORT } = {}) {
48744
48763
  const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
48745
48764
  if (receipt.status !== "success") throw new Error(`registerPermissions reverted (tx ${txHash})`);
48746
48765
  const feeEth = formatEther(flatFee);
48766
+ const feeSymbol = getNativeCurrencySymbol(Number(chainId));
48747
48767
  for (const addr of addrs) {
48748
48768
  const meta = permissionMeta.find((p) => p.address && getAddress(p.address) === addr);
48749
48769
  const ev = {
@@ -48756,7 +48776,8 @@ function startServer(sailDir, { port = PORT } = {}) {
48756
48776
  txHash,
48757
48777
  chainId,
48758
48778
  fee: flatFee.toString(),
48759
- feeEth
48779
+ feeEth,
48780
+ feeSymbol
48760
48781
  };
48761
48782
  try {
48762
48783
  import_node_fs2.default.appendFileSync(at("activity.jsonl"), `${JSON.stringify(ev)}
@@ -49367,14 +49388,43 @@ function startServer(sailDir, { port = PORT } = {}) {
49367
49388
  const env = parseEnvFile(at(".env.local"));
49368
49389
  const chainId = Number(account.chainId ?? env.CHAIN_ID ?? 0);
49369
49390
  let kernel = env.KERNEL_ADDRESS;
49391
+ let governance;
49370
49392
  if (!kernel) {
49371
49393
  try {
49372
- kernel = getSailDeployment(chainId)?.kernel;
49394
+ const deployment = getSailDeployment(chainId);
49395
+ kernel = deployment?.kernel;
49396
+ governance = deployment?.governance;
49373
49397
  } catch {
49374
49398
  kernel = void 0;
49375
49399
  }
49400
+ } else {
49401
+ try {
49402
+ governance = getSailDeployment(chainId)?.governance;
49403
+ } catch {
49404
+ governance = void 0;
49405
+ }
49376
49406
  }
49377
49407
  const rpcUrl = resolveRpcUrl(env, chainId);
49408
+ let registrationFee = null;
49409
+ if (!localOnly && governance && rpcUrl) {
49410
+ const cached = registrationFeeCache.get(chainId);
49411
+ if (cached && cached.expiresAt > Date.now()) {
49412
+ registrationFee = cached.fee;
49413
+ } else {
49414
+ try {
49415
+ const feeClient = createPublicClient({ transport: http(rpcUrl, { timeout: 4e3 }) });
49416
+ const feeWei = await readPermissionRegistrationFee(feeClient, governance);
49417
+ registrationFee = {
49418
+ feeWei: feeWei.toString(),
49419
+ feeEth: formatEther(feeWei),
49420
+ symbol: getNativeCurrencySymbol(chainId)
49421
+ };
49422
+ registrationFeeCache.set(chainId, { fee: registrationFee, expiresAt: Date.now() + REGISTRATION_FEE_TTL_MS });
49423
+ } catch {
49424
+ registrationFee = null;
49425
+ }
49426
+ }
49427
+ }
49378
49428
  const nameByAddr = /* @__PURE__ */ new Map();
49379
49429
  const templateByAddr = /* @__PURE__ */ new Map();
49380
49430
  try {
@@ -49402,6 +49452,7 @@ function startServer(sailDir, { port = PORT } = {}) {
49402
49452
  kernel: kernel ?? null,
49403
49453
  rpcConfigured: Boolean(rpcUrl),
49404
49454
  onchain: false,
49455
+ registrationFee,
49405
49456
  sma: {
49406
49457
  address: account.safe,
49407
49458
  owner: account.owner,
@@ -11,4 +11,11 @@ export declare function getChain(chainId: number): ChainConfig;
11
11
  export declare const defaultRpcUrls: Record<number, string>;
12
12
  /** The public default RPC URL for a chainId, or undefined if unsupported. */
13
13
  export declare function getDefaultRpcUrl(chainId: number): string | undefined;
14
+ /**
15
+ * The native gas token symbol for a chain (e.g. "ETH", "BNB", "HYPE") — what
16
+ * `permissionRegistrationFee` is denominated in on that chain. Falls back to
17
+ * "ETH" for an unrecognized chainId so display code degrades gracefully
18
+ * instead of throwing.
19
+ */
20
+ export declare function getNativeCurrencySymbol(chainId: number): string;
14
21
  //# sourceMappingURL=chains.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAc9C,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAqI9C,CAAC;AAEF,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAQrD;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEjD,CAAC;AAEF,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpE"}
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAkB9C,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAgJ9C,CAAC;AAEF,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAQrD;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEjD,CAAC;AAEF,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D"}
@@ -9,6 +9,9 @@
9
9
  const CREATE2_KERNEL = "0x38b508756c976e876EFF05a29E731A4d348BA6ED";
10
10
  const CREATE2_MANDATE_FACTORY = "0x6d2C802ffa0d9A8Ed69A5Bf22c1b63ccB566B8Fc";
11
11
  const CREATE2_GOVERNANCE = "0x4315B37cA4A315A7042af1Fcb37F8436f4D24356";
12
+ const ETH = { name: "Ether", symbol: "ETH", decimals: 18 };
13
+ const BNB = { name: "BNB", symbol: "BNB", decimals: 18 };
14
+ const HYPE = { name: "HYPE", symbol: "HYPE", decimals: 18 };
12
15
  export const chains = {
13
16
  // Ethereum mainnet
14
17
  1: {
@@ -21,6 +24,7 @@ export const chains = {
21
24
  governance: CREATE2_GOVERNANCE,
22
25
  dispatchModel: "selective",
23
26
  protocols: {},
27
+ nativeCurrency: ETH,
24
28
  },
25
29
  // Base mainnet
26
30
  8453: {
@@ -33,6 +37,7 @@ export const chains = {
33
37
  governance: CREATE2_GOVERNANCE,
34
38
  dispatchModel: "selective",
35
39
  protocols: {},
40
+ nativeCurrency: ETH,
36
41
  },
37
42
  // Arbitrum mainnet
38
43
  42161: {
@@ -45,6 +50,7 @@ export const chains = {
45
50
  governance: CREATE2_GOVERNANCE,
46
51
  dispatchModel: "selective",
47
52
  protocols: {},
53
+ nativeCurrency: ETH,
48
54
  },
49
55
  // Optimism mainnet
50
56
  10: {
@@ -57,6 +63,7 @@ export const chains = {
57
63
  governance: CREATE2_GOVERNANCE,
58
64
  dispatchModel: "selective",
59
65
  protocols: {},
66
+ nativeCurrency: ETH,
60
67
  },
61
68
  // Unichain mainnet
62
69
  130: {
@@ -69,8 +76,9 @@ export const chains = {
69
76
  governance: CREATE2_GOVERNANCE,
70
77
  dispatchModel: "selective",
71
78
  protocols: {},
79
+ nativeCurrency: ETH,
72
80
  },
73
- // BSC mainnet
81
+ // BSC mainnet — native gas token is BNB, not ETH.
74
82
  56: {
75
83
  chainId: 56,
76
84
  name: "BSC",
@@ -81,6 +89,7 @@ export const chains = {
81
89
  governance: CREATE2_GOVERNANCE,
82
90
  dispatchModel: "selective",
83
91
  protocols: {},
92
+ nativeCurrency: BNB,
84
93
  },
85
94
  // World Chain mainnet
86
95
  480: {
@@ -93,8 +102,9 @@ export const chains = {
93
102
  governance: CREATE2_GOVERNANCE,
94
103
  dispatchModel: "selective",
95
104
  protocols: {},
105
+ nativeCurrency: ETH,
96
106
  },
97
- // HyperEVM mainnet
107
+ // HyperEVM mainnet — native gas token is HYPE, not ETH.
98
108
  999: {
99
109
  chainId: 999,
100
110
  name: "HyperEVM",
@@ -105,6 +115,7 @@ export const chains = {
105
115
  governance: CREATE2_GOVERNANCE,
106
116
  dispatchModel: "selective",
107
117
  protocols: {},
118
+ nativeCurrency: HYPE,
108
119
  },
109
120
  // MegaETH mainnet
110
121
  4326: {
@@ -117,6 +128,7 @@ export const chains = {
117
128
  governance: CREATE2_GOVERNANCE,
118
129
  dispatchModel: "selective",
119
130
  protocols: {},
131
+ nativeCurrency: ETH,
120
132
  },
121
133
  // Base Sepolia (testnet)
122
134
  84532: {
@@ -129,6 +141,7 @@ export const chains = {
129
141
  governance: CREATE2_GOVERNANCE,
130
142
  dispatchModel: "selective",
131
143
  protocols: {},
144
+ nativeCurrency: ETH,
132
145
  },
133
146
  // Eth Sepolia (testnet)
134
147
  11155111: {
@@ -141,6 +154,7 @@ export const chains = {
141
154
  governance: CREATE2_GOVERNANCE,
142
155
  dispatchModel: "selective",
143
156
  protocols: {},
157
+ nativeCurrency: ETH,
144
158
  },
145
159
  };
146
160
  /** Returns the ChainConfig for a given chainId, or throws if unsupported. */
@@ -162,4 +176,13 @@ export const defaultRpcUrls = Object.fromEntries(Object.values(chains).map((c) =
162
176
  export function getDefaultRpcUrl(chainId) {
163
177
  return chains[chainId]?.defaultRpcUrl;
164
178
  }
179
+ /**
180
+ * The native gas token symbol for a chain (e.g. "ETH", "BNB", "HYPE") — what
181
+ * `permissionRegistrationFee` is denominated in on that chain. Falls back to
182
+ * "ETH" for an unrecognized chainId so display code degrades gracefully
183
+ * instead of throwing.
184
+ */
185
+ export function getNativeCurrencySymbol(chainId) {
186
+ return chains[chainId]?.nativeCurrency.symbol ?? "ETH";
187
+ }
165
188
  //# sourceMappingURL=chains.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"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"}
@@ -41,9 +41,12 @@ export declare function estimateMandateRegistrationFee(publicClient: PublicClien
41
41
  * Plain-language disclosure of a mandate's flat registration fee, e.g.
42
42
  * `"Registration fee: 0.00003 ETH (3 permissions × 0.00001 ETH)"`.
43
43
  *
44
- * Factual cost statement only — no price/value framing.
44
+ * Factual cost statement only — no price/value framing. `symbol` is the
45
+ * chain's native gas token (defaults to "ETH") — callers on a chain with its
46
+ * own gas token (BSC → BNB, HyperEVM → HYPE) MUST pass the correct symbol;
47
+ * the fee is always denominated in the chain's native token, never literally ETH.
45
48
  */
46
- export declare function describeMandateFee(estimate: MandateFeeEstimate): string;
49
+ export declare function describeMandateFee(estimate: MandateFeeEstimate, symbol?: string): string;
47
50
  /** Thrown when a signer cannot cover the registration fee. A typed error so the
48
51
  * preflight block can't be silently disabled by re-wording a message string. */
49
52
  export declare class RegistrationFeeError extends Error {
@@ -60,6 +63,7 @@ export declare function feeShortfall(balanceWei: bigint, totalFeeWei: bigint): b
60
63
  * registration fee. Call this BEFORE prompting the owner to sign so an
61
64
  * underfunded signer fails early rather than after a wasted signature or an
62
65
  * on-chain revert. Scoped to the fee itself — gas is a separate concern.
66
+ * `symbol` is the chain's native gas token (defaults to "ETH").
63
67
  */
64
- export declare function assertFeeAffordable(balanceWei: bigint, totalFeeWei: bigint): void;
68
+ export declare function assertFeeAffordable(balanceWei: bigint, totalFeeWei: bigint, symbol?: string): void;
65
69
  //# sourceMappingURL=fees.d.ts.map