@arkade-os/sdk 0.4.26 → 0.4.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -125
- package/dist/adapters/asyncStorage.cjs +48 -0
- package/dist/adapters/asyncStorage.cjs.map +1 -0
- package/dist/adapters/asyncStorage.d.cts +16 -0
- package/dist/{types/storage → adapters}/asyncStorage.d.ts +5 -2
- package/dist/adapters/asyncStorage.js +46 -0
- package/dist/adapters/asyncStorage.js.map +1 -0
- package/dist/adapters/expo.cjs +19 -0
- package/dist/adapters/expo.cjs.map +1 -0
- package/dist/adapters/expo.d.cts +48 -0
- package/dist/adapters/expo.d.ts +48 -0
- package/dist/adapters/expo.js +6 -0
- package/dist/adapters/expo.js.map +1 -0
- package/dist/adapters/fileSystem.cjs +116 -0
- package/dist/adapters/fileSystem.cjs.map +1 -0
- package/dist/adapters/fileSystem.d.cts +17 -0
- package/dist/{types/storage → adapters}/fileSystem.d.ts +5 -2
- package/dist/adapters/fileSystem.js +93 -0
- package/dist/adapters/fileSystem.js.map +1 -0
- package/dist/adapters/indexedDB.cjs +103 -0
- package/dist/adapters/indexedDB.cjs.map +1 -0
- package/dist/adapters/indexedDB.d.cts +18 -0
- package/dist/{types/storage → adapters}/indexedDB.d.ts +5 -2
- package/dist/adapters/indexedDB.js +101 -0
- package/dist/adapters/indexedDB.js.map +1 -0
- package/dist/adapters/localStorage.cjs +50 -0
- package/dist/adapters/localStorage.cjs.map +1 -0
- package/dist/{types/storage/inMemory.d.ts → adapters/localStorage.d.cts} +6 -3
- package/dist/{types/storage → adapters}/localStorage.d.ts +5 -2
- package/dist/adapters/localStorage.js +48 -0
- package/dist/adapters/localStorage.js.map +1 -0
- package/dist/ark-TZ1gXAXU.d.cts +3880 -0
- package/dist/ark-TZ1gXAXU.d.ts +3880 -0
- package/dist/{types/worker/expo/asyncStorageTaskQueue.d.ts → asyncStorageTaskQueue-Cb1F_Z9s.d.ts} +6 -3
- package/dist/asyncStorageTaskQueue-EFqSmYTg.d.cts +49 -0
- package/dist/chunk-5BLDMQED.cjs +18 -0
- package/dist/chunk-5BLDMQED.cjs.map +1 -0
- package/dist/chunk-5PG7DV7A.cjs +805 -0
- package/dist/chunk-5PG7DV7A.cjs.map +1 -0
- package/dist/chunk-A3EMF7RN.js +95 -0
- package/dist/chunk-A3EMF7RN.js.map +1 -0
- package/dist/chunk-ADV27S4N.cjs +2701 -0
- package/dist/chunk-ADV27S4N.cjs.map +1 -0
- package/dist/chunk-BQLHADL7.js +13805 -0
- package/dist/chunk-BQLHADL7.js.map +1 -0
- package/dist/chunk-CFZMTDWI.js +209 -0
- package/dist/chunk-CFZMTDWI.js.map +1 -0
- package/dist/chunk-FG5ACJJW.cjs +212 -0
- package/dist/chunk-FG5ACJJW.cjs.map +1 -0
- package/dist/chunk-HW3JJ323.js +768 -0
- package/dist/chunk-HW3JJ323.js.map +1 -0
- package/dist/chunk-I3DGUUCT.cjs +838 -0
- package/dist/chunk-I3DGUUCT.cjs.map +1 -0
- package/dist/chunk-IPX2R7FR.cjs +100 -0
- package/dist/chunk-IPX2R7FR.cjs.map +1 -0
- package/dist/chunk-NSBPE2FW.js +15 -0
- package/dist/chunk-NSBPE2FW.js.map +1 -0
- package/dist/chunk-T64LAI7L.js +829 -0
- package/dist/chunk-T64LAI7L.js.map +1 -0
- package/dist/chunk-ZBUDLTBO.js +2671 -0
- package/dist/chunk-ZBUDLTBO.js.map +1 -0
- package/dist/chunk-ZLO6NETT.cjs +13910 -0
- package/dist/chunk-ZLO6NETT.cjs.map +1 -0
- package/dist/contracts/handlers/index.cjs +26 -0
- package/dist/contracts/handlers/index.cjs.map +1 -0
- package/dist/contracts/handlers/index.d.cts +7 -0
- package/dist/contracts/handlers/index.d.ts +7 -0
- package/dist/contracts/handlers/index.js +5 -0
- package/dist/contracts/handlers/index.js.map +1 -0
- package/dist/delegate-BFZs69hp.d.cts +84 -0
- package/dist/delegate-aaVGfWsV.d.ts +84 -0
- package/dist/index-B22cA64m.d.cts +199 -0
- package/dist/{types/storage/index.d.ts → index-C0IanN1m.d.cts} +3 -1
- package/dist/index-C0IanN1m.d.ts +11 -0
- package/dist/index-NDla_UoJ.d.ts +199 -0
- package/dist/index.cjs +480 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3343 -0
- package/dist/index.d.ts +3343 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories/realm/index.cjs +513 -0
- package/dist/repositories/realm/index.cjs.map +1 -0
- package/dist/repositories/realm/index.d.cts +217 -0
- package/dist/{types/repositories/realm/schemas.d.ts → repositories/realm/index.d.ts} +80 -112
- package/dist/repositories/realm/index.js +507 -0
- package/dist/repositories/realm/index.js.map +1 -0
- package/dist/repositories/sqlite/index.cjs +588 -0
- package/dist/repositories/sqlite/index.cjs.map +1 -0
- package/dist/repositories/sqlite/index.d.cts +118 -0
- package/dist/{types/repositories/sqlite/walletRepository.d.ts → repositories/sqlite/index.d.ts} +58 -5
- package/dist/repositories/sqlite/index.js +585 -0
- package/dist/repositories/sqlite/index.js.map +1 -0
- package/dist/taskRunner-C6Ff4OaU.d.cts +114 -0
- package/dist/taskRunner-yvPN8Z0K.d.ts +114 -0
- package/dist/wallet/expo/background.cjs +93 -0
- package/dist/wallet/expo/background.cjs.map +1 -0
- package/dist/wallet/expo/background.d.cts +84 -0
- package/dist/wallet/expo/background.d.ts +84 -0
- package/dist/wallet/expo/background.js +68 -0
- package/dist/wallet/expo/background.js.map +1 -0
- package/dist/wallet/expo/index.cjs +171 -0
- package/dist/wallet/expo/index.cjs.map +1 -0
- package/dist/wallet/expo/index.d.cts +122 -0
- package/dist/{types/wallet/expo/wallet.d.ts → wallet/expo/index.d.ts} +45 -22
- package/dist/wallet/expo/index.js +169 -0
- package/dist/wallet/expo/index.js.map +1 -0
- package/dist/wallet-AF-p-OWj.d.cts +774 -0
- package/dist/wallet-D9NBRqvC.d.ts +774 -0
- package/dist/worker/expo/index.cjs +140 -0
- package/dist/worker/expo/index.cjs.map +1 -0
- package/dist/worker/expo/index.d.cts +29 -0
- package/dist/worker/expo/index.d.ts +29 -0
- package/dist/worker/expo/index.js +121 -0
- package/dist/worker/expo/index.js.map +1 -0
- package/package.json +110 -76
- package/dist/cjs/adapters/asyncStorage.js +0 -5
- package/dist/cjs/adapters/expo.js +0 -8
- package/dist/cjs/adapters/fileSystem.js +0 -5
- package/dist/cjs/adapters/indexedDB.js +0 -5
- package/dist/cjs/adapters/localStorage.js +0 -5
- package/dist/cjs/arkfee/celenv.js +0 -43
- package/dist/cjs/arkfee/estimator.js +0 -143
- package/dist/cjs/arkfee/index.js +0 -5
- package/dist/cjs/arkfee/types.js +0 -26
- package/dist/cjs/arknote/index.js +0 -128
- package/dist/cjs/bip322/index.js +0 -270
- package/dist/cjs/contracts/arkcontract.js +0 -147
- package/dist/cjs/contracts/contractManager.js +0 -629
- package/dist/cjs/contracts/contractWatcher.js +0 -598
- package/dist/cjs/contracts/handlers/default.js +0 -93
- package/dist/cjs/contracts/handlers/delegate.js +0 -90
- package/dist/cjs/contracts/handlers/helpers.js +0 -115
- package/dist/cjs/contracts/handlers/index.js +0 -19
- package/dist/cjs/contracts/handlers/registry.js +0 -89
- package/dist/cjs/contracts/handlers/vhtlc.js +0 -194
- package/dist/cjs/contracts/index.js +0 -41
- package/dist/cjs/contracts/types.js +0 -2
- package/dist/cjs/contracts/vtxoOwnership.js +0 -78
- package/dist/cjs/extension/asset/assetGroup.js +0 -228
- package/dist/cjs/extension/asset/assetId.js +0 -152
- package/dist/cjs/extension/asset/assetInput.js +0 -222
- package/dist/cjs/extension/asset/assetOutput.js +0 -174
- package/dist/cjs/extension/asset/assetRef.js +0 -148
- package/dist/cjs/extension/asset/index.js +0 -23
- package/dist/cjs/extension/asset/metadata.js +0 -187
- package/dist/cjs/extension/asset/packet.js +0 -114
- package/dist/cjs/extension/asset/types.js +0 -22
- package/dist/cjs/extension/asset/utils.js +0 -105
- package/dist/cjs/extension/index.js +0 -254
- package/dist/cjs/extension/packet.js +0 -20
- package/dist/cjs/forfeit.js +0 -45
- package/dist/cjs/identity/descriptor.js +0 -169
- package/dist/cjs/identity/descriptorProvider.js +0 -2
- package/dist/cjs/identity/hdCapableIdentity.js +0 -2
- package/dist/cjs/identity/index.js +0 -38
- package/dist/cjs/identity/seedIdentity.js +0 -461
- package/dist/cjs/identity/serialize.js +0 -171
- package/dist/cjs/identity/singleKey.js +0 -126
- package/dist/cjs/identity/staticDescriptorProvider.js +0 -65
- package/dist/cjs/index.js +0 -200
- package/dist/cjs/intent/index.js +0 -259
- package/dist/cjs/musig2/index.js +0 -11
- package/dist/cjs/musig2/keys.js +0 -57
- package/dist/cjs/musig2/nonces.js +0 -48
- package/dist/cjs/musig2/sign.js +0 -102
- package/dist/cjs/networks.js +0 -26
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/providers/ark.js +0 -577
- package/dist/cjs/providers/delegator.js +0 -85
- package/dist/cjs/providers/electrum.js +0 -869
- package/dist/cjs/providers/errors.js +0 -59
- package/dist/cjs/providers/expoArk.js +0 -82
- package/dist/cjs/providers/expoIndexer.js +0 -111
- package/dist/cjs/providers/expoUtils.js +0 -124
- package/dist/cjs/providers/indexer.js +0 -630
- package/dist/cjs/providers/onchain.js +0 -262
- package/dist/cjs/providers/utils.js +0 -121
- package/dist/cjs/repositories/contractRepository.js +0 -2
- package/dist/cjs/repositories/inMemory/contractRepository.js +0 -55
- package/dist/cjs/repositories/inMemory/walletRepository.js +0 -115
- package/dist/cjs/repositories/index.js +0 -34
- package/dist/cjs/repositories/indexedDB/contractRepository.js +0 -187
- package/dist/cjs/repositories/indexedDB/db.js +0 -19
- package/dist/cjs/repositories/indexedDB/manager.js +0 -100
- package/dist/cjs/repositories/indexedDB/schema.js +0 -204
- package/dist/cjs/repositories/indexedDB/walletRepository.js +0 -474
- package/dist/cjs/repositories/indexedDB/websqlAdapter.js +0 -144
- package/dist/cjs/repositories/migrations/contractRepositoryImpl.js +0 -127
- package/dist/cjs/repositories/migrations/fromStorageAdapter.js +0 -66
- package/dist/cjs/repositories/migrations/walletRepositoryImpl.js +0 -184
- package/dist/cjs/repositories/realm/contractRepository.js +0 -116
- package/dist/cjs/repositories/realm/index.js +0 -11
- package/dist/cjs/repositories/realm/schemas.js +0 -157
- package/dist/cjs/repositories/realm/types.js +0 -7
- package/dist/cjs/repositories/realm/walletRepository.js +0 -305
- package/dist/cjs/repositories/scriptFromAddress.js +0 -16
- package/dist/cjs/repositories/serialization.js +0 -82
- package/dist/cjs/repositories/sqlite/contractRepository.js +0 -135
- package/dist/cjs/repositories/sqlite/index.js +0 -7
- package/dist/cjs/repositories/sqlite/types.js +0 -2
- package/dist/cjs/repositories/sqlite/walletRepository.js +0 -441
- package/dist/cjs/repositories/walletRepository.js +0 -2
- package/dist/cjs/script/address.js +0 -108
- package/dist/cjs/script/base.js +0 -185
- package/dist/cjs/script/default.js +0 -57
- package/dist/cjs/script/delegate.js +0 -53
- package/dist/cjs/script/tapscript.js +0 -619
- package/dist/cjs/script/vhtlc.js +0 -170
- package/dist/cjs/storage/asyncStorage.js +0 -50
- package/dist/cjs/storage/fileSystem.js +0 -141
- package/dist/cjs/storage/inMemory.js +0 -24
- package/dist/cjs/storage/index.js +0 -2
- package/dist/cjs/storage/indexedDB.js +0 -101
- package/dist/cjs/storage/localStorage.js +0 -51
- package/dist/cjs/tree/signingSession.js +0 -229
- package/dist/cjs/tree/txTree.js +0 -192
- package/dist/cjs/tree/validation.js +0 -107
- package/dist/cjs/utils/anchor.js +0 -35
- package/dist/cjs/utils/arkTransaction.js +0 -271
- package/dist/cjs/utils/bip21.js +0 -127
- package/dist/cjs/utils/syncCursors.js +0 -128
- package/dist/cjs/utils/timelock.js +0 -59
- package/dist/cjs/utils/transaction.js +0 -28
- package/dist/cjs/utils/transactionHistory.js +0 -183
- package/dist/cjs/utils/txSizeEstimator.js +0 -132
- package/dist/cjs/utils/unknownFields.js +0 -174
- package/dist/cjs/wallet/asset-manager.js +0 -330
- package/dist/cjs/wallet/asset.js +0 -119
- package/dist/cjs/wallet/batch.js +0 -183
- package/dist/cjs/wallet/delegator.js +0 -302
- package/dist/cjs/wallet/expo/background.js +0 -116
- package/dist/cjs/wallet/expo/index.js +0 -9
- package/dist/cjs/wallet/expo/wallet.js +0 -230
- package/dist/cjs/wallet/hdDescriptorProvider.js +0 -159
- package/dist/cjs/wallet/index.js +0 -82
- package/dist/cjs/wallet/onchain.js +0 -290
- package/dist/cjs/wallet/ramps.js +0 -216
- package/dist/cjs/wallet/serviceWorker/wallet-message-handler.js +0 -953
- package/dist/cjs/wallet/serviceWorker/wallet.js +0 -1173
- package/dist/cjs/wallet/unroll.js +0 -289
- package/dist/cjs/wallet/utils.js +0 -111
- package/dist/cjs/wallet/validation.js +0 -154
- package/dist/cjs/wallet/vtxo-manager.js +0 -1142
- package/dist/cjs/wallet/wallet.js +0 -2049
- package/dist/cjs/worker/browser/service-worker-manager.js +0 -183
- package/dist/cjs/worker/browser/utils.js +0 -67
- package/dist/cjs/worker/errors.js +0 -16
- package/dist/cjs/worker/expo/asyncStorageTaskQueue.js +0 -78
- package/dist/cjs/worker/expo/index.js +0 -13
- package/dist/cjs/worker/expo/processors/contractPollProcessor.js +0 -62
- package/dist/cjs/worker/expo/processors/index.js +0 -6
- package/dist/cjs/worker/expo/taskQueue.js +0 -41
- package/dist/cjs/worker/expo/taskRunner.js +0 -73
- package/dist/cjs/worker/messageBus.js +0 -473
- package/dist/esm/adapters/asyncStorage.js +0 -1
- package/dist/esm/adapters/expo.js +0 -3
- package/dist/esm/adapters/fileSystem.js +0 -1
- package/dist/esm/adapters/indexedDB.js +0 -1
- package/dist/esm/adapters/localStorage.js +0 -1
- package/dist/esm/arkfee/celenv.js +0 -40
- package/dist/esm/arkfee/estimator.js +0 -139
- package/dist/esm/arkfee/index.js +0 -1
- package/dist/esm/arkfee/types.js +0 -22
- package/dist/esm/arknote/index.js +0 -124
- package/dist/esm/bip322/index.js +0 -267
- package/dist/esm/contracts/arkcontract.js +0 -140
- package/dist/esm/contracts/contractManager.js +0 -625
- package/dist/esm/contracts/contractWatcher.js +0 -594
- package/dist/esm/contracts/handlers/default.js +0 -90
- package/dist/esm/contracts/handlers/delegate.js +0 -87
- package/dist/esm/contracts/handlers/helpers.js +0 -110
- package/dist/esm/contracts/handlers/index.js +0 -12
- package/dist/esm/contracts/handlers/registry.js +0 -86
- package/dist/esm/contracts/handlers/vhtlc.js +0 -191
- package/dist/esm/contracts/index.js +0 -13
- package/dist/esm/contracts/types.js +0 -1
- package/dist/esm/contracts/vtxoOwnership.js +0 -69
- package/dist/esm/extension/asset/assetGroup.js +0 -224
- package/dist/esm/extension/asset/assetId.js +0 -148
- package/dist/esm/extension/asset/assetInput.js +0 -217
- package/dist/esm/extension/asset/assetOutput.js +0 -169
- package/dist/esm/extension/asset/assetRef.js +0 -144
- package/dist/esm/extension/asset/index.js +0 -8
- package/dist/esm/extension/asset/metadata.js +0 -182
- package/dist/esm/extension/asset/packet.js +0 -110
- package/dist/esm/extension/asset/types.js +0 -19
- package/dist/esm/extension/asset/utils.js +0 -99
- package/dist/esm/extension/index.js +0 -248
- package/dist/esm/extension/packet.js +0 -16
- package/dist/esm/forfeit.js +0 -41
- package/dist/esm/identity/descriptor.js +0 -161
- package/dist/esm/identity/descriptorProvider.js +0 -1
- package/dist/esm/identity/hdCapableIdentity.js +0 -1
- package/dist/esm/identity/index.js +0 -12
- package/dist/esm/identity/seedIdentity.js +0 -453
- package/dist/esm/identity/serialize.js +0 -164
- package/dist/esm/identity/singleKey.js +0 -121
- package/dist/esm/identity/staticDescriptorProvider.js +0 -61
- package/dist/esm/index.js +0 -87
- package/dist/esm/intent/index.js +0 -255
- package/dist/esm/musig2/index.js +0 -3
- package/dist/esm/musig2/keys.js +0 -21
- package/dist/esm/musig2/nonces.js +0 -11
- package/dist/esm/musig2/sign.js +0 -63
- package/dist/esm/networks.js +0 -22
- package/dist/esm/package.json +0 -3
- package/dist/esm/providers/ark.js +0 -572
- package/dist/esm/providers/delegator.js +0 -81
- package/dist/esm/providers/electrum.js +0 -864
- package/dist/esm/providers/errors.js +0 -54
- package/dist/esm/providers/expoArk.js +0 -78
- package/dist/esm/providers/expoIndexer.js +0 -107
- package/dist/esm/providers/expoUtils.js +0 -87
- package/dist/esm/providers/indexer.js +0 -626
- package/dist/esm/providers/onchain.js +0 -258
- package/dist/esm/providers/utils.js +0 -117
- package/dist/esm/repositories/contractRepository.js +0 -1
- package/dist/esm/repositories/inMemory/contractRepository.js +0 -51
- package/dist/esm/repositories/inMemory/walletRepository.js +0 -111
- package/dist/esm/repositories/index.js +0 -10
- package/dist/esm/repositories/indexedDB/contractRepository.js +0 -183
- package/dist/esm/repositories/indexedDB/db.js +0 -4
- package/dist/esm/repositories/indexedDB/manager.js +0 -95
- package/dist/esm/repositories/indexedDB/schema.js +0 -199
- package/dist/esm/repositories/indexedDB/walletRepository.js +0 -470
- package/dist/esm/repositories/indexedDB/websqlAdapter.js +0 -138
- package/dist/esm/repositories/migrations/contractRepositoryImpl.js +0 -121
- package/dist/esm/repositories/migrations/fromStorageAdapter.js +0 -58
- package/dist/esm/repositories/migrations/walletRepositoryImpl.js +0 -180
- package/dist/esm/repositories/realm/contractRepository.js +0 -112
- package/dist/esm/repositories/realm/index.js +0 -3
- package/dist/esm/repositories/realm/schemas.js +0 -153
- package/dist/esm/repositories/realm/types.js +0 -6
- package/dist/esm/repositories/realm/walletRepository.js +0 -301
- package/dist/esm/repositories/scriptFromAddress.js +0 -13
- package/dist/esm/repositories/serialization.js +0 -67
- package/dist/esm/repositories/sqlite/contractRepository.js +0 -131
- package/dist/esm/repositories/sqlite/index.js +0 -2
- package/dist/esm/repositories/sqlite/types.js +0 -1
- package/dist/esm/repositories/sqlite/walletRepository.js +0 -437
- package/dist/esm/repositories/walletRepository.js +0 -1
- package/dist/esm/script/address.js +0 -104
- package/dist/esm/script/base.js +0 -179
- package/dist/esm/script/default.js +0 -54
- package/dist/esm/script/delegate.js +0 -50
- package/dist/esm/script/tapscript.js +0 -615
- package/dist/esm/script/vhtlc.js +0 -167
- package/dist/esm/storage/asyncStorage.js +0 -46
- package/dist/esm/storage/fileSystem.js +0 -104
- package/dist/esm/storage/inMemory.js +0 -20
- package/dist/esm/storage/index.js +0 -1
- package/dist/esm/storage/indexedDB.js +0 -97
- package/dist/esm/storage/localStorage.js +0 -47
- package/dist/esm/tree/signingSession.js +0 -191
- package/dist/esm/tree/txTree.js +0 -188
- package/dist/esm/tree/validation.js +0 -101
- package/dist/esm/utils/anchor.js +0 -31
- package/dist/esm/utils/arkTransaction.js +0 -264
- package/dist/esm/utils/bip21.js +0 -123
- package/dist/esm/utils/syncCursors.js +0 -119
- package/dist/esm/utils/timelock.js +0 -22
- package/dist/esm/utils/transaction.js +0 -24
- package/dist/esm/utils/transactionHistory.js +0 -180
- package/dist/esm/utils/txSizeEstimator.js +0 -128
- package/dist/esm/utils/unknownFields.js +0 -169
- package/dist/esm/wallet/asset-manager.js +0 -325
- package/dist/esm/wallet/asset.js +0 -113
- package/dist/esm/wallet/batch.js +0 -180
- package/dist/esm/wallet/delegator.js +0 -297
- package/dist/esm/wallet/expo/background.js +0 -111
- package/dist/esm/wallet/expo/index.js +0 -2
- package/dist/esm/wallet/expo/wallet.js +0 -193
- package/dist/esm/wallet/hdDescriptorProvider.js +0 -155
- package/dist/esm/wallet/index.js +0 -75
- package/dist/esm/wallet/onchain.js +0 -285
- package/dist/esm/wallet/ramps.js +0 -212
- package/dist/esm/wallet/serviceWorker/wallet-message-handler.js +0 -946
- package/dist/esm/wallet/serviceWorker/wallet.js +0 -1168
- package/dist/esm/wallet/unroll.js +0 -285
- package/dist/esm/wallet/utils.js +0 -103
- package/dist/esm/wallet/validation.js +0 -142
- package/dist/esm/wallet/vtxo-manager.js +0 -1136
- package/dist/esm/wallet/wallet.js +0 -2041
- package/dist/esm/worker/browser/service-worker-manager.js +0 -177
- package/dist/esm/worker/browser/utils.js +0 -63
- package/dist/esm/worker/errors.js +0 -11
- package/dist/esm/worker/expo/asyncStorageTaskQueue.js +0 -74
- package/dist/esm/worker/expo/index.js +0 -4
- package/dist/esm/worker/expo/processors/contractPollProcessor.js +0 -59
- package/dist/esm/worker/expo/processors/index.js +0 -1
- package/dist/esm/worker/expo/taskQueue.js +0 -37
- package/dist/esm/worker/expo/taskRunner.js +0 -69
- package/dist/esm/worker/messageBus.js +0 -469
- package/dist/types/adapters/asyncStorage.d.ts +0 -2
- package/dist/types/adapters/expo.d.ts +0 -4
- package/dist/types/adapters/fileSystem.d.ts +0 -2
- package/dist/types/adapters/indexedDB.d.ts +0 -2
- package/dist/types/adapters/localStorage.d.ts +0 -2
- package/dist/types/arkfee/celenv.d.ts +0 -25
- package/dist/types/arkfee/estimator.d.ts +0 -49
- package/dist/types/arkfee/index.d.ts +0 -2
- package/dist/types/arkfee/types.d.ts +0 -38
- package/dist/types/arknote/index.d.ts +0 -84
- package/dist/types/bip322/index.d.ts +0 -55
- package/dist/types/contracts/arkcontract.d.ts +0 -99
- package/dist/types/contracts/contractManager.d.ts +0 -381
- package/dist/types/contracts/contractWatcher.d.ts +0 -217
- package/dist/types/contracts/handlers/default.d.ts +0 -19
- package/dist/types/contracts/handlers/delegate.d.ts +0 -21
- package/dist/types/contracts/handlers/helpers.d.ts +0 -19
- package/dist/types/contracts/handlers/index.d.ts +0 -7
- package/dist/types/contracts/handlers/registry.d.ts +0 -65
- package/dist/types/contracts/handlers/vhtlc.d.ts +0 -32
- package/dist/types/contracts/index.d.ts +0 -14
- package/dist/types/contracts/types.d.ts +0 -233
- package/dist/types/contracts/vtxoOwnership.d.ts +0 -33
- package/dist/types/extension/asset/assetGroup.d.ts +0 -119
- package/dist/types/extension/asset/assetId.d.ts +0 -83
- package/dist/types/extension/asset/assetInput.d.ts +0 -64
- package/dist/types/extension/asset/assetOutput.d.ts +0 -54
- package/dist/types/extension/asset/assetRef.d.ts +0 -91
- package/dist/types/extension/asset/index.d.ts +0 -8
- package/dist/types/extension/asset/metadata.d.ts +0 -52
- package/dist/types/extension/asset/packet.d.ts +0 -41
- package/dist/types/extension/asset/types.d.ts +0 -16
- package/dist/types/extension/asset/utils.d.ts +0 -21
- package/dist/types/extension/index.d.ts +0 -56
- package/dist/types/extension/packet.d.ts +0 -21
- package/dist/types/forfeit.d.ts +0 -18
- package/dist/types/identity/descriptor.d.ts +0 -61
- package/dist/types/identity/descriptorProvider.d.ts +0 -35
- package/dist/types/identity/hdCapableIdentity.d.ts +0 -44
- package/dist/types/identity/index.d.ts +0 -56
- package/dist/types/identity/seedIdentity.d.ts +0 -254
- package/dist/types/identity/serialize.d.ts +0 -96
- package/dist/types/identity/singleKey.d.ts +0 -62
- package/dist/types/identity/staticDescriptorProvider.d.ts +0 -18
- package/dist/types/index.d.ts +0 -59
- package/dist/types/intent/index.d.ts +0 -86
- package/dist/types/musig2/index.d.ts +0 -4
- package/dist/types/musig2/keys.d.ts +0 -9
- package/dist/types/musig2/nonces.d.ts +0 -14
- package/dist/types/musig2/sign.d.ts +0 -27
- package/dist/types/networks.d.ts +0 -16
- package/dist/types/providers/ark.d.ts +0 -369
- package/dist/types/providers/delegator.d.ts +0 -82
- package/dist/types/providers/electrum.d.ts +0 -312
- package/dist/types/providers/errors.d.ts +0 -13
- package/dist/types/providers/expoArk.d.ts +0 -22
- package/dist/types/providers/expoIndexer.d.ts +0 -18
- package/dist/types/providers/expoUtils.d.ts +0 -18
- package/dist/types/providers/indexer.d.ts +0 -301
- package/dist/types/providers/onchain.d.ts +0 -148
- package/dist/types/providers/utils.d.ts +0 -12
- package/dist/types/repositories/contractRepository.d.ts +0 -32
- package/dist/types/repositories/inMemory/contractRepository.d.ts +0 -17
- package/dist/types/repositories/inMemory/walletRepository.d.ts +0 -29
- package/dist/types/repositories/index.d.ts +0 -9
- package/dist/types/repositories/indexedDB/contractRepository.d.ts +0 -21
- package/dist/types/repositories/indexedDB/db.d.ts +0 -4
- package/dist/types/repositories/indexedDB/manager.d.ts +0 -25
- package/dist/types/repositories/indexedDB/schema.d.ts +0 -9
- package/dist/types/repositories/indexedDB/walletRepository.d.ts +0 -28
- package/dist/types/repositories/indexedDB/websqlAdapter.d.ts +0 -49
- package/dist/types/repositories/migrations/contractRepositoryImpl.d.ts +0 -24
- package/dist/types/repositories/migrations/fromStorageAdapter.d.ts +0 -19
- package/dist/types/repositories/migrations/walletRepositoryImpl.d.ts +0 -27
- package/dist/types/repositories/realm/contractRepository.d.ts +0 -24
- package/dist/types/repositories/realm/index.d.ts +0 -4
- package/dist/types/repositories/realm/types.d.ts +0 -16
- package/dist/types/repositories/realm/walletRepository.d.ts +0 -34
- package/dist/types/repositories/scriptFromAddress.d.ts +0 -9
- package/dist/types/repositories/serialization.d.ts +0 -65
- package/dist/types/repositories/sqlite/contractRepository.d.ts +0 -33
- package/dist/types/repositories/sqlite/index.d.ts +0 -3
- package/dist/types/repositories/sqlite/types.d.ts +0 -18
- package/dist/types/repositories/walletRepository.d.ts +0 -72
- package/dist/types/script/address.d.ts +0 -67
- package/dist/types/script/base.d.ts +0 -105
- package/dist/types/script/default.d.ts +0 -44
- package/dist/types/script/delegate.d.ts +0 -40
- package/dist/types/script/tapscript.d.ts +0 -169
- package/dist/types/script/vhtlc.d.ts +0 -66
- package/dist/types/tree/signingSession.d.ts +0 -37
- package/dist/types/tree/txTree.d.ts +0 -28
- package/dist/types/tree/validation.d.ts +0 -15
- package/dist/types/utils/anchor.d.ts +0 -19
- package/dist/types/utils/arkTransaction.d.ts +0 -49
- package/dist/types/utils/bip21.d.ts +0 -38
- package/dist/types/utils/syncCursors.d.ts +0 -60
- package/dist/types/utils/timelock.d.ts +0 -9
- package/dist/types/utils/transaction.d.ts +0 -13
- package/dist/types/utils/transactionHistory.d.ts +0 -15
- package/dist/types/utils/txSizeEstimator.d.ts +0 -40
- package/dist/types/utils/unknownFields.d.ts +0 -83
- package/dist/types/wallet/asset-manager.d.ts +0 -69
- package/dist/types/wallet/asset.d.ts +0 -21
- package/dist/types/wallet/batch.d.ts +0 -107
- package/dist/types/wallet/delegator.d.ts +0 -48
- package/dist/types/wallet/expo/background.d.ts +0 -66
- package/dist/types/wallet/expo/index.d.ts +0 -4
- package/dist/types/wallet/hdDescriptorProvider.d.ts +0 -93
- package/dist/types/wallet/index.d.ts +0 -755
- package/dist/types/wallet/onchain.d.ts +0 -109
- package/dist/types/wallet/ramps.d.ts +0 -64
- package/dist/types/wallet/serviceWorker/wallet-message-handler.d.ts +0 -543
- package/dist/types/wallet/serviceWorker/wallet.d.ts +0 -238
- package/dist/types/wallet/unroll.d.ts +0 -114
- package/dist/types/wallet/utils.d.ts +0 -36
- package/dist/types/wallet/validation.d.ts +0 -24
- package/dist/types/wallet/vtxo-manager.d.ts +0 -476
- package/dist/types/wallet/wallet.d.ts +0 -360
- package/dist/types/worker/browser/service-worker-manager.d.ts +0 -32
- package/dist/types/worker/browser/utils.d.ts +0 -17
- package/dist/types/worker/errors.d.ts +0 -7
- package/dist/types/worker/expo/index.d.ts +0 -7
- package/dist/types/worker/expo/processors/contractPollProcessor.d.ts +0 -19
- package/dist/types/worker/expo/processors/index.d.ts +0 -1
- package/dist/types/worker/expo/taskQueue.d.ts +0 -50
- package/dist/types/worker/expo/taskRunner.d.ts +0 -66
- package/dist/types/worker/messageBus.d.ts +0 -188
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LocalStorageAdapter = void 0;
|
|
4
|
-
var localStorage_1 = require("../storage/localStorage");
|
|
5
|
-
Object.defineProperty(exports, "LocalStorageAdapter", { enumerable: true, get: function () { return localStorage_1.LocalStorageAdapter; } });
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IntentOnchainInputEnv = exports.IntentOffchainInputEnv = exports.IntentOutputEnv = exports.OutputScriptVariableName = exports.InputTypeVariableName = exports.WeightVariableName = exports.BirthVariableName = exports.ExpiryVariableName = exports.AmountVariableName = void 0;
|
|
4
|
-
const cel_js_1 = require("@marcbachmann/cel-js");
|
|
5
|
-
/**
|
|
6
|
-
* Variable names used in CEL expressions
|
|
7
|
-
*/
|
|
8
|
-
exports.AmountVariableName = "amount";
|
|
9
|
-
exports.ExpiryVariableName = "expiry";
|
|
10
|
-
exports.BirthVariableName = "birth";
|
|
11
|
-
exports.WeightVariableName = "weight";
|
|
12
|
-
exports.InputTypeVariableName = "inputType";
|
|
13
|
-
exports.OutputScriptVariableName = "script";
|
|
14
|
-
const nowFunction = {
|
|
15
|
-
signature: "now(): double",
|
|
16
|
-
implementation: () => Math.floor(Date.now() / 1000),
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* IntentOutputEnv is the CEL environment for output fee calculation
|
|
20
|
-
* Variables: amount, script
|
|
21
|
-
*/
|
|
22
|
-
exports.IntentOutputEnv = new cel_js_1.Environment()
|
|
23
|
-
.registerVariable(exports.AmountVariableName, "double")
|
|
24
|
-
.registerVariable(exports.OutputScriptVariableName, "string")
|
|
25
|
-
.registerFunction(nowFunction.signature, nowFunction.implementation);
|
|
26
|
-
/**
|
|
27
|
-
* IntentOffchainInputEnv is the CEL environment for offchain input fee calculation
|
|
28
|
-
* Variables: amount, expiry, birth, weight, inputType
|
|
29
|
-
*/
|
|
30
|
-
exports.IntentOffchainInputEnv = new cel_js_1.Environment()
|
|
31
|
-
.registerVariable(exports.AmountVariableName, "double")
|
|
32
|
-
.registerVariable(exports.ExpiryVariableName, "double")
|
|
33
|
-
.registerVariable(exports.BirthVariableName, "double")
|
|
34
|
-
.registerVariable(exports.WeightVariableName, "double")
|
|
35
|
-
.registerVariable(exports.InputTypeVariableName, "string")
|
|
36
|
-
.registerFunction(nowFunction.signature, nowFunction.implementation);
|
|
37
|
-
/**
|
|
38
|
-
* IntentOnchainInputEnv is the CEL environment for onchain input fee calculation
|
|
39
|
-
* Variables: amount
|
|
40
|
-
*/
|
|
41
|
-
exports.IntentOnchainInputEnv = new cel_js_1.Environment()
|
|
42
|
-
.registerVariable(exports.AmountVariableName, "double")
|
|
43
|
-
.registerFunction(nowFunction.signature, nowFunction.implementation);
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Estimator = void 0;
|
|
4
|
-
const celenv_js_1 = require("./celenv.js");
|
|
5
|
-
const types_js_1 = require("./types.js");
|
|
6
|
-
/**
|
|
7
|
-
* Estimator evaluates CEL expressions to calculate fees for Arkade intents
|
|
8
|
-
*/
|
|
9
|
-
class Estimator {
|
|
10
|
-
/**
|
|
11
|
-
* Creates a new Estimator with the given config
|
|
12
|
-
* @param config - Configuration containing CEL programs for fee calculation
|
|
13
|
-
*/
|
|
14
|
-
constructor(config) {
|
|
15
|
-
this.config = config;
|
|
16
|
-
this.intentOffchainInput = config.offchainInput
|
|
17
|
-
? parseProgram(config.offchainInput, celenv_js_1.IntentOffchainInputEnv)
|
|
18
|
-
: undefined;
|
|
19
|
-
this.intentOnchainInput = config.onchainInput
|
|
20
|
-
? parseProgram(config.onchainInput, celenv_js_1.IntentOnchainInputEnv)
|
|
21
|
-
: undefined;
|
|
22
|
-
this.intentOffchainOutput = config.offchainOutput
|
|
23
|
-
? parseProgram(config.offchainOutput, celenv_js_1.IntentOutputEnv)
|
|
24
|
-
: undefined;
|
|
25
|
-
this.intentOnchainOutput = config.onchainOutput
|
|
26
|
-
? parseProgram(config.onchainOutput, celenv_js_1.IntentOutputEnv)
|
|
27
|
-
: undefined;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Evaluates the fee for a given vtxo input
|
|
31
|
-
* @param input - The offchain input to evaluate
|
|
32
|
-
* @returns The fee amount for this input
|
|
33
|
-
*/
|
|
34
|
-
evalOffchainInput(input) {
|
|
35
|
-
if (!this.intentOffchainInput) {
|
|
36
|
-
return types_js_1.FeeAmount.ZERO;
|
|
37
|
-
}
|
|
38
|
-
const args = inputToArgs(input);
|
|
39
|
-
return new types_js_1.FeeAmount(this.intentOffchainInput.program(args));
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Evaluates the fee for a given boarding input
|
|
43
|
-
* @param input - The onchain input to evaluate
|
|
44
|
-
* @returns The fee amount for this input
|
|
45
|
-
*/
|
|
46
|
-
evalOnchainInput(input) {
|
|
47
|
-
if (!this.intentOnchainInput) {
|
|
48
|
-
return types_js_1.FeeAmount.ZERO;
|
|
49
|
-
}
|
|
50
|
-
const args = {
|
|
51
|
-
amount: Number(input.amount),
|
|
52
|
-
};
|
|
53
|
-
return new types_js_1.FeeAmount(this.intentOnchainInput.program(args));
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Evaluates the fee for a given vtxo output
|
|
57
|
-
* @param output - The output to evaluate
|
|
58
|
-
* @returns The fee amount for this output
|
|
59
|
-
*/
|
|
60
|
-
evalOffchainOutput(output) {
|
|
61
|
-
if (!this.intentOffchainOutput) {
|
|
62
|
-
return types_js_1.FeeAmount.ZERO;
|
|
63
|
-
}
|
|
64
|
-
const args = outputToArgs(output);
|
|
65
|
-
return new types_js_1.FeeAmount(this.intentOffchainOutput.program(args));
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Evaluates the fee for a given collaborative exit output
|
|
69
|
-
* @param output - The output to evaluate
|
|
70
|
-
* @returns The fee amount for this output
|
|
71
|
-
*/
|
|
72
|
-
evalOnchainOutput(output) {
|
|
73
|
-
if (!this.intentOnchainOutput) {
|
|
74
|
-
return types_js_1.FeeAmount.ZERO;
|
|
75
|
-
}
|
|
76
|
-
const args = outputToArgs(output);
|
|
77
|
-
return new types_js_1.FeeAmount(this.intentOnchainOutput.program(args));
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Evaluates the fee for a given set of inputs and outputs
|
|
81
|
-
* @param offchainInputs - Array of offchain inputs to evaluate
|
|
82
|
-
* @param onchainInputs - Array of onchain inputs to evaluate
|
|
83
|
-
* @param offchainOutputs - Array of offchain outputs to evaluate
|
|
84
|
-
* @param onchainOutputs - Array of onchain outputs to evaluate
|
|
85
|
-
* @returns The total fee amount
|
|
86
|
-
*/
|
|
87
|
-
eval(offchainInputs, onchainInputs, offchainOutputs, onchainOutputs) {
|
|
88
|
-
let fee = types_js_1.FeeAmount.ZERO;
|
|
89
|
-
for (const input of offchainInputs) {
|
|
90
|
-
fee = fee.add(this.evalOffchainInput(input));
|
|
91
|
-
}
|
|
92
|
-
for (const input of onchainInputs) {
|
|
93
|
-
fee = fee.add(this.evalOnchainInput(input));
|
|
94
|
-
}
|
|
95
|
-
for (const output of offchainOutputs) {
|
|
96
|
-
fee = fee.add(this.evalOffchainOutput(output));
|
|
97
|
-
}
|
|
98
|
-
for (const output of onchainOutputs) {
|
|
99
|
-
fee = fee.add(this.evalOnchainOutput(output));
|
|
100
|
-
}
|
|
101
|
-
return fee;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
exports.Estimator = Estimator;
|
|
105
|
-
function inputToArgs(input) {
|
|
106
|
-
const args = {
|
|
107
|
-
amount: Number(input.amount),
|
|
108
|
-
inputType: input.type,
|
|
109
|
-
weight: input.weight,
|
|
110
|
-
};
|
|
111
|
-
if (input.expiry) {
|
|
112
|
-
args.expiry = Math.floor(input.expiry.getTime() / 1000);
|
|
113
|
-
}
|
|
114
|
-
if (input.birth) {
|
|
115
|
-
args.birth = Math.floor(input.birth.getTime() / 1000);
|
|
116
|
-
}
|
|
117
|
-
return args;
|
|
118
|
-
}
|
|
119
|
-
function outputToArgs(output) {
|
|
120
|
-
return {
|
|
121
|
-
amount: Number(output.amount),
|
|
122
|
-
script: output.script,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Parses a CEL program and validates its return type
|
|
127
|
-
* @param text - The CEL program text to parse
|
|
128
|
-
* @param env - The CEL environment to use
|
|
129
|
-
* @returns parsed and validated program
|
|
130
|
-
*/
|
|
131
|
-
function parseProgram(text, env) {
|
|
132
|
-
const program = env.parse(text);
|
|
133
|
-
// Type check the program
|
|
134
|
-
const checkResult = program.check();
|
|
135
|
-
if (!checkResult.valid) {
|
|
136
|
-
throw new Error(`type check failed: ${checkResult.error?.message ?? "unknown error"}`);
|
|
137
|
-
}
|
|
138
|
-
// Verify return type is double
|
|
139
|
-
if (checkResult.type !== "double") {
|
|
140
|
-
throw new Error(`expected return type double, got ${checkResult.type}`);
|
|
141
|
-
}
|
|
142
|
-
return { program, text };
|
|
143
|
-
}
|
package/dist/cjs/arkfee/index.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Estimator = void 0;
|
|
4
|
-
var estimator_1 = require("./estimator");
|
|
5
|
-
Object.defineProperty(exports, "Estimator", { enumerable: true, get: function () { return estimator_1.Estimator; } });
|
package/dist/cjs/arkfee/types.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FeeAmount = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* FeeAmount is a wrapper around a number that represents a fee amount in satoshis floating point.
|
|
6
|
-
* @param value - The fee amount in floating point.
|
|
7
|
-
* @example
|
|
8
|
-
* const fee = new FeeAmount(1.23456789);
|
|
9
|
-
* console.log(fee.value); // 1.23456789
|
|
10
|
-
* console.log(fee.satoshis); // 2
|
|
11
|
-
*/
|
|
12
|
-
class FeeAmount {
|
|
13
|
-
constructor(value) {
|
|
14
|
-
this.value = value;
|
|
15
|
-
}
|
|
16
|
-
/** Returns the fee amount rounded up to whole satoshis. */
|
|
17
|
-
get satoshis() {
|
|
18
|
-
return this.value ? Math.ceil(this.value) : 0;
|
|
19
|
-
}
|
|
20
|
-
/** Add two fee amounts together. */
|
|
21
|
-
add(other) {
|
|
22
|
-
return new FeeAmount(this.value + other.value);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.FeeAmount = FeeAmount;
|
|
26
|
-
FeeAmount.ZERO = new FeeAmount(0);
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ArkNote = void 0;
|
|
4
|
-
const base_1 = require("@scure/base");
|
|
5
|
-
const utils_js_1 = require("@scure/btc-signer/utils.js");
|
|
6
|
-
const btc_signer_1 = require("@scure/btc-signer");
|
|
7
|
-
const base_2 = require("../script/base");
|
|
8
|
-
/**
|
|
9
|
-
* ArkNotes are special virtual outputs in the Arkade protocol that
|
|
10
|
-
* can be created and spent without requiring any transactions.
|
|
11
|
-
* The server mints them, and they are encoded as base58 strings
|
|
12
|
-
* with a human-readable prefix, a preimage and a value.
|
|
13
|
-
*
|
|
14
|
-
* @see VtxoScript
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // Create an ArkNote
|
|
19
|
-
* const note = new ArkNote(preimage, 50000);
|
|
20
|
-
*
|
|
21
|
-
* // Encode to string
|
|
22
|
-
* const noteString = note.toString();
|
|
23
|
-
*
|
|
24
|
-
* // Decode from string
|
|
25
|
-
* const decodedNote = ArkNote.fromString(noteString);
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
class ArkNote {
|
|
29
|
-
/**
|
|
30
|
-
* Create an ArkNote from a preimage and value.
|
|
31
|
-
*
|
|
32
|
-
* @param preimage - 32-byte preimage revealed to spend the note
|
|
33
|
-
* @param value - Note value in satoshis
|
|
34
|
-
* @param HRP - Optional human-readable prefix for string encoding
|
|
35
|
-
*/
|
|
36
|
-
constructor(preimage, value, HRP = ArkNote.DefaultHRP) {
|
|
37
|
-
this.preimage = preimage;
|
|
38
|
-
this.value = value;
|
|
39
|
-
this.HRP = HRP;
|
|
40
|
-
this.vout = 0;
|
|
41
|
-
const preimageHash = (0, utils_js_1.sha256)(this.preimage);
|
|
42
|
-
this.vtxoScript = new base_2.VtxoScript([noteTapscript(preimageHash)]);
|
|
43
|
-
const leaf = this.vtxoScript.leaves[0];
|
|
44
|
-
this.txid = base_1.hex.encode(new Uint8Array(preimageHash).reverse());
|
|
45
|
-
this.tapTree = this.vtxoScript.encode();
|
|
46
|
-
this.forfeitTapLeafScript = leaf;
|
|
47
|
-
this.intentTapLeafScript = leaf;
|
|
48
|
-
this.value = value;
|
|
49
|
-
this.status = { confirmed: true };
|
|
50
|
-
this.extraWitness = [this.preimage];
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Encode the note as raw bytes.
|
|
54
|
-
*
|
|
55
|
-
* @returns Serialized note bytes
|
|
56
|
-
* @see decode
|
|
57
|
-
*/
|
|
58
|
-
encode() {
|
|
59
|
-
const result = new Uint8Array(ArkNote.Length);
|
|
60
|
-
result.set(this.preimage, 0);
|
|
61
|
-
writeUInt32BE(result, this.value, this.preimage.length);
|
|
62
|
-
return result;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Decode a note from raw bytes.
|
|
66
|
-
*
|
|
67
|
-
* @param data - Serialized note bytes
|
|
68
|
-
* @param hrp - Human-readable prefix expected for future string encoding
|
|
69
|
-
* @returns Decoded ArkNote
|
|
70
|
-
* @throws Error if the payload length is invalid
|
|
71
|
-
* @see encode
|
|
72
|
-
*/
|
|
73
|
-
static decode(data, hrp = ArkNote.DefaultHRP) {
|
|
74
|
-
if (data.length !== ArkNote.Length) {
|
|
75
|
-
throw new Error(`invalid data length: expected ${ArkNote.Length} bytes, got ${data.length}`);
|
|
76
|
-
}
|
|
77
|
-
const preimage = data.subarray(0, ArkNote.PreimageLength);
|
|
78
|
-
const value = readUInt32BE(data, ArkNote.PreimageLength);
|
|
79
|
-
return new ArkNote(preimage, value, hrp);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Decode a note from its base58 string form.
|
|
83
|
-
*
|
|
84
|
-
* @param noteStr - Base58-encoded note string
|
|
85
|
-
* @param hrp - Human-readable prefix expected on the note string
|
|
86
|
-
* @returns Decoded ArkNote
|
|
87
|
-
* @throws Error if the prefix or base58 payload is invalid
|
|
88
|
-
* @see toString
|
|
89
|
-
*/
|
|
90
|
-
static fromString(noteStr, hrp = ArkNote.DefaultHRP) {
|
|
91
|
-
noteStr = noteStr.trim();
|
|
92
|
-
if (!noteStr.startsWith(hrp)) {
|
|
93
|
-
throw new Error(`invalid human-readable part: expected ${hrp} prefix (note '${noteStr}')`);
|
|
94
|
-
}
|
|
95
|
-
const encoded = noteStr.slice(hrp.length);
|
|
96
|
-
const decoded = base_1.base58.decode(encoded);
|
|
97
|
-
if (decoded.length === 0) {
|
|
98
|
-
throw new Error("failed to decode base58 string");
|
|
99
|
-
}
|
|
100
|
-
return ArkNote.decode(decoded, hrp);
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Encode the note to its human-readable base58 string form.
|
|
104
|
-
*
|
|
105
|
-
* @returns Base58-encoded note string
|
|
106
|
-
* @see fromString
|
|
107
|
-
*/
|
|
108
|
-
toString() {
|
|
109
|
-
return this.HRP + base_1.base58.encode(this.encode());
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
exports.ArkNote = ArkNote;
|
|
113
|
-
ArkNote.DefaultHRP = "arknote";
|
|
114
|
-
ArkNote.PreimageLength = 32; // 32 bytes for the preimage
|
|
115
|
-
ArkNote.ValueLength = 4; // 4 bytes for the value
|
|
116
|
-
ArkNote.Length = ArkNote.PreimageLength + ArkNote.ValueLength;
|
|
117
|
-
ArkNote.FakeOutpointIndex = 0;
|
|
118
|
-
function writeUInt32BE(array, value, offset) {
|
|
119
|
-
const view = new DataView(array.buffer, array.byteOffset + offset, 4);
|
|
120
|
-
view.setUint32(0, value, false);
|
|
121
|
-
}
|
|
122
|
-
function readUInt32BE(array, offset) {
|
|
123
|
-
const view = new DataView(array.buffer, array.byteOffset + offset, 4);
|
|
124
|
-
return view.getUint32(0, false);
|
|
125
|
-
}
|
|
126
|
-
function noteTapscript(preimageHash) {
|
|
127
|
-
return btc_signer_1.Script.encode(["SHA256", preimageHash, "EQUAL"]);
|
|
128
|
-
}
|
package/dist/cjs/bip322/index.js
DELETED
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BIP322 = void 0;
|
|
4
|
-
const btc_signer_1 = require("@scure/btc-signer");
|
|
5
|
-
const utils_js_1 = require("@scure/btc-signer/utils.js");
|
|
6
|
-
const secp256k1_js_1 = require("@noble/curves/secp256k1.js");
|
|
7
|
-
const utils_js_2 = require("@noble/curves/utils.js");
|
|
8
|
-
const base_1 = require("@scure/base");
|
|
9
|
-
const transaction_1 = require("../utils/transaction");
|
|
10
|
-
const intent_1 = require("../intent");
|
|
11
|
-
const TAG_BIP322 = "BIP0322-signed-message";
|
|
12
|
-
/**
|
|
13
|
-
* BIP-322 simple message signing and verification.
|
|
14
|
-
*
|
|
15
|
-
* Supports P2TR (Taproot) signing and verification, P2WPKH verification,
|
|
16
|
-
* and legacy P2PKH verification (Bitcoin Core signmessage format).
|
|
17
|
-
*
|
|
18
|
-
* Reuses the same toSpend/toSign transaction construction as Intent proofs,
|
|
19
|
-
* but with the standard BIP-322 tagged hash ("BIP0322-signed-message")
|
|
20
|
-
* instead of the Arkade-specific tag.
|
|
21
|
-
*
|
|
22
|
-
* @see https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* // Sign a message (P2TR)
|
|
27
|
-
* const signature = await BIP322.sign("Hello Bitcoin!", identity);
|
|
28
|
-
*
|
|
29
|
-
* // Verify a signature (P2TR or P2WPKH)
|
|
30
|
-
* const valid = BIP322.verify("Hello Bitcoin!", signature, "bc1p...");
|
|
31
|
-
* const valid2 = BIP322.verify("Hello Bitcoin!", signature, "bc1q...");
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
var BIP322;
|
|
35
|
-
(function (BIP322) {
|
|
36
|
-
/**
|
|
37
|
-
* Sign a message using the BIP-322 simple signature scheme.
|
|
38
|
-
*
|
|
39
|
-
* Constructs the standard BIP-322 toSpend and toSign transactions,
|
|
40
|
-
* signs via the Identity interface, and returns the base64-encoded
|
|
41
|
-
* witness stack.
|
|
42
|
-
*
|
|
43
|
-
* @param message - The message to sign
|
|
44
|
-
* @param identity - Identity instance (holds the private key internally)
|
|
45
|
-
* @param network - Optional Bitcoin network for P2TR address derivation
|
|
46
|
-
* @returns Base64-encoded BIP-322 simple signature (witness stack)
|
|
47
|
-
*/
|
|
48
|
-
async function sign(message, identity, network) {
|
|
49
|
-
const xOnlyPubKey = await identity.xOnlyPublicKey();
|
|
50
|
-
const payment = (0, btc_signer_1.p2tr)(xOnlyPubKey, undefined, network);
|
|
51
|
-
// Build BIP-322 toSpend using shared construction with BIP-322 tag
|
|
52
|
-
const toSpend = (0, intent_1.craftToSpendTx)(message, payment.script, TAG_BIP322);
|
|
53
|
-
// Build BIP-322 toSign: version 0, single input spending toSpend, OP_RETURN output
|
|
54
|
-
const toSign = craftBIP322ToSignP2TR(toSpend, payment.script, xOnlyPubKey);
|
|
55
|
-
// Sign with identity (handles P2TR key-spend internally)
|
|
56
|
-
const signed = await identity.sign(toSign, [0]);
|
|
57
|
-
// Finalize and extract witness
|
|
58
|
-
signed.finalizeIdx(0);
|
|
59
|
-
const input = signed.getInput(0);
|
|
60
|
-
if (!input.finalScriptWitness) {
|
|
61
|
-
throw new Error("BIP-322: failed to produce witness after signing");
|
|
62
|
-
}
|
|
63
|
-
return base_1.base64.encode(btc_signer_1.RawWitness.encode(input.finalScriptWitness));
|
|
64
|
-
}
|
|
65
|
-
BIP322.sign = sign;
|
|
66
|
-
/**
|
|
67
|
-
* Verify a BIP-322 signature for a P2TR, P2WPKH, or legacy P2PKH address.
|
|
68
|
-
*
|
|
69
|
-
* For segwit addresses (P2TR, P2WPKH), reconstructs the BIP-322
|
|
70
|
-
* toSpend/toSign transactions and verifies the witness signature.
|
|
71
|
-
*
|
|
72
|
-
* For P2PKH addresses, verifies using the Bitcoin Core legacy
|
|
73
|
-
* `signmessage` format (compact recoverable ECDSA signature).
|
|
74
|
-
*
|
|
75
|
-
* @param message - The original message that was signed
|
|
76
|
-
* @param signature - Base64-encoded signature (BIP-322 witness or legacy compact)
|
|
77
|
-
* @param address - P2TR, P2WPKH, or P2PKH address of the signer
|
|
78
|
-
* @param network - Optional Bitcoin network for address decoding
|
|
79
|
-
* @returns true if the signature is valid
|
|
80
|
-
*/
|
|
81
|
-
function verify(message, signature, address, network) {
|
|
82
|
-
let decoded;
|
|
83
|
-
try {
|
|
84
|
-
decoded = (0, btc_signer_1.Address)(network).decode(address);
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
// Legacy P2PKH: signature is base64 of 65 raw bytes, not a witness
|
|
90
|
-
if (decoded.type === "pkh") {
|
|
91
|
-
try {
|
|
92
|
-
return verifyLegacy(message, base_1.base64.decode(signature), decoded.hash);
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// BIP-322 simple: signature is base64 of RawWitness
|
|
99
|
-
let pkScript;
|
|
100
|
-
let witnessItems;
|
|
101
|
-
try {
|
|
102
|
-
pkScript = btc_signer_1.OutScript.encode(decoded);
|
|
103
|
-
witnessItems = btc_signer_1.RawWitness.decode(base_1.base64.decode(signature));
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
if (witnessItems.length === 0) {
|
|
109
|
-
return false;
|
|
110
|
-
}
|
|
111
|
-
if (decoded.type === "tr") {
|
|
112
|
-
return verifyP2TR(message, witnessItems, pkScript, decoded.pubkey);
|
|
113
|
-
}
|
|
114
|
-
if (decoded.type === "wpkh") {
|
|
115
|
-
return verifyP2WPKH(message, witnessItems, pkScript, decoded.hash);
|
|
116
|
-
}
|
|
117
|
-
throw new Error(`BIP-322 verify: unsupported address type '${decoded.type}'`);
|
|
118
|
-
}
|
|
119
|
-
BIP322.verify = verify;
|
|
120
|
-
})(BIP322 || (exports.BIP322 = BIP322 = {}));
|
|
121
|
-
function verifyP2TR(message, witnessItems, pkScript, pubkey) {
|
|
122
|
-
// P2TR key-spend witness is exactly [schnorr_signature].
|
|
123
|
-
// Multiple items indicates a script-path spend, which BIP-322 simple doesn't cover.
|
|
124
|
-
if (witnessItems.length !== 1) {
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
const sig = witnessItems[0];
|
|
128
|
-
if (sig.length !== 64 && sig.length !== 65) {
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
// BIP-322 simple only allows SIGHASH_DEFAULT (64-byte sig) or SIGHASH_ALL (0x01).
|
|
132
|
-
const sighashType = sig.length === 65 ? sig[64] : btc_signer_1.SigHash.DEFAULT;
|
|
133
|
-
if (sighashType !== btc_signer_1.SigHash.DEFAULT && sighashType !== btc_signer_1.SigHash.ALL) {
|
|
134
|
-
return false;
|
|
135
|
-
}
|
|
136
|
-
const toSpend = (0, intent_1.craftToSpendTx)(message, pkScript, TAG_BIP322);
|
|
137
|
-
const toSign = craftBIP322ToSignP2TR(toSpend, pkScript, pubkey);
|
|
138
|
-
const sighash = toSign.preimageWitnessV1(0, [pkScript], sighashType, [0n]);
|
|
139
|
-
const rawSig = sig.length === 65 ? sig.subarray(0, 64) : sig;
|
|
140
|
-
return secp256k1_js_1.schnorr.verify(rawSig, sighash, pubkey);
|
|
141
|
-
}
|
|
142
|
-
function verifyP2WPKH(message, witnessItems, pkScript, addressHash) {
|
|
143
|
-
// P2WPKH witness: [der_signature || sighash_byte, compressed_pubkey]
|
|
144
|
-
if (witnessItems.length !== 2) {
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
const sigWithHash = witnessItems[0];
|
|
148
|
-
const pubkey = witnessItems[1];
|
|
149
|
-
if (pubkey.length !== 33 || sigWithHash.length < 2) {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
// Verify the pubkey matches the address hash
|
|
153
|
-
const derived = (0, btc_signer_1.p2wpkh)(pubkey);
|
|
154
|
-
if (!(0, utils_js_2.equalBytes)(derived.hash, addressHash)) {
|
|
155
|
-
return false;
|
|
156
|
-
}
|
|
157
|
-
// Extract sighash type (last byte) and DER signature
|
|
158
|
-
const sighashType = sigWithHash[sigWithHash.length - 1];
|
|
159
|
-
const derSig = sigWithHash.subarray(0, sigWithHash.length - 1);
|
|
160
|
-
// Build toSpend and toSign
|
|
161
|
-
const toSpend = (0, intent_1.craftToSpendTx)(message, pkScript, TAG_BIP322);
|
|
162
|
-
const toSign = craftBIP322ToSignSimple(toSpend, pkScript);
|
|
163
|
-
// BIP-143 scriptCode for P2WPKH: equivalent P2PKH script
|
|
164
|
-
const scriptCode = btc_signer_1.OutScript.encode({ type: "pkh", hash: addressHash });
|
|
165
|
-
const sighash = toSign.preimageWitnessV0(0, scriptCode, sighashType, 0n);
|
|
166
|
-
return secp256k1_js_1.secp256k1.verify(derSig, sighash, pubkey, {
|
|
167
|
-
prehash: false,
|
|
168
|
-
format: "der",
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Verify a legacy Bitcoin Core signmessage signature for a P2PKH address.
|
|
173
|
-
*
|
|
174
|
-
* The signature is 65 bytes: [recovery_flag, r(32), s(32)].
|
|
175
|
-
* The recovery flag encodes both the recovery ID and whether the key is
|
|
176
|
-
* compressed: flag = 27 + recovery_id (+ 4 if compressed).
|
|
177
|
-
*/
|
|
178
|
-
function verifyLegacy(message, sigBytes, addressHash) {
|
|
179
|
-
if (sigBytes.length !== 65) {
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
const flag = sigBytes[0];
|
|
183
|
-
if (flag < 27 || flag > 34) {
|
|
184
|
-
return false;
|
|
185
|
-
}
|
|
186
|
-
const compressed = flag >= 31;
|
|
187
|
-
const recoveryId = compressed ? flag - 31 : flag - 27;
|
|
188
|
-
const compactSig = sigBytes.subarray(1, 65);
|
|
189
|
-
const msgHash = bitcoinMessageHash(message);
|
|
190
|
-
try {
|
|
191
|
-
const sig = secp256k1_js_1.secp256k1.Signature.fromBytes(compactSig, "compact").addRecoveryBit(recoveryId);
|
|
192
|
-
const point = sig.recoverPublicKey(msgHash);
|
|
193
|
-
const pubkeyBytes = point.toBytes(compressed);
|
|
194
|
-
return (0, utils_js_2.equalBytes)((0, utils_js_1.hash160)(pubkeyBytes), addressHash);
|
|
195
|
-
}
|
|
196
|
-
catch {
|
|
197
|
-
return false;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Compute the Bitcoin message hash: SHA256d(magic_prefix + CompactSize(len) + message).
|
|
202
|
-
*/
|
|
203
|
-
function bitcoinMessageHash(message) {
|
|
204
|
-
const MAGIC = new TextEncoder().encode("\x18Bitcoin Signed Message:\n");
|
|
205
|
-
const msgBytes = new TextEncoder().encode(message);
|
|
206
|
-
return (0, utils_js_1.sha256x2)((0, utils_js_1.concatBytes)(MAGIC, encodeCompactSize(msgBytes.length), msgBytes));
|
|
207
|
-
}
|
|
208
|
-
function encodeCompactSize(n) {
|
|
209
|
-
if (n < 253)
|
|
210
|
-
return new Uint8Array([n]);
|
|
211
|
-
if (n <= 0xffff) {
|
|
212
|
-
const buf = new Uint8Array(3);
|
|
213
|
-
buf[0] = 253;
|
|
214
|
-
buf[1] = n & 0xff;
|
|
215
|
-
buf[2] = (n >> 8) & 0xff;
|
|
216
|
-
return buf;
|
|
217
|
-
}
|
|
218
|
-
const buf = new Uint8Array(5);
|
|
219
|
-
buf[0] = 254;
|
|
220
|
-
buf[1] = n & 0xff;
|
|
221
|
-
buf[2] = (n >> 8) & 0xff;
|
|
222
|
-
buf[3] = (n >> 16) & 0xff;
|
|
223
|
-
buf[4] = (n >> 24) & 0xff;
|
|
224
|
-
return buf;
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Build the BIP-322 "toSign" transaction for P2TR key-spend.
|
|
228
|
-
*/
|
|
229
|
-
function craftBIP322ToSignP2TR(toSpend, pkScript, tapInternalKey) {
|
|
230
|
-
const tx = new transaction_1.Transaction({ version: 0 });
|
|
231
|
-
tx.addInput({
|
|
232
|
-
txid: toSpend.id,
|
|
233
|
-
index: 0,
|
|
234
|
-
sequence: 0,
|
|
235
|
-
witnessUtxo: {
|
|
236
|
-
script: pkScript,
|
|
237
|
-
amount: 0n,
|
|
238
|
-
},
|
|
239
|
-
tapInternalKey,
|
|
240
|
-
sighashType: btc_signer_1.SigHash.DEFAULT,
|
|
241
|
-
});
|
|
242
|
-
tx.addOutput({
|
|
243
|
-
amount: 0n,
|
|
244
|
-
script: intent_1.OP_RETURN_EMPTY_PKSCRIPT,
|
|
245
|
-
});
|
|
246
|
-
return tx;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Build the BIP-322 "toSign" transaction (generic, no key metadata).
|
|
250
|
-
*
|
|
251
|
-
* Used for P2WPKH verification where the toSign only needs
|
|
252
|
-
* the witnessUtxo, not tapInternalKey.
|
|
253
|
-
*/
|
|
254
|
-
function craftBIP322ToSignSimple(toSpend, pkScript) {
|
|
255
|
-
const tx = new transaction_1.Transaction({ version: 0 });
|
|
256
|
-
tx.addInput({
|
|
257
|
-
txid: toSpend.id,
|
|
258
|
-
index: 0,
|
|
259
|
-
sequence: 0,
|
|
260
|
-
witnessUtxo: {
|
|
261
|
-
script: pkScript,
|
|
262
|
-
amount: 0n,
|
|
263
|
-
},
|
|
264
|
-
});
|
|
265
|
-
tx.addOutput({
|
|
266
|
-
amount: 0n,
|
|
267
|
-
script: intent_1.OP_RETURN_EMPTY_PKSCRIPT,
|
|
268
|
-
});
|
|
269
|
-
return tx;
|
|
270
|
-
}
|