Skip to content

Commit

Permalink
Merge pull request #578 from nervosnetwork/develop
Browse files Browse the repository at this point in the history
  • Loading branch information
fjchen7 committed Jul 15, 2022
2 parents ccdd15b + 85598f2 commit 568cbae
Show file tree
Hide file tree
Showing 20 changed files with 114 additions and 99 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# 2.0.3 (2022-07-13)

## 🐛 Bug Fixes

- fix: fix signer test fixture (#575)
- fix: fix incorrect index at method `encodeFullBech32` (#576)

# 2.0.2 (2022-06-24)

## 🚀 Features
Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ allprojects {
targetCompatibility = 1.8

group 'org.nervos.ckb'
version '2.0.2'
version '2.0.3'
apply plugin: 'java'

repositories {
Expand Down Expand Up @@ -97,7 +97,7 @@ configure(subprojects.findAll { it.name != 'tests' }) {
publications {
mavenJava(MavenPublication) {
groupId 'org.nervos.ckb'
version '2.0.2'
version '2.0.3'
from components.java
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public static Item newIdentityItemByCkb(String pubKeyHash) {

public static Item newIdentityItemBySecp256k1Blake160SignhashAllAddress(String address) {
Script script = Address.decode(address).getScript();
if (!Arrays.equals(SECP256_BLAKE160_SIGNHASH_ALL_CODE_HASH, script.codeHash)) {
if (!Arrays.equals(SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH, script.codeHash)) {
throw new IllegalArgumentException("not a secp256k1_blake160_signhash_all address");
}
if (script.hashType != Script.HashType.TYPE) {
Expand All @@ -46,7 +46,7 @@ public static Item newIdentityItemBySecp256k1Blake160SignhashAllAddress(String a
/**
* Create a new identity item from secp256k1_blake160_signhash_all or ACP address
*
* @param address a secp256_blake160_signhash_all or ACP address
* @param address a secp256k1_blake160_signhash_all or ACP address
* @return a new identity item
*/
public static Item newIdentityItemByAddress(String address) {
Expand All @@ -68,7 +68,7 @@ private static boolean isValidAddress(Address address) {
if (script.hashType != Script.HashType.TYPE) {
return false;
}
if (Arrays.equals(SECP256_BLAKE160_SIGNHASH_ALL_CODE_HASH, script.codeHash)
if (Arrays.equals(SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH, script.codeHash)
|| (Network.TESTNET == network && Arrays.equals(ANY_CAN_PAY_CODE_HASH_TESTNET, script.codeHash)
|| (Network.MAINNET == network && Arrays.equals(ANY_CAN_PAY_CODE_HASH_MAINNET, script.codeHash)))) {
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ private boolean isMatched(Script script) {
if (script == null) {
return false;
}
byte[] codeHash = Script.SECP256_BLAKE160_MULTISIG_ALL_CODE_HASH;
byte[] codeHash = Script.SECP256K1_BLAKE160_MULTISIG_ALL_CODE_HASH;
return Arrays.equals(script.codeHash, codeHash);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ private boolean isMatched(Script script) {
if (script == null) {
return false;
}
byte[] codeHash = Script.SECP256_BLAKE160_SIGNHASH_ALL_CODE_HASH;
byte[] codeHash = Script.SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH;
return Arrays.equals(script.codeHash, codeHash);
}

Expand Down
8 changes: 4 additions & 4 deletions core/src/main/java/org/nervos/ckb/sign/TransactionSigner.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,19 @@ public class TransactionSigner {
static {
TESTNET_TRANSACTION_SIGNER = new TransactionSigner()
.registerLockScriptSigner(
Script.SECP256_BLAKE160_SIGNHASH_ALL_CODE_HASH, Secp256k1Blake160SighashAllSigner.getInstance())
Script.SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH, Secp256k1Blake160SighashAllSigner.getInstance())
.registerLockScriptSigner(
Script.SECP256_BLAKE160_MULTISIG_ALL_CODE_HASH, Secp256k1Blake160MultisigAllSigner.getInstance())
Script.SECP256K1_BLAKE160_MULTISIG_ALL_CODE_HASH, Secp256k1Blake160MultisigAllSigner.getInstance())
.registerLockScriptSigner(
Script.ANY_CAN_PAY_CODE_HASH_TESTNET, AcpSigner.getInstance())
.registerLockScriptSigner(
Script.PW_LOCK_CODE_HASH_TESTNET, PwSigner.getInstance());

MAINNET_TRANSACTION_SIGNER = new TransactionSigner()
.registerLockScriptSigner(
Script.SECP256_BLAKE160_SIGNHASH_ALL_CODE_HASH, Secp256k1Blake160SighashAllSigner.getInstance())
Script.SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH, Secp256k1Blake160SighashAllSigner.getInstance())
.registerLockScriptSigner(
Script.SECP256_BLAKE160_MULTISIG_ALL_CODE_HASH, Secp256k1Blake160MultisigAllSigner.getInstance())
Script.SECP256K1_BLAKE160_MULTISIG_ALL_CODE_HASH, Secp256k1Blake160MultisigAllSigner.getInstance())
.registerLockScriptSigner(
Script.ANY_CAN_PAY_CODE_HASH_MAINNET, AcpSigner.getInstance())
.registerLockScriptSigner(
Expand Down
6 changes: 3 additions & 3 deletions core/src/main/java/org/nervos/ckb/type/Script.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
import static org.nervos.ckb.utils.MoleculeConverter.packBytes;

public class Script {
public static final byte[] SECP256_BLAKE160_SIGNHASH_ALL_CODE_HASH =
public static final byte[] SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH =
Numeric.hexStringToByteArray("0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8");
public static final byte[] SECP256_BLAKE160_MULTISIG_ALL_CODE_HASH =
public static final byte[] SECP256K1_BLAKE160_MULTISIG_ALL_CODE_HASH =
Numeric.hexStringToByteArray("0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8");
public static final byte[] ANY_CAN_PAY_CODE_HASH_MAINNET =
Numeric.hexStringToByteArray("0xd369597ff47f29fbc0d47d2e3775370d1250b85140c670e4718af712983a2354");
Expand Down Expand Up @@ -88,7 +88,7 @@ public static Script generateSecp256K1Blake160SignhashAllScript(byte[] publicKey
byte[] hash = Blake2b.digest(publicKey);
hash = Arrays.copyOfRange(hash, 0, 20);
Script scrip = new Script(
SECP256_BLAKE160_SIGNHASH_ALL_CODE_HASH,
SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH,
hash,
HashType.TYPE
);
Expand Down
10 changes: 5 additions & 5 deletions core/src/main/java/org/nervos/ckb/utils/address/Address.java
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,12 @@ private static Address decodeShort(byte[] payload, Network network) {
if (args.length != 20) {
throw new AddressFormatException("Invalid args length " + args.length);
}
codeHash = Script.SECP256_BLAKE160_SIGNHASH_ALL_CODE_HASH;
codeHash = Script.SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH;
} else if (codeHashIndex == 0x01) {
if (args.length != 20) {
throw new AddressFormatException("Invalid args length " + args.length);
}
codeHash = Script.SECP256_BLAKE160_MULTISIG_ALL_CODE_HASH;
codeHash = Script.SECP256K1_BLAKE160_MULTISIG_ALL_CODE_HASH;
} else if (codeHashIndex == 0x02) {
if (args.length < 20 || args.length > 22) {
throw new AddressFormatException("Invalid args length " + args.length);
Expand Down Expand Up @@ -142,9 +142,9 @@ public String encodeShort() {
byte[] payload = new byte[2 + script.args.length];
byte codeHashIndex;
byte[] codeHash = script.codeHash;
if (Arrays.equals(codeHash, Script.SECP256_BLAKE160_SIGNHASH_ALL_CODE_HASH)) {
if (Arrays.equals(codeHash, Script.SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH)) {
codeHashIndex = 0x00;
} else if (Arrays.equals(codeHash, Script.SECP256_BLAKE160_MULTISIG_ALL_CODE_HASH)) {
} else if (Arrays.equals(codeHash, Script.SECP256K1_BLAKE160_MULTISIG_ALL_CODE_HASH)) {
codeHashIndex = 0x01;
} else if ((network == Network.MAINNET && Arrays.equals(codeHash, Script.ANY_CAN_PAY_CODE_HASH_MAINNET)
|| (network == Network.TESTNET && Arrays.equals(codeHash, Script.ANY_CAN_PAY_CODE_HASH_TESTNET)))) {
Expand All @@ -165,7 +165,7 @@ public String encodeFullBech32() {
if (script.hashType == Script.HashType.TYPE) {
payload[0] = 0x04;
} else if (script.hashType == Script.HashType.DATA) {
payload[1] = 0x02;
payload[0] = 0x02;
} else {
throw new AddressFormatException("Unknown script hash type");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ public void testMultiScriptDecode() {

@Test
public void testFirstSign() {
SignerChecker.signAndCheck("secp256k1_blake16_multisig_all_first");
SignerChecker.signAndCheck("secp256k1_blake160_multisig_all_first");
}

@Test
public void testSecondSign() {
SignerChecker.signAndCheck("secp256k1_blake16_multisig_all_second");
SignerChecker.signAndCheck("secp256k1_blake160_multisig_all_second");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,21 @@ void testIsMatched() {

@Test
void testSecp256k1Blake160OneInput() {
SignerChecker.signAndCheck("secp256k1_blake16_sighash_all_one_input");
SignerChecker.signAndCheck("secp256k1_blake160_sighash_all_one_input");
}

@Test
void testSecp256k1Blake160OneGroup() {
SignerChecker.signAndCheck("secp256k1_blake16_sighash_all_one_group");
SignerChecker.signAndCheck("secp256k1_blake160_sighash_all_one_group");
}

@Test
void testSecp256k1Blake160TwoGroups() {
SignerChecker.signAndCheck("secp256k1_blake16_sighash_all_two_groups");
SignerChecker.signAndCheck("secp256k1_blake160_sighash_all_two_groups");
}

@Test
void testSecp256k1Blake160ExtraWitness() {
SignerChecker.signAndCheck("secp256k1_blake16_sighash_all_extra_witness");
SignerChecker.signAndCheck("secp256k1_blake160_sighash_all_extra_witness");
}
}
130 changes: 69 additions & 61 deletions core/src/test/java/utils/AddressTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,79 +14,73 @@ public class AddressTest {
/**
* Addresses for test come from https://github.com/rev-chaos/ckb-address-demo.
*/
private Script secp256k1Blake160Script = new Script(
Numeric.hexStringToByteArray("0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8"),
Numeric.hexStringToByteArray("0xb39bbc0b3673c7d36450bc14cfcdad2d559c6c64"),
Script.HashType.TYPE);
private Script multiSignScript = new Script(
Numeric.hexStringToByteArray("0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8"),
Numeric.hexStringToByteArray("0x4fb2be2e5d0c1a3b8694f832350a33c1685d477a"),
Script.HashType.TYPE);
private Script acpScript = new Script(
Numeric.hexStringToByteArray("0xd369597ff47f29fbc0d47d2e3775370d1250b85140c670e4718af712983a2354"),
Numeric.hexStringToByteArray("bd07d9f32bce34d27152a6a0391d324f79aab854"),
Script.HashType.TYPE);

private Script script4 = new Script(
Numeric.hexStringToByteArray("9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8"),
Numeric.hexStringToByteArray("b39bbc0b3673c7d36450bc14cfcdad2d559c6c64"),
Script.HashType.DATA);

@Test
@SuppressWarnings("deprecation")
public void testEncode() {
Address address = new Address(secp256k1Blake160Script, Network.MAINNET);
assertEquals("ckb1qyqt8xaupvm8837nv3gtc9x0ekkj64vud3jqfwyw5v",
address.encodeShort());
assertEquals("ckb1qjda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xw3vumhs9nvu786dj9p0q5elx66t24n3kxgj53qks",
address.encodeFullBech32());
assertEquals("ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqdnnw7qkdnnclfkg59uzn8umtfd2kwxceqxwquc4",
address.encodeFullBech32m());
public void testDecodeDecode() {
// Short
Script script = generateScript(Script.SECP256K1_BLAKE160_SIGNHASH_ALL_CODE_HASH,
"b39bbc0b3673c7d36450bc14cfcdad2d559c6c64", Script.HashType.TYPE);
testShort(script, Network.MAINNET, "ckb1qyqt8xaupvm8837nv3gtc9x0ekkj64vud3jqfwyw5v");
testShort(script, Network.TESTNET, "ckt1qyqt8xaupvm8837nv3gtc9x0ekkj64vud3jq5t63cs");

assertEquals("ckb1qyq5lv479ewscx3ms620sv34pgeuz6zagaaqklhtgg",
new Address(multiSignScript, Network.MAINNET).encodeShort());
assertEquals("ckt1qyq5lv479ewscx3ms620sv34pgeuz6zagaaqt6f5y5",
new Address(multiSignScript, Network.TESTNET).encodeShort());
script = generateScript(Script.SECP256K1_BLAKE160_MULTISIG_ALL_CODE_HASH,
"4fb2be2e5d0c1a3b8694f832350a33c1685d477a", Script.HashType.TYPE);
testShort(script, Network.MAINNET, "ckb1qyq5lv479ewscx3ms620sv34pgeuz6zagaaqklhtgg");
testShort(script, Network.TESTNET, "ckt1qyq5lv479ewscx3ms620sv34pgeuz6zagaaqt6f5y5");

assertEquals("ckb1qypt6p7e7v4uudxjw9f2dgper5ey77d2hp2qxz4u4u",
new Address(acpScript, Network.MAINNET).encodeShort());
script = generateScript(Script.ANY_CAN_PAY_CODE_HASH_MAINNET,
"bd07d9f32bce34d27152a6a0391d324f79aab854", Script.HashType.TYPE);
testShort(script, Network.MAINNET, "ckb1qypt6p7e7v4uudxjw9f2dgper5ey77d2hp2qxz4u4u");
script = generateScript(Script.ANY_CAN_PAY_CODE_HASH_TESTNET,
"bd07d9f32bce34d27152a6a0391d324f79aab854", Script.HashType.TYPE);
testShort(script, Network.TESTNET, "ckt1qypt6p7e7v4uudxjw9f2dgper5ey77d2hp2qm8treq");

assertEquals("ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsq9nnw7qkdnnclfkg59uzn8umtfd2kwxceqvguktl",
new Address(script4, Network.MAINNET).encodeFullBech32m());
assertEquals("ckt1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsq9nnw7qkdnnclfkg59uzn8umtfd2kwxceqz6hep8",
new Address(script4, Network.TESTNET).encodeFullBech32m());
}
// Full bech32
script = generateScript("9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8",
"b39bbc0b3673c7d36450bc14cfcdad2d559c6c64", Script.HashType.DATA);
testFullBech32(script, Network.MAINNET, "ckb1q2da0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xw3vumhs9nvu786dj9p0q5elx66t24n3kxgdwd2q8");
testFullBech32(script, Network.TESTNET, "ckt1q2da0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xw3vumhs9nvu786dj9p0q5elx66t24n3kxgqd588c");
script = generateScript("9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8",
"b39bbc0b3673c7d36450bc14cfcdad2d559c6c64", Script.HashType.TYPE);
testFullBech32(script, Network.MAINNET, "ckb1qjda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xw3vumhs9nvu786dj9p0q5elx66t24n3kxgj53qks");
testFullBech32(script, Network.TESTNET, "ckt1qjda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xw3vumhs9nvu786dj9p0q5elx66t24n3kxglhgd30");

@Test
public void testDecode() {
Address expected = new Address(secp256k1Blake160Script, Network.MAINNET);
// short format
Address actual = Address.decode("ckb1qyqt8xaupvm8837nv3gtc9x0ekkj64vud3jqfwyw5v");
assertEquals(expected, actual);
// long bech32 format
actual = Address.decode("ckb1qjda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xw3vumhs9nvu786dj9p0q5elx66t24n3kxgj53qks");
assertEquals(expected, actual);
// long bech32m format
actual = Address.decode("ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqdnnw7qkdnnclfkg59uzn8umtfd2kwxceqxwquc4");
assertEquals(expected, actual);
// Full bech32m
script = generateScript("9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8",
"b39bbc0b3673c7d36450bc14cfcdad2d559c6c64", Script.HashType.DATA);
testFullBech32m(script, Network.MAINNET, "ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsq9nnw7qkdnnclfkg59uzn8umtfd2kwxceqvguktl");
testFullBech32m(script, Network.TESTNET, "ckt1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsq9nnw7qkdnnclfkg59uzn8umtfd2kwxceqz6hep8");

script = generateScript("9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8",
"b39bbc0b3673c7d36450bc14cfcdad2d559c6c64", Script.HashType.TYPE);
testFullBech32m(script, Network.MAINNET, "ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqdnnw7qkdnnclfkg59uzn8umtfd2kwxceqxwquc4");
testFullBech32m(script, Network.TESTNET, "ckt1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqdnnw7qkdnnclfkg59uzn8umtfd2kwxceqgutnjd");

actual = Address.decode("ckb1qyq5lv479ewscx3ms620sv34pgeuz6zagaaqklhtgg");
assertEquals(new Address(multiSignScript, Network.MAINNET), actual);
actual = Address.decode("ckt1qyq5lv479ewscx3ms620sv34pgeuz6zagaaqt6f5y5");
assertEquals(new Address(multiSignScript, Network.TESTNET), actual);
script = generateScript("9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8",
"b39bbc0b3673c7d36450bc14cfcdad2d559c6c64", Script.HashType.DATA1);
testFullBech32m(script, Network.MAINNET, "ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsq4nnw7qkdnnclfkg59uzn8umtfd2kwxceqcydzyt");
testFullBech32m(script, Network.TESTNET, "ckt1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsq4nnw7qkdnnclfkg59uzn8umtfd2kwxceqkkxdwn");
}

actual = Address.decode("ckb1qypt6p7e7v4uudxjw9f2dgper5ey77d2hp2qxz4u4u");
assertEquals(new Address(acpScript, Network.MAINNET), actual);
private void testShort(Script script, Network network, String encoded) {
Address address = new Address(script, network);
assertEquals(encoded, address.encodeShort());
assertEquals(address, Address.decode(encoded));
}

actual = Address.decode("ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsq9nnw7qkdnnclfkg59uzn8umtfd2kwxceqvguktl");
assertEquals(new Address(script4, Network.MAINNET), actual);
actual = Address.decode("ckt1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsq9nnw7qkdnnclfkg59uzn8umtfd2kwxceqz6hep8");
assertEquals(new Address(script4, Network.TESTNET), actual);
private void testFullBech32(Script script, Network network, String encoded) {
Address address = new Address(script, network);
assertEquals(encoded, address.encodeFullBech32());
assertEquals(address, Address.decode(encoded));
}

private void testFullBech32m(Script script, Network network, String encoded) {
Address address = new Address(script, network);
assertEquals(encoded, address.encodeFullBech32m());
assertEquals(address, Address.decode(encoded));
}

@Test
void testInvalidDecode() {
public void testInvalidDecode() {
// These invalid addresses come form https://github.com/nervosnetwork/ckb-sdk-rust/pull/7/files
// INVALID bech32 encoding
assertThrows(AddressFormatException.class, () -> Address.decode("ckb1qyqylv479ewscx3ms620sv34pgeuz6zagaaqh0knz7"));
Expand All @@ -101,4 +95,18 @@ void testInvalidDecode() {
assertThrows(AddressFormatException.class, () -> Address.decode("ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqz0k2lzuhgvrgacvhcym08"));
assertThrows(AddressFormatException.class, () -> Address.decode("ckb1qzda0cr08m85hc8jlnfp3zer7xulejywt49kt2rr0vthywaa50xwsqj0k2lzuhgvrgacvnhnzl8"));
}

private Script generateScript(String codeHash, String args, Script.HashType hashType) {
return new Script(
Numeric.hexStringToByteArray(codeHash),
Numeric.hexStringToByteArray(args),
hashType);
}

private Script generateScript(byte[] codeHash, String args, Script.HashType hashType) {
return new Script(
codeHash,
Numeric.hexStringToByteArray(args),
hashType);
}
}
2 changes: 1 addition & 1 deletion core/src/test/resources/transaction/acp_one_input.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@
},
"group_type": "lock",
"input_indices": [
0
"0x0"
],
"output_indices": []
}
Expand Down
4 changes: 2 additions & 2 deletions core/src/test/resources/transaction/pw_one_group.json
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@
},
"group_type": "lock",
"input_indices": [
0,
1
"0x0",
"0x1"
],
"output_indices": []
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
},
"group_type": "lock",
"input_indices": [
0
"0x0"
],
"output_indices": []
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
},
"group_type": "lock",
"input_indices": [
0
"0x0"
],
"output_indices": []
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
},
"group_type": "lock",
"input_indices": [
0
"0x0"
],
"output_indices": []
}
Expand Down
Loading

0 comments on commit 568cbae

Please sign in to comment.