@bitgo-beta/babylonlabs-io-btc-staking-ts 0.4.0-beta.233 → 0.4.0-beta.234

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 CHANGED
@@ -1 +1 @@
1
- BitGo Fork of https://github.com/babylonlabs-io/btc-staking-ts/tree/v0.4.0-rc.2
1
+ BitGo Fork of https://github.com/babylonlabs-io/btc-staking-ts/tree/v1.0.3
package/dist/index.cjs CHANGED
@@ -1861,17 +1861,6 @@ var ObservableStaking = class extends Staking {
1861
1861
  }
1862
1862
  };
1863
1863
 
1864
- // src/utils/babylon.ts
1865
- var import_encoding = require("@cosmjs/encoding");
1866
- var isValidBabylonAddress = (address4) => {
1867
- try {
1868
- const { prefix } = (0, import_encoding.fromBech32)(address4);
1869
- return prefix === "bbn";
1870
- } catch (error) {
1871
- return false;
1872
- }
1873
- };
1874
-
1875
1864
  // src/utils/staking/param.ts
1876
1865
  var getBabylonParamByBtcHeight = (height, babylonParamsVersions) => {
1877
1866
  const sortedParams = [...babylonParamsVersions].sort(
@@ -1914,6 +1903,17 @@ var reverseBuffer = (buffer) => {
1914
1903
  return clonedBuffer;
1915
1904
  };
1916
1905
 
1906
+ // src/utils/babylon.ts
1907
+ var import_encoding = require("@cosmjs/encoding");
1908
+ var isValidBabylonAddress = (address4) => {
1909
+ try {
1910
+ const { prefix } = (0, import_encoding.fromBech32)(address4);
1911
+ return prefix === "bbn";
1912
+ } catch (error) {
1913
+ return false;
1914
+ }
1915
+ };
1916
+
1917
1917
  // src/staking/manager.ts
1918
1918
  var SigningStep = /* @__PURE__ */ ((SigningStep2) => {
1919
1919
  SigningStep2["STAKING_SLASHING"] = "staking-slashing";
package/dist/index.d.cts CHANGED
@@ -578,129 +578,6 @@ export declare const getPublicKeyNoCoord: (pkHex: string) => String;
578
578
  * @returns {Buffer} - The transaction hash.
579
579
  */
580
580
  export declare const transactionIdToHash: (txId: string) => Buffer;
581
- /**
582
- * Validates a Babylon address. Babylon addresses are encoded in Bech32 format
583
- * and have a prefix of "bbn".
584
- * @param address - The address to validate.
585
- * @returns True if the address is valid, false otherwise.
586
- */
587
- export declare const isValidBabylonAddress: (address: string) => boolean;
588
- export type TransactionOutput = {
589
- scriptPubKey: Buffer;
590
- value: number;
591
- };
592
- export interface OutputInfo {
593
- scriptPubKey: Buffer;
594
- outputAddress: string;
595
- }
596
- /**
597
- * Build the staking output for the transaction which contains p2tr output
598
- * with staking scripts.
599
- *
600
- * @param {StakingScripts} scripts - The staking scripts.
601
- * @param {networks.Network} network - The Bitcoin network.
602
- * @param {number} amount - The amount to stake.
603
- * @returns {TransactionOutput[]} - The staking transaction outputs.
604
- * @throws {Error} - If the staking output cannot be built.
605
- */
606
- export declare const buildStakingTransactionOutputs: (scripts: {
607
- timelockScript: Buffer;
608
- unbondingScript: Buffer;
609
- slashingScript: Buffer;
610
- dataEmbedScript?: Buffer;
611
- }, network: networks.Network, amount: number) => TransactionOutput[];
612
- /**
613
- * Derive the staking output address from the staking scripts.
614
- *
615
- * @param {StakingScripts} scripts - The staking scripts.
616
- * @param {networks.Network} network - The Bitcoin network.
617
- * @returns {StakingOutput} - The staking output address and scriptPubKey.
618
- * @throws {StakingError} - If the staking output address cannot be derived.
619
- */
620
- export declare const deriveStakingOutputInfo: (scripts: {
621
- timelockScript: Buffer;
622
- unbondingScript: Buffer;
623
- slashingScript: Buffer;
624
- }, network: networks.Network) => {
625
- outputAddress: string;
626
- scriptPubKey: Buffer<ArrayBufferLike>;
627
- };
628
- /**
629
- * Derive the unbonding output address and scriptPubKey from the staking scripts.
630
- *
631
- * @param {StakingScripts} scripts - The staking scripts.
632
- * @param {networks.Network} network - The Bitcoin network.
633
- * @returns {OutputInfo} - The unbonding output address and scriptPubKey.
634
- * @throws {StakingError} - If the unbonding output address cannot be derived.
635
- */
636
- export declare const deriveUnbondingOutputInfo: (scripts: {
637
- unbondingTimelockScript: Buffer;
638
- slashingScript: Buffer;
639
- }, network: networks.Network) => {
640
- outputAddress: string;
641
- scriptPubKey: Buffer<ArrayBufferLike>;
642
- };
643
- /**
644
- * Derive the slashing output address and scriptPubKey from the staking scripts.
645
- *
646
- * @param {StakingScripts} scripts - The unbonding timelock scripts, we use the
647
- * unbonding timelock script as the timelock of the slashing transaction.
648
- * This is due to slashing tx timelock is the same as the unbonding timelock.
649
- * @param {networks.Network} network - The Bitcoin network.
650
- * @returns {OutputInfo} - The slashing output address and scriptPubKey.
651
- * @throws {StakingError} - If the slashing output address cannot be derived.
652
- */
653
- export declare const deriveSlashingOutput: (scripts: {
654
- unbondingTimelockScript: Buffer;
655
- }, network: networks.Network) => {
656
- outputAddress: string;
657
- scriptPubKey: Buffer<ArrayBufferLike>;
658
- };
659
- /**
660
- * Find the matching output index for the given transaction.
661
- *
662
- * @param {Transaction} tx - The transaction.
663
- * @param {string} outputAddress - The output address.
664
- * @param {networks.Network} network - The Bitcoin network.
665
- * @returns {number} - The output index.
666
- * @throws {Error} - If the matching output is not found.
667
- */
668
- export declare const findMatchingTxOutputIndex: (tx: Transaction, outputAddress: string, network: networks.Network) => number;
669
- /**
670
- * Validate the staking transaction input data.
671
- *
672
- * @param {number} stakingAmountSat - The staking amount in satoshis.
673
- * @param {number} timelock - The staking time in blocks.
674
- * @param {StakingParams} params - The staking parameters.
675
- * @param {UTXO[]} inputUTXOs - The input UTXOs.
676
- * @param {number} feeRate - The Bitcoin fee rate in sat/vbyte
677
- * @throws {StakingError} - If the input data is invalid.
678
- */
679
- export declare const validateStakingTxInputData: (stakingAmountSat: number, timelock: number, params: StakingParams, inputUTXOs: UTXO[], feeRate: number) => void;
680
- /**
681
- * Validate the staking parameters.
682
- * Extend this method to add additional validation for staking parameters based
683
- * on the staking type.
684
- * @param {StakingParams} params - The staking parameters.
685
- * @throws {StakingError} - If the parameters are invalid.
686
- */
687
- export declare const validateParams: (params: StakingParams) => void;
688
- /**
689
- * Validate the staking timelock.
690
- *
691
- * @param {number} stakingTimelock - The staking timelock.
692
- * @param {StakingParams} params - The staking parameters.
693
- * @throws {StakingError} - If the staking timelock is invalid.
694
- */
695
- export declare const validateStakingTimelock: (stakingTimelock: number, params: StakingParams) => void;
696
- /**
697
- * toBuffers converts an array of strings to an array of buffers.
698
- *
699
- * @param {string[]} inputs - The input strings.
700
- * @returns {Buffer[]} - The buffers.
701
- * @throws {StakingError} - If the values cannot be converted to buffers.
702
- */
703
- export declare const toBuffers: (inputs: string[]) => Buffer[];
704
581
  export declare const findInputUTXO: (inputUTXOs: UTXO[], input: Input) => UTXO;
705
582
  /**
706
583
  * Determines and constructs the correct PSBT input fields for a given UTXO based on its script type.
@@ -975,5 +852,128 @@ export declare class BabylonBtcStakingManager {
975
852
  * @returns The staker signature
976
853
  */
977
854
  export declare const getUnbondingTxStakerSignature: (unbondingTx: Transaction) => string;
855
+ /**
856
+ * Validates a Babylon address. Babylon addresses are encoded in Bech32 format
857
+ * and have a prefix of "bbn".
858
+ * @param address - The address to validate.
859
+ * @returns True if the address is valid, false otherwise.
860
+ */
861
+ export declare const isValidBabylonAddress: (address: string) => boolean;
862
+ export type TransactionOutput = {
863
+ scriptPubKey: Buffer;
864
+ value: number;
865
+ };
866
+ export interface OutputInfo {
867
+ scriptPubKey: Buffer;
868
+ outputAddress: string;
869
+ }
870
+ /**
871
+ * Build the staking output for the transaction which contains p2tr output
872
+ * with staking scripts.
873
+ *
874
+ * @param {StakingScripts} scripts - The staking scripts.
875
+ * @param {networks.Network} network - The Bitcoin network.
876
+ * @param {number} amount - The amount to stake.
877
+ * @returns {TransactionOutput[]} - The staking transaction outputs.
878
+ * @throws {Error} - If the staking output cannot be built.
879
+ */
880
+ export declare const buildStakingTransactionOutputs: (scripts: {
881
+ timelockScript: Buffer;
882
+ unbondingScript: Buffer;
883
+ slashingScript: Buffer;
884
+ dataEmbedScript?: Buffer;
885
+ }, network: networks.Network, amount: number) => TransactionOutput[];
886
+ /**
887
+ * Derive the staking output address from the staking scripts.
888
+ *
889
+ * @param {StakingScripts} scripts - The staking scripts.
890
+ * @param {networks.Network} network - The Bitcoin network.
891
+ * @returns {StakingOutput} - The staking output address and scriptPubKey.
892
+ * @throws {StakingError} - If the staking output address cannot be derived.
893
+ */
894
+ export declare const deriveStakingOutputInfo: (scripts: {
895
+ timelockScript: Buffer;
896
+ unbondingScript: Buffer;
897
+ slashingScript: Buffer;
898
+ }, network: networks.Network) => {
899
+ outputAddress: string;
900
+ scriptPubKey: Buffer<ArrayBufferLike>;
901
+ };
902
+ /**
903
+ * Derive the unbonding output address and scriptPubKey from the staking scripts.
904
+ *
905
+ * @param {StakingScripts} scripts - The staking scripts.
906
+ * @param {networks.Network} network - The Bitcoin network.
907
+ * @returns {OutputInfo} - The unbonding output address and scriptPubKey.
908
+ * @throws {StakingError} - If the unbonding output address cannot be derived.
909
+ */
910
+ export declare const deriveUnbondingOutputInfo: (scripts: {
911
+ unbondingTimelockScript: Buffer;
912
+ slashingScript: Buffer;
913
+ }, network: networks.Network) => {
914
+ outputAddress: string;
915
+ scriptPubKey: Buffer<ArrayBufferLike>;
916
+ };
917
+ /**
918
+ * Derive the slashing output address and scriptPubKey from the staking scripts.
919
+ *
920
+ * @param {StakingScripts} scripts - The unbonding timelock scripts, we use the
921
+ * unbonding timelock script as the timelock of the slashing transaction.
922
+ * This is due to slashing tx timelock is the same as the unbonding timelock.
923
+ * @param {networks.Network} network - The Bitcoin network.
924
+ * @returns {OutputInfo} - The slashing output address and scriptPubKey.
925
+ * @throws {StakingError} - If the slashing output address cannot be derived.
926
+ */
927
+ export declare const deriveSlashingOutput: (scripts: {
928
+ unbondingTimelockScript: Buffer;
929
+ }, network: networks.Network) => {
930
+ outputAddress: string;
931
+ scriptPubKey: Buffer<ArrayBufferLike>;
932
+ };
933
+ /**
934
+ * Find the matching output index for the given transaction.
935
+ *
936
+ * @param {Transaction} tx - The transaction.
937
+ * @param {string} outputAddress - The output address.
938
+ * @param {networks.Network} network - The Bitcoin network.
939
+ * @returns {number} - The output index.
940
+ * @throws {Error} - If the matching output is not found.
941
+ */
942
+ export declare const findMatchingTxOutputIndex: (tx: Transaction, outputAddress: string, network: networks.Network) => number;
943
+ /**
944
+ * Validate the staking transaction input data.
945
+ *
946
+ * @param {number} stakingAmountSat - The staking amount in satoshis.
947
+ * @param {number} timelock - The staking time in blocks.
948
+ * @param {StakingParams} params - The staking parameters.
949
+ * @param {UTXO[]} inputUTXOs - The input UTXOs.
950
+ * @param {number} feeRate - The Bitcoin fee rate in sat/vbyte
951
+ * @throws {StakingError} - If the input data is invalid.
952
+ */
953
+ export declare const validateStakingTxInputData: (stakingAmountSat: number, timelock: number, params: StakingParams, inputUTXOs: UTXO[], feeRate: number) => void;
954
+ /**
955
+ * Validate the staking parameters.
956
+ * Extend this method to add additional validation for staking parameters based
957
+ * on the staking type.
958
+ * @param {StakingParams} params - The staking parameters.
959
+ * @throws {StakingError} - If the parameters are invalid.
960
+ */
961
+ export declare const validateParams: (params: StakingParams) => void;
962
+ /**
963
+ * Validate the staking timelock.
964
+ *
965
+ * @param {number} stakingTimelock - The staking timelock.
966
+ * @param {StakingParams} params - The staking parameters.
967
+ * @throws {StakingError} - If the staking timelock is invalid.
968
+ */
969
+ export declare const validateStakingTimelock: (stakingTimelock: number, params: StakingParams) => void;
970
+ /**
971
+ * toBuffers converts an array of strings to an array of buffers.
972
+ *
973
+ * @param {string[]} inputs - The input strings.
974
+ * @returns {Buffer[]} - The buffers.
975
+ * @throws {StakingError} - If the values cannot be converted to buffers.
976
+ */
977
+ export declare const toBuffers: (inputs: string[]) => Buffer[];
978
978
 
979
979
  export {};
package/dist/index.js CHANGED
@@ -1788,17 +1788,6 @@ var ObservableStaking = class extends Staking {
1788
1788
  }
1789
1789
  };
1790
1790
 
1791
- // src/utils/babylon.ts
1792
- import { fromBech32 } from "@cosmjs/encoding";
1793
- var isValidBabylonAddress = (address4) => {
1794
- try {
1795
- const { prefix } = fromBech32(address4);
1796
- return prefix === "bbn";
1797
- } catch (error) {
1798
- return false;
1799
- }
1800
- };
1801
-
1802
1791
  // src/utils/staking/param.ts
1803
1792
  var getBabylonParamByBtcHeight = (height, babylonParamsVersions) => {
1804
1793
  const sortedParams = [...babylonParamsVersions].sort(
@@ -1848,6 +1837,17 @@ var reverseBuffer = (buffer) => {
1848
1837
  return clonedBuffer;
1849
1838
  };
1850
1839
 
1840
+ // src/utils/babylon.ts
1841
+ import { fromBech32 } from "@cosmjs/encoding";
1842
+ var isValidBabylonAddress = (address4) => {
1843
+ try {
1844
+ const { prefix } = fromBech32(address4);
1845
+ return prefix === "bbn";
1846
+ } catch (error) {
1847
+ return false;
1848
+ }
1849
+ };
1850
+
1851
1851
  // src/staking/manager.ts
1852
1852
  var SigningStep = /* @__PURE__ */ ((SigningStep2) => {
1853
1853
  SigningStep2["STAKING_SLASHING"] = "staking-slashing";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/babylonlabs-io-btc-staking-ts",
3
- "version": "0.4.0-beta.233",
3
+ "version": "0.4.0-beta.234",
4
4
  "description": "Library exposing methods for the creation and consumption of Bitcoin transactions pertaining to Babylon's Bitcoin Staking protocol.",
5
5
  "module": "dist/index.js",
6
6
  "main": "dist/index.cjs",
@@ -45,5 +45,5 @@
45
45
  "publishConfig": {
46
46
  "access": "public"
47
47
  },
48
- "gitHead": "80dcfec463c5dd5a281f1ca577d273ae58a85d5f"
48
+ "gitHead": "ee2a74167325d1a4e958dfd6ca464011bf7ba08d"
49
49
  }