@arkade-os/sdk 0.4.64 → 0.4.66

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 (79) hide show
  1. package/dist/adapters/expo.cjs +5 -5
  2. package/dist/adapters/expo.d.cts +3 -6
  3. package/dist/adapters/expo.d.ts +3 -6
  4. package/dist/adapters/expo.js +3 -3
  5. package/dist/adapters/indexedDB.cjs +5 -5
  6. package/dist/adapters/indexedDB.js +4 -4
  7. package/dist/{asyncStorageTaskQueue-Dq_UcvDx.d.ts → asyncStorageTaskQueue-B6SijMi3.d.ts} +1 -1
  8. package/dist/{asyncStorageTaskQueue-Chwe60Ce.d.cts → asyncStorageTaskQueue-BZcIN7sA.d.cts} +1 -1
  9. package/dist/{chunk-HQ2DDMQN.js → chunk-2JZGPXU4.js} +170 -6
  10. package/dist/chunk-2JZGPXU4.js.map +1 -0
  11. package/dist/{chunk-RXITDAV4.cjs → chunk-3S3JZUEN.cjs} +184 -19
  12. package/dist/chunk-3S3JZUEN.cjs.map +1 -0
  13. package/dist/{chunk-USXWE2EJ.js → chunk-55ZZ6RBL.js} +4 -4
  14. package/dist/{chunk-USXWE2EJ.js.map → chunk-55ZZ6RBL.js.map} +1 -1
  15. package/dist/{chunk-LPEE2H2M.cjs → chunk-5E6IZNRG.cjs} +656 -774
  16. package/dist/chunk-5E6IZNRG.cjs.map +1 -0
  17. package/dist/{chunk-LN2VZP63.js → chunk-CYOI4PEA.js} +162 -15
  18. package/dist/chunk-CYOI4PEA.js.map +1 -0
  19. package/dist/{chunk-WJN2BLEI.js → chunk-DSC3G6QZ.js} +253 -379
  20. package/dist/chunk-DSC3G6QZ.js.map +1 -0
  21. package/dist/{chunk-4N45WCSJ.cjs → chunk-IM6IKNSL.cjs} +17 -17
  22. package/dist/{chunk-4N45WCSJ.cjs.map → chunk-IM6IKNSL.cjs.map} +1 -1
  23. package/dist/{chunk-XJCBV4AA.js → chunk-J33ZEM3A.js} +26 -18
  24. package/dist/chunk-J33ZEM3A.js.map +1 -0
  25. package/dist/{chunk-35YIP6OA.cjs → chunk-LL47QIHD.cjs} +10 -10
  26. package/dist/{chunk-35YIP6OA.cjs.map → chunk-LL47QIHD.cjs.map} +1 -1
  27. package/dist/{chunk-WXCVS6PD.cjs → chunk-PXPPZF5K.cjs} +207 -59
  28. package/dist/chunk-PXPPZF5K.cjs.map +1 -0
  29. package/dist/{chunk-ZUEGFM3T.js → chunk-R5POS3RS.js} +4 -4
  30. package/dist/{chunk-ZUEGFM3T.js.map → chunk-R5POS3RS.js.map} +1 -1
  31. package/dist/{chunk-FZFSGOTZ.cjs → chunk-ZIRFXBKL.cjs} +26 -18
  32. package/dist/chunk-ZIRFXBKL.cjs.map +1 -0
  33. package/dist/contracts/handlers/index.cjs +9 -9
  34. package/dist/contracts/handlers/index.d.cts +3 -3
  35. package/dist/contracts/handlers/index.d.ts +3 -3
  36. package/dist/contracts/handlers/index.js +2 -2
  37. package/dist/{delegate-Dv_9OVHv.d.ts → delegate-T-vgxMYZ.d.ts} +1 -1
  38. package/dist/{delegate-BBQW61ym.d.cts → delegate-YXupcWWJ.d.cts} +1 -1
  39. package/dist/{index-Bxe9kBFs.d.ts → index-D_FgwLH9.d.ts} +111 -2
  40. package/dist/{index-aZycGEsQ.d.cts → index-e7LYXk1d.d.cts} +111 -2
  41. package/dist/{index-CFOMyVMt.d.cts → index-uUE_uQPn.d.cts} +70 -33
  42. package/dist/{index-CFOMyVMt.d.ts → index-uUE_uQPn.d.ts} +70 -33
  43. package/dist/index.cjs +308 -268
  44. package/dist/index.d.cts +214 -19
  45. package/dist/index.d.ts +214 -19
  46. package/dist/index.js +4 -4
  47. package/dist/repositories/realm/index.cjs +19 -19
  48. package/dist/repositories/realm/index.d.cts +2 -2
  49. package/dist/repositories/realm/index.d.ts +2 -2
  50. package/dist/repositories/realm/index.js +5 -5
  51. package/dist/repositories/sqlite/index.cjs +18 -18
  52. package/dist/repositories/sqlite/index.d.cts +2 -2
  53. package/dist/repositories/sqlite/index.d.ts +2 -2
  54. package/dist/repositories/sqlite/index.js +5 -5
  55. package/dist/{taskRunner-CIKOS2OO.d.cts → taskRunner-BOVcIH1N.d.cts} +1 -1
  56. package/dist/{taskRunner-BDzWbpct.d.ts → taskRunner-DNyD1kXG.d.ts} +1 -1
  57. package/dist/wallet/expo/background.cjs +14 -14
  58. package/dist/wallet/expo/background.d.cts +3 -3
  59. package/dist/wallet/expo/background.d.ts +3 -3
  60. package/dist/wallet/expo/background.js +6 -6
  61. package/dist/wallet/expo/index.cjs +14 -14
  62. package/dist/wallet/expo/index.d.cts +4 -4
  63. package/dist/wallet/expo/index.d.ts +4 -4
  64. package/dist/wallet/expo/index.js +5 -5
  65. package/dist/{wallet-C2NvHjWB.d.cts → wallet-CNibc3yJ.d.ts} +3 -3
  66. package/dist/{wallet-DJUnN939.d.ts → wallet-DJN1QgFt.d.cts} +3 -3
  67. package/dist/worker/expo/index.cjs +9 -9
  68. package/dist/worker/expo/index.d.cts +4 -4
  69. package/dist/worker/expo/index.d.ts +4 -4
  70. package/dist/worker/expo/index.js +5 -5
  71. package/package.json +1 -1
  72. package/dist/chunk-FZFSGOTZ.cjs.map +0 -1
  73. package/dist/chunk-HQ2DDMQN.js.map +0 -1
  74. package/dist/chunk-LN2VZP63.js.map +0 -1
  75. package/dist/chunk-LPEE2H2M.cjs.map +0 -1
  76. package/dist/chunk-RXITDAV4.cjs.map +0 -1
  77. package/dist/chunk-WJN2BLEI.js.map +0 -1
  78. package/dist/chunk-WXCVS6PD.cjs.map +0 -1
  79. package/dist/chunk-XJCBV4AA.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { VtxoScript, MultisigTapscript, CSVMultisigTapscript, timelockToSequence, sequenceToTimelock, ConditionMultisigTapscript, CLTVMultisigTapscript, ConditionCSVMultisigTapscript, SCRIPT_QUERY_CHUNK_SIZE, getNormalizedVtxos, DEFAULT_PAGE_SIZE } from './chunk-XJCBV4AA.js';
1
+ import { VtxoScript, MultisigTapscript, CSVMultisigTapscript, timelockToSequence, sequenceToTimelock, ConditionMultisigTapscript, CLTVMultisigTapscript, ConditionCSVMultisigTapscript, SCRIPT_QUERY_CHUNK_SIZE, getNormalizedVtxos, DEFAULT_PAGE_SIZE } from './chunk-J33ZEM3A.js';
2
2
  import { __export } from './chunk-NSBPE2FW.js';
3
3
  import { hex } from '@scure/base';
4
4
  import { networks, expand } from '@bitcoinerlab/descriptors-scure';
@@ -1412,6 +1412,15 @@ function asmToBytes(asm) {
1412
1412
  function bytesToASM(script) {
1413
1413
  return toASM(ArkadeScript.decode(script));
1414
1414
  }
1415
+
1416
+ // src/utils/keys.ts
1417
+ function toXOnly(key, label = "public key") {
1418
+ if (key.length === 32) return key;
1419
+ if (key.length === 33 && (key[0] === 2 || key[0] === 3)) return key.subarray(1);
1420
+ throw new Error(`${label} is not a compressed or x-only public key`);
1421
+ }
1422
+
1423
+ // src/arkade/tweak.ts
1415
1424
  var TAG_SCRIPT = "ArkScriptHash";
1416
1425
  var TAG_WITNESS = "ArkWitnessHash";
1417
1426
  function arkadeScriptHash(script) {
@@ -1425,8 +1434,7 @@ function arkadeWitnessHash(witness) {
1425
1434
  }
1426
1435
  function computeArkadeScriptPublicKey(pubKey, script) {
1427
1436
  const hash = arkadeScriptHash(script);
1428
- const xOnly = pubKey.length === 33 ? pubKey.subarray(1) : pubKey;
1429
- const point = schnorr.utils.lift_x(bytesToNumberBE(xOnly));
1437
+ const point = schnorr.utils.lift_x(bytesToNumberBE(toXOnly(pubKey, "emulator key")));
1430
1438
  const scalar = bytesToNumberBE(hash) % secp256k1.Point.CURVE().n;
1431
1439
  const tweak = secp256k1.Point.BASE.multiply(scalar);
1432
1440
  return schnorr.utils.pointToBytes(point.add(tweak));
@@ -1495,7 +1503,11 @@ var VHTLC;
1495
1503
  let arkadeScriptNic;
1496
1504
  let nonInteractiveClaimScript;
1497
1505
  if (options.nonInteractiveClaim) {
1498
- arkadeScriptNic = enforcePayTo(options.nonInteractiveClaim.receiverPkScript);
1506
+ arkadeScriptNic = enforcePayToMaybeAsset(
1507
+ options.nonInteractiveClaim.receiverPkScript,
1508
+ options.asset,
1509
+ options.nonInteractiveClaim.strict
1510
+ );
1499
1511
  nonInteractiveClaimScript = ConditionMultisigTapscript.encode({
1500
1512
  conditionScript,
1501
1513
  pubkeys: [
@@ -1511,7 +1523,10 @@ var VHTLC;
1511
1523
  let arkadeScriptNir;
1512
1524
  let nonInteractiveRefundScript;
1513
1525
  if (options.nonInteractiveRefund) {
1514
- arkadeScriptNir = enforcePayTo(options.nonInteractiveRefund.senderPkScript);
1526
+ arkadeScriptNir = enforcePayToMaybeAsset(
1527
+ options.nonInteractiveRefund.senderPkScript,
1528
+ options.asset
1529
+ );
1515
1530
  nonInteractiveRefundScript = MultisigTapscript.encode({
1516
1531
  pubkeys: [
1517
1532
  server,
@@ -1614,6 +1629,30 @@ var VHTLC;
1614
1629
  if (!preimageHash || preimageHash.length !== 20) {
1615
1630
  throw new Error("preimage hash must be 20 bytes");
1616
1631
  }
1632
+ if (options.asset !== void 0 && !options.nonInteractiveClaim && !options.nonInteractiveRefund) {
1633
+ throw new Error(
1634
+ "asset has no effect without nonInteractiveClaim or nonInteractiveRefund"
1635
+ );
1636
+ }
1637
+ const strict = options.nonInteractiveClaim?.strict;
1638
+ if (strict !== void 0) {
1639
+ if (strict.amount <= 0n) {
1640
+ throw new Error(`strict claim amount must be positive, got ${strict.amount}`);
1641
+ }
1642
+ if (options.asset !== void 0 && strict.assetAmount === void 0) {
1643
+ throw new Error(
1644
+ "strict claim needs assetAmount when the contract is denominated in an asset: bounding only the sats would leave the asset amount unenforced"
1645
+ );
1646
+ }
1647
+ if (options.asset === void 0 && strict.assetAmount !== void 0) {
1648
+ throw new Error("strict claim assetAmount has no effect without asset");
1649
+ }
1650
+ if (strict.assetAmount !== void 0 && strict.assetAmount <= 0n) {
1651
+ throw new Error(
1652
+ `strict claim assetAmount must be positive, got ${strict.assetAmount}`
1653
+ );
1654
+ }
1655
+ }
1617
1656
  if (options.nonInteractiveClaim) {
1618
1657
  const { emulatorPubkey, receiverPkScript } = options.nonInteractiveClaim;
1619
1658
  if (!emulatorPubkey || emulatorPubkey.length !== 32 && emulatorPubkey.length !== 33) {
@@ -1682,11 +1721,8 @@ function preimageConditionScriptV2(preimageHash) {
1682
1721
  function isP2trPkScript(pkScript) {
1683
1722
  return pkScript.length === 34 && pkScript[0] === 81 && pkScript[1] === 32;
1684
1723
  }
1685
- function enforcePayTo(destinationPkScript) {
1686
- if (!isP2trPkScript(destinationPkScript)) {
1687
- throw new Error("invalid P2TR script");
1688
- }
1689
- return ArkadeScript.encode([
1724
+ function satClause(destinationPkScript, quotedSats) {
1725
+ return [
1690
1726
  "PUSHCURRENTINPUTINDEX",
1691
1727
  "DUP",
1692
1728
  "INSPECTOUTPUTSCRIPTPUBKEY",
@@ -1695,11 +1731,68 @@ function enforcePayTo(destinationPkScript) {
1695
1731
  destinationPkScript.subarray(2),
1696
1732
  "EQUALVERIFY",
1697
1733
  "INSPECTOUTPUTVALUE",
1734
+ // `DUP` because the output value is needed twice: once against the
1735
+ // quote, once against the input.
1736
+ ...quotedSats === void 0 ? [] : ["DUP", quotedSats, "GREATERTHANOREQUAL", "VERIFY"],
1698
1737
  "PUSHCURRENTINPUTINDEX",
1699
1738
  "INSPECTINPUTVALUE",
1700
1739
  "GREATERTHANOREQUAL"
1740
+ ];
1741
+ }
1742
+ function enforcePayTo(destinationPkScript, quotedSats) {
1743
+ if (!isP2trPkScript(destinationPkScript)) {
1744
+ throw new Error("invalid P2TR script");
1745
+ }
1746
+ return ArkadeScript.encode(satClause(destinationPkScript, quotedSats));
1747
+ }
1748
+ function enforcePayToAsset(destinationPkScript, asset, strict) {
1749
+ if (!isP2trPkScript(destinationPkScript)) {
1750
+ throw new Error("invalid P2TR script");
1751
+ }
1752
+ if (asset.txid.length !== 32) {
1753
+ throw new Error(`asset txid must be 32 bytes, got ${asset.txid.length}`);
1754
+ }
1755
+ if (!Number.isInteger(asset.groupIndex) || asset.groupIndex < 0 || asset.groupIndex > 65535) {
1756
+ throw new Error(
1757
+ `asset group index must be an integer in [0, 65535], got ${asset.groupIndex}`
1758
+ );
1759
+ }
1760
+ const inspectionTxid = Uint8Array.from(asset.txid).reverse();
1761
+ return ArkadeScript.encode([
1762
+ // The output carries at least as much of the asset as the input did.
1763
+ // Output index is the input's -- the same index alignment the sat
1764
+ // covenant relies on, and the same liveness obligation on whoever
1765
+ // assembles the spend.
1766
+ "PUSHCURRENTINPUTINDEX",
1767
+ inspectionTxid,
1768
+ asset.groupIndex,
1769
+ "INSPECTOUTASSETLOOKUP",
1770
+ "VERIFY",
1771
+ // PRESENT on the output, not merely "zero of it"
1772
+ // The quoted bound, when the caller opted in — added to the input
1773
+ // comparison below, not substituted for it. `DUP` because the output's
1774
+ // asset amount is needed twice.
1775
+ ...strict?.assetAmount === void 0 ? [] : ["DUP", strict.assetAmount, "GREATERTHANOREQUAL", "VERIFY"],
1776
+ "PUSHCURRENTINPUTINDEX",
1777
+ inspectionTxid,
1778
+ asset.groupIndex,
1779
+ "INSPECTINASSETLOOKUP",
1780
+ "VERIFY",
1781
+ // ...and on the input, so the comparison means something
1782
+ "GREATERTHANOREQUAL",
1783
+ "VERIFY",
1784
+ // Exactly one asset out: nothing injected alongside the one bound.
1785
+ "PUSHCURRENTINPUTINDEX",
1786
+ "INSPECTOUTASSETCOUNT",
1787
+ 1,
1788
+ "EQUALVERIFY",
1789
+ // ...then the sat covenant, the same tokens `enforcePayTo` emits.
1790
+ ...satClause(destinationPkScript, strict?.amount)
1701
1791
  ]);
1702
1792
  }
1793
+ function enforcePayToMaybeAsset(destinationPkScript, asset, strict) {
1794
+ return asset === void 0 ? enforcePayTo(destinationPkScript, strict?.amount) : enforcePayToAsset(destinationPkScript, asset, strict);
1795
+ }
1703
1796
 
1704
1797
  // src/contracts/handlers/vhtlc.ts
1705
1798
  var VHTLCContractHandler = {
@@ -1946,6 +2039,14 @@ var VHTLCContractHandler = {
1946
2039
  };
1947
2040
  }
1948
2041
  };
2042
+ var parseGroupIndex = (raw) => {
2043
+ if (!/^(0|[1-9][0-9]*)$/.test(raw)) {
2044
+ throw new Error(
2045
+ `assetGroupIndex must be a canonical decimal integer, got ${JSON.stringify(raw)}`
2046
+ );
2047
+ }
2048
+ return Number(raw);
2049
+ };
1949
2050
  function decodeCovenantLeaf(params, destinationKey, emulatorKey, label) {
1950
2051
  const destination = params[destinationKey];
1951
2052
  const emulator = params[emulatorKey];
@@ -1982,7 +2083,17 @@ var VHTLCV2ContractHandler = {
1982
2083
  ),
1983
2084
  nonInteractiveClaimEmulatorPubkey: hex.encode(
1984
2085
  params.nonInteractiveClaim.emulatorPubkey
1985
- )
2086
+ ),
2087
+ // The opt-in quoted bound. Dropping it re-derives the DEFAULT
2088
+ // claim covenant — a strictly weaker one — and registration dies
2089
+ // at `upsertContractRow` with an opaque `Script mismatch`. Same
2090
+ // silent-drop class as the asset keys above.
2091
+ ...params.nonInteractiveClaim.strict && {
2092
+ strictClaimAmount: params.nonInteractiveClaim.strict.amount.toString(),
2093
+ ...params.nonInteractiveClaim.strict.assetAmount !== void 0 && {
2094
+ strictClaimAssetAmount: params.nonInteractiveClaim.strict.assetAmount.toString()
2095
+ }
2096
+ }
1986
2097
  },
1987
2098
  ...params.nonInteractiveRefund && {
1988
2099
  nonInteractiveRefundSenderPkScript: hex.encode(
@@ -1991,6 +2102,19 @@ var VHTLCV2ContractHandler = {
1991
2102
  nonInteractiveRefundEmulatorPubkey: hex.encode(
1992
2103
  params.nonInteractiveRefund.emulatorPubkey
1993
2104
  )
2105
+ },
2106
+ // The asset must round-trip, and its absence here used to be silent
2107
+ // in the worst way. `ContractManager` re-derives a contract from
2108
+ // these params; dropping the asset derives the SAT-ONLY script, so
2109
+ // registration died at `upsertContractRow` with a `Script mismatch`
2110
+ // naming two hex strings and no cause. Same silent-drop class
2111
+ // `validateOptions` refuses one layer up.
2112
+ //
2113
+ // Two keys rather than one blob, mirroring the script's own view of
2114
+ // an Asset ID as a (txid, groupIndex) pair.
2115
+ ...params.asset && {
2116
+ assetTxid: hex.encode(params.asset.txid),
2117
+ assetGroupIndex: params.asset.groupIndex.toString()
1994
2118
  }
1995
2119
  };
1996
2120
  },
@@ -2007,12 +2131,27 @@ var VHTLCV2ContractHandler = {
2007
2131
  "nonInteractiveRefundEmulatorPubkey",
2008
2132
  "nonInteractiveRefund"
2009
2133
  );
2134
+ if (params.assetTxid === void 0 !== (params.assetGroupIndex === void 0)) {
2135
+ throw new Error(
2136
+ "asset params are incomplete: assetTxid and assetGroupIndex must both be present or both absent"
2137
+ );
2138
+ }
2139
+ if (params.strictClaimAssetAmount !== void 0 && params.strictClaimAmount === void 0) {
2140
+ throw new Error(
2141
+ "strictClaimAssetAmount without strictClaimAmount: reading this as 'not strict' would re-derive the default claim covenant, which is weaker than the row asked for"
2142
+ );
2143
+ }
2144
+ const asset = params.assetTxid !== void 0 && params.assetGroupIndex !== void 0 ? {
2145
+ txid: hex.decode(params.assetTxid),
2146
+ groupIndex: parseGroupIndex(params.assetGroupIndex)
2147
+ } : void 0;
2010
2148
  return {
2011
2149
  sender: hex.decode(params.sender),
2012
2150
  receiver: hex.decode(params.receiver),
2013
2151
  server: hex.decode(params.server),
2014
2152
  preimageHash: hex.decode(params.hash),
2015
2153
  refundLocktime: BigInt(params.refundLocktime),
2154
+ ...asset && { asset },
2016
2155
  unilateralClaimDelay: sequenceToTimelock(Number(params.claimDelay)),
2017
2156
  unilateralRefundDelay: sequenceToTimelock(Number(params.refundDelay)),
2018
2157
  unilateralRefundWithoutReceiverDelay: sequenceToTimelock(
@@ -2021,7 +2160,15 @@ var VHTLCV2ContractHandler = {
2021
2160
  ...claim && {
2022
2161
  nonInteractiveClaim: {
2023
2162
  receiverPkScript: claim.destination,
2024
- emulatorPubkey: claim.emulatorPubkey
2163
+ emulatorPubkey: claim.emulatorPubkey,
2164
+ ...params.strictClaimAmount !== void 0 && {
2165
+ strict: {
2166
+ amount: BigInt(params.strictClaimAmount),
2167
+ ...params.strictClaimAssetAmount !== void 0 && {
2168
+ assetAmount: BigInt(params.strictClaimAssetAmount)
2169
+ }
2170
+ }
2171
+ }
2025
2172
  }
2026
2173
  },
2027
2174
  ...refund && {
@@ -2794,6 +2941,6 @@ contractHandlers.register(VHTLCV2ContractHandler);
2794
2941
  contractHandlers.register(BoardingContractHandler);
2795
2942
  contractHandlers.register(ArkadeContractHandler);
2796
2943
 
2797
- export { ARKADE_OP, ARKADE_OPCODES, ARKADE_OPCODE_NAMES, ARKADE_OPCODE_VALUES, ARKADE_OPS, ArkadeContractHandler, ArkadeProgramScript, ArkadeScript, BoardingContractHandler, DefaultContractHandler, DefaultVtxo, DelegateContractHandler, DelegateVtxo, OPCODE_NAMES, OPCODE_VALUES, SUPPORTED_PROGRAM_VERSION, VHTLC, VHTLCContractHandler, VHTLCV2ContractHandler, WALLET_RECEIVE_SOURCE, arkadeScriptHash, arkadeWitnessHash, asmToBytes, bignum_exports, bytesToASM, computeArkadeScriptPublicKey, contractHandlers, deriveDescriptorLeafCompressedPubKey, deriveDescriptorLeafPubKey, descriptorIsOurs, deserializeArkadeContractParams, fromASM, getOpcodeName, getOpcodeValue, identityDescriptor, inputName, isCltvSatisfied, isCsvSpendable, isMainnetDescriptor, normalizeToDescriptor, parseArtifact, parseHDDescriptor, resolveAsm, serializeArkadeContractParams, speculativeReceiveMetadata, stringifyArtifact, toASM, validateProgram, witnessRefToBytes };
2798
- //# sourceMappingURL=chunk-LN2VZP63.js.map
2799
- //# sourceMappingURL=chunk-LN2VZP63.js.map
2944
+ export { ARKADE_OP, ARKADE_OPCODES, ARKADE_OPCODE_NAMES, ARKADE_OPCODE_VALUES, ARKADE_OPS, ArkadeContractHandler, ArkadeProgramScript, ArkadeScript, BoardingContractHandler, DefaultContractHandler, DefaultVtxo, DelegateContractHandler, DelegateVtxo, OPCODE_NAMES, OPCODE_VALUES, SUPPORTED_PROGRAM_VERSION, VHTLC, VHTLCContractHandler, VHTLCV2ContractHandler, WALLET_RECEIVE_SOURCE, arkadeScriptHash, arkadeWitnessHash, asmToBytes, bignum_exports, bytesToASM, computeArkadeScriptPublicKey, contractHandlers, deriveDescriptorLeafCompressedPubKey, deriveDescriptorLeafPubKey, descriptorIsOurs, deserializeArkadeContractParams, fromASM, getOpcodeName, getOpcodeValue, identityDescriptor, inputName, isCltvSatisfied, isCsvSpendable, isMainnetDescriptor, normalizeToDescriptor, parseArtifact, parseHDDescriptor, resolveAsm, serializeArkadeContractParams, speculativeReceiveMetadata, stringifyArtifact, toASM, toXOnly, validateProgram, witnessRefToBytes };
2945
+ //# sourceMappingURL=chunk-CYOI4PEA.js.map
2946
+ //# sourceMappingURL=chunk-CYOI4PEA.js.map