@invisi-labs/sdk 1.1.7 → 1.2.1

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 (118) hide show
  1. package/README.md +5 -0
  2. package/dist/broadcaster-3KTB4JO2.cjs +21 -0
  3. package/dist/broadcaster-3KTB4JO2.cjs.map +1 -0
  4. package/dist/broadcaster-7ZKKSTZQ.js +21 -0
  5. package/dist/broadcaster-preparation-PJ263WBL.cjs +15 -0
  6. package/dist/broadcaster-preparation-PJ263WBL.cjs.map +1 -0
  7. package/dist/broadcaster-preparation-ZQAPZAUG.js +15 -0
  8. package/dist/broadcaster-preparation-ZQAPZAUG.js.map +1 -0
  9. package/dist/{chunk-LOU7AP2B.cjs → chunk-2URICDPW.cjs} +72 -33
  10. package/dist/chunk-2URICDPW.cjs.map +1 -0
  11. package/dist/chunk-3D24ABYR.js +86 -0
  12. package/dist/chunk-3D24ABYR.js.map +1 -0
  13. package/dist/chunk-3KTQQZOW.cjs +71 -0
  14. package/dist/chunk-3KTQQZOW.cjs.map +1 -0
  15. package/dist/chunk-4SDP53YQ.cjs +765 -0
  16. package/dist/chunk-4SDP53YQ.cjs.map +1 -0
  17. package/dist/{chunk-XHKQ2BO2.js → chunk-4VI6LYGH.js} +25 -2
  18. package/dist/chunk-4VI6LYGH.js.map +1 -0
  19. package/dist/chunk-BBSRP4MH.cjs +287 -0
  20. package/dist/chunk-BBSRP4MH.cjs.map +1 -0
  21. package/dist/chunk-DGMVGFKM.js +41 -0
  22. package/dist/chunk-DGMVGFKM.js.map +1 -0
  23. package/dist/chunk-DHQEB6JR.cjs +1616 -0
  24. package/dist/chunk-DHQEB6JR.cjs.map +1 -0
  25. package/dist/chunk-FKF67XE6.js +1616 -0
  26. package/dist/chunk-FKF67XE6.js.map +1 -0
  27. package/dist/chunk-GUD3LAUO.js +765 -0
  28. package/dist/chunk-GUD3LAUO.js.map +1 -0
  29. package/dist/chunk-HCB7RQ3S.cjs +79 -0
  30. package/dist/chunk-HCB7RQ3S.cjs.map +1 -0
  31. package/dist/{chunk-GTPUYPQL.js → chunk-HKGJXQVN.js} +69 -30
  32. package/dist/chunk-HKGJXQVN.js.map +1 -0
  33. package/dist/chunk-HLH5JZD4.js +287 -0
  34. package/dist/chunk-HLH5JZD4.js.map +1 -0
  35. package/dist/chunk-J6TZZVAM.cjs +230 -0
  36. package/dist/chunk-J6TZZVAM.cjs.map +1 -0
  37. package/dist/{chunk-7F7ZZW3L.cjs → chunk-LOR6PYH5.cjs} +25 -2
  38. package/dist/chunk-LOR6PYH5.cjs.map +1 -0
  39. package/dist/chunk-MA2QZEF5.cjs +399 -0
  40. package/dist/chunk-MA2QZEF5.cjs.map +1 -0
  41. package/dist/chunk-MI4IP4ZD.cjs +86 -0
  42. package/dist/chunk-MI4IP4ZD.cjs.map +1 -0
  43. package/dist/chunk-OCZLJKIA.cjs +41 -0
  44. package/dist/chunk-OCZLJKIA.cjs.map +1 -0
  45. package/dist/chunk-R5YAOJKB.js +71 -0
  46. package/dist/chunk-R5YAOJKB.js.map +1 -0
  47. package/dist/chunk-RY4M2CIQ.js +399 -0
  48. package/dist/chunk-RY4M2CIQ.js.map +1 -0
  49. package/dist/chunk-THMD5QO2.js +79 -0
  50. package/dist/chunk-THMD5QO2.js.map +1 -0
  51. package/dist/chunk-ZD2652WH.js +230 -0
  52. package/dist/chunk-ZD2652WH.js.map +1 -0
  53. package/dist/credit.cjs +1 -0
  54. package/dist/credit.cjs.map +1 -0
  55. package/dist/credit.d.cts +12 -0
  56. package/dist/credit.d.ts +12 -0
  57. package/dist/credit.js +1 -0
  58. package/dist/credit.js.map +1 -0
  59. package/dist/ethers.cjs +2 -2
  60. package/dist/ethers.cjs.map +1 -1
  61. package/dist/ethers.d.cts +15 -4
  62. package/dist/ethers.d.ts +15 -4
  63. package/dist/ethers.js +1 -1
  64. package/dist/index-CLhGwLxZ.d.cts +42 -0
  65. package/dist/index-Crp-ZFiM.d.ts +42 -0
  66. package/dist/index.cjs +69 -38
  67. package/dist/index.cjs.map +1 -1
  68. package/dist/index.d.cts +21 -14
  69. package/dist/index.d.ts +21 -14
  70. package/dist/index.js +64 -33
  71. package/dist/index.js.map +1 -1
  72. package/dist/note.cjs +11 -0
  73. package/dist/note.cjs.map +1 -0
  74. package/dist/note.d.cts +29 -0
  75. package/dist/note.d.ts +29 -0
  76. package/dist/note.js +11 -0
  77. package/dist/note.js.map +1 -0
  78. package/dist/{broadcaster-preparation-DMxxZ_1Q.d.cts → operation-bridge-CoECSxfi.d.cts} +130 -245
  79. package/dist/{broadcaster-preparation-DMxxZ_1Q.d.ts → operation-bridge-CoECSxfi.d.ts} +130 -245
  80. package/dist/preparation-HUBTVCZE.js +404 -0
  81. package/dist/preparation-HUBTVCZE.js.map +1 -0
  82. package/dist/preparation-QD3ZSYV5.cjs +404 -0
  83. package/dist/preparation-QD3ZSYV5.cjs.map +1 -0
  84. package/dist/provenance-preparation-43DN2WK7.cjs +16 -0
  85. package/dist/provenance-preparation-43DN2WK7.cjs.map +1 -0
  86. package/dist/provenance-preparation-HEZE4L5H.js +16 -0
  87. package/dist/provenance-preparation-HEZE4L5H.js.map +1 -0
  88. package/dist/provenance.cjs +59 -0
  89. package/dist/provenance.cjs.map +1 -0
  90. package/dist/provenance.d.cts +34 -0
  91. package/dist/provenance.d.ts +34 -0
  92. package/dist/provenance.js +59 -0
  93. package/dist/provenance.js.map +1 -0
  94. package/dist/{receipt-logs-m0-bhaxW.d.ts → receipt-logs-DQRJK0l8.d.cts} +84 -78
  95. package/dist/{receipt-logs-CvC951p7.d.cts → receipt-logs-fMR6Bwql.d.ts} +84 -78
  96. package/dist/session-support.cjs +28 -7
  97. package/dist/session-support.cjs.map +1 -1
  98. package/dist/session-support.d.cts +71 -39
  99. package/dist/session-support.d.ts +71 -39
  100. package/dist/session-support.js +58 -37
  101. package/dist/session-support.js.map +1 -1
  102. package/package.json +22 -6
  103. package/dist/broadcaster-preparation-RMWQFYNL.js +0 -11
  104. package/dist/broadcaster-preparation-UGOTO4SX.cjs +0 -11
  105. package/dist/broadcaster-preparation-UGOTO4SX.cjs.map +0 -1
  106. package/dist/chunk-7F7ZZW3L.cjs.map +0 -1
  107. package/dist/chunk-EHP5TBC6.js +0 -3565
  108. package/dist/chunk-EHP5TBC6.js.map +0 -1
  109. package/dist/chunk-GTPUYPQL.js.map +0 -1
  110. package/dist/chunk-ITTGBIG2.js +0 -1877
  111. package/dist/chunk-ITTGBIG2.js.map +0 -1
  112. package/dist/chunk-J2JH6HIG.cjs +0 -1877
  113. package/dist/chunk-J2JH6HIG.cjs.map +0 -1
  114. package/dist/chunk-LOU7AP2B.cjs.map +0 -1
  115. package/dist/chunk-RHNIHI4P.cjs +0 -3565
  116. package/dist/chunk-RHNIHI4P.cjs.map +0 -1
  117. package/dist/chunk-XHKQ2BO2.js.map +0 -1
  118. /package/dist/{broadcaster-preparation-RMWQFYNL.js.map → broadcaster-7ZKKSTZQ.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/broadcaster/broadcaster-preparation.ts"],"sourcesContent":["import { getAddress } from \"ethers\";\nimport type {\n CancelCreditPreparation,\n CreateCreditPreparation,\n OperationPlan,\n PreparationRuntime,\n ShieldPreparation,\n TopUpCreditPreparation,\n TransferPreparation,\n} from \"../transactions/operation-types\";\nimport { TransactionPreparation } from \"../transactions/preparation/transaction-preparation\";\nimport type { BroadcasterClient, SignedBroadcasterQuote } from \"./index\";\nimport { exportBroadcasterIntent } from \"./intent\";\nexport type PreparationIntent =\n | { kind: \"transfer\"; options: TransferPreparation }\n | { kind: \"shield\"; options: ShieldPreparation }\n | { kind: \"create-credit\"; options: CreateCreditPreparation }\n | { kind: \"top-up-credit\"; options: TopUpCreditPreparation }\n | { kind: \"cancel-credit\"; options: CancelCreditPreparation };\nexport type BroadcasterFeeSource = \"public-funding\" | \"private-inputs\" | \"payout\";\nexport interface WithBroadcasterOptions {\n maxFeeAmount: bigint;\n feeSource?: BroadcasterFeeSource;\n maxAttempts?: number;\n /** Optional app-owned permit signing, requested once for the final gross funding amount. */\n fundingPermit?: (request: {\n payer: `0x${string}`;\n amount: bigint;\n tokenAddress: `0x${string}`;\n protocolAddress: `0x${string}`;\n }) => Promise<NonNullable<TransferPreparation[\"funding\"]>[\"permit\"]>;\n}\nexport async function prepareIntent(\n runtime: PreparationRuntime<OperationPlan>,\n intent: PreparationIntent\n): Promise<OperationPlan> {\n const preparation = new TransactionPreparation(runtime);\n switch (intent.kind) {\n case \"transfer\":\n return preparation.prepareTransfer(intent.options);\n case \"shield\":\n return preparation.prepareShield(intent.options);\n case \"create-credit\":\n return preparation.prepareCreateCredit(intent.options);\n case \"top-up-credit\":\n return preparation.prepareTopUpCredit(intent.options);\n case \"cancel-credit\":\n return preparation.prepareCancelCredit(intent.options);\n }\n}\nexport async function prepareBroadcasterPlan(\n plan: OperationPlan,\n reprepare: (intent: PreparationIntent) => Promise<OperationPlan>,\n client: BroadcasterClient,\n options: WithBroadcasterOptions\n): Promise<{ plan: OperationPlan; quote: SignedBroadcasterQuote }> {\n if (!plan.intent) throw new Error(\"operation has no supported preparation intent\");\n const intent = structuredClone(plan.intent);\n intent.options.deadline = plan.deadline;\n const maxFee = options.maxFeeAmount;\n const attempts = options.maxAttempts ?? 4;\n if (typeof maxFee !== \"bigint\" || maxFee <= 0n || maxFee >= 1n << 128n)\n throw new Error(\"maxFeeAmount must be a positive uint128\");\n if (!Number.isInteger(attempts) || attempts < 1 || attempts > 16)\n throw new Error(\"maxAttempts must be 1..16\");\n const funding = \"funding\" in intent.options ? intent.options.funding : undefined;\n let source =\n options.feeSource ??\n (intent.kind === \"cancel-credit\"\n ? \"payout\"\n : funding\n ? \"public-funding\"\n : \"private-inputs\");\n if (![\"public-funding\", \"private-inputs\", \"payout\"].includes(source))\n throw new Error(\"unsupported fee source\");\n if (\n intent.kind === \"cancel-credit\"\n ? source !== \"payout\"\n : source === \"payout\" || (intent.kind === \"shield\" && source !== \"public-funding\")\n )\n throw new Error(\"fee source is unavailable for this operation\");\n if (source === \"public-funding\" && !funding)\n throw new Error(\"public funding fee requires an explicit payer\");\n const permitCallback = options.fundingPermit;\n let schedule = await client.fee(plan.context.tokenAddress, exportBroadcasterIntent(plan).data);\n let previousAmount = 0n;\n for (let i = 0; i < attempts; i++) {\n const minimum = BigInt(schedule.feeAmount);\n const amount = minimum > previousAmount ? minimum : previousAmount;\n const recipient = getAddress(schedule.feeRecipient) as `0x${string}`;\n if (amount <= 0n || amount > maxFee || amount >= 1n << 128n || BigInt(recipient) === 0n)\n throw new Error(\"broadcaster fee exceeds user limit or is invalid\");\n // Prefer already available private change; never add a payer implicitly.\n if (\n options.feeSource === undefined &&\n funding &&\n plan.inputs.length > 0 &&\n (intent.kind === \"transfer\" ||\n intent.kind === \"create-credit\" ||\n intent.kind === \"top-up-credit\")\n ) {\n const business =\n intent.kind === \"transfer\"\n ? intent.options.outputs.reduce(\n (sum, output) => sum + output.amount,\n intent.options.withdrawal?.amount ?? 0n\n )\n : intent.kind === \"create-credit\"\n ? intent.options.amount\n : intent.options.additionalAmount;\n const change =\n plan.inputs.reduce((sum, input) => sum + input.note.amount, funding.amount) -\n business;\n source = change >= amount ? \"private-inputs\" : \"public-funding\";\n }\n if (\n source === \"public-funding\" &&\n funding?.permit &&\n funding.permit.deadline !== 0n &&\n !permitCallback\n )\n throw new Error(\n \"existing permit cannot fund an increased amount; provide fundingPermit for final gross funding or approve separately\"\n );\n if (source === \"payout\" && amount >= plan.credit!.cancel!.amount)\n throw new Error(\"fee must be less than the cancellation refund\");\n const request = structuredClone(intent);\n request.options.fee = { recipient, amount };\n if (funding && \"funding\" in request.options) {\n const signedFunding = { ...funding };\n if (funding.authorization === \"caller\") {\n delete signedFunding.sigNonce;\n delete signedFunding.deadline;\n }\n request.options.funding = {\n ...signedFunding,\n amount: funding.amount + (source === \"public-funding\" ? amount : 0n),\n authorization: \"signature\",\n };\n }\n const next = await reprepare(request);\n if (source === \"private-inputs\" && next.inputs.length === 0)\n throw new Error(\"private-inputs fee requires private funds\");\n const recalculated = await client.fee(\n plan.context.tokenAddress,\n exportBroadcasterIntent(next).data\n );\n const required = BigInt(recalculated.feeAmount);\n if (\n getAddress(recalculated.feeRecipient) !== recipient ||\n required <= 0n ||\n required > maxFee\n )\n throw new Error(\"broadcaster fee exceeds user limit or recipient changed\");\n if (amount >= required) {\n let final = next;\n if (permitCallback) {\n if (!funding || !(\"funding\" in request.options))\n throw new Error(\"fundingPermit requires public funding\");\n const permit = await permitCallback({\n payer: funding.payer,\n amount: request.options.funding!.amount,\n tokenAddress: plan.context.tokenAddress,\n protocolAddress: plan.context.protocolAddress,\n });\n if (!permit) throw new Error(\"fundingPermit did not return a permit\");\n request.options.funding = { ...request.options.funding!, permit };\n final = await reprepare(request);\n const permitted = await client.fee(\n plan.context.tokenAddress,\n exportBroadcasterIntent(final).data\n );\n if (\n getAddress(permitted.feeRecipient) !== recipient ||\n BigInt(permitted.feeAmount) > amount\n )\n throw new Error(\"permit changed the required fee; prepare again\");\n }\n final.intent = structuredClone(intent);\n return {\n plan: final,\n quote: await client.quote(exportBroadcasterIntent(final).data, {\n chainId: final.context.chainId,\n protocol: final.context.protocolAddress,\n }),\n };\n }\n previousAmount = amount;\n schedule = recalculated;\n }\n throw new Error(\"broadcaster fee did not stabilize within the preparation limit\");\n}\n"],"mappings":"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","names":[]}