@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,476 +0,0 @@
|
|
|
1
|
-
import { ExtendedCoin, ExtendedVirtualCoin, IWallet } from "./index.js";
|
|
2
|
-
import { SettlementEvent } from "../providers/ark.js";
|
|
3
|
-
/** Default renewal threshold in seconds (3 days). */
|
|
4
|
-
export declare const DEFAULT_THRESHOLD_SECONDS: number;
|
|
5
|
-
/**
|
|
6
|
-
* Default renewal threshold in milliseconds (3 days).
|
|
7
|
-
*/
|
|
8
|
-
export declare const DEFAULT_THRESHOLD_MS: number;
|
|
9
|
-
/**
|
|
10
|
-
* Configuration options for automatic virtual output renewal
|
|
11
|
-
*
|
|
12
|
-
* @see DEFAULT_RENEWAL_CONFIG
|
|
13
|
-
* @deprecated Leave `renewalConfig` undefined and use `settlementConfig` instead.
|
|
14
|
-
* @see SettlementConfig
|
|
15
|
-
*/
|
|
16
|
-
export interface RenewalConfig {
|
|
17
|
-
/**
|
|
18
|
-
* Enable automatic renewal monitoring
|
|
19
|
-
*
|
|
20
|
-
* @defaultValue `false`
|
|
21
|
-
* @deprecated Explicitly set `settlementConfig` to `false` to disable VTXO renewal.
|
|
22
|
-
*/
|
|
23
|
-
enabled?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Threshold in milliseconds to use as threshold for renewal
|
|
26
|
-
* E.g., 86_400_000 means renew when 24 hours until expiry remains
|
|
27
|
-
*
|
|
28
|
-
* @defaultValue `259_200_000` (3 days).
|
|
29
|
-
* @deprecated Use `SettlementConfig.vtxoThreshold` (in seconds) instead.
|
|
30
|
-
*/
|
|
31
|
-
thresholdMs?: number;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Configuration for automatic settlement and renewal.
|
|
35
|
-
*
|
|
36
|
-
* Controls two behaviors:
|
|
37
|
-
* 1. **VTXO renewal**: Automatically renew virtual outputs that are close to expiry
|
|
38
|
-
* 2. **Boarding UTXO sweep**: Sweep expired boarding inputs back to a fresh boarding address
|
|
39
|
-
* via the unilateral exit path (onchain self-spend to restart the timelock)
|
|
40
|
-
*
|
|
41
|
-
* Enabled by default when no config is provided.
|
|
42
|
-
* Pass `false` to explicitly disable all settlement behavior.
|
|
43
|
-
*
|
|
44
|
-
* @remarks
|
|
45
|
-
* VTXO renewal and boarding UTXO sweep are both coordinated by `VtxoManager`, which periodically
|
|
46
|
-
* inspects wallet virtual outputs and boarding inputs and decides whether action is needed.
|
|
47
|
-
*
|
|
48
|
-
* @see DEFAULT_SETTLEMENT_CONFIG
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* ```typescript
|
|
52
|
-
* // Default behavior: virtual output renewal at 3 days, boarding sweep enabled, polling every minute
|
|
53
|
-
* const wallet = await Wallet.create({
|
|
54
|
-
* identity: MnemonicIdentity.fromMnemonic('abandon abandon...'),
|
|
55
|
-
* arkServerUrl: 'https://arkade.computer',
|
|
56
|
-
* });
|
|
57
|
-
*
|
|
58
|
-
* // Custom expiry threshold of 24 hours
|
|
59
|
-
* const wallet = await Wallet.create({
|
|
60
|
-
* identity: MnemonicIdentity.fromMnemonic('abandon abandon...'),
|
|
61
|
-
* arkServerUrl: 'https://arkade.computer',
|
|
62
|
-
* settlementConfig: {
|
|
63
|
-
* vtxoThreshold: 60 * 60 * 24, // 24 hours in seconds
|
|
64
|
-
* },
|
|
65
|
-
* });
|
|
66
|
-
*
|
|
67
|
-
* // Explicitly disable
|
|
68
|
-
* const wallet = await Wallet.create({
|
|
69
|
-
* identity: MnemonicIdentity.fromMnemonic('abandon abandon...'),
|
|
70
|
-
* arkServerUrl: 'https://arkade.computer',
|
|
71
|
-
* settlementConfig: false,
|
|
72
|
-
* });
|
|
73
|
-
* ```
|
|
74
|
-
*/
|
|
75
|
-
export interface SettlementConfig {
|
|
76
|
-
/**
|
|
77
|
-
* Seconds before virtual output expiry to trigger renewal.
|
|
78
|
-
*
|
|
79
|
-
* @defaultValue `259_200` (3 days)
|
|
80
|
-
*/
|
|
81
|
-
vtxoThreshold?: number;
|
|
82
|
-
/**
|
|
83
|
-
* Sweep expired boarding inputs back to a fresh boarding address
|
|
84
|
-
* via the unilateral exit path (onchain self-spend to restart the timelock).
|
|
85
|
-
*
|
|
86
|
-
* When enabled, expired boarding inputs are batched into a single onchain
|
|
87
|
-
* transaction with multiple inputs and one output.
|
|
88
|
-
*
|
|
89
|
-
* A dust check ensures the sweep is only performed when the output
|
|
90
|
-
* after fees is above dust.
|
|
91
|
-
*
|
|
92
|
-
* @defaultValue `true`
|
|
93
|
-
*/
|
|
94
|
-
boardingUtxoSweep?: boolean;
|
|
95
|
-
/**
|
|
96
|
-
* Polling interval in milliseconds for checking boarding inputs.
|
|
97
|
-
* The poll loop auto-settles new boarding inputs into Arkade and
|
|
98
|
-
* sweeps expired ones (when boardingUtxoSweep is enabled).
|
|
99
|
-
*
|
|
100
|
-
* @defaultValue `60_000` (1 minute)
|
|
101
|
-
*/
|
|
102
|
-
pollIntervalMs?: number;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Default renewal configuration values.
|
|
106
|
-
*
|
|
107
|
-
* @see RenewalConfig
|
|
108
|
-
* @deprecated Leave `renewalConfig` undefined and use `settlementConfig` instead.
|
|
109
|
-
* @see SettlementConfig
|
|
110
|
-
*/
|
|
111
|
-
export declare const DEFAULT_RENEWAL_CONFIG: Required<Omit<RenewalConfig, "enabled">>;
|
|
112
|
-
/**
|
|
113
|
-
* Default settlement configuration values.
|
|
114
|
-
*
|
|
115
|
-
* @see SettlementConfig
|
|
116
|
-
*
|
|
117
|
-
* @example
|
|
118
|
-
* ```typescript
|
|
119
|
-
* const wallet = await Wallet.create({
|
|
120
|
-
* identity,
|
|
121
|
-
* arkServerUrl: 'https://arkade.computer',
|
|
122
|
-
* settlementConfig: DEFAULT_SETTLEMENT_CONFIG,
|
|
123
|
-
* })
|
|
124
|
-
* ```
|
|
125
|
-
*/
|
|
126
|
-
export declare const DEFAULT_SETTLEMENT_CONFIG: Required<SettlementConfig>;
|
|
127
|
-
/**
|
|
128
|
-
* Check if a virtual output is expiring soon based on threshold
|
|
129
|
-
*
|
|
130
|
-
* @param vtxo - The virtual output to check
|
|
131
|
-
* @param thresholdMs - Threshold in milliseconds from now
|
|
132
|
-
* @returns true if virtual output expires within threshold, false otherwise
|
|
133
|
-
*/
|
|
134
|
-
export declare function isVtxoExpiringSoon(vtxo: ExtendedVirtualCoin, thresholdMs: number): boolean;
|
|
135
|
-
/**
|
|
136
|
-
* Filter virtual outputs that are expiring soon or are recoverable/subdust
|
|
137
|
-
*
|
|
138
|
-
* @param vtxos - Array of virtual outputs to check
|
|
139
|
-
* @param thresholdMs - Threshold in milliseconds from now
|
|
140
|
-
* @param dustAmount - Dust threshold amount in satoshis
|
|
141
|
-
* @returns Array of virtual outputs expiring within threshold
|
|
142
|
-
*/
|
|
143
|
-
export declare function getExpiringAndRecoverableVtxos(vtxos: ExtendedVirtualCoin[], thresholdMs: number, dustAmount: bigint): ExtendedVirtualCoin[];
|
|
144
|
-
/**
|
|
145
|
-
* VtxoManager is a unified class for managing virtual output lifecycle operations including
|
|
146
|
-
* recovery of swept/expired virtual outputs and renewal to prevent expiration.
|
|
147
|
-
*
|
|
148
|
-
* Key Features:
|
|
149
|
-
* - **Recovery**: Reclaim swept or expired virtual outputs back to the wallet
|
|
150
|
-
* - **Renewal**: Refresh virtual output expiration time before they expire
|
|
151
|
-
* - **Smart subdust handling**: Automatically includes subdust virtual outputs when economically viable
|
|
152
|
-
* - **Expiry monitoring**: Check for virtual outputs that are expiring soon
|
|
153
|
-
*
|
|
154
|
-
* Virtual outputs become recoverable when:
|
|
155
|
-
* - The Arkade server sweeps them (virtualStatus.state === "swept") and they remain spendable
|
|
156
|
-
* - They are preconfirmed subdust (to consolidate small amounts without locking liquidity on settled virtual outputs)
|
|
157
|
-
*
|
|
158
|
-
* @example
|
|
159
|
-
* ```typescript
|
|
160
|
-
* const wallet = await Wallet.create({
|
|
161
|
-
* identity,
|
|
162
|
-
* arkServerUrl: 'https://arkade.computer',
|
|
163
|
-
* settlementConfig: {
|
|
164
|
-
* // Seconds before virtual output expiry to trigger renewal
|
|
165
|
-
* vtxoThreshold: 259_200, // 3 days
|
|
166
|
-
* // Whether to sweep expired boarding inputs back to a fresh boarding address
|
|
167
|
-
* boardingUtxoSweep: true,
|
|
168
|
-
* // Polling interval in milliseconds for checking boarding inputs
|
|
169
|
-
* pollIntervalMs: 60_000 // 1 minute
|
|
170
|
-
* },
|
|
171
|
-
* });
|
|
172
|
-
* const manager = await wallet.getVtxoManager();
|
|
173
|
-
*
|
|
174
|
-
* // Check recoverable balance
|
|
175
|
-
* const balance = await manager.getRecoverableBalance();
|
|
176
|
-
* if (balance.recoverable > 0n) {
|
|
177
|
-
* console.log(`Can recover ${balance.recoverable} sats`);
|
|
178
|
-
* const txid = await manager.recoverVtxos();
|
|
179
|
-
* }
|
|
180
|
-
*
|
|
181
|
-
* // Check for expiring virtual outputs
|
|
182
|
-
* const expiring = await manager.getExpiringVtxos();
|
|
183
|
-
* if (expiring.length > 0) {
|
|
184
|
-
* console.log(`${expiring.length} virtual outputs expiring soon`);
|
|
185
|
-
* const txid = await manager.renewVtxos();
|
|
186
|
-
* }
|
|
187
|
-
* ```
|
|
188
|
-
*/
|
|
189
|
-
export interface IVtxoManager {
|
|
190
|
-
recoverVtxos(eventCallback?: (event: SettlementEvent) => void): Promise<string>;
|
|
191
|
-
getRecoverableBalance(): Promise<{
|
|
192
|
-
recoverable: bigint;
|
|
193
|
-
subdust: bigint;
|
|
194
|
-
includesSubdust: boolean;
|
|
195
|
-
vtxoCount: number;
|
|
196
|
-
}>;
|
|
197
|
-
getExpiringVtxos(thresholdMs?: number): Promise<ExtendedVirtualCoin[]>;
|
|
198
|
-
renewVtxos(eventCallback?: (event: SettlementEvent) => void): Promise<string>;
|
|
199
|
-
getExpiredBoardingUtxos(): Promise<ExtendedCoin[]>;
|
|
200
|
-
sweepExpiredBoardingUtxos(): Promise<string>;
|
|
201
|
-
dispose(): Promise<void>;
|
|
202
|
-
}
|
|
203
|
-
export declare class VtxoManager implements AsyncDisposable, IVtxoManager {
|
|
204
|
-
readonly wallet: IWallet;
|
|
205
|
-
/** @deprecated Use settlementConfig instead */
|
|
206
|
-
readonly renewalConfig?: RenewalConfig | undefined;
|
|
207
|
-
readonly settlementConfig: SettlementConfig | false;
|
|
208
|
-
private contractEventsSubscription?;
|
|
209
|
-
private readonly contractEventsSubscriptionReady;
|
|
210
|
-
private disposePromise?;
|
|
211
|
-
private pollTimeoutId?;
|
|
212
|
-
private knownBoardingUtxos;
|
|
213
|
-
private sweptBoardingUtxos;
|
|
214
|
-
private pollInProgress;
|
|
215
|
-
private pollDone?;
|
|
216
|
-
private disposed;
|
|
217
|
-
private consecutivePollFailures;
|
|
218
|
-
private startupPollTimeoutId?;
|
|
219
|
-
private static readonly MAX_BACKOFF_MS;
|
|
220
|
-
private renewalInProgress;
|
|
221
|
-
private lastRenewalTimestamp;
|
|
222
|
-
private static readonly RENEWAL_COOLDOWN_MS;
|
|
223
|
-
private lastPeriodicSettleTimestamp;
|
|
224
|
-
private consecutivePeriodicSettleFailures;
|
|
225
|
-
private static readonly PERIODIC_SETTLE_COOLDOWN_MS;
|
|
226
|
-
private static readonly PERIODIC_SETTLE_MAX_BACKOFF_MS;
|
|
227
|
-
private lastVtxoSpentRefreshTimestamp;
|
|
228
|
-
private vtxoSpentRefreshPromise?;
|
|
229
|
-
private static readonly VTXO_SPENT_REFRESH_COOLDOWN_MS;
|
|
230
|
-
constructor(wallet: IWallet,
|
|
231
|
-
/** @deprecated Use settlementConfig instead */
|
|
232
|
-
renewalConfig?: RenewalConfig | undefined, settlementConfig?: SettlementConfig | false);
|
|
233
|
-
/**
|
|
234
|
-
* Recover swept/expired virtual outputs by settling them back to the wallet's Arkade address.
|
|
235
|
-
*
|
|
236
|
-
* This method:
|
|
237
|
-
* 1. Fetches all virtual outputs (including recoverable ones)
|
|
238
|
-
* 2. Filters for swept but still spendable virtual outputs and preconfirmed subdust
|
|
239
|
-
* 3. Includes subdust virtual outputs if the total value >= dust threshold
|
|
240
|
-
* 4. Settles everything back to the wallet's Arkade address
|
|
241
|
-
*
|
|
242
|
-
* Note: Settled virtual outputs with long expiry are NOT recovered to avoid locking liquidity unnecessarily.
|
|
243
|
-
* Only preconfirmed subdust is recovered to consolidate small amounts.
|
|
244
|
-
*
|
|
245
|
-
* @param eventCallback - Optional callback to receive settlement events
|
|
246
|
-
* @returns Settlement transaction ID
|
|
247
|
-
* @throws Error if no recoverable virtual outputs found
|
|
248
|
-
*
|
|
249
|
-
* @example
|
|
250
|
-
* ```typescript
|
|
251
|
-
* const manager = await wallet.getVtxoManager();
|
|
252
|
-
*
|
|
253
|
-
* // Simple recovery
|
|
254
|
-
* const txid = await manager.recoverVtxos();
|
|
255
|
-
*
|
|
256
|
-
* // With event callback
|
|
257
|
-
* const txid = await manager.recoverVtxos((event) => {
|
|
258
|
-
* console.log('Settlement event:', event.type);
|
|
259
|
-
* });
|
|
260
|
-
* ```
|
|
261
|
-
*/
|
|
262
|
-
recoverVtxos(eventCallback?: (event: SettlementEvent) => void): Promise<string>;
|
|
263
|
-
/**
|
|
264
|
-
* Get information about recoverable balance without executing recovery.
|
|
265
|
-
*
|
|
266
|
-
* Useful for displaying to users before they decide to recover funds.
|
|
267
|
-
*
|
|
268
|
-
* @returns Object containing recoverable amounts and subdust information
|
|
269
|
-
*
|
|
270
|
-
* @example
|
|
271
|
-
* ```typescript
|
|
272
|
-
* const manager = await wallet.getVtxoManager();
|
|
273
|
-
* const balance = await manager.getRecoverableBalance();
|
|
274
|
-
*
|
|
275
|
-
* if (balance.recoverable > 0n) {
|
|
276
|
-
* console.log(`You can recover ${balance.recoverable} sats`);
|
|
277
|
-
* if (balance.includesSubdust) {
|
|
278
|
-
* console.log(`This includes ${balance.subdust} sats from subdust virtual outputs`);
|
|
279
|
-
* }
|
|
280
|
-
* }
|
|
281
|
-
* ```
|
|
282
|
-
*/
|
|
283
|
-
getRecoverableBalance(): Promise<{
|
|
284
|
-
recoverable: bigint;
|
|
285
|
-
subdust: bigint;
|
|
286
|
-
includesSubdust: boolean;
|
|
287
|
-
vtxoCount: number;
|
|
288
|
-
}>;
|
|
289
|
-
/**
|
|
290
|
-
* Get virtual outputs that are expiring soon based on renewal configuration
|
|
291
|
-
*
|
|
292
|
-
* @param thresholdMs - Optional override for threshold in milliseconds
|
|
293
|
-
* @returns Array of expiring virtual outputs, empty array if renewal is disabled or no virtual outputs expiring
|
|
294
|
-
*
|
|
295
|
-
* @example
|
|
296
|
-
* ```typescript
|
|
297
|
-
* const wallet = await Wallet.create({
|
|
298
|
-
* identity,
|
|
299
|
-
* arkServerUrl: 'https://arkade.computer',
|
|
300
|
-
* settlementConfig: {
|
|
301
|
-
* vtxoThreshold: 86_400 // 24 hours
|
|
302
|
-
* },
|
|
303
|
-
* });
|
|
304
|
-
* const manager = await wallet.getVtxoManager();
|
|
305
|
-
* const expiringVtxos = await manager.getExpiringVtxos();
|
|
306
|
-
* if (expiringVtxos.length > 0) {
|
|
307
|
-
* console.log(`${expiringVtxos.length} virtual outputs expiring soon`);
|
|
308
|
-
* }
|
|
309
|
-
* ```
|
|
310
|
-
*/
|
|
311
|
-
getExpiringVtxos(thresholdMs?: number): Promise<ExtendedVirtualCoin[]>;
|
|
312
|
-
/**
|
|
313
|
-
* Renew expiring virtual outputs by settling them back to the wallet's address
|
|
314
|
-
*
|
|
315
|
-
* This method collects all expiring spendable virtual outputs (including recoverable ones) and settles
|
|
316
|
-
* them back to the wallet, effectively refreshing their expiration time. This is the
|
|
317
|
-
* primary way to prevent virtual outputs from expiring.
|
|
318
|
-
*
|
|
319
|
-
* @param eventCallback - Optional callback for settlement events
|
|
320
|
-
* @returns Settlement transaction ID
|
|
321
|
-
* @throws Error if no virtual outputs available to renew
|
|
322
|
-
* @throws Error if total amount is below dust threshold
|
|
323
|
-
*
|
|
324
|
-
* @example
|
|
325
|
-
* ```typescript
|
|
326
|
-
* const manager = await wallet.getVtxoManager();
|
|
327
|
-
*
|
|
328
|
-
* // Simple renewal
|
|
329
|
-
* const txid = await manager.renewVtxos();
|
|
330
|
-
*
|
|
331
|
-
* // With event callback
|
|
332
|
-
* const txid = await manager.renewVtxos((event) => {
|
|
333
|
-
* console.log('Settlement event:', event.type);
|
|
334
|
-
* });
|
|
335
|
-
* ```
|
|
336
|
-
*/
|
|
337
|
-
renewVtxos(eventCallback?: (event: SettlementEvent) => void): Promise<string>;
|
|
338
|
-
/**
|
|
339
|
-
* Get boarding inputs whose timelock has expired.
|
|
340
|
-
*
|
|
341
|
-
* These inputs can no longer be onboarded cooperatively via `settle()` and
|
|
342
|
-
* must be swept back to a fresh boarding address using the unilateral exit path.
|
|
343
|
-
*
|
|
344
|
-
* @returns Array of expired boarding inputs
|
|
345
|
-
*
|
|
346
|
-
* @example
|
|
347
|
-
* ```typescript
|
|
348
|
-
* const manager = await wallet.getVtxoManager();
|
|
349
|
-
* const expired = await manager.getExpiredBoardingUtxos();
|
|
350
|
-
* if (expired.length > 0) {
|
|
351
|
-
* console.log(`${expired.length} expired boarding inputs to sweep`);
|
|
352
|
-
* }
|
|
353
|
-
* ```
|
|
354
|
-
*/
|
|
355
|
-
getExpiredBoardingUtxos(prefetchedUtxos?: ExtendedCoin[]): Promise<ExtendedCoin[]>;
|
|
356
|
-
/**
|
|
357
|
-
* Sweep expired boarding inputs back to a fresh boarding address via
|
|
358
|
-
* the unilateral exit path (onchain self-spend).
|
|
359
|
-
*
|
|
360
|
-
* This builds a raw onchain transaction that:
|
|
361
|
-
* - Uses all expired boarding inputs as inputs (spent via the CSV exit script path)
|
|
362
|
-
* - Has a single output to the wallet's boarding address (restarts the timelock)
|
|
363
|
-
* - Batches multiple expired boarding inputs into one transaction
|
|
364
|
-
* - Skips the sweep if the output after fees would be below dust
|
|
365
|
-
*
|
|
366
|
-
* No Arkade server involvement is needed — this is a pure onchain transaction.
|
|
367
|
-
*
|
|
368
|
-
* @returns The broadcast transaction ID
|
|
369
|
-
* @throws Error if no expired boarding inputs are found
|
|
370
|
-
* @throws Error if output after fees is below dust (not economical to sweep)
|
|
371
|
-
* @throws Error if boarding input sweep is not enabled in settlementConfig
|
|
372
|
-
*
|
|
373
|
-
* @example
|
|
374
|
-
* ```typescript
|
|
375
|
-
* const wallet = await Wallet.create({
|
|
376
|
-
* identity,
|
|
377
|
-
* arkServerUrl: 'https://arkade.computer',
|
|
378
|
-
* settlementConfig: {
|
|
379
|
-
* boardingUtxoSweep: true,
|
|
380
|
-
* },
|
|
381
|
-
* });
|
|
382
|
-
* const manager = await wallet.getVtxoManager();
|
|
383
|
-
*
|
|
384
|
-
* try {
|
|
385
|
-
* const txid = await manager.sweepExpiredBoardingUtxos();
|
|
386
|
-
* console.log('Swept expired boarding inputs:', txid);
|
|
387
|
-
* } catch (e) {
|
|
388
|
-
* console.log('No sweep needed or not economical');
|
|
389
|
-
* }
|
|
390
|
-
* ```
|
|
391
|
-
*/
|
|
392
|
-
sweepExpiredBoardingUtxos(prefetchedUtxos?: ExtendedCoin[]): Promise<string>;
|
|
393
|
-
/** Asserts sweep capability and returns the typed wallet. */
|
|
394
|
-
private getSweepWallet;
|
|
395
|
-
/** Decodes the boarding tapscript exit path to extract the CSV timelock. */
|
|
396
|
-
private getBoardingTimelock;
|
|
397
|
-
/** Returns the TapLeafScript for the boarding tapscript's exit (CSV) path. */
|
|
398
|
-
private getBoardingExitLeaf;
|
|
399
|
-
/** Returns the pkScript (output script) of the boarding tapscript. */
|
|
400
|
-
private getBoardingOutputScript;
|
|
401
|
-
/** Returns the onchain provider for fee estimation and broadcasting. */
|
|
402
|
-
private getOnchainProvider;
|
|
403
|
-
/** Returns the Ark provider for intent fee and server info lookups. */
|
|
404
|
-
private getArkProvider;
|
|
405
|
-
/** Returns the Bitcoin network configuration from the wallet. */
|
|
406
|
-
private getNetwork;
|
|
407
|
-
/** Returns the wallet's identity for transaction signing. */
|
|
408
|
-
private getIdentity;
|
|
409
|
-
private initializeSubscription;
|
|
410
|
-
/**
|
|
411
|
-
* VTXO_ALREADY_SPENT means the server's authoritative view of VTXO state
|
|
412
|
-
* is ahead of ours — cross-instance race, pre-lock snapshot drift, or an
|
|
413
|
-
* SSE gap left stale data in the local cache. Silent-swallowing
|
|
414
|
-
* guarantees the same error on the next cycle because nothing
|
|
415
|
-
* reconciles the cache.
|
|
416
|
-
*
|
|
417
|
-
* The cursor-derived delta sync filters by `created_at`, so a VTXO that
|
|
418
|
-
* was created before the cursor but spent recently can never be
|
|
419
|
-
* reconciled by `refreshVtxos()`. Use `refreshOutpoints` for surgical
|
|
420
|
-
* recovery: query the indexer for the specific stale outpoint and
|
|
421
|
-
* upsert its authoritative state into the wallet repository.
|
|
422
|
-
*
|
|
423
|
-
* Throttled because the same VTXO can fire repeatedly before the
|
|
424
|
-
* upsert observably propagates through the renewal selector.
|
|
425
|
-
*/
|
|
426
|
-
private maybeRefreshAfterVtxoSpent;
|
|
427
|
-
/**
|
|
428
|
-
* Extract the offending VTXO outpoint from a `VTXO_ALREADY_SPENT` error,
|
|
429
|
-
* if the server attached one in `metadata.vtxo_outpoint`. Returns
|
|
430
|
-
* `undefined` when the error isn't a parsed ArkError, isn't this code,
|
|
431
|
-
* or doesn't carry the metadata.
|
|
432
|
-
*/
|
|
433
|
-
private extractSpentOutpoint;
|
|
434
|
-
/**
|
|
435
|
-
* Reconcile the chosen VTXOs with the indexer's authoritative state
|
|
436
|
-
* before submitting a settle intent. Pulls the canonical record for
|
|
437
|
-
* each candidate outpoint via {@link IContractManager.refreshOutpoints}
|
|
438
|
-
* (which upserts the result into the wallet repository), then
|
|
439
|
-
* re-selects through the standard expiring-vtxo filter so anything
|
|
440
|
-
* the refresh flagged as spent is dropped.
|
|
441
|
-
*
|
|
442
|
-
* Best-effort: a failed refresh just falls back to the original
|
|
443
|
-
* candidates and lets the post-submit `VTXO_ALREADY_SPENT` recovery
|
|
444
|
-
* handle whatever slipped through.
|
|
445
|
-
*/
|
|
446
|
-
private revalidateBeforeSettle;
|
|
447
|
-
/** Computes the next poll delay, applying exponential backoff on failures. */
|
|
448
|
-
private getNextPollDelay;
|
|
449
|
-
/**
|
|
450
|
-
* Starts a polling loop that:
|
|
451
|
-
* 1. Auto-settles new boarding inputs into Arkade
|
|
452
|
-
* 2. Sweeps expired boarding inputs (when boardingUtxoSweep is enabled)
|
|
453
|
-
*
|
|
454
|
-
* Uses setTimeout chaining (not setInterval) so a slow/blocked poll
|
|
455
|
-
* cannot stack up and the next delay can incorporate backoff.
|
|
456
|
-
*/
|
|
457
|
-
private startBoardingUtxoPoll;
|
|
458
|
-
private schedulePoll;
|
|
459
|
-
private pollBoardingUtxos;
|
|
460
|
-
/**
|
|
461
|
-
* Auto-settle new (unexpired) boarding inputs AND near-expiry VTXOs into
|
|
462
|
-
* Arkade in a single intent. Skips boarding UTXOs that are already expired
|
|
463
|
-
* (those are handled by sweep) and those already in-flight (tracked in
|
|
464
|
-
* knownBoardingUtxos). If the event-driven renewal path is currently
|
|
465
|
-
* running, VTXOs are omitted from this cycle to avoid double-spending.
|
|
466
|
-
*
|
|
467
|
-
* Failure bookkeeping: after every settle *attempt*, lastPeriodicSettleTimestamp
|
|
468
|
-
* is armed and consecutive failures are counted so the next attempt is
|
|
469
|
-
* blocked by an exponentially growing cooldown (capped). This stops a
|
|
470
|
-
* persistently failing input from producing identical RegisterIntent +
|
|
471
|
-
* DeleteIntent retries on every 60s poll.
|
|
472
|
-
*/
|
|
473
|
-
private runPeriodicSettle;
|
|
474
|
-
dispose(): Promise<void>;
|
|
475
|
-
[Symbol.asyncDispose](): Promise<void>;
|
|
476
|
-
}
|