@arkade-os/sdk 0.4.34 → 0.4.36

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 (69) hide show
  1. package/dist/adapters/expo.cjs +4 -4
  2. package/dist/adapters/expo.d.cts +2 -2
  3. package/dist/adapters/expo.d.ts +2 -2
  4. package/dist/adapters/expo.js +2 -2
  5. package/dist/adapters/indexedDB.cjs +3 -3
  6. package/dist/adapters/indexedDB.js +2 -2
  7. package/dist/{ark-Dsv5Jq4E.d.cts → ark-D6sau_6-.d.cts} +458 -3
  8. package/dist/{ark-Dsv5Jq4E.d.ts → ark-D6sau_6-.d.ts} +458 -3
  9. package/dist/{asyncStorageTaskQueue-D92ch8yI.d.cts → asyncStorageTaskQueue-CpC027t_.d.cts} +2 -2
  10. package/dist/{asyncStorageTaskQueue-BH-zuth5.d.ts → asyncStorageTaskQueue-GT8fmPUG.d.ts} +2 -2
  11. package/dist/{chunk-FXFBPXV3.js → chunk-2JJKX2RK.js} +139 -41
  12. package/dist/chunk-2JJKX2RK.js.map +1 -0
  13. package/dist/{chunk-CCLNFHJ5.cjs → chunk-2XE5BSIY.cjs} +16 -10
  14. package/dist/chunk-2XE5BSIY.cjs.map +1 -0
  15. package/dist/{chunk-ZS3OZHC7.cjs → chunk-A5PY4NBP.cjs} +7 -7
  16. package/dist/{chunk-ZS3OZHC7.cjs.map → chunk-A5PY4NBP.cjs.map} +1 -1
  17. package/dist/{chunk-FSAXPBGP.cjs → chunk-C6OODRWD.cjs} +143 -40
  18. package/dist/chunk-C6OODRWD.cjs.map +1 -0
  19. package/dist/{chunk-HFXEUW55.js → chunk-HBPKIIMN.js} +1472 -202
  20. package/dist/chunk-HBPKIIMN.js.map +1 -0
  21. package/dist/{chunk-5WDBHWX3.js → chunk-KZV3FJJR.js} +10 -4
  22. package/dist/chunk-KZV3FJJR.js.map +1 -0
  23. package/dist/{chunk-XCHBQVMK.cjs → chunk-TUSGEWOX.cjs} +1540 -265
  24. package/dist/chunk-TUSGEWOX.cjs.map +1 -0
  25. package/dist/{chunk-VVGD3JIP.js → chunk-Z2VRVZW4.js} +3 -3
  26. package/dist/{chunk-VVGD3JIP.js.map → chunk-Z2VRVZW4.js.map} +1 -1
  27. package/dist/contracts/handlers/index.d.cts +3 -3
  28. package/dist/contracts/handlers/index.d.ts +3 -3
  29. package/dist/{delegate-BaS5SCIW.d.cts → delegate-C-L6gSZx.d.cts} +1 -1
  30. package/dist/{delegate-Baz_hb83.d.ts → delegate-De5__fpZ.d.ts} +1 -1
  31. package/dist/{index-FwXZveaX.d.ts → index-BETdjE_o.d.ts} +2 -2
  32. package/dist/{index-lNZ6qaO3.d.cts → index-jwQfHP6D.d.cts} +2 -2
  33. package/dist/index.cjs +129 -105
  34. package/dist/index.d.cts +69 -9
  35. package/dist/index.d.ts +69 -9
  36. package/dist/index.js +2 -2
  37. package/dist/repositories/realm/index.cjs +12 -12
  38. package/dist/repositories/realm/index.cjs.map +1 -1
  39. package/dist/repositories/realm/index.d.cts +2 -2
  40. package/dist/repositories/realm/index.d.ts +2 -2
  41. package/dist/repositories/realm/index.js +3 -3
  42. package/dist/repositories/realm/index.js.map +1 -1
  43. package/dist/repositories/sqlite/index.cjs +11 -11
  44. package/dist/repositories/sqlite/index.d.cts +1 -1
  45. package/dist/repositories/sqlite/index.d.ts +1 -1
  46. package/dist/repositories/sqlite/index.js +2 -2
  47. package/dist/{taskRunner-vFRA3F9b.d.cts → taskRunner-DCyp6Gea.d.cts} +2 -2
  48. package/dist/{taskRunner-B1NUWyWR.d.ts → taskRunner-DnxtObeq.d.ts} +2 -2
  49. package/dist/wallet/expo/background.cjs +12 -12
  50. package/dist/wallet/expo/background.d.cts +3 -3
  51. package/dist/wallet/expo/background.d.ts +3 -3
  52. package/dist/wallet/expo/background.js +4 -4
  53. package/dist/wallet/expo/index.cjs +11 -11
  54. package/dist/wallet/expo/index.d.cts +4 -4
  55. package/dist/wallet/expo/index.d.ts +4 -4
  56. package/dist/wallet/expo/index.js +3 -3
  57. package/dist/{wallet-D6uoBLmS.d.ts → wallet-BWHbd5b1.d.cts} +231 -8
  58. package/dist/{wallet-By9HIo0Q.d.cts → wallet-Bth5uucA.d.ts} +231 -8
  59. package/dist/worker/expo/index.cjs +7 -7
  60. package/dist/worker/expo/index.d.cts +4 -4
  61. package/dist/worker/expo/index.d.ts +4 -4
  62. package/dist/worker/expo/index.js +3 -3
  63. package/package.json +2 -2
  64. package/dist/chunk-5WDBHWX3.js.map +0 -1
  65. package/dist/chunk-CCLNFHJ5.cjs.map +0 -1
  66. package/dist/chunk-FSAXPBGP.cjs.map +0 -1
  67. package/dist/chunk-FXFBPXV3.js.map +0 -1
  68. package/dist/chunk-HFXEUW55.js.map +0 -1
  69. package/dist/chunk-XCHBQVMK.cjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { W as WalletRepository, E as ExtendedVirtualCoin, a2 as VtxoRepositoryKey, d as ExtendedCoin, A as ArkTransaction, a3 as WalletState, C as ContractRepository, a4 as ContractFilter, r as Contract } from '../../ark-Dsv5Jq4E.js';
1
+ import { W as WalletRepository, E as ExtendedVirtualCoin, s as VtxoRepositoryKey, d as ExtendedCoin, A as ArkTransaction, t as WalletState, C as ContractRepository, u as ContractFilter, r as Contract } from '../../ark-D6sau_6-.js';
2
2
  import '@scure/btc-signer/transaction.js';
3
3
  import '@scure/btc-signer/utils.js';
4
4
  import '@scure/btc-signer/psbt.js';
@@ -212,6 +212,6 @@ declare const ARK_REALM_SCHEMA_VERSION = 2;
212
212
  * a consumer whose app is already at version 10 can still trigger the
213
213
  * Arkade v1→v2 script backfill when the row has never been populated.
214
214
  */
215
- declare function runArkRealmMigrations(oldRealm: any, newRealm: any): void;
215
+ declare function runArkRealmMigrations(_oldRealm: any, newRealm: any): void;
216
216
 
217
217
  export { ARK_REALM_SCHEMA_VERSION, ArkRealmSchemas, RealmContractRepository, type RealmLike, type RealmResults, RealmWalletRepository, runArkRealmMigrations };
@@ -1,5 +1,5 @@
1
- import { serializeVtxo, isVtxoForScript, serializeUtxo, serializeAssets, scriptFromArkAddress, deserializeVtxo, deserializeUtxo, deserializeAssets } from '../../chunk-HFXEUW55.js';
2
- import '../../chunk-FXFBPXV3.js';
1
+ import { serializeVtxo, isVtxoForScript, serializeUtxo, serializeAssets, scriptFromArkAddress, deserializeVtxo, deserializeUtxo, deserializeAssets } from '../../chunk-HBPKIIMN.js';
2
+ import '../../chunk-2JJKX2RK.js';
3
3
  import '../../chunk-CUSABEUQ.js';
4
4
  import '../../chunk-OUVTG72A.js';
5
5
  import '../../chunk-NSBPE2FW.js';
@@ -492,7 +492,7 @@ var ArkRealmSchemas = [
492
492
  ArkContractSchema
493
493
  ];
494
494
  var ARK_REALM_SCHEMA_VERSION = 2;
495
- function runArkRealmMigrations(oldRealm, newRealm) {
495
+ function runArkRealmMigrations(_oldRealm, newRealm) {
496
496
  const newVtxos = newRealm.objects("ArkVtxo");
497
497
  for (let i = 0; i < newVtxos.length; i++) {
498
498
  const newVtxo = newVtxos[i];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/repositories/realm/walletRepository.ts","../../../src/repositories/realm/contractRepository.ts","../../../src/repositories/realm/schemas.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { ArkTransaction, ExtendedCoin, ExtendedVirtualCoin } from \"../../wallet\";\nimport { WalletRepository, WalletState, VtxoRepositoryKey } from \"../walletRepository\";\nimport {\n serializeVtxo,\n serializeUtxo,\n deserializeVtxo,\n deserializeUtxo,\n serializeAssets,\n deserializeAssets,\n SerializedTapLeaf,\n} from \"../serialization\";\nimport { scriptFromArkAddress } from \"../scriptFromAddress\";\nimport { isVtxoForScript } from \"../../contracts/vtxoOwnership\";\nimport { RealmLike } from \"./types\";\n\n/**\n * Realm-based implementation of WalletRepository.\n *\n * Consumers must open Realm with the schemas from `./schemas.ts` and pass\n * the instance to the constructor.\n *\n * Realm handles schema creation on open, so `ensureInit()` is a no-op.\n * The consumer owns the Realm lifecycle — `[Symbol.asyncDispose]` is a no-op.\n */\nexport class RealmWalletRepository implements WalletRepository {\n readonly version = 1 as const;\n\n constructor(private readonly realm: RealmLike) {}\n\n // ── Lifecycle ──────────────────────────────────────────────────────\n\n private async ensureInit(): Promise<void> {\n // Realm handles schema on open — nothing to initialise.\n }\n\n async [Symbol.asyncDispose](): Promise<void> {\n // no-op — consumer owns the Realm lifecycle\n }\n\n // ── Clear ──────────────────────────────────────────────────────────\n\n async clear(): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n this.realm.delete(this.realm.objects(\"ArkVtxo\"));\n this.realm.delete(this.realm.objects(\"ArkUtxo\"));\n this.realm.delete(this.realm.objects(\"ArkTransaction\"));\n this.realm.delete(this.realm.objects(\"ArkWalletState\"));\n });\n }\n\n // ── VTXO management ────────────────────────────────────────────────\n\n async getVtxos(address: string): Promise<ExtendedVirtualCoin[]> {\n await this.ensureInit();\n const results = this.realm.objects(\"ArkVtxo\").filtered(\"address == $0\", address);\n return [...results].map(vtxoObjectToDomain);\n }\n\n async saveVtxos(address: string, vtxos: ExtendedVirtualCoin[]): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n for (const vtxo of vtxos) {\n const s = serializeVtxo(vtxo);\n this.realm.create(\n \"ArkVtxo\",\n {\n pk: `${s.txid}:${s.vout}`,\n address,\n txid: s.txid,\n vout: s.vout,\n value: s.value,\n tapTree: s.tapTree,\n forfeitCb: s.forfeitTapLeafScript.cb,\n forfeitS: s.forfeitTapLeafScript.s,\n intentCb: s.intentTapLeafScript.cb,\n intentS: s.intentTapLeafScript.s,\n statusJson: JSON.stringify(s.status),\n virtualStatusJson: JSON.stringify(s.virtualStatus),\n createdAt:\n typeof s.createdAt === \"string\"\n ? s.createdAt\n : s.createdAt instanceof Date\n ? s.createdAt.toISOString()\n : new Date(s.createdAt).toISOString(),\n isUnrolled: s.isUnrolled ?? false,\n isSpent: s.isSpent === undefined ? null : s.isSpent,\n spentBy: s.spentBy ?? null,\n settledBy: s.settledBy ?? null,\n arkTxId: s.arkTxId ?? null,\n extraWitnessJson: s.extraWitness ? JSON.stringify(s.extraWitness) : null,\n assetsJson: s.assets ? JSON.stringify(s.assets) : null,\n script: s.script ?? null,\n },\n \"modified\",\n );\n }\n });\n }\n\n async deleteVtxos(address: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm.objects(\"ArkVtxo\").filtered(\"address == $0\", address);\n this.realm.delete(toDelete);\n });\n }\n\n async getVtxosForScript(script: string): Promise<ExtendedVirtualCoin[]> {\n await this.ensureInit();\n const results = this.realm.objects(\"ArkVtxo\").filtered(\"script == $0\", script);\n return [...results].map(vtxoObjectToDomain);\n }\n\n async saveVtxosForScript(key: VtxoRepositoryKey, vtxos: ExtendedVirtualCoin[]): Promise<void> {\n if (!key.address) {\n throw new Error(\"RealmWalletRepository requires an address\");\n }\n for (const vtxo of vtxos) {\n if (!isVtxoForScript(vtxo, key.script)) {\n throw new Error(\n `VTXO ${vtxo.txid}:${vtxo.vout} script mismatch: expected ${key.script}, got ${vtxo.script}`,\n );\n }\n }\n return this.saveVtxos(key.address, vtxos);\n }\n\n async deleteVtxosForScript(script: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm.objects(\"ArkVtxo\").filtered(\"script == $0\", script);\n this.realm.delete(toDelete);\n });\n }\n\n // ── UTXO management ────────────────────────────────────────────────\n\n async getUtxos(address: string): Promise<ExtendedCoin[]> {\n await this.ensureInit();\n const results = this.realm.objects(\"ArkUtxo\").filtered(\"address == $0\", address);\n return [...results].map(utxoObjectToDomain);\n }\n\n async saveUtxos(address: string, utxos: ExtendedCoin[]): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n for (const utxo of utxos) {\n const s = serializeUtxo(utxo);\n this.realm.create(\n \"ArkUtxo\",\n {\n pk: `${s.txid}:${s.vout}`,\n address,\n txid: s.txid,\n vout: s.vout,\n value: s.value,\n tapTree: s.tapTree,\n forfeitCb: s.forfeitTapLeafScript.cb,\n forfeitS: s.forfeitTapLeafScript.s,\n intentCb: s.intentTapLeafScript.cb,\n intentS: s.intentTapLeafScript.s,\n statusJson: JSON.stringify(s.status),\n extraWitnessJson: s.extraWitness ? JSON.stringify(s.extraWitness) : null,\n },\n \"modified\",\n );\n }\n });\n }\n\n async deleteUtxos(address: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm.objects(\"ArkUtxo\").filtered(\"address == $0\", address);\n this.realm.delete(toDelete);\n });\n }\n\n // ── Transaction history ────────────────────────────────────────────\n\n async getTransactionHistory(address: string): Promise<ArkTransaction[]> {\n await this.ensureInit();\n const results = this.realm.objects(\"ArkTransaction\").filtered(\"address == $0\", address);\n const txs = [...results].map(txObjectToDomain);\n txs.sort((a, b) => a.createdAt - b.createdAt);\n return txs;\n }\n\n async saveTransactions(address: string, txs: ArkTransaction[]): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n for (const tx of txs) {\n this.realm.create(\n \"ArkTransaction\",\n {\n pk: `${address}:${tx.key.boardingTxid}:${tx.key.commitmentTxid}:${tx.key.arkTxid}`,\n address,\n boardingTxid: tx.key.boardingTxid,\n commitmentTxid: tx.key.commitmentTxid,\n arkTxid: tx.key.arkTxid,\n type: tx.type,\n amount: tx.amount,\n settled: tx.settled,\n createdAt: tx.createdAt,\n assetsJson: tx.assets ? JSON.stringify(serializeAssets(tx.assets)) : null,\n },\n \"modified\",\n );\n }\n });\n }\n\n async deleteTransactions(address: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm\n .objects(\"ArkTransaction\")\n .filtered(\"address == $0\", address);\n this.realm.delete(toDelete);\n });\n }\n\n // ── Wallet state ───────────────────────────────────────────────────\n\n async getWalletState(): Promise<WalletState | null> {\n await this.ensureInit();\n const results = this.realm\n .objects<WalletStateObject>(\"ArkWalletState\")\n .filtered(\"key == $0\", \"state\");\n const items = [...results];\n if (items.length === 0) return null;\n\n const obj = items[0];\n const state: WalletState = {};\n if (obj.settingsJson) {\n state.settings = JSON.parse(obj.settingsJson);\n }\n state.lastSyncTime = obj.lastSyncTime ?? undefined;\n return state;\n }\n\n async saveWalletState(state: WalletState): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n this.realm.create(\n \"ArkWalletState\",\n {\n key: \"state\",\n lastSyncTime: state.lastSyncTime,\n settingsJson: state.settings ? JSON.stringify(state.settings) : null,\n },\n \"modified\",\n );\n });\n }\n}\n\ninterface WalletStateObject {\n key: string;\n lastSyncTime: number | null;\n settingsJson: string | null;\n}\n\n// ── Realm object → Domain converters ─────────────────────────────────────\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction vtxoObjectToDomain(obj: any): ExtendedVirtualCoin {\n const serialized = {\n txid: obj.txid,\n vout: obj.vout,\n value: obj.value,\n tapTree: obj.tapTree,\n forfeitTapLeafScript: {\n cb: obj.forfeitCb,\n s: obj.forfeitS,\n } as SerializedTapLeaf,\n intentTapLeafScript: {\n cb: obj.intentCb,\n s: obj.intentS,\n } as SerializedTapLeaf,\n status: JSON.parse(obj.statusJson),\n virtualStatus: JSON.parse(obj.virtualStatusJson),\n createdAt: new Date(obj.createdAt),\n isUnrolled: obj.isUnrolled,\n isSpent: obj.isSpent === null ? undefined : obj.isSpent,\n spentBy: obj.spentBy ?? undefined,\n settledBy: obj.settledBy ?? undefined,\n arkTxId: obj.arkTxId ?? undefined,\n extraWitness: obj.extraWitnessJson ? JSON.parse(obj.extraWitnessJson) : undefined,\n assets: obj.assetsJson ? JSON.parse(obj.assetsJson) : undefined,\n // Post-migration every row has `script`, but the backfill is\n // idempotent: derive from `address` if the legacy column is still\n // null (e.g. the migration hasn't run yet on this handle).\n script: obj.script ?? scriptFromArkAddress(obj.address),\n };\n\n return deserializeVtxo(serialized);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction utxoObjectToDomain(obj: any): ExtendedCoin {\n const serialized = {\n txid: obj.txid,\n vout: obj.vout,\n value: obj.value,\n tapTree: obj.tapTree,\n forfeitTapLeafScript: {\n cb: obj.forfeitCb,\n s: obj.forfeitS,\n } as SerializedTapLeaf,\n intentTapLeafScript: {\n cb: obj.intentCb,\n s: obj.intentS,\n } as SerializedTapLeaf,\n status: JSON.parse(obj.statusJson),\n extraWitness: obj.extraWitnessJson ? JSON.parse(obj.extraWitnessJson) : undefined,\n };\n\n return deserializeUtxo(serialized);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction txObjectToDomain(obj: any): ArkTransaction {\n const tx: ArkTransaction = {\n key: {\n boardingTxid: obj.boardingTxid,\n commitmentTxid: obj.commitmentTxid,\n arkTxid: obj.arkTxid,\n },\n type: obj.type as ArkTransaction[\"type\"],\n amount: obj.amount,\n settled: obj.settled,\n createdAt: obj.createdAt,\n };\n if (obj.assetsJson) {\n tx.assets = deserializeAssets(JSON.parse(obj.assetsJson));\n }\n return tx;\n}\n","import { Contract, ContractState } from \"../../contracts/types\";\nimport { ContractFilter, ContractRepository } from \"../contractRepository\";\nimport { RealmLike } from \"./types\";\n\n/**\n * Realm-based implementation of ContractRepository.\n *\n * Consumers must open Realm with the schemas from `./schemas.ts` and pass\n * the instance to the constructor.\n *\n * Realm handles schema creation on open, so `ensureInit()` is a no-op.\n * The consumer owns the Realm lifecycle — `[Symbol.asyncDispose]` is a no-op.\n */\nexport class RealmContractRepository implements ContractRepository {\n readonly version = 1 as const;\n\n constructor(private readonly realm: RealmLike) {}\n\n // ── Lifecycle ──────────────────────────────────────────────────────\n\n private async ensureInit(): Promise<void> {\n // Realm handles schema on open — nothing to initialise.\n }\n\n async [Symbol.asyncDispose](): Promise<void> {\n // no-op — consumer owns the Realm lifecycle\n }\n\n // ── Clear ──────────────────────────────────────────────────────────\n\n async clear(): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n this.realm.delete(this.realm.objects(\"ArkContract\"));\n });\n }\n\n // ── Contract management ────────────────────────────────────────────\n\n async getContracts(filter?: ContractFilter): Promise<Contract[]> {\n await this.ensureInit();\n\n let results = this.realm.objects(\"ArkContract\");\n\n if (filter) {\n const filterParts: string[] = [];\n const filterArgs: unknown[] = [];\n\n let argIndex = 0;\n argIndex = this.addFilterCondition(\n filterParts,\n filterArgs,\n \"script\",\n filter.script,\n argIndex,\n );\n argIndex = this.addFilterCondition(\n filterParts,\n filterArgs,\n \"state\",\n filter.state,\n argIndex,\n );\n argIndex = this.addFilterCondition(\n filterParts,\n filterArgs,\n \"type\",\n filter.type,\n argIndex,\n );\n\n if (filterParts.length > 0) {\n const query = filterParts.join(\" AND \");\n results = results.filtered(query, ...filterArgs);\n }\n }\n\n return [...results].map(contractObjectToDomain);\n }\n\n async saveContract(contract: Contract): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n this.realm.create(\n \"ArkContract\",\n {\n script: contract.script,\n address: contract.address,\n type: contract.type,\n state: contract.state,\n paramsJson: JSON.stringify(contract.params),\n createdAt: contract.createdAt,\n label: contract.label ?? null,\n metadataJson: contract.metadata ? JSON.stringify(contract.metadata) : null,\n },\n \"modified\",\n );\n });\n }\n\n async deleteContract(script: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm.objects(\"ArkContract\").filtered(\"script == $0\", script);\n this.realm.delete(toDelete);\n });\n }\n\n // ── Helpers ─────────────────────────────────────────────────────────\n\n private addFilterCondition(\n parts: string[],\n args: unknown[],\n column: string,\n value: string | string[] | undefined,\n argIndex: number,\n ): number {\n if (value === undefined) return argIndex;\n\n if (Array.isArray(value)) {\n if (value.length === 0) return argIndex;\n const conditions = value.map((_, i) => {\n return `${column} == $${argIndex + i}`;\n });\n parts.push(`(${conditions.join(\" OR \")})`);\n args.push(...value);\n return argIndex + value.length;\n } else {\n parts.push(`${column} == $${argIndex}`);\n args.push(value);\n return argIndex + 1;\n }\n }\n}\n\n// ── Realm object → Domain converter ──────────────────────────────────────\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction contractObjectToDomain(obj: any): Contract {\n const contract: Contract = {\n script: obj.script,\n address: obj.address,\n type: obj.type,\n state: obj.state as ContractState,\n params: JSON.parse(obj.paramsJson),\n createdAt: obj.createdAt,\n };\n\n if (obj.label !== null && obj.label !== undefined) {\n contract.label = obj.label;\n }\n if (obj.metadataJson !== null && obj.metadataJson !== undefined) {\n contract.metadata = JSON.parse(obj.metadataJson);\n }\n\n return contract;\n}\n","/**\n * Realm object schemas for the Arkade wallet.\n *\n * All schema names are prefixed with \"Ark\" to avoid collisions with\n * other Realm schemas in the consuming application.\n *\n * Since `realm` is a peer dependency (not installed in this package),\n * schemas are defined as plain JS objects conforming to Realm's\n * ObjectSchema shape.\n */\n\nimport { scriptFromArkAddress } from \"../scriptFromAddress\";\n\nexport const ArkVtxoSchema = {\n name: \"ArkVtxo\",\n primaryKey: \"pk\",\n properties: {\n pk: \"string\", // composite: `${txid}:${vout}`\n address: { type: \"string\", indexed: true },\n txid: \"string\",\n vout: \"int\",\n value: \"int\",\n tapTree: \"string\", // hex-encoded\n forfeitCb: \"string\",\n forfeitS: \"string\",\n intentCb: \"string\",\n intentS: \"string\",\n extraWitnessJson: \"string?\",\n statusJson: \"string\",\n virtualStatusJson: \"string\",\n spentBy: \"string?\",\n settledBy: \"string?\",\n arkTxId: \"string?\",\n createdAt: \"string\", // ISO 8601\n isUnrolled: \"bool\",\n isSpent: \"bool?\",\n assetsJson: \"string?\",\n // scriptPubKey (hex) locking this VTXO, indexed so contract-scoped\n // queries can resolve ownership without touching address mapping.\n // Required as of schema v2; legacy rows are backfilled from `address`\n // during migration (see `runArkRealmMigrations`).\n script: { type: \"string\", indexed: true },\n },\n} as const;\n\nexport const ArkUtxoSchema = {\n name: \"ArkUtxo\",\n primaryKey: \"pk\",\n properties: {\n pk: \"string\", // composite: `${txid}:${vout}`\n address: { type: \"string\", indexed: true },\n txid: \"string\",\n vout: \"int\",\n value: \"int\",\n tapTree: \"string\", // hex-encoded\n forfeitCb: \"string\",\n forfeitS: \"string\",\n intentCb: \"string\",\n intentS: \"string\",\n extraWitnessJson: \"string?\",\n statusJson: \"string\",\n },\n} as const;\n\nexport const ArkTransactionSchema = {\n name: \"ArkTransaction\",\n primaryKey: \"pk\",\n properties: {\n pk: \"string\", // composite: `${address}:${boardingTxid}:${commitmentTxid}:${arkTxid}`\n address: { type: \"string\", indexed: true },\n boardingTxid: \"string\",\n commitmentTxid: \"string\",\n arkTxid: \"string\",\n type: \"string\",\n amount: \"int\",\n settled: \"bool\",\n createdAt: \"int\",\n assetsJson: \"string?\",\n },\n} as const;\n\nexport const ArkWalletStateSchema = {\n name: \"ArkWalletState\",\n primaryKey: \"key\",\n properties: {\n key: \"string\",\n lastSyncTime: \"int?\",\n settingsJson: \"string?\",\n },\n} as const;\n\nexport const ArkContractSchema = {\n name: \"ArkContract\",\n primaryKey: \"script\",\n properties: {\n script: \"string\",\n address: \"string\",\n type: { type: \"string\", indexed: true },\n state: { type: \"string\", indexed: true },\n paramsJson: \"string\",\n createdAt: \"int\",\n expiresAt: \"int?\",\n label: \"string?\",\n metadataJson: \"string?\",\n },\n} as const;\n\n/**\n * All Realm schemas needed by the Arkade wallet repositories.\n * Pass this array to your Realm configuration's `schema` property.\n */\nexport const ArkRealmSchemas = [\n ArkVtxoSchema,\n ArkUtxoSchema,\n ArkTransactionSchema,\n ArkWalletStateSchema,\n ArkContractSchema,\n];\n\n/**\n * Current Realm schema version for the Arkade wallet.\n *\n * Consumers opening Realm must pass a `schemaVersion` at least this high so\n * legacy databases get migrated; merge it with your own app's version:\n *\n * ```ts\n * await Realm.open({\n * schema: [...ArkRealmSchemas, ...yourSchemas],\n * schemaVersion: Math.max(ARK_REALM_SCHEMA_VERSION, yourSchemaVersion),\n * onMigration: (oldRealm, newRealm) => {\n * runArkRealmMigrations(oldRealm, newRealm);\n * // your own migrations\n * },\n * });\n * ```\n *\n * History:\n * - v1: initial ArkVtxo/ArkUtxo/... schemas, `script` nullable.\n * - v2: ArkVtxo.script becomes required; NULL values are backfilled from\n * the owning Ark address during migration.\n */\nexport const ARK_REALM_SCHEMA_VERSION = 2;\n\n/**\n * Run every Arkade schema migration applicable to the open Realm.\n *\n * Designed to be composed with the consumer's own migrations inside a single\n * `onMigration` callback. Each migration step does a per-row check so it\n * remains idempotent and independent of the app's global `schemaVersion` —\n * a consumer whose app is already at version 10 can still trigger the\n * Arkade v1→v2 script backfill when the row has never been populated.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function runArkRealmMigrations(oldRealm: any, newRealm: any): void {\n const newVtxos = newRealm.objects(\"ArkVtxo\");\n for (let i = 0; i < newVtxos.length; i++) {\n const newVtxo = newVtxos[i];\n if (!newVtxo.script) {\n newVtxo.script = scriptFromArkAddress(newVtxo.address);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/repositories/realm/walletRepository.ts","../../../src/repositories/realm/contractRepository.ts","../../../src/repositories/realm/schemas.ts"],"names":[],"mappings":";;;;;;;AAwBO,IAAM,wBAAN,MAAwD;AAAA,EAG3D,YAA6B,KAAA,EAAkB;AAAlB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAmB;AAAA,EAFvC,OAAA,GAAU,CAAA;AAAA;AAAA,EAMnB,MAAc,UAAA,GAA4B;AAAA,EAE1C;AAAA,EAEA,OAAO,MAAA,CAAO,YAAY,CAAA,GAAmB;AAAA,EAE7C;AAAA;AAAA,EAIA,MAAM,KAAA,GAAuB;AACzB,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,IAAA,CAAK,MAAM,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAC,CAAA;AAC/C,MAAA,IAAA,CAAK,MAAM,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAC,CAAA;AAC/C,MAAA,IAAA,CAAK,MAAM,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,gBAAgB,CAAC,CAAA;AACtD,MAAA,IAAA,CAAK,MAAM,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,gBAAgB,CAAC,CAAA;AAAA,IAC1D,CAAC,CAAA;AAAA,EACL;AAAA;AAAA,EAIA,MAAM,SAAS,OAAA,EAAiD;AAC5D,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,MAAM,OAAA,GAAU,KAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,CAAE,QAAA,CAAS,iBAAiB,OAAO,CAAA;AAC/E,IAAA,OAAO,CAAC,GAAG,OAAO,CAAA,CAAE,IAAI,kBAAkB,CAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,SAAA,CAAU,OAAA,EAAiB,KAAA,EAA6C;AAC1E,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,QAAA,MAAM,CAAA,GAAI,cAAc,IAAI,CAAA;AAC5B,QAAA,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,UACP,SAAA;AAAA,UACA;AAAA,YACI,IAAI,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,EAAI,EAAE,IAAI,CAAA,CAAA;AAAA,YACvB,OAAA;AAAA,YACA,MAAM,CAAA,CAAE,IAAA;AAAA,YACR,MAAM,CAAA,CAAE,IAAA;AAAA,YACR,OAAO,CAAA,CAAE,KAAA;AAAA,YACT,SAAS,CAAA,CAAE,OAAA;AAAA,YACX,SAAA,EAAW,EAAE,oBAAA,CAAqB,EAAA;AAAA,YAClC,QAAA,EAAU,EAAE,oBAAA,CAAqB,CAAA;AAAA,YACjC,QAAA,EAAU,EAAE,mBAAA,CAAoB,EAAA;AAAA,YAChC,OAAA,EAAS,EAAE,mBAAA,CAAoB,CAAA;AAAA,YAC/B,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,CAAA,CAAE,MAAM,CAAA;AAAA,YACnC,iBAAA,EAAmB,IAAA,CAAK,SAAA,CAAU,CAAA,CAAE,aAAa,CAAA;AAAA,YACjD,WACI,OAAO,CAAA,CAAE,cAAc,QAAA,GACjB,CAAA,CAAE,YACF,CAAA,CAAE,SAAA,YAAqB,OACrB,CAAA,CAAE,SAAA,CAAU,aAAY,GACxB,IAAI,KAAK,CAAA,CAAE,SAAS,EAAE,WAAA,EAAY;AAAA,YAC9C,UAAA,EAAY,EAAE,UAAA,IAAc,KAAA;AAAA,YAC5B,OAAA,EAAS,CAAA,CAAE,OAAA,KAAY,MAAA,GAAY,OAAO,CAAA,CAAE,OAAA;AAAA,YAC5C,OAAA,EAAS,EAAE,OAAA,IAAW,IAAA;AAAA,YACtB,SAAA,EAAW,EAAE,SAAA,IAAa,IAAA;AAAA,YAC1B,OAAA,EAAS,EAAE,OAAA,IAAW,IAAA;AAAA,YACtB,kBAAkB,CAAA,CAAE,YAAA,GAAe,KAAK,SAAA,CAAU,CAAA,CAAE,YAAY,CAAA,GAAI,IAAA;AAAA,YACpE,YAAY,CAAA,CAAE,MAAA,GAAS,KAAK,SAAA,CAAU,CAAA,CAAE,MAAM,CAAA,GAAI,IAAA;AAAA,YAClD,MAAA,EAAQ,EAAE,MAAA,IAAU;AAAA,WACxB;AAAA,UACA;AAAA,SACJ;AAAA,MACJ;AAAA,IACJ,CAAC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,OAAA,EAAgC;AAC9C,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,MAAM,QAAA,GAAW,KAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,CAAE,QAAA,CAAS,iBAAiB,OAAO,CAAA;AAChF,MAAA,IAAA,CAAK,KAAA,CAAM,OAAO,QAAQ,CAAA;AAAA,IAC9B,CAAC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,kBAAkB,MAAA,EAAgD;AACpE,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,MAAM,OAAA,GAAU,KAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,CAAE,QAAA,CAAS,gBAAgB,MAAM,CAAA;AAC7E,IAAA,OAAO,CAAC,GAAG,OAAO,CAAA,CAAE,IAAI,kBAAkB,CAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,kBAAA,CAAmB,GAAA,EAAwB,KAAA,EAA6C;AAC1F,IAAA,IAAI,CAAC,IAAI,OAAA,EAAS;AACd,MAAA,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAAA,IAC/D;AACA,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,MAAA,IAAI,CAAC,eAAA,CAAgB,IAAA,EAAM,GAAA,CAAI,MAAM,CAAA,EAAG;AACpC,QAAA,MAAM,IAAI,KAAA;AAAA,UACN,CAAA,KAAA,EAAQ,IAAA,CAAK,IAAI,CAAA,CAAA,EAAI,IAAA,CAAK,IAAI,CAAA,2BAAA,EAA8B,GAAA,CAAI,MAAM,CAAA,MAAA,EAAS,IAAA,CAAK,MAAM,CAAA;AAAA,SAC9F;AAAA,MACJ;AAAA,IACJ;AACA,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,OAAA,EAAS,KAAK,CAAA;AAAA,EAC5C;AAAA,EAEA,MAAM,qBAAqB,MAAA,EAA+B;AACtD,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,MAAM,QAAA,GAAW,KAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,CAAE,QAAA,CAAS,gBAAgB,MAAM,CAAA;AAC9E,MAAA,IAAA,CAAK,KAAA,CAAM,OAAO,QAAQ,CAAA;AAAA,IAC9B,CAAC,CAAA;AAAA,EACL;AAAA;AAAA,EAIA,MAAM,SAAS,OAAA,EAA0C;AACrD,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,MAAM,OAAA,GAAU,KAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,CAAE,QAAA,CAAS,iBAAiB,OAAO,CAAA;AAC/E,IAAA,OAAO,CAAC,GAAG,OAAO,CAAA,CAAE,IAAI,kBAAkB,CAAA;AAAA,EAC9C;AAAA,EAEA,MAAM,SAAA,CAAU,OAAA,EAAiB,KAAA,EAAsC;AACnE,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,QAAA,MAAM,CAAA,GAAI,cAAc,IAAI,CAAA;AAC5B,QAAA,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,UACP,SAAA;AAAA,UACA;AAAA,YACI,IAAI,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,EAAI,EAAE,IAAI,CAAA,CAAA;AAAA,YACvB,OAAA;AAAA,YACA,MAAM,CAAA,CAAE,IAAA;AAAA,YACR,MAAM,CAAA,CAAE,IAAA;AAAA,YACR,OAAO,CAAA,CAAE,KAAA;AAAA,YACT,SAAS,CAAA,CAAE,OAAA;AAAA,YACX,SAAA,EAAW,EAAE,oBAAA,CAAqB,EAAA;AAAA,YAClC,QAAA,EAAU,EAAE,oBAAA,CAAqB,CAAA;AAAA,YACjC,QAAA,EAAU,EAAE,mBAAA,CAAoB,EAAA;AAAA,YAChC,OAAA,EAAS,EAAE,mBAAA,CAAoB,CAAA;AAAA,YAC/B,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,CAAA,CAAE,MAAM,CAAA;AAAA,YACnC,kBAAkB,CAAA,CAAE,YAAA,GAAe,KAAK,SAAA,CAAU,CAAA,CAAE,YAAY,CAAA,GAAI;AAAA,WACxE;AAAA,UACA;AAAA,SACJ;AAAA,MACJ;AAAA,IACJ,CAAC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,OAAA,EAAgC;AAC9C,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,MAAM,QAAA,GAAW,KAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,CAAE,QAAA,CAAS,iBAAiB,OAAO,CAAA;AAChF,MAAA,IAAA,CAAK,KAAA,CAAM,OAAO,QAAQ,CAAA;AAAA,IAC9B,CAAC,CAAA;AAAA,EACL;AAAA;AAAA,EAIA,MAAM,sBAAsB,OAAA,EAA4C;AACpE,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,MAAM,OAAA,GAAU,KAAK,KAAA,CAAM,OAAA,CAAQ,gBAAgB,CAAA,CAAE,QAAA,CAAS,iBAAiB,OAAO,CAAA;AACtF,IAAA,MAAM,MAAM,CAAC,GAAG,OAAO,CAAA,CAAE,IAAI,gBAAgB,CAAA;AAC7C,IAAA,GAAA,CAAI,KAAK,CAAC,CAAA,EAAG,MAAM,CAAA,CAAE,SAAA,GAAY,EAAE,SAAS,CAAA;AAC5C,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EAEA,MAAM,gBAAA,CAAiB,OAAA,EAAiB,GAAA,EAAsC;AAC1E,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AAClB,QAAA,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,UACP,gBAAA;AAAA,UACA;AAAA,YACI,EAAA,EAAI,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,GAAG,GAAA,CAAI,YAAY,CAAA,CAAA,EAAI,EAAA,CAAG,GAAA,CAAI,cAAc,CAAA,CAAA,EAAI,EAAA,CAAG,IAAI,OAAO,CAAA,CAAA;AAAA,YAChF,OAAA;AAAA,YACA,YAAA,EAAc,GAAG,GAAA,CAAI,YAAA;AAAA,YACrB,cAAA,EAAgB,GAAG,GAAA,CAAI,cAAA;AAAA,YACvB,OAAA,EAAS,GAAG,GAAA,CAAI,OAAA;AAAA,YAChB,MAAM,EAAA,CAAG,IAAA;AAAA,YACT,QAAQ,EAAA,CAAG,MAAA;AAAA,YACX,SAAS,EAAA,CAAG,OAAA;AAAA,YACZ,WAAW,EAAA,CAAG,SAAA;AAAA,YACd,UAAA,EAAY,GAAG,MAAA,GAAS,IAAA,CAAK,UAAU,eAAA,CAAgB,EAAA,CAAG,MAAM,CAAC,CAAA,GAAI;AAAA,WACzE;AAAA,UACA;AAAA,SACJ;AAAA,MACJ;AAAA,IACJ,CAAC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,mBAAmB,OAAA,EAAgC;AACrD,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,MAAM,QAAA,GAAW,KAAK,KAAA,CACjB,OAAA,CAAQ,gBAAgB,CAAA,CACxB,QAAA,CAAS,iBAAiB,OAAO,CAAA;AACtC,MAAA,IAAA,CAAK,KAAA,CAAM,OAAO,QAAQ,CAAA;AAAA,IAC9B,CAAC,CAAA;AAAA,EACL;AAAA;AAAA,EAIA,MAAM,cAAA,GAA8C;AAChD,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,MAAM,OAAA,GAAU,KAAK,KAAA,CAChB,OAAA,CAA2B,gBAAgB,CAAA,CAC3C,QAAA,CAAS,aAAa,OAAO,CAAA;AAClC,IAAA,MAAM,KAAA,GAAQ,CAAC,GAAG,OAAO,CAAA;AACzB,IAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAE/B,IAAA,MAAM,GAAA,GAAM,MAAM,CAAC,CAAA;AACnB,IAAA,MAAM,QAAqB,EAAC;AAC5B,IAAA,IAAI,IAAI,YAAA,EAAc;AAClB,MAAA,KAAA,CAAM,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,YAAY,CAAA;AAAA,IAChD;AACA,IAAA,KAAA,CAAM,YAAA,GAAe,IAAI,YAAA,IAAgB,MAAA;AACzC,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EAEA,MAAM,gBAAgB,KAAA,EAAmC;AACrD,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,QACP,gBAAA;AAAA,QACA;AAAA,UACI,GAAA,EAAK,OAAA;AAAA,UACL,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,cAAc,KAAA,CAAM,QAAA,GAAW,KAAK,SAAA,CAAU,KAAA,CAAM,QAAQ,CAAA,GAAI;AAAA,SACpE;AAAA,QACA;AAAA,OACJ;AAAA,IACJ,CAAC,CAAA;AAAA,EACL;AACJ;AAWA,SAAS,mBAAmB,GAAA,EAA+B;AACvD,EAAA,MAAM,UAAA,GAAa;AAAA,IACf,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,OAAO,GAAA,CAAI,KAAA;AAAA,IACX,SAAS,GAAA,CAAI,OAAA;AAAA,IACb,oBAAA,EAAsB;AAAA,MAClB,IAAI,GAAA,CAAI,SAAA;AAAA,MACR,GAAG,GAAA,CAAI;AAAA,KACX;AAAA,IACA,mBAAA,EAAqB;AAAA,MACjB,IAAI,GAAA,CAAI,QAAA;AAAA,MACR,GAAG,GAAA,CAAI;AAAA,KACX;AAAA,IACA,MAAA,EAAQ,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,UAAU,CAAA;AAAA,IACjC,aAAA,EAAe,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,iBAAiB,CAAA;AAAA,IAC/C,SAAA,EAAW,IAAI,IAAA,CAAK,GAAA,CAAI,SAAS,CAAA;AAAA,IACjC,YAAY,GAAA,CAAI,UAAA;AAAA,IAChB,OAAA,EAAS,GAAA,CAAI,OAAA,KAAY,IAAA,GAAO,SAAY,GAAA,CAAI,OAAA;AAAA,IAChD,OAAA,EAAS,IAAI,OAAA,IAAW,MAAA;AAAA,IACxB,SAAA,EAAW,IAAI,SAAA,IAAa,MAAA;AAAA,IAC5B,OAAA,EAAS,IAAI,OAAA,IAAW,MAAA;AAAA,IACxB,cAAc,GAAA,CAAI,gBAAA,GAAmB,KAAK,KAAA,CAAM,GAAA,CAAI,gBAAgB,CAAA,GAAI,MAAA;AAAA,IACxE,QAAQ,GAAA,CAAI,UAAA,GAAa,KAAK,KAAA,CAAM,GAAA,CAAI,UAAU,CAAA,GAAI,MAAA;AAAA;AAAA;AAAA;AAAA,IAItD,MAAA,EAAQ,GAAA,CAAI,MAAA,IAAU,oBAAA,CAAqB,IAAI,OAAO;AAAA,GAC1D;AAEA,EAAA,OAAO,gBAAgB,UAAU,CAAA;AACrC;AAGA,SAAS,mBAAmB,GAAA,EAAwB;AAChD,EAAA,MAAM,UAAA,GAAa;AAAA,IACf,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,OAAO,GAAA,CAAI,KAAA;AAAA,IACX,SAAS,GAAA,CAAI,OAAA;AAAA,IACb,oBAAA,EAAsB;AAAA,MAClB,IAAI,GAAA,CAAI,SAAA;AAAA,MACR,GAAG,GAAA,CAAI;AAAA,KACX;AAAA,IACA,mBAAA,EAAqB;AAAA,MACjB,IAAI,GAAA,CAAI,QAAA;AAAA,MACR,GAAG,GAAA,CAAI;AAAA,KACX;AAAA,IACA,MAAA,EAAQ,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,UAAU,CAAA;AAAA,IACjC,cAAc,GAAA,CAAI,gBAAA,GAAmB,KAAK,KAAA,CAAM,GAAA,CAAI,gBAAgB,CAAA,GAAI;AAAA,GAC5E;AAEA,EAAA,OAAO,gBAAgB,UAAU,CAAA;AACrC;AAGA,SAAS,iBAAiB,GAAA,EAA0B;AAChD,EAAA,MAAM,EAAA,GAAqB;AAAA,IACvB,GAAA,EAAK;AAAA,MACD,cAAc,GAAA,CAAI,YAAA;AAAA,MAClB,gBAAgB,GAAA,CAAI,cAAA;AAAA,MACpB,SAAS,GAAA,CAAI;AAAA,KACjB;AAAA,IACA,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,QAAQ,GAAA,CAAI,MAAA;AAAA,IACZ,SAAS,GAAA,CAAI,OAAA;AAAA,IACb,WAAW,GAAA,CAAI;AAAA,GACnB;AACA,EAAA,IAAI,IAAI,UAAA,EAAY;AAChB,IAAA,EAAA,CAAG,SAAS,iBAAA,CAAkB,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,UAAU,CAAC,CAAA;AAAA,EAC5D;AACA,EAAA,OAAO,EAAA;AACX;;;ACtUO,IAAM,0BAAN,MAA4D;AAAA,EAG/D,YAA6B,KAAA,EAAkB;AAAlB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAmB;AAAA,EAFvC,OAAA,GAAU,CAAA;AAAA;AAAA,EAMnB,MAAc,UAAA,GAA4B;AAAA,EAE1C;AAAA,EAEA,OAAO,MAAA,CAAO,YAAY,CAAA,GAAmB;AAAA,EAE7C;AAAA;AAAA,EAIA,MAAM,KAAA,GAAuB;AACzB,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,IAAA,CAAK,MAAM,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAC,CAAA;AAAA,IACvD,CAAC,CAAA;AAAA,EACL;AAAA;AAAA,EAIA,MAAM,aAAa,MAAA,EAA8C;AAC7D,IAAA,MAAM,KAAK,UAAA,EAAW;AAEtB,IAAA,IAAI,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA;AAE9C,IAAA,IAAI,MAAA,EAAQ;AACR,MAAA,MAAM,cAAwB,EAAC;AAC/B,MAAA,MAAM,aAAwB,EAAC;AAE/B,MAAA,IAAI,QAAA,GAAW,CAAA;AACf,MAAA,QAAA,GAAW,IAAA,CAAK,kBAAA;AAAA,QACZ,WAAA;AAAA,QACA,UAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA,CAAO,MAAA;AAAA,QACP;AAAA,OACJ;AACA,MAAA,QAAA,GAAW,IAAA,CAAK,kBAAA;AAAA,QACZ,WAAA;AAAA,QACA,UAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA,CAAO,KAAA;AAAA,QACP;AAAA,OACJ;AACA,MAAA,QAAA,GAAW,IAAA,CAAK,kBAAA;AAAA,QACZ,WAAA;AAAA,QACA,UAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA,CAAO,IAAA;AAAA,QACP;AAAA,OACJ;AAEA,MAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AACxB,QAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,IAAA,CAAK,OAAO,CAAA;AACtC,QAAA,OAAA,GAAU,OAAA,CAAQ,QAAA,CAAS,KAAA,EAAO,GAAG,UAAU,CAAA;AAAA,MACnD;AAAA,IACJ;AAEA,IAAA,OAAO,CAAC,GAAG,OAAO,CAAA,CAAE,IAAI,sBAAsB,CAAA;AAAA,EAClD;AAAA,EAEA,MAAM,aAAa,QAAA,EAAmC;AAClD,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,QACP,aAAA;AAAA,QACA;AAAA,UACI,QAAQ,QAAA,CAAS,MAAA;AAAA,UACjB,SAAS,QAAA,CAAS,OAAA;AAAA,UAClB,MAAM,QAAA,CAAS,IAAA;AAAA,UACf,OAAO,QAAA,CAAS,KAAA;AAAA,UAChB,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,QAAA,CAAS,MAAM,CAAA;AAAA,UAC1C,WAAW,QAAA,CAAS,SAAA;AAAA,UACpB,KAAA,EAAO,SAAS,KAAA,IAAS,IAAA;AAAA,UACzB,cAAc,QAAA,CAAS,QAAA,GAAW,KAAK,SAAA,CAAU,QAAA,CAAS,QAAQ,CAAA,GAAI;AAAA,SAC1E;AAAA,QACA;AAAA,OACJ;AAAA,IACJ,CAAC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,eAAe,MAAA,EAA+B;AAChD,IAAA,MAAM,KAAK,UAAA,EAAW;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAM,MAAM;AACnB,MAAA,MAAM,QAAA,GAAW,KAAK,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA,CAAE,QAAA,CAAS,gBAAgB,MAAM,CAAA;AAClF,MAAA,IAAA,CAAK,KAAA,CAAM,OAAO,QAAQ,CAAA;AAAA,IAC9B,CAAC,CAAA;AAAA,EACL;AAAA;AAAA,EAIQ,kBAAA,CACJ,KAAA,EACA,IAAA,EACA,MAAA,EACA,OACA,QAAA,EACM;AACN,IAAA,IAAI,KAAA,KAAU,QAAW,OAAO,QAAA;AAEhC,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACtB,MAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,QAAA;AAC/B,MAAA,MAAM,UAAA,GAAa,KAAA,CAAM,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AACnC,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,KAAA,EAAQ,QAAA,GAAW,CAAC,CAAA,CAAA;AAAA,MACxC,CAAC,CAAA;AACD,MAAA,KAAA,CAAM,KAAK,CAAA,CAAA,EAAI,UAAA,CAAW,IAAA,CAAK,MAAM,CAAC,CAAA,CAAA,CAAG,CAAA;AACzC,MAAA,IAAA,CAAK,IAAA,CAAK,GAAG,KAAK,CAAA;AAClB,MAAA,OAAO,WAAW,KAAA,CAAM,MAAA;AAAA,IAC5B,CAAA,MAAO;AACH,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,EAAG,MAAM,CAAA,KAAA,EAAQ,QAAQ,CAAA,CAAE,CAAA;AACtC,MAAA,IAAA,CAAK,KAAK,KAAK,CAAA;AACf,MAAA,OAAO,QAAA,GAAW,CAAA;AAAA,IACtB;AAAA,EACJ;AACJ;AAKA,SAAS,uBAAuB,GAAA,EAAoB;AAChD,EAAA,MAAM,QAAA,GAAqB;AAAA,IACvB,QAAQ,GAAA,CAAI,MAAA;AAAA,IACZ,SAAS,GAAA,CAAI,OAAA;AAAA,IACb,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,OAAO,GAAA,CAAI,KAAA;AAAA,IACX,MAAA,EAAQ,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,UAAU,CAAA;AAAA,IACjC,WAAW,GAAA,CAAI;AAAA,GACnB;AAEA,EAAA,IAAI,GAAA,CAAI,KAAA,KAAU,IAAA,IAAQ,GAAA,CAAI,UAAU,MAAA,EAAW;AAC/C,IAAA,QAAA,CAAS,QAAQ,GAAA,CAAI,KAAA;AAAA,EACzB;AACA,EAAA,IAAI,GAAA,CAAI,YAAA,KAAiB,IAAA,IAAQ,GAAA,CAAI,iBAAiB,MAAA,EAAW;AAC7D,IAAA,QAAA,CAAS,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,YAAY,CAAA;AAAA,EACnD;AAEA,EAAA,OAAO,QAAA;AACX;;;AC/IO,IAAM,aAAA,GAAgB;AAAA,EACzB,IAAA,EAAM,SAAA;AAAA,EACN,UAAA,EAAY,IAAA;AAAA,EACZ,UAAA,EAAY;AAAA,IACR,EAAA,EAAI,QAAA;AAAA;AAAA,IACJ,OAAA,EAAS,EAAE,IAAA,EAAM,QAAA,EAAU,SAAS,IAAA,EAAK;AAAA,IACzC,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,KAAA;AAAA,IACN,KAAA,EAAO,KAAA;AAAA,IACP,OAAA,EAAS,QAAA;AAAA;AAAA,IACT,SAAA,EAAW,QAAA;AAAA,IACX,QAAA,EAAU,QAAA;AAAA,IACV,QAAA,EAAU,QAAA;AAAA,IACV,OAAA,EAAS,QAAA;AAAA,IACT,gBAAA,EAAkB,SAAA;AAAA,IAClB,UAAA,EAAY,QAAA;AAAA,IACZ,iBAAA,EAAmB,QAAA;AAAA,IACnB,OAAA,EAAS,SAAA;AAAA,IACT,SAAA,EAAW,SAAA;AAAA,IACX,OAAA,EAAS,SAAA;AAAA,IACT,SAAA,EAAW,QAAA;AAAA;AAAA,IACX,UAAA,EAAY,MAAA;AAAA,IACZ,OAAA,EAAS,OAAA;AAAA,IACT,UAAA,EAAY,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKZ,MAAA,EAAQ,EAAE,IAAA,EAAM,QAAA,EAAU,SAAS,IAAA;AAAK;AAEhD,CAAA;AAEO,IAAM,aAAA,GAAgB;AAAA,EACzB,IAAA,EAAM,SAAA;AAAA,EACN,UAAA,EAAY,IAAA;AAAA,EACZ,UAAA,EAAY;AAAA,IACR,EAAA,EAAI,QAAA;AAAA;AAAA,IACJ,OAAA,EAAS,EAAE,IAAA,EAAM,QAAA,EAAU,SAAS,IAAA,EAAK;AAAA,IACzC,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM,KAAA;AAAA,IACN,KAAA,EAAO,KAAA;AAAA,IACP,OAAA,EAAS,QAAA;AAAA;AAAA,IACT,SAAA,EAAW,QAAA;AAAA,IACX,QAAA,EAAU,QAAA;AAAA,IACV,QAAA,EAAU,QAAA;AAAA,IACV,OAAA,EAAS,QAAA;AAAA,IACT,gBAAA,EAAkB,SAAA;AAAA,IAClB,UAAA,EAAY;AAAA;AAEpB,CAAA;AAEO,IAAM,oBAAA,GAAuB;AAAA,EAChC,IAAA,EAAM,gBAAA;AAAA,EACN,UAAA,EAAY,IAAA;AAAA,EACZ,UAAA,EAAY;AAAA,IACR,EAAA,EAAI,QAAA;AAAA;AAAA,IACJ,OAAA,EAAS,EAAE,IAAA,EAAM,QAAA,EAAU,SAAS,IAAA,EAAK;AAAA,IACzC,YAAA,EAAc,QAAA;AAAA,IACd,cAAA,EAAgB,QAAA;AAAA,IAChB,OAAA,EAAS,QAAA;AAAA,IACT,IAAA,EAAM,QAAA;AAAA,IACN,MAAA,EAAQ,KAAA;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,SAAA,EAAW,KAAA;AAAA,IACX,UAAA,EAAY;AAAA;AAEpB,CAAA;AAEO,IAAM,oBAAA,GAAuB;AAAA,EAChC,IAAA,EAAM,gBAAA;AAAA,EACN,UAAA,EAAY,KAAA;AAAA,EACZ,UAAA,EAAY;AAAA,IACR,GAAA,EAAK,QAAA;AAAA,IACL,YAAA,EAAc,MAAA;AAAA,IACd,YAAA,EAAc;AAAA;AAEtB,CAAA;AAEO,IAAM,iBAAA,GAAoB;AAAA,EAC7B,IAAA,EAAM,aAAA;AAAA,EACN,UAAA,EAAY,QAAA;AAAA,EACZ,UAAA,EAAY;AAAA,IACR,MAAA,EAAQ,QAAA;AAAA,IACR,OAAA,EAAS,QAAA;AAAA,IACT,IAAA,EAAM,EAAE,IAAA,EAAM,QAAA,EAAU,SAAS,IAAA,EAAK;AAAA,IACtC,KAAA,EAAO,EAAE,IAAA,EAAM,QAAA,EAAU,SAAS,IAAA,EAAK;AAAA,IACvC,UAAA,EAAY,QAAA;AAAA,IACZ,SAAA,EAAW,KAAA;AAAA,IACX,SAAA,EAAW,MAAA;AAAA,IACX,KAAA,EAAO,SAAA;AAAA,IACP,YAAA,EAAc;AAAA;AAEtB,CAAA;AAMO,IAAM,eAAA,GAAkB;AAAA,EAC3B,aAAA;AAAA,EACA,aAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACJ;AAwBO,IAAM,wBAAA,GAA2B;AAYjC,SAAS,qBAAA,CAAsB,WAAgB,QAAA,EAAqB;AACvE,EAAA,MAAM,QAAA,GAAW,QAAA,CAAS,OAAA,CAAQ,SAAS,CAAA;AAC3C,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,CAAA,EAAA,EAAK;AACtC,IAAA,MAAM,OAAA,GAAU,SAAS,CAAC,CAAA;AAC1B,IAAA,IAAI,CAAC,QAAQ,MAAA,EAAQ;AACjB,MAAA,OAAA,CAAQ,MAAA,GAAS,oBAAA,CAAqB,OAAA,CAAQ,OAAO,CAAA;AAAA,IACzD;AAAA,EACJ;AACJ","file":"index.js","sourcesContent":["import { ArkTransaction, ExtendedCoin, ExtendedVirtualCoin } from \"../../wallet\";\nimport { WalletRepository, WalletState, VtxoRepositoryKey } from \"../walletRepository\";\nimport {\n serializeVtxo,\n serializeUtxo,\n deserializeVtxo,\n deserializeUtxo,\n serializeAssets,\n deserializeAssets,\n SerializedTapLeaf,\n} from \"../serialization\";\nimport { scriptFromArkAddress } from \"../scriptFromAddress\";\nimport { isVtxoForScript } from \"../../contracts/vtxoOwnership\";\nimport { RealmLike } from \"./types\";\n\n/**\n * Realm-based implementation of WalletRepository.\n *\n * Consumers must open Realm with the schemas from `./schemas.ts` and pass\n * the instance to the constructor.\n *\n * Realm handles schema creation on open, so `ensureInit()` is a no-op.\n * The consumer owns the Realm lifecycle — `[Symbol.asyncDispose]` is a no-op.\n */\nexport class RealmWalletRepository implements WalletRepository {\n readonly version = 1 as const;\n\n constructor(private readonly realm: RealmLike) {}\n\n // ── Lifecycle ──────────────────────────────────────────────────────\n\n private async ensureInit(): Promise<void> {\n // Realm handles schema on open — nothing to initialise.\n }\n\n async [Symbol.asyncDispose](): Promise<void> {\n // no-op — consumer owns the Realm lifecycle\n }\n\n // ── Clear ──────────────────────────────────────────────────────────\n\n async clear(): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n this.realm.delete(this.realm.objects(\"ArkVtxo\"));\n this.realm.delete(this.realm.objects(\"ArkUtxo\"));\n this.realm.delete(this.realm.objects(\"ArkTransaction\"));\n this.realm.delete(this.realm.objects(\"ArkWalletState\"));\n });\n }\n\n // ── VTXO management ────────────────────────────────────────────────\n\n async getVtxos(address: string): Promise<ExtendedVirtualCoin[]> {\n await this.ensureInit();\n const results = this.realm.objects(\"ArkVtxo\").filtered(\"address == $0\", address);\n return [...results].map(vtxoObjectToDomain);\n }\n\n async saveVtxos(address: string, vtxos: ExtendedVirtualCoin[]): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n for (const vtxo of vtxos) {\n const s = serializeVtxo(vtxo);\n this.realm.create(\n \"ArkVtxo\",\n {\n pk: `${s.txid}:${s.vout}`,\n address,\n txid: s.txid,\n vout: s.vout,\n value: s.value,\n tapTree: s.tapTree,\n forfeitCb: s.forfeitTapLeafScript.cb,\n forfeitS: s.forfeitTapLeafScript.s,\n intentCb: s.intentTapLeafScript.cb,\n intentS: s.intentTapLeafScript.s,\n statusJson: JSON.stringify(s.status),\n virtualStatusJson: JSON.stringify(s.virtualStatus),\n createdAt:\n typeof s.createdAt === \"string\"\n ? s.createdAt\n : s.createdAt instanceof Date\n ? s.createdAt.toISOString()\n : new Date(s.createdAt).toISOString(),\n isUnrolled: s.isUnrolled ?? false,\n isSpent: s.isSpent === undefined ? null : s.isSpent,\n spentBy: s.spentBy ?? null,\n settledBy: s.settledBy ?? null,\n arkTxId: s.arkTxId ?? null,\n extraWitnessJson: s.extraWitness ? JSON.stringify(s.extraWitness) : null,\n assetsJson: s.assets ? JSON.stringify(s.assets) : null,\n script: s.script ?? null,\n },\n \"modified\",\n );\n }\n });\n }\n\n async deleteVtxos(address: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm.objects(\"ArkVtxo\").filtered(\"address == $0\", address);\n this.realm.delete(toDelete);\n });\n }\n\n async getVtxosForScript(script: string): Promise<ExtendedVirtualCoin[]> {\n await this.ensureInit();\n const results = this.realm.objects(\"ArkVtxo\").filtered(\"script == $0\", script);\n return [...results].map(vtxoObjectToDomain);\n }\n\n async saveVtxosForScript(key: VtxoRepositoryKey, vtxos: ExtendedVirtualCoin[]): Promise<void> {\n if (!key.address) {\n throw new Error(\"RealmWalletRepository requires an address\");\n }\n for (const vtxo of vtxos) {\n if (!isVtxoForScript(vtxo, key.script)) {\n throw new Error(\n `VTXO ${vtxo.txid}:${vtxo.vout} script mismatch: expected ${key.script}, got ${vtxo.script}`,\n );\n }\n }\n return this.saveVtxos(key.address, vtxos);\n }\n\n async deleteVtxosForScript(script: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm.objects(\"ArkVtxo\").filtered(\"script == $0\", script);\n this.realm.delete(toDelete);\n });\n }\n\n // ── UTXO management ────────────────────────────────────────────────\n\n async getUtxos(address: string): Promise<ExtendedCoin[]> {\n await this.ensureInit();\n const results = this.realm.objects(\"ArkUtxo\").filtered(\"address == $0\", address);\n return [...results].map(utxoObjectToDomain);\n }\n\n async saveUtxos(address: string, utxos: ExtendedCoin[]): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n for (const utxo of utxos) {\n const s = serializeUtxo(utxo);\n this.realm.create(\n \"ArkUtxo\",\n {\n pk: `${s.txid}:${s.vout}`,\n address,\n txid: s.txid,\n vout: s.vout,\n value: s.value,\n tapTree: s.tapTree,\n forfeitCb: s.forfeitTapLeafScript.cb,\n forfeitS: s.forfeitTapLeafScript.s,\n intentCb: s.intentTapLeafScript.cb,\n intentS: s.intentTapLeafScript.s,\n statusJson: JSON.stringify(s.status),\n extraWitnessJson: s.extraWitness ? JSON.stringify(s.extraWitness) : null,\n },\n \"modified\",\n );\n }\n });\n }\n\n async deleteUtxos(address: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm.objects(\"ArkUtxo\").filtered(\"address == $0\", address);\n this.realm.delete(toDelete);\n });\n }\n\n // ── Transaction history ────────────────────────────────────────────\n\n async getTransactionHistory(address: string): Promise<ArkTransaction[]> {\n await this.ensureInit();\n const results = this.realm.objects(\"ArkTransaction\").filtered(\"address == $0\", address);\n const txs = [...results].map(txObjectToDomain);\n txs.sort((a, b) => a.createdAt - b.createdAt);\n return txs;\n }\n\n async saveTransactions(address: string, txs: ArkTransaction[]): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n for (const tx of txs) {\n this.realm.create(\n \"ArkTransaction\",\n {\n pk: `${address}:${tx.key.boardingTxid}:${tx.key.commitmentTxid}:${tx.key.arkTxid}`,\n address,\n boardingTxid: tx.key.boardingTxid,\n commitmentTxid: tx.key.commitmentTxid,\n arkTxid: tx.key.arkTxid,\n type: tx.type,\n amount: tx.amount,\n settled: tx.settled,\n createdAt: tx.createdAt,\n assetsJson: tx.assets ? JSON.stringify(serializeAssets(tx.assets)) : null,\n },\n \"modified\",\n );\n }\n });\n }\n\n async deleteTransactions(address: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm\n .objects(\"ArkTransaction\")\n .filtered(\"address == $0\", address);\n this.realm.delete(toDelete);\n });\n }\n\n // ── Wallet state ───────────────────────────────────────────────────\n\n async getWalletState(): Promise<WalletState | null> {\n await this.ensureInit();\n const results = this.realm\n .objects<WalletStateObject>(\"ArkWalletState\")\n .filtered(\"key == $0\", \"state\");\n const items = [...results];\n if (items.length === 0) return null;\n\n const obj = items[0];\n const state: WalletState = {};\n if (obj.settingsJson) {\n state.settings = JSON.parse(obj.settingsJson);\n }\n state.lastSyncTime = obj.lastSyncTime ?? undefined;\n return state;\n }\n\n async saveWalletState(state: WalletState): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n this.realm.create(\n \"ArkWalletState\",\n {\n key: \"state\",\n lastSyncTime: state.lastSyncTime,\n settingsJson: state.settings ? JSON.stringify(state.settings) : null,\n },\n \"modified\",\n );\n });\n }\n}\n\ninterface WalletStateObject {\n key: string;\n lastSyncTime: number | null;\n settingsJson: string | null;\n}\n\n// ── Realm object → Domain converters ─────────────────────────────────────\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction vtxoObjectToDomain(obj: any): ExtendedVirtualCoin {\n const serialized = {\n txid: obj.txid,\n vout: obj.vout,\n value: obj.value,\n tapTree: obj.tapTree,\n forfeitTapLeafScript: {\n cb: obj.forfeitCb,\n s: obj.forfeitS,\n } as SerializedTapLeaf,\n intentTapLeafScript: {\n cb: obj.intentCb,\n s: obj.intentS,\n } as SerializedTapLeaf,\n status: JSON.parse(obj.statusJson),\n virtualStatus: JSON.parse(obj.virtualStatusJson),\n createdAt: new Date(obj.createdAt),\n isUnrolled: obj.isUnrolled,\n isSpent: obj.isSpent === null ? undefined : obj.isSpent,\n spentBy: obj.spentBy ?? undefined,\n settledBy: obj.settledBy ?? undefined,\n arkTxId: obj.arkTxId ?? undefined,\n extraWitness: obj.extraWitnessJson ? JSON.parse(obj.extraWitnessJson) : undefined,\n assets: obj.assetsJson ? JSON.parse(obj.assetsJson) : undefined,\n // Post-migration every row has `script`, but the backfill is\n // idempotent: derive from `address` if the legacy column is still\n // null (e.g. the migration hasn't run yet on this handle).\n script: obj.script ?? scriptFromArkAddress(obj.address),\n };\n\n return deserializeVtxo(serialized);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction utxoObjectToDomain(obj: any): ExtendedCoin {\n const serialized = {\n txid: obj.txid,\n vout: obj.vout,\n value: obj.value,\n tapTree: obj.tapTree,\n forfeitTapLeafScript: {\n cb: obj.forfeitCb,\n s: obj.forfeitS,\n } as SerializedTapLeaf,\n intentTapLeafScript: {\n cb: obj.intentCb,\n s: obj.intentS,\n } as SerializedTapLeaf,\n status: JSON.parse(obj.statusJson),\n extraWitness: obj.extraWitnessJson ? JSON.parse(obj.extraWitnessJson) : undefined,\n };\n\n return deserializeUtxo(serialized);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction txObjectToDomain(obj: any): ArkTransaction {\n const tx: ArkTransaction = {\n key: {\n boardingTxid: obj.boardingTxid,\n commitmentTxid: obj.commitmentTxid,\n arkTxid: obj.arkTxid,\n },\n type: obj.type as ArkTransaction[\"type\"],\n amount: obj.amount,\n settled: obj.settled,\n createdAt: obj.createdAt,\n };\n if (obj.assetsJson) {\n tx.assets = deserializeAssets(JSON.parse(obj.assetsJson));\n }\n return tx;\n}\n","import { Contract, ContractState } from \"../../contracts/types\";\nimport { ContractFilter, ContractRepository } from \"../contractRepository\";\nimport { RealmLike } from \"./types\";\n\n/**\n * Realm-based implementation of ContractRepository.\n *\n * Consumers must open Realm with the schemas from `./schemas.ts` and pass\n * the instance to the constructor.\n *\n * Realm handles schema creation on open, so `ensureInit()` is a no-op.\n * The consumer owns the Realm lifecycle — `[Symbol.asyncDispose]` is a no-op.\n */\nexport class RealmContractRepository implements ContractRepository {\n readonly version = 1 as const;\n\n constructor(private readonly realm: RealmLike) {}\n\n // ── Lifecycle ──────────────────────────────────────────────────────\n\n private async ensureInit(): Promise<void> {\n // Realm handles schema on open — nothing to initialise.\n }\n\n async [Symbol.asyncDispose](): Promise<void> {\n // no-op — consumer owns the Realm lifecycle\n }\n\n // ── Clear ──────────────────────────────────────────────────────────\n\n async clear(): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n this.realm.delete(this.realm.objects(\"ArkContract\"));\n });\n }\n\n // ── Contract management ────────────────────────────────────────────\n\n async getContracts(filter?: ContractFilter): Promise<Contract[]> {\n await this.ensureInit();\n\n let results = this.realm.objects(\"ArkContract\");\n\n if (filter) {\n const filterParts: string[] = [];\n const filterArgs: unknown[] = [];\n\n let argIndex = 0;\n argIndex = this.addFilterCondition(\n filterParts,\n filterArgs,\n \"script\",\n filter.script,\n argIndex,\n );\n argIndex = this.addFilterCondition(\n filterParts,\n filterArgs,\n \"state\",\n filter.state,\n argIndex,\n );\n argIndex = this.addFilterCondition(\n filterParts,\n filterArgs,\n \"type\",\n filter.type,\n argIndex,\n );\n\n if (filterParts.length > 0) {\n const query = filterParts.join(\" AND \");\n results = results.filtered(query, ...filterArgs);\n }\n }\n\n return [...results].map(contractObjectToDomain);\n }\n\n async saveContract(contract: Contract): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n this.realm.create(\n \"ArkContract\",\n {\n script: contract.script,\n address: contract.address,\n type: contract.type,\n state: contract.state,\n paramsJson: JSON.stringify(contract.params),\n createdAt: contract.createdAt,\n label: contract.label ?? null,\n metadataJson: contract.metadata ? JSON.stringify(contract.metadata) : null,\n },\n \"modified\",\n );\n });\n }\n\n async deleteContract(script: string): Promise<void> {\n await this.ensureInit();\n this.realm.write(() => {\n const toDelete = this.realm.objects(\"ArkContract\").filtered(\"script == $0\", script);\n this.realm.delete(toDelete);\n });\n }\n\n // ── Helpers ─────────────────────────────────────────────────────────\n\n private addFilterCondition(\n parts: string[],\n args: unknown[],\n column: string,\n value: string | string[] | undefined,\n argIndex: number,\n ): number {\n if (value === undefined) return argIndex;\n\n if (Array.isArray(value)) {\n if (value.length === 0) return argIndex;\n const conditions = value.map((_, i) => {\n return `${column} == $${argIndex + i}`;\n });\n parts.push(`(${conditions.join(\" OR \")})`);\n args.push(...value);\n return argIndex + value.length;\n } else {\n parts.push(`${column} == $${argIndex}`);\n args.push(value);\n return argIndex + 1;\n }\n }\n}\n\n// ── Realm object → Domain converter ──────────────────────────────────────\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction contractObjectToDomain(obj: any): Contract {\n const contract: Contract = {\n script: obj.script,\n address: obj.address,\n type: obj.type,\n state: obj.state as ContractState,\n params: JSON.parse(obj.paramsJson),\n createdAt: obj.createdAt,\n };\n\n if (obj.label !== null && obj.label !== undefined) {\n contract.label = obj.label;\n }\n if (obj.metadataJson !== null && obj.metadataJson !== undefined) {\n contract.metadata = JSON.parse(obj.metadataJson);\n }\n\n return contract;\n}\n","/**\n * Realm object schemas for the Arkade wallet.\n *\n * All schema names are prefixed with \"Ark\" to avoid collisions with\n * other Realm schemas in the consuming application.\n *\n * Since `realm` is a peer dependency (not installed in this package),\n * schemas are defined as plain JS objects conforming to Realm's\n * ObjectSchema shape.\n */\n\nimport { scriptFromArkAddress } from \"../scriptFromAddress\";\n\nexport const ArkVtxoSchema = {\n name: \"ArkVtxo\",\n primaryKey: \"pk\",\n properties: {\n pk: \"string\", // composite: `${txid}:${vout}`\n address: { type: \"string\", indexed: true },\n txid: \"string\",\n vout: \"int\",\n value: \"int\",\n tapTree: \"string\", // hex-encoded\n forfeitCb: \"string\",\n forfeitS: \"string\",\n intentCb: \"string\",\n intentS: \"string\",\n extraWitnessJson: \"string?\",\n statusJson: \"string\",\n virtualStatusJson: \"string\",\n spentBy: \"string?\",\n settledBy: \"string?\",\n arkTxId: \"string?\",\n createdAt: \"string\", // ISO 8601\n isUnrolled: \"bool\",\n isSpent: \"bool?\",\n assetsJson: \"string?\",\n // scriptPubKey (hex) locking this VTXO, indexed so contract-scoped\n // queries can resolve ownership without touching address mapping.\n // Required as of schema v2; legacy rows are backfilled from `address`\n // during migration (see `runArkRealmMigrations`).\n script: { type: \"string\", indexed: true },\n },\n} as const;\n\nexport const ArkUtxoSchema = {\n name: \"ArkUtxo\",\n primaryKey: \"pk\",\n properties: {\n pk: \"string\", // composite: `${txid}:${vout}`\n address: { type: \"string\", indexed: true },\n txid: \"string\",\n vout: \"int\",\n value: \"int\",\n tapTree: \"string\", // hex-encoded\n forfeitCb: \"string\",\n forfeitS: \"string\",\n intentCb: \"string\",\n intentS: \"string\",\n extraWitnessJson: \"string?\",\n statusJson: \"string\",\n },\n} as const;\n\nexport const ArkTransactionSchema = {\n name: \"ArkTransaction\",\n primaryKey: \"pk\",\n properties: {\n pk: \"string\", // composite: `${address}:${boardingTxid}:${commitmentTxid}:${arkTxid}`\n address: { type: \"string\", indexed: true },\n boardingTxid: \"string\",\n commitmentTxid: \"string\",\n arkTxid: \"string\",\n type: \"string\",\n amount: \"int\",\n settled: \"bool\",\n createdAt: \"int\",\n assetsJson: \"string?\",\n },\n} as const;\n\nexport const ArkWalletStateSchema = {\n name: \"ArkWalletState\",\n primaryKey: \"key\",\n properties: {\n key: \"string\",\n lastSyncTime: \"int?\",\n settingsJson: \"string?\",\n },\n} as const;\n\nexport const ArkContractSchema = {\n name: \"ArkContract\",\n primaryKey: \"script\",\n properties: {\n script: \"string\",\n address: \"string\",\n type: { type: \"string\", indexed: true },\n state: { type: \"string\", indexed: true },\n paramsJson: \"string\",\n createdAt: \"int\",\n expiresAt: \"int?\",\n label: \"string?\",\n metadataJson: \"string?\",\n },\n} as const;\n\n/**\n * All Realm schemas needed by the Arkade wallet repositories.\n * Pass this array to your Realm configuration's `schema` property.\n */\nexport const ArkRealmSchemas = [\n ArkVtxoSchema,\n ArkUtxoSchema,\n ArkTransactionSchema,\n ArkWalletStateSchema,\n ArkContractSchema,\n];\n\n/**\n * Current Realm schema version for the Arkade wallet.\n *\n * Consumers opening Realm must pass a `schemaVersion` at least this high so\n * legacy databases get migrated; merge it with your own app's version:\n *\n * ```ts\n * await Realm.open({\n * schema: [...ArkRealmSchemas, ...yourSchemas],\n * schemaVersion: Math.max(ARK_REALM_SCHEMA_VERSION, yourSchemaVersion),\n * onMigration: (oldRealm, newRealm) => {\n * runArkRealmMigrations(oldRealm, newRealm);\n * // your own migrations\n * },\n * });\n * ```\n *\n * History:\n * - v1: initial ArkVtxo/ArkUtxo/... schemas, `script` nullable.\n * - v2: ArkVtxo.script becomes required; NULL values are backfilled from\n * the owning Ark address during migration.\n */\nexport const ARK_REALM_SCHEMA_VERSION = 2;\n\n/**\n * Run every Arkade schema migration applicable to the open Realm.\n *\n * Designed to be composed with the consumer's own migrations inside a single\n * `onMigration` callback. Each migration step does a per-row check so it\n * remains idempotent and independent of the app's global `schemaVersion` —\n * a consumer whose app is already at version 10 can still trigger the\n * Arkade v1→v2 script backfill when the row has never been populated.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function runArkRealmMigrations(_oldRealm: any, newRealm: any): void {\n const newVtxos = newRealm.objects(\"ArkVtxo\");\n for (let i = 0; i < newVtxos.length; i++) {\n const newVtxo = newVtxos[i];\n if (!newVtxo.script) {\n newVtxo.script = scriptFromArkAddress(newVtxo.address);\n }\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkXCHBQVMK_cjs = require('../../chunk-XCHBQVMK.cjs');
4
- require('../../chunk-FSAXPBGP.cjs');
3
+ var chunkTUSGEWOX_cjs = require('../../chunk-TUSGEWOX.cjs');
4
+ require('../../chunk-C6OODRWD.cjs');
5
5
  require('../../chunk-GUTKJMSF.cjs');
6
6
  require('../../chunk-CMPJR3HS.cjs');
7
7
  require('../../chunk-5BLDMQED.cjs');
@@ -126,7 +126,7 @@ var SQLiteWalletRepository = class {
126
126
  for (const row of nullRows) {
127
127
  await this.db.run(
128
128
  `UPDATE ${this.tables.vtxos} SET script = ? WHERE txid = ? AND vout = ?`,
129
- [chunkXCHBQVMK_cjs.scriptFromArkAddress(row.address), row.txid, row.vout]
129
+ [chunkTUSGEWOX_cjs.scriptFromArkAddress(row.address), row.txid, row.vout]
130
130
  );
131
131
  }
132
132
  const tempName = `${this.tables.vtxos}__migrate_tmp`;
@@ -204,7 +204,7 @@ var SQLiteWalletRepository = class {
204
204
  async saveVtxos(address, vtxos) {
205
205
  await this.ensureInit();
206
206
  for (const vtxo of vtxos) {
207
- const s = chunkXCHBQVMK_cjs.serializeVtxo(vtxo);
207
+ const s = chunkTUSGEWOX_cjs.serializeVtxo(vtxo);
208
208
  await this.db.run(
209
209
  `INSERT OR REPLACE INTO ${this.tables.vtxos}
210
210
  (txid, vout, value, address,
@@ -259,7 +259,7 @@ var SQLiteWalletRepository = class {
259
259
  throw new Error("SQLiteWalletRepository requires an address");
260
260
  }
261
261
  for (const vtxo of vtxos) {
262
- if (!chunkXCHBQVMK_cjs.isVtxoForScript(vtxo, key.script)) {
262
+ if (!chunkTUSGEWOX_cjs.isVtxoForScript(vtxo, key.script)) {
263
263
  throw new Error(
264
264
  `VTXO ${vtxo.txid}:${vtxo.vout} script mismatch: expected ${key.script}, got ${vtxo.script}`
265
265
  );
@@ -283,7 +283,7 @@ var SQLiteWalletRepository = class {
283
283
  async saveUtxos(address, utxos) {
284
284
  await this.ensureInit();
285
285
  for (const utxo of utxos) {
286
- const s = chunkXCHBQVMK_cjs.serializeUtxo(utxo);
286
+ const s = chunkTUSGEWOX_cjs.serializeUtxo(utxo);
287
287
  await this.db.run(
288
288
  `INSERT OR REPLACE INTO ${this.tables.utxos}
289
289
  (txid, vout, value, address,
@@ -339,7 +339,7 @@ var SQLiteWalletRepository = class {
339
339
  tx.amount,
340
340
  tx.settled ? 1 : 0,
341
341
  tx.createdAt,
342
- tx.assets ? JSON.stringify(chunkXCHBQVMK_cjs.serializeAssets(tx.assets)) : null
342
+ tx.assets ? JSON.stringify(chunkTUSGEWOX_cjs.serializeAssets(tx.assets)) : null
343
343
  ]
344
344
  );
345
345
  }
@@ -413,9 +413,9 @@ function vtxoRowToDomain(row) {
413
413
  // Post-migration every row has `script`, but the backfill is
414
414
  // idempotent: derive from `address` if the legacy column is still
415
415
  // null (e.g. the migration hasn't run yet on this handle).
416
- script: row.script ?? chunkXCHBQVMK_cjs.scriptFromArkAddress(row.address)
416
+ script: row.script ?? chunkTUSGEWOX_cjs.scriptFromArkAddress(row.address)
417
417
  };
418
- return chunkXCHBQVMK_cjs.deserializeVtxo(serialized);
418
+ return chunkTUSGEWOX_cjs.deserializeVtxo(serialized);
419
419
  }
420
420
  function utxoRowToDomain(row) {
421
421
  const serialized = {
@@ -434,7 +434,7 @@ function utxoRowToDomain(row) {
434
434
  status: JSON.parse(row.status_json),
435
435
  extraWitness: row.extra_witness_json ? JSON.parse(row.extra_witness_json) : void 0
436
436
  };
437
- return chunkXCHBQVMK_cjs.deserializeUtxo(serialized);
437
+ return chunkTUSGEWOX_cjs.deserializeUtxo(serialized);
438
438
  }
439
439
  function txRowToDomain(row) {
440
440
  const tx = {
@@ -449,7 +449,7 @@ function txRowToDomain(row) {
449
449
  createdAt: row.created_at
450
450
  };
451
451
  if (row.assets_json) {
452
- tx.assets = chunkXCHBQVMK_cjs.deserializeAssets(JSON.parse(row.assets_json));
452
+ tx.assets = chunkTUSGEWOX_cjs.deserializeAssets(JSON.parse(row.assets_json));
453
453
  }
454
454
  return tx;
455
455
  }
@@ -1,4 +1,4 @@
1
- import { W as WalletRepository, E as ExtendedVirtualCoin, a2 as VtxoRepositoryKey, d as ExtendedCoin, A as ArkTransaction, a3 as WalletState, C as ContractRepository, a4 as ContractFilter, r as Contract } from '../../ark-Dsv5Jq4E.cjs';
1
+ import { W as WalletRepository, E as ExtendedVirtualCoin, s as VtxoRepositoryKey, d as ExtendedCoin, A as ArkTransaction, t as WalletState, C as ContractRepository, u as ContractFilter, r as Contract } from '../../ark-D6sau_6-.cjs';
2
2
  import '@scure/btc-signer/transaction.js';
3
3
  import '@scure/btc-signer/utils.js';
4
4
  import '@scure/btc-signer/psbt.js';
@@ -1,4 +1,4 @@
1
- import { W as WalletRepository, E as ExtendedVirtualCoin, a2 as VtxoRepositoryKey, d as ExtendedCoin, A as ArkTransaction, a3 as WalletState, C as ContractRepository, a4 as ContractFilter, r as Contract } from '../../ark-Dsv5Jq4E.js';
1
+ import { W as WalletRepository, E as ExtendedVirtualCoin, s as VtxoRepositoryKey, d as ExtendedCoin, A as ArkTransaction, t as WalletState, C as ContractRepository, u as ContractFilter, r as Contract } from '../../ark-D6sau_6-.js';
2
2
  import '@scure/btc-signer/transaction.js';
3
3
  import '@scure/btc-signer/utils.js';
4
4
  import '@scure/btc-signer/psbt.js';
@@ -1,5 +1,5 @@
1
- import { scriptFromArkAddress, serializeVtxo, isVtxoForScript, serializeUtxo, serializeAssets, deserializeVtxo, deserializeUtxo, deserializeAssets } from '../../chunk-HFXEUW55.js';
2
- import '../../chunk-FXFBPXV3.js';
1
+ import { scriptFromArkAddress, serializeVtxo, isVtxoForScript, serializeUtxo, serializeAssets, deserializeVtxo, deserializeUtxo, deserializeAssets } from '../../chunk-HBPKIIMN.js';
2
+ import '../../chunk-2JJKX2RK.js';
3
3
  import '../../chunk-CUSABEUQ.js';
4
4
  import '../../chunk-OUVTG72A.js';
5
5
  import '../../chunk-NSBPE2FW.js';
@@ -1,4 +1,4 @@
1
- import { W as WalletRepository, C as ContractRepository, n as IndexerProvider, m as ArkProvider, q as VirtualCoin, r as Contract, E as ExtendedVirtualCoin } from './ark-Dsv5Jq4E.cjs';
1
+ import { W as WalletRepository, C as ContractRepository, n as IndexerProvider, m as ArkProvider, q as VirtualCoin, r as Contract, E as ExtendedVirtualCoin } from './ark-D6sau_6-.cjs';
2
2
 
3
3
  /**
4
4
  * A task item represents a unit of work in the inbox.
@@ -111,4 +111,4 @@ interface CreateTaskDependenciesOptions {
111
111
  */
112
112
  declare function createTaskDependencies(options: CreateTaskDependenciesOptions): TaskDependencies;
113
113
 
114
- export { type CreateTaskDependenciesOptions as C, InMemoryTaskQueue as I, type TaskProcessor as T, type TaskQueue as a, type TaskDependencies as b, type TaskItem as c, type TaskResult as d, createTaskDependencies as e, runTasks as r };
114
+ export { type CreateTaskDependenciesOptions as C, InMemoryTaskQueue as I, type TaskProcessor as T, type TaskDependencies as a, type TaskItem as b, type TaskQueue as c, type TaskResult as d, createTaskDependencies as e, runTasks as r };
@@ -1,4 +1,4 @@
1
- import { W as WalletRepository, C as ContractRepository, n as IndexerProvider, m as ArkProvider, q as VirtualCoin, r as Contract, E as ExtendedVirtualCoin } from './ark-Dsv5Jq4E.js';
1
+ import { W as WalletRepository, C as ContractRepository, n as IndexerProvider, m as ArkProvider, q as VirtualCoin, r as Contract, E as ExtendedVirtualCoin } from './ark-D6sau_6-.js';
2
2
 
3
3
  /**
4
4
  * A task item represents a unit of work in the inbox.
@@ -111,4 +111,4 @@ interface CreateTaskDependenciesOptions {
111
111
  */
112
112
  declare function createTaskDependencies(options: CreateTaskDependenciesOptions): TaskDependencies;
113
113
 
114
- export { type CreateTaskDependenciesOptions as C, InMemoryTaskQueue as I, type TaskProcessor as T, type TaskQueue as a, type TaskDependencies as b, type TaskItem as c, type TaskResult as d, createTaskDependencies as e, runTasks as r };
114
+ export { type CreateTaskDependenciesOptions as C, InMemoryTaskQueue as I, type TaskProcessor as T, type TaskDependencies as a, type TaskItem as b, type TaskQueue as c, type TaskResult as d, createTaskDependencies as e, runTasks as r };
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkZS3OZHC7_cjs = require('../../chunk-ZS3OZHC7.cjs');
4
- var chunkCCLNFHJ5_cjs = require('../../chunk-CCLNFHJ5.cjs');
5
- var chunkXCHBQVMK_cjs = require('../../chunk-XCHBQVMK.cjs');
6
- require('../../chunk-FSAXPBGP.cjs');
3
+ var chunkA5PY4NBP_cjs = require('../../chunk-A5PY4NBP.cjs');
4
+ var chunk2XE5BSIY_cjs = require('../../chunk-2XE5BSIY.cjs');
5
+ var chunkTUSGEWOX_cjs = require('../../chunk-TUSGEWOX.cjs');
6
+ require('../../chunk-C6OODRWD.cjs');
7
7
  require('../../chunk-GUTKJMSF.cjs');
8
8
  require('../../chunk-CMPJR3HS.cjs');
9
9
  require('../../chunk-5BLDMQED.cjs');
@@ -36,7 +36,7 @@ function defineExpoBackgroundTask(taskName, options) {
36
36
  taskQueue,
37
37
  walletRepository,
38
38
  contractRepository,
39
- processors = [chunkZS3OZHC7_cjs.contractPollProcessor]
39
+ processors = [chunkA5PY4NBP_cjs.contractPollProcessor]
40
40
  } = options;
41
41
  TaskManager__namespace.defineTask(taskName, async () => {
42
42
  try {
@@ -44,24 +44,24 @@ function defineExpoBackgroundTask(taskName, options) {
44
44
  if (!config) {
45
45
  return BackgroundTask__namespace.BackgroundTaskResult.Success;
46
46
  }
47
- const indexerProvider = new chunkCCLNFHJ5_cjs.ExpoIndexerProvider(config.arkServerUrl);
48
- const arkProvider = new chunkCCLNFHJ5_cjs.ExpoArkProvider(config.arkServerUrl);
49
- const deps = chunkZS3OZHC7_cjs.createTaskDependencies({
47
+ const indexerProvider = new chunk2XE5BSIY_cjs.ExpoIndexerProvider(config.arkServerUrl);
48
+ const arkProvider = new chunk2XE5BSIY_cjs.ExpoArkProvider(config.arkServerUrl);
49
+ const deps = chunkA5PY4NBP_cjs.createTaskDependencies({
50
50
  walletRepository,
51
51
  contractRepository,
52
52
  indexerProvider,
53
53
  arkProvider
54
54
  });
55
- await chunkZS3OZHC7_cjs.runTasks(taskQueue, processors, deps);
55
+ await chunkA5PY4NBP_cjs.runTasks(taskQueue, processors, deps);
56
56
  const results = await taskQueue.getResults();
57
57
  if (results.length > 0) {
58
58
  await taskQueue.acknowledgeResults(results.map((r) => r.id));
59
59
  }
60
- const existing = await taskQueue.getTasks(chunkZS3OZHC7_cjs.CONTRACT_POLL_TASK_TYPE);
60
+ const existing = await taskQueue.getTasks(chunkA5PY4NBP_cjs.CONTRACT_POLL_TASK_TYPE);
61
61
  if (existing.length === 0) {
62
62
  const task = {
63
- id: chunkXCHBQVMK_cjs.getRandomId(),
64
- type: chunkZS3OZHC7_cjs.CONTRACT_POLL_TASK_TYPE,
63
+ id: chunkTUSGEWOX_cjs.getRandomId(),
64
+ type: chunkA5PY4NBP_cjs.CONTRACT_POLL_TASK_TYPE,
65
65
  data: {},
66
66
  createdAt: Date.now()
67
67
  };
@@ -1,6 +1,6 @@
1
- import { W as WalletRepository, C as ContractRepository } from '../../ark-Dsv5Jq4E.cjs';
2
- import { A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-D92ch8yI.cjs';
3
- import { T as TaskProcessor } from '../../taskRunner-vFRA3F9b.cjs';
1
+ import { W as WalletRepository, C as ContractRepository } from '../../ark-D6sau_6-.cjs';
2
+ import { a as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-CpC027t_.cjs';
3
+ import { T as TaskProcessor } from '../../taskRunner-DCyp6Gea.cjs';
4
4
  import '@scure/btc-signer/transaction.js';
5
5
  import '@scure/btc-signer/utils.js';
6
6
  import '@scure/btc-signer/psbt.js';
@@ -1,6 +1,6 @@
1
- import { W as WalletRepository, C as ContractRepository } from '../../ark-Dsv5Jq4E.js';
2
- import { A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-BH-zuth5.js';
3
- import { T as TaskProcessor } from '../../taskRunner-B1NUWyWR.js';
1
+ import { W as WalletRepository, C as ContractRepository } from '../../ark-D6sau_6-.js';
2
+ import { a as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-GT8fmPUG.js';
3
+ import { T as TaskProcessor } from '../../taskRunner-DnxtObeq.js';
4
4
  import '@scure/btc-signer/transaction.js';
5
5
  import '@scure/btc-signer/utils.js';
6
6
  import '@scure/btc-signer/psbt.js';
@@ -1,7 +1,7 @@
1
- import { contractPollProcessor, createTaskDependencies, runTasks, CONTRACT_POLL_TASK_TYPE } from '../../chunk-VVGD3JIP.js';
2
- import { ExpoIndexerProvider, ExpoArkProvider } from '../../chunk-5WDBHWX3.js';
3
- import { getRandomId } from '../../chunk-HFXEUW55.js';
4
- import '../../chunk-FXFBPXV3.js';
1
+ import { contractPollProcessor, createTaskDependencies, runTasks, CONTRACT_POLL_TASK_TYPE } from '../../chunk-Z2VRVZW4.js';
2
+ import { ExpoIndexerProvider, ExpoArkProvider } from '../../chunk-KZV3FJJR.js';
3
+ import { getRandomId } from '../../chunk-HBPKIIMN.js';
4
+ import '../../chunk-2JJKX2RK.js';
5
5
  import '../../chunk-CUSABEUQ.js';
6
6
  import '../../chunk-OUVTG72A.js';
7
7
  import '../../chunk-NSBPE2FW.js';
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkZS3OZHC7_cjs = require('../../chunk-ZS3OZHC7.cjs');
4
- var chunkXCHBQVMK_cjs = require('../../chunk-XCHBQVMK.cjs');
5
- var chunkFSAXPBGP_cjs = require('../../chunk-FSAXPBGP.cjs');
3
+ var chunkA5PY4NBP_cjs = require('../../chunk-A5PY4NBP.cjs');
4
+ var chunkTUSGEWOX_cjs = require('../../chunk-TUSGEWOX.cjs');
5
+ var chunkC6OODRWD_cjs = require('../../chunk-C6OODRWD.cjs');
6
6
  require('../../chunk-GUTKJMSF.cjs');
7
7
  require('../../chunk-CMPJR3HS.cjs');
8
8
  require('../../chunk-5BLDMQED.cjs');
@@ -52,18 +52,18 @@ var ExpoWallet = class _ExpoWallet {
52
52
  */
53
53
  static async setup(config) {
54
54
  warnOnRemovedBackgroundFields(config.background);
55
- const wallet = await chunkXCHBQVMK_cjs.Wallet.create(config);
56
- const processors = config.background.processors ?? [chunkZS3OZHC7_cjs.contractPollProcessor];
55
+ const wallet = await chunkTUSGEWOX_cjs.Wallet.create(config);
56
+ const processors = config.background.processors ?? [chunkA5PY4NBP_cjs.contractPollProcessor];
57
57
  const deps = {
58
58
  walletRepository: wallet.walletRepository,
59
59
  contractRepository: wallet.contractRepository,
60
60
  indexerProvider: wallet.indexerProvider,
61
61
  arkProvider: wallet.arkProvider,
62
- extendVtxo: (vtxo, contract) => chunkXCHBQVMK_cjs.extendVirtualCoinForContract(vtxo, contract)
62
+ extendVtxo: (vtxo, contract) => chunkTUSGEWOX_cjs.extendVirtualCoinForContract(vtxo, contract)
63
63
  };
64
64
  const { taskQueue } = config.background;
65
65
  if ("persistConfig" in taskQueue) {
66
- const arkServerUrl = config.arkServerUrl || (wallet.arkProvider instanceof chunkFSAXPBGP_cjs.RestArkProvider ? wallet.arkProvider.serverUrl : void 0);
66
+ const arkServerUrl = config.arkServerUrl || (wallet.arkProvider instanceof chunkC6OODRWD_cjs.RestArkProvider ? wallet.arkProvider.serverUrl : void 0);
67
67
  if (arkServerUrl) {
68
68
  const timelock = wallet.offchainTapscript.options.csvTimelock;
69
69
  const bgConfig = {
@@ -93,7 +93,7 @@ var ExpoWallet = class _ExpoWallet {
93
93
  }, intervalMs);
94
94
  }
95
95
  async runForegroundPoll() {
96
- await chunkZS3OZHC7_cjs.runTasks(this.taskQueue, this.processors, this.deps);
96
+ await chunkA5PY4NBP_cjs.runTasks(this.taskQueue, this.processors, this.deps);
97
97
  const results = await this.taskQueue.getResults();
98
98
  if (results.length > 0) {
99
99
  await this.taskQueue.acknowledgeResults(results.map((r) => r.id));
@@ -101,11 +101,11 @@ var ExpoWallet = class _ExpoWallet {
101
101
  await this.seedContractPollTask();
102
102
  }
103
103
  async seedContractPollTask() {
104
- const existing = await this.taskQueue.getTasks(chunkZS3OZHC7_cjs.CONTRACT_POLL_TASK_TYPE);
104
+ const existing = await this.taskQueue.getTasks(chunkA5PY4NBP_cjs.CONTRACT_POLL_TASK_TYPE);
105
105
  if (existing.length > 0) return;
106
106
  const task = {
107
- id: chunkXCHBQVMK_cjs.getRandomId(),
108
- type: chunkZS3OZHC7_cjs.CONTRACT_POLL_TASK_TYPE,
107
+ id: chunkTUSGEWOX_cjs.getRandomId(),
108
+ type: chunkA5PY4NBP_cjs.CONTRACT_POLL_TASK_TYPE,
109
109
  data: {},
110
110
  createdAt: Date.now()
111
111
  };
@@ -1,10 +1,10 @@
1
- import { W as Wallet } from '../../wallet-By9HIo0Q.cjs';
2
- import { I as IWallet, a as Identity, b as WalletConfig, c as WalletBalance, G as GetVtxosFilter, E as ExtendedVirtualCoin, d as ExtendedCoin, A as ArkTransaction, e as IContractManager, f as IDelegateManager, S as SendBitcoinParams, g as SettleParams, h as SettlementEvent, R as Recipient, i as IAssetManager } from '../../ark-Dsv5Jq4E.cjs';
3
- import { a as TaskQueue, T as TaskProcessor } from '../../taskRunner-vFRA3F9b.cjs';
1
+ import { W as Wallet } from '../../wallet-BWHbd5b1.cjs';
2
+ import { I as IWallet, a as Identity, b as WalletConfig, c as WalletBalance, G as GetVtxosFilter, E as ExtendedVirtualCoin, d as ExtendedCoin, A as ArkTransaction, e as IContractManager, f as IDelegateManager, S as SendBitcoinParams, g as SettleParams, h as SettlementEvent, R as Recipient, i as IAssetManager } from '../../ark-D6sau_6-.cjs';
3
+ import { c as TaskQueue, T as TaskProcessor } from '../../taskRunner-DCyp6Gea.cjs';
4
4
  import '@scure/btc-signer';
5
5
  import '@scure/btc-signer/utils.js';
6
6
  import '@scure/btc-signer/psbt.js';
7
- import '../../delegate-BaS5SCIW.cjs';
7
+ import '../../delegate-C-L6gSZx.cjs';
8
8
  import '@scure/btc-signer/transaction.js';
9
9
 
10
10
  /**
@@ -1,10 +1,10 @@
1
- import { W as Wallet } from '../../wallet-D6uoBLmS.js';
2
- import { I as IWallet, a as Identity, b as WalletConfig, c as WalletBalance, G as GetVtxosFilter, E as ExtendedVirtualCoin, d as ExtendedCoin, A as ArkTransaction, e as IContractManager, f as IDelegateManager, S as SendBitcoinParams, g as SettleParams, h as SettlementEvent, R as Recipient, i as IAssetManager } from '../../ark-Dsv5Jq4E.js';
3
- import { a as TaskQueue, T as TaskProcessor } from '../../taskRunner-B1NUWyWR.js';
1
+ import { W as Wallet } from '../../wallet-Bth5uucA.js';
2
+ import { I as IWallet, a as Identity, b as WalletConfig, c as WalletBalance, G as GetVtxosFilter, E as ExtendedVirtualCoin, d as ExtendedCoin, A as ArkTransaction, e as IContractManager, f as IDelegateManager, S as SendBitcoinParams, g as SettleParams, h as SettlementEvent, R as Recipient, i as IAssetManager } from '../../ark-D6sau_6-.js';
3
+ import { c as TaskQueue, T as TaskProcessor } from '../../taskRunner-DnxtObeq.js';
4
4
  import '@scure/btc-signer';
5
5
  import '@scure/btc-signer/utils.js';
6
6
  import '@scure/btc-signer/psbt.js';
7
- import '../../delegate-Baz_hb83.js';
7
+ import '../../delegate-De5__fpZ.js';
8
8
  import '@scure/btc-signer/transaction.js';
9
9
 
10
10
  /**
@@ -1,6 +1,6 @@
1
- import { contractPollProcessor, runTasks, CONTRACT_POLL_TASK_TYPE } from '../../chunk-VVGD3JIP.js';
2
- import { Wallet, getRandomId, extendVirtualCoinForContract } from '../../chunk-HFXEUW55.js';
3
- import { RestArkProvider } from '../../chunk-FXFBPXV3.js';
1
+ import { contractPollProcessor, runTasks, CONTRACT_POLL_TASK_TYPE } from '../../chunk-Z2VRVZW4.js';
2
+ import { Wallet, getRandomId, extendVirtualCoinForContract } from '../../chunk-HBPKIIMN.js';
3
+ import { RestArkProvider } from '../../chunk-2JJKX2RK.js';
4
4
  import '../../chunk-CUSABEUQ.js';
5
5
  import '../../chunk-OUVTG72A.js';
6
6
  import '../../chunk-NSBPE2FW.js';