@arkade-os/sdk 0.5.0-rc.9 → 0.5.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 (94) hide show
  1. package/README.md +232 -51
  2. package/dist/adapters/expo.cjs +5 -5
  3. package/dist/adapters/expo.d.cts +5 -5
  4. package/dist/adapters/expo.d.ts +5 -5
  5. package/dist/adapters/expo.js +3 -3
  6. package/dist/{asyncStorageTaskQueue-DZYrAWN8.d.ts → asyncStorageTaskQueue-CdWheMqT.d.ts} +1 -1
  7. package/dist/{asyncStorageTaskQueue-ChKX-D51.d.cts → asyncStorageTaskQueue-DFt5LgW5.d.cts} +1 -1
  8. package/dist/{chunk-R4KRWX7R.js → chunk-3M22PJVB.js} +427 -1078
  9. package/dist/chunk-3M22PJVB.js.map +1 -0
  10. package/dist/{chunk-J2K7WWMJ.js → chunk-6MIGYYWB.js} +112 -243
  11. package/dist/chunk-6MIGYYWB.js.map +1 -0
  12. package/dist/{chunk-FQCMEAWN.js → chunk-FXVEOEYB.js} +32 -39
  13. package/dist/chunk-FXVEOEYB.js.map +1 -0
  14. package/dist/{chunk-7OL2P5TV.cjs → chunk-GQUFPTN7.cjs} +39 -46
  15. package/dist/chunk-GQUFPTN7.cjs.map +1 -0
  16. package/dist/{chunk-VMVHRKXM.cjs → chunk-GW42FS2X.cjs} +494 -1122
  17. package/dist/chunk-GW42FS2X.cjs.map +1 -0
  18. package/dist/{chunk-V4JZOFYT.cjs → chunk-HQNQ3CLQ.cjs} +124 -254
  19. package/dist/chunk-HQNQ3CLQ.cjs.map +1 -0
  20. package/dist/{chunk-PO2ZDZZC.cjs → chunk-JJ6QKTFZ.cjs} +12 -10
  21. package/dist/chunk-JJ6QKTFZ.cjs.map +1 -0
  22. package/dist/{chunk-3TCWQPAC.js → chunk-NKKJEA3Z.js} +5842 -4284
  23. package/dist/chunk-NKKJEA3Z.js.map +1 -0
  24. package/dist/{chunk-JFZBKPSV.js → chunk-QFB55EOZ.js} +541 -400
  25. package/dist/chunk-QFB55EOZ.js.map +1 -0
  26. package/dist/{chunk-PKD5VPYX.cjs → chunk-QKNSMVBW.cjs} +6143 -4565
  27. package/dist/chunk-QKNSMVBW.cjs.map +1 -0
  28. package/dist/{chunk-VTXMC4N7.cjs → chunk-XLHUGP3G.cjs} +548 -399
  29. package/dist/chunk-XLHUGP3G.cjs.map +1 -0
  30. package/dist/{chunk-Z3QM5XFY.js → chunk-XQRIY5K5.js} +7 -5
  31. package/dist/chunk-XQRIY5K5.js.map +1 -0
  32. package/dist/contracts/handlers/index.cjs +9 -9
  33. package/dist/contracts/handlers/index.d.cts +5 -5
  34. package/dist/contracts/handlers/index.d.ts +5 -5
  35. package/dist/contracts/handlers/index.js +2 -2
  36. package/dist/{delegate-CyBnNY9v.d.ts → delegate-BSbGQabI.d.ts} +1 -1
  37. package/dist/{delegate-Cyv2suFd.d.cts → delegate-CFCfrReG.d.cts} +1 -1
  38. package/dist/{index-BIL9boGL.d.ts → index-B3fRWO5i.d.cts} +1652 -2291
  39. package/dist/{index-BIL9boGL.d.cts → index-B3fRWO5i.d.ts} +1652 -2291
  40. package/dist/index-CzUVvIxA.d.ts +645 -0
  41. package/dist/index-Fpf4mQZr.d.cts +645 -0
  42. package/dist/index.cjs +399 -311
  43. package/dist/index.d.cts +957 -1124
  44. package/dist/index.d.ts +957 -1124
  45. package/dist/index.js +4 -4
  46. package/dist/repositories/realm/index.cjs +165 -103
  47. package/dist/repositories/realm/index.cjs.map +1 -1
  48. package/dist/repositories/realm/index.d.cts +18 -14
  49. package/dist/repositories/realm/index.d.ts +18 -14
  50. package/dist/repositories/realm/index.js +153 -91
  51. package/dist/repositories/realm/index.js.map +1 -1
  52. package/dist/repositories/sqlite/index.cjs +226 -184
  53. package/dist/repositories/sqlite/index.cjs.map +1 -1
  54. package/dist/repositories/sqlite/index.d.cts +22 -21
  55. package/dist/repositories/sqlite/index.d.ts +22 -21
  56. package/dist/repositories/sqlite/index.js +218 -176
  57. package/dist/repositories/sqlite/index.js.map +1 -1
  58. package/dist/{taskRunner-Cu4uO1to.d.ts → taskRunner-CdfoCMaw.d.ts} +1 -1
  59. package/dist/{taskRunner-DxpSuKmh.d.cts → taskRunner-Dk6oDAtd.d.cts} +1 -1
  60. package/dist/wallet/expo/background.cjs +14 -14
  61. package/dist/wallet/expo/background.cjs.map +1 -1
  62. package/dist/wallet/expo/background.d.cts +10 -16
  63. package/dist/wallet/expo/background.d.ts +10 -16
  64. package/dist/wallet/expo/background.js +6 -6
  65. package/dist/wallet/expo/background.js.map +1 -1
  66. package/dist/wallet/expo/index.cjs +19 -14
  67. package/dist/wallet/expo/index.cjs.map +1 -1
  68. package/dist/wallet/expo/index.d.cts +8 -6
  69. package/dist/wallet/expo/index.d.ts +8 -6
  70. package/dist/wallet/expo/index.js +10 -5
  71. package/dist/wallet/expo/index.js.map +1 -1
  72. package/dist/wallet-BQHNgc_v.d.ts +1874 -0
  73. package/dist/wallet-D9dvXu-K.d.cts +1874 -0
  74. package/dist/worker/expo/index.cjs +9 -9
  75. package/dist/worker/expo/index.d.cts +6 -6
  76. package/dist/worker/expo/index.d.ts +6 -6
  77. package/dist/worker/expo/index.js +5 -5
  78. package/package.json +10 -11
  79. package/dist/chunk-3TCWQPAC.js.map +0 -1
  80. package/dist/chunk-7OL2P5TV.cjs.map +0 -1
  81. package/dist/chunk-FQCMEAWN.js.map +0 -1
  82. package/dist/chunk-J2K7WWMJ.js.map +0 -1
  83. package/dist/chunk-JFZBKPSV.js.map +0 -1
  84. package/dist/chunk-PKD5VPYX.cjs.map +0 -1
  85. package/dist/chunk-PO2ZDZZC.cjs.map +0 -1
  86. package/dist/chunk-R4KRWX7R.js.map +0 -1
  87. package/dist/chunk-V4JZOFYT.cjs.map +0 -1
  88. package/dist/chunk-VMVHRKXM.cjs.map +0 -1
  89. package/dist/chunk-VTXMC4N7.cjs.map +0 -1
  90. package/dist/chunk-Z3QM5XFY.js.map +0 -1
  91. package/dist/hdWalletCapable-D1ImQqlu.d.cts +0 -2214
  92. package/dist/hdWalletCapable-DvumVrKW.d.ts +0 -2214
  93. package/dist/index-DleNQcz5.d.cts +0 -850
  94. package/dist/index-QVhQgYvU.d.ts +0 -850
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- export { ARKADE_MAGIC, ARKADE_SALTED_PREIMAGE_TAG, ARKADE_SWAP_PREIMAGE_TAG, ASSET_CARRIER_SATS, AbortError, ActivityRegistry, AmbiguousRouteError, ArkNote, ArkadeCash, ArkadeCashCreateError, AssetManager, BIP21, BIP21Error, BIP322, BLOCKED_UPGRADE_TIMEOUT_MS, Batch, CachingArkProvider, ChainedTxType, ConnectionDisposedError, ContractManager, ContractWatcher, DEFAULT_MESSAGE_TIMEOUTS, DEFAULT_MIN_BATCH_EXPIRY_SECONDS, DEFAULT_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, DatabaseUpgradeBlockedError, DelegateManagerImpl, DelegateNotConfiguredError, DescriptorIdentity, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, ESPLORA_URL, ElectrumOnchainProvider, EmulatorPacket, EsploraProvider, Estimator, Extension, ExtensionNotFoundError, ForeignDescriptorError, HDDescriptorProvider, INTENT_TERMINAL_STATES, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, MAX_USED_SIGNING_DESCRIPTORS_LOOK_AHEAD, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MUTINYNET_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, MissingSigningDescriptorError, MnemonicIdentity, OnchainWallet, P2A, PaymentRouter, PrevTxUnavailableError, REGTEST_MIN_BATCH_EXPIRY_SECONDS, REGTEST_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, RestDelegateProvider, RestEmulatorProvider, SIGNET_MIN_CHECKPOINT_EXIT_DELAY_SECONDS, SeedIdentity, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, SingleKey, TxTree, TxType, TxWeightEstimator, UnannotatableInputError, UnilateralExit, UnknownPacket, Unroll, VtxoManager, Wallet, WalletCannotAllocateAddressError, WalletCannotSignError, WalletMessageHandler, WalletNotInitializedError, WsElectrumChainSource, adoptContractDescriptor, arkAssetRail, arkRail, arkTarget, arkade_exports as arkade, assertFinalCommitmentMatchesValidated, assertNoAssets, assertRecipientArkadeAddress, assertSendableAmount, assertSubmittedArkTxid, assertValidBatchExpiry, assertValidServerUnrollScript, assetMintResolver, assetsOf, attachPrevArkTxs, attachPrevoutTxs, awaitTransaction, boardingResolver, btcTarget, buildForfeitTx, buildOffchainTx, buildPreimageMessage, buildSaltedPreimageMessage, claimWithPreimageIdentity, classifyAgainstSignerSet, classifyContractSigner, closeDatabase, collabExitResolver, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, contractPreimage, contractSigner, createAssetPacket, createDefaultActivityRegistry, createDefaultPaymentRouter, createExitChainResolver, createManagedConnection, decodeArkContract, defaultBatchExpiryPolicy, defaultCheckpointExitDelayPolicy, deleteByIndex, deserializeExitPackage, encodeArkContract, exitObserverFor, gateExclusion, gatedContracts, getAllByIndexValues, getRandomId, hasBoardingTxExpired, hasCandidates, invoiceTarget, isAddressAllocationCapable, isArkContract, isBatchSignable, isBtcAddress, isContractGenericallySpendable, isContractVtxoEvent, isCooperativelyMigratable, isDeterministicSigner, isDiscoverable, isHDAllocationCapable, isHDDeterministicSignCapable, isHDWalletCapable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isPerArtifactDescriptor, isSigningIdentity, isSubdust, isTerminalIntentState, isValidArkAddress, isVtxoExpiringSoon, logExcludedVtxos, makeHandle, matchServerCheckpoints, notifyExitObserved, onchainRail, openDatabase, outpointExclusion, outpointReasons, promisifyRequest, provisionClaimSecret, provisionRefundKey, registerWalletRestoreHook, resolveAssetAmount, resolveBatchExpiryPolicy, resolveCheckpointExitDelayPolicy, resolveDescriptorSigner, resolvePrevTxs, resolveSendAmount, selectCoinsWithAsset, selectVirtualCoins, serializeExitPackage, setupServiceWorker, signAndSubmitOffchainTx, signerSetFromInfo, signingDescriptorIndex, strictSigningDescriptorIndex, toXOnlySignerHex, tryResolveSendAmount, validateBatchRecipients, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures, waitForIncomingFunds, walletFeeSource, withPrevTxs } from './chunk-3TCWQPAC.js';
2
- export { ChainTxType, DEFAULT_VTXO_PAGE_SIZE, IndexerTxType, RestIndexerProvider, asset_exports as asset } from './chunk-J2K7WWMJ.js';
3
- export { ArkadeContractHandler, BoardingContractHandler, DefaultContractHandler, DefaultVtxo, DelegateContractHandler, DelegateVtxo, VHTLC, VHTLCContractHandler, VHTLCV2ContractHandler, contractHandlers, deriveDescriptorLeafCompressedPubKey, deriveDescriptorLeafPubKey, identityDescriptor, isCltvSatisfied, isCsvSpendable, normalizeToDescriptor, parseHDDescriptor, toXOnly } from './chunk-R4KRWX7R.js';
4
- export { ArkAddress, ArkError, ArkErrorName, ArkPsbtFieldKey, ArkPsbtFieldKeyType, BITCOIN_EMULATOR_PUBKEY, CLTVMultisigTapscript, CSVMultisigTapscript, ConditionCSVMultisigTapscript, ConditionMultisigTapscript, ConditionWitness, CosignerPublicKey, DigestMismatchError, EventSourceUnavailableError, FetchError, Intent, MUTINYNET_EMULATOR_PUBKEY, MultisigTapscript, PrevArkTxField, PrevoutTxField, ProviderUnavailableError, READ_TIMEOUT_MS, REGTEST_EMULATOR_PUBKEY, RestArkProvider, ServerResponseMismatchError, SettlementEventType, TapTreeCoder, Transaction, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, assembleBtcdTaprootTree, assertAllowedSighashTypes, buildVersion, canRecoverOnchain, canSpendOffchain, canSweepOnchain, configureEventSource, decodeTapscript, defaultEmulatorPubkey, getAllNormalizedVtxos, getArkPsbtFields, getConfiguredEventSource, getNetwork, getNormalizedVtxos, getSequence, hasTerminalSpend, isArkError, isEventSourceUnavailableError, isPastExpiry, isRetryableProviderError, isVirtualCoin, maybeArkError, networkFromArkadeInfo, networks, resolveEmulatorPubkey, resolveEventSource, scriptFromTapLeafScript, sdkVersion, sequenceToTimelock, setArkPsbtField, timelockToSequence } from './chunk-JFZBKPSV.js';
1
+ export { ARKADE_MAGIC, ARKADE_SALTED_PREIMAGE_TAG, ARKADE_SWAP_PREIMAGE_TAG, ASSET_CARRIER_SATS, AbortError, ActivityRegistry, AmbiguousRouteError, ArkNote, Arkade, ArkadeCash, ArkadeCashCreateError, ArkadeCashOperatorMismatchError, AssetManager, BIP21, BIP21Error, BIP322, BLOCKED_UPGRADE_TIMEOUT_MS, Batch, CachingArkProvider, ChainedTxType, ConnectionDisposedError, ContractManager, ContractWatcher, DEFAULT_MESSAGE_TIMEOUTS, DEFAULT_MIN_BATCH_EXPIRY_SECONDS, DatabaseUpgradeBlockedError, DelegateManagerImpl, DelegateNotConfiguredError, DescriptorIdentity, DescriptorSigningProviderMissingError, DustChangeError, ELECTRUM_TCP_HOST, ELECTRUM_WS_URL, ESPLORA_URL, ElectrumOnchainProvider, EmulatorPacket, EsploraProvider, Estimator, Extension, ExtensionNotFoundError, ForeignDescriptorError, HDDescriptorProvider, INTENT_TERMINAL_STATES, InMemoryContractRepository, InMemoryIntentRepository, InMemoryVirtualTxRepository, InMemoryWalletRepository, IndexedDBContractRepository, IndexedDBIntentRepository, IndexedDBVirtualTxRepository, IndexedDBWalletRepository, KeyringDescriptorProvider, MAX_PAGE_SIZE, MAX_USED_SIGNING_DESCRIPTORS_LOOK_AHEAD, MESSAGE_BUS_INITIALIZING, MESSAGE_BUS_NOT_INITIALIZED, MessageBus, MessageBusInitializingError, MessageBusNotInitializedError, MissingSigningDescriptorError, MnemonicIdentity, OnchainWallet, OversizedChangeError, P2A, PaymentRouter, PrevTxUnavailableError, REGTEST_MIN_BATCH_EXPIRY_SECONDS, Ramps, ReadonlyAssetManager, ReadonlyDescriptorIdentity, ReadonlySingleKey, ReadonlyWallet, ReadonlyWalletError, RestDelegateProvider, RestEmulatorProvider, SeedIdentity, SendDeadlineExceededError, ServiceWorkerReadonlyWallet, ServiceWorkerTimeoutError, ServiceWorkerWallet, SingleKey, StaticDescriptorProvider, TxTree, TxType, TxWeightEstimator, UnannotatableInputError, UnilateralExit, UnknownPacket, Unroll, VtxoManager, VtxoReservedError, Wallet, WalletCannotAllocateAddressError, WalletCannotSignError, WalletMessageHandler, WalletNotInitializedError, WsElectrumChainSource, adoptContractDescriptor, arkAssetRail, arkRail, arkTarget, arkade_exports as arkade, assertFinalCommitmentMatchesValidated, assertNoAssets, assertNoSelection, assertPageRequest, assertRecipientArkadeAddress, assertSendDeadline, assertSendableAmount, assertSubmittedArkTxid, assertValidBatchExpiry, assertValidServerUnrollScript, assetMintResolver, assetsOf, attachPrevArkTxs, attachPrevoutTxs, awaitTransaction, boardingResolver, btcTarget, buildForfeitTx, buildOffchainTx, buildPreimageMessage, buildSaltedPreimageMessage, captureSendDeadline, claimWithPreimageIdentity, classifyAgainstSignerSet, classifyContractSigner, closeDatabase, collabExitResolver, collectContracts, collectIntents, collectPages, collectScriptVtxos, collectTransactionHistory, collectUtxos, collectVtxos, combineTapscriptSigs, contractFromArkContract, contractFromArkContractWithAddress, contractPreimage, contractSigner, createAssetPacket, createDefaultActivityRegistry, createDefaultPaymentRouter, createExitChainResolver, createManagedConnection, decodeArkContract, defaultBatchExpiryPolicy, deleteByIndex, deserializeExitPackage, encodeArkContract, exitObserverFor, gateExclusion, gatedContracts, getAllByIndexValues, getRandomId, hasBoardingTxExpired, hasCandidates, invoiceTarget, isAddressAllocationCapable, isArkContract, isBatchSignable, isBtcAddress, isContractGenericallySpendable, isContractVtxoEvent, isCooperativelyMigratable, isDeterministicSigner, isDiscoverable, isHDAllocationCapable, isHDDeterministicSignCapable, isHDWalletCapable, isLightningInvoice, isLnurl, isMessageBusInitializingError, isMessageBusNotInitializedError, isPerArtifactDescriptor, isSigningIdentity, isSubdust, isTerminalIntentState, isValidArkAddress, isVtxoExpiringSoon, iteratePages, logExcludedVtxos, makeHandle, matchServerCheckpoints, notifyExitObserved, onchainRail, openDatabase, outpointExclusion, outpointReasons, pageResult, promisifyRequest, provisionClaimSecret, provisionRefundKey, registerWalletRestoreHook, resolveAssetAmount, resolveBatchExpiryPolicy, resolveDescriptorSigner, resolvePrevTxs, resolveSendAmount, selectCoinsWithAsset, selectVirtualCoins, selectionOf, serializeExitPackage, setupServiceWorker, signAndSubmitOffchainTx, signerSetFromInfo, signingDescriptorIndex, strictSigningDescriptorIndex, submitViaEmulator, toXOnlySignerHex, tryResolveSendAmount, validateBatchRecipients, validateConnectorsTxGraph, validateVtxoTxGraph, verifyTapscriptSignatures, waitForIncomingFunds, walletFeeSource, withPrevTxs } from './chunk-NKKJEA3Z.js';
2
+ export { ChainTxType, DEFAULT_VTXO_PAGE_SIZE, IndexerTxType, RestIndexerProvider, asset_exports as asset } from './chunk-6MIGYYWB.js';
3
+ export { ArkadeContractHandler, BoardingContractHandler, DefaultContractHandler, DefaultVtxo, DelegateContractHandler, DelegateVtxo, UnsupportedProgramVersionError, VHTLC, VHTLCContractHandler, VHTLCV2ContractHandler, contractHandlers, deriveDescriptorLeafCompressedPubKey, deriveDescriptorLeafPubKey, identityDescriptor, isCltvSatisfied, isCsvSpendable, normalizeToDescriptor, parseHDDescriptor, toXOnly } from './chunk-3M22PJVB.js';
4
+ export { ArkAddress, ArkError, ArkErrorName, ArkPsbtFieldKey, ArkPsbtFieldKeyType, BITCOIN_EMULATOR_PUBKEY, CLTVMultisigTapscript, CSVMultisigTapscript, ConditionCSVMultisigTapscript, ConditionMultisigTapscript, ConditionWitness, CosignerPublicKey, DEFAULT_ARKADE_EMULATOR_URL, DigestMismatchError, EventSourceUnavailableError, FetchError, Intent, MUTINYNET_EMULATOR_PUBKEY, MultisigTapscript, PrevArkTxField, PrevoutTxField, ProviderUnavailableError, READ_TIMEOUT_MS, REGTEST_EMULATOR_PUBKEY, RestArkProvider, ServerResponseMismatchError, SettlementEventType, TapTreeCoder, Transaction, VtxoScript, VtxoTaprootTree, VtxoTreeExpiry, assembleBtcdTaprootTree, assertAllowedSighashTypes, assertNonNegativeMs, assertTimerMs, buildVersion, canRecoverOnchain, canSpendOffchain, canSweepOnchain, configureEventSource, decodeTapscript, defaultEmulatorPubkey, getAllNormalizedVtxos, getArkPsbtFields, getConfiguredEventSource, getNetwork, getNormalizedVtxos, getSequence, isArkError, isEventSourceUnavailableError, isPastExpiry, isRetryableProviderError, isVirtualCoin, isVtxoSpent, maybeArkError, networkFromArkadeInfo, networks, resolveEmulatorPubkey, resolveEventSource, scriptFromTapLeafScript, sdkVersion, sequenceToTimelock, setArkPsbtField, timelockToSequence, toOffchainInputFeeParams } from './chunk-QFB55EOZ.js';
5
5
  //# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkPKD5VPYX_cjs = require('../../chunk-PKD5VPYX.cjs');
4
- require('../../chunk-V4JZOFYT.cjs');
5
- require('../../chunk-VMVHRKXM.cjs');
6
- require('../../chunk-VTXMC4N7.cjs');
3
+ var chunkQKNSMVBW_cjs = require('../../chunk-QKNSMVBW.cjs');
4
+ require('../../chunk-HQNQ3CLQ.cjs');
5
+ require('../../chunk-GW42FS2X.cjs');
6
+ var chunkXLHUGP3G_cjs = require('../../chunk-XLHUGP3G.cjs');
7
7
 
8
8
  // src/repositories/realm/walletRepository.ts
9
9
  var RealmWalletRepository = class {
@@ -11,7 +11,7 @@ var RealmWalletRepository = class {
11
11
  this.realm = realm;
12
12
  }
13
13
  realm;
14
- version = 1;
14
+ version = 2;
15
15
  // ── Lifecycle ──────────────────────────────────────────────────────
16
16
  async ensureInit() {
17
17
  }
@@ -28,16 +28,14 @@ var RealmWalletRepository = class {
28
28
  });
29
29
  }
30
30
  // ── VTXO management ────────────────────────────────────────────────
31
- async getVtxos(address) {
32
- await this.ensureInit();
33
- const results = this.realm.objects("ArkVtxo").filtered("address == $0", address);
34
- return [...results].map(vtxoObjectToDomain);
31
+ async getVtxosPage(address, page) {
32
+ return this.pageByAddress("ArkVtxo", address, page, vtxoObjectToDomain);
35
33
  }
36
34
  async saveVtxos(address, vtxos) {
37
35
  await this.ensureInit();
38
36
  this.realm.write(() => {
39
37
  for (const vtxo of vtxos) {
40
- const s = chunkPKD5VPYX_cjs.serializeVtxo(vtxo);
38
+ const s = chunkQKNSMVBW_cjs.serializeVtxo(vtxo);
41
39
  this.realm.create(
42
40
  "ArkVtxo",
43
41
  {
@@ -52,13 +50,13 @@ var RealmWalletRepository = class {
52
50
  intentCb: s.intentTapLeafScript.cb,
53
51
  intentS: s.intentTapLeafScript.s,
54
52
  statusJson: JSON.stringify(s.status),
55
- createdAt: typeof s.createdAt === "string" ? s.createdAt : s.createdAt instanceof Date ? s.createdAt.toISOString() : new Date(s.createdAt).toISOString(),
53
+ createdAt: chunkQKNSMVBW_cjs.createdAtToIso(s.createdAt),
56
54
  isUnrolled: s.isUnrolled ?? false,
57
55
  isSpent: s.isSpent === void 0 ? null : s.isSpent,
58
56
  isSwept: s.isSwept === void 0 ? null : s.isSwept,
59
57
  isPreconfirmed: s.isPreconfirmed === void 0 ? null : s.isPreconfirmed,
60
58
  commitmentTxIdsJson: s.commitmentTxIds ? JSON.stringify(s.commitmentTxIds) : null,
61
- expiresAt: s.expiresAt === void 0 ? null : s.expiresAt instanceof Date ? s.expiresAt.toISOString() : new Date(s.expiresAt).toISOString(),
59
+ expiresAt: s.expiresAt === void 0 ? null : new Date(s.expiresAt).toISOString(),
62
60
  expiresAtHeight: s.expiresAtHeight ?? null,
63
61
  spentBy: s.spentBy ?? null,
64
62
  settledBy: s.settledBy ?? null,
@@ -73,48 +71,84 @@ var RealmWalletRepository = class {
73
71
  });
74
72
  }
75
73
  async deleteVtxos(address) {
76
- await this.ensureInit();
77
- this.realm.write(() => {
78
- const toDelete = this.realm.objects("ArkVtxo").filtered("address == $0", address);
79
- this.realm.delete(toDelete);
80
- });
74
+ return this.deleteWhere("ArkVtxo", "address", address);
81
75
  }
82
- async getVtxosForScript(script) {
76
+ async getVtxosForScriptPage(script, page, options) {
77
+ chunkQKNSMVBW_cjs.assertPageRequest(page);
83
78
  await this.ensureInit();
84
- const results = this.realm.objects("ArkVtxo").filtered("script == $0", script);
85
- return [...results].map(vtxoObjectToDomain);
86
- }
87
- async saveVtxosForScript(key, vtxos) {
88
- if (!key.address) {
89
- throw new Error("RealmWalletRepository requires an address");
79
+ let results = this.realm.objects("ArkVtxo").filtered("script == $0", script);
80
+ if (options?.unspentOnly) {
81
+ results = results.filtered(
82
+ "(isSpent == null OR isSpent == $0) AND (spentBy == null OR spentBy == $1) AND (settledBy == null OR settledBy == $1)",
83
+ false,
84
+ ""
85
+ );
90
86
  }
91
- for (const vtxo of vtxos) {
92
- if (!chunkPKD5VPYX_cjs.isVtxoForScript(vtxo, key.script)) {
93
- throw new Error(
94
- `VTXO ${vtxo.txid}:${vtxo.vout} script mismatch: expected ${key.script}, got ${vtxo.script}`
95
- );
96
- }
87
+ if (page.after) {
88
+ results = results.filtered(
89
+ "address > $0 OR (address == $0 AND (txid > $1 OR (txid == $1 AND vout > $2)))",
90
+ page.after.address,
91
+ page.after.txid,
92
+ page.after.vout
93
+ );
94
+ }
95
+ const rows = [];
96
+ for (const row of results.sorted([
97
+ ["address", false],
98
+ ["txid", false],
99
+ ["vout", false]
100
+ ])) {
101
+ rows.push({ address: row.address, vtxo: vtxoObjectToDomain(row) });
102
+ if (rows.length > page.limit) break;
97
103
  }
98
- return this.saveVtxos(key.address, vtxos);
104
+ const result = chunkQKNSMVBW_cjs.pageResult(rows, page.limit, (row) => ({
105
+ address: row.address,
106
+ txid: row.vtxo.txid,
107
+ vout: row.vtxo.vout
108
+ }));
109
+ return options?.unspentOnly ? { ...result, items: result.items.filter((row) => !chunkXLHUGP3G_cjs.isVtxoSpent(row.vtxo)) } : result;
110
+ }
111
+ async saveVtxosForScript(key, vtxos) {
112
+ return this.saveVtxos(chunkQKNSMVBW_cjs.checkSaveVtxosForScript("RealmWalletRepository", key, vtxos), vtxos);
99
113
  }
100
114
  async deleteVtxosForScript(script) {
101
- await this.ensureInit();
102
- this.realm.write(() => {
103
- const toDelete = this.realm.objects("ArkVtxo").filtered("script == $0", script);
104
- this.realm.delete(toDelete);
105
- });
115
+ return this.deleteWhere("ArkVtxo", "script", script);
106
116
  }
107
117
  // ── UTXO management ────────────────────────────────────────────────
108
- async getUtxos(address) {
118
+ async getUtxosPage(address, page) {
119
+ return this.pageByAddress("ArkUtxo", address, page, utxoObjectToDomain);
120
+ }
121
+ async pageByAddress(schema, address, page, deserialize) {
122
+ chunkQKNSMVBW_cjs.assertPageRequest(page);
109
123
  await this.ensureInit();
110
- const results = this.realm.objects("ArkUtxo").filtered("address == $0", address);
111
- return [...results].map(utxoObjectToDomain);
124
+ let results = this.realm.objects(schema).filtered("address == $0", address);
125
+ if (page.after) {
126
+ results = results.filtered(
127
+ "txid > $0 OR (txid == $0 AND vout > $1)",
128
+ page.after.txid,
129
+ page.after.vout
130
+ );
131
+ }
132
+ const rows = [];
133
+ for (const row of results.sorted([
134
+ ["txid", false],
135
+ ["vout", false]
136
+ ])) {
137
+ rows.push({ key: { txid: row.txid, vout: row.vout }, item: deserialize(row) });
138
+ if (rows.length > page.limit) break;
139
+ }
140
+ const result = chunkQKNSMVBW_cjs.pageResult(rows, page.limit, (row) => row.key);
141
+ return { items: result.items.map((row) => row.item), nextCursor: result.nextCursor };
112
142
  }
113
- async saveUtxos(address, utxos) {
143
+ async saveUtxos(addressOrBatch, utxos) {
114
144
  await this.ensureInit();
145
+ const rows = chunkQKNSMVBW_cjs.utxoEntries(addressOrBatch, utxos).flatMap(
146
+ ([address, list]) => list.map((utxo) => ({ address, utxo }))
147
+ );
148
+ if (rows.length === 0) return;
115
149
  this.realm.write(() => {
116
- for (const utxo of utxos) {
117
- const s = chunkPKD5VPYX_cjs.serializeUtxo(utxo);
150
+ for (const { address, utxo } of rows) {
151
+ const s = chunkQKNSMVBW_cjs.serializeUtxo(utxo);
118
152
  this.realm.create(
119
153
  "ArkUtxo",
120
154
  {
@@ -137,19 +171,31 @@ var RealmWalletRepository = class {
137
171
  });
138
172
  }
139
173
  async deleteUtxos(address) {
140
- await this.ensureInit();
141
- this.realm.write(() => {
142
- const toDelete = this.realm.objects("ArkUtxo").filtered("address == $0", address);
143
- this.realm.delete(toDelete);
144
- });
174
+ return this.deleteWhere("ArkUtxo", "address", address);
145
175
  }
146
176
  // ── Transaction history ────────────────────────────────────────────
147
- async getTransactionHistory(address) {
148
- await this.ensureInit();
149
- const results = this.realm.objects("ArkTransaction").filtered("address == $0", address);
150
- const txs = [...results].map(txObjectToDomain);
151
- txs.sort((a, b) => a.createdAt - b.createdAt);
152
- return txs;
177
+ async getTransactionHistoryPage(filter, page) {
178
+ chunkQKNSMVBW_cjs.assertPageRequest(page);
179
+ chunkQKNSMVBW_cjs.assertHistoryPageFilter(filter);
180
+ let results = this.realm.objects("ArkTransaction").filtered("address == $0", filter.address);
181
+ results = results.filtered(
182
+ "createdAt >= $0",
183
+ Math.max(filter.since ?? 0, page.after?.createdAt ?? 0)
184
+ );
185
+ const rows = [];
186
+ for (const row of results.sorted([
187
+ ["createdAt", false],
188
+ ["boardingTxid", false],
189
+ ["commitmentTxid", false],
190
+ ["arkTxid", false]
191
+ ])) {
192
+ const tx = txObjectToDomain(row);
193
+ if (page.after !== void 0 && chunkQKNSMVBW_cjs.compareHistoryCursors({ createdAt: tx.createdAt, key: tx.key }, page.after) <= 0)
194
+ continue;
195
+ rows.push(tx);
196
+ if (rows.length > page.limit) break;
197
+ }
198
+ return chunkQKNSMVBW_cjs.pageResult(rows, page.limit, (tx) => ({ createdAt: tx.createdAt, key: tx.key }));
153
199
  }
154
200
  async saveTransactions(address, txs) {
155
201
  await this.ensureInit();
@@ -167,7 +213,7 @@ var RealmWalletRepository = class {
167
213
  amount: tx.amount,
168
214
  settled: tx.settled,
169
215
  createdAt: tx.createdAt,
170
- assetsJson: tx.assets ? JSON.stringify(chunkPKD5VPYX_cjs.serializeAssets(tx.assets)) : null
216
+ assetsJson: tx.assets ? JSON.stringify(chunkQKNSMVBW_cjs.serializeAssets(tx.assets)) : null
171
217
  },
172
218
  "modified"
173
219
  );
@@ -175,9 +221,12 @@ var RealmWalletRepository = class {
175
221
  });
176
222
  }
177
223
  async deleteTransactions(address) {
224
+ return this.deleteWhere("ArkTransaction", "address", address);
225
+ }
226
+ async deleteWhere(objectType, field, value) {
178
227
  await this.ensureInit();
179
228
  this.realm.write(() => {
180
- const toDelete = this.realm.objects("ArkTransaction").filtered("address == $0", address);
229
+ const toDelete = this.realm.objects(objectType).filtered(`${field} == $0`, value);
181
230
  this.realm.delete(toDelete);
182
231
  });
183
232
  }
@@ -241,9 +290,9 @@ function vtxoObjectToDomain(obj) {
241
290
  // Post-migration every row has `script`, but the backfill is
242
291
  // idempotent: derive from `address` if the legacy column is still
243
292
  // null (e.g. the migration hasn't run yet on this handle).
244
- script: obj.script ?? chunkPKD5VPYX_cjs.scriptFromArkAddress(obj.address)
293
+ script: obj.script ?? chunkQKNSMVBW_cjs.scriptFromArkAddress(obj.address)
245
294
  };
246
- return chunkPKD5VPYX_cjs.deserializeVtxo(serialized);
295
+ return chunkQKNSMVBW_cjs.deserializeVtxo(serialized);
247
296
  }
248
297
  function utxoObjectToDomain(obj) {
249
298
  const serialized = {
@@ -262,7 +311,7 @@ function utxoObjectToDomain(obj) {
262
311
  status: JSON.parse(obj.statusJson),
263
312
  extraWitness: obj.extraWitnessJson ? JSON.parse(obj.extraWitnessJson) : void 0
264
313
  };
265
- return chunkPKD5VPYX_cjs.deserializeUtxo(serialized);
314
+ return chunkQKNSMVBW_cjs.deserializeUtxo(serialized);
266
315
  }
267
316
  function txObjectToDomain(obj) {
268
317
  const tx = {
@@ -277,7 +326,7 @@ function txObjectToDomain(obj) {
277
326
  createdAt: obj.createdAt
278
327
  };
279
328
  if (obj.assetsJson) {
280
- tx.assets = chunkPKD5VPYX_cjs.deserializeAssets(JSON.parse(obj.assetsJson));
329
+ tx.assets = chunkQKNSMVBW_cjs.deserializeAssets(JSON.parse(obj.assetsJson));
281
330
  }
282
331
  return tx;
283
332
  }
@@ -288,7 +337,7 @@ var RealmContractRepository = class {
288
337
  this.realm = realm;
289
338
  }
290
339
  realm;
291
- version = 2;
340
+ version = 3;
292
341
  // ── Lifecycle ──────────────────────────────────────────────────────
293
342
  async ensureInit() {
294
343
  }
@@ -302,41 +351,47 @@ var RealmContractRepository = class {
302
351
  });
303
352
  }
304
353
  // ── Contract management ────────────────────────────────────────────
305
- async getContracts(filter) {
306
- await this.ensureInit();
354
+ async getContractsPage(filter, page) {
355
+ chunkQKNSMVBW_cjs.assertPageRequest(page);
356
+ if (chunkQKNSMVBW_cjs.contractFilterMatchesNothing(filter)) return { items: [] };
357
+ const toPage = (rows) => chunkQKNSMVBW_cjs.pageResult(rows.map(contractObjectToDomain), page.limit, (contract) => contract.script);
358
+ if (filter?.watch === void 0 || filter.script !== void 0) {
359
+ return toPage(this.readRows(filter, page));
360
+ }
361
+ const merged = [...new Set([filter.watch].flat())].flatMap((state) => state === "watched" ? [state, null] : [state]).flatMap(
362
+ (state) => state === "retained" ? this.readRows({ ...filter, watch: state }, page) : this.readRows({ ...filter, watch: void 0 }, page, state)
363
+ ).map((row) => ({ script: row.script, row })).sort((a, b) => a.script < b.script ? -1 : a.script > b.script ? 1 : 0);
364
+ return toPage(merged.slice(0, page.limit + 1).map(({ row }) => row));
365
+ }
366
+ /** Up to `limit + 1` rows in script order, led by `watch == leadingWatch` when one is given. */
367
+ readRows(filter, page, leadingWatch) {
307
368
  let results = this.realm.objects("ArkContract");
369
+ const parts = [];
370
+ const args = [];
371
+ let argIndex = 0;
308
372
  if (filter) {
309
- const filterParts = [];
310
- const filterArgs = [];
311
- let argIndex = 0;
312
- argIndex = this.addFilterCondition(
313
- filterParts,
314
- filterArgs,
315
- "script",
316
- filter.script,
317
- argIndex
318
- );
319
- argIndex = this.addFilterCondition(
320
- filterParts,
321
- filterArgs,
322
- "state",
323
- filter.state,
324
- argIndex
325
- );
326
- argIndex = this.addFilterCondition(
327
- filterParts,
328
- filterArgs,
329
- "type",
330
- filter.type,
331
- argIndex
332
- );
333
- argIndex = this.addWatchCondition(filterParts, filterArgs, filter.watch, argIndex);
334
- if (filterParts.length > 0) {
335
- const query = filterParts.join(" AND ");
336
- results = results.filtered(query, ...filterArgs);
337
- }
373
+ argIndex = this.addFilterCondition(parts, args, "script", filter.script, argIndex);
374
+ argIndex = this.addFilterCondition(parts, args, "state", filter.state, argIndex);
375
+ argIndex = this.addFilterCondition(parts, args, "type", filter.type, argIndex);
376
+ argIndex = this.addWatchCondition(parts, args, filter.watch, argIndex);
377
+ }
378
+ if (page.after !== void 0) {
379
+ parts.push(`script > $${argIndex}`);
380
+ args.push(page.after);
381
+ }
382
+ let query = parts.join(" AND ");
383
+ if (leadingWatch !== void 0) {
384
+ const lead = leadingWatch === null ? "watch == null" : `watch == $${args.length}`;
385
+ if (leadingWatch !== null) args.push(leadingWatch);
386
+ query = query ? `${lead} AND (${query})` : lead;
338
387
  }
339
- return [...results].map(contractObjectToDomain);
388
+ if (query) results = results.filtered(query, ...args);
389
+ const rows = [];
390
+ for (const row of results.sorted("script")) {
391
+ rows.push(row);
392
+ if (rows.length > page.limit) break;
393
+ }
394
+ return rows;
340
395
  }
341
396
  async saveContract(contract) {
342
397
  await this.ensureInit();
@@ -457,7 +512,7 @@ var RealmIntentRepository = class {
457
512
  const clashes = [
458
513
  ...this.realm.objects("ArkIntent").filtered("intentId == $0", intent.intentId)
459
514
  ].map(toIntent);
460
- chunkPKD5VPYX_cjs.assertIntentIdUnique(intent, clashes);
515
+ chunkQKNSMVBW_cjs.assertIntentIdUnique(intent, clashes);
461
516
  }
462
517
  this.realm.create(
463
518
  "ArkIntent",
@@ -484,16 +539,23 @@ var RealmIntentRepository = class {
484
539
  );
485
540
  });
486
541
  }
487
- async getIntents(filter) {
488
- const all = [...this.realm.objects("ArkIntent")].map(toIntent).sort((a, b) => a.createdAt - b.createdAt || a.intentTxId.localeCompare(b.intentTxId));
489
- const out = filter ? all.filter((i) => chunkPKD5VPYX_cjs.intentMatchesFilter(i, filter)) : all;
490
- const { skip, end } = chunkPKD5VPYX_cjs.intentPageBounds(filter, out.length);
491
- return out.slice(skip, end);
542
+ async getIntentsPage(filter, page) {
543
+ chunkQKNSMVBW_cjs.assertPageRequest(page);
544
+ let results = this.realm.objects("ArkIntent");
545
+ if (page.after !== void 0) results = results.filtered("intentTxId > $0", page.after);
546
+ const rows = [];
547
+ for (const row of results.sorted("intentTxId")) {
548
+ const intent = toIntent(row);
549
+ if (filter && !chunkQKNSMVBW_cjs.intentMatchesFilter(intent, filter)) continue;
550
+ rows.push(intent);
551
+ if (rows.length > page.limit) break;
552
+ }
553
+ return chunkQKNSMVBW_cjs.pageResult(rows, page.limit, (intent) => intent.intentTxId);
492
554
  }
493
555
  async getLockedVtxoOutpoints() {
494
556
  const out = [];
495
557
  for (const o of [...this.realm.objects("ArkIntent")].map(toIntent))
496
- if (!chunkPKD5VPYX_cjs.isTerminalIntentState(o.state)) out.push(...o.intentVtxos);
558
+ if (!chunkQKNSMVBW_cjs.isTerminalIntentState(o.state)) out.push(...o.intentVtxos);
497
559
  return out;
498
560
  }
499
561
  async [Symbol.asyncDispose]() {
@@ -535,7 +597,7 @@ var RealmVirtualTxRepository = class {
535
597
  txid: t.txid,
536
598
  psbt: t.psbt ?? prev?.psbt ?? null,
537
599
  expiresAt: t.expiresAt ?? prev?.expiresAt ?? null,
538
- type: chunkPKD5VPYX_cjs.mergeChainedTxType(t.type, prev?.type)
600
+ type: chunkQKNSMVBW_cjs.mergeChainedTxType(t.type, prev?.type)
539
601
  },
540
602
  "modified"
541
603
  );
@@ -780,9 +842,9 @@ function runArkRealmMigrations(oldRealm, newRealm) {
780
842
  for (let i = 0; i < newVtxos.length; i++) {
781
843
  const newVtxo = newVtxos[i];
782
844
  if (!newVtxo.script) {
783
- newVtxo.script = chunkPKD5VPYX_cjs.scriptFromArkAddress(newVtxo.address);
845
+ newVtxo.script = chunkQKNSMVBW_cjs.scriptFromArkAddress(newVtxo.address);
784
846
  }
785
- const facts = chunkPKD5VPYX_cjs.legacyVtxoFacts(legacyByPk.get(newVtxo.pk));
847
+ const facts = chunkQKNSMVBW_cjs.legacyVtxoFacts(legacyByPk.get(newVtxo.pk));
786
848
  if (facts) {
787
849
  if (newVtxo.isSpent == null) newVtxo.isSpent = facts.isSpent;
788
850
  if (newVtxo.isSwept == null) newVtxo.isSwept = facts.isSwept;
@@ -812,7 +874,7 @@ function runArkRealmMigrations(oldRealm, newRealm) {
812
874
 
813
875
  Object.defineProperty(exports, "ChainedTxType", {
814
876
  enumerable: true,
815
- get: function () { return chunkPKD5VPYX_cjs.ChainedTxType; }
877
+ get: function () { return chunkQKNSMVBW_cjs.ChainedTxType; }
816
878
  });
817
879
  exports.ARK_REALM_SCHEMA_VERSION = ARK_REALM_SCHEMA_VERSION;
818
880
  exports.ArkExperimentalRealmSchemas = ArkExperimentalRealmSchemas;