@btc-vision/transaction 1.0.97 → 1.0.100
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/.babelrc +4 -7
- package/.prettierrc.json +11 -11
- package/CONTRIBUTING.md +71 -71
- package/LICENSE.md +62 -62
- package/README.md +76 -76
- package/browser/_version.d.ts +1 -1
- package/browser/bytecode/Compressor.d.ts +0 -1
- package/browser/crypto/crypto-browser.d.ts +1 -30
- package/browser/crypto/crypto.d.ts +0 -1
- package/browser/generators/AddressGenerator.d.ts +0 -1
- package/browser/generators/Generator.d.ts +2 -3
- package/browser/generators/builders/CalldataGenerator.d.ts +0 -1
- package/browser/generators/builders/CustomGenerator.d.ts +6 -0
- package/browser/generators/builders/DeploymentGenerator.d.ts +0 -1
- package/browser/generators/builders/MultiSignGenerator.d.ts +0 -1
- package/browser/index.js +1 -1
- package/browser/keypair/EcKeyPair.d.ts +0 -1
- package/browser/keypair/Wallet.d.ts +0 -1
- package/browser/opnet.d.ts +5 -3
- package/browser/signer/TweakedSigner.d.ts +0 -1
- package/browser/transaction/TransactionFactory.d.ts +2 -0
- package/browser/transaction/browser/BrowserSignerBase.d.ts +0 -1
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts +0 -1
- package/{build/transaction/builders/DeploymentTransactionV2.d.ts → browser/transaction/builders/CustomScriptTransaction.d.ts} +16 -12
- package/browser/transaction/builders/DeploymentTransaction.d.ts +0 -1
- package/browser/transaction/builders/InteractionTransaction.d.ts +0 -1
- package/browser/transaction/builders/MultiSignTransaction.d.ts +0 -1
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts +0 -1
- package/browser/transaction/builders/TransactionBuilder.d.ts +0 -1
- package/browser/transaction/builders/UnwrapSegwitTransaction.d.ts +0 -1
- package/browser/transaction/builders/UnwrapTransaction.d.ts +0 -1
- package/browser/transaction/builders/WrapTransaction.d.ts +0 -1
- package/browser/transaction/enums/TransactionType.d.ts +2 -1
- package/browser/transaction/interfaces/ITransactionParameters.d.ts +0 -1
- package/browser/transaction/interfaces/Tap.d.ts +0 -1
- package/browser/transaction/shared/P2TR_MS.d.ts +0 -1
- package/browser/transaction/shared/TweakedTransaction.d.ts +0 -1
- package/browser/utils/BitcoinUtils.d.ts +0 -1
- package/browser/verification/TapscriptVerificator.d.ts +0 -1
- package/browser/wbtc/WrappedGenerationParameters.d.ts +0 -1
- package/build/_version.d.ts +1 -1
- package/build/_version.js +1 -1
- package/build/bytecode/Compressor.d.ts +0 -1
- package/build/bytecode/Compressor.js +4 -4
- package/build/crypto/crypto.d.ts +0 -1
- package/build/generators/AddressGenerator.d.ts +0 -1
- package/build/generators/Generator.d.ts +2 -3
- package/build/generators/Generator.js +3 -5
- package/build/generators/builders/CalldataGenerator.d.ts +0 -1
- package/build/generators/builders/CalldataGenerator.js +2 -0
- package/build/generators/builders/CustomGenerator.d.ts +6 -0
- package/build/generators/builders/CustomGenerator.js +16 -0
- package/build/generators/builders/DeploymentGenerator.d.ts +0 -1
- package/build/generators/builders/DeploymentGenerator.js +2 -0
- package/build/generators/builders/{MultisignGenerator.d.ts → MultiSignGenerator.d.ts} +0 -1
- package/build/generators/builders/{MultisignGenerator.js → MultiSignGenerator.js} +1 -1
- package/build/keypair/EcKeyPair.d.ts +0 -1
- package/build/keypair/EcKeyPair.js +2 -2
- package/build/keypair/Wallet.d.ts +0 -1
- package/build/keypair/Wallet.js +0 -5
- package/build/metadata/ContractBaseMetadata.js +0 -1
- package/build/metadata/contracts/wBTC.js +3 -5
- package/build/metadata/tokens.js +32 -30
- package/build/opnet.d.ts +5 -3
- package/build/opnet.js +5 -3
- package/build/signer/TweakedSigner.d.ts +0 -1
- package/build/transaction/TransactionFactory.d.ts +2 -0
- package/build/transaction/TransactionFactory.js +42 -3
- package/build/transaction/browser/BrowserSignerBase.d.ts +0 -1
- package/build/transaction/browser/extensions/UnisatSigner.d.ts +0 -1
- package/build/transaction/browser/extensions/UnisatSigner.js +1 -6
- package/build/transaction/builders/CustomScriptTransaction.d.ts +40 -0
- package/build/transaction/builders/{DeploymentTransactionV2.js → CustomScriptTransaction.js} +40 -67
- package/build/transaction/builders/DeploymentTransaction.d.ts +0 -1
- package/build/transaction/builders/DeploymentTransaction.js +25 -33
- package/build/transaction/builders/FundingTransaction.js +1 -3
- package/build/transaction/builders/InteractionTransaction.d.ts +0 -1
- package/build/transaction/builders/InteractionTransaction.js +2 -5
- package/build/transaction/builders/MultiSignTransaction.d.ts +0 -1
- package/build/transaction/builders/MultiSignTransaction.js +66 -73
- package/build/transaction/builders/SharedInteractionTransaction.d.ts +0 -1
- package/build/transaction/builders/SharedInteractionTransaction.js +20 -25
- package/build/transaction/builders/TransactionBuilder.d.ts +0 -1
- package/build/transaction/builders/TransactionBuilder.js +12 -21
- package/build/transaction/builders/UnwrapSegwitTransaction.d.ts +0 -1
- package/build/transaction/builders/UnwrapSegwitTransaction.js +4 -10
- package/build/transaction/builders/UnwrapTransaction.d.ts +0 -1
- package/build/transaction/builders/UnwrapTransaction.js +5 -11
- package/build/transaction/builders/WrapTransaction.d.ts +0 -1
- package/build/transaction/builders/WrapTransaction.js +5 -12
- package/build/transaction/enums/TransactionType.d.ts +2 -1
- package/build/transaction/enums/TransactionType.js +1 -0
- package/build/transaction/interfaces/ITransactionParameters.d.ts +0 -1
- package/build/transaction/interfaces/Tap.d.ts +0 -1
- package/build/transaction/processor/PsbtTransaction.js +3 -4
- package/build/transaction/shared/P2TR_MS.d.ts +0 -1
- package/build/transaction/shared/TweakedTransaction.d.ts +0 -1
- package/build/transaction/shared/TweakedTransaction.js +11 -16
- package/build/utils/BitcoinUtils.d.ts +0 -1
- package/build/utxo/OPNetLimitedProvider.js +2 -3
- package/build/verification/TapscriptVerificator.d.ts +0 -1
- package/build/verification/TapscriptVerificator.js +1 -1
- package/build/wbtc/UnwrapGeneration.js +0 -2
- package/build/wbtc/WrappedGenerationParameters.d.ts +0 -1
- package/build/wbtc/WrappedGenerationParameters.js +0 -6
- package/cjs/package.json +3 -0
- package/gulpfile.js +49 -133
- package/package.json +112 -113
- package/src/_version.ts +1 -1
- package/src/bytecode/Compressor.ts +27 -27
- package/src/consensus/metadata/RoswellConsensus.ts +26 -26
- package/src/crypto/crypto.ts +1 -1
- package/src/generators/Generator.ts +75 -75
- package/src/generators/builders/CalldataGenerator.ts +2 -0
- package/src/generators/builders/CustomGenerator.ts +30 -0
- package/src/generators/builders/DeploymentGenerator.ts +2 -0
- package/src/generators/builders/MultiSignGenerator.ts +73 -73
- package/src/metadata/contracts/wBTC.ts +60 -60
- package/src/metadata/tokens.ts +135 -135
- package/src/network/ChainId.ts +6 -6
- package/src/opnet.ts +82 -82
- package/src/signer/TweakedSigner.ts +56 -56
- package/src/transaction/TransactionFactory.ts +72 -14
- package/src/transaction/builders/CustomScriptTransaction.ts +337 -0
- package/src/transaction/builders/DeploymentTransaction.ts +356 -356
- package/src/transaction/builders/MultiSignTransaction.ts +659 -659
- package/src/transaction/builders/UnwrapSegwitTransaction.ts +365 -365
- package/src/transaction/builders/UnwrapTransaction.ts +507 -507
- package/src/transaction/enums/TransactionType.ts +10 -9
- package/src/transaction/processor/PsbtTransaction.ts +173 -173
- package/src/transaction/shared/P2TR_MS.ts +42 -42
- package/src/transaction/shared/TweakedTransaction.ts +539 -539
- package/src/utils/BitcoinUtils.ts +96 -96
- package/tsconfig.base.json +27 -43
- package/tsconfig.json +15 -8
- package/tsconfig.webpack.json +22 -22
- package/EPOCH.md +0 -250
- package/VAULT_TARGET_CONSOLIDATION.md +0 -111
- package/browser/network/NetworkInformation.d.ts +0 -6
- package/browser/transaction/browser/BrowserSigner.d.ts +0 -9
- package/browser/transaction/builders/TapUnwarpTransaction.d.ts +0 -40
- package/browser/transaction/builders/UnwarpTransaction.d.ts +0 -34
- package/browser/utxo/UTXOManager.d.ts +0 -7
- package/build/Utils.d.ts +0 -0
- package/build/Utils.js +0 -1
- package/build/consensus/metadata/RoswsellConsensus.d.ts +0 -2
- package/build/consensus/metadata/RoswsellConsensus.js +0 -4
- package/build/contracts/ContractMetadataManager.d.ts +0 -0
- package/build/contracts/ContractMetadataManager.js +0 -1
- package/build/generators/OPNetAddressGenerator.d.ts +0 -0
- package/build/generators/OPNetAddressGenerator.js +0 -1
- package/build/generators/builders/DeploymentGeneratorV2.d.ts +0 -13
- package/build/generators/builders/DeploymentGeneratorV2.js +0 -57
- package/build/generators/builders/UnwrapGenerator.d.ts +0 -8
- package/build/generators/builders/UnwrapGenerator.js +0 -79
- package/build/keypair/interfaces/GeneratedWallet.d.ts +0 -5
- package/build/keypair/interfaces/GeneratedWallet.js +0 -1
- package/build/metadata/CommonContracts.d.ts +0 -6
- package/build/metadata/CommonContracts.js +0 -5
- package/build/metadata/ContractMetadataManager.d.ts +0 -1
- package/build/metadata/ContractMetadataManager.js +0 -9
- package/build/metadata/contracts/ContractBase.d.ts +0 -9
- package/build/metadata/contracts/ContractBase.js +0 -13
- package/build/metadata/contracts/ContractBaseMetadata.d.ts +0 -9
- package/build/metadata/contracts/ContractBaseMetadata.js +0 -13
- package/build/metadata/contracts/ContractMetadataManager.d.ts +0 -0
- package/build/metadata/contracts/ContractMetadataManager.js +0 -1
- package/build/network/NetworkConverter.d.ts +0 -0
- package/build/network/NetworkConverter.js +0 -14
- package/build/network/NetworkInformation.d.ts +0 -6
- package/build/network/NetworkInformation.js +0 -1
- package/build/scripts/Regtest.d.ts +0 -2
- package/build/scripts/Regtest.js +0 -15
- package/build/scripts/test.d.ts +0 -1
- package/build/scripts/test.js +0 -74
- package/build/signer/Regtest.d.ts +0 -2
- package/build/signer/Regtest.js +0 -15
- package/build/tests/Regtest.d.ts +0 -3
- package/build/tests/Regtest.js +0 -29
- package/build/tests/adaptPSBT.d.ts +0 -1
- package/build/tests/adaptPSBT.js +0 -44
- package/build/tests/btc/send.d.ts +0 -1
- package/build/tests/btc/send.js +0 -35
- package/build/tests/btc/transfer.d.ts +0 -1
- package/build/tests/btc/transfer.js +0 -35
- package/build/tests/createPairReg.d.ts +0 -1
- package/build/tests/createPairReg.js +0 -73
- package/build/tests/deploy/deployMoto.d.ts +0 -4
- package/build/tests/deploy/deployMoto.js +0 -89
- package/build/tests/deploy/deployPool.d.ts +0 -1
- package/build/tests/deploy/deployPool.js +0 -5
- package/build/tests/deploy/deployStep1.d.ts +0 -1
- package/build/tests/deploy/deployStep1.js +0 -5
- package/build/tests/deploy/deployStep2.d.ts +0 -1
- package/build/tests/deploy/deployStep2.js +0 -5
- package/build/tests/deploy/deployStep3.d.ts +0 -1
- package/build/tests/deploy/deployStep3.js +0 -5
- package/build/tests/deploy.d.ts +0 -1
- package/build/tests/deploy.js +0 -41
- package/build/tests/deployMotoRegStep1.d.ts +0 -1
- package/build/tests/deployMotoRegStep1.js +0 -85
- package/build/tests/deployReg.d.ts +0 -1
- package/build/tests/deployReg.js +0 -85
- package/build/tests/factory/createPairReg.d.ts +0 -1
- package/build/tests/factory/createPairReg.js +0 -13
- package/build/tests/gen.d.ts +0 -1
- package/build/tests/gen.js +0 -19
- package/build/tests/interaction.d.ts +0 -5
- package/build/tests/interaction.js +0 -62
- package/build/tests/massWrapReg.d.ts +0 -1
- package/build/tests/massWrapReg.js +0 -105
- package/build/tests/mineReg.d.ts +0 -1
- package/build/tests/mineReg.js +0 -19
- package/build/tests/moto/airdropToken.d.ts +0 -1
- package/build/tests/moto/airdropToken.js +0 -21
- package/build/tests/moto/airdropTokens.d.ts +0 -1
- package/build/tests/moto/airdropTokens.js +0 -60
- package/build/tests/moto/allowance.d.ts +0 -1
- package/build/tests/moto/allowance.js +0 -6
- package/build/tests/moto/approve.d.ts +0 -1
- package/build/tests/moto/approve.js +0 -10
- package/build/tests/moto/approveWBTC.d.ts +0 -1
- package/build/tests/moto/approveWBTC.js +0 -12
- package/build/tests/moto/balanceOf.d.ts +0 -1
- package/build/tests/moto/balanceOf.js +0 -12
- package/build/tests/moto/transfer.d.ts +0 -1
- package/build/tests/moto/transfer.js +0 -16
- package/build/tests/motoswap/airdropToken.d.ts +0 -11
- package/build/tests/motoswap/airdropToken.js +0 -36
- package/build/tests/motoswap/deployMoto.d.ts +0 -4
- package/build/tests/motoswap/deployMoto.js +0 -89
- package/build/tests/motoswap/deployMotoRegStep1.d.ts +0 -1
- package/build/tests/motoswap/deployMotoRegStep1.js +0 -91
- package/build/tests/motoswap/deployMotoRegStep2.d.ts +0 -1
- package/build/tests/motoswap/deployMotoRegStep2.js +0 -91
- package/build/tests/motoswap/deployPool.d.ts +0 -1
- package/build/tests/motoswap/deployPool.js +0 -5
- package/build/tests/motoswap/deployStep1.d.ts +0 -1
- package/build/tests/motoswap/deployStep1.js +0 -5
- package/build/tests/motoswap/deployStep2.d.ts +0 -1
- package/build/tests/motoswap/deployStep2.js +0 -5
- package/build/tests/motoswap/deployStep3.d.ts +0 -1
- package/build/tests/motoswap/deployStep3.js +0 -5
- package/build/tests/motoswap/interaction.d.ts +0 -3
- package/build/tests/motoswap/interaction.js +0 -63
- package/build/tests/motoswap/routerAddLiquidity.d.ts +0 -11
- package/build/tests/motoswap/routerAddLiquidity.js +0 -35
- package/build/tests/motoswap-router/addLiquidity.d.ts +0 -11
- package/build/tests/motoswap-router/addLiquidity.js +0 -36
- package/build/tests/motoswap-router/deployMoto.d.ts +0 -4
- package/build/tests/motoswap-router/deployMoto.js +0 -89
- package/build/tests/motoswap-router/deployPool.d.ts +0 -1
- package/build/tests/motoswap-router/deployPool.js +0 -5
- package/build/tests/motoswap-router/deployStep1.d.ts +0 -1
- package/build/tests/motoswap-router/deployStep1.js +0 -5
- package/build/tests/motoswap-router/deployStep2.d.ts +0 -1
- package/build/tests/motoswap-router/deployStep2.js +0 -5
- package/build/tests/motoswap-router/deployStep3.d.ts +0 -1
- package/build/tests/motoswap-router/deployStep3.js +0 -5
- package/build/tests/motoswap-router/getAmountsOut.d.ts +0 -5
- package/build/tests/motoswap-router/getAmountsOut.js +0 -34
- package/build/tests/motoswap-router/routerAddLiquidity.d.ts +0 -11
- package/build/tests/motoswap-router/routerAddLiquidity.js +0 -35
- package/build/tests/motoswap-router/swap.d.ts +0 -8
- package/build/tests/motoswap-router/swap.js +0 -24
- package/build/tests/multisign.d.ts +0 -1
- package/build/tests/multisign.js +0 -47
- package/build/tests/multisign2.d.ts +0 -1
- package/build/tests/multisign2.js +0 -27
- package/build/tests/pool/DecodePoolAddress.d.ts +0 -6
- package/build/tests/pool/DecodePoolAddress.js +0 -12
- package/build/tests/pool/decodeReserves.d.ts +0 -5
- package/build/tests/pool/decodeReserves.js +0 -13
- package/build/tests/pool/reserves.d.ts +0 -1
- package/build/tests/pool/reserves.js +0 -18
- package/build/tests/shared/Utils.d.ts +0 -2
- package/build/tests/shared/Utils.js +0 -14
- package/build/tests/shared/interaction.d.ts +0 -7
- package/build/tests/shared/interaction.js +0 -85
- package/build/tests/shared/tokens.d.ts +0 -6
- package/build/tests/shared/tokens.js +0 -5
- package/build/tests/stakeReg.d.ts +0 -1
- package/build/tests/stakeReg.js +0 -73
- package/build/tests/stakedReg.d.ts +0 -1
- package/build/tests/stakedReg.js +0 -28
- package/build/tests/test.d.ts +0 -1
- package/build/tests/test.js +0 -51
- package/build/tests/test2.d.ts +0 -1
- package/build/tests/test2.js +0 -73
- package/build/tests/testReg.d.ts +0 -1
- package/build/tests/testReg.js +0 -91
- package/build/tests/tokens.d.ts +0 -6
- package/build/tests/tokens.js +0 -5
- package/build/tests/totalRewardReg.d.ts +0 -1
- package/build/tests/totalRewardReg.js +0 -28
- package/build/tests/transfer.d.ts +0 -1
- package/build/tests/transfer.js +0 -74
- package/build/tests/transferReg.d.ts +0 -1
- package/build/tests/transferReg.js +0 -74
- package/build/tests/unStakeReg.d.ts +0 -1
- package/build/tests/unStakeReg.js +0 -72
- package/build/tests/unwrapReg.d.ts +0 -1
- package/build/tests/unwrapReg.js +0 -61
- package/build/tests/unwrapReg2.d.ts +0 -1
- package/build/tests/unwrapReg2.js +0 -56
- package/build/tests/unwrapRegSegwit.d.ts +0 -1
- package/build/tests/unwrapRegSegwit.js +0 -83
- package/build/tests/wbtc/approve.d.ts +0 -1
- package/build/tests/wbtc/approve.js +0 -6
- package/build/tests/wbtc/approveWBTC.d.ts +0 -1
- package/build/tests/wbtc/approveWBTC.js +0 -12
- package/build/tests/wbtc/massWrapReg.d.ts +0 -1
- package/build/tests/wbtc/massWrapReg.js +0 -105
- package/build/tests/wbtc/transfer.d.ts +0 -1
- package/build/tests/wbtc/transfer.js +0 -16
- package/build/tests/wbtc/transferReg.d.ts +0 -1
- package/build/tests/wbtc/transferReg.js +0 -16
- package/build/tests/wbtc/unStakeReg.d.ts +0 -1
- package/build/tests/wbtc/unStakeReg.js +0 -72
- package/build/tests/wbtc/unwrapReg.d.ts +0 -1
- package/build/tests/wbtc/unwrapReg.js +0 -60
- package/build/tests/wbtc/unwrapRegSegwit.d.ts +0 -1
- package/build/tests/wbtc/unwrapRegSegwit.js +0 -83
- package/build/tests/wbtc/withdrawalRequestReg.d.ts +0 -1
- package/build/tests/wbtc/withdrawalRequestReg.js +0 -71
- package/build/tests/wbtc/wrapReg.d.ts +0 -1
- package/build/tests/wbtc/wrapReg.js +0 -65
- package/build/tests/wbtc/wrapTest.d.ts +0 -1
- package/build/tests/wbtc/wrapTest.js +0 -66
- package/build/tests/withdrawalRequestReg.d.ts +0 -1
- package/build/tests/withdrawalRequestReg.js +0 -71
- package/build/tests/wrap.d.ts +0 -1
- package/build/tests/wrap.js +0 -65
- package/build/tests/wrapReg.d.ts +0 -1
- package/build/tests/wrapReg.js +0 -68
- package/build/tests/wrapTest.d.ts +0 -1
- package/build/tests/wrapTest.js +0 -66
- package/build/tests/wrapTestg.d.ts +0 -1
- package/build/tests/wrapTestg.js +0 -66
- package/build/tests/writers/allowance.d.ts +0 -3
- package/build/tests/writers/allowance.js +0 -10
- package/build/tests/writers/approve.d.ts +0 -4
- package/build/tests/writers/approve.js +0 -11
- package/build/transaction/TransactionBuilder.d.ts +0 -60
- package/build/transaction/TransactionBuilder.js +0 -244
- package/build/transaction/browser/BrowserSigner.d.ts +0 -11
- package/build/transaction/browser/BrowserSigner.js +0 -10
- package/build/transaction/browser/extensions/Unisat.d.ts +0 -54
- package/build/transaction/browser/extensions/Unisat.js +0 -11
- package/build/transaction/builders/GenericTransaction.d.ts +0 -11
- package/build/transaction/builders/GenericTransaction.js +0 -23
- package/build/transaction/builders/TapUnwarpTransaction.d.ts +0 -37
- package/build/transaction/builders/TapUnwarpTransaction.js +0 -201
- package/build/transaction/builders/UnwarpSegwitTransaction.d.ts +0 -34
- package/build/transaction/builders/UnwarpSegwitTransaction.js +0 -184
- package/build/transaction/builders/UnwarpTransaction.d.ts +0 -35
- package/build/transaction/builders/UnwarpTransaction.js +0 -199
- package/build/transaction/interfaces/ITransactions.d.ts +0 -32
- package/build/transaction/interfaces/ITransactions.js +0 -1
- package/build/utxo/IUTXO.d.ts +0 -0
- package/build/utxo/IUTXO.js +0 -1
- package/build/utxo/OPNetUtils.d.ts +0 -7
- package/build/utxo/OPNetUtils.js +0 -47
- package/build/utxo/UTXOManager.d.ts +0 -7
- package/build/utxo/UTXOManager.js +0 -47
- package/build/wbtc/BroadcastResponse.d.ts +0 -0
- package/build/wbtc/BroadcastResponse.js +0 -1
- package/examples/Deploy.md +0 -188
- package/examples/Unwrap.md +0 -165
- package/examples/Wrap.md +0 -194
- package/tsconfig.cjs.json +0 -13
- /package/build/generators/{features.d.ts → Features.d.ts} +0 -0
- /package/build/generators/{features.js → Features.js} +0 -0
package/package.json
CHANGED
|
@@ -1,113 +1,112 @@
|
|
|
1
|
-
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
"
|
|
31
|
-
"bsi
|
|
32
|
-
"bsi-
|
|
33
|
-
"bitcoin
|
|
34
|
-
"transaction
|
|
35
|
-
"transaction
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"smart
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"publishConfig": {
|
|
49
|
-
"access": "public",
|
|
50
|
-
"tag": "latest"
|
|
51
|
-
},
|
|
52
|
-
"repository": {
|
|
53
|
-
"type": "git",
|
|
54
|
-
"url": "git://github.com/btc-vision/transaction.git"
|
|
55
|
-
},
|
|
56
|
-
"scripts": {
|
|
57
|
-
"watch": "gulp watch",
|
|
58
|
-
"build": "gulp
|
|
59
|
-
"setup": "npm
|
|
60
|
-
"browserBuild": "webpack --mode production",
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"@babel/
|
|
68
|
-
"@babel/
|
|
69
|
-
"@babel/preset-
|
|
70
|
-
"@babel/preset-
|
|
71
|
-
"@
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"webpack
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"@
|
|
90
|
-
"@
|
|
91
|
-
"@btc-vision/bsi-
|
|
92
|
-
"@btc-vision/
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"babel-
|
|
96
|
-
"babel-
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@btc-vision/transaction",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "1.0.100",
|
|
5
|
+
"author": "BlobMaster41",
|
|
6
|
+
"description": "OPNet transaction library allows you to create and sign transactions for the OPNet network.",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=16.0.0"
|
|
9
|
+
},
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"import": "./build/index.js",
|
|
13
|
+
"require": "./build/index.js",
|
|
14
|
+
"types": "./build/index.d.ts"
|
|
15
|
+
},
|
|
16
|
+
"./browser": {
|
|
17
|
+
"import": "./browser/index.js",
|
|
18
|
+
"require": "./browser/index.js",
|
|
19
|
+
"types": "./browser/index.d.ts"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"browser": {
|
|
23
|
+
"Buffer": "buffer",
|
|
24
|
+
"crypto": "./src/crypto/crypto-browser.js",
|
|
25
|
+
"stream": "stream-browserify",
|
|
26
|
+
"zlib": "browserify-zlib"
|
|
27
|
+
},
|
|
28
|
+
"homepage": "https://opnet.org",
|
|
29
|
+
"keywords": [
|
|
30
|
+
"opnet",
|
|
31
|
+
"bsi",
|
|
32
|
+
"bsi-binary",
|
|
33
|
+
"bsi-bitcoin-rpc",
|
|
34
|
+
"bitcoin transaction",
|
|
35
|
+
"transaction builder",
|
|
36
|
+
"transaction signer",
|
|
37
|
+
"bitcoin",
|
|
38
|
+
"btc",
|
|
39
|
+
"bitcoin smart contracts",
|
|
40
|
+
"smart inscriptions",
|
|
41
|
+
"ordinals"
|
|
42
|
+
],
|
|
43
|
+
"license": "LICENSE.MD",
|
|
44
|
+
"main": "build/index.js",
|
|
45
|
+
"types": "build/index.d.ts",
|
|
46
|
+
"typings": "build/index.d.ts",
|
|
47
|
+
"module": "build/index.js",
|
|
48
|
+
"publishConfig": {
|
|
49
|
+
"access": "public",
|
|
50
|
+
"tag": "latest"
|
|
51
|
+
},
|
|
52
|
+
"repository": {
|
|
53
|
+
"type": "git",
|
|
54
|
+
"url": "git://github.com/btc-vision/transaction.git"
|
|
55
|
+
},
|
|
56
|
+
"scripts": {
|
|
57
|
+
"watch": "gulp watch",
|
|
58
|
+
"build": "gulp build",
|
|
59
|
+
"setup": "npm i && npm run build",
|
|
60
|
+
"browserBuild": "webpack --mode production",
|
|
61
|
+
"docs": "typedoc --out docs --exclude 'src/tests/*.ts' --tsconfig tsconfig.json --readme README.md --name OPNet --plugin typedoc-material-theme --themeColor '#cb9820' --exclude src/tests/test.ts --exclude src/index.ts src"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@babel/core": "^7.25.2",
|
|
65
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
66
|
+
"@babel/plugin-transform-runtime": "^7.24.3",
|
|
67
|
+
"@babel/preset-env": "^7.24.4",
|
|
68
|
+
"@babel/preset-flow": "^7.24.1",
|
|
69
|
+
"@babel/preset-react": "^7.24.1",
|
|
70
|
+
"@babel/preset-typescript": "^7.24.1",
|
|
71
|
+
"@types/node": "^22.5.5",
|
|
72
|
+
"eslint": "^8.57.0",
|
|
73
|
+
"gulp": "^5.0.0",
|
|
74
|
+
"gulp-cached": "^1.1.1",
|
|
75
|
+
"gulp-logger": "^0.0.2",
|
|
76
|
+
"gulp-typescript": "^6.0.0-alpha.1",
|
|
77
|
+
"https-browserify": "^1.0.0",
|
|
78
|
+
"os-browserify": "^0.3.0",
|
|
79
|
+
"prettier": "^3.3.1",
|
|
80
|
+
"stream-browserify": "^3.0.0",
|
|
81
|
+
"stream-http": "^3.2.0",
|
|
82
|
+
"typedoc": "^0.25.13",
|
|
83
|
+
"typedoc-material-theme": "^1.0.2",
|
|
84
|
+
"typescript-eslint": "^7.4.0",
|
|
85
|
+
"webpack": "^5.91.0",
|
|
86
|
+
"webpack-cli": "^5.1.4"
|
|
87
|
+
},
|
|
88
|
+
"dependencies": {
|
|
89
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
|
|
90
|
+
"@bitcoinerlab/secp256k1": "^1.1.1",
|
|
91
|
+
"@btc-vision/bsi-binary": "^1.0.38",
|
|
92
|
+
"@btc-vision/bsi-bitcoin-rpc": "^1.0.26",
|
|
93
|
+
"@btc-vision/logger": "^1.0.4",
|
|
94
|
+
"assert": "^2.1.0",
|
|
95
|
+
"babel-loader": "^9.1.3",
|
|
96
|
+
"babel-plugin-transform-import-meta": "^2.2.1",
|
|
97
|
+
"babel-preset-react": "^6.24.1",
|
|
98
|
+
"babelify": "^10.0.0",
|
|
99
|
+
"bech32": "^2.0.0",
|
|
100
|
+
"bignumber.js": "^9.1.2",
|
|
101
|
+
"bip32": "^4.0.0",
|
|
102
|
+
"bitcoinjs-lib": "github:btc-vision/bitcoinjs-lib",
|
|
103
|
+
"browserify-zlib": "^0.2.0",
|
|
104
|
+
"buffer": "^6.0.3",
|
|
105
|
+
"ecpair": "^2.1.0",
|
|
106
|
+
"gulplog": "^2.2.0",
|
|
107
|
+
"process": "^0.11.10",
|
|
108
|
+
"ts-loader": "^9.5.1",
|
|
109
|
+
"ts-node": "^10.9.2",
|
|
110
|
+
"typescript": "^5.6.2"
|
|
111
|
+
}
|
|
112
|
+
}
|
package/src/_version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.0.
|
|
1
|
+
export const version = '1.0.100';
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import zlib, { ZlibOptions } from 'zlib';
|
|
2
|
-
|
|
3
|
-
/** Compressor class for compressing and decompressing data. */
|
|
4
|
-
export class Compressor {
|
|
5
|
-
private static readonly zlibOptions: ZlibOptions = {
|
|
6
|
-
level: 9,
|
|
7
|
-
maxOutputLength: 1024 * 1024 * 16, // 16mb, limit it to 16mb.
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Compresses the data using gzip.
|
|
12
|
-
* @param {Uint8Array | Buffer} data The data to compress.
|
|
13
|
-
* @returns {Buffer} The compressed data.
|
|
14
|
-
*/
|
|
15
|
-
public static compress(data: Uint8Array | Buffer): Buffer {
|
|
16
|
-
return zlib.gzipSync(data, Compressor.zlibOptions);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Decompresses the data using gunzip.
|
|
21
|
-
* @param {Uint8Array | Buffer} data The data to decompress.
|
|
22
|
-
* @returns {Buffer} The decompressed data.
|
|
23
|
-
*/
|
|
24
|
-
public static decompress(data: Uint8Array | Buffer): Buffer {
|
|
25
|
-
return zlib.gunzipSync(data, Compressor.zlibOptions);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
1
|
+
import zlib, { ZlibOptions } from 'zlib';
|
|
2
|
+
|
|
3
|
+
/** Compressor class for compressing and decompressing data. */
|
|
4
|
+
export class Compressor {
|
|
5
|
+
private static readonly zlibOptions: ZlibOptions = {
|
|
6
|
+
level: 9,
|
|
7
|
+
maxOutputLength: 1024 * 1024 * 16, // 16mb, limit it to 16mb.
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Compresses the data using gzip.
|
|
12
|
+
* @param {Uint8Array | Buffer} data The data to compress.
|
|
13
|
+
* @returns {Buffer} The compressed data.
|
|
14
|
+
*/
|
|
15
|
+
public static compress(data: Uint8Array | Buffer): Buffer {
|
|
16
|
+
return zlib.gzipSync(data, Compressor.zlibOptions);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Decompresses the data using gunzip.
|
|
21
|
+
* @param {Uint8Array | Buffer} data The data to decompress.
|
|
22
|
+
* @returns {Buffer} The decompressed data.
|
|
23
|
+
*/
|
|
24
|
+
public static decompress(data: Uint8Array | Buffer): Buffer {
|
|
25
|
+
return zlib.gunzipSync(data, Compressor.zlibOptions);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { ConsensusConfig } from '../ConsensusConfig.js';
|
|
2
|
-
import { Consensus } from '../Consensus.js';
|
|
3
|
-
|
|
4
|
-
export const RoswellConsensus: ConsensusConfig<Consensus.Roswell> = {
|
|
5
|
-
CONSENSUS: Consensus.Roswell,
|
|
6
|
-
CONSENSUS_NAME: 'Roswell',
|
|
7
|
-
|
|
8
|
-
// The block height at which this consensus was enabled.
|
|
9
|
-
ENABLED_AT_BLOCK: 0n,
|
|
10
|
-
|
|
11
|
-
// Defines the minimum amount that can be consolidated in a single transaction.
|
|
12
|
-
VAULT_MINIMUM_AMOUNT: 200000n,
|
|
13
|
-
|
|
14
|
-
// Defines the requested minimum acceptance for joining UTXOs when an unwrap is being done.
|
|
15
|
-
// If the consolidate output going back to the vault is lower than this amount, the transaction will be rejected.
|
|
16
|
-
// User must pay for the consolidation, this help the network by having fewer UTXOs.
|
|
17
|
-
VAULT_NETWORK_CONSOLIDATION_ACCEPTANCE: 200000n * 2n,
|
|
18
|
-
|
|
19
|
-
// Everytime an user wrap bitcoin, he prepays the fees for the consolidation at a maximum fee rate of the following determined value.
|
|
20
|
-
// If the fees are lower, the user will be refunded the difference.
|
|
21
|
-
// If the fees are higher, the user must pay the difference.
|
|
22
|
-
UNWRAP_CONSOLIDATION_PREPAID_FEES: 250n,
|
|
23
|
-
|
|
24
|
-
// Equivalent to 56500 satoshis, calculated from UNWRAP_CONSOLIDATION_PREPAID_FEES.
|
|
25
|
-
UNWRAP_CONSOLIDATION_PREPAID_FEES_SAT: 56500n,
|
|
26
|
-
};
|
|
1
|
+
import { ConsensusConfig } from '../ConsensusConfig.js';
|
|
2
|
+
import { Consensus } from '../Consensus.js';
|
|
3
|
+
|
|
4
|
+
export const RoswellConsensus: ConsensusConfig<Consensus.Roswell> = {
|
|
5
|
+
CONSENSUS: Consensus.Roswell,
|
|
6
|
+
CONSENSUS_NAME: 'Roswell',
|
|
7
|
+
|
|
8
|
+
// The block height at which this consensus was enabled.
|
|
9
|
+
ENABLED_AT_BLOCK: 0n,
|
|
10
|
+
|
|
11
|
+
// Defines the minimum amount that can be consolidated in a single transaction.
|
|
12
|
+
VAULT_MINIMUM_AMOUNT: 200000n,
|
|
13
|
+
|
|
14
|
+
// Defines the requested minimum acceptance for joining UTXOs when an unwrap is being done.
|
|
15
|
+
// If the consolidate output going back to the vault is lower than this amount, the transaction will be rejected.
|
|
16
|
+
// User must pay for the consolidation, this help the network by having fewer UTXOs.
|
|
17
|
+
VAULT_NETWORK_CONSOLIDATION_ACCEPTANCE: 200000n * 2n,
|
|
18
|
+
|
|
19
|
+
// Everytime an user wrap bitcoin, he prepays the fees for the consolidation at a maximum fee rate of the following determined value.
|
|
20
|
+
// If the fees are lower, the user will be refunded the difference.
|
|
21
|
+
// If the fees are higher, the user must pay the difference.
|
|
22
|
+
UNWRAP_CONSOLIDATION_PREPAID_FEES: 250n,
|
|
23
|
+
|
|
24
|
+
// Equivalent to 56500 satoshis, calculated from UNWRAP_CONSOLIDATION_PREPAID_FEES.
|
|
25
|
+
UNWRAP_CONSOLIDATION_PREPAID_FEES_SAT: 56500n,
|
|
26
|
+
};
|
package/src/crypto/crypto.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { createHash, createHmac, pbkdf2Sync, randomBytes } from 'crypto';
|
|
1
|
+
export { createHash, createHmac, pbkdf2Sync, randomBytes } from 'crypto';
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
import { Network, networks } from 'bitcoinjs-lib';
|
|
2
|
-
|
|
3
|
-
/** Bitcoin Script Generator */
|
|
4
|
-
export abstract class Generator {
|
|
5
|
-
/**
|
|
6
|
-
* The maximum size of a data chunk
|
|
7
|
-
*/
|
|
8
|
-
public static readonly DATA_CHUNK_SIZE: number = 512;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* The magic number of OPNet
|
|
12
|
-
*/
|
|
13
|
-
public static readonly MAGIC: Buffer = Buffer.from('bsi', 'utf-8');
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* The public key of the sender
|
|
17
|
-
* @protected
|
|
18
|
-
*/
|
|
19
|
-
protected readonly senderPubKey: Buffer;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* The public key of the contract salt
|
|
23
|
-
* @protected
|
|
24
|
-
*/
|
|
25
|
-
protected readonly contractSaltPubKey
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The network to use
|
|
29
|
-
* @protected
|
|
30
|
-
*/
|
|
31
|
-
protected readonly network: Network = networks.bitcoin;
|
|
32
|
-
|
|
33
|
-
protected constructor(
|
|
34
|
-
senderPubKey: Buffer,
|
|
35
|
-
contractSaltPubKey
|
|
36
|
-
network: Network = networks.bitcoin,
|
|
37
|
-
) {
|
|
38
|
-
this.senderPubKey = senderPubKey;
|
|
39
|
-
this.contractSaltPubKey = contractSaltPubKey;
|
|
40
|
-
this.network = network;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Compile the script
|
|
45
|
-
* @param args - The arguments to use when compiling the script
|
|
46
|
-
* @returns {Buffer} - The compiled script
|
|
47
|
-
*/
|
|
48
|
-
public abstract compile(...args: unknown[]): Buffer;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Split a buffer into chunks
|
|
52
|
-
* @param {Buffer} buffer - The buffer to split
|
|
53
|
-
* @param {number} chunkSize - The size of each chunk
|
|
54
|
-
* @protected
|
|
55
|
-
* @returns {Array<Buffer[]>} - The chunks
|
|
56
|
-
*/
|
|
57
|
-
protected splitBufferIntoChunks(
|
|
58
|
-
buffer: Buffer,
|
|
59
|
-
chunkSize: number = Generator.DATA_CHUNK_SIZE,
|
|
60
|
-
): Array<Buffer[]> {
|
|
61
|
-
const chunks: Array<Buffer[]> = [];
|
|
62
|
-
for (let i = 0; i < buffer.length; i += chunkSize) {
|
|
63
|
-
const dataLength = Math.min(chunkSize, buffer.length - i);
|
|
64
|
-
|
|
65
|
-
const buf2 = Buffer.alloc(dataLength);
|
|
66
|
-
for (let j = 0; j < dataLength; j++) {
|
|
67
|
-
buf2.writeUInt8(buffer[i + j], j);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
chunks.push([buf2]);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return chunks;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
1
|
+
import { Network, networks } from 'bitcoinjs-lib';
|
|
2
|
+
|
|
3
|
+
/** Bitcoin Script Generator */
|
|
4
|
+
export abstract class Generator {
|
|
5
|
+
/**
|
|
6
|
+
* The maximum size of a data chunk
|
|
7
|
+
*/
|
|
8
|
+
public static readonly DATA_CHUNK_SIZE: number = 512;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The magic number of OPNet
|
|
12
|
+
*/
|
|
13
|
+
public static readonly MAGIC: Buffer = Buffer.from('bsi', 'utf-8');
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The public key of the sender
|
|
17
|
+
* @protected
|
|
18
|
+
*/
|
|
19
|
+
protected readonly senderPubKey: Buffer;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The public key of the contract salt
|
|
23
|
+
* @protected
|
|
24
|
+
*/
|
|
25
|
+
protected readonly contractSaltPubKey?: Buffer;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The network to use
|
|
29
|
+
* @protected
|
|
30
|
+
*/
|
|
31
|
+
protected readonly network: Network = networks.bitcoin;
|
|
32
|
+
|
|
33
|
+
protected constructor(
|
|
34
|
+
senderPubKey: Buffer,
|
|
35
|
+
contractSaltPubKey?: Buffer,
|
|
36
|
+
network: Network = networks.bitcoin,
|
|
37
|
+
) {
|
|
38
|
+
this.senderPubKey = senderPubKey;
|
|
39
|
+
this.contractSaltPubKey = contractSaltPubKey;
|
|
40
|
+
this.network = network;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Compile the script
|
|
45
|
+
* @param args - The arguments to use when compiling the script
|
|
46
|
+
* @returns {Buffer} - The compiled script
|
|
47
|
+
*/
|
|
48
|
+
public abstract compile(...args: unknown[]): Buffer;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Split a buffer into chunks
|
|
52
|
+
* @param {Buffer} buffer - The buffer to split
|
|
53
|
+
* @param {number} chunkSize - The size of each chunk
|
|
54
|
+
* @protected
|
|
55
|
+
* @returns {Array<Buffer[]>} - The chunks
|
|
56
|
+
*/
|
|
57
|
+
protected splitBufferIntoChunks(
|
|
58
|
+
buffer: Buffer,
|
|
59
|
+
chunkSize: number = Generator.DATA_CHUNK_SIZE,
|
|
60
|
+
): Array<Buffer[]> {
|
|
61
|
+
const chunks: Array<Buffer[]> = [];
|
|
62
|
+
for (let i = 0; i < buffer.length; i += chunkSize) {
|
|
63
|
+
const dataLength = Math.min(chunkSize, buffer.length - i);
|
|
64
|
+
|
|
65
|
+
const buf2 = Buffer.alloc(dataLength);
|
|
66
|
+
for (let j = 0; j < dataLength; j++) {
|
|
67
|
+
buf2.writeUInt8(buffer[i + j], j);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
chunks.push([buf2]);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return chunks;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -69,6 +69,8 @@ export class CalldataGenerator extends Generator {
|
|
|
69
69
|
vaultPublicKeys: Buffer[] = [],
|
|
70
70
|
minimumSignatures: number = 0,
|
|
71
71
|
): Buffer {
|
|
72
|
+
if (!this.contractSaltPubKey) throw new Error('Contract salt public key not set');
|
|
73
|
+
|
|
72
74
|
const dataChunks: Buffer[][] = this.splitBufferIntoChunks(calldata);
|
|
73
75
|
if (!dataChunks.length) throw new Error('No data chunks found');
|
|
74
76
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Network, networks, script, Stack } from 'bitcoinjs-lib';
|
|
2
|
+
import { Generator } from '../Generator.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Class to generate bitcoin script for interaction transactions
|
|
6
|
+
*/
|
|
7
|
+
export class CustomGenerator extends Generator {
|
|
8
|
+
constructor(senderPubKey: Buffer, network: Network = networks.bitcoin) {
|
|
9
|
+
super(senderPubKey, undefined, network);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Compile an interaction bitcoin script
|
|
14
|
+
* @param compiledData - The compiled data
|
|
15
|
+
* @returns {Buffer} - The compiled script
|
|
16
|
+
* @throws {Error} - If something goes wrong
|
|
17
|
+
*/
|
|
18
|
+
public compile(compiledData: (Buffer | Stack)[]): Buffer {
|
|
19
|
+
const asm = compiledData.flat();
|
|
20
|
+
const compiled = script.compile(asm);
|
|
21
|
+
|
|
22
|
+
/** Verify the validity of the script */
|
|
23
|
+
const decompiled = script.decompile(compiled);
|
|
24
|
+
if (!decompiled) {
|
|
25
|
+
throw new Error('Failed to decompile script??');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return compiled;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -32,6 +32,8 @@ export class DeploymentGenerator extends Generator {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
private getAsm(contractBytecode: Buffer, contractSalt: Buffer): (number | Buffer)[] {
|
|
35
|
+
if (!this.contractSaltPubKey) throw new Error('Contract salt public key not set');
|
|
36
|
+
|
|
35
37
|
const dataChunks = this.splitBufferIntoChunks(contractBytecode);
|
|
36
38
|
|
|
37
39
|
return [
|