@airgap/tezos 0.13.45-beta.1 → 0.13.45-beta.3
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/package.json +5 -5
- package/v0/actions/GetKtAccountsAction.js +11 -81
- package/v0/actions/GetKtAccountsAction.js.map +1 -1
- package/v0/constants.js +6 -6
- package/v0/constants.js.map +1 -1
- package/v0/index.js +38 -38
- package/v0/index.js.map +1 -1
- package/v0/protocol/TezosAddress.d.ts +0 -1
- package/v0/protocol/TezosAddress.js +41 -81
- package/v0/protocol/TezosAddress.js.map +1 -1
- package/v0/protocol/TezosCryptoClient.d.ts +0 -1
- package/v0/protocol/TezosCryptoClient.js +68 -123
- package/v0/protocol/TezosCryptoClient.js.map +1 -1
- package/v0/protocol/TezosProtocol.js +978 -1631
- package/v0/protocol/TezosProtocol.js.map +1 -1
- package/v0/protocol/TezosProtocolOptions.d.ts +1 -1
- package/v0/protocol/TezosProtocolOptions.js +26 -98
- package/v0/protocol/TezosProtocolOptions.js.map +1 -1
- package/v0/protocol/TezosUtils.d.ts +0 -1
- package/v0/protocol/TezosUtils.js +131 -165
- package/v0/protocol/TezosUtils.js.map +1 -1
- package/v0/protocol/contract/TezosContract.js +243 -472
- package/v0/protocol/contract/TezosContract.js.map +1 -1
- package/v0/protocol/contract/TezosContractCall.js +8 -10
- package/v0/protocol/contract/TezosContractCall.js.map +1 -1
- package/v0/protocol/contract/TezosContractEntrypoint.js +14 -19
- package/v0/protocol/contract/TezosContractEntrypoint.js.map +1 -1
- package/v0/protocol/contract/TezosContractStorage.js +8 -9
- package/v0/protocol/contract/TezosContractStorage.js.map +1 -1
- package/v0/protocol/contract/remote-data/TezosContractRemoteDataFactory.js +8 -25
- package/v0/protocol/contract/remote-data/TezosContractRemoteDataFactory.js.map +1 -1
- package/v0/protocol/contract/remote-data/TezosStorageRemoteData.js +39 -113
- package/v0/protocol/contract/remote-data/TezosStorageRemoteData.js.map +1 -1
- package/v0/protocol/domains/TezosDomains.js +165 -270
- package/v0/protocol/domains/TezosDomains.js.map +1 -1
- package/v0/protocol/fa/TezosBTC.js +19 -98
- package/v0/protocol/fa/TezosBTC.js.map +1 -1
- package/v0/protocol/fa/TezosBTCtez.js +17 -48
- package/v0/protocol/fa/TezosBTCtez.js.map +1 -1
- package/v0/protocol/fa/TezosCTez.js +17 -45
- package/v0/protocol/fa/TezosCTez.js.map +1 -1
- package/v0/protocol/fa/TezosDOGA.js +17 -45
- package/v0/protocol/fa/TezosDOGA.js.map +1 -1
- package/v0/protocol/fa/TezosETHtz.js +10 -68
- package/v0/protocol/fa/TezosETHtz.js.map +1 -1
- package/v0/protocol/fa/TezosFA1Protocol.js +119 -276
- package/v0/protocol/fa/TezosFA1Protocol.js.map +1 -1
- package/v0/protocol/fa/TezosFA1p2Protocol.js +22 -101
- package/v0/protocol/fa/TezosFA1p2Protocol.js.map +1 -1
- package/v0/protocol/fa/TezosFA2Protocol.js +213 -402
- package/v0/protocol/fa/TezosFA2Protocol.js.map +1 -1
- package/v0/protocol/fa/TezosFAProtocol.js +211 -418
- package/v0/protocol/fa/TezosFAProtocol.js.map +1 -1
- package/v0/protocol/fa/TezosFAProtocolOptions.d.ts +2 -2
- package/v0/protocol/fa/TezosFAProtocolOptions.js +92 -195
- package/v0/protocol/fa/TezosFAProtocolOptions.js.map +1 -1
- package/v0/protocol/fa/TezosKolibriUSD.js +11 -70
- package/v0/protocol/fa/TezosKolibriUSD.js.map +1 -1
- package/v0/protocol/fa/TezosPlanty.js +17 -45
- package/v0/protocol/fa/TezosPlanty.js.map +1 -1
- package/v0/protocol/fa/TezosQUIPU.js +17 -48
- package/v0/protocol/fa/TezosQUIPU.js.map +1 -1
- package/v0/protocol/fa/TezosSIRS.js +17 -45
- package/v0/protocol/fa/TezosSIRS.js.map +1 -1
- package/v0/protocol/fa/TezosStaker.js +11 -70
- package/v0/protocol/fa/TezosStaker.js.map +1 -1
- package/v0/protocol/fa/TezosUBTC.js +17 -48
- package/v0/protocol/fa/TezosUBTC.js.map +1 -1
- package/v0/protocol/fa/TezosUDEFI.js +17 -48
- package/v0/protocol/fa/TezosUDEFI.js.map +1 -1
- package/v0/protocol/fa/TezosUSD.js +11 -70
- package/v0/protocol/fa/TezosUSD.js.map +1 -1
- package/v0/protocol/fa/TezosUSDT.js +17 -48
- package/v0/protocol/fa/TezosUSDT.js.map +1 -1
- package/v0/protocol/fa/TezosUUSD.js +8 -27
- package/v0/protocol/fa/TezosUUSD.js.map +1 -1
- package/v0/protocol/fa/TezosUXTZ.js +17 -48
- package/v0/protocol/fa/TezosUXTZ.js.map +1 -1
- package/v0/protocol/fa/TezosWRAP.js +17 -48
- package/v0/protocol/fa/TezosWRAP.js.map +1 -1
- package/v0/protocol/fa/TezosWrapped.js +11 -70
- package/v0/protocol/fa/TezosWrapped.js.map +1 -1
- package/v0/protocol/fa/TezosYOU.js +8 -27
- package/v0/protocol/fa/TezosYOU.js.map +1 -1
- package/v0/protocol/fa/metadata/BigMapTokenMetadataIndexer.js +84 -162
- package/v0/protocol/fa/metadata/BigMapTokenMetadataIndexer.js.map +1 -1
- package/v0/protocol/fa/metadata/ObjktTokenMetadataIndexer.js +37 -87
- package/v0/protocol/fa/metadata/ObjktTokenMetadataIndexer.js.map +1 -1
- package/v0/protocol/indexerClient/TezosIndexerClient.js +115 -259
- package/v0/protocol/indexerClient/TezosIndexerClient.js.map +1 -1
- package/v0/protocol/kt/TezosKtAddress.js +7 -67
- package/v0/protocol/kt/TezosKtAddress.js.map +1 -1
- package/v0/protocol/kt/TezosKtProtocol.js +161 -309
- package/v0/protocol/kt/TezosKtProtocol.js.map +1 -1
- package/v0/protocol/sapling/TezosSaplingAddress.d.ts +0 -1
- package/v0/protocol/sapling/TezosSaplingAddress.js +46 -117
- package/v0/protocol/sapling/TezosSaplingAddress.js.map +1 -1
- package/v0/protocol/sapling/TezosSaplingCryptoClient.d.ts +0 -1
- package/v0/protocol/sapling/TezosSaplingCryptoClient.js +125 -220
- package/v0/protocol/sapling/TezosSaplingCryptoClient.js.map +1 -1
- package/v0/protocol/sapling/TezosSaplingProtocol.d.ts +0 -1
- package/v0/protocol/sapling/TezosSaplingProtocol.js +600 -1127
- package/v0/protocol/sapling/TezosSaplingProtocol.js.map +1 -1
- package/v0/protocol/sapling/TezosSaplingProtocolOptions.d.ts +0 -1
- package/v0/protocol/sapling/TezosSaplingProtocolOptions.js +32 -61
- package/v0/protocol/sapling/TezosSaplingProtocolOptions.js.map +1 -1
- package/v0/protocol/sapling/TezosShieldedTezProtocol.js +50 -134
- package/v0/protocol/sapling/TezosShieldedTezProtocol.js.map +1 -1
- package/v0/protocol/sapling/injector/TezosSaplingInjectorClient.js +10 -56
- package/v0/protocol/sapling/injector/TezosSaplingInjectorClient.js.map +1 -1
- package/v0/protocol/sapling/node/TezosSaplingNodeClient.js +12 -67
- package/v0/protocol/sapling/node/TezosSaplingNodeClient.js.map +1 -1
- package/v0/protocol/sapling/utils/TezosSaplingBookkeeper.d.ts +0 -1
- package/v0/protocol/sapling/utils/TezosSaplingBookkeeper.js +221 -539
- package/v0/protocol/sapling/utils/TezosSaplingBookkeeper.js.map +1 -1
- package/v0/protocol/sapling/utils/TezosSaplingEncoder.d.ts +0 -1
- package/v0/protocol/sapling/utils/TezosSaplingEncoder.js +101 -104
- package/v0/protocol/sapling/utils/TezosSaplingEncoder.js.map +1 -1
- package/v0/protocol/sapling/utils/TezosSaplingForger.d.ts +0 -1
- package/v0/protocol/sapling/utils/TezosSaplingForger.js +107 -266
- package/v0/protocol/sapling/utils/TezosSaplingForger.js.map +1 -1
- package/v0/protocol/sapling/utils/TezosSaplingState.js +110 -239
- package/v0/protocol/sapling/utils/TezosSaplingState.js.map +1 -1
- package/v0/protocol/types/TezosOperationType.js +1 -1
- package/v0/protocol/types/TezosOperationType.js.map +1 -1
- package/v0/protocol/types/contract/BigMapEntry.d.ts +1 -1
- package/v0/protocol/types/contract/TezosContractMetadata.d.ts +2 -2
- package/v0/protocol/types/micheline/MichelineNode.d.ts +7 -7
- package/v0/protocol/types/micheline/MichelineNodeUtils.js +9 -13
- package/v0/protocol/types/micheline/MichelineNodeUtils.js.map +1 -1
- package/v0/protocol/types/michelson/MichelsonType.d.ts +0 -1
- package/v0/protocol/types/michelson/MichelsonType.js +11 -12
- package/v0/protocol/types/michelson/MichelsonType.js.map +1 -1
- package/v0/protocol/types/michelson/MichelsonTypeMeta.js +45 -92
- package/v0/protocol/types/michelson/MichelsonTypeMeta.js.map +1 -1
- package/v0/protocol/types/michelson/MichelsonTypeUtils.d.ts +0 -1
- package/v0/protocol/types/michelson/MichelsonTypeUtils.js +58 -219
- package/v0/protocol/types/michelson/MichelsonTypeUtils.js.map +1 -1
- package/v0/protocol/types/michelson/generics/MichelsonList.js +24 -43
- package/v0/protocol/types/michelson/generics/MichelsonList.js.map +1 -1
- package/v0/protocol/types/michelson/generics/MichelsonMap.js +39 -61
- package/v0/protocol/types/michelson/generics/MichelsonMap.js.map +1 -1
- package/v0/protocol/types/michelson/generics/MichelsonOption.d.ts +1 -1
- package/v0/protocol/types/michelson/generics/MichelsonOption.js +46 -75
- package/v0/protocol/types/michelson/generics/MichelsonOption.js.map +1 -1
- package/v0/protocol/types/michelson/generics/MichelsonOr.d.ts +1 -1
- package/v0/protocol/types/michelson/generics/MichelsonOr.js +50 -76
- package/v0/protocol/types/michelson/generics/MichelsonOr.js.map +1 -1
- package/v0/protocol/types/michelson/generics/MichelsonPair.js +52 -85
- package/v0/protocol/types/michelson/generics/MichelsonPair.js.map +1 -1
- package/v0/protocol/types/michelson/grammar/MichelsonGrammarData.d.ts +1 -1
- package/v0/protocol/types/michelson/grammar/MichelsonGrammarInstruction.d.ts +1 -1
- package/v0/protocol/types/michelson/grammar/MichelsonGrammarType.d.ts +1 -1
- package/v0/protocol/types/michelson/primitives/MichelsonAddress.d.ts +0 -1
- package/v0/protocol/types/michelson/primitives/MichelsonAddress.js +28 -47
- package/v0/protocol/types/michelson/primitives/MichelsonAddress.js.map +1 -1
- package/v0/protocol/types/michelson/primitives/MichelsonBool.js +20 -39
- package/v0/protocol/types/michelson/primitives/MichelsonBool.js.map +1 -1
- package/v0/protocol/types/michelson/primitives/MichelsonBytes.d.ts +0 -1
- package/v0/protocol/types/michelson/primitives/MichelsonBytes.js +35 -54
- package/v0/protocol/types/michelson/primitives/MichelsonBytes.js.map +1 -1
- package/v0/protocol/types/michelson/primitives/MichelsonInt.d.ts +0 -1
- package/v0/protocol/types/michelson/primitives/MichelsonInt.js +30 -49
- package/v0/protocol/types/michelson/primitives/MichelsonInt.js.map +1 -1
- package/v0/protocol/types/michelson/primitives/MichelsonString.d.ts +0 -1
- package/v0/protocol/types/michelson/primitives/MichelsonString.js +33 -52
- package/v0/protocol/types/michelson/primitives/MichelsonString.js.map +1 -1
- package/v0/protocol/types/michelson/primitives/MichelsonUnit.js +14 -34
- package/v0/protocol/types/michelson/primitives/MichelsonUnit.js.map +1 -1
- package/v0/protocol/types/sapling/TezosSaplingStateTree.d.ts +1 -1
- package/v0/protocol/types/sapling/TezosSaplingTransaction.d.ts +0 -1
- package/v0/protocol/types/utils.js +8 -10
- package/v0/protocol/types/utils.js.map +1 -1
- package/v0/serializer/validators/transaction-validator.js +29 -78
- package/v0/serializer/validators/transaction-validator.js.map +1 -1
- package/v0/serializer/validators/transaction-xtz-btc-validator.js +55 -129
- package/v0/serializer/validators/transaction-xtz-btc-validator.js.map +1 -1
- package/v0/serializer/validators/validators.js +43 -103
- package/v0/serializer/validators/validators.js.map +1 -1
- package/v1/block-explorer/TzKTBlockExplorer.js +12 -61
- package/v1/block-explorer/TzKTBlockExplorer.js.map +1 -1
- package/v1/block-explorer/factory.js +4 -5
- package/v1/block-explorer/factory.js.map +1 -1
- package/v1/contract/TezosContract.js +242 -471
- package/v1/contract/TezosContract.js.map +1 -1
- package/v1/contract/TezosContractCall.js +8 -10
- package/v1/contract/TezosContractCall.js.map +1 -1
- package/v1/contract/TezosContractEntrypoint.d.ts +1 -1
- package/v1/contract/TezosContractEntrypoint.js +14 -19
- package/v1/contract/TezosContractEntrypoint.js.map +1 -1
- package/v1/contract/TezosContractStorage.js +8 -9
- package/v1/contract/TezosContractStorage.js.map +1 -1
- package/v1/contract/remote-data/TezosContractRemoteDataFactory.js +8 -25
- package/v1/contract/remote-data/TezosContractRemoteDataFactory.js.map +1 -1
- package/v1/contract/remote-data/TezosStorageRemoteData.js +39 -113
- package/v1/contract/remote-data/TezosStorageRemoteData.js.map +1 -1
- package/v1/crypto/TezosCryptoClient.d.ts +0 -1
- package/v1/crypto/TezosCryptoClient.js +64 -117
- package/v1/crypto/TezosCryptoClient.js.map +1 -1
- package/v1/crypto/TezosSaplingCryptoClient.d.ts +0 -1
- package/v1/crypto/TezosSaplingCryptoClient.js +116 -194
- package/v1/crypto/TezosSaplingCryptoClient.js.map +1 -1
- package/v1/data/TezosAddress.js +13 -14
- package/v1/data/TezosAddress.js.map +1 -1
- package/v1/data/TezosSaplingAddress.d.ts +0 -1
- package/v1/data/TezosSaplingAddress.js +29 -94
- package/v1/data/TezosSaplingAddress.js.map +1 -1
- package/v1/domains/TezosDomains.js +165 -270
- package/v1/domains/TezosDomains.js.map +1 -1
- package/v1/index.js +39 -39
- package/v1/index.js.map +1 -1
- package/v1/indexer/TzKTIndexerClient.js +126 -270
- package/v1/indexer/TzKTIndexerClient.js.map +1 -1
- package/v1/indexer/factory.js +4 -5
- package/v1/indexer/factory.js.map +1 -1
- package/v1/indexer/token-metadata/BigMapTokenMetadataIndexerClient.js +83 -161
- package/v1/indexer/token-metadata/BigMapTokenMetadataIndexerClient.js.map +1 -1
- package/v1/indexer/token-metadata/ObjktTokenMetadataIndexerClient.js +36 -85
- package/v1/indexer/token-metadata/ObjktTokenMetadataIndexerClient.js.map +1 -1
- package/v1/injector/TezosSaplingInjectorClient.js +10 -56
- package/v1/injector/TezosSaplingInjectorClient.js.map +1 -1
- package/v1/module/TezosModule.js +88 -155
- package/v1/module/TezosModule.js.map +1 -1
- package/v1/module.js +2 -3
- package/v1/module.js.map +1 -1
- package/v1/node/TezosSaplingNodeClient.js +12 -67
- package/v1/node/TezosSaplingNodeClient.js.map +1 -1
- package/v1/protocol/TezosProtocol.js +851 -1388
- package/v1/protocol/TezosProtocol.js.map +1 -1
- package/v1/protocol/fa/TezosFA1Protocol.js +81 -205
- package/v1/protocol/fa/TezosFA1Protocol.js.map +1 -1
- package/v1/protocol/fa/TezosFA1p2Protocol.js +32 -111
- package/v1/protocol/fa/TezosFA1p2Protocol.js.map +1 -1
- package/v1/protocol/fa/TezosFA2Protocol.js +174 -332
- package/v1/protocol/fa/TezosFA2Protocol.js.map +1 -1
- package/v1/protocol/fa/TezosFAProtocol.js +255 -528
- package/v1/protocol/fa/TezosFAProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/BTCTezProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/BTCTezProtocol.js +30 -47
- package/v1/protocol/fa/tokens/BTCTezProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/CTezProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/CTezProtocol.js +27 -47
- package/v1/protocol/fa/tokens/CTezProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/DogamiProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/DogamiProtocol.js +27 -47
- package/v1/protocol/fa/tokens/DogamiProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/ETHTezProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/ETHTezProtocol.js +30 -90
- package/v1/protocol/fa/tokens/ETHTezProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/KolibriUSDProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/KolibriUSDProtocol.js +30 -90
- package/v1/protocol/fa/tokens/KolibriUSDProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/PlentyProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/PlentyProtocol.js +30 -90
- package/v1/protocol/fa/tokens/PlentyProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/QuipuswapProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/QuipuswapProtocol.js +30 -47
- package/v1/protocol/fa/tokens/QuipuswapProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/SiriusProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/SiriusProtocol.js +27 -47
- package/v1/protocol/fa/tokens/SiriusProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/StakerProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/StakerProtocol.js +30 -90
- package/v1/protocol/fa/tokens/StakerProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/TetherUSDProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/TetherUSDProtocol.js +30 -47
- package/v1/protocol/fa/tokens/TetherUSDProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/TzBTCProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/TzBTCProtocol.js +27 -47
- package/v1/protocol/fa/tokens/TzBTCProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/UBTCProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/UBTCProtocol.js +30 -47
- package/v1/protocol/fa/tokens/UBTCProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/UDEFIProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/UDEFIProtocol.js +30 -47
- package/v1/protocol/fa/tokens/UDEFIProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/USDTezProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/USDTezProtocol.js +27 -47
- package/v1/protocol/fa/tokens/USDTezProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/UUSDProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/UUSDProtocol.js +30 -47
- package/v1/protocol/fa/tokens/UUSDProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/UXTZProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/UXTZProtocol.js +30 -47
- package/v1/protocol/fa/tokens/UXTZProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/WrapProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/WrapProtocol.js +30 -47
- package/v1/protocol/fa/tokens/WrapProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/WrappedTezosProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/WrappedTezosProtocol.js +27 -47
- package/v1/protocol/fa/tokens/WrappedTezosProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/YouProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/YouProtocol.js +30 -47
- package/v1/protocol/fa/tokens/YouProtocol.js.map +1 -1
- package/v1/protocol/fa/tokens/stXTZProtocol.d.ts +2 -2
- package/v1/protocol/fa/tokens/stXTZProtocol.js +30 -47
- package/v1/protocol/fa/tokens/stXTZProtocol.js.map +1 -1
- package/v1/protocol/kt/TezosKtProtocol.js +254 -498
- package/v1/protocol/kt/TezosKtProtocol.js.map +1 -1
- package/v1/protocol/sapling/TezosSaplingProtocol.d.ts +0 -1
- package/v1/protocol/sapling/TezosSaplingProtocol.js +532 -933
- package/v1/protocol/sapling/TezosSaplingProtocol.js.map +1 -1
- package/v1/protocol/sapling/TezosShieldedTezProtocol.js +72 -164
- package/v1/protocol/sapling/TezosShieldedTezProtocol.js.map +1 -1
- package/v1/serializer/v3/schemas/converter/transaction-converter.js +14 -26
- package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -1
- package/v1/serializer/v3/serializer-companion.js +103 -188
- package/v1/serializer/v3/serializer-companion.js.map +1 -1
- package/v1/serializer/v3/validators/transaction-validator.js +54 -143
- package/v1/serializer/v3/validators/transaction-validator.js.map +1 -1
- package/v1/serializer/v3/validators/validators.js +40 -100
- package/v1/serializer/v3/validators/validators.js.map +1 -1
- package/v1/types/block-explorer.d.ts +1 -1
- package/v1/types/contract/TezosContractMetadata.d.ts +2 -2
- package/v1/types/contract/bigmap/BigMapEntry.d.ts +1 -1
- package/v1/types/crypto.d.ts +2 -2
- package/v1/types/fa/TezosFA1ContractEntrypoint.d.ts +1 -1
- package/v1/types/fa/TezosFA1p2ContractEntrypoint.d.ts +1 -1
- package/v1/types/fa/TezosFA2ContractEntrypoint.d.ts +1 -1
- package/v1/types/indexer.d.ts +1 -1
- package/v1/types/micheline/MichelineNode.d.ts +7 -7
- package/v1/types/micheline/MichelineNodeUtils.js +9 -13
- package/v1/types/micheline/MichelineNodeUtils.js.map +1 -1
- package/v1/types/michelson/MichelsonType.d.ts +0 -1
- package/v1/types/michelson/MichelsonType.js +11 -12
- package/v1/types/michelson/MichelsonType.js.map +1 -1
- package/v1/types/michelson/MichelsonTypeMeta.js +45 -92
- package/v1/types/michelson/MichelsonTypeMeta.js.map +1 -1
- package/v1/types/michelson/MichelsonTypeUtils.d.ts +0 -1
- package/v1/types/michelson/MichelsonTypeUtils.js +58 -219
- package/v1/types/michelson/MichelsonTypeUtils.js.map +1 -1
- package/v1/types/michelson/generics/MichelsonList.js +24 -43
- package/v1/types/michelson/generics/MichelsonList.js.map +1 -1
- package/v1/types/michelson/generics/MichelsonMap.js +39 -61
- package/v1/types/michelson/generics/MichelsonMap.js.map +1 -1
- package/v1/types/michelson/generics/MichelsonOption.d.ts +1 -1
- package/v1/types/michelson/generics/MichelsonOption.js +46 -75
- package/v1/types/michelson/generics/MichelsonOption.js.map +1 -1
- package/v1/types/michelson/generics/MichelsonOr.d.ts +1 -1
- package/v1/types/michelson/generics/MichelsonOr.js +50 -76
- package/v1/types/michelson/generics/MichelsonOr.js.map +1 -1
- package/v1/types/michelson/generics/MichelsonPair.js +52 -85
- package/v1/types/michelson/generics/MichelsonPair.js.map +1 -1
- package/v1/types/michelson/grammar/MichelsonGrammarData.d.ts +1 -1
- package/v1/types/michelson/grammar/MichelsonGrammarInstruction.d.ts +1 -1
- package/v1/types/michelson/grammar/MichelsonGrammarType.d.ts +1 -1
- package/v1/types/michelson/primitives/MichelsonAddress.d.ts +0 -1
- package/v1/types/michelson/primitives/MichelsonAddress.js +28 -47
- package/v1/types/michelson/primitives/MichelsonAddress.js.map +1 -1
- package/v1/types/michelson/primitives/MichelsonBool.js +20 -39
- package/v1/types/michelson/primitives/MichelsonBool.js.map +1 -1
- package/v1/types/michelson/primitives/MichelsonBytes.d.ts +0 -1
- package/v1/types/michelson/primitives/MichelsonBytes.js +35 -54
- package/v1/types/michelson/primitives/MichelsonBytes.js.map +1 -1
- package/v1/types/michelson/primitives/MichelsonInt.d.ts +0 -1
- package/v1/types/michelson/primitives/MichelsonInt.js +30 -49
- package/v1/types/michelson/primitives/MichelsonInt.js.map +1 -1
- package/v1/types/michelson/primitives/MichelsonString.d.ts +0 -1
- package/v1/types/michelson/primitives/MichelsonString.js +33 -52
- package/v1/types/michelson/primitives/MichelsonString.js.map +1 -1
- package/v1/types/michelson/primitives/MichelsonUnit.js +14 -34
- package/v1/types/michelson/primitives/MichelsonUnit.js.map +1 -1
- package/v1/types/network.js +1 -1
- package/v1/types/network.js.map +1 -1
- package/v1/types/operations/TezosOperationType.js +1 -1
- package/v1/types/operations/TezosOperationType.js.map +1 -1
- package/v1/types/protocol.d.ts +3 -3
- package/v1/types/sapling/TezosSaplingExternalMethodProvider.d.ts +0 -1
- package/v1/types/sapling/TezosSaplingStateTree.d.ts +1 -1
- package/v1/types/sapling/TezosSaplingTransaction.d.ts +0 -1
- package/v1/types/staking/TezosDelegatorAction.js +1 -1
- package/v1/types/staking/TezosDelegatorAction.js.map +1 -1
- package/v1/utils/address.js +6 -7
- package/v1/utils/address.js.map +1 -1
- package/v1/utils/bip.d.ts +0 -1
- package/v1/utils/bip.js +6 -7
- package/v1/utils/bip.js.map +1 -1
- package/v1/utils/convert.js +7 -8
- package/v1/utils/convert.js.map +1 -1
- package/v1/utils/encoding.d.ts +0 -1
- package/v1/utils/encoding.js +74 -64
- package/v1/utils/encoding.js.map +1 -1
- package/v1/utils/fa.js +2 -3
- package/v1/utils/fa.js.map +1 -1
- package/v1/utils/key.js +9 -12
- package/v1/utils/key.js.map +1 -1
- package/v1/utils/micheline.js +8 -10
- package/v1/utils/micheline.js.map +1 -1
- package/v1/utils/operations.js +21 -22
- package/v1/utils/operations.js.map +1 -1
- package/v1/utils/pack.d.ts +0 -1
- package/v1/utils/pack.js +65 -107
- package/v1/utils/pack.js.map +1 -1
- package/v1/utils/protocol/fa/TezosFA1Accountant.js +24 -52
- package/v1/utils/protocol/fa/TezosFA1Accountant.js.map +1 -1
- package/v1/utils/protocol/fa/TezosFA2Accountant.js +40 -77
- package/v1/utils/protocol/fa/TezosFA2Accountant.js.map +1 -1
- package/v1/utils/protocol/fa/TezosFAAccountant.js +21 -89
- package/v1/utils/protocol/fa/TezosFAAccountant.js.map +1 -1
- package/v1/utils/protocol/instance.js +90 -26
- package/v1/utils/protocol/instance.js.map +1 -1
- package/v1/utils/protocol/sapling/TezosSaplingAccountant.d.ts +0 -1
- package/v1/utils/protocol/sapling/TezosSaplingAccountant.js +221 -539
- package/v1/utils/protocol/sapling/TezosSaplingAccountant.js.map +1 -1
- package/v1/utils/protocol/sapling/TezosSaplingEncoder.d.ts +0 -1
- package/v1/utils/protocol/sapling/TezosSaplingEncoder.js +101 -104
- package/v1/utils/protocol/sapling/TezosSaplingEncoder.js.map +1 -1
- package/v1/utils/protocol/sapling/TezosSaplingForger.d.ts +0 -1
- package/v1/utils/protocol/sapling/TezosSaplingForger.js +107 -266
- package/v1/utils/protocol/sapling/TezosSaplingForger.js.map +1 -1
- package/v1/utils/protocol/sapling/TezosSaplingState.js +110 -239
- package/v1/utils/protocol/sapling/TezosSaplingState.js.map +1 -1
- package/v1/utils/protocol/tezos/TezosAccountant.js +97 -166
- package/v1/utils/protocol/tezos/TezosAccountant.js.map +1 -1
- package/v1/utils/protocol/tezos/TezosForger.js +21 -76
- package/v1/utils/protocol/tezos/TezosForger.js.map +1 -1
- package/v1/utils/signature.js +5 -6
- package/v1/utils/signature.js.map +1 -1
- package/v1/utils/transaction.d.ts +4 -5
- package/v1/utils/transaction.js +3 -3
- package/v1/utils/transaction.js.map +1 -1
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
3
|
if (k2 === undefined) k2 = k;
|
|
19
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -30,124 +15,86 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
30
15
|
}) : function(o, v) {
|
|
31
16
|
o["default"] = v;
|
|
32
17
|
});
|
|
33
|
-
var __importStar = (this && this.__importStar) || function (
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
51
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
52
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
53
|
-
function step(op) {
|
|
54
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
55
|
-
while (_) try {
|
|
56
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
57
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
58
|
-
switch (op[0]) {
|
|
59
|
-
case 0: case 1: t = op; break;
|
|
60
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
61
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
62
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
63
|
-
default:
|
|
64
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
65
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
66
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
67
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
68
|
-
if (t[2]) _.ops.pop();
|
|
69
|
-
_.trys.pop(); continue;
|
|
70
|
-
}
|
|
71
|
-
op = body.call(thisArg, _);
|
|
72
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
73
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
74
|
-
}
|
|
75
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
76
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
77
36
|
exports.TezosCryptoClient = void 0;
|
|
78
37
|
// @ts-ignore
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return _super.call(this) || this;
|
|
38
|
+
const bs58 = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58-4.0.1"));
|
|
39
|
+
const errors_1 = require("@airgap/coinlib-core/errors");
|
|
40
|
+
const coinlib_error_1 = require("@airgap/coinlib-core/errors/coinlib-error");
|
|
41
|
+
const Ed25519CryptoClient_1 = require("@airgap/coinlib-core/protocols/Ed25519CryptoClient");
|
|
42
|
+
const blake2b_1 = require("@stablelib/blake2b");
|
|
43
|
+
const ed25519_1 = require("@stablelib/ed25519");
|
|
44
|
+
const utf8_1 = require("@stablelib/utf8");
|
|
45
|
+
const encoding_1 = require("../utils/encoding");
|
|
46
|
+
const transaction_1 = require("../utils/transaction");
|
|
47
|
+
class TezosCryptoClient extends Ed25519CryptoClient_1.Ed25519CryptoClient {
|
|
48
|
+
constructor() {
|
|
49
|
+
super();
|
|
92
50
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
});
|
|
104
|
-
};
|
|
105
|
-
TezosCryptoClient.prototype.operationSignature = function (privateKey, binaryTransaction) {
|
|
106
|
-
var watermarkedForgedOperationBytes = Buffer.concat([transaction_1.WATERMARK.operation, binaryTransaction]);
|
|
107
|
-
var hashedWatermarkedOpBytes = this.hash(watermarkedForgedOperationBytes);
|
|
51
|
+
async signMessage(message, keypair) {
|
|
52
|
+
const bufferMessage = this.toBuffer(message);
|
|
53
|
+
const hashBytes = this.hash(bufferMessage);
|
|
54
|
+
const rawSignature = (0, ed25519_1.sign)(Buffer.from(keypair.privateKey, 'hex'), hashBytes);
|
|
55
|
+
const signature = (0, encoding_1.encodeBase58)(rawSignature, 'ed25519Signature');
|
|
56
|
+
return signature;
|
|
57
|
+
}
|
|
58
|
+
operationSignature(privateKey, binaryTransaction) {
|
|
59
|
+
const watermarkedForgedOperationBytes = Buffer.concat([transaction_1.WATERMARK.operation, binaryTransaction]);
|
|
60
|
+
const hashedWatermarkedOpBytes = this.hash(watermarkedForgedOperationBytes);
|
|
108
61
|
return Buffer.from((0, ed25519_1.sign)(privateKey, hashedWatermarkedOpBytes));
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
};
|
|
127
|
-
TezosCryptoClient.prototype.toBuffer = function (message) {
|
|
62
|
+
}
|
|
63
|
+
async verifyMessage(message, signature, publicKey) {
|
|
64
|
+
let rawSignature;
|
|
65
|
+
if (signature.startsWith('edsig')) {
|
|
66
|
+
rawSignature = (0, encoding_1.decodeBase58)(signature, 'ed25519Signature');
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
throw new errors_1.InvalidValueError(coinlib_error_1.Domain.TEZOS, `invalid signature: ${JSON.stringify(signature)}`);
|
|
70
|
+
}
|
|
71
|
+
const bufferMessage = this.toBuffer(message);
|
|
72
|
+
const hashBytes = this.hash(bufferMessage);
|
|
73
|
+
const isValidSignature = (0, ed25519_1.verify)(Buffer.from(publicKey, 'hex'), hashBytes, rawSignature);
|
|
74
|
+
return isValidSignature;
|
|
75
|
+
}
|
|
76
|
+
toBuffer(message) {
|
|
128
77
|
if (message.length % 2 !== 0) {
|
|
129
78
|
return Buffer.from((0, utf8_1.encode)(message));
|
|
130
79
|
}
|
|
131
|
-
|
|
80
|
+
let adjustedMessage = message;
|
|
132
81
|
if (message.startsWith('0x')) {
|
|
133
82
|
adjustedMessage = message.slice(2);
|
|
134
83
|
}
|
|
135
|
-
|
|
84
|
+
const buffer = Buffer.from(adjustedMessage, 'hex');
|
|
136
85
|
if (buffer.length === adjustedMessage.length / 2) {
|
|
137
86
|
return buffer;
|
|
138
87
|
}
|
|
139
88
|
return Buffer.from((0, utf8_1.encode)(message));
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (size === void 0) { size = 32; }
|
|
89
|
+
}
|
|
90
|
+
hash(message, size = 32) {
|
|
143
91
|
return Buffer.from((0, blake2b_1.hash)(message, size));
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
92
|
+
}
|
|
93
|
+
blake2bLedgerHash(message) {
|
|
94
|
+
const buffer = this.toBuffer(message);
|
|
95
|
+
const hash = this.hash(buffer);
|
|
148
96
|
return bs58.encode(Buffer.from(hash));
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
}(Ed25519CryptoClient_1.Ed25519CryptoClient));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
152
99
|
exports.TezosCryptoClient = TezosCryptoClient;
|
|
153
100
|
//# sourceMappingURL=TezosCryptoClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TezosCryptoClient.js","sourceRoot":"","sources":["../../../src/v1/crypto/TezosCryptoClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TezosCryptoClient.js","sourceRoot":"","sources":["../../../src/v1/crypto/TezosCryptoClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import BigNumber from '@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
|
|
3
2
|
import { SaplingPartialOutputDescription } from '@airgap/sapling-wasm';
|
|
4
3
|
import { TezosSaplingCiphertext } from '../types/sapling/TezosSaplingCiphertext';
|
|
@@ -15,208 +15,130 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
36
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
|
-
function step(op) {
|
|
39
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
40
|
-
while (_) try {
|
|
41
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
42
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
43
|
-
switch (op[0]) {
|
|
44
|
-
case 0: case 1: t = op; break;
|
|
45
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
46
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
47
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
48
|
-
default:
|
|
49
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
50
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
51
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
52
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
53
|
-
if (t[2]) _.ops.pop();
|
|
54
|
-
_.trys.pop(); continue;
|
|
55
|
-
}
|
|
56
|
-
op = body.call(thisArg, _);
|
|
57
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
58
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
59
|
-
}
|
|
60
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
61
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
62
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
63
37
|
};
|
|
64
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
39
|
exports.TezosSaplingCryptoClient = void 0;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
40
|
+
const bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
|
|
41
|
+
const blake2b_1 = require("@airgap/coinlib-core/utils/blake2b");
|
|
42
|
+
const hex_1 = require("@airgap/coinlib-core/utils/hex");
|
|
43
|
+
const sapling = __importStar(require("@airgap/sapling-wasm"));
|
|
44
|
+
const nacl_1 = require("@stablelib/nacl");
|
|
45
|
+
const random_1 = require("@stablelib/random");
|
|
46
|
+
const TezosSaplingAddress_1 = require("../data/TezosSaplingAddress");
|
|
47
|
+
class TezosSaplingCryptoClient {
|
|
48
|
+
constructor() {
|
|
75
49
|
this.ockKey = 'OCK_keystringderivation_TEZOS';
|
|
76
50
|
this.kdfKey = 'KDFSaplingForTezosV1';
|
|
77
51
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return [3 /*break*/, 7];
|
|
155
|
-
case 6: throw new Error('Not enough data has been provided to decrypt the ciphertext');
|
|
156
|
-
case 7:
|
|
157
|
-
openBox = (0, nacl_1.openSecretBox)(symKey, Buffer.from(ciphertext.nonce_enc, 'hex'), Buffer.from(ciphertext.payload_enc, 'hex'));
|
|
158
|
-
if (openBox === null) {
|
|
159
|
-
throw new Error('Failed to decrypt sapling ciphertext (enc)');
|
|
160
|
-
}
|
|
161
|
-
decrypted = Buffer.from(openBox);
|
|
162
|
-
diversifier = decrypted.slice(0, 11);
|
|
163
|
-
amount = new bignumber_1.default(decrypted.slice(11, 19).toString('hex'), 16);
|
|
164
|
-
rcm = decrypted.slice(19, 51);
|
|
165
|
-
memoLength = new bignumber_1.default(decrypted.slice(51, 55).toString('hex'), 16);
|
|
166
|
-
memo = decrypted.slice(55, 55 + memoLength.toNumber());
|
|
167
|
-
_b = {
|
|
168
|
-
diversifier: diversifier
|
|
169
|
-
};
|
|
170
|
-
return [4 /*yield*/, rawAddressFromDiversifier(diversifier)];
|
|
171
|
-
case 8: return [2 /*return*/, (_b.address = _c.sent(),
|
|
172
|
-
_b.amount = amount,
|
|
173
|
-
_b.rcm = rcm,
|
|
174
|
-
_b.memo = memo,
|
|
175
|
-
_b)];
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
};
|
|
180
|
-
TezosSaplingCryptoClient.prototype.decryptCiphertextOut = function (viewingKey, ciphertext, commitment) {
|
|
181
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
182
|
-
var ovk, cv, cm, epk, ock, openBox, decrypted, pkd, esk;
|
|
183
|
-
return __generator(this, function (_a) {
|
|
184
|
-
switch (_a.label) {
|
|
185
|
-
case 0: return [4 /*yield*/, sapling.getOutgoingViewingKey(viewingKey)];
|
|
186
|
-
case 1:
|
|
187
|
-
ovk = _a.sent();
|
|
188
|
-
cv = Buffer.from(ciphertext.cv, 'hex');
|
|
189
|
-
cm = Buffer.isBuffer(commitment) ? commitment : Buffer.from(commitment, 'hex');
|
|
190
|
-
epk = Buffer.from(ciphertext.epk, 'hex');
|
|
191
|
-
ock = (0, blake2b_1.blake2bAsBytes)(Buffer.concat([cv, cm, epk, ovk]), 256, {
|
|
192
|
-
key: Buffer.from(this.ockKey)
|
|
193
|
-
});
|
|
194
|
-
openBox = (0, nacl_1.openSecretBox)(ock, Buffer.from(ciphertext.nonce_out, 'hex'), Buffer.from(ciphertext.payload_out, 'hex'));
|
|
195
|
-
if (openBox === null) {
|
|
196
|
-
throw new Error('Failed to decrypt sapling ciphertext (out)');
|
|
197
|
-
}
|
|
198
|
-
decrypted = Buffer.from(openBox);
|
|
199
|
-
pkd = decrypted.slice(0, 32);
|
|
200
|
-
esk = decrypted.slice(32);
|
|
201
|
-
return [2 /*return*/, { pkd: pkd, esk: esk }];
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
};
|
|
206
|
-
TezosSaplingCryptoClient.prototype.getSymmetricKey = function (p, sk) {
|
|
207
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
208
|
-
var ka;
|
|
209
|
-
return __generator(this, function (_a) {
|
|
210
|
-
switch (_a.label) {
|
|
211
|
-
case 0: return [4 /*yield*/, sapling.keyAgreement(p, sk)];
|
|
212
|
-
case 1:
|
|
213
|
-
ka = _a.sent();
|
|
214
|
-
return [2 /*return*/, Buffer.from((0, blake2b_1.blake2bAsBytes)(ka, 256, { key: Buffer.from(this.kdfKey) }))];
|
|
215
|
-
}
|
|
216
|
-
});
|
|
52
|
+
async encryptCiphertext(tezosOutput, saplingDescription, rcm, esk, viewingKey) {
|
|
53
|
+
const address = await TezosSaplingAddress_1.TezosSaplingAddress.fromValue(tezosOutput.address);
|
|
54
|
+
const [ovk, diversifier, pkd] = await Promise.all([
|
|
55
|
+
viewingKey !== undefined ? sapling.getOutgoingViewingKey(viewingKey) : undefined,
|
|
56
|
+
sapling.getDiversifiedFromRawPaymentAddress(address.raw),
|
|
57
|
+
sapling.getPkdFromRawPaymentAddress(address.raw)
|
|
58
|
+
]);
|
|
59
|
+
const symKey = await this.getSymmetricKey(pkd, esk);
|
|
60
|
+
const nonceEnc = (0, random_1.randomBytes)(24);
|
|
61
|
+
const plaintextEnc = Buffer.concat([
|
|
62
|
+
diversifier,
|
|
63
|
+
(0, hex_1.toHexBuffer)(new bignumber_1.default(tezosOutput.value), 64, '2sComplement'),
|
|
64
|
+
rcm,
|
|
65
|
+
(0, hex_1.toHexBuffer)(tezosOutput.memo.length, 32),
|
|
66
|
+
Buffer.from(tezosOutput.memo, 'hex')
|
|
67
|
+
]);
|
|
68
|
+
const payloadEnc = (0, nacl_1.secretBox)(symKey, nonceEnc, plaintextEnc);
|
|
69
|
+
const epk = await sapling.deriveEphemeralPublicKey(diversifier, esk);
|
|
70
|
+
const ock = ovk !== undefined
|
|
71
|
+
? (0, blake2b_1.blake2bAsBytes)(Buffer.concat([saplingDescription.cv, saplingDescription.cm, epk, ovk]), 256, {
|
|
72
|
+
key: Buffer.from(this.ockKey)
|
|
73
|
+
})
|
|
74
|
+
: (0, random_1.randomBytes)(32);
|
|
75
|
+
const nonceOut = (0, random_1.randomBytes)(24);
|
|
76
|
+
const plaintextOut = Buffer.concat([pkd, esk]);
|
|
77
|
+
const payloadOut = (0, nacl_1.secretBox)(ock, nonceOut, plaintextOut);
|
|
78
|
+
return {
|
|
79
|
+
cv: saplingDescription.cv.toString('hex'),
|
|
80
|
+
epk: epk.toString('hex'),
|
|
81
|
+
payload_enc: Buffer.from(payloadEnc).toString('hex'),
|
|
82
|
+
nonce_enc: Buffer.from(nonceEnc).toString('hex'),
|
|
83
|
+
payload_out: Buffer.from(payloadOut).toString('hex'),
|
|
84
|
+
nonce_out: Buffer.from(nonceOut).toString('hex')
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
async decryptCiphertextEnc(viewingKey, ciphertext, mode = 'receiver', commitment) {
|
|
88
|
+
let symKey;
|
|
89
|
+
let rawAddressFromDiversifier;
|
|
90
|
+
if (mode === 'receiver') {
|
|
91
|
+
const ivk = await sapling.getIncomingViewingKey(viewingKey);
|
|
92
|
+
symKey = await this.getSymmetricKey(ciphertext.epk, ivk);
|
|
93
|
+
rawAddressFromDiversifier = (diversifier) => sapling.getRawPaymentAddressFromIncomingViewingKey(ivk, diversifier);
|
|
94
|
+
}
|
|
95
|
+
else if (mode === 'sender' && commitment !== undefined) {
|
|
96
|
+
const { pkd, esk } = await this.decryptCiphertextOut(viewingKey, ciphertext, commitment);
|
|
97
|
+
symKey = await this.getSymmetricKey(pkd, esk);
|
|
98
|
+
rawAddressFromDiversifier = (diversifier) => Promise.resolve(Buffer.concat([diversifier, pkd]));
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
throw new Error('Not enough data has been provided to decrypt the ciphertext');
|
|
102
|
+
}
|
|
103
|
+
const openBox = (0, nacl_1.openSecretBox)(symKey, Buffer.from(ciphertext.nonce_enc, 'hex'), Buffer.from(ciphertext.payload_enc, 'hex'));
|
|
104
|
+
if (openBox === null) {
|
|
105
|
+
throw new Error('Failed to decrypt sapling ciphertext (enc)');
|
|
106
|
+
}
|
|
107
|
+
const decrypted = Buffer.from(openBox);
|
|
108
|
+
const diversifier = decrypted.slice(0, 11);
|
|
109
|
+
const amount = new bignumber_1.default(decrypted.slice(11, 19).toString('hex'), 16);
|
|
110
|
+
const rcm = decrypted.slice(19, 51);
|
|
111
|
+
const memoLength = new bignumber_1.default(decrypted.slice(51, 55).toString('hex'), 16);
|
|
112
|
+
const memo = decrypted.slice(55, 55 + memoLength.toNumber());
|
|
113
|
+
return {
|
|
114
|
+
diversifier,
|
|
115
|
+
address: await rawAddressFromDiversifier(diversifier),
|
|
116
|
+
amount,
|
|
117
|
+
rcm,
|
|
118
|
+
memo
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
async decryptCiphertextOut(viewingKey, ciphertext, commitment) {
|
|
122
|
+
const ovk = await sapling.getOutgoingViewingKey(viewingKey);
|
|
123
|
+
const cv = Buffer.from(ciphertext.cv, 'hex');
|
|
124
|
+
const cm = Buffer.isBuffer(commitment) ? commitment : Buffer.from(commitment, 'hex');
|
|
125
|
+
const epk = Buffer.from(ciphertext.epk, 'hex');
|
|
126
|
+
const ock = (0, blake2b_1.blake2bAsBytes)(Buffer.concat([cv, cm, epk, ovk]), 256, {
|
|
127
|
+
key: Buffer.from(this.ockKey)
|
|
217
128
|
});
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
129
|
+
const openBox = (0, nacl_1.openSecretBox)(ock, Buffer.from(ciphertext.nonce_out, 'hex'), Buffer.from(ciphertext.payload_out, 'hex'));
|
|
130
|
+
if (openBox === null) {
|
|
131
|
+
throw new Error('Failed to decrypt sapling ciphertext (out)');
|
|
132
|
+
}
|
|
133
|
+
const decrypted = Buffer.from(openBox);
|
|
134
|
+
const pkd = decrypted.slice(0, 32);
|
|
135
|
+
const esk = decrypted.slice(32);
|
|
136
|
+
return { pkd, esk };
|
|
137
|
+
}
|
|
138
|
+
async getSymmetricKey(p, sk) {
|
|
139
|
+
const ka = await sapling.keyAgreement(p, sk);
|
|
140
|
+
return Buffer.from((0, blake2b_1.blake2bAsBytes)(ka, 256, { key: Buffer.from(this.kdfKey) }));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
221
143
|
exports.TezosSaplingCryptoClient = TezosSaplingCryptoClient;
|
|
222
144
|
//# sourceMappingURL=TezosSaplingCryptoClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TezosSaplingCryptoClient.js","sourceRoot":"","sources":["../../../src/v1/crypto/TezosSaplingCryptoClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TezosSaplingCryptoClient.js","sourceRoot":"","sources":["../../../src/v1/crypto/TezosSaplingCryptoClient.ts"],"names":[],"mappings":"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"}
|