Skip to content
This repository has been archived by the owner on Jul 23, 2024. It is now read-only.

define Default zero address #190

Merged
merged 3 commits into from
Dec 11, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ public AbstractFeeDelegatedTransaction signAsFeePayer(AbstractKeyring keyring, i
* @throws IOException
*/
public AbstractFeeDelegatedTransaction signAsFeePayer(AbstractKeyring keyring, Function<AbstractFeeDelegatedTransaction, String> hasher) throws IOException {
if(this.getFeePayer().equals("0x")) {
if(this.getFeePayer().equals("0x") || this.getFeePayer().equals(Utils.DEFAULT_ZERO_ADDRESS)) {
this.setFeePayer(keyring.getAddress());
}

Expand Down Expand Up @@ -198,7 +198,7 @@ public AbstractFeeDelegatedTransaction signAsFeePayer(AbstractKeyring keyring, F
* @throws IOException
*/
public AbstractFeeDelegatedTransaction signAsFeePayer(AbstractKeyring keyring, int index, Function<AbstractFeeDelegatedTransaction, String> hasher) throws IOException {
if(this.getFeePayer().equals("0x")) {
if(this.getFeePayer().equals("0x") || this.getFeePayer().equals(Utils.DEFAULT_ZERO_ADDRESS)) {
this.setFeePayer(keyring.getAddress());
}

Expand Down Expand Up @@ -257,8 +257,8 @@ public String combineSignedRawTransactions(List<String> rlpEncoded) {
if(fillVariable) {
if(this.getNonce().equals("0x")) this.setNonce(txObj.getNonce());
if(this.getGasPrice().equals("0x")) this.setGasPrice(txObj.getGasPrice());
if(this.getFeePayer().equals("0x")) {
if(!txObj.getFeePayer().equals("0x")) {
if(this.getFeePayer().equals("0x") || this.getFeePayer().equals(Utils.DEFAULT_ZERO_ADDRESS)) {
if(!txObj.getFeePayer().equals("0x") && !txObj.getFeePayer().equals(Utils.DEFAULT_ZERO_ADDRESS)) {
this.setFeePayer(txObj.getFeePayer());
fillVariable = false;
}
Expand Down Expand Up @@ -335,11 +335,11 @@ public String getFeePayer() {
* @param feePayer The address of fee payer.
*/
public void setFeePayer(String feePayer) {
if(feePayer == null) {
feePayer = "0x";
if(feePayer == null || feePayer.equals("0x")) {
feePayer = Utils.DEFAULT_ZERO_ADDRESS;
}

if(!feePayer.equals("0x") && !Utils.isAddress(feePayer)) {
if(!Utils.isAddress(feePayer)) {
throw new IllegalArgumentException("Invalid address. : " + feePayer);
}

Expand All @@ -361,7 +361,7 @@ public void setFeePayerSignatures(List<SignatureData> feePayerSignatures) {
}

if(!Utils.isEmptySig(feePayerSignatures)) {
if (feePayer.equals("0x")) {
if (feePayer.equals("0x") || feePayer.equals(Utils.DEFAULT_ZERO_ADDRESS)) {
throw new IllegalArgumentException("feePayer is missing: feePayer must be defined with feePayerSignatures.");
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ public AbstractTransaction sign(AbstractKeyring keyring, Function<AbstractTransa
throw new IllegalArgumentException("A legacy transaction cannot be signed with a decoupled keyring.");
}

if(this.from.equals("0x")){
if(this.from.equals("0x") || this.from.equals(Utils.DEFAULT_ZERO_ADDRESS)){
this.from = keyring.getAddress();
}

Expand Down Expand Up @@ -315,7 +315,7 @@ public AbstractTransaction sign(AbstractKeyring keyring, int index, Function<Abs
throw new IllegalArgumentException("A legacy transaction cannot be signed with a decoupled keyring.");
}

if(this.from.equals("0x")){
if(this.from.equals("0x") || this.from.equals(Utils.DEFAULT_ZERO_ADDRESS)){
this.from = keyring.getAddress();
}

Expand Down Expand Up @@ -621,7 +621,7 @@ public void setType(String type) {
public void setFrom(String from) {
//"From" field in LegacyTransaction allows null
if(this instanceof LegacyTransaction) {
if(from == null || from.isEmpty() || from.equals("0x")) from = "0x";
if(from == null || from.isEmpty() || from.equals("0x") || from.equals(Utils.DEFAULT_ZERO_ADDRESS)) from = Utils.DEFAULT_ZERO_ADDRESS;
} else {
if(from == null) {
throw new IllegalArgumentException("from is missing.");
Expand Down
2 changes: 2 additions & 0 deletions core/src/main/java/com/klaytn/caver/utils/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ public class Utils {
public static final int LENGTH_ADDRESS_STRING = 40;
public static final int LENGTH_PRIVATE_KEY_STRING = 64;

public static final String DEFAULT_ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";

/**
* Check if string has address format.
* @param address An address string.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1067,7 +1067,7 @@ public void combineSignatures() {
.setAccount(account)
.build();

String rlpEncoded = "0x21f872018505d21dba00830186a0949788016d3957e62cc7f3aa7f9f5d801e3277b4eb8201c0f847f845820fe9a05e5922bc693162599cca35416a96f44187a7a0ac4851eddf9ad8ec8359aa8878a03e128291576716d0be1ef5a8dba67eb2056fa1495529a77338d9c7a7b4c5e24a80c4c3018080";
String rlpEncoded = "0x21f886018505d21dba00830186a0949788016d3957e62cc7f3aa7f9f5d801e3277b4eb8201c0f847f845820fe9a05e5922bc693162599cca35416a96f44187a7a0ac4851eddf9ad8ec8359aa8878a03e128291576716d0be1ef5a8dba67eb2056fa1495529a77338d9c7a7b4c5e24a940000000000000000000000000000000000000000c4c3018080";
String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncoded));

SignatureData expectedSignatureData = new SignatureData(
Expand Down Expand Up @@ -1104,7 +1104,7 @@ public void combineSignature_multipleSignature() {
};

String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncodedStrings));
String expectedRLPEncoding = "0x21f90100018505d21dba00830186a0949788016d3957e62cc7f3aa7f9f5d801e3277b4eb8201c0f8d5f845820fe9a05e5922bc693162599cca35416a96f44187a7a0ac4851eddf9ad8ec8359aa8878a03e128291576716d0be1ef5a8dba67eb2056fa1495529a77338d9c7a7b4c5e24af845820fe9a0dd841ac608f55a20a211599ab73b7cc8cacedb219aca053621b68a7cf1ce1625a055da30e64842b16650ec6fac6972b1344197a299c2f840190bbe01fdc82a447af845820feaa0187d11596f3a2c9ef922fee8ebf07aa1c7ce7ae46834c54901436d10b9e0afd8a068094e4e51f2d07b60f14df1ddb75f1afb35ed8061aa51005559beab2cc9cd4c80c4c3018080";
String expectedRLPEncoding = "0x21f90114018505d21dba00830186a0949788016d3957e62cc7f3aa7f9f5d801e3277b4eb8201c0f8d5f845820fe9a05e5922bc693162599cca35416a96f44187a7a0ac4851eddf9ad8ec8359aa8878a03e128291576716d0be1ef5a8dba67eb2056fa1495529a77338d9c7a7b4c5e24af845820fe9a0dd841ac608f55a20a211599ab73b7cc8cacedb219aca053621b68a7cf1ce1625a055da30e64842b16650ec6fac6972b1344197a299c2f840190bbe01fdc82a447af845820feaa0187d11596f3a2c9ef922fee8ebf07aa1c7ce7ae46834c54901436d10b9e0afd8a068094e4e51f2d07b60f14df1ddb75f1afb35ed8061aa51005559beab2cc9cd4c940000000000000000000000000000000000000000c4c3018080";

SignatureData[] expectedSignatureData = new SignatureData[]{
new SignatureData(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1174,7 +1174,7 @@ public void combineSignatures() {
.setFeeRatio(feeRatio)
.build();

String rlpEncoded = "0x22f873018505d21dba00830186a094610a4bf32905c1dc6e5e61c37165b9aa3a7189088201c01ef847f845820feaa03f34007147ba1c9184d51b7dfacae768ae00c859b4726ef339502e98d44ec188a03e518e277769ba02d57c8c7fab291abab61e2525735500402e78a1493e48781e80c4c3018080";
String rlpEncoded = "0x22f887018505d21dba00830186a094610a4bf32905c1dc6e5e61c37165b9aa3a7189088201c01ef847f845820feaa03f34007147ba1c9184d51b7dfacae768ae00c859b4726ef339502e98d44ec188a03e518e277769ba02d57c8c7fab291abab61e2525735500402e78a1493e48781e940000000000000000000000000000000000000000c4c3018080";
String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncoded));

SignatureData expectedSignatureData = new SignatureData(
Expand Down Expand Up @@ -1212,7 +1212,7 @@ public void combineSignature_multipleSignature() {
};

String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncodedStrings));
String expectedRLPEncoding = "0x22f90101018505d21dba00830186a094610a4bf32905c1dc6e5e61c37165b9aa3a7189088201c01ef8d5f845820feaa03f34007147ba1c9184d51b7dfacae768ae00c859b4726ef339502e98d44ec188a03e518e277769ba02d57c8c7fab291abab61e2525735500402e78a1493e48781ef845820fe9a08094b2512daf27c211292cf2bdecca13733065070d5f61433a5d6702b864ee4aa02e86ee64c66859f8bc0b9c750c8b5ea0cc79a03cdbf9b78ca5db9c4ab6926b25f845820feaa034cda207b780c1defd54138f1d071f5d0e82160decf46c8d182f5f7aac341c32a003e174ed4357afebaa26c5c6c61c660c9bb130027d53f8cafb3a27f54273c3fd80c4c3018080";
String expectedRLPEncoding = "0x22f90115018505d21dba00830186a094610a4bf32905c1dc6e5e61c37165b9aa3a7189088201c01ef8d5f845820feaa03f34007147ba1c9184d51b7dfacae768ae00c859b4726ef339502e98d44ec188a03e518e277769ba02d57c8c7fab291abab61e2525735500402e78a1493e48781ef845820fe9a08094b2512daf27c211292cf2bdecca13733065070d5f61433a5d6702b864ee4aa02e86ee64c66859f8bc0b9c750c8b5ea0cc79a03cdbf9b78ca5db9c4ab6926b25f845820feaa034cda207b780c1defd54138f1d071f5d0e82160decf46c8d182f5f7aac341c32a003e174ed4357afebaa26c5c6c61c660c9bb130027d53f8cafb3a27f54273c3fd940000000000000000000000000000000000000000c4c3018080";

SignatureData[] expectedSignatureData = new SignatureData[]{
new SignatureData(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,7 @@ public void combineSignatures() {
.setFrom(from)
.build();

String rlpEncoded = "0x39f86f018505d21dba00830dbba094dcad313f2bf2240dbdb243eaf5eee2f512e0bfd1f847f845820fe9a04d9bf7a8bd15a41143eeecd3c39691cdc151b50d641534f0c73055849f7abca1a07123185b4cc046eb6a78e1ee370c059dfe437012098ebe18379685acd907606f80c4c3018080";
String rlpEncoded = "0x39f883018505d21dba00830dbba094dcad313f2bf2240dbdb243eaf5eee2f512e0bfd1f847f845820fe9a04d9bf7a8bd15a41143eeecd3c39691cdc151b50d641534f0c73055849f7abca1a07123185b4cc046eb6a78e1ee370c059dfe437012098ebe18379685acd907606f940000000000000000000000000000000000000000c4c3018080";

String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncoded));

Expand Down Expand Up @@ -783,7 +783,7 @@ public void combineSignature_MultipleSignature() {
};

String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncodedStrings));
String expectedRLPEncoding = "0x39f8fd018505d21dba00830dbba094dcad313f2bf2240dbdb243eaf5eee2f512e0bfd1f8d5f845820fe9a04d9bf7a8bd15a41143eeecd3c39691cdc151b50d641534f0c73055849f7abca1a07123185b4cc046eb6a78e1ee370c059dfe437012098ebe18379685acd907606ff845820fe9a0205d4f6f758629da5eb25d1d572e82430243e00096ed64097b6d0031847bf792a0280ce8a79438c699fce0417403e8892e46e10da764b16876091ef0965c1ce1dff845820feaa02f3c7b7aebd6c9af7a5b4259f0ea77d96362efbdca397b9f17e3c6924296c53fa00e4197ba6e38cecf99715f523c1805a58559072f944443bad1152dee73bfb16780c4c3018080";
String expectedRLPEncoding = "0x39f90111018505d21dba00830dbba094dcad313f2bf2240dbdb243eaf5eee2f512e0bfd1f8d5f845820fe9a04d9bf7a8bd15a41143eeecd3c39691cdc151b50d641534f0c73055849f7abca1a07123185b4cc046eb6a78e1ee370c059dfe437012098ebe18379685acd907606ff845820fe9a0205d4f6f758629da5eb25d1d572e82430243e00096ed64097b6d0031847bf792a0280ce8a79438c699fce0417403e8892e46e10da764b16876091ef0965c1ce1dff845820feaa02f3c7b7aebd6c9af7a5b4259f0ea77d96362efbdca397b9f17e3c6924296c53fa00e4197ba6e38cecf99715f523c1805a58559072f944443bad1152dee73bfb167940000000000000000000000000000000000000000c4c3018080";

SignatureData[] expectedSignatureData = new SignatureData[]{
new SignatureData(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -896,7 +896,7 @@ public void combineSignatures() {
.setFeeRatio(feeRatio)
.build();

String rlpEncoded = "0x3af870018505d21dba00830249f094158a98f884e6f5a2731049569cb895cc1c75b47b1ef847f845820fe9a0879126759f424c790069e47d443c44674f4c2154d1e6f4f02134dbc56a6629f1a04b714b50c900b0b099b3e3ba15743654e8c576aa4fe504da38015f4c6175759080c4c3018080";
String rlpEncoded = "0x3af884018505d21dba00830249f094158a98f884e6f5a2731049569cb895cc1c75b47b1ef847f845820fe9a0879126759f424c790069e47d443c44674f4c2154d1e6f4f02134dbc56a6629f1a04b714b50c900b0b099b3e3ba15743654e8c576aa4fe504da38015f4c61757590940000000000000000000000000000000000000000c4c3018080";

String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncoded));

Expand Down Expand Up @@ -935,7 +935,7 @@ public void combineSignature_MultipleSignature() {
};

String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncodedStrings));
String expectedRLPEncoding = "0x3af8fe018505d21dba00830249f094158a98f884e6f5a2731049569cb895cc1c75b47b1ef8d5f845820fe9a0879126759f424c790069e47d443c44674f4c2154d1e6f4f02134dbc56a6629f1a04b714b50c900b0b099b3e3ba15743654e8c576aa4fe504da38015f4c61757590f845820feaa00a5a7ad842672b62c26be2fae2644e9219bdf4baa2f7ea7745c74bab89fa1ff5a054ea57f591aea4d240da909e338b8df7c13a640d731eaaf785ca647c259066c5f845820fe9a0b871f4760b53fcba095b10979ae8b950e2692c1a526cd6f13c91401dde45d228a01aad1aa4f8efdfb9ab22cee80e0071ee3c6f5e8ad9b54ea79287b9f5631f30f180c4c3018080";
String expectedRLPEncoding = "0x3af90112018505d21dba00830249f094158a98f884e6f5a2731049569cb895cc1c75b47b1ef8d5f845820fe9a0879126759f424c790069e47d443c44674f4c2154d1e6f4f02134dbc56a6629f1a04b714b50c900b0b099b3e3ba15743654e8c576aa4fe504da38015f4c61757590f845820feaa00a5a7ad842672b62c26be2fae2644e9219bdf4baa2f7ea7745c74bab89fa1ff5a054ea57f591aea4d240da909e338b8df7c13a640d731eaaf785ca647c259066c5f845820fe9a0b871f4760b53fcba095b10979ae8b950e2692c1a526cd6f13c91401dde45d228a01aad1aa4f8efdfb9ab22cee80e0071ee3c6f5e8ad9b54ea79287b9f5631f30f1940000000000000000000000000000000000000000c4c3018080";

SignatureData[] expectedSignatureData = new SignatureData[]{
new SignatureData(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -845,7 +845,7 @@ public void combineSignatures() {
.setChainId(chainID)
.build();

String rlpEncoded = "0x49f90122018505d21dba0085174876e80094f1f766ded1aae1e06e2ed6c85127dd69891f7b28b8aff8ad80b8aaf8a8a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000004058006f847f845820feaa0042800bfb7429b6c054fed37b86c473fdea9d4481d5d5b32cc92f34d744983b9a03ce733dfce2efd9f6ffaf70d50a0a211b94d84a8a18f1196e875053896a974be80c4c3018080";
String rlpEncoded = "0x49f90136018505d21dba0085174876e80094f1f766ded1aae1e06e2ed6c85127dd69891f7b28b8aff8ad80b8aaf8a8a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000004058006f847f845820feaa0042800bfb7429b6c054fed37b86c473fdea9d4481d5d5b32cc92f34d744983b9a03ce733dfce2efd9f6ffaf70d50a0a211b94d84a8a18f1196e875053896a974be940000000000000000000000000000000000000000c4c3018080";

String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncoded));

Expand Down Expand Up @@ -884,7 +884,7 @@ public void combineSignature_MultipleSignature() {
};

String combined = mTxObj.combineSignedRawTransactions(Arrays.asList(rlpEncodedStrings));
String expectedRLPEncoding = "0x49f901b0018505d21dba0085174876e80094f1f766ded1aae1e06e2ed6c85127dd69891f7b28b8aff8ad80b8aaf8a8a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000004058006f8d5f845820feaa0042800bfb7429b6c054fed37b86c473fdea9d4481d5d5b32cc92f34d744983b9a03ce733dfce2efd9f6ffaf70d50a0a211b94d84a8a18f1196e875053896a974bef845820feaa0a45210f00ff64784e0aac0597b7eb19ea0890144100fd8dc8bb0b2fe003cbe84a07ff706e9a3825be7767f389789927a5633cf4995790a8bfe26d9332300de5db0f845820feaa076a91becce2c632980731d97a319216030de7b1b94b04c8a568236547d42d263a061c3c3456cda8eb7c440c700a168204b054d45d7bf2652c04171a0a1f76eff7380c4c3018080";
String expectedRLPEncoding = "0x49f901c4018505d21dba0085174876e80094f1f766ded1aae1e06e2ed6c85127dd69891f7b28b8aff8ad80b8aaf8a8a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000004058006f8d5f845820feaa0042800bfb7429b6c054fed37b86c473fdea9d4481d5d5b32cc92f34d744983b9a03ce733dfce2efd9f6ffaf70d50a0a211b94d84a8a18f1196e875053896a974bef845820feaa0a45210f00ff64784e0aac0597b7eb19ea0890144100fd8dc8bb0b2fe003cbe84a07ff706e9a3825be7767f389789927a5633cf4995790a8bfe26d9332300de5db0f845820feaa076a91becce2c632980731d97a319216030de7b1b94b04c8a568236547d42d263a061c3c3456cda8eb7c440c700a168204b054d45d7bf2652c04171a0a1f76eff73940000000000000000000000000000000000000000c4c3018080";

SignatureData[] expectedSignatureData = new SignatureData[]{
new SignatureData(
Expand Down
Loading