@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,630 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RestIndexerProvider = exports.ChainTxType = exports.IndexerTxType = void 0;
|
|
4
|
-
const base_1 = require("@scure/base");
|
|
5
|
-
const ark_1 = require("./ark");
|
|
6
|
-
const utils_1 = require("./utils");
|
|
7
|
-
const asset_1 = require("../extension/asset");
|
|
8
|
-
var IndexerTxType;
|
|
9
|
-
(function (IndexerTxType) {
|
|
10
|
-
IndexerTxType[IndexerTxType["INDEXER_TX_TYPE_UNSPECIFIED"] = 0] = "INDEXER_TX_TYPE_UNSPECIFIED";
|
|
11
|
-
IndexerTxType[IndexerTxType["INDEXER_TX_TYPE_RECEIVED"] = 1] = "INDEXER_TX_TYPE_RECEIVED";
|
|
12
|
-
IndexerTxType[IndexerTxType["INDEXER_TX_TYPE_SENT"] = 2] = "INDEXER_TX_TYPE_SENT";
|
|
13
|
-
})(IndexerTxType || (exports.IndexerTxType = IndexerTxType = {}));
|
|
14
|
-
var ChainTxType;
|
|
15
|
-
(function (ChainTxType) {
|
|
16
|
-
ChainTxType["UNSPECIFIED"] = "INDEXER_CHAINED_TX_TYPE_UNSPECIFIED";
|
|
17
|
-
ChainTxType["COMMITMENT"] = "INDEXER_CHAINED_TX_TYPE_COMMITMENT";
|
|
18
|
-
ChainTxType["ARK"] = "INDEXER_CHAINED_TX_TYPE_ARK";
|
|
19
|
-
ChainTxType["TREE"] = "INDEXER_CHAINED_TX_TYPE_TREE";
|
|
20
|
-
ChainTxType["CHECKPOINT"] = "INDEXER_CHAINED_TX_TYPE_CHECKPOINT";
|
|
21
|
-
})(ChainTxType || (exports.ChainTxType = ChainTxType = {}));
|
|
22
|
-
/**
|
|
23
|
-
* REST-based indexer provider implementation.
|
|
24
|
-
* @see https://buf.build/arkade-os/arkd/docs/main:ark.v1#ark.v1.IndexerService
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const provider = new RestIndexerProvider('https://arkade.computer');
|
|
28
|
-
* const commitmentTx = await provider.getCommitmentTx("6686af8f3be3517880821f62e6c3d749b9d6713736a1d8e229a55daa659446b2");
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
class RestIndexerProvider {
|
|
32
|
-
constructor(serverUrl) {
|
|
33
|
-
this.serverUrl = serverUrl;
|
|
34
|
-
}
|
|
35
|
-
async getVtxoTree(batchOutpoint, opts) {
|
|
36
|
-
let url = `${this.serverUrl}/v1/indexer/batch/${batchOutpoint.txid}/${batchOutpoint.vout}/tree`;
|
|
37
|
-
const params = new URLSearchParams();
|
|
38
|
-
if (opts) {
|
|
39
|
-
if (opts.pageIndex !== undefined)
|
|
40
|
-
params.append("page.index", opts.pageIndex.toString());
|
|
41
|
-
if (opts.pageSize !== undefined)
|
|
42
|
-
params.append("page.size", opts.pageSize.toString());
|
|
43
|
-
}
|
|
44
|
-
if (params.toString()) {
|
|
45
|
-
url += "?" + params.toString();
|
|
46
|
-
}
|
|
47
|
-
const res = await fetch(url);
|
|
48
|
-
if (!res.ok) {
|
|
49
|
-
throw new Error(`Failed to fetch vtxo tree: ${res.statusText}`);
|
|
50
|
-
}
|
|
51
|
-
const data = await res.json();
|
|
52
|
-
if (!Response.isVtxoTreeResponse(data)) {
|
|
53
|
-
throw new Error("Invalid vtxo tree data received");
|
|
54
|
-
}
|
|
55
|
-
data.vtxoTree.forEach((tx) => {
|
|
56
|
-
tx.children = Object.fromEntries(Object.entries(tx.children).map(([key, value]) => [
|
|
57
|
-
Number(key),
|
|
58
|
-
value,
|
|
59
|
-
]));
|
|
60
|
-
});
|
|
61
|
-
return data;
|
|
62
|
-
}
|
|
63
|
-
async getVtxoTreeLeaves(batchOutpoint, opts) {
|
|
64
|
-
let url = `${this.serverUrl}/v1/indexer/batch/${batchOutpoint.txid}/${batchOutpoint.vout}/tree/leaves`;
|
|
65
|
-
const params = new URLSearchParams();
|
|
66
|
-
if (opts) {
|
|
67
|
-
if (opts.pageIndex !== undefined)
|
|
68
|
-
params.append("page.index", opts.pageIndex.toString());
|
|
69
|
-
if (opts.pageSize !== undefined)
|
|
70
|
-
params.append("page.size", opts.pageSize.toString());
|
|
71
|
-
}
|
|
72
|
-
if (params.toString()) {
|
|
73
|
-
url += "?" + params.toString();
|
|
74
|
-
}
|
|
75
|
-
const res = await fetch(url);
|
|
76
|
-
if (!res.ok) {
|
|
77
|
-
throw new Error(`Failed to fetch vtxo tree leaves: ${res.statusText}`);
|
|
78
|
-
}
|
|
79
|
-
const data = await res.json();
|
|
80
|
-
if (!Response.isVtxoTreeLeavesResponse(data)) {
|
|
81
|
-
throw new Error("Invalid vtxos tree leaves data received");
|
|
82
|
-
}
|
|
83
|
-
return data;
|
|
84
|
-
}
|
|
85
|
-
async getBatchSweepTransactions(batchOutpoint) {
|
|
86
|
-
const url = `${this.serverUrl}/v1/indexer/batch/${batchOutpoint.txid}/${batchOutpoint.vout}/sweepTxs`;
|
|
87
|
-
const res = await fetch(url);
|
|
88
|
-
if (!res.ok) {
|
|
89
|
-
throw new Error(`Failed to fetch batch sweep transactions: ${res.statusText}`);
|
|
90
|
-
}
|
|
91
|
-
const data = await res.json();
|
|
92
|
-
if (!Response.isBatchSweepTransactionsResponse(data)) {
|
|
93
|
-
throw new Error("Invalid batch sweep transactions data received");
|
|
94
|
-
}
|
|
95
|
-
return data;
|
|
96
|
-
}
|
|
97
|
-
async getCommitmentTx(txid) {
|
|
98
|
-
const url = `${this.serverUrl}/v1/indexer/commitmentTx/${txid}`;
|
|
99
|
-
const res = await fetch(url);
|
|
100
|
-
if (!res.ok) {
|
|
101
|
-
throw new Error(`Failed to fetch commitment tx: ${res.statusText}`);
|
|
102
|
-
}
|
|
103
|
-
const data = await res.json();
|
|
104
|
-
if (!Response.isCommitmentTx(data)) {
|
|
105
|
-
throw new Error("Invalid commitment tx data received");
|
|
106
|
-
}
|
|
107
|
-
return data;
|
|
108
|
-
}
|
|
109
|
-
async getCommitmentTxConnectors(txid, opts) {
|
|
110
|
-
let url = `${this.serverUrl}/v1/indexer/commitmentTx/${txid}/connectors`;
|
|
111
|
-
const params = new URLSearchParams();
|
|
112
|
-
if (opts) {
|
|
113
|
-
if (opts.pageIndex !== undefined)
|
|
114
|
-
params.append("page.index", opts.pageIndex.toString());
|
|
115
|
-
if (opts.pageSize !== undefined)
|
|
116
|
-
params.append("page.size", opts.pageSize.toString());
|
|
117
|
-
}
|
|
118
|
-
if (params.toString()) {
|
|
119
|
-
url += "?" + params.toString();
|
|
120
|
-
}
|
|
121
|
-
const res = await fetch(url);
|
|
122
|
-
if (!res.ok) {
|
|
123
|
-
throw new Error(`Failed to fetch commitment tx connectors: ${res.statusText}`);
|
|
124
|
-
}
|
|
125
|
-
const data = await res.json();
|
|
126
|
-
if (!Response.isConnectorsResponse(data)) {
|
|
127
|
-
throw new Error("Invalid commitment tx connectors data received");
|
|
128
|
-
}
|
|
129
|
-
data.connectors.forEach((tx) => {
|
|
130
|
-
tx.children = Object.fromEntries(Object.entries(tx.children).map(([key, value]) => [
|
|
131
|
-
Number(key),
|
|
132
|
-
value,
|
|
133
|
-
]));
|
|
134
|
-
});
|
|
135
|
-
return data;
|
|
136
|
-
}
|
|
137
|
-
async getCommitmentTxForfeitTxs(txid, opts) {
|
|
138
|
-
let url = `${this.serverUrl}/v1/indexer/commitmentTx/${txid}/forfeitTxs`;
|
|
139
|
-
const params = new URLSearchParams();
|
|
140
|
-
if (opts) {
|
|
141
|
-
if (opts.pageIndex !== undefined)
|
|
142
|
-
params.append("page.index", opts.pageIndex.toString());
|
|
143
|
-
if (opts.pageSize !== undefined)
|
|
144
|
-
params.append("page.size", opts.pageSize.toString());
|
|
145
|
-
}
|
|
146
|
-
if (params.toString()) {
|
|
147
|
-
url += "?" + params.toString();
|
|
148
|
-
}
|
|
149
|
-
const res = await fetch(url);
|
|
150
|
-
if (!res.ok) {
|
|
151
|
-
throw new Error(`Failed to fetch commitment tx forfeitTxs: ${res.statusText}`);
|
|
152
|
-
}
|
|
153
|
-
const data = await res.json();
|
|
154
|
-
if (!Response.isForfeitTxsResponse(data)) {
|
|
155
|
-
throw new Error("Invalid commitment tx forfeitTxs data received");
|
|
156
|
-
}
|
|
157
|
-
return data;
|
|
158
|
-
}
|
|
159
|
-
getSubscription(subscriptionId, abortSignal) {
|
|
160
|
-
const url = `${this.serverUrl}/v1/indexer/script/subscription/${subscriptionId}`;
|
|
161
|
-
let iterator = null;
|
|
162
|
-
const closeIterator = () => iterator?.close();
|
|
163
|
-
const gen = (async function* () {
|
|
164
|
-
const abortHandler = closeIterator;
|
|
165
|
-
abortSignal?.addEventListener("abort", abortHandler);
|
|
166
|
-
try {
|
|
167
|
-
while (!abortSignal?.aborted) {
|
|
168
|
-
try {
|
|
169
|
-
const currentIterator = (0, utils_1.eventSourceIterator)(new EventSource(url));
|
|
170
|
-
iterator = currentIterator;
|
|
171
|
-
for await (const event of currentIterator) {
|
|
172
|
-
if (abortSignal?.aborted)
|
|
173
|
-
break;
|
|
174
|
-
try {
|
|
175
|
-
const data = JSON.parse(event.data);
|
|
176
|
-
if (data.event) {
|
|
177
|
-
yield {
|
|
178
|
-
txid: data.event.txid,
|
|
179
|
-
scripts: data.event.scripts || [],
|
|
180
|
-
newVtxos: (data.event.newVtxos || []).map(convertVtxo),
|
|
181
|
-
spentVtxos: (data.event.spentVtxos || []).map(convertVtxo),
|
|
182
|
-
sweptVtxos: (data.event.sweptVtxos || []).map(convertVtxo),
|
|
183
|
-
tx: data.event.tx,
|
|
184
|
-
checkpointTxs: data.event.checkpointTxs,
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
catch (err) {
|
|
189
|
-
console.error("Failed to parse subscription event:", err);
|
|
190
|
-
throw err;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
if (abortSignal?.aborted ||
|
|
196
|
-
(error instanceof Error &&
|
|
197
|
-
error.name === "AbortError")) {
|
|
198
|
-
break;
|
|
199
|
-
}
|
|
200
|
-
// ignore timeout errors, they're expected when the server is not sending anything for 5 min
|
|
201
|
-
if ((0, ark_1.isFetchTimeoutError)(error)) {
|
|
202
|
-
console.debug("Timeout error ignored");
|
|
203
|
-
continue;
|
|
204
|
-
}
|
|
205
|
-
if ((0, utils_1.isEventSourceError)(error)) {
|
|
206
|
-
throw error;
|
|
207
|
-
}
|
|
208
|
-
console.error("Subscription error:", error);
|
|
209
|
-
throw error;
|
|
210
|
-
}
|
|
211
|
-
finally {
|
|
212
|
-
closeIterator();
|
|
213
|
-
iterator = null;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
finally {
|
|
218
|
-
abortSignal?.removeEventListener("abort", abortHandler);
|
|
219
|
-
closeIterator();
|
|
220
|
-
}
|
|
221
|
-
})();
|
|
222
|
-
const origReturn = gen.return.bind(gen);
|
|
223
|
-
gen.return = (value) => {
|
|
224
|
-
closeIterator();
|
|
225
|
-
return origReturn(value);
|
|
226
|
-
};
|
|
227
|
-
return gen;
|
|
228
|
-
}
|
|
229
|
-
async getVirtualTxs(txids, opts) {
|
|
230
|
-
let url = `${this.serverUrl}/v1/indexer/virtualTx/${txids.join(",")}`;
|
|
231
|
-
const params = new URLSearchParams();
|
|
232
|
-
if (opts) {
|
|
233
|
-
if (opts.pageIndex !== undefined)
|
|
234
|
-
params.append("page.index", opts.pageIndex.toString());
|
|
235
|
-
if (opts.pageSize !== undefined)
|
|
236
|
-
params.append("page.size", opts.pageSize.toString());
|
|
237
|
-
}
|
|
238
|
-
if (params.toString()) {
|
|
239
|
-
url += "?" + params.toString();
|
|
240
|
-
}
|
|
241
|
-
const res = await fetch(url);
|
|
242
|
-
if (!res.ok) {
|
|
243
|
-
throw new Error(`Failed to fetch virtual txs: ${res.statusText}`);
|
|
244
|
-
}
|
|
245
|
-
const data = await res.json();
|
|
246
|
-
if (!Response.isVirtualTxsResponse(data)) {
|
|
247
|
-
throw new Error("Invalid virtual txs data received");
|
|
248
|
-
}
|
|
249
|
-
return data;
|
|
250
|
-
}
|
|
251
|
-
async getVtxoChain(vtxoOutpoint, opts) {
|
|
252
|
-
let url = `${this.serverUrl}/v1/indexer/vtxo/${vtxoOutpoint.txid}/${vtxoOutpoint.vout}/chain`;
|
|
253
|
-
const params = new URLSearchParams();
|
|
254
|
-
if (opts) {
|
|
255
|
-
if (opts.pageIndex !== undefined)
|
|
256
|
-
params.append("page.index", opts.pageIndex.toString());
|
|
257
|
-
if (opts.pageSize !== undefined)
|
|
258
|
-
params.append("page.size", opts.pageSize.toString());
|
|
259
|
-
}
|
|
260
|
-
if (params.toString()) {
|
|
261
|
-
url += "?" + params.toString();
|
|
262
|
-
}
|
|
263
|
-
const res = await fetch(url);
|
|
264
|
-
if (!res.ok) {
|
|
265
|
-
throw new Error(`Failed to fetch vtxo chain: ${res.statusText}`);
|
|
266
|
-
}
|
|
267
|
-
const data = await res.json();
|
|
268
|
-
if (!Response.isVtxoChainResponse(data)) {
|
|
269
|
-
throw new Error("Invalid vtxo chain data received");
|
|
270
|
-
}
|
|
271
|
-
return data;
|
|
272
|
-
}
|
|
273
|
-
async getVtxos(opts) {
|
|
274
|
-
const hasScripts = (opts?.scripts?.length ?? 0) > 0;
|
|
275
|
-
const hasOutpoints = (opts?.outpoints?.length ?? 0) > 0;
|
|
276
|
-
// scripts and outpoints are mutually exclusive
|
|
277
|
-
if (hasScripts && hasOutpoints) {
|
|
278
|
-
throw new Error("scripts and outpoints are mutually exclusive options");
|
|
279
|
-
}
|
|
280
|
-
if (!hasScripts && !hasOutpoints) {
|
|
281
|
-
throw new Error("Either scripts or outpoints must be provided");
|
|
282
|
-
}
|
|
283
|
-
const filterCount = [
|
|
284
|
-
opts?.spendableOnly,
|
|
285
|
-
opts?.spentOnly,
|
|
286
|
-
opts?.recoverableOnly,
|
|
287
|
-
].filter(Boolean).length;
|
|
288
|
-
if (filterCount > 1) {
|
|
289
|
-
throw new Error("spendableOnly, spentOnly, and recoverableOnly are mutually exclusive options");
|
|
290
|
-
}
|
|
291
|
-
if (opts?.after !== undefined &&
|
|
292
|
-
opts?.before !== undefined &&
|
|
293
|
-
opts.after !== 0 &&
|
|
294
|
-
opts.before !== 0 &&
|
|
295
|
-
opts.before <= opts.after) {
|
|
296
|
-
throw new Error("before must be greater than after");
|
|
297
|
-
}
|
|
298
|
-
let url = `${this.serverUrl}/v1/indexer/vtxos`;
|
|
299
|
-
const params = new URLSearchParams();
|
|
300
|
-
// Handle scripts with multi collection format
|
|
301
|
-
if (hasScripts) {
|
|
302
|
-
opts.scripts.forEach((script) => {
|
|
303
|
-
params.append("scripts", script);
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
// Handle outpoints with multi collection format
|
|
307
|
-
if (hasOutpoints) {
|
|
308
|
-
opts.outpoints.forEach((outpoint) => {
|
|
309
|
-
params.append("outpoints", `${outpoint.txid}:${outpoint.vout}`);
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
if (opts) {
|
|
313
|
-
if (opts.spendableOnly !== undefined)
|
|
314
|
-
params.append("spendableOnly", opts.spendableOnly.toString());
|
|
315
|
-
if (opts.spentOnly !== undefined)
|
|
316
|
-
params.append("spentOnly", opts.spentOnly.toString());
|
|
317
|
-
if (opts.recoverableOnly !== undefined)
|
|
318
|
-
params.append("recoverableOnly", opts.recoverableOnly.toString());
|
|
319
|
-
if (opts.pendingOnly !== undefined)
|
|
320
|
-
params.append("pendingOnly", opts.pendingOnly.toString());
|
|
321
|
-
if (opts.after !== undefined)
|
|
322
|
-
params.append("after", opts.after.toString());
|
|
323
|
-
if (opts.before !== undefined)
|
|
324
|
-
params.append("before", opts.before.toString());
|
|
325
|
-
if (opts.pageIndex !== undefined)
|
|
326
|
-
params.append("page.index", opts.pageIndex.toString());
|
|
327
|
-
if (opts.pageSize !== undefined)
|
|
328
|
-
params.append("page.size", opts.pageSize.toString());
|
|
329
|
-
}
|
|
330
|
-
if (params.toString()) {
|
|
331
|
-
url += "?" + params.toString();
|
|
332
|
-
}
|
|
333
|
-
const res = await fetch(url);
|
|
334
|
-
if (!res.ok) {
|
|
335
|
-
throw new Error(`Failed to fetch vtxos: ${res.statusText}`);
|
|
336
|
-
}
|
|
337
|
-
const data = await res.json();
|
|
338
|
-
if (!Response.isVtxosResponse(data)) {
|
|
339
|
-
throw new Error("Invalid vtxos data received");
|
|
340
|
-
}
|
|
341
|
-
return {
|
|
342
|
-
vtxos: data.vtxos.map(convertVtxo),
|
|
343
|
-
page: data.page,
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
async getAssetDetails(assetId) {
|
|
347
|
-
const url = `${this.serverUrl}/v1/indexer/asset/${encodeURIComponent(assetId)}`;
|
|
348
|
-
const res = await fetch(url);
|
|
349
|
-
if (!res.ok) {
|
|
350
|
-
throw new Error(`Failed to fetch asset details: ${res.statusText}`);
|
|
351
|
-
}
|
|
352
|
-
const data = await res.json();
|
|
353
|
-
if (!Response.isGetAssetResponse(data)) {
|
|
354
|
-
throw new Error("Invalid get asset response");
|
|
355
|
-
}
|
|
356
|
-
const metadata = data.metadata?.length
|
|
357
|
-
? parseAssetMetadata(data.metadata)
|
|
358
|
-
: undefined;
|
|
359
|
-
return {
|
|
360
|
-
assetId: data.assetId ?? assetId,
|
|
361
|
-
supply: BigInt(data.supply ?? 0),
|
|
362
|
-
metadata,
|
|
363
|
-
controlAssetId: data.controlAsset || undefined,
|
|
364
|
-
};
|
|
365
|
-
}
|
|
366
|
-
async subscribeForScripts(scripts, subscriptionId) {
|
|
367
|
-
const url = `${this.serverUrl}/v1/indexer/script/subscribe`;
|
|
368
|
-
const res = await fetch(url, {
|
|
369
|
-
headers: {
|
|
370
|
-
"Content-Type": "application/json",
|
|
371
|
-
},
|
|
372
|
-
method: "POST",
|
|
373
|
-
body: JSON.stringify({ scripts, subscriptionId }),
|
|
374
|
-
});
|
|
375
|
-
if (!res.ok) {
|
|
376
|
-
const errorText = await res.text();
|
|
377
|
-
throw new Error(`Failed to subscribe to scripts: ${errorText}`);
|
|
378
|
-
}
|
|
379
|
-
const data = await res.json();
|
|
380
|
-
if (!data.subscriptionId)
|
|
381
|
-
throw new Error(`Subscription ID not found`);
|
|
382
|
-
return data.subscriptionId;
|
|
383
|
-
}
|
|
384
|
-
async unsubscribeForScripts(subscriptionId, scripts) {
|
|
385
|
-
const url = `${this.serverUrl}/v1/indexer/script/unsubscribe`;
|
|
386
|
-
const res = await fetch(url, {
|
|
387
|
-
headers: {
|
|
388
|
-
"Content-Type": "application/json",
|
|
389
|
-
},
|
|
390
|
-
method: "POST",
|
|
391
|
-
body: JSON.stringify({ subscriptionId, scripts }),
|
|
392
|
-
});
|
|
393
|
-
if (!res.ok) {
|
|
394
|
-
const errorText = await res.text();
|
|
395
|
-
console.warn(`Failed to unsubscribe to scripts: ${errorText}`);
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
exports.RestIndexerProvider = RestIndexerProvider;
|
|
400
|
-
function parseAssetMetadata(metadata) {
|
|
401
|
-
const metadataList = asset_1.MetadataList.fromString(metadata);
|
|
402
|
-
const out = {};
|
|
403
|
-
const decoder = new TextDecoder();
|
|
404
|
-
for (const { key, value } of metadataList.items) {
|
|
405
|
-
const keyString = decoder.decode(key);
|
|
406
|
-
switch (keyString) {
|
|
407
|
-
case "decimals":
|
|
408
|
-
const n = Number(decoder.decode(value));
|
|
409
|
-
out[keyString] = Number.isFinite(n) ? n : base_1.hex.encode(value);
|
|
410
|
-
break;
|
|
411
|
-
case "name":
|
|
412
|
-
case "ticker":
|
|
413
|
-
case "icon":
|
|
414
|
-
out[keyString] = decoder.decode(value);
|
|
415
|
-
break;
|
|
416
|
-
default:
|
|
417
|
-
out[keyString] = base_1.hex.encode(value);
|
|
418
|
-
break;
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
return out;
|
|
422
|
-
}
|
|
423
|
-
function convertVtxo(vtxo) {
|
|
424
|
-
return {
|
|
425
|
-
txid: vtxo.outpoint.txid,
|
|
426
|
-
vout: vtxo.outpoint.vout,
|
|
427
|
-
value: Number(vtxo.amount),
|
|
428
|
-
status: {
|
|
429
|
-
confirmed: !vtxo.isSwept && !vtxo.isPreconfirmed,
|
|
430
|
-
isLeaf: !vtxo.isPreconfirmed,
|
|
431
|
-
},
|
|
432
|
-
virtualStatus: {
|
|
433
|
-
state: vtxo.isSwept
|
|
434
|
-
? "swept"
|
|
435
|
-
: vtxo.isPreconfirmed
|
|
436
|
-
? "preconfirmed"
|
|
437
|
-
: "settled",
|
|
438
|
-
commitmentTxIds: vtxo.commitmentTxids,
|
|
439
|
-
batchExpiry: vtxo.expiresAt
|
|
440
|
-
? Number(vtxo.expiresAt) * 1000
|
|
441
|
-
: undefined,
|
|
442
|
-
},
|
|
443
|
-
spentBy: vtxo.spentBy ?? "",
|
|
444
|
-
settledBy: vtxo.settledBy,
|
|
445
|
-
arkTxId: vtxo.arkTxid,
|
|
446
|
-
createdAt: new Date(Number(vtxo.createdAt) * 1000),
|
|
447
|
-
isUnrolled: vtxo.isUnrolled,
|
|
448
|
-
isSpent: vtxo.isSpent,
|
|
449
|
-
script: vtxo.script,
|
|
450
|
-
assets: vtxo.assets?.map((a) => ({
|
|
451
|
-
assetId: a.assetId,
|
|
452
|
-
amount: BigInt(a.amount),
|
|
453
|
-
})),
|
|
454
|
-
};
|
|
455
|
-
}
|
|
456
|
-
// Unexported namespace for type guards only
|
|
457
|
-
var Response;
|
|
458
|
-
(function (Response) {
|
|
459
|
-
function isBatchInfo(data) {
|
|
460
|
-
return (typeof data === "object" &&
|
|
461
|
-
typeof data.totalOutputAmount === "string" &&
|
|
462
|
-
typeof data.totalOutputVtxos === "number" &&
|
|
463
|
-
typeof data.expiresAt === "string" &&
|
|
464
|
-
typeof data.swept === "boolean");
|
|
465
|
-
}
|
|
466
|
-
function isChain(data) {
|
|
467
|
-
return (typeof data === "object" &&
|
|
468
|
-
typeof data.txid === "string" &&
|
|
469
|
-
typeof data.expiresAt === "string" &&
|
|
470
|
-
Object.values(ChainTxType).includes(data.type) &&
|
|
471
|
-
Array.isArray(data.spends) &&
|
|
472
|
-
data.spends.every((spend) => typeof spend === "string"));
|
|
473
|
-
}
|
|
474
|
-
function isCommitmentTx(data) {
|
|
475
|
-
return (typeof data === "object" &&
|
|
476
|
-
typeof data.startedAt === "string" &&
|
|
477
|
-
typeof data.endedAt === "string" &&
|
|
478
|
-
typeof data.totalInputAmount === "string" &&
|
|
479
|
-
typeof data.totalInputVtxos === "number" &&
|
|
480
|
-
typeof data.totalOutputAmount === "string" &&
|
|
481
|
-
typeof data.totalOutputVtxos === "number" &&
|
|
482
|
-
typeof data.batches === "object" &&
|
|
483
|
-
Object.values(data.batches).every(isBatchInfo));
|
|
484
|
-
}
|
|
485
|
-
Response.isCommitmentTx = isCommitmentTx;
|
|
486
|
-
function isOutpoint(data) {
|
|
487
|
-
return (typeof data === "object" &&
|
|
488
|
-
typeof data.txid === "string" &&
|
|
489
|
-
typeof data.vout === "number");
|
|
490
|
-
}
|
|
491
|
-
Response.isOutpoint = isOutpoint;
|
|
492
|
-
function isOutpointArray(data) {
|
|
493
|
-
return Array.isArray(data) && data.every(isOutpoint);
|
|
494
|
-
}
|
|
495
|
-
Response.isOutpointArray = isOutpointArray;
|
|
496
|
-
function isTx(data) {
|
|
497
|
-
return (typeof data === "object" &&
|
|
498
|
-
typeof data.txid === "string" &&
|
|
499
|
-
typeof data.children === "object" &&
|
|
500
|
-
Object.values(data.children).every(isTxid) &&
|
|
501
|
-
Object.keys(data.children).every((k) => Number.isInteger(Number(k))));
|
|
502
|
-
}
|
|
503
|
-
function isTxsArray(data) {
|
|
504
|
-
return Array.isArray(data) && data.every(isTx);
|
|
505
|
-
}
|
|
506
|
-
Response.isTxsArray = isTxsArray;
|
|
507
|
-
function isTxHistoryRecord(data) {
|
|
508
|
-
return (typeof data === "object" &&
|
|
509
|
-
typeof data.amount === "string" &&
|
|
510
|
-
typeof data.createdAt === "string" &&
|
|
511
|
-
typeof data.isSettled === "boolean" &&
|
|
512
|
-
typeof data.settledBy === "string" &&
|
|
513
|
-
Object.values(IndexerTxType).includes(data.type) &&
|
|
514
|
-
((!data.commitmentTxid && typeof data.virtualTxid === "string") ||
|
|
515
|
-
(typeof data.commitmentTxid === "string" && !data.virtualTxid)));
|
|
516
|
-
}
|
|
517
|
-
function isTxHistoryRecordArray(data) {
|
|
518
|
-
return Array.isArray(data) && data.every(isTxHistoryRecord);
|
|
519
|
-
}
|
|
520
|
-
Response.isTxHistoryRecordArray = isTxHistoryRecordArray;
|
|
521
|
-
function isTxid(data) {
|
|
522
|
-
return typeof data === "string" && data.length === 64;
|
|
523
|
-
}
|
|
524
|
-
function isTxidArray(data) {
|
|
525
|
-
return Array.isArray(data) && data.every(isTxid);
|
|
526
|
-
}
|
|
527
|
-
Response.isTxidArray = isTxidArray;
|
|
528
|
-
function isVtxoAsset(data) {
|
|
529
|
-
return (typeof data === "object" &&
|
|
530
|
-
data !== null &&
|
|
531
|
-
typeof data.assetId === "string" &&
|
|
532
|
-
typeof data.amount === "string");
|
|
533
|
-
}
|
|
534
|
-
function isVtxo(data) {
|
|
535
|
-
return (typeof data === "object" &&
|
|
536
|
-
isOutpoint(data.outpoint) &&
|
|
537
|
-
typeof data.createdAt === "string" &&
|
|
538
|
-
(data.expiresAt === null || typeof data.expiresAt === "string") &&
|
|
539
|
-
typeof data.amount === "string" &&
|
|
540
|
-
typeof data.script === "string" &&
|
|
541
|
-
typeof data.isPreconfirmed === "boolean" &&
|
|
542
|
-
typeof data.isSwept === "boolean" &&
|
|
543
|
-
typeof data.isUnrolled === "boolean" &&
|
|
544
|
-
typeof data.isSpent === "boolean" &&
|
|
545
|
-
(!data.spentBy || typeof data.spentBy === "string") &&
|
|
546
|
-
(!data.settledBy || typeof data.settledBy === "string") &&
|
|
547
|
-
(!data.arkTxid || typeof data.arkTxid === "string") &&
|
|
548
|
-
Array.isArray(data.commitmentTxids) &&
|
|
549
|
-
data.commitmentTxids.every(isTxid) &&
|
|
550
|
-
(data.assets === undefined ||
|
|
551
|
-
(Array.isArray(data.assets) && data.assets.every(isVtxoAsset))));
|
|
552
|
-
}
|
|
553
|
-
function isPageResponse(data) {
|
|
554
|
-
return (typeof data === "object" &&
|
|
555
|
-
typeof data.current === "number" &&
|
|
556
|
-
typeof data.next === "number" &&
|
|
557
|
-
typeof data.total === "number");
|
|
558
|
-
}
|
|
559
|
-
function isVtxoTreeResponse(data) {
|
|
560
|
-
return (typeof data === "object" &&
|
|
561
|
-
Array.isArray(data.vtxoTree) &&
|
|
562
|
-
data.vtxoTree.every(isTx) &&
|
|
563
|
-
(!data.page || isPageResponse(data.page)));
|
|
564
|
-
}
|
|
565
|
-
Response.isVtxoTreeResponse = isVtxoTreeResponse;
|
|
566
|
-
function isVtxoTreeLeavesResponse(data) {
|
|
567
|
-
return (typeof data === "object" &&
|
|
568
|
-
Array.isArray(data.leaves) &&
|
|
569
|
-
data.leaves.every(isOutpoint) &&
|
|
570
|
-
(!data.page || isPageResponse(data.page)));
|
|
571
|
-
}
|
|
572
|
-
Response.isVtxoTreeLeavesResponse = isVtxoTreeLeavesResponse;
|
|
573
|
-
function isConnectorsResponse(data) {
|
|
574
|
-
return (typeof data === "object" &&
|
|
575
|
-
Array.isArray(data.connectors) &&
|
|
576
|
-
data.connectors.every(isTx) &&
|
|
577
|
-
(!data.page || isPageResponse(data.page)));
|
|
578
|
-
}
|
|
579
|
-
Response.isConnectorsResponse = isConnectorsResponse;
|
|
580
|
-
function isForfeitTxsResponse(data) {
|
|
581
|
-
return (typeof data === "object" &&
|
|
582
|
-
Array.isArray(data.txids) &&
|
|
583
|
-
data.txids.every(isTxid) &&
|
|
584
|
-
(!data.page || isPageResponse(data.page)));
|
|
585
|
-
}
|
|
586
|
-
Response.isForfeitTxsResponse = isForfeitTxsResponse;
|
|
587
|
-
function isSweptCommitmentTxResponse(data) {
|
|
588
|
-
return (typeof data === "object" &&
|
|
589
|
-
Array.isArray(data.sweptBy) &&
|
|
590
|
-
data.sweptBy.every(isTxid));
|
|
591
|
-
}
|
|
592
|
-
Response.isSweptCommitmentTxResponse = isSweptCommitmentTxResponse;
|
|
593
|
-
function isBatchSweepTransactionsResponse(data) {
|
|
594
|
-
return (typeof data === "object" &&
|
|
595
|
-
Array.isArray(data.sweptBy) &&
|
|
596
|
-
data.sweptBy.every(isTxid));
|
|
597
|
-
}
|
|
598
|
-
Response.isBatchSweepTransactionsResponse = isBatchSweepTransactionsResponse;
|
|
599
|
-
function isVirtualTxsResponse(data) {
|
|
600
|
-
return (typeof data === "object" &&
|
|
601
|
-
Array.isArray(data.txs) &&
|
|
602
|
-
data.txs.every((tx) => typeof tx === "string") &&
|
|
603
|
-
(!data.page || isPageResponse(data.page)));
|
|
604
|
-
}
|
|
605
|
-
Response.isVirtualTxsResponse = isVirtualTxsResponse;
|
|
606
|
-
function isVtxoChainResponse(data) {
|
|
607
|
-
return (typeof data === "object" &&
|
|
608
|
-
Array.isArray(data.chain) &&
|
|
609
|
-
data.chain.every(isChain) &&
|
|
610
|
-
(!data.page || isPageResponse(data.page)));
|
|
611
|
-
}
|
|
612
|
-
Response.isVtxoChainResponse = isVtxoChainResponse;
|
|
613
|
-
function isVtxosResponse(data) {
|
|
614
|
-
return (typeof data === "object" &&
|
|
615
|
-
Array.isArray(data.vtxos) &&
|
|
616
|
-
data.vtxos.every(isVtxo) &&
|
|
617
|
-
(!data.page || isPageResponse(data.page)));
|
|
618
|
-
}
|
|
619
|
-
Response.isVtxosResponse = isVtxosResponse;
|
|
620
|
-
function isGetAssetResponse(data) {
|
|
621
|
-
return (typeof data === "object" &&
|
|
622
|
-
data !== null &&
|
|
623
|
-
typeof data.assetId === "string" &&
|
|
624
|
-
typeof data.supply === "string" &&
|
|
625
|
-
(data.controlAsset === undefined ||
|
|
626
|
-
typeof data.controlAsset === "string") &&
|
|
627
|
-
(data.metadata === undefined || typeof data.metadata === "string"));
|
|
628
|
-
}
|
|
629
|
-
Response.isGetAssetResponse = isGetAssetResponse;
|
|
630
|
-
})(Response || (Response = {}));
|