@arkade-os/sdk 0.4.27 → 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 +31 -100
- 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 -649
- 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 -20
- package/dist/cjs/identity/index.js +0 -40
- package/dist/cjs/identity/seedIdentity.js +0 -477
- 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 -202
- 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 -308
- 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 -188
- package/dist/cjs/wallet/index.js +0 -82
- package/dist/cjs/wallet/inputSignerRouter.js +0 -98
- 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 -1174
- package/dist/cjs/wallet/signingErrors.js +0 -32
- package/dist/cjs/wallet/unroll.js +0 -293
- 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 -2195
- package/dist/cjs/wallet/walletReceiveRotator.js +0 -547
- 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 -474
- 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 -645
- 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 -17
- package/dist/esm/identity/index.js +0 -13
- package/dist/esm/identity/seedIdentity.js +0 -469
- 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 -303
- 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 -184
- package/dist/esm/wallet/index.js +0 -75
- package/dist/esm/wallet/inputSignerRouter.js +0 -94
- 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 -1169
- package/dist/esm/wallet/signingErrors.js +0 -27
- package/dist/esm/wallet/unroll.js +0 -289
- 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 -2186
- package/dist/esm/wallet/walletReceiveRotator.js +0 -540
- 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 -470
- 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 -411
- 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 -250
- 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 -42
- package/dist/types/identity/hdCapableIdentity.d.ts +0 -71
- package/dist/types/identity/index.d.ts +0 -57
- package/dist/types/identity/seedIdentity.d.ts +0 -270
- 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 -114
- package/dist/types/wallet/index.d.ts +0 -789
- package/dist/types/wallet/inputSignerRouter.d.ts +0 -35
- 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 -248
- package/dist/types/wallet/signingErrors.d.ts +0 -19
- 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 -409
- package/dist/types/wallet/walletReceiveRotator.d.ts +0 -306
- 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 -189
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
const registrations = new Map();
|
|
2
|
-
let handshakes = new WeakSet();
|
|
3
|
-
function ensureServiceWorkerSupport() {
|
|
4
|
-
if (!("serviceWorker" in navigator)) {
|
|
5
|
-
throw new Error("Service workers are not supported in this browser");
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
function debugLog(debug, ...args) {
|
|
9
|
-
if (debug) {
|
|
10
|
-
// eslint-disable-next-line no-console
|
|
11
|
-
console.debug(...args);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
function normalizeOptions(pathOrOptions) {
|
|
15
|
-
if (typeof pathOrOptions === "string") {
|
|
16
|
-
return {
|
|
17
|
-
path: pathOrOptions,
|
|
18
|
-
updateViaCache: "none",
|
|
19
|
-
autoReload: true,
|
|
20
|
-
debug: false,
|
|
21
|
-
activationTimeoutMs: 10000,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
path: pathOrOptions.path,
|
|
26
|
-
updateViaCache: pathOrOptions.updateViaCache ?? "none",
|
|
27
|
-
autoReload: pathOrOptions.autoReload ?? true,
|
|
28
|
-
onNeedRefresh: pathOrOptions.onNeedRefresh,
|
|
29
|
-
onUpdated: pathOrOptions.onUpdated,
|
|
30
|
-
debug: pathOrOptions.debug ?? false,
|
|
31
|
-
activationTimeoutMs: pathOrOptions.activationTimeoutMs ?? 10000,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function sendSkipWaiting(worker, debug) {
|
|
35
|
-
if (!worker)
|
|
36
|
-
return;
|
|
37
|
-
try {
|
|
38
|
-
worker.postMessage({ type: "SKIP_WAITING" });
|
|
39
|
-
debugLog(debug, "Sent SKIP_WAITING to waiting service worker");
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
console.warn("Failed to post SKIP_WAITING to service worker", error);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function attachUpdateHandlers(registration, options) {
|
|
46
|
-
// Guard: only the first caller per registration attaches handlers.
|
|
47
|
-
// Subsequent calls with different options are silently ignored.
|
|
48
|
-
if (handshakes.has(registration))
|
|
49
|
-
return;
|
|
50
|
-
handshakes.add(registration);
|
|
51
|
-
const { autoReload, onNeedRefresh, onUpdated, activationTimeoutMs, debug } = options;
|
|
52
|
-
let reloadTriggered = false;
|
|
53
|
-
const maybeReload = () => {
|
|
54
|
-
if (reloadTriggered)
|
|
55
|
-
return;
|
|
56
|
-
reloadTriggered = true;
|
|
57
|
-
debugLog(debug, "Service worker controller change detected");
|
|
58
|
-
onUpdated?.();
|
|
59
|
-
if (autoReload &&
|
|
60
|
-
typeof window !== "undefined" &&
|
|
61
|
-
typeof window.location?.reload === "function") {
|
|
62
|
-
window.location.reload();
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
const handleWaiting = (worker) => {
|
|
66
|
-
if (!worker)
|
|
67
|
-
return;
|
|
68
|
-
onNeedRefresh?.();
|
|
69
|
-
sendSkipWaiting(worker, debug);
|
|
70
|
-
if (activationTimeoutMs > 0 && typeof window !== "undefined") {
|
|
71
|
-
window.setTimeout(() => {
|
|
72
|
-
if (registration.waiting) {
|
|
73
|
-
debugLog(debug, "Waiting worker still pending; re-sending SKIP_WAITING");
|
|
74
|
-
sendSkipWaiting(registration.waiting, debug);
|
|
75
|
-
registration
|
|
76
|
-
.update()
|
|
77
|
-
.catch(() => debugLog(debug, "Service worker update retry failed (timeout path)"));
|
|
78
|
-
}
|
|
79
|
-
}, activationTimeoutMs);
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
// Handle an already waiting worker at startup.
|
|
83
|
-
if (registration.waiting) {
|
|
84
|
-
handleWaiting(registration.waiting);
|
|
85
|
-
}
|
|
86
|
-
// Listen for newly installed workers becoming waiting.
|
|
87
|
-
registration.addEventListener("updatefound", () => {
|
|
88
|
-
const installing = registration.installing;
|
|
89
|
-
if (!installing)
|
|
90
|
-
return;
|
|
91
|
-
installing.addEventListener("statechange", () => {
|
|
92
|
-
if (installing.state === "installed") {
|
|
93
|
-
handleWaiting(registration.waiting);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
// Reload (or callback) once the new controller takes over.
|
|
98
|
-
navigator.serviceWorker.addEventListener("controllerchange", maybeReload, {
|
|
99
|
-
once: true,
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
function registerOnce(options) {
|
|
103
|
-
const { path, updateViaCache } = options;
|
|
104
|
-
if (!registrations.has(path)) {
|
|
105
|
-
const registrationPromise = navigator.serviceWorker
|
|
106
|
-
.register(path, { updateViaCache })
|
|
107
|
-
.then(async (registration) => {
|
|
108
|
-
try {
|
|
109
|
-
await registration.update();
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
console.warn("Service worker update failed; continuing with registration", error);
|
|
113
|
-
}
|
|
114
|
-
return registration;
|
|
115
|
-
})
|
|
116
|
-
.catch((error) => {
|
|
117
|
-
// delete failed registration to allow retrials
|
|
118
|
-
registrations.delete(path);
|
|
119
|
-
throw error;
|
|
120
|
-
});
|
|
121
|
-
registrations.set(path, registrationPromise);
|
|
122
|
-
}
|
|
123
|
-
return registrations.get(path).then((registration) => {
|
|
124
|
-
attachUpdateHandlers(registration, options);
|
|
125
|
-
return registration;
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Registers a service worker for the given path only once, attaches an
|
|
130
|
-
* update/activation handshake (SKIP_WAITING + controllerchange reload), and
|
|
131
|
-
* caches the registration promise for subsequent calls.
|
|
132
|
-
*
|
|
133
|
-
* @param pathOrOptions - Service worker script path or a configuration object.
|
|
134
|
-
* @throws if service workers are not supported or registration fails.
|
|
135
|
-
*/
|
|
136
|
-
export async function setupServiceWorkerOnce(pathOrOptions) {
|
|
137
|
-
ensureServiceWorkerSupport();
|
|
138
|
-
const options = normalizeOptions(pathOrOptions);
|
|
139
|
-
return registerOnce(options);
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Returns an active service worker instance, optionally ensuring a specific
|
|
143
|
-
* script path is registered before resolving.
|
|
144
|
-
*
|
|
145
|
-
* @param path - Optional service worker script path to register and prefer.
|
|
146
|
-
* @throws if service workers are not supported or no active worker is available.
|
|
147
|
-
*/
|
|
148
|
-
export async function getActiveServiceWorker(path) {
|
|
149
|
-
ensureServiceWorkerSupport();
|
|
150
|
-
const registration = path
|
|
151
|
-
? await registerOnce(normalizeOptions(path))
|
|
152
|
-
: await navigator.serviceWorker.ready;
|
|
153
|
-
let serviceWorker = registration.active ||
|
|
154
|
-
registration.waiting ||
|
|
155
|
-
registration.installing ||
|
|
156
|
-
navigator.serviceWorker.controller;
|
|
157
|
-
if (!serviceWorker && path) {
|
|
158
|
-
const readyRegistration = await navigator.serviceWorker.ready;
|
|
159
|
-
serviceWorker =
|
|
160
|
-
readyRegistration.active ||
|
|
161
|
-
readyRegistration.waiting ||
|
|
162
|
-
readyRegistration.installing ||
|
|
163
|
-
navigator.serviceWorker.controller;
|
|
164
|
-
}
|
|
165
|
-
if (!serviceWorker) {
|
|
166
|
-
throw new Error("Service worker not ready yet");
|
|
167
|
-
}
|
|
168
|
-
return serviceWorker;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Clears the cached registration promises.
|
|
172
|
-
* Intended for tests to reset state between runs.
|
|
173
|
-
*/
|
|
174
|
-
export const __resetServiceWorkerManager = () => {
|
|
175
|
-
registrations.clear();
|
|
176
|
-
handshakes = new WeakSet();
|
|
177
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_DB_NAME = "arkade-service-worker";
|
|
2
|
-
export const DEFAULT_SERVICE_WORKER_ACTIVATION_TIMEOUT_MS = 10000;
|
|
3
|
-
function normalizeOptions(pathOrOptions) {
|
|
4
|
-
if (typeof pathOrOptions === "string") {
|
|
5
|
-
return {
|
|
6
|
-
path: pathOrOptions,
|
|
7
|
-
activationTimeoutMs: DEFAULT_SERVICE_WORKER_ACTIVATION_TIMEOUT_MS,
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
return {
|
|
11
|
-
path: pathOrOptions.path,
|
|
12
|
-
activationTimeoutMs: pathOrOptions.activationTimeoutMs ??
|
|
13
|
-
DEFAULT_SERVICE_WORKER_ACTIVATION_TIMEOUT_MS,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
function waitForServiceWorkerReady(timeoutMs) {
|
|
17
|
-
return new Promise((resolve, reject) => {
|
|
18
|
-
const timeoutId = setTimeout(() => {
|
|
19
|
-
reject(new Error(`Service worker activation timed out after ${timeoutMs}ms`));
|
|
20
|
-
}, timeoutMs);
|
|
21
|
-
navigator.serviceWorker.ready
|
|
22
|
-
.then((registration) => {
|
|
23
|
-
clearTimeout(timeoutId);
|
|
24
|
-
resolve(registration);
|
|
25
|
-
})
|
|
26
|
-
.catch((error) => {
|
|
27
|
-
clearTimeout(timeoutId);
|
|
28
|
-
reject(error);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* setupServiceWorker sets up the service worker.
|
|
34
|
-
* @param pathOrOptions - the path to the service worker script or setup options
|
|
35
|
-
* @throws if service workers are not supported or activation fails
|
|
36
|
-
* @example
|
|
37
|
-
* ```typescript
|
|
38
|
-
* const worker = await setupServiceWorker("/service-worker.js");
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export async function setupServiceWorker(pathOrOptions) {
|
|
42
|
-
// check if service workers are supported
|
|
43
|
-
if (!("serviceWorker" in navigator)) {
|
|
44
|
-
throw new Error("Service workers are not supported in this browser");
|
|
45
|
-
}
|
|
46
|
-
const { path, activationTimeoutMs } = normalizeOptions(pathOrOptions);
|
|
47
|
-
// register service worker
|
|
48
|
-
const registration = await navigator.serviceWorker.register(path);
|
|
49
|
-
// force update to ensure the service worker is active
|
|
50
|
-
await registration.update();
|
|
51
|
-
const serviceWorker = registration.active || registration.waiting || registration.installing;
|
|
52
|
-
if (!serviceWorker) {
|
|
53
|
-
throw new Error("Failed to get service worker instance");
|
|
54
|
-
}
|
|
55
|
-
if (serviceWorker.state === "activated") {
|
|
56
|
-
return serviceWorker;
|
|
57
|
-
}
|
|
58
|
-
const readyRegistration = await waitForServiceWorkerReady(activationTimeoutMs);
|
|
59
|
-
if (!readyRegistration.active) {
|
|
60
|
-
throw new Error("Service worker registration is ready but has no active worker");
|
|
61
|
-
}
|
|
62
|
-
return readyRegistration.active;
|
|
63
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export const MESSAGE_BUS_NOT_INITIALIZED = "MessageBus not initialized";
|
|
2
|
-
export class MessageBusNotInitializedError extends Error {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(MESSAGE_BUS_NOT_INITIALIZED);
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
export class ServiceWorkerTimeoutError extends Error {
|
|
8
|
-
constructor(detail) {
|
|
9
|
-
super(detail);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AsyncStorage-backed TaskQueue for Expo/React Native.
|
|
3
|
-
*
|
|
4
|
-
* Persists inbox, outbox, and an optional config blob to AsyncStorage
|
|
5
|
-
* so that data survives process restarts and can be shared between
|
|
6
|
-
* foreground and background execution contexts.
|
|
7
|
-
*/
|
|
8
|
-
export class AsyncStorageTaskQueue {
|
|
9
|
-
constructor(storage, prefix = "ark:task-queue") {
|
|
10
|
-
this.storage = storage;
|
|
11
|
-
this.inboxKey = `${prefix}:inbox`;
|
|
12
|
-
this.outboxKey = `${prefix}:outbox`;
|
|
13
|
-
this.configKey = `${prefix}:config`;
|
|
14
|
-
}
|
|
15
|
-
// ── Inbox ────────────────────────────────────────────────────────
|
|
16
|
-
async addTask(task) {
|
|
17
|
-
const tasks = await this.readList(this.inboxKey);
|
|
18
|
-
tasks.push(task);
|
|
19
|
-
await this.writeList(this.inboxKey, tasks);
|
|
20
|
-
}
|
|
21
|
-
async removeTask(id) {
|
|
22
|
-
const tasks = await this.readList(this.inboxKey);
|
|
23
|
-
await this.writeList(this.inboxKey, tasks.filter((t) => t.id !== id));
|
|
24
|
-
}
|
|
25
|
-
async getTasks(type) {
|
|
26
|
-
const tasks = await this.readList(this.inboxKey);
|
|
27
|
-
if (type) {
|
|
28
|
-
return tasks.filter((t) => t.type === type);
|
|
29
|
-
}
|
|
30
|
-
return tasks;
|
|
31
|
-
}
|
|
32
|
-
async clearTasks() {
|
|
33
|
-
await this.storage.removeItem(this.inboxKey);
|
|
34
|
-
}
|
|
35
|
-
// ── Outbox ───────────────────────────────────────────────────────
|
|
36
|
-
async pushResult(result) {
|
|
37
|
-
const results = await this.readList(this.outboxKey);
|
|
38
|
-
results.push(result);
|
|
39
|
-
await this.writeList(this.outboxKey, results);
|
|
40
|
-
}
|
|
41
|
-
async getResults() {
|
|
42
|
-
return this.readList(this.outboxKey);
|
|
43
|
-
}
|
|
44
|
-
async acknowledgeResults(ids) {
|
|
45
|
-
const idSet = new Set(ids);
|
|
46
|
-
const results = await this.readList(this.outboxKey);
|
|
47
|
-
await this.writeList(this.outboxKey, results.filter((r) => !idSet.has(r.id)));
|
|
48
|
-
}
|
|
49
|
-
// ── Config persistence (for background handler rehydration) ──────
|
|
50
|
-
/**
|
|
51
|
-
* Persist a config blob alongside the queue data.
|
|
52
|
-
* Used by @see ExpoWallet.setup to store the wallet parameters
|
|
53
|
-
* that the background handler needs to reconstruct providers.
|
|
54
|
-
*/
|
|
55
|
-
async persistConfig(config) {
|
|
56
|
-
await this.storage.setItem(this.configKey, JSON.stringify(config));
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Load the persisted config blob.
|
|
60
|
-
* Used by the background handler to rehydrate wallet dependencies.
|
|
61
|
-
*/
|
|
62
|
-
async loadConfig() {
|
|
63
|
-
const raw = await this.storage.getItem(this.configKey);
|
|
64
|
-
return raw ? JSON.parse(raw) : null;
|
|
65
|
-
}
|
|
66
|
-
// ── Helpers ──────────────────────────────────────────────────────
|
|
67
|
-
async readList(key) {
|
|
68
|
-
const raw = await this.storage.getItem(key);
|
|
69
|
-
return raw ? JSON.parse(raw) : [];
|
|
70
|
-
}
|
|
71
|
-
async writeList(key, list) {
|
|
72
|
-
await this.storage.setItem(key, JSON.stringify(list));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { InMemoryTaskQueue } from "./taskQueue.js";
|
|
2
|
-
export { AsyncStorageTaskQueue } from "./asyncStorageTaskQueue.js";
|
|
3
|
-
export { runTasks, createTaskDependencies } from "./taskRunner.js";
|
|
4
|
-
export { contractPollProcessor, CONTRACT_POLL_TASK_TYPE } from "./processors/index.js";
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { warnAndFilterVtxosForScript, saveVtxosForContract, } from "../../../contracts/vtxoOwnership.js";
|
|
2
|
-
export const CONTRACT_POLL_TASK_TYPE = "contract-poll";
|
|
3
|
-
/**
|
|
4
|
-
* Polls the indexer for the latest VTXO state of every contract and
|
|
5
|
-
* persists the results to the wallet repository.
|
|
6
|
-
*
|
|
7
|
-
* Replicates the polling subset of @see ContractManager.initialize:
|
|
8
|
-
* 1. Load all contracts from the contract repository.
|
|
9
|
-
* 2. Paginated fetch of every VTXO (including spent) from the indexer.
|
|
10
|
-
* 3. Extend each VTXO with tapscript data.
|
|
11
|
-
* 4. Save to the wallet repository.
|
|
12
|
-
*
|
|
13
|
-
* NOTE: the indexer query deliberately omits `spendableOnly`. Every
|
|
14
|
-
* repository implements `saveVtxos` as an upsert with no batch delete,
|
|
15
|
-
* so filtering to spendable-only would leave VTXOs that became spent
|
|
16
|
-
* between polls marked as spendable forever. Fetching the full set lets
|
|
17
|
-
* the upsert overwrite stale records with their latest state.
|
|
18
|
-
*/
|
|
19
|
-
export const contractPollProcessor = {
|
|
20
|
-
taskType: CONTRACT_POLL_TASK_TYPE,
|
|
21
|
-
async execute(item, deps) {
|
|
22
|
-
const { contractRepository, walletRepository, indexerProvider, extendVtxo, } = deps;
|
|
23
|
-
const contracts = await contractRepository.getContracts();
|
|
24
|
-
let contractsProcessed = 0;
|
|
25
|
-
let vtxosSaved = 0;
|
|
26
|
-
for (const contract of contracts) {
|
|
27
|
-
// Paginated fetch of spendable virtual outputs
|
|
28
|
-
const pageSize = 100;
|
|
29
|
-
let pageIndex = 0;
|
|
30
|
-
let hasMore = true;
|
|
31
|
-
const allVtxos = [];
|
|
32
|
-
while (hasMore) {
|
|
33
|
-
const { vtxos, page } = await indexerProvider.getVtxos({
|
|
34
|
-
scripts: [contract.script],
|
|
35
|
-
pageIndex,
|
|
36
|
-
pageSize,
|
|
37
|
-
});
|
|
38
|
-
for (const vtxo of vtxos) {
|
|
39
|
-
allVtxos.push(extendVtxo(vtxo, contract));
|
|
40
|
-
}
|
|
41
|
-
hasMore = page ? vtxos.length === pageSize : false;
|
|
42
|
-
pageIndex++;
|
|
43
|
-
}
|
|
44
|
-
// Skip wrong-script rows (legacy duplicates or indexer drift)
|
|
45
|
-
// before persisting; the loop must keep going for the remaining
|
|
46
|
-
// contracts even when one row is rejected.
|
|
47
|
-
const filtered = warnAndFilterVtxosForScript(allVtxos, contract.script, "contractPollProcessor");
|
|
48
|
-
await saveVtxosForContract(walletRepository, contract, filtered);
|
|
49
|
-
vtxosSaved += filtered.length;
|
|
50
|
-
contractsProcessed++;
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
taskItemId: item.id,
|
|
54
|
-
type: CONTRACT_POLL_TASK_TYPE,
|
|
55
|
-
status: "success",
|
|
56
|
-
data: { contractsProcessed, vtxosSaved },
|
|
57
|
-
};
|
|
58
|
-
},
|
|
59
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { contractPollProcessor, CONTRACT_POLL_TASK_TYPE, } from "./contractPollProcessor.js";
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-memory TaskQueue for testing and lightweight use.
|
|
3
|
-
* State is lost when the process exits.
|
|
4
|
-
*/
|
|
5
|
-
export class InMemoryTaskQueue {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.inbox = new Map();
|
|
8
|
-
this.outbox = new Map();
|
|
9
|
-
}
|
|
10
|
-
async addTask(task) {
|
|
11
|
-
this.inbox.set(task.id, task);
|
|
12
|
-
}
|
|
13
|
-
async removeTask(id) {
|
|
14
|
-
this.inbox.delete(id);
|
|
15
|
-
}
|
|
16
|
-
async getTasks(type) {
|
|
17
|
-
const tasks = Array.from(this.inbox.values());
|
|
18
|
-
if (type) {
|
|
19
|
-
return tasks.filter((t) => t.type === type);
|
|
20
|
-
}
|
|
21
|
-
return tasks;
|
|
22
|
-
}
|
|
23
|
-
async clearTasks() {
|
|
24
|
-
this.inbox.clear();
|
|
25
|
-
}
|
|
26
|
-
async pushResult(result) {
|
|
27
|
-
this.outbox.set(result.id, result);
|
|
28
|
-
}
|
|
29
|
-
async getResults() {
|
|
30
|
-
return Array.from(this.outbox.values());
|
|
31
|
-
}
|
|
32
|
-
async acknowledgeResults(ids) {
|
|
33
|
-
for (const id of ids) {
|
|
34
|
-
this.outbox.delete(id);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { getRandomId, extendVirtualCoinForContract } from "../../wallet/utils.js";
|
|
2
|
-
/**
|
|
3
|
-
* Run all pending tasks from the queue through matching processors.
|
|
4
|
-
*
|
|
5
|
-
* For each task in the inbox:
|
|
6
|
-
* 1. Find the processor whose `taskType` matches `task.type`.
|
|
7
|
-
* 2. Execute it, producing a @see TaskResult.
|
|
8
|
-
* 3. Push the result to the outbox and remove the task from the inbox.
|
|
9
|
-
*
|
|
10
|
-
* Tasks with no matching processor produce a `"noop"` result.
|
|
11
|
-
* Processor errors produce a `"failed"` result with the error message.
|
|
12
|
-
*/
|
|
13
|
-
export async function runTasks(queue, processors, deps) {
|
|
14
|
-
const tasks = await queue.getTasks();
|
|
15
|
-
const processorMap = new Map(processors.map((p) => [p.taskType, p]));
|
|
16
|
-
const results = [];
|
|
17
|
-
for (const task of tasks) {
|
|
18
|
-
const processor = processorMap.get(task.type);
|
|
19
|
-
let partial;
|
|
20
|
-
if (!processor) {
|
|
21
|
-
partial = {
|
|
22
|
-
taskItemId: task.id,
|
|
23
|
-
type: task.type,
|
|
24
|
-
status: "noop",
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
try {
|
|
29
|
-
partial = await processor.execute(task, deps);
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
partial = {
|
|
33
|
-
taskItemId: task.id,
|
|
34
|
-
type: task.type,
|
|
35
|
-
status: "failed",
|
|
36
|
-
data: {
|
|
37
|
-
error: error instanceof Error
|
|
38
|
-
? error.message
|
|
39
|
-
: String(error),
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
const result = {
|
|
45
|
-
...partial,
|
|
46
|
-
id: getRandomId(),
|
|
47
|
-
executedAt: Date.now(),
|
|
48
|
-
};
|
|
49
|
-
await queue.pushResult(result);
|
|
50
|
-
await queue.removeTask(task.id);
|
|
51
|
-
results.push(result);
|
|
52
|
-
}
|
|
53
|
-
return results;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Build the @see TaskDependencies needed by task processors
|
|
57
|
-
* (e.g. `src/worker/expo/processors/contractPollProcessor.ts`)
|
|
58
|
-
*
|
|
59
|
-
* This is the same construction that `defineExpoBackgroundTask` does
|
|
60
|
-
* internally, extracted so that consumers with custom schedulers
|
|
61
|
-
* (e.g. bare React Native with `react-native-background-fetch`)
|
|
62
|
-
* can build deps without depending on Expo.
|
|
63
|
-
*/
|
|
64
|
-
export function createTaskDependencies(options) {
|
|
65
|
-
return {
|
|
66
|
-
...options,
|
|
67
|
-
extendVtxo: (vtxo, contract) => extendVirtualCoinForContract(vtxo, contract),
|
|
68
|
-
};
|
|
69
|
-
}
|