@arkade-os/sdk 0.4.26 → 0.4.28
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.
- package/README.md +36 -125
- package/dist/adapters/asyncStorage.cjs +48 -0
- package/dist/adapters/asyncStorage.cjs.map +1 -0
- package/dist/adapters/asyncStorage.d.cts +16 -0
- package/dist/{types/storage → adapters}/asyncStorage.d.ts +5 -2
- package/dist/adapters/asyncStorage.js +46 -0
- package/dist/adapters/asyncStorage.js.map +1 -0
- package/dist/adapters/expo.cjs +19 -0
- package/dist/adapters/expo.cjs.map +1 -0
- package/dist/adapters/expo.d.cts +48 -0
- package/dist/adapters/expo.d.ts +48 -0
- package/dist/adapters/expo.js +6 -0
- package/dist/adapters/expo.js.map +1 -0
- package/dist/adapters/fileSystem.cjs +116 -0
- package/dist/adapters/fileSystem.cjs.map +1 -0
- package/dist/adapters/fileSystem.d.cts +17 -0
- package/dist/{types/storage → adapters}/fileSystem.d.ts +5 -2
- package/dist/adapters/fileSystem.js +93 -0
- package/dist/adapters/fileSystem.js.map +1 -0
- package/dist/adapters/indexedDB.cjs +103 -0
- package/dist/adapters/indexedDB.cjs.map +1 -0
- package/dist/adapters/indexedDB.d.cts +18 -0
- package/dist/{types/storage → adapters}/indexedDB.d.ts +5 -2
- package/dist/adapters/indexedDB.js +101 -0
- package/dist/adapters/indexedDB.js.map +1 -0
- package/dist/adapters/localStorage.cjs +50 -0
- package/dist/adapters/localStorage.cjs.map +1 -0
- package/dist/{types/storage/inMemory.d.ts → adapters/localStorage.d.cts} +6 -3
- package/dist/{types/storage → adapters}/localStorage.d.ts +5 -2
- package/dist/adapters/localStorage.js +48 -0
- package/dist/adapters/localStorage.js.map +1 -0
- package/dist/ark-TZ1gXAXU.d.cts +3880 -0
- package/dist/ark-TZ1gXAXU.d.ts +3880 -0
- package/dist/{types/worker/expo/asyncStorageTaskQueue.d.ts → asyncStorageTaskQueue-Cb1F_Z9s.d.ts} +6 -3
- package/dist/asyncStorageTaskQueue-EFqSmYTg.d.cts +49 -0
- package/dist/chunk-5BLDMQED.cjs +18 -0
- package/dist/chunk-5BLDMQED.cjs.map +1 -0
- package/dist/chunk-5PG7DV7A.cjs +805 -0
- package/dist/chunk-5PG7DV7A.cjs.map +1 -0
- package/dist/chunk-A3EMF7RN.js +95 -0
- package/dist/chunk-A3EMF7RN.js.map +1 -0
- package/dist/chunk-ADV27S4N.cjs +2701 -0
- package/dist/chunk-ADV27S4N.cjs.map +1 -0
- package/dist/chunk-BQLHADL7.js +13805 -0
- package/dist/chunk-BQLHADL7.js.map +1 -0
- package/dist/chunk-CFZMTDWI.js +209 -0
- package/dist/chunk-CFZMTDWI.js.map +1 -0
- package/dist/chunk-FG5ACJJW.cjs +212 -0
- package/dist/chunk-FG5ACJJW.cjs.map +1 -0
- package/dist/chunk-HW3JJ323.js +768 -0
- package/dist/chunk-HW3JJ323.js.map +1 -0
- package/dist/chunk-I3DGUUCT.cjs +838 -0
- package/dist/chunk-I3DGUUCT.cjs.map +1 -0
- package/dist/chunk-IPX2R7FR.cjs +100 -0
- package/dist/chunk-IPX2R7FR.cjs.map +1 -0
- package/dist/chunk-NSBPE2FW.js +15 -0
- package/dist/chunk-NSBPE2FW.js.map +1 -0
- package/dist/chunk-T64LAI7L.js +829 -0
- package/dist/chunk-T64LAI7L.js.map +1 -0
- package/dist/chunk-ZBUDLTBO.js +2671 -0
- package/dist/chunk-ZBUDLTBO.js.map +1 -0
- package/dist/chunk-ZLO6NETT.cjs +13910 -0
- package/dist/chunk-ZLO6NETT.cjs.map +1 -0
- package/dist/contracts/handlers/index.cjs +26 -0
- package/dist/contracts/handlers/index.cjs.map +1 -0
- package/dist/contracts/handlers/index.d.cts +7 -0
- package/dist/contracts/handlers/index.d.ts +7 -0
- package/dist/contracts/handlers/index.js +5 -0
- package/dist/contracts/handlers/index.js.map +1 -0
- package/dist/delegate-BFZs69hp.d.cts +84 -0
- package/dist/delegate-aaVGfWsV.d.ts +84 -0
- package/dist/index-B22cA64m.d.cts +199 -0
- package/dist/{types/storage/index.d.ts → index-C0IanN1m.d.cts} +3 -1
- package/dist/index-C0IanN1m.d.ts +11 -0
- package/dist/index-NDla_UoJ.d.ts +199 -0
- package/dist/index.cjs +480 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3343 -0
- package/dist/index.d.ts +3343 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories/realm/index.cjs +513 -0
- package/dist/repositories/realm/index.cjs.map +1 -0
- package/dist/repositories/realm/index.d.cts +217 -0
- package/dist/{types/repositories/realm/schemas.d.ts → repositories/realm/index.d.ts} +80 -112
- package/dist/repositories/realm/index.js +507 -0
- package/dist/repositories/realm/index.js.map +1 -0
- package/dist/repositories/sqlite/index.cjs +588 -0
- package/dist/repositories/sqlite/index.cjs.map +1 -0
- package/dist/repositories/sqlite/index.d.cts +118 -0
- package/dist/{types/repositories/sqlite/walletRepository.d.ts → repositories/sqlite/index.d.ts} +58 -5
- package/dist/repositories/sqlite/index.js +585 -0
- package/dist/repositories/sqlite/index.js.map +1 -0
- package/dist/taskRunner-C6Ff4OaU.d.cts +114 -0
- package/dist/taskRunner-yvPN8Z0K.d.ts +114 -0
- package/dist/wallet/expo/background.cjs +93 -0
- package/dist/wallet/expo/background.cjs.map +1 -0
- package/dist/wallet/expo/background.d.cts +84 -0
- package/dist/wallet/expo/background.d.ts +84 -0
- package/dist/wallet/expo/background.js +68 -0
- package/dist/wallet/expo/background.js.map +1 -0
- package/dist/wallet/expo/index.cjs +171 -0
- package/dist/wallet/expo/index.cjs.map +1 -0
- package/dist/wallet/expo/index.d.cts +122 -0
- package/dist/{types/wallet/expo/wallet.d.ts → wallet/expo/index.d.ts} +45 -22
- package/dist/wallet/expo/index.js +169 -0
- package/dist/wallet/expo/index.js.map +1 -0
- package/dist/wallet-AF-p-OWj.d.cts +774 -0
- package/dist/wallet-D9NBRqvC.d.ts +774 -0
- package/dist/worker/expo/index.cjs +140 -0
- package/dist/worker/expo/index.cjs.map +1 -0
- package/dist/worker/expo/index.d.cts +29 -0
- package/dist/worker/expo/index.d.ts +29 -0
- package/dist/worker/expo/index.js +121 -0
- package/dist/worker/expo/index.js.map +1 -0
- package/package.json +110 -76
- package/dist/cjs/adapters/asyncStorage.js +0 -5
- package/dist/cjs/adapters/expo.js +0 -8
- package/dist/cjs/adapters/fileSystem.js +0 -5
- package/dist/cjs/adapters/indexedDB.js +0 -5
- package/dist/cjs/adapters/localStorage.js +0 -5
- package/dist/cjs/arkfee/celenv.js +0 -43
- package/dist/cjs/arkfee/estimator.js +0 -143
- package/dist/cjs/arkfee/index.js +0 -5
- package/dist/cjs/arkfee/types.js +0 -26
- package/dist/cjs/arknote/index.js +0 -128
- package/dist/cjs/bip322/index.js +0 -270
- package/dist/cjs/contracts/arkcontract.js +0 -147
- package/dist/cjs/contracts/contractManager.js +0 -629
- package/dist/cjs/contracts/contractWatcher.js +0 -598
- package/dist/cjs/contracts/handlers/default.js +0 -93
- package/dist/cjs/contracts/handlers/delegate.js +0 -90
- package/dist/cjs/contracts/handlers/helpers.js +0 -115
- package/dist/cjs/contracts/handlers/index.js +0 -19
- package/dist/cjs/contracts/handlers/registry.js +0 -89
- package/dist/cjs/contracts/handlers/vhtlc.js +0 -194
- package/dist/cjs/contracts/index.js +0 -41
- package/dist/cjs/contracts/types.js +0 -2
- package/dist/cjs/contracts/vtxoOwnership.js +0 -78
- package/dist/cjs/extension/asset/assetGroup.js +0 -228
- package/dist/cjs/extension/asset/assetId.js +0 -152
- package/dist/cjs/extension/asset/assetInput.js +0 -222
- package/dist/cjs/extension/asset/assetOutput.js +0 -174
- package/dist/cjs/extension/asset/assetRef.js +0 -148
- package/dist/cjs/extension/asset/index.js +0 -23
- package/dist/cjs/extension/asset/metadata.js +0 -187
- package/dist/cjs/extension/asset/packet.js +0 -114
- package/dist/cjs/extension/asset/types.js +0 -22
- package/dist/cjs/extension/asset/utils.js +0 -105
- package/dist/cjs/extension/index.js +0 -254
- package/dist/cjs/extension/packet.js +0 -20
- package/dist/cjs/forfeit.js +0 -45
- package/dist/cjs/identity/descriptor.js +0 -169
- package/dist/cjs/identity/descriptorProvider.js +0 -2
- package/dist/cjs/identity/hdCapableIdentity.js +0 -2
- package/dist/cjs/identity/index.js +0 -38
- package/dist/cjs/identity/seedIdentity.js +0 -461
- package/dist/cjs/identity/serialize.js +0 -171
- package/dist/cjs/identity/singleKey.js +0 -126
- package/dist/cjs/identity/staticDescriptorProvider.js +0 -65
- package/dist/cjs/index.js +0 -200
- package/dist/cjs/intent/index.js +0 -259
- package/dist/cjs/musig2/index.js +0 -11
- package/dist/cjs/musig2/keys.js +0 -57
- package/dist/cjs/musig2/nonces.js +0 -48
- package/dist/cjs/musig2/sign.js +0 -102
- package/dist/cjs/networks.js +0 -26
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/providers/ark.js +0 -577
- package/dist/cjs/providers/delegator.js +0 -85
- package/dist/cjs/providers/electrum.js +0 -869
- package/dist/cjs/providers/errors.js +0 -59
- package/dist/cjs/providers/expoArk.js +0 -82
- package/dist/cjs/providers/expoIndexer.js +0 -111
- package/dist/cjs/providers/expoUtils.js +0 -124
- package/dist/cjs/providers/indexer.js +0 -630
- package/dist/cjs/providers/onchain.js +0 -262
- package/dist/cjs/providers/utils.js +0 -121
- package/dist/cjs/repositories/contractRepository.js +0 -2
- package/dist/cjs/repositories/inMemory/contractRepository.js +0 -55
- package/dist/cjs/repositories/inMemory/walletRepository.js +0 -115
- package/dist/cjs/repositories/index.js +0 -34
- package/dist/cjs/repositories/indexedDB/contractRepository.js +0 -187
- package/dist/cjs/repositories/indexedDB/db.js +0 -19
- package/dist/cjs/repositories/indexedDB/manager.js +0 -100
- package/dist/cjs/repositories/indexedDB/schema.js +0 -204
- package/dist/cjs/repositories/indexedDB/walletRepository.js +0 -474
- package/dist/cjs/repositories/indexedDB/websqlAdapter.js +0 -144
- package/dist/cjs/repositories/migrations/contractRepositoryImpl.js +0 -127
- package/dist/cjs/repositories/migrations/fromStorageAdapter.js +0 -66
- package/dist/cjs/repositories/migrations/walletRepositoryImpl.js +0 -184
- package/dist/cjs/repositories/realm/contractRepository.js +0 -116
- package/dist/cjs/repositories/realm/index.js +0 -11
- package/dist/cjs/repositories/realm/schemas.js +0 -157
- package/dist/cjs/repositories/realm/types.js +0 -7
- package/dist/cjs/repositories/realm/walletRepository.js +0 -305
- package/dist/cjs/repositories/scriptFromAddress.js +0 -16
- package/dist/cjs/repositories/serialization.js +0 -82
- package/dist/cjs/repositories/sqlite/contractRepository.js +0 -135
- package/dist/cjs/repositories/sqlite/index.js +0 -7
- package/dist/cjs/repositories/sqlite/types.js +0 -2
- package/dist/cjs/repositories/sqlite/walletRepository.js +0 -441
- package/dist/cjs/repositories/walletRepository.js +0 -2
- package/dist/cjs/script/address.js +0 -108
- package/dist/cjs/script/base.js +0 -185
- package/dist/cjs/script/default.js +0 -57
- package/dist/cjs/script/delegate.js +0 -53
- package/dist/cjs/script/tapscript.js +0 -619
- package/dist/cjs/script/vhtlc.js +0 -170
- package/dist/cjs/storage/asyncStorage.js +0 -50
- package/dist/cjs/storage/fileSystem.js +0 -141
- package/dist/cjs/storage/inMemory.js +0 -24
- package/dist/cjs/storage/index.js +0 -2
- package/dist/cjs/storage/indexedDB.js +0 -101
- package/dist/cjs/storage/localStorage.js +0 -51
- package/dist/cjs/tree/signingSession.js +0 -229
- package/dist/cjs/tree/txTree.js +0 -192
- package/dist/cjs/tree/validation.js +0 -107
- package/dist/cjs/utils/anchor.js +0 -35
- package/dist/cjs/utils/arkTransaction.js +0 -271
- package/dist/cjs/utils/bip21.js +0 -127
- package/dist/cjs/utils/syncCursors.js +0 -128
- package/dist/cjs/utils/timelock.js +0 -59
- package/dist/cjs/utils/transaction.js +0 -28
- package/dist/cjs/utils/transactionHistory.js +0 -183
- package/dist/cjs/utils/txSizeEstimator.js +0 -132
- package/dist/cjs/utils/unknownFields.js +0 -174
- package/dist/cjs/wallet/asset-manager.js +0 -330
- package/dist/cjs/wallet/asset.js +0 -119
- package/dist/cjs/wallet/batch.js +0 -183
- package/dist/cjs/wallet/delegator.js +0 -302
- package/dist/cjs/wallet/expo/background.js +0 -116
- package/dist/cjs/wallet/expo/index.js +0 -9
- package/dist/cjs/wallet/expo/wallet.js +0 -230
- package/dist/cjs/wallet/hdDescriptorProvider.js +0 -159
- package/dist/cjs/wallet/index.js +0 -82
- package/dist/cjs/wallet/onchain.js +0 -290
- package/dist/cjs/wallet/ramps.js +0 -216
- package/dist/cjs/wallet/serviceWorker/wallet-message-handler.js +0 -953
- package/dist/cjs/wallet/serviceWorker/wallet.js +0 -1173
- package/dist/cjs/wallet/unroll.js +0 -289
- package/dist/cjs/wallet/utils.js +0 -111
- package/dist/cjs/wallet/validation.js +0 -154
- package/dist/cjs/wallet/vtxo-manager.js +0 -1142
- package/dist/cjs/wallet/wallet.js +0 -2049
- package/dist/cjs/worker/browser/service-worker-manager.js +0 -183
- package/dist/cjs/worker/browser/utils.js +0 -67
- package/dist/cjs/worker/errors.js +0 -16
- package/dist/cjs/worker/expo/asyncStorageTaskQueue.js +0 -78
- package/dist/cjs/worker/expo/index.js +0 -13
- package/dist/cjs/worker/expo/processors/contractPollProcessor.js +0 -62
- package/dist/cjs/worker/expo/processors/index.js +0 -6
- package/dist/cjs/worker/expo/taskQueue.js +0 -41
- package/dist/cjs/worker/expo/taskRunner.js +0 -73
- package/dist/cjs/worker/messageBus.js +0 -473
- package/dist/esm/adapters/asyncStorage.js +0 -1
- package/dist/esm/adapters/expo.js +0 -3
- package/dist/esm/adapters/fileSystem.js +0 -1
- package/dist/esm/adapters/indexedDB.js +0 -1
- package/dist/esm/adapters/localStorage.js +0 -1
- package/dist/esm/arkfee/celenv.js +0 -40
- package/dist/esm/arkfee/estimator.js +0 -139
- package/dist/esm/arkfee/index.js +0 -1
- package/dist/esm/arkfee/types.js +0 -22
- package/dist/esm/arknote/index.js +0 -124
- package/dist/esm/bip322/index.js +0 -267
- package/dist/esm/contracts/arkcontract.js +0 -140
- package/dist/esm/contracts/contractManager.js +0 -625
- package/dist/esm/contracts/contractWatcher.js +0 -594
- package/dist/esm/contracts/handlers/default.js +0 -90
- package/dist/esm/contracts/handlers/delegate.js +0 -87
- package/dist/esm/contracts/handlers/helpers.js +0 -110
- package/dist/esm/contracts/handlers/index.js +0 -12
- package/dist/esm/contracts/handlers/registry.js +0 -86
- package/dist/esm/contracts/handlers/vhtlc.js +0 -191
- package/dist/esm/contracts/index.js +0 -13
- package/dist/esm/contracts/types.js +0 -1
- package/dist/esm/contracts/vtxoOwnership.js +0 -69
- package/dist/esm/extension/asset/assetGroup.js +0 -224
- package/dist/esm/extension/asset/assetId.js +0 -148
- package/dist/esm/extension/asset/assetInput.js +0 -217
- package/dist/esm/extension/asset/assetOutput.js +0 -169
- package/dist/esm/extension/asset/assetRef.js +0 -144
- package/dist/esm/extension/asset/index.js +0 -8
- package/dist/esm/extension/asset/metadata.js +0 -182
- package/dist/esm/extension/asset/packet.js +0 -110
- package/dist/esm/extension/asset/types.js +0 -19
- package/dist/esm/extension/asset/utils.js +0 -99
- package/dist/esm/extension/index.js +0 -248
- package/dist/esm/extension/packet.js +0 -16
- package/dist/esm/forfeit.js +0 -41
- package/dist/esm/identity/descriptor.js +0 -161
- package/dist/esm/identity/descriptorProvider.js +0 -1
- package/dist/esm/identity/hdCapableIdentity.js +0 -1
- package/dist/esm/identity/index.js +0 -12
- package/dist/esm/identity/seedIdentity.js +0 -453
- package/dist/esm/identity/serialize.js +0 -164
- package/dist/esm/identity/singleKey.js +0 -121
- package/dist/esm/identity/staticDescriptorProvider.js +0 -61
- package/dist/esm/index.js +0 -87
- package/dist/esm/intent/index.js +0 -255
- package/dist/esm/musig2/index.js +0 -3
- package/dist/esm/musig2/keys.js +0 -21
- package/dist/esm/musig2/nonces.js +0 -11
- package/dist/esm/musig2/sign.js +0 -63
- package/dist/esm/networks.js +0 -22
- package/dist/esm/package.json +0 -3
- package/dist/esm/providers/ark.js +0 -572
- package/dist/esm/providers/delegator.js +0 -81
- package/dist/esm/providers/electrum.js +0 -864
- package/dist/esm/providers/errors.js +0 -54
- package/dist/esm/providers/expoArk.js +0 -78
- package/dist/esm/providers/expoIndexer.js +0 -107
- package/dist/esm/providers/expoUtils.js +0 -87
- package/dist/esm/providers/indexer.js +0 -626
- package/dist/esm/providers/onchain.js +0 -258
- package/dist/esm/providers/utils.js +0 -117
- package/dist/esm/repositories/contractRepository.js +0 -1
- package/dist/esm/repositories/inMemory/contractRepository.js +0 -51
- package/dist/esm/repositories/inMemory/walletRepository.js +0 -111
- package/dist/esm/repositories/index.js +0 -10
- package/dist/esm/repositories/indexedDB/contractRepository.js +0 -183
- package/dist/esm/repositories/indexedDB/db.js +0 -4
- package/dist/esm/repositories/indexedDB/manager.js +0 -95
- package/dist/esm/repositories/indexedDB/schema.js +0 -199
- package/dist/esm/repositories/indexedDB/walletRepository.js +0 -470
- package/dist/esm/repositories/indexedDB/websqlAdapter.js +0 -138
- package/dist/esm/repositories/migrations/contractRepositoryImpl.js +0 -121
- package/dist/esm/repositories/migrations/fromStorageAdapter.js +0 -58
- package/dist/esm/repositories/migrations/walletRepositoryImpl.js +0 -180
- package/dist/esm/repositories/realm/contractRepository.js +0 -112
- package/dist/esm/repositories/realm/index.js +0 -3
- package/dist/esm/repositories/realm/schemas.js +0 -153
- package/dist/esm/repositories/realm/types.js +0 -6
- package/dist/esm/repositories/realm/walletRepository.js +0 -301
- package/dist/esm/repositories/scriptFromAddress.js +0 -13
- package/dist/esm/repositories/serialization.js +0 -67
- package/dist/esm/repositories/sqlite/contractRepository.js +0 -131
- package/dist/esm/repositories/sqlite/index.js +0 -2
- package/dist/esm/repositories/sqlite/types.js +0 -1
- package/dist/esm/repositories/sqlite/walletRepository.js +0 -437
- package/dist/esm/repositories/walletRepository.js +0 -1
- package/dist/esm/script/address.js +0 -104
- package/dist/esm/script/base.js +0 -179
- package/dist/esm/script/default.js +0 -54
- package/dist/esm/script/delegate.js +0 -50
- package/dist/esm/script/tapscript.js +0 -615
- package/dist/esm/script/vhtlc.js +0 -167
- package/dist/esm/storage/asyncStorage.js +0 -46
- package/dist/esm/storage/fileSystem.js +0 -104
- package/dist/esm/storage/inMemory.js +0 -20
- package/dist/esm/storage/index.js +0 -1
- package/dist/esm/storage/indexedDB.js +0 -97
- package/dist/esm/storage/localStorage.js +0 -47
- package/dist/esm/tree/signingSession.js +0 -191
- package/dist/esm/tree/txTree.js +0 -188
- package/dist/esm/tree/validation.js +0 -101
- package/dist/esm/utils/anchor.js +0 -31
- package/dist/esm/utils/arkTransaction.js +0 -264
- package/dist/esm/utils/bip21.js +0 -123
- package/dist/esm/utils/syncCursors.js +0 -119
- package/dist/esm/utils/timelock.js +0 -22
- package/dist/esm/utils/transaction.js +0 -24
- package/dist/esm/utils/transactionHistory.js +0 -180
- package/dist/esm/utils/txSizeEstimator.js +0 -128
- package/dist/esm/utils/unknownFields.js +0 -169
- package/dist/esm/wallet/asset-manager.js +0 -325
- package/dist/esm/wallet/asset.js +0 -113
- package/dist/esm/wallet/batch.js +0 -180
- package/dist/esm/wallet/delegator.js +0 -297
- package/dist/esm/wallet/expo/background.js +0 -111
- package/dist/esm/wallet/expo/index.js +0 -2
- package/dist/esm/wallet/expo/wallet.js +0 -193
- package/dist/esm/wallet/hdDescriptorProvider.js +0 -155
- package/dist/esm/wallet/index.js +0 -75
- package/dist/esm/wallet/onchain.js +0 -285
- package/dist/esm/wallet/ramps.js +0 -212
- package/dist/esm/wallet/serviceWorker/wallet-message-handler.js +0 -946
- package/dist/esm/wallet/serviceWorker/wallet.js +0 -1168
- package/dist/esm/wallet/unroll.js +0 -285
- package/dist/esm/wallet/utils.js +0 -103
- package/dist/esm/wallet/validation.js +0 -142
- package/dist/esm/wallet/vtxo-manager.js +0 -1136
- package/dist/esm/wallet/wallet.js +0 -2041
- package/dist/esm/worker/browser/service-worker-manager.js +0 -177
- package/dist/esm/worker/browser/utils.js +0 -63
- package/dist/esm/worker/errors.js +0 -11
- package/dist/esm/worker/expo/asyncStorageTaskQueue.js +0 -74
- package/dist/esm/worker/expo/index.js +0 -4
- package/dist/esm/worker/expo/processors/contractPollProcessor.js +0 -59
- package/dist/esm/worker/expo/processors/index.js +0 -1
- package/dist/esm/worker/expo/taskQueue.js +0 -37
- package/dist/esm/worker/expo/taskRunner.js +0 -69
- package/dist/esm/worker/messageBus.js +0 -469
- package/dist/types/adapters/asyncStorage.d.ts +0 -2
- package/dist/types/adapters/expo.d.ts +0 -4
- package/dist/types/adapters/fileSystem.d.ts +0 -2
- package/dist/types/adapters/indexedDB.d.ts +0 -2
- package/dist/types/adapters/localStorage.d.ts +0 -2
- package/dist/types/arkfee/celenv.d.ts +0 -25
- package/dist/types/arkfee/estimator.d.ts +0 -49
- package/dist/types/arkfee/index.d.ts +0 -2
- package/dist/types/arkfee/types.d.ts +0 -38
- package/dist/types/arknote/index.d.ts +0 -84
- package/dist/types/bip322/index.d.ts +0 -55
- package/dist/types/contracts/arkcontract.d.ts +0 -99
- package/dist/types/contracts/contractManager.d.ts +0 -381
- package/dist/types/contracts/contractWatcher.d.ts +0 -217
- package/dist/types/contracts/handlers/default.d.ts +0 -19
- package/dist/types/contracts/handlers/delegate.d.ts +0 -21
- package/dist/types/contracts/handlers/helpers.d.ts +0 -19
- package/dist/types/contracts/handlers/index.d.ts +0 -7
- package/dist/types/contracts/handlers/registry.d.ts +0 -65
- package/dist/types/contracts/handlers/vhtlc.d.ts +0 -32
- package/dist/types/contracts/index.d.ts +0 -14
- package/dist/types/contracts/types.d.ts +0 -233
- package/dist/types/contracts/vtxoOwnership.d.ts +0 -33
- package/dist/types/extension/asset/assetGroup.d.ts +0 -119
- package/dist/types/extension/asset/assetId.d.ts +0 -83
- package/dist/types/extension/asset/assetInput.d.ts +0 -64
- package/dist/types/extension/asset/assetOutput.d.ts +0 -54
- package/dist/types/extension/asset/assetRef.d.ts +0 -91
- package/dist/types/extension/asset/index.d.ts +0 -8
- package/dist/types/extension/asset/metadata.d.ts +0 -52
- package/dist/types/extension/asset/packet.d.ts +0 -41
- package/dist/types/extension/asset/types.d.ts +0 -16
- package/dist/types/extension/asset/utils.d.ts +0 -21
- package/dist/types/extension/index.d.ts +0 -56
- package/dist/types/extension/packet.d.ts +0 -21
- package/dist/types/forfeit.d.ts +0 -18
- package/dist/types/identity/descriptor.d.ts +0 -61
- package/dist/types/identity/descriptorProvider.d.ts +0 -35
- package/dist/types/identity/hdCapableIdentity.d.ts +0 -44
- package/dist/types/identity/index.d.ts +0 -56
- package/dist/types/identity/seedIdentity.d.ts +0 -254
- package/dist/types/identity/serialize.d.ts +0 -96
- package/dist/types/identity/singleKey.d.ts +0 -62
- package/dist/types/identity/staticDescriptorProvider.d.ts +0 -18
- package/dist/types/index.d.ts +0 -59
- package/dist/types/intent/index.d.ts +0 -86
- package/dist/types/musig2/index.d.ts +0 -4
- package/dist/types/musig2/keys.d.ts +0 -9
- package/dist/types/musig2/nonces.d.ts +0 -14
- package/dist/types/musig2/sign.d.ts +0 -27
- package/dist/types/networks.d.ts +0 -16
- package/dist/types/providers/ark.d.ts +0 -369
- package/dist/types/providers/delegator.d.ts +0 -82
- package/dist/types/providers/electrum.d.ts +0 -312
- package/dist/types/providers/errors.d.ts +0 -13
- package/dist/types/providers/expoArk.d.ts +0 -22
- package/dist/types/providers/expoIndexer.d.ts +0 -18
- package/dist/types/providers/expoUtils.d.ts +0 -18
- package/dist/types/providers/indexer.d.ts +0 -301
- package/dist/types/providers/onchain.d.ts +0 -148
- package/dist/types/providers/utils.d.ts +0 -12
- package/dist/types/repositories/contractRepository.d.ts +0 -32
- package/dist/types/repositories/inMemory/contractRepository.d.ts +0 -17
- package/dist/types/repositories/inMemory/walletRepository.d.ts +0 -29
- package/dist/types/repositories/index.d.ts +0 -9
- package/dist/types/repositories/indexedDB/contractRepository.d.ts +0 -21
- package/dist/types/repositories/indexedDB/db.d.ts +0 -4
- package/dist/types/repositories/indexedDB/manager.d.ts +0 -25
- package/dist/types/repositories/indexedDB/schema.d.ts +0 -9
- package/dist/types/repositories/indexedDB/walletRepository.d.ts +0 -28
- package/dist/types/repositories/indexedDB/websqlAdapter.d.ts +0 -49
- package/dist/types/repositories/migrations/contractRepositoryImpl.d.ts +0 -24
- package/dist/types/repositories/migrations/fromStorageAdapter.d.ts +0 -19
- package/dist/types/repositories/migrations/walletRepositoryImpl.d.ts +0 -27
- package/dist/types/repositories/realm/contractRepository.d.ts +0 -24
- package/dist/types/repositories/realm/index.d.ts +0 -4
- package/dist/types/repositories/realm/types.d.ts +0 -16
- package/dist/types/repositories/realm/walletRepository.d.ts +0 -34
- package/dist/types/repositories/scriptFromAddress.d.ts +0 -9
- package/dist/types/repositories/serialization.d.ts +0 -65
- package/dist/types/repositories/sqlite/contractRepository.d.ts +0 -33
- package/dist/types/repositories/sqlite/index.d.ts +0 -3
- package/dist/types/repositories/sqlite/types.d.ts +0 -18
- package/dist/types/repositories/walletRepository.d.ts +0 -72
- package/dist/types/script/address.d.ts +0 -67
- package/dist/types/script/base.d.ts +0 -105
- package/dist/types/script/default.d.ts +0 -44
- package/dist/types/script/delegate.d.ts +0 -40
- package/dist/types/script/tapscript.d.ts +0 -169
- package/dist/types/script/vhtlc.d.ts +0 -66
- package/dist/types/tree/signingSession.d.ts +0 -37
- package/dist/types/tree/txTree.d.ts +0 -28
- package/dist/types/tree/validation.d.ts +0 -15
- package/dist/types/utils/anchor.d.ts +0 -19
- package/dist/types/utils/arkTransaction.d.ts +0 -49
- package/dist/types/utils/bip21.d.ts +0 -38
- package/dist/types/utils/syncCursors.d.ts +0 -60
- package/dist/types/utils/timelock.d.ts +0 -9
- package/dist/types/utils/transaction.d.ts +0 -13
- package/dist/types/utils/transactionHistory.d.ts +0 -15
- package/dist/types/utils/txSizeEstimator.d.ts +0 -40
- package/dist/types/utils/unknownFields.d.ts +0 -83
- package/dist/types/wallet/asset-manager.d.ts +0 -69
- package/dist/types/wallet/asset.d.ts +0 -21
- package/dist/types/wallet/batch.d.ts +0 -107
- package/dist/types/wallet/delegator.d.ts +0 -48
- package/dist/types/wallet/expo/background.d.ts +0 -66
- package/dist/types/wallet/expo/index.d.ts +0 -4
- package/dist/types/wallet/hdDescriptorProvider.d.ts +0 -93
- package/dist/types/wallet/index.d.ts +0 -755
- package/dist/types/wallet/onchain.d.ts +0 -109
- package/dist/types/wallet/ramps.d.ts +0 -64
- package/dist/types/wallet/serviceWorker/wallet-message-handler.d.ts +0 -543
- package/dist/types/wallet/serviceWorker/wallet.d.ts +0 -238
- package/dist/types/wallet/unroll.d.ts +0 -114
- package/dist/types/wallet/utils.d.ts +0 -36
- package/dist/types/wallet/validation.d.ts +0 -24
- package/dist/types/wallet/vtxo-manager.d.ts +0 -476
- package/dist/types/wallet/wallet.d.ts +0 -360
- package/dist/types/worker/browser/service-worker-manager.d.ts +0 -32
- package/dist/types/worker/browser/utils.d.ts +0 -17
- package/dist/types/worker/errors.d.ts +0 -7
- package/dist/types/worker/expo/index.d.ts +0 -7
- package/dist/types/worker/expo/processors/contractPollProcessor.d.ts +0 -19
- package/dist/types/worker/expo/processors/index.d.ts +0 -1
- package/dist/types/worker/expo/taskQueue.d.ts +0 -50
- package/dist/types/worker/expo/taskRunner.d.ts +0 -66
- package/dist/types/worker/messageBus.d.ts +0 -188
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkIPX2R7FR_cjs = require('../../chunk-IPX2R7FR.cjs');
|
|
4
|
+
require('../../chunk-ZLO6NETT.cjs');
|
|
5
|
+
require('../../chunk-ADV27S4N.cjs');
|
|
6
|
+
require('../../chunk-I3DGUUCT.cjs');
|
|
7
|
+
require('../../chunk-5PG7DV7A.cjs');
|
|
8
|
+
require('../../chunk-5BLDMQED.cjs');
|
|
9
|
+
|
|
10
|
+
// src/worker/expo/taskQueue.ts
|
|
11
|
+
var InMemoryTaskQueue = class {
|
|
12
|
+
inbox = /* @__PURE__ */ new Map();
|
|
13
|
+
outbox = /* @__PURE__ */ new Map();
|
|
14
|
+
async addTask(task) {
|
|
15
|
+
this.inbox.set(task.id, task);
|
|
16
|
+
}
|
|
17
|
+
async removeTask(id) {
|
|
18
|
+
this.inbox.delete(id);
|
|
19
|
+
}
|
|
20
|
+
async getTasks(type) {
|
|
21
|
+
const tasks = Array.from(this.inbox.values());
|
|
22
|
+
if (type) {
|
|
23
|
+
return tasks.filter((t) => t.type === type);
|
|
24
|
+
}
|
|
25
|
+
return tasks;
|
|
26
|
+
}
|
|
27
|
+
async clearTasks() {
|
|
28
|
+
this.inbox.clear();
|
|
29
|
+
}
|
|
30
|
+
async pushResult(result) {
|
|
31
|
+
this.outbox.set(result.id, result);
|
|
32
|
+
}
|
|
33
|
+
async getResults() {
|
|
34
|
+
return Array.from(this.outbox.values());
|
|
35
|
+
}
|
|
36
|
+
async acknowledgeResults(ids) {
|
|
37
|
+
for (const id of ids) {
|
|
38
|
+
this.outbox.delete(id);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// src/worker/expo/asyncStorageTaskQueue.ts
|
|
44
|
+
var AsyncStorageTaskQueue = class {
|
|
45
|
+
constructor(storage, prefix = "ark:task-queue") {
|
|
46
|
+
this.storage = storage;
|
|
47
|
+
this.inboxKey = `${prefix}:inbox`;
|
|
48
|
+
this.outboxKey = `${prefix}:outbox`;
|
|
49
|
+
this.configKey = `${prefix}:config`;
|
|
50
|
+
}
|
|
51
|
+
inboxKey;
|
|
52
|
+
outboxKey;
|
|
53
|
+
configKey;
|
|
54
|
+
// ── Inbox ────────────────────────────────────────────────────────
|
|
55
|
+
async addTask(task) {
|
|
56
|
+
const tasks = await this.readList(this.inboxKey);
|
|
57
|
+
tasks.push(task);
|
|
58
|
+
await this.writeList(this.inboxKey, tasks);
|
|
59
|
+
}
|
|
60
|
+
async removeTask(id) {
|
|
61
|
+
const tasks = await this.readList(this.inboxKey);
|
|
62
|
+
await this.writeList(
|
|
63
|
+
this.inboxKey,
|
|
64
|
+
tasks.filter((t) => t.id !== id)
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
async getTasks(type) {
|
|
68
|
+
const tasks = await this.readList(this.inboxKey);
|
|
69
|
+
if (type) {
|
|
70
|
+
return tasks.filter((t) => t.type === type);
|
|
71
|
+
}
|
|
72
|
+
return tasks;
|
|
73
|
+
}
|
|
74
|
+
async clearTasks() {
|
|
75
|
+
await this.storage.removeItem(this.inboxKey);
|
|
76
|
+
}
|
|
77
|
+
// ── Outbox ───────────────────────────────────────────────────────
|
|
78
|
+
async pushResult(result) {
|
|
79
|
+
const results = await this.readList(this.outboxKey);
|
|
80
|
+
results.push(result);
|
|
81
|
+
await this.writeList(this.outboxKey, results);
|
|
82
|
+
}
|
|
83
|
+
async getResults() {
|
|
84
|
+
return this.readList(this.outboxKey);
|
|
85
|
+
}
|
|
86
|
+
async acknowledgeResults(ids) {
|
|
87
|
+
const idSet = new Set(ids);
|
|
88
|
+
const results = await this.readList(this.outboxKey);
|
|
89
|
+
await this.writeList(
|
|
90
|
+
this.outboxKey,
|
|
91
|
+
results.filter((r) => !idSet.has(r.id))
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
// ── Config persistence (for background handler rehydration) ──────
|
|
95
|
+
/**
|
|
96
|
+
* Persist a config blob alongside the queue data.
|
|
97
|
+
* Used by @see ExpoWallet.setup to store the wallet parameters
|
|
98
|
+
* that the background handler needs to reconstruct providers.
|
|
99
|
+
*/
|
|
100
|
+
async persistConfig(config) {
|
|
101
|
+
await this.storage.setItem(this.configKey, JSON.stringify(config));
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Load the persisted config blob.
|
|
105
|
+
* Used by the background handler to rehydrate wallet dependencies.
|
|
106
|
+
*/
|
|
107
|
+
async loadConfig() {
|
|
108
|
+
const raw = await this.storage.getItem(this.configKey);
|
|
109
|
+
return raw ? JSON.parse(raw) : null;
|
|
110
|
+
}
|
|
111
|
+
// ── Helpers ──────────────────────────────────────────────────────
|
|
112
|
+
async readList(key) {
|
|
113
|
+
const raw = await this.storage.getItem(key);
|
|
114
|
+
return raw ? JSON.parse(raw) : [];
|
|
115
|
+
}
|
|
116
|
+
async writeList(key, list) {
|
|
117
|
+
await this.storage.setItem(key, JSON.stringify(list));
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
Object.defineProperty(exports, "CONTRACT_POLL_TASK_TYPE", {
|
|
122
|
+
enumerable: true,
|
|
123
|
+
get: function () { return chunkIPX2R7FR_cjs.CONTRACT_POLL_TASK_TYPE; }
|
|
124
|
+
});
|
|
125
|
+
Object.defineProperty(exports, "contractPollProcessor", {
|
|
126
|
+
enumerable: true,
|
|
127
|
+
get: function () { return chunkIPX2R7FR_cjs.contractPollProcessor; }
|
|
128
|
+
});
|
|
129
|
+
Object.defineProperty(exports, "createTaskDependencies", {
|
|
130
|
+
enumerable: true,
|
|
131
|
+
get: function () { return chunkIPX2R7FR_cjs.createTaskDependencies; }
|
|
132
|
+
});
|
|
133
|
+
Object.defineProperty(exports, "runTasks", {
|
|
134
|
+
enumerable: true,
|
|
135
|
+
get: function () { return chunkIPX2R7FR_cjs.runTasks; }
|
|
136
|
+
});
|
|
137
|
+
exports.AsyncStorageTaskQueue = AsyncStorageTaskQueue;
|
|
138
|
+
exports.InMemoryTaskQueue = InMemoryTaskQueue;
|
|
139
|
+
//# sourceMappingURL=index.cjs.map
|
|
140
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/worker/expo/taskQueue.ts","../../../src/worker/expo/asyncStorageTaskQueue.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * A task item represents a unit of work in the inbox.\n */\nexport interface TaskItem {\n id: string;\n type: string;\n data: Record<string, unknown>;\n createdAt: number;\n}\n\n/**\n * A task result represents the outcome of processing a task item.\n */\nexport interface TaskResult {\n id: string;\n taskItemId: string;\n type: string;\n status: \"success\" | \"failed\" | \"noop\";\n data?: Record<string, unknown>;\n executedAt: number;\n}\n\n/**\n * Persistence layer for handing off work between foreground and background.\n *\n * - **Inbox**: tasks waiting to be processed.\n * - **Outbox**: results produced by processors, waiting to be consumed.\n */\nexport interface TaskQueue {\n // Inbox\n addTask(task: TaskItem): Promise<void>;\n removeTask(id: string): Promise<void>;\n getTasks(type?: string): Promise<TaskItem[]>;\n clearTasks(): Promise<void>;\n\n // Outbox\n pushResult(result: TaskResult): Promise<void>;\n getResults(): Promise<TaskResult[]>;\n acknowledgeResults(ids: string[]): Promise<void>;\n}\n\n/**\n * In-memory TaskQueue for testing and lightweight use.\n * State is lost when the process exits.\n */\nexport class InMemoryTaskQueue implements TaskQueue {\n private inbox = new Map<string, TaskItem>();\n private outbox = new Map<string, TaskResult>();\n\n async addTask(task: TaskItem): Promise<void> {\n this.inbox.set(task.id, task);\n }\n\n async removeTask(id: string): Promise<void> {\n this.inbox.delete(id);\n }\n\n async getTasks(type?: string): Promise<TaskItem[]> {\n const tasks = Array.from(this.inbox.values());\n if (type) {\n return tasks.filter((t) => t.type === type);\n }\n return tasks;\n }\n\n async clearTasks(): Promise<void> {\n this.inbox.clear();\n }\n\n async pushResult(result: TaskResult): Promise<void> {\n this.outbox.set(result.id, result);\n }\n\n async getResults(): Promise<TaskResult[]> {\n return Array.from(this.outbox.values());\n }\n\n async acknowledgeResults(ids: string[]): Promise<void> {\n for (const id of ids) {\n this.outbox.delete(id);\n }\n }\n}\n","import type { TaskItem, TaskResult, TaskQueue } from \"./taskQueue\";\n\n/**\n * Minimal async key-value storage interface.\n *\n * Compatible with `@react-native-async-storage/async-storage` and\n * any other storage that exposes the same three methods.\n */\nexport interface AsyncStorageLike {\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n/**\n * AsyncStorage-backed TaskQueue for Expo/React Native.\n *\n * Persists inbox, outbox, and an optional config blob to AsyncStorage\n * so that data survives process restarts and can be shared between\n * foreground and background execution contexts.\n */\nexport class AsyncStorageTaskQueue implements TaskQueue {\n private readonly inboxKey: string;\n private readonly outboxKey: string;\n private readonly configKey: string;\n\n constructor(\n private readonly storage: AsyncStorageLike,\n prefix = \"ark:task-queue\",\n ) {\n this.inboxKey = `${prefix}:inbox`;\n this.outboxKey = `${prefix}:outbox`;\n this.configKey = `${prefix}:config`;\n }\n\n // ── Inbox ────────────────────────────────────────────────────────\n\n async addTask(task: TaskItem): Promise<void> {\n const tasks = await this.readList<TaskItem>(this.inboxKey);\n tasks.push(task);\n await this.writeList(this.inboxKey, tasks);\n }\n\n async removeTask(id: string): Promise<void> {\n const tasks = await this.readList<TaskItem>(this.inboxKey);\n await this.writeList(\n this.inboxKey,\n tasks.filter((t) => t.id !== id),\n );\n }\n\n async getTasks(type?: string): Promise<TaskItem[]> {\n const tasks = await this.readList<TaskItem>(this.inboxKey);\n if (type) {\n return tasks.filter((t) => t.type === type);\n }\n return tasks;\n }\n\n async clearTasks(): Promise<void> {\n await this.storage.removeItem(this.inboxKey);\n }\n\n // ── Outbox ───────────────────────────────────────────────────────\n\n async pushResult(result: TaskResult): Promise<void> {\n const results = await this.readList<TaskResult>(this.outboxKey);\n results.push(result);\n await this.writeList(this.outboxKey, results);\n }\n\n async getResults(): Promise<TaskResult[]> {\n return this.readList<TaskResult>(this.outboxKey);\n }\n\n async acknowledgeResults(ids: string[]): Promise<void> {\n const idSet = new Set(ids);\n const results = await this.readList<TaskResult>(this.outboxKey);\n await this.writeList(\n this.outboxKey,\n results.filter((r) => !idSet.has(r.id)),\n );\n }\n\n // ── Config persistence (for background handler rehydration) ──────\n\n /**\n * Persist a config blob alongside the queue data.\n * Used by @see ExpoWallet.setup to store the wallet parameters\n * that the background handler needs to reconstruct providers.\n */\n async persistConfig(config: Record<string, unknown> | object): Promise<void> {\n await this.storage.setItem(this.configKey, JSON.stringify(config));\n }\n\n /**\n * Load the persisted config blob.\n * Used by the background handler to rehydrate wallet dependencies.\n */\n async loadConfig<T = Record<string, unknown>>(): Promise<T | null> {\n const raw = await this.storage.getItem(this.configKey);\n return raw ? JSON.parse(raw) : null;\n }\n\n // ── Helpers ──────────────────────────────────────────────────────\n\n private async readList<T>(key: string): Promise<T[]> {\n const raw = await this.storage.getItem(key);\n return raw ? JSON.parse(raw) : [];\n }\n\n private async writeList<T>(key: string, list: T[]): Promise<void> {\n await this.storage.setItem(key, JSON.stringify(list));\n }\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { T as TaskProcessor } from '../../taskRunner-C6Ff4OaU.cjs';
|
|
2
|
+
export { C as CreateTaskDependenciesOptions, I as InMemoryTaskQueue, a as TaskDependencies, b as TaskItem, c as TaskQueue, d as TaskResult, e as createTaskDependencies, r as runTasks } from '../../taskRunner-C6Ff4OaU.cjs';
|
|
3
|
+
export { A as AsyncStorageLike, a as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-EFqSmYTg.cjs';
|
|
4
|
+
import '../../ark-TZ1gXAXU.cjs';
|
|
5
|
+
import '@scure/btc-signer/transaction.js';
|
|
6
|
+
import '@scure/btc-signer/utils.js';
|
|
7
|
+
import '@scure/btc-signer/psbt.js';
|
|
8
|
+
import '@scure/btc-signer';
|
|
9
|
+
|
|
10
|
+
declare const CONTRACT_POLL_TASK_TYPE = "contract-poll";
|
|
11
|
+
/**
|
|
12
|
+
* Polls the indexer for the latest VTXO state of every contract and
|
|
13
|
+
* persists the results to the wallet repository.
|
|
14
|
+
*
|
|
15
|
+
* Replicates the polling subset of @see ContractManager.initialize:
|
|
16
|
+
* 1. Load all contracts from the contract repository.
|
|
17
|
+
* 2. Paginated fetch of every VTXO (including spent) from the indexer.
|
|
18
|
+
* 3. Extend each VTXO with tapscript data.
|
|
19
|
+
* 4. Save to the wallet repository.
|
|
20
|
+
*
|
|
21
|
+
* NOTE: the indexer query deliberately omits `spendableOnly`. Every
|
|
22
|
+
* repository implements `saveVtxos` as an upsert with no batch delete,
|
|
23
|
+
* so filtering to spendable-only would leave VTXOs that became spent
|
|
24
|
+
* between polls marked as spendable forever. Fetching the full set lets
|
|
25
|
+
* the upsert overwrite stale records with their latest state.
|
|
26
|
+
*/
|
|
27
|
+
declare const contractPollProcessor: TaskProcessor;
|
|
28
|
+
|
|
29
|
+
export { CONTRACT_POLL_TASK_TYPE, TaskProcessor, contractPollProcessor };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { T as TaskProcessor } from '../../taskRunner-yvPN8Z0K.js';
|
|
2
|
+
export { C as CreateTaskDependenciesOptions, I as InMemoryTaskQueue, a as TaskDependencies, b as TaskItem, c as TaskQueue, d as TaskResult, e as createTaskDependencies, r as runTasks } from '../../taskRunner-yvPN8Z0K.js';
|
|
3
|
+
export { A as AsyncStorageLike, a as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-Cb1F_Z9s.js';
|
|
4
|
+
import '../../ark-TZ1gXAXU.js';
|
|
5
|
+
import '@scure/btc-signer/transaction.js';
|
|
6
|
+
import '@scure/btc-signer/utils.js';
|
|
7
|
+
import '@scure/btc-signer/psbt.js';
|
|
8
|
+
import '@scure/btc-signer';
|
|
9
|
+
|
|
10
|
+
declare const CONTRACT_POLL_TASK_TYPE = "contract-poll";
|
|
11
|
+
/**
|
|
12
|
+
* Polls the indexer for the latest VTXO state of every contract and
|
|
13
|
+
* persists the results to the wallet repository.
|
|
14
|
+
*
|
|
15
|
+
* Replicates the polling subset of @see ContractManager.initialize:
|
|
16
|
+
* 1. Load all contracts from the contract repository.
|
|
17
|
+
* 2. Paginated fetch of every VTXO (including spent) from the indexer.
|
|
18
|
+
* 3. Extend each VTXO with tapscript data.
|
|
19
|
+
* 4. Save to the wallet repository.
|
|
20
|
+
*
|
|
21
|
+
* NOTE: the indexer query deliberately omits `spendableOnly`. Every
|
|
22
|
+
* repository implements `saveVtxos` as an upsert with no batch delete,
|
|
23
|
+
* so filtering to spendable-only would leave VTXOs that became spent
|
|
24
|
+
* between polls marked as spendable forever. Fetching the full set lets
|
|
25
|
+
* the upsert overwrite stale records with their latest state.
|
|
26
|
+
*/
|
|
27
|
+
declare const contractPollProcessor: TaskProcessor;
|
|
28
|
+
|
|
29
|
+
export { CONTRACT_POLL_TASK_TYPE, TaskProcessor, contractPollProcessor };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
export { CONTRACT_POLL_TASK_TYPE, contractPollProcessor, createTaskDependencies, runTasks } from '../../chunk-A3EMF7RN.js';
|
|
2
|
+
import '../../chunk-BQLHADL7.js';
|
|
3
|
+
import '../../chunk-ZBUDLTBO.js';
|
|
4
|
+
import '../../chunk-T64LAI7L.js';
|
|
5
|
+
import '../../chunk-HW3JJ323.js';
|
|
6
|
+
import '../../chunk-NSBPE2FW.js';
|
|
7
|
+
|
|
8
|
+
// src/worker/expo/taskQueue.ts
|
|
9
|
+
var InMemoryTaskQueue = class {
|
|
10
|
+
inbox = /* @__PURE__ */ new Map();
|
|
11
|
+
outbox = /* @__PURE__ */ new Map();
|
|
12
|
+
async addTask(task) {
|
|
13
|
+
this.inbox.set(task.id, task);
|
|
14
|
+
}
|
|
15
|
+
async removeTask(id) {
|
|
16
|
+
this.inbox.delete(id);
|
|
17
|
+
}
|
|
18
|
+
async getTasks(type) {
|
|
19
|
+
const tasks = Array.from(this.inbox.values());
|
|
20
|
+
if (type) {
|
|
21
|
+
return tasks.filter((t) => t.type === type);
|
|
22
|
+
}
|
|
23
|
+
return tasks;
|
|
24
|
+
}
|
|
25
|
+
async clearTasks() {
|
|
26
|
+
this.inbox.clear();
|
|
27
|
+
}
|
|
28
|
+
async pushResult(result) {
|
|
29
|
+
this.outbox.set(result.id, result);
|
|
30
|
+
}
|
|
31
|
+
async getResults() {
|
|
32
|
+
return Array.from(this.outbox.values());
|
|
33
|
+
}
|
|
34
|
+
async acknowledgeResults(ids) {
|
|
35
|
+
for (const id of ids) {
|
|
36
|
+
this.outbox.delete(id);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// src/worker/expo/asyncStorageTaskQueue.ts
|
|
42
|
+
var AsyncStorageTaskQueue = class {
|
|
43
|
+
constructor(storage, prefix = "ark:task-queue") {
|
|
44
|
+
this.storage = storage;
|
|
45
|
+
this.inboxKey = `${prefix}:inbox`;
|
|
46
|
+
this.outboxKey = `${prefix}:outbox`;
|
|
47
|
+
this.configKey = `${prefix}:config`;
|
|
48
|
+
}
|
|
49
|
+
inboxKey;
|
|
50
|
+
outboxKey;
|
|
51
|
+
configKey;
|
|
52
|
+
// ── Inbox ────────────────────────────────────────────────────────
|
|
53
|
+
async addTask(task) {
|
|
54
|
+
const tasks = await this.readList(this.inboxKey);
|
|
55
|
+
tasks.push(task);
|
|
56
|
+
await this.writeList(this.inboxKey, tasks);
|
|
57
|
+
}
|
|
58
|
+
async removeTask(id) {
|
|
59
|
+
const tasks = await this.readList(this.inboxKey);
|
|
60
|
+
await this.writeList(
|
|
61
|
+
this.inboxKey,
|
|
62
|
+
tasks.filter((t) => t.id !== id)
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
async getTasks(type) {
|
|
66
|
+
const tasks = await this.readList(this.inboxKey);
|
|
67
|
+
if (type) {
|
|
68
|
+
return tasks.filter((t) => t.type === type);
|
|
69
|
+
}
|
|
70
|
+
return tasks;
|
|
71
|
+
}
|
|
72
|
+
async clearTasks() {
|
|
73
|
+
await this.storage.removeItem(this.inboxKey);
|
|
74
|
+
}
|
|
75
|
+
// ── Outbox ───────────────────────────────────────────────────────
|
|
76
|
+
async pushResult(result) {
|
|
77
|
+
const results = await this.readList(this.outboxKey);
|
|
78
|
+
results.push(result);
|
|
79
|
+
await this.writeList(this.outboxKey, results);
|
|
80
|
+
}
|
|
81
|
+
async getResults() {
|
|
82
|
+
return this.readList(this.outboxKey);
|
|
83
|
+
}
|
|
84
|
+
async acknowledgeResults(ids) {
|
|
85
|
+
const idSet = new Set(ids);
|
|
86
|
+
const results = await this.readList(this.outboxKey);
|
|
87
|
+
await this.writeList(
|
|
88
|
+
this.outboxKey,
|
|
89
|
+
results.filter((r) => !idSet.has(r.id))
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
// ── Config persistence (for background handler rehydration) ──────
|
|
93
|
+
/**
|
|
94
|
+
* Persist a config blob alongside the queue data.
|
|
95
|
+
* Used by @see ExpoWallet.setup to store the wallet parameters
|
|
96
|
+
* that the background handler needs to reconstruct providers.
|
|
97
|
+
*/
|
|
98
|
+
async persistConfig(config) {
|
|
99
|
+
await this.storage.setItem(this.configKey, JSON.stringify(config));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Load the persisted config blob.
|
|
103
|
+
* Used by the background handler to rehydrate wallet dependencies.
|
|
104
|
+
*/
|
|
105
|
+
async loadConfig() {
|
|
106
|
+
const raw = await this.storage.getItem(this.configKey);
|
|
107
|
+
return raw ? JSON.parse(raw) : null;
|
|
108
|
+
}
|
|
109
|
+
// ── Helpers ──────────────────────────────────────────────────────
|
|
110
|
+
async readList(key) {
|
|
111
|
+
const raw = await this.storage.getItem(key);
|
|
112
|
+
return raw ? JSON.parse(raw) : [];
|
|
113
|
+
}
|
|
114
|
+
async writeList(key, list) {
|
|
115
|
+
await this.storage.setItem(key, JSON.stringify(list));
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export { AsyncStorageTaskQueue, InMemoryTaskQueue };
|
|
120
|
+
//# sourceMappingURL=index.js.map
|
|
121
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/worker/expo/taskQueue.ts","../../../src/worker/expo/asyncStorageTaskQueue.ts"],"names":[],"mappings":";;;;;;;;AA6CO,IAAM,oBAAN,MAA6C;AAAA,EACxC,KAAA,uBAAY,GAAA,EAAsB;AAAA,EAClC,MAAA,uBAAa,GAAA,EAAwB;AAAA,EAE7C,MAAM,QAAQ,IAAA,EAA+B;AACzC,IAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,IAAA,CAAK,EAAA,EAAI,IAAI,CAAA;AAAA,EAChC;AAAA,EAEA,MAAM,WAAW,EAAA,EAA2B;AACxC,IAAA,IAAA,CAAK,KAAA,CAAM,OAAO,EAAE,CAAA;AAAA,EACxB;AAAA,EAEA,MAAM,SAAS,IAAA,EAAoC;AAC/C,IAAA,MAAM,QAAQ,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA;AAC5C,IAAA,IAAI,IAAA,EAAM;AACN,MAAA,OAAO,MAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,IAAI,CAAA;AAAA,IAC9C;AACA,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EAEA,MAAM,UAAA,GAA4B;AAC9B,IAAA,IAAA,CAAK,MAAM,KAAA,EAAM;AAAA,EACrB;AAAA,EAEA,MAAM,WAAW,MAAA,EAAmC;AAChD,IAAA,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,MAAA,CAAO,EAAA,EAAI,MAAM,CAAA;AAAA,EACrC;AAAA,EAEA,MAAM,UAAA,GAAoC;AACtC,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,QAAQ,CAAA;AAAA,EAC1C;AAAA,EAEA,MAAM,mBAAmB,GAAA,EAA8B;AACnD,IAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AAClB,MAAA,IAAA,CAAK,MAAA,CAAO,OAAO,EAAE,CAAA;AAAA,IACzB;AAAA,EACJ;AACJ;;;AC7DO,IAAM,wBAAN,MAAiD;AAAA,EAKpD,WAAA,CACqB,OAAA,EACjB,MAAA,GAAS,gBAAA,EACX;AAFmB,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAGjB,IAAA,IAAA,CAAK,QAAA,GAAW,GAAG,MAAM,CAAA,MAAA,CAAA;AACzB,IAAA,IAAA,CAAK,SAAA,GAAY,GAAG,MAAM,CAAA,OAAA,CAAA;AAC1B,IAAA,IAAA,CAAK,SAAA,GAAY,GAAG,MAAM,CAAA,OAAA,CAAA;AAAA,EAC9B;AAAA,EAXiB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA;AAAA,EAajB,MAAM,QAAQ,IAAA,EAA+B;AACzC,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,QAAA,CAAmB,KAAK,QAAQ,CAAA;AACzD,IAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AACf,IAAA,MAAM,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA;AAAA,EAC7C;AAAA,EAEA,MAAM,WAAW,EAAA,EAA2B;AACxC,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,QAAA,CAAmB,KAAK,QAAQ,CAAA;AACzD,IAAA,MAAM,IAAA,CAAK,SAAA;AAAA,MACP,IAAA,CAAK,QAAA;AAAA,MACL,MAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE;AAAA,KACnC;AAAA,EACJ;AAAA,EAEA,MAAM,SAAS,IAAA,EAAoC;AAC/C,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,QAAA,CAAmB,KAAK,QAAQ,CAAA;AACzD,IAAA,IAAI,IAAA,EAAM;AACN,MAAA,OAAO,MAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,IAAI,CAAA;AAAA,IAC9C;AACA,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EAEA,MAAM,UAAA,GAA4B;AAC9B,IAAA,MAAM,IAAA,CAAK,OAAA,CAAQ,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA;AAAA,EAC/C;AAAA;AAAA,EAIA,MAAM,WAAW,MAAA,EAAmC;AAChD,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,QAAA,CAAqB,KAAK,SAAS,CAAA;AAC9D,IAAA,OAAA,CAAQ,KAAK,MAAM,CAAA;AACnB,IAAA,MAAM,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,SAAA,EAAW,OAAO,CAAA;AAAA,EAChD;AAAA,EAEA,MAAM,UAAA,GAAoC;AACtC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAqB,IAAA,CAAK,SAAS,CAAA;AAAA,EACnD;AAAA,EAEA,MAAM,mBAAmB,GAAA,EAA8B;AACnD,IAAA,MAAM,KAAA,GAAQ,IAAI,GAAA,CAAI,GAAG,CAAA;AACzB,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,QAAA,CAAqB,KAAK,SAAS,CAAA;AAC9D,IAAA,MAAM,IAAA,CAAK,SAAA;AAAA,MACP,IAAA,CAAK,SAAA;AAAA,MACL,OAAA,CAAQ,OAAO,CAAC,CAAA,KAAM,CAAC,KAAA,CAAM,GAAA,CAAI,CAAA,CAAE,EAAE,CAAC;AAAA,KAC1C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cAAc,MAAA,EAAyD;AACzE,IAAA,MAAM,IAAA,CAAK,QAAQ,OAAA,CAAQ,IAAA,CAAK,WAAW,IAAA,CAAK,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,UAAA,GAA6D;AAC/D,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,KAAK,SAAS,CAAA;AACrD,IAAA,OAAO,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,GAAI,IAAA;AAAA,EACnC;AAAA;AAAA,EAIA,MAAc,SAAY,GAAA,EAA2B;AACjD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,OAAA,CAAQ,QAAQ,GAAG,CAAA;AAC1C,IAAA,OAAO,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,GAAG,IAAI,EAAC;AAAA,EACpC;AAAA,EAEA,MAAc,SAAA,CAAa,GAAA,EAAa,IAAA,EAA0B;AAC9D,IAAA,MAAM,KAAK,OAAA,CAAQ,OAAA,CAAQ,KAAK,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,EACxD;AACJ","file":"index.js","sourcesContent":["/**\n * A task item represents a unit of work in the inbox.\n */\nexport interface TaskItem {\n id: string;\n type: string;\n data: Record<string, unknown>;\n createdAt: number;\n}\n\n/**\n * A task result represents the outcome of processing a task item.\n */\nexport interface TaskResult {\n id: string;\n taskItemId: string;\n type: string;\n status: \"success\" | \"failed\" | \"noop\";\n data?: Record<string, unknown>;\n executedAt: number;\n}\n\n/**\n * Persistence layer for handing off work between foreground and background.\n *\n * - **Inbox**: tasks waiting to be processed.\n * - **Outbox**: results produced by processors, waiting to be consumed.\n */\nexport interface TaskQueue {\n // Inbox\n addTask(task: TaskItem): Promise<void>;\n removeTask(id: string): Promise<void>;\n getTasks(type?: string): Promise<TaskItem[]>;\n clearTasks(): Promise<void>;\n\n // Outbox\n pushResult(result: TaskResult): Promise<void>;\n getResults(): Promise<TaskResult[]>;\n acknowledgeResults(ids: string[]): Promise<void>;\n}\n\n/**\n * In-memory TaskQueue for testing and lightweight use.\n * State is lost when the process exits.\n */\nexport class InMemoryTaskQueue implements TaskQueue {\n private inbox = new Map<string, TaskItem>();\n private outbox = new Map<string, TaskResult>();\n\n async addTask(task: TaskItem): Promise<void> {\n this.inbox.set(task.id, task);\n }\n\n async removeTask(id: string): Promise<void> {\n this.inbox.delete(id);\n }\n\n async getTasks(type?: string): Promise<TaskItem[]> {\n const tasks = Array.from(this.inbox.values());\n if (type) {\n return tasks.filter((t) => t.type === type);\n }\n return tasks;\n }\n\n async clearTasks(): Promise<void> {\n this.inbox.clear();\n }\n\n async pushResult(result: TaskResult): Promise<void> {\n this.outbox.set(result.id, result);\n }\n\n async getResults(): Promise<TaskResult[]> {\n return Array.from(this.outbox.values());\n }\n\n async acknowledgeResults(ids: string[]): Promise<void> {\n for (const id of ids) {\n this.outbox.delete(id);\n }\n }\n}\n","import type { TaskItem, TaskResult, TaskQueue } from \"./taskQueue\";\n\n/**\n * Minimal async key-value storage interface.\n *\n * Compatible with `@react-native-async-storage/async-storage` and\n * any other storage that exposes the same three methods.\n */\nexport interface AsyncStorageLike {\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n/**\n * AsyncStorage-backed TaskQueue for Expo/React Native.\n *\n * Persists inbox, outbox, and an optional config blob to AsyncStorage\n * so that data survives process restarts and can be shared between\n * foreground and background execution contexts.\n */\nexport class AsyncStorageTaskQueue implements TaskQueue {\n private readonly inboxKey: string;\n private readonly outboxKey: string;\n private readonly configKey: string;\n\n constructor(\n private readonly storage: AsyncStorageLike,\n prefix = \"ark:task-queue\",\n ) {\n this.inboxKey = `${prefix}:inbox`;\n this.outboxKey = `${prefix}:outbox`;\n this.configKey = `${prefix}:config`;\n }\n\n // ── Inbox ────────────────────────────────────────────────────────\n\n async addTask(task: TaskItem): Promise<void> {\n const tasks = await this.readList<TaskItem>(this.inboxKey);\n tasks.push(task);\n await this.writeList(this.inboxKey, tasks);\n }\n\n async removeTask(id: string): Promise<void> {\n const tasks = await this.readList<TaskItem>(this.inboxKey);\n await this.writeList(\n this.inboxKey,\n tasks.filter((t) => t.id !== id),\n );\n }\n\n async getTasks(type?: string): Promise<TaskItem[]> {\n const tasks = await this.readList<TaskItem>(this.inboxKey);\n if (type) {\n return tasks.filter((t) => t.type === type);\n }\n return tasks;\n }\n\n async clearTasks(): Promise<void> {\n await this.storage.removeItem(this.inboxKey);\n }\n\n // ── Outbox ───────────────────────────────────────────────────────\n\n async pushResult(result: TaskResult): Promise<void> {\n const results = await this.readList<TaskResult>(this.outboxKey);\n results.push(result);\n await this.writeList(this.outboxKey, results);\n }\n\n async getResults(): Promise<TaskResult[]> {\n return this.readList<TaskResult>(this.outboxKey);\n }\n\n async acknowledgeResults(ids: string[]): Promise<void> {\n const idSet = new Set(ids);\n const results = await this.readList<TaskResult>(this.outboxKey);\n await this.writeList(\n this.outboxKey,\n results.filter((r) => !idSet.has(r.id)),\n );\n }\n\n // ── Config persistence (for background handler rehydration) ──────\n\n /**\n * Persist a config blob alongside the queue data.\n * Used by @see ExpoWallet.setup to store the wallet parameters\n * that the background handler needs to reconstruct providers.\n */\n async persistConfig(config: Record<string, unknown> | object): Promise<void> {\n await this.storage.setItem(this.configKey, JSON.stringify(config));\n }\n\n /**\n * Load the persisted config blob.\n * Used by the background handler to rehydrate wallet dependencies.\n */\n async loadConfig<T = Record<string, unknown>>(): Promise<T | null> {\n const raw = await this.storage.getItem(this.configKey);\n return raw ? JSON.parse(raw) : null;\n }\n\n // ── Helpers ──────────────────────────────────────────────────────\n\n private async readList<T>(key: string): Promise<T[]> {\n const raw = await this.storage.getItem(key);\n return raw ? JSON.parse(raw) : [];\n }\n\n private async writeList<T>(key: string, list: T[]): Promise<void> {\n await this.storage.setItem(key, JSON.stringify(list));\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,75 +1,129 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arkade-os/sdk",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.28",
|
|
4
4
|
"description": "TypeScript SDK for building Bitcoin wallets using the Arkade protocol",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./dist/
|
|
7
|
-
"module": "./dist/
|
|
8
|
-
"types": "./dist/
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
9
|
"sideEffects": [
|
|
10
|
-
"
|
|
11
|
-
"
|
|
10
|
+
"src/index.ts",
|
|
11
|
+
"src/contracts/handlers/index.ts",
|
|
12
|
+
"dist/index.js",
|
|
13
|
+
"dist/index.cjs",
|
|
14
|
+
"dist/contracts/handlers/index.js",
|
|
15
|
+
"dist/contracts/handlers/index.cjs"
|
|
12
16
|
],
|
|
13
17
|
"exports": {
|
|
14
18
|
".": {
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
"import": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"default": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"require": {
|
|
24
|
+
"types": "./dist/index.d.cts",
|
|
25
|
+
"default": "./dist/index.cjs"
|
|
26
|
+
}
|
|
19
27
|
},
|
|
20
28
|
"./adapters/expo": {
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
"import": {
|
|
30
|
+
"types": "./dist/adapters/expo.d.ts",
|
|
31
|
+
"default": "./dist/adapters/expo.js"
|
|
32
|
+
},
|
|
33
|
+
"require": {
|
|
34
|
+
"types": "./dist/adapters/expo.d.cts",
|
|
35
|
+
"default": "./dist/adapters/expo.cjs"
|
|
36
|
+
}
|
|
25
37
|
},
|
|
26
38
|
"./adapters/localStorage": {
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
"import": {
|
|
40
|
+
"types": "./dist/adapters/localStorage.d.ts",
|
|
41
|
+
"default": "./dist/adapters/localStorage.js"
|
|
42
|
+
},
|
|
43
|
+
"require": {
|
|
44
|
+
"types": "./dist/adapters/localStorage.d.cts",
|
|
45
|
+
"default": "./dist/adapters/localStorage.cjs"
|
|
46
|
+
}
|
|
31
47
|
},
|
|
32
48
|
"./adapters/fileSystem": {
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
"import": {
|
|
50
|
+
"types": "./dist/adapters/fileSystem.d.ts",
|
|
51
|
+
"default": "./dist/adapters/fileSystem.js"
|
|
52
|
+
},
|
|
53
|
+
"require": {
|
|
54
|
+
"types": "./dist/adapters/fileSystem.d.cts",
|
|
55
|
+
"default": "./dist/adapters/fileSystem.cjs"
|
|
56
|
+
}
|
|
37
57
|
},
|
|
38
58
|
"./adapters/indexedDB": {
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
59
|
+
"import": {
|
|
60
|
+
"types": "./dist/adapters/indexedDB.d.ts",
|
|
61
|
+
"default": "./dist/adapters/indexedDB.js"
|
|
62
|
+
},
|
|
63
|
+
"require": {
|
|
64
|
+
"types": "./dist/adapters/indexedDB.d.cts",
|
|
65
|
+
"default": "./dist/adapters/indexedDB.cjs"
|
|
66
|
+
}
|
|
43
67
|
},
|
|
44
68
|
"./adapters/asyncStorage": {
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
69
|
+
"import": {
|
|
70
|
+
"types": "./dist/adapters/asyncStorage.d.ts",
|
|
71
|
+
"default": "./dist/adapters/asyncStorage.js"
|
|
72
|
+
},
|
|
73
|
+
"require": {
|
|
74
|
+
"types": "./dist/adapters/asyncStorage.d.cts",
|
|
75
|
+
"default": "./dist/adapters/asyncStorage.cjs"
|
|
76
|
+
}
|
|
49
77
|
},
|
|
50
78
|
"./repositories/sqlite": {
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
79
|
+
"import": {
|
|
80
|
+
"types": "./dist/repositories/sqlite/index.d.ts",
|
|
81
|
+
"default": "./dist/repositories/sqlite/index.js"
|
|
82
|
+
},
|
|
83
|
+
"require": {
|
|
84
|
+
"types": "./dist/repositories/sqlite/index.d.cts",
|
|
85
|
+
"default": "./dist/repositories/sqlite/index.cjs"
|
|
86
|
+
}
|
|
55
87
|
},
|
|
56
88
|
"./repositories/realm": {
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
89
|
+
"import": {
|
|
90
|
+
"types": "./dist/repositories/realm/index.d.ts",
|
|
91
|
+
"default": "./dist/repositories/realm/index.js"
|
|
92
|
+
},
|
|
93
|
+
"require": {
|
|
94
|
+
"types": "./dist/repositories/realm/index.d.cts",
|
|
95
|
+
"default": "./dist/repositories/realm/index.cjs"
|
|
96
|
+
}
|
|
61
97
|
},
|
|
62
98
|
"./worker/expo": {
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
99
|
+
"import": {
|
|
100
|
+
"types": "./dist/worker/expo/index.d.ts",
|
|
101
|
+
"default": "./dist/worker/expo/index.js"
|
|
102
|
+
},
|
|
103
|
+
"require": {
|
|
104
|
+
"types": "./dist/worker/expo/index.d.cts",
|
|
105
|
+
"default": "./dist/worker/expo/index.cjs"
|
|
106
|
+
}
|
|
67
107
|
},
|
|
68
108
|
"./wallet/expo": {
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
109
|
+
"import": {
|
|
110
|
+
"types": "./dist/wallet/expo/index.d.ts",
|
|
111
|
+
"default": "./dist/wallet/expo/index.js"
|
|
112
|
+
},
|
|
113
|
+
"require": {
|
|
114
|
+
"types": "./dist/wallet/expo/index.d.cts",
|
|
115
|
+
"default": "./dist/wallet/expo/index.cjs"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"./wallet/expo/background": {
|
|
119
|
+
"import": {
|
|
120
|
+
"types": "./dist/wallet/expo/background.d.ts",
|
|
121
|
+
"default": "./dist/wallet/expo/background.js"
|
|
122
|
+
},
|
|
123
|
+
"require": {
|
|
124
|
+
"types": "./dist/wallet/expo/background.d.cts",
|
|
125
|
+
"default": "./dist/wallet/expo/background.cjs"
|
|
126
|
+
}
|
|
73
127
|
}
|
|
74
128
|
},
|
|
75
129
|
"files": [
|
|
@@ -79,6 +133,9 @@
|
|
|
79
133
|
"access": "public",
|
|
80
134
|
"registry": "https://registry.npmjs.org/"
|
|
81
135
|
},
|
|
136
|
+
"engines": {
|
|
137
|
+
"node": ">=22.12.0 <25"
|
|
138
|
+
},
|
|
82
139
|
"dependencies": {
|
|
83
140
|
"@bitcoinerlab/descriptors-scure": "3.1.7",
|
|
84
141
|
"@marcbachmann/cel-js": "7.3.1",
|
|
@@ -92,19 +149,9 @@
|
|
|
92
149
|
},
|
|
93
150
|
"devDependencies": {
|
|
94
151
|
"@types/better-sqlite3": "7.6.13",
|
|
95
|
-
"@types/node": "24.3.1",
|
|
96
152
|
"@vitest/coverage-v8": "3.2.4",
|
|
97
153
|
"better-sqlite3": "12.6.2",
|
|
98
|
-
"
|
|
99
|
-
"eventsource": "4.0.0",
|
|
100
|
-
"glob": "11.1.0",
|
|
101
|
-
"husky": "9.1.7",
|
|
102
|
-
"indexeddbshim": "16.1.0",
|
|
103
|
-
"prettier": "3.6.2",
|
|
104
|
-
"rimraf": "^6.1.2",
|
|
105
|
-
"typedoc": "^0.28.16",
|
|
106
|
-
"typescript": "5.9.2",
|
|
107
|
-
"vitest": "3.2.4"
|
|
154
|
+
"typedoc": "^0.28.16"
|
|
108
155
|
},
|
|
109
156
|
"peerDependencies": {
|
|
110
157
|
"@react-native-async-storage/async-storage": ">=1.0.0",
|
|
@@ -148,22 +195,12 @@
|
|
|
148
195
|
],
|
|
149
196
|
"author": "Ark Labs",
|
|
150
197
|
"license": "MIT",
|
|
151
|
-
"engines": {
|
|
152
|
-
"node": ">=22.12.0 <23",
|
|
153
|
-
"pnpm": ">=10.25.0 <11"
|
|
154
|
-
},
|
|
155
198
|
"scripts": {
|
|
156
|
-
"build": "
|
|
157
|
-
"
|
|
158
|
-
"
|
|
159
|
-
"build
|
|
160
|
-
"
|
|
161
|
-
"build:expo:esm": "pnpm run build:expo:check || exit 0; tsc -p tsconfig.expo.json --outDir dist/esm",
|
|
162
|
-
"build:expo:cjs": "pnpm run build:expo:check || exit 0; tsc -p tsconfig.expo.json --module commonjs --outDir dist/cjs",
|
|
163
|
-
"build:expo:types": "pnpm run build:expo:check || exit 0; tsc -p tsconfig.expo.json --outDir dist/types --declaration --emitDeclarationOnly",
|
|
164
|
-
"build:browser": "node scripts/build-browser.js",
|
|
165
|
-
"docs:build": "pnpm run build:types && pnpm typedoc",
|
|
166
|
-
"docs:open": "open ./docs/index.html",
|
|
199
|
+
"build": "tsup",
|
|
200
|
+
"smoke:dist": "node scripts/smoke-dist.mjs",
|
|
201
|
+
"typecheck": "tsc --noEmit",
|
|
202
|
+
"docs:build": "pnpm run typecheck && pnpm typedoc",
|
|
203
|
+
"docs:open": "open ../../docs/index.html",
|
|
167
204
|
"test": "vitest run",
|
|
168
205
|
"test:master": "ARK_ENV=master vitest run",
|
|
169
206
|
"test:unit": "vitest run --exclude test/e2e",
|
|
@@ -179,9 +216,6 @@
|
|
|
179
216
|
"test:coverage": "vitest run --coverage",
|
|
180
217
|
"format": "prettier --write src test examples",
|
|
181
218
|
"lint": "prettier --check src test examples",
|
|
182
|
-
"audit": "pnpm audit"
|
|
183
|
-
"release": "bash scripts/release.sh",
|
|
184
|
-
"release:dry-run": "bash scripts/release.sh --dry-run",
|
|
185
|
-
"release:cleanup": "bash scripts/release.sh --cleanup"
|
|
219
|
+
"audit": "pnpm audit"
|
|
186
220
|
}
|
|
187
221
|
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AsyncStorageAdapter = void 0;
|
|
4
|
-
var asyncStorage_1 = require("../storage/asyncStorage");
|
|
5
|
-
Object.defineProperty(exports, "AsyncStorageAdapter", { enumerable: true, get: function () { return asyncStorage_1.AsyncStorageAdapter; } });
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExpoIndexerProvider = exports.ExpoArkProvider = void 0;
|
|
4
|
-
// Expo adapter for React Native/Expo environments
|
|
5
|
-
var expoArk_1 = require("../providers/expoArk");
|
|
6
|
-
Object.defineProperty(exports, "ExpoArkProvider", { enumerable: true, get: function () { return expoArk_1.ExpoArkProvider; } });
|
|
7
|
-
var expoIndexer_1 = require("../providers/expoIndexer");
|
|
8
|
-
Object.defineProperty(exports, "ExpoIndexerProvider", { enumerable: true, get: function () { return expoIndexer_1.ExpoIndexerProvider; } });
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FileSystemStorageAdapter = void 0;
|
|
4
|
-
var fileSystem_1 = require("../storage/fileSystem");
|
|
5
|
-
Object.defineProperty(exports, "FileSystemStorageAdapter", { enumerable: true, get: function () { return fileSystem_1.FileSystemStorageAdapter; } });
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IndexedDBStorageAdapter = void 0;
|
|
4
|
-
var indexedDB_1 = require("../storage/indexedDB");
|
|
5
|
-
Object.defineProperty(exports, "IndexedDBStorageAdapter", { enumerable: true, get: function () { return indexedDB_1.IndexedDBStorageAdapter; } });
|