Skip to content

Commit 51262b5

Browse files
committed
add test for multisignature
1 parent 16c7878 commit 51262b5

7 files changed

Lines changed: 183 additions & 0 deletions

src/test/java/org/arkecosystem/crypto/transactions/builder/MultiPaymentBuilderTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
import java.util.ArrayList;
66
import java.util.HashMap;
7+
import java.util.List;
8+
79
import org.arkecosystem.crypto.transactions.types.Transaction;
810
import org.junit.jupiter.api.Test;
911

@@ -59,4 +61,29 @@ void testMaxPayments() {
5961
() -> actual.addPayment("0xb693449AdDa7EFc015D87944EAE8b7C37EB1690A", 1));
6062
assertEquals("Expected a maximum of 64 payments", exception.getMessage());
6163
}
64+
65+
@Test
66+
void buildMultiSignature() {
67+
Transaction actual =
68+
new MultiPaymentBuilder()
69+
.addPayment("0xb693449AdDa7EFc015D87944EAE8b7C37EB1690A", 1)
70+
.addPayment("0xb693449AdDa7EFc015D87944EAE8b7C37EB1690A", 2)
71+
.addPayment("0xb693449AdDa7EFc015D87944EAE8b7C37EB1690A", 3)
72+
.vendorField("This is a transaction from Java")
73+
.multiSign("secret 1", 0)
74+
.multiSign("secret 2", 1)
75+
.multiSign("secret 3", 2)
76+
.sign("this is a top secret passphrase")
77+
.transaction;
78+
79+
assertTrue(actual.verify());
80+
81+
HashMap actualHashMap = actual.toHashMap();
82+
83+
assertNotNull(actualHashMap.get("signatures"));
84+
85+
List<String> actualSignatures = (List<String>) actualHashMap.get("signatures");
86+
87+
assertEquals(3, actualSignatures.size());
88+
}
6289
}

src/test/java/org/arkecosystem/crypto/transactions/builder/TransferBuilderTest.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
package org.arkecosystem.crypto.transactions.builder;
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotNull;
45
import static org.junit.jupiter.api.Assertions.assertTrue;
56

7+
import java.util.Arrays;
68
import java.util.HashMap;
9+
import java.util.List;
10+
711
import org.arkecosystem.crypto.enums.Fees;
12+
import org.arkecosystem.crypto.identities.PublicKey;
813
import org.arkecosystem.crypto.transactions.types.Transaction;
914
import org.junit.jupiter.api.Test;
1015

@@ -62,4 +67,30 @@ void buildSecondSignature() {
6267
HashMap actualHashMap = actual.toHashMap();
6368
assertEquals(actualHashMap.get("secondSignature"), actual.secondSignature);
6469
}
70+
71+
@Test
72+
void buildMultiSignature() {
73+
Transaction actual = new TransferBuilder()
74+
.recipient("0xb693449AdDa7EFc015D87944EAE8b7C37EB1690A")
75+
.amount(133380000000L)
76+
.expiration(100000)
77+
.vendorField("This is a transaction from Java")
78+
.nonce(3)
79+
.fee(Fees.TRANSFER.getValue())
80+
.multiSign("secret 1", 0)
81+
.multiSign("secret 2", 1)
82+
.multiSign("secret 3", 2)
83+
.sign("secret 1")
84+
.transaction;
85+
86+
assertTrue(actual.verify());
87+
88+
HashMap actualHashMap = actual.toHashMap();
89+
90+
assertNotNull(actualHashMap.get("signatures"));
91+
92+
List<String> actualSignatures = (List<String>) actualHashMap.get("signatures");
93+
94+
assertEquals(3, actualSignatures.size());
95+
}
6596
}

src/test/java/org/arkecosystem/crypto/transactions/builder/UsernameRegistrationBuilderTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import static org.junit.jupiter.api.Assertions.*;
44

55
import java.util.HashMap;
6+
import java.util.List;
7+
68
import org.arkecosystem.crypto.transactions.types.Transaction;
79
import org.junit.jupiter.api.Test;
810

@@ -24,4 +26,27 @@ void build() {
2426

2527
assertTrue(actual.verify());
2628
}
29+
30+
@Test
31+
void buildMultiSignature() {
32+
Transaction actual =
33+
new UsernameRegistrationBuilder()
34+
.usernameAsset("alfonsobries")
35+
.nonce(3)
36+
.multiSign("secret 1", 0)
37+
.multiSign("secret 2", 1)
38+
.multiSign("secret 3", 2)
39+
.sign("this is a top secret passphrase")
40+
.transaction;
41+
42+
assertTrue(actual.verify());
43+
44+
HashMap actualHashMap = actual.toHashMap();
45+
46+
assertNotNull(actualHashMap.get("signatures"));
47+
48+
List<String> actualSignatures = (List<String>) actualHashMap.get("signatures");
49+
50+
assertEquals(3, actualSignatures.size());
51+
}
2752
}

src/test/java/org/arkecosystem/crypto/transactions/builder/UsernameResignationBuilderTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import static org.junit.jupiter.api.Assertions.*;
44

55
import java.util.HashMap;
6+
import java.util.List;
7+
68
import org.arkecosystem.crypto.transactions.types.Transaction;
79
import org.junit.jupiter.api.Test;
810

@@ -36,4 +38,26 @@ void buildSecondSignature() {
3638
actual.secondVerify(
3739
"03699e966b2525f9088a6941d8d94f7869964a000efe65783d78ac82e1199fe609"));
3840
}
41+
42+
@Test
43+
void buildMultiSignature() {
44+
Transaction actual =
45+
new UsernameResignationBuilder()
46+
.nonce(3)
47+
.multiSign("secret 1", 0)
48+
.multiSign("secret 2", 1)
49+
.multiSign("secret 3", 2)
50+
.sign("this is a top secret passphrase")
51+
.transaction;
52+
53+
assertTrue(actual.verify());
54+
55+
HashMap actualHashMap = actual.toHashMap();
56+
57+
assertNotNull(actualHashMap.get("signatures"));
58+
59+
List<String> actualSignatures = (List<String>) actualHashMap.get("signatures");
60+
61+
assertEquals(3, actualSignatures.size());
62+
}
3963
}

src/test/java/org/arkecosystem/crypto/transactions/builder/ValidatorRegistrationBuilderTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import static org.junit.jupiter.api.Assertions.*;
44

55
import java.util.HashMap;
6+
import java.util.List;
7+
68
import org.arkecosystem.crypto.transactions.types.Transaction;
79
import org.junit.jupiter.api.Test;
810

@@ -27,4 +29,28 @@ void build() {
2729

2830
assertTrue(actual.verify());
2931
}
32+
33+
@Test
34+
void buildMultiSignature() {
35+
Transaction actual =
36+
new ValidatorRegistrationBuilder()
37+
.publicKeyAsset(
38+
"a08058db53e2665c84a40f5152e76dd2b652125a6079130d4c315e728bcf4dd1dfb44ac26e82302331d61977d3141118")
39+
.nonce(3)
40+
.multiSign("secret 1", 0)
41+
.multiSign("secret 2", 1)
42+
.multiSign("secret 3", 2)
43+
.sign("this is a top secret passphrase")
44+
.transaction;
45+
46+
assertTrue(actual.verify());
47+
48+
HashMap actualHashMap = actual.toHashMap();
49+
50+
assertNotNull(actualHashMap.get("signatures"));
51+
52+
List<String> actualSignatures = (List<String>) actualHashMap.get("signatures");
53+
54+
assertEquals(3, actualSignatures.size());
55+
}
3056
}

src/test/java/org/arkecosystem/crypto/transactions/builder/ValidatorResignationBuilderTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import static org.junit.jupiter.api.Assertions.*;
44

55
import java.util.HashMap;
6+
import java.util.List;
7+
68
import org.arkecosystem.crypto.transactions.types.Transaction;
79
import org.junit.jupiter.api.Test;
810

@@ -36,4 +38,26 @@ void buildSecondSignature() {
3638
actual.secondVerify(
3739
"03699e966b2525f9088a6941d8d94f7869964a000efe65783d78ac82e1199fe609"));
3840
}
41+
42+
@Test
43+
void buildMultiSignature() {
44+
Transaction actual =
45+
new ValidatorResignationBuilder()
46+
.nonce(3)
47+
.multiSign("secret 1", 0)
48+
.multiSign("secret 2", 1)
49+
.multiSign("secret 3", 2)
50+
.sign("this is a top secret passphrase")
51+
.transaction;
52+
53+
assertTrue(actual.verify());
54+
55+
HashMap actualHashMap = actual.toHashMap();
56+
57+
assertNotNull(actualHashMap.get("signatures"));
58+
59+
List<String> actualSignatures = (List<String>) actualHashMap.get("signatures");
60+
61+
assertEquals(3, actualSignatures.size());
62+
}
3963
}

src/test/java/org/arkecosystem/crypto/transactions/builder/VoteBuilderTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.arkecosystem.crypto.transactions.builder;
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotNull;
45
import static org.junit.jupiter.api.Assertions.assertTrue;
56

67
import java.util.Arrays;
@@ -128,4 +129,29 @@ void buildVoteSecondSignature() {
128129
actual.secondVerify(
129130
"03699e966b2525f9088a6941d8d94f7869964a000efe65783d78ac82e1199fe609"));
130131
}
132+
133+
@Test
134+
void buildMultiSignature() {
135+
Transaction actual =
136+
new VoteBuilder()
137+
.addVote(
138+
"034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192")
139+
.version(2)
140+
.nonce(3)
141+
.multiSign("secret 1", 0)
142+
.multiSign("secret 2", 1)
143+
.multiSign("secret 3", 2)
144+
.sign("this is a top secret passphrase")
145+
.transaction;
146+
147+
assertTrue(actual.verify());
148+
149+
HashMap actualHashMap = actual.toHashMap();
150+
151+
assertNotNull(actualHashMap.get("signatures"));
152+
153+
List<String> actualSignatures = (List<String>) actualHashMap.get("signatures");
154+
155+
assertEquals(3, actualSignatures.size());
156+
}
131157
}

0 commit comments

Comments
 (0)