test_class.file: tx-signer/src/test/java/io/bytom/offline/common/DerivePrivateKeyTest.java
test_class.identifier: DerivePrivateKeyTest
test_case.body: @Test
      public void testBip44Key() throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {
          String rootKey = "38d2c44314c401b3ea7c23c54e12c36a527aee46a7f26b82443a46bf40583e439dea25de09b0018b35a741d8cd9f6ec06bc11db49762617485f5309ab72a12d4";
          byte[] derivePrivateKey = DerivePrivateKey.bip44derivePrvKey(rootKey, 1, false, 2);
          System.out.println(Hex.toHexString(derivePrivateKey));
          //expected 48c65f40d860723e71b03988a22edc9ad00ae0deae992e79fb3b812edb5c3e43e78065bf46d0e8ad922cdae600fd2c2a6239b8f1f504f8f255460c6fcce023ff
      }
test_case.class_method_signature: DerivePrivateKeyTest.testBip44Key()
test_case.full_signature: @Test public void testBip44Key()
test_case.identifier: testBip44Key
test_case.invocations: bip44derivePrvKey println toHexString
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBip44Key()
focal_class.file: tx-signer/src/main/java/io/bytom/offline/common/DerivePrivateKey.java
focal_class.identifier: DerivePrivateKey
focal_class.class_method_signature: DerivePrivateKey.bip44derivePrvKey(String rootPriv, int accountIndex, boolean change, int programIndex)
focal_class.full_signature: public static byte[] bip44derivePrvKey(String rootPriv, int accountIndex, boolean change, int programIndex)
focal_class.identifier: bip44derivePrvKey
focal_class.modifiers: public static
focal_class.parameters: (String rootPriv, int accountIndex, boolean change, int programIndex)
focal_class.return: byte[]
focal_class.signature: byte[] bip44derivePrvKey(String rootPriv, int accountIndex, boolean change, int programIndex)
focal_class.class_method_signature: DerivePrivateKey.bip32derivePrvKey(String rootPrivateKey, int accountIndex, byte keySpace, long ...programIndex)
focal_class.full_signature: public static byte[] bip32derivePrvKey(String rootPrivateKey, int accountIndex, byte keySpace, long ...programIndex)
focal_class.identifier: bip32derivePrvKey
focal_class.modifiers: public static
focal_class.parameters: (String rootPrivateKey, int accountIndex, byte keySpace, long ...programIndex)
focal_class.return: byte[]
focal_class.signature: byte[] bip32derivePrvKey(String rootPrivateKey, int accountIndex, byte keySpace, long ...programIndex)
focal_method.body: public static byte[] bip44derivePrvKey(String rootPriv, int accountIndex, boolean change, int programIndex) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {
          byte[][] paths = PathUtil.getBip44Path(accountIndex, change, programIndex);
          byte[] res = Hex.decode(rootPriv);
          for (int i = 0; i < paths.length; i++) {
              byte[] xpub = DeriveXpub.deriveXpub(res);
              res = NonHardenedChild.nhChild(paths[i], res, xpub);
          }
          return res;
      }
focal_method.class_method_signature: DerivePrivateKey.bip44derivePrvKey(String rootPriv, int accountIndex, boolean change, int programIndex)
focal_method.full_signature: public static byte[] bip44derivePrvKey(String rootPriv, int accountIndex, boolean change, int programIndex)
focal_method.identifier: bip44derivePrvKey
focal_method.invocations: getBip44Path decode deriveXpub nhChild
focal_method.modifiers: public static
focal_method.parameters: (String rootPriv, int accountIndex, boolean change, int programIndex)
focal_method.return: byte[]
focal_method.signature: byte[] bip44derivePrvKey(String rootPriv, int accountIndex, boolean change, int programIndex)