From 7bc8b2df8ae69e45d34d8b9a05d77d3d80595fa7 Mon Sep 17 00:00:00 2001 From: "shaoyun.zhan@okcoin.com" Date: Fri, 26 Mar 2021 18:28:50 +0800 Subject: [PATCH 1/7] add update-contract-deployment-whitelist and submit-proposal update-contract-blocked-list , modify verison to v0.16.6 --- pom.xml | 2 +- .../gov/MsgContractBlockedListProposal.java | 67 +++++++++++++++ .../MsgContractBlockedListProposalValue.java | 62 +++++++++++++ ...sgContractDeploymentWhitelistProposal.java | 66 ++++++++++++++ ...tractDeploymentWhitelistProposalValue.java | 63 ++++++++++++++ src/test/java/com/okexchain/msg/TestGov.java | 86 +++++++++++++++++++ 6 files changed, 345 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposal.java create mode 100644 src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposalValue.java create mode 100644 src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposal.java create mode 100644 src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposalValue.java create mode 100644 src/test/java/com/okexchain/msg/TestGov.java diff --git a/pom.xml b/pom.xml index 33e9f24..f49cff5 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.okexchain okexchain-java-sdk - 0.16.5 + 0.16.6 okexchain-java-sdk diff --git a/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposal.java b/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposal.java new file mode 100644 index 0000000..da9ea74 --- /dev/null +++ b/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposal.java @@ -0,0 +1,67 @@ +package com.okexchain.msg.gov; + +import com.okexchain.env.EnvInstance; +import com.okexchain.msg.MsgBase; +import com.okexchain.msg.common.Message; +import com.okexchain.msg.common.Token; +import com.okexchain.utils.Utils; + +import java.util.ArrayList; +import java.util.List; + +public class MsgContractBlockedListProposal extends MsgBase { + + public MsgContractBlockedListProposal() { + setMsgType("okexchain/gov/MsgSubmitProposal"); + } + + + public Message produceContractDeploymentWhitelistProposal( + String title, + String description, + String[] contractAddresses, + boolean isAdded, + String amountDeposit + ) { + + // proposal + MsgContractBlockedListProposalValue proposal = new MsgContractBlockedListProposalValue(); + proposal.setTitle(title); + proposal.setDescription(description); + proposal.setContractAddresses(contractAddresses); + + proposal.setIsAdded(isAdded); + + return produceContractDeploymentWhitelistProposal(proposal, amountDeposit); + } + + + public Message produceContractDeploymentWhitelistProposal( + MsgContractBlockedListProposalValue proposal, + String amountDeposit + ) { + + // content + Content content = new Content<>(); + content.setType("okexchain/evm/ManageContractBlockedListProposal"); + content.setValue(proposal); + + // submit + List depositList = new ArrayList<>(); + Token deposit = new Token(); + deposit.setDenom(EnvInstance.getEnv().GetDenom()); + deposit.setAmount(Utils.NewDecString(amountDeposit)); + depositList.add(deposit); + + MsgSubmitProposalValue> value = new MsgSubmitProposalValue<>(); + value.setContent(content); + value.setInitialDeposit(depositList); + value.setProposer(this.address); + + Message>> msg = new Message<>(); + msg.setType(msgType); + msg.setValue(value); + return msg; + } + +} diff --git a/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposalValue.java b/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposalValue.java new file mode 100644 index 0000000..d712b54 --- /dev/null +++ b/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposalValue.java @@ -0,0 +1,62 @@ +package com.okexchain.msg.gov; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.google.gson.annotations.SerializedName; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonPropertyOrder(alphabetic = true) +public class MsgContractBlockedListProposalValue { + + @JsonProperty("title") + @SerializedName("title") + private String title; + + + @JsonProperty("description") + @SerializedName("description") + private String description; + + @JsonProperty("contract_addresses") + @SerializedName("contract_addresses") + private String [] contractAddresses; + + + @JsonProperty("is_added") + @SerializedName("is_added") + private boolean isAdded; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE) + .append("title", title) + .append("description", description) + .append("contract_addresses", contractAddresses) + .append("isAdded", isAdded) + .toString(); + } + + + public void setTitle(String title) { + this.title = title; + } + + + public void setDescription(String description) { + this.description = description; + } + + public void setContractAddresses(String[] contractAddresses) { + this.contractAddresses = contractAddresses; + } + + public void setIsAdded(boolean isAdded) { + this.isAdded = isAdded; + } + + +} \ No newline at end of file diff --git a/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposal.java b/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposal.java new file mode 100644 index 0000000..ea2af29 --- /dev/null +++ b/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposal.java @@ -0,0 +1,66 @@ +package com.okexchain.msg.gov; + +import com.okexchain.env.EnvInstance; +import com.okexchain.msg.MsgBase; +import com.okexchain.msg.common.Message; +import com.okexchain.msg.common.Token; +import com.okexchain.utils.Utils; + +import java.util.ArrayList; +import java.util.List; + +public class MsgContractDeploymentWhitelistProposal extends MsgBase { + + public MsgContractDeploymentWhitelistProposal() { + setMsgType("okexchain/gov/MsgSubmitProposal"); + } + + + public Message produceContractDeploymentWhitelistProposal( + String title, + String description, + String[] distributorAddresses, + boolean isAdded, + String amountDeposit + ) { + + // proposal + MsgContractDeploymentWhitelistProposalValue proposal = new MsgContractDeploymentWhitelistProposalValue(); + proposal.setTitle(title); + proposal.setDescription(description); + proposal.setDistributorAddresses(distributorAddresses); + proposal.setIsAdded(isAdded); + + return produceContractDeploymentWhitelistProposal(proposal, amountDeposit); + } + + + public Message produceContractDeploymentWhitelistProposal( + MsgContractDeploymentWhitelistProposalValue proposal, + String amountDeposit + ) { + + // content + Content content = new Content<>(); + content.setType("okexchain/evm/ManageContractDeploymentWhitelistProposal"); + content.setValue(proposal); + + // submit + List depositList = new ArrayList<>(); + Token deposit = new Token(); + deposit.setDenom(EnvInstance.getEnv().GetDenom()); + deposit.setAmount(Utils.NewDecString(amountDeposit)); + depositList.add(deposit); + + MsgSubmitProposalValue> value = new MsgSubmitProposalValue<>(); + value.setContent(content); + value.setInitialDeposit(depositList); + value.setProposer(this.address); + + Message>> msg = new Message<>(); + msg.setType(msgType); + msg.setValue(value); + return msg; + } + +} diff --git a/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposalValue.java b/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposalValue.java new file mode 100644 index 0000000..06dff75 --- /dev/null +++ b/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposalValue.java @@ -0,0 +1,63 @@ +package com.okexchain.msg.gov; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.google.gson.annotations.SerializedName; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonPropertyOrder(alphabetic = true) +public class MsgContractDeploymentWhitelistProposalValue { + + @JsonProperty("title") + @SerializedName("title") + private String title; + + + @JsonProperty("description") + @SerializedName("description") + private String description; + + @JsonProperty("distributor_addresses") + @SerializedName("distributor_addresses") + private String[] distributorAddresses; + + + @JsonProperty("is_added") + @SerializedName("is_added") + private boolean isAdded; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE) + .append("title", title) + .append("description", description) + .append("distributorAddresses", distributorAddresses) + .append("isAdded", isAdded) + .toString(); + } + + + + public void setTitle(String title) { + this.title = title; + } + + + public void setDescription(String description) { + this.description = description; + } + + + public void setDistributorAddresses(String[] distributorAddresses) { + this.distributorAddresses = distributorAddresses; + } + + public void setIsAdded(boolean isAdded) { + this.isAdded = isAdded; + } + +} \ No newline at end of file diff --git a/src/test/java/com/okexchain/msg/TestGov.java b/src/test/java/com/okexchain/msg/TestGov.java new file mode 100644 index 0000000..108a99d --- /dev/null +++ b/src/test/java/com/okexchain/msg/TestGov.java @@ -0,0 +1,86 @@ +package com.okexchain.msg; + +import com.alibaba.fastjson.JSONObject; +import com.okexchain.env.EnvBase; +import com.okexchain.env.EnvInstance; +import com.okexchain.msg.common.Message; +import com.okexchain.msg.gov.MsgContractBlockedListProposal; +import com.okexchain.msg.gov.MsgContractDeploymentWhitelistProposal; +import com.okexchain.utils.crypto.PrivateKey; +import org.junit.Test; + +import java.io.IOException; + +/** + * @author shaoyun.zhan + * @date 2021/3/26 + *

+ * 描述: + */ +public class TestGov { + + @Test + public void testContractBlockedListProposal() throws IOException { + EnvBase env = EnvInstance.getEnv(); + env.setChainID("okexchainevm-8"); + EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); + env.setDenom("okt"); + +// {"codespace":"sdk","code":4,"gas_used":"67065","gas_wanted":"2000000","raw_log":"unauthorized: signature verification failed; verify correct account sequence and chain-id, sign msg:{\"account_number\":\"2\",\"chain_id\":\"okexchainevm-8\",\"fee\":{\"amount\":[{\"amount\":\"0.030000000000000000\",\"denom\":\"okt\"}],\"gas\":\"2000000\"},\"memo\":\"\",\"msgs\":[{\"type\":\"okexchain/gov/MsgSubmitProposal\",\"value\":{\"content\":{\"type\":\"okexchain/evm/ManageContractBlockedListProposal\",\"value\":{\"contract_addresses\":[\"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0\",\"okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas\"],\"description\":\"String description\",\"is_added\":true,\"title\":\"String title\"}},\"initial_deposit\":[{\"amount\":\"100.000000000000000000\",\"denom\":\"okt\"}],\"proposer\":\"okexchain1qpel9c5wlrc30efaskqfgzrda7h3sd745rcxeh\"}}],\"sequence\":\"9\"}","height":"0","txhash":"8240A3B7734DEB2878BD629CEB2426E04E1D4E96C3A3E7E87CB1933DD2FD0A49"} + + + MsgContractBlockedListProposal msg = new MsgContractBlockedListProposal(); + msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); + + String[] contractAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; + + Message messages = msg.produceContractDeploymentWhitelistProposal( + "String title", + "String description", + contractAddresses, + true, + "100.000000000000000000" + ); + + JSONObject res = msg.submit(messages, "0.03", "2000000", ""); + System.out.println(res.toJSONString()); + try { + boolean succeed = msg.isTxSucceed(res); + System.out.println("tx " + (succeed ? "succeed": "failed")); + } catch (Exception e) { + System.out.println(e.toString()); + } + } + + @Test + public void testContractBlockedListProposalValue() throws IOException { + EnvBase env = EnvInstance.getEnv(); + env.setChainID("okexchainevm-8"); + EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); + env.setDenom("okt"); + + + MsgContractDeploymentWhitelistProposal msg = new MsgContractDeploymentWhitelistProposal(); + msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); + + String[] distributorAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; + + Message messages = msg.produceContractDeploymentWhitelistProposal( + "String title", + "String description", + distributorAddresses, + true, + "100.000000000000000000" + ); + + JSONObject res = msg.submit(messages, "0.03", "2000000", ""); + System.out.println(res.toJSONString()); + try { + boolean succeed = msg.isTxSucceed(res); + System.out.println("tx " + (succeed ? "succeed": "failed")); + } catch (Exception e) { + System.out.println(e.toString()); + } + } + +} From 4703f7fd9ab44c4e154253d09c7b660b670f05d4 Mon Sep 17 00:00:00 2001 From: "shaoyun.zhan@okcoin.com" Date: Fri, 26 Mar 2021 18:36:44 +0800 Subject: [PATCH 2/7] add update-contract-deployment-whitelist and submit-proposal update-contract-blocked-list , modify verison to v0.16.6 --- src/test/java/com/okexchain/msg/TestGov.java | 139 +++++++++---------- 1 file changed, 64 insertions(+), 75 deletions(-) diff --git a/src/test/java/com/okexchain/msg/TestGov.java b/src/test/java/com/okexchain/msg/TestGov.java index 108a99d..c179ed9 100644 --- a/src/test/java/com/okexchain/msg/TestGov.java +++ b/src/test/java/com/okexchain/msg/TestGov.java @@ -1,16 +1,5 @@ package com.okexchain.msg; -import com.alibaba.fastjson.JSONObject; -import com.okexchain.env.EnvBase; -import com.okexchain.env.EnvInstance; -import com.okexchain.msg.common.Message; -import com.okexchain.msg.gov.MsgContractBlockedListProposal; -import com.okexchain.msg.gov.MsgContractDeploymentWhitelistProposal; -import com.okexchain.utils.crypto.PrivateKey; -import org.junit.Test; - -import java.io.IOException; - /** * @author shaoyun.zhan * @date 2021/3/26 @@ -18,69 +7,69 @@ * 描述: */ public class TestGov { - - @Test - public void testContractBlockedListProposal() throws IOException { - EnvBase env = EnvInstance.getEnv(); - env.setChainID("okexchainevm-8"); - EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); - env.setDenom("okt"); - -// {"codespace":"sdk","code":4,"gas_used":"67065","gas_wanted":"2000000","raw_log":"unauthorized: signature verification failed; verify correct account sequence and chain-id, sign msg:{\"account_number\":\"2\",\"chain_id\":\"okexchainevm-8\",\"fee\":{\"amount\":[{\"amount\":\"0.030000000000000000\",\"denom\":\"okt\"}],\"gas\":\"2000000\"},\"memo\":\"\",\"msgs\":[{\"type\":\"okexchain/gov/MsgSubmitProposal\",\"value\":{\"content\":{\"type\":\"okexchain/evm/ManageContractBlockedListProposal\",\"value\":{\"contract_addresses\":[\"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0\",\"okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas\"],\"description\":\"String description\",\"is_added\":true,\"title\":\"String title\"}},\"initial_deposit\":[{\"amount\":\"100.000000000000000000\",\"denom\":\"okt\"}],\"proposer\":\"okexchain1qpel9c5wlrc30efaskqfgzrda7h3sd745rcxeh\"}}],\"sequence\":\"9\"}","height":"0","txhash":"8240A3B7734DEB2878BD629CEB2426E04E1D4E96C3A3E7E87CB1933DD2FD0A49"} - - - MsgContractBlockedListProposal msg = new MsgContractBlockedListProposal(); - msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); - - String[] contractAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; - - Message messages = msg.produceContractDeploymentWhitelistProposal( - "String title", - "String description", - contractAddresses, - true, - "100.000000000000000000" - ); - - JSONObject res = msg.submit(messages, "0.03", "2000000", ""); - System.out.println(res.toJSONString()); - try { - boolean succeed = msg.isTxSucceed(res); - System.out.println("tx " + (succeed ? "succeed": "failed")); - } catch (Exception e) { - System.out.println(e.toString()); - } - } - - @Test - public void testContractBlockedListProposalValue() throws IOException { - EnvBase env = EnvInstance.getEnv(); - env.setChainID("okexchainevm-8"); - EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); - env.setDenom("okt"); - - - MsgContractDeploymentWhitelistProposal msg = new MsgContractDeploymentWhitelistProposal(); - msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); - - String[] distributorAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; - - Message messages = msg.produceContractDeploymentWhitelistProposal( - "String title", - "String description", - distributorAddresses, - true, - "100.000000000000000000" - ); - - JSONObject res = msg.submit(messages, "0.03", "2000000", ""); - System.out.println(res.toJSONString()); - try { - boolean succeed = msg.isTxSucceed(res); - System.out.println("tx " + (succeed ? "succeed": "failed")); - } catch (Exception e) { - System.out.println(e.toString()); - } - } +// +// @Test +// public void testContractBlockedListProposal() throws IOException { +// EnvBase env = EnvInstance.getEnv(); +// env.setChainID("okexchainevm-8"); +// EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); +// env.setDenom("okt"); +// +//// {"codespace":"sdk","code":4,"gas_used":"67065","gas_wanted":"2000000","raw_log":"unauthorized: signature verification failed; verify correct account sequence and chain-id, sign msg:{\"account_number\":\"2\",\"chain_id\":\"okexchainevm-8\",\"fee\":{\"amount\":[{\"amount\":\"0.030000000000000000\",\"denom\":\"okt\"}],\"gas\":\"2000000\"},\"memo\":\"\",\"msgs\":[{\"type\":\"okexchain/gov/MsgSubmitProposal\",\"value\":{\"content\":{\"type\":\"okexchain/evm/ManageContractBlockedListProposal\",\"value\":{\"contract_addresses\":[\"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0\",\"okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas\"],\"description\":\"String description\",\"is_added\":true,\"title\":\"String title\"}},\"initial_deposit\":[{\"amount\":\"100.000000000000000000\",\"denom\":\"okt\"}],\"proposer\":\"okexchain1qpel9c5wlrc30efaskqfgzrda7h3sd745rcxeh\"}}],\"sequence\":\"9\"}","height":"0","txhash":"8240A3B7734DEB2878BD629CEB2426E04E1D4E96C3A3E7E87CB1933DD2FD0A49"} +// +// +// MsgContractBlockedListProposal msg = new MsgContractBlockedListProposal(); +// msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); +// +// String[] contractAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; +// +// Message messages = msg.produceContractDeploymentWhitelistProposal( +// "String title", +// "String description", +// contractAddresses, +// true, +// "100.000000000000000000" +// ); +// +// JSONObject res = msg.submit(messages, "0.03", "2000000", ""); +// System.out.println(res.toJSONString()); +// try { +// boolean succeed = msg.isTxSucceed(res); +// System.out.println("tx " + (succeed ? "succeed": "failed")); +// } catch (Exception e) { +// System.out.println(e.toString()); +// } +// } +// +// @Test +// public void testContractBlockedListProposalValue() throws IOException { +// EnvBase env = EnvInstance.getEnv(); +// env.setChainID("okexchainevm-8"); +// EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); +// env.setDenom("okt"); +// +// +// MsgContractDeploymentWhitelistProposal msg = new MsgContractDeploymentWhitelistProposal(); +// msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); +// +// String[] distributorAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; +// +// Message messages = msg.produceContractDeploymentWhitelistProposal( +// "String title", +// "String description", +// distributorAddresses, +// true, +// "100.000000000000000000" +// ); +// +// JSONObject res = msg.submit(messages, "0.03", "2000000", ""); +// System.out.println(res.toJSONString()); +// try { +// boolean succeed = msg.isTxSucceed(res); +// System.out.println("tx " + (succeed ? "succeed": "failed")); +// } catch (Exception e) { +// System.out.println(e.toString()); +// } +// } } From 2a6bc6e505e93743d2a4b937446f68f708da00f3 Mon Sep 17 00:00:00 2001 From: "shaoyun.zhan@okcoin.com" Date: Fri, 26 Mar 2021 18:59:14 +0800 Subject: [PATCH 3/7] add update-contract-deployment-whitelist and submit-proposal update-contract-blocked-list , modify verison to v0.16.6 --- src/test/java/com/okexchain/msg/TestGov.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/okexchain/msg/TestGov.java b/src/test/java/com/okexchain/msg/TestGov.java index c179ed9..0934a70 100644 --- a/src/test/java/com/okexchain/msg/TestGov.java +++ b/src/test/java/com/okexchain/msg/TestGov.java @@ -7,7 +7,7 @@ * 描述: */ public class TestGov { -// + // @Test // public void testContractBlockedListProposal() throws IOException { // EnvBase env = EnvInstance.getEnv(); From 1e2c4adc16ca0e550b199d29f37780c5938141f3 Mon Sep 17 00:00:00 2001 From: "shaoyun.zhan@okcoin.com" Date: Mon, 29 Mar 2021 10:40:38 +0800 Subject: [PATCH 4/7] add update-contract-deployment-whitelist and submit-proposal update-contract-blocked-list , modify verison to v0.16.6 --- .../okexchain/msg/gov/MsgContractBlockedListProposal.java | 7 ++++--- .../msg/gov/MsgContractDeploymentWhitelistProposal.java | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposal.java b/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposal.java index da9ea74..851dd31 100644 --- a/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposal.java +++ b/src/main/java/com/okexchain/msg/gov/MsgContractBlockedListProposal.java @@ -1,6 +1,5 @@ package com.okexchain.msg.gov; -import com.okexchain.env.EnvInstance; import com.okexchain.msg.MsgBase; import com.okexchain.msg.common.Message; import com.okexchain.msg.common.Token; @@ -21,6 +20,7 @@ public Message produceContractDeploymentWhitelistProposal( String description, String[] contractAddresses, boolean isAdded, + String denom, String amountDeposit ) { @@ -32,12 +32,13 @@ public Message produceContractDeploymentWhitelistProposal( proposal.setIsAdded(isAdded); - return produceContractDeploymentWhitelistProposal(proposal, amountDeposit); + return produceContractDeploymentWhitelistProposal(proposal,denom, amountDeposit); } public Message produceContractDeploymentWhitelistProposal( MsgContractBlockedListProposalValue proposal, + String denom, String amountDeposit ) { @@ -49,7 +50,7 @@ public Message produceContractDeploymentWhitelistProposal( // submit List depositList = new ArrayList<>(); Token deposit = new Token(); - deposit.setDenom(EnvInstance.getEnv().GetDenom()); + deposit.setDenom(denom); deposit.setAmount(Utils.NewDecString(amountDeposit)); depositList.add(deposit); diff --git a/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposal.java b/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposal.java index ea2af29..4ddf643 100644 --- a/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposal.java +++ b/src/main/java/com/okexchain/msg/gov/MsgContractDeploymentWhitelistProposal.java @@ -1,6 +1,5 @@ package com.okexchain.msg.gov; -import com.okexchain.env.EnvInstance; import com.okexchain.msg.MsgBase; import com.okexchain.msg.common.Message; import com.okexchain.msg.common.Token; @@ -21,6 +20,7 @@ public Message produceContractDeploymentWhitelistProposal( String description, String[] distributorAddresses, boolean isAdded, + String denom, String amountDeposit ) { @@ -31,12 +31,13 @@ public Message produceContractDeploymentWhitelistProposal( proposal.setDistributorAddresses(distributorAddresses); proposal.setIsAdded(isAdded); - return produceContractDeploymentWhitelistProposal(proposal, amountDeposit); + return produceContractDeploymentWhitelistProposal(proposal,denom, amountDeposit); } public Message produceContractDeploymentWhitelistProposal( MsgContractDeploymentWhitelistProposalValue proposal, + String denom, String amountDeposit ) { @@ -48,7 +49,7 @@ public Message produceContractDeploymentWhitelistProposal( // submit List depositList = new ArrayList<>(); Token deposit = new Token(); - deposit.setDenom(EnvInstance.getEnv().GetDenom()); + deposit.setDenom(denom); deposit.setAmount(Utils.NewDecString(amountDeposit)); depositList.add(deposit); From dd12fc66752b51b641cd744ea4d1eecb10c9a92a Mon Sep 17 00:00:00 2001 From: "shaoyun.zhan@okcoin.com" Date: Mon, 29 Mar 2021 10:43:38 +0800 Subject: [PATCH 5/7] add update-contract-deployment-whitelist and submit-proposal update-contract-blocked-list , modify verison to v0.16.6 --- src/test/java/com/okexchain/msg/TestGov.java | 37 +++++++++++++------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/test/java/com/okexchain/msg/TestGov.java b/src/test/java/com/okexchain/msg/TestGov.java index 0934a70..c9b3736 100644 --- a/src/test/java/com/okexchain/msg/TestGov.java +++ b/src/test/java/com/okexchain/msg/TestGov.java @@ -1,13 +1,24 @@ -package com.okexchain.msg; - -/** - * @author shaoyun.zhan - * @date 2021/3/26 - *

- * 描述: - */ -public class TestGov { - +//package com.okexchain.msg; +// +//import com.alibaba.fastjson.JSONObject; +//import com.okexchain.env.EnvBase; +//import com.okexchain.env.EnvInstance; +//import com.okexchain.msg.common.Message; +//import com.okexchain.msg.gov.MsgContractBlockedListProposal; +//import com.okexchain.msg.gov.MsgContractDeploymentWhitelistProposal; +//import com.okexchain.utils.crypto.PrivateKey; +//import org.junit.Test; +// +//import java.io.IOException; +// +///** +// * @author shaoyun.zhan +// * @date 2021/3/26 +// *

+// * 描述: +// */ +//public class TestGov { +// // @Test // public void testContractBlockedListProposal() throws IOException { // EnvBase env = EnvInstance.getEnv(); @@ -28,6 +39,7 @@ public class TestGov { // "String description", // contractAddresses, // true, +// "okt", // "100.000000000000000000" // ); // @@ -59,6 +71,7 @@ public class TestGov { // "String description", // distributorAddresses, // true, +// "okt", // "100.000000000000000000" // ); // @@ -71,5 +84,5 @@ public class TestGov { // System.out.println(e.toString()); // } // } - -} +// +//} From ecd6be6f0d05997c5a3c5ebfa3cf8c15a1d5af32 Mon Sep 17 00:00:00 2001 From: "shaoyun.zhan@okcoin.com" Date: Mon, 29 Mar 2021 17:49:04 +0800 Subject: [PATCH 6/7] add update-contract-deployment-whitelist and submit-proposal update-contract-blocked-list , modify verison to v0.16.6 : rm useless code --- src/test/java/com/okexchain/msg/TestGov.java | 88 -------------------- 1 file changed, 88 deletions(-) delete mode 100644 src/test/java/com/okexchain/msg/TestGov.java diff --git a/src/test/java/com/okexchain/msg/TestGov.java b/src/test/java/com/okexchain/msg/TestGov.java deleted file mode 100644 index c9b3736..0000000 --- a/src/test/java/com/okexchain/msg/TestGov.java +++ /dev/null @@ -1,88 +0,0 @@ -//package com.okexchain.msg; -// -//import com.alibaba.fastjson.JSONObject; -//import com.okexchain.env.EnvBase; -//import com.okexchain.env.EnvInstance; -//import com.okexchain.msg.common.Message; -//import com.okexchain.msg.gov.MsgContractBlockedListProposal; -//import com.okexchain.msg.gov.MsgContractDeploymentWhitelistProposal; -//import com.okexchain.utils.crypto.PrivateKey; -//import org.junit.Test; -// -//import java.io.IOException; -// -///** -// * @author shaoyun.zhan -// * @date 2021/3/26 -// *

-// * 描述: -// */ -//public class TestGov { -// -// @Test -// public void testContractBlockedListProposal() throws IOException { -// EnvBase env = EnvInstance.getEnv(); -// env.setChainID("okexchainevm-8"); -// EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); -// env.setDenom("okt"); -// -//// {"codespace":"sdk","code":4,"gas_used":"67065","gas_wanted":"2000000","raw_log":"unauthorized: signature verification failed; verify correct account sequence and chain-id, sign msg:{\"account_number\":\"2\",\"chain_id\":\"okexchainevm-8\",\"fee\":{\"amount\":[{\"amount\":\"0.030000000000000000\",\"denom\":\"okt\"}],\"gas\":\"2000000\"},\"memo\":\"\",\"msgs\":[{\"type\":\"okexchain/gov/MsgSubmitProposal\",\"value\":{\"content\":{\"type\":\"okexchain/evm/ManageContractBlockedListProposal\",\"value\":{\"contract_addresses\":[\"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0\",\"okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas\"],\"description\":\"String description\",\"is_added\":true,\"title\":\"String title\"}},\"initial_deposit\":[{\"amount\":\"100.000000000000000000\",\"denom\":\"okt\"}],\"proposer\":\"okexchain1qpel9c5wlrc30efaskqfgzrda7h3sd745rcxeh\"}}],\"sequence\":\"9\"}","height":"0","txhash":"8240A3B7734DEB2878BD629CEB2426E04E1D4E96C3A3E7E87CB1933DD2FD0A49"} -// -// -// MsgContractBlockedListProposal msg = new MsgContractBlockedListProposal(); -// msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); -// -// String[] contractAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; -// -// Message messages = msg.produceContractDeploymentWhitelistProposal( -// "String title", -// "String description", -// contractAddresses, -// true, -// "okt", -// "100.000000000000000000" -// ); -// -// JSONObject res = msg.submit(messages, "0.03", "2000000", ""); -// System.out.println(res.toJSONString()); -// try { -// boolean succeed = msg.isTxSucceed(res); -// System.out.println("tx " + (succeed ? "succeed": "failed")); -// } catch (Exception e) { -// System.out.println(e.toString()); -// } -// } -// -// @Test -// public void testContractBlockedListProposalValue() throws IOException { -// EnvBase env = EnvInstance.getEnv(); -// env.setChainID("okexchainevm-8"); -// EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); -// env.setDenom("okt"); -// -// -// MsgContractDeploymentWhitelistProposal msg = new MsgContractDeploymentWhitelistProposal(); -// msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); -// -// String[] distributorAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; -// -// Message messages = msg.produceContractDeploymentWhitelistProposal( -// "String title", -// "String description", -// distributorAddresses, -// true, -// "okt", -// "100.000000000000000000" -// ); -// -// JSONObject res = msg.submit(messages, "0.03", "2000000", ""); -// System.out.println(res.toJSONString()); -// try { -// boolean succeed = msg.isTxSucceed(res); -// System.out.println("tx " + (succeed ? "succeed": "failed")); -// } catch (Exception e) { -// System.out.println(e.toString()); -// } -// } -// -//} From 4979c37f5f1c9b992b537415b7473ed26df104f9 Mon Sep 17 00:00:00 2001 From: "shaoyun.zhan@okcoin.com" Date: Mon, 29 Mar 2021 18:18:07 +0800 Subject: [PATCH 7/7] add update-contract-deployment-whitelist and submit-proposal update-contract-blocked-list , modify verison to v0.16.6 : add sample --- src/main/java/com/okexchain/sample/Gov.java | 71 ++++++++++++++++++++- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/okexchain/sample/Gov.java b/src/main/java/com/okexchain/sample/Gov.java index 006d51b..b792959 100644 --- a/src/main/java/com/okexchain/sample/Gov.java +++ b/src/main/java/com/okexchain/sample/Gov.java @@ -1,14 +1,13 @@ package com.okexchain.sample; +import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.core.JsonProcessingException; import com.okexchain.env.EnvBase; import com.okexchain.env.EnvInstance; import com.okexchain.msg.MsgBase; -import com.okexchain.msg.gov.MsgDeListProposal; -import com.okexchain.msg.gov.MsgParameterChangeProposal; -import com.okexchain.msg.gov.MsgVote; import com.okexchain.msg.common.Message; import com.okexchain.msg.common.Signature; +import com.okexchain.msg.gov.*; import com.okexchain.msg.tx.BroadcastTx; import com.okexchain.msg.tx.UnsignedTx; import com.okexchain.utils.crypto.PrivateKey; @@ -21,6 +20,8 @@ public static void main(String[] args) throws JsonProcessingException { // testParameterChangeProposal(); // testDeListProposal(); testVote(); + testContractBlockedListProposal(); + testContractBlockedListProposalValue(); } static void testParameterChangeProposal() throws JsonProcessingException { @@ -103,4 +104,68 @@ static void testVote() { System.out.println("serialize transfer msg failed"); } } + + public static void testContractBlockedListProposal() { + EnvBase env = EnvInstance.getEnv(); + env.setChainID("okexchainevm-8"); + EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); + env.setDenom("okt"); + +// {"codespace":"sdk","code":4,"gas_used":"67065","gas_wanted":"2000000","raw_log":"unauthorized: signature verification failed; verify correct account sequence and chain-id, sign msg:{\"account_number\":\"2\",\"chain_id\":\"okexchainevm-8\",\"fee\":{\"amount\":[{\"amount\":\"0.030000000000000000\",\"denom\":\"okt\"}],\"gas\":\"2000000\"},\"memo\":\"\",\"msgs\":[{\"type\":\"okexchain/gov/MsgSubmitProposal\",\"value\":{\"content\":{\"type\":\"okexchain/evm/ManageContractBlockedListProposal\",\"value\":{\"contract_addresses\":[\"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0\",\"okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas\"],\"description\":\"String description\",\"is_added\":true,\"title\":\"String title\"}},\"initial_deposit\":[{\"amount\":\"100.000000000000000000\",\"denom\":\"okt\"}],\"proposer\":\"okexchain1qpel9c5wlrc30efaskqfgzrda7h3sd745rcxeh\"}}],\"sequence\":\"9\"}","height":"0","txhash":"8240A3B7734DEB2878BD629CEB2426E04E1D4E96C3A3E7E87CB1933DD2FD0A49"} + + + MsgContractBlockedListProposal msg = new MsgContractBlockedListProposal(); + msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); + + String[] contractAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; + + Message messages = msg.produceContractDeploymentWhitelistProposal( + "String title", + "String description", + contractAddresses, + true, + "okt", + "100.000000000000000000" + ); + + JSONObject res = msg.submit(messages, "0.03", "2000000", ""); + System.out.println(res.toJSONString()); + try { + boolean succeed = msg.isTxSucceed(res); + System.out.println("tx " + (succeed ? "succeed": "failed")); + } catch (Exception e) { + System.out.println(e.toString()); + } + } + + public static void testContractBlockedListProposalValue() { + EnvBase env = EnvInstance.getEnv(); + env.setChainID("okexchainevm-8"); + EnvInstance.getEnv().setRestServerUrl("http://localhost:8545"); + env.setDenom("okt"); + + + MsgContractDeploymentWhitelistProposal msg = new MsgContractDeploymentWhitelistProposal(); + msg.init(new PrivateKey("75dee45fc7b2dd69ec22dc6a825a2d982aee4ca2edd42c53ced0912173c4a788".toUpperCase())); + + String[] distributorAddresses = new String[]{"okexchain1hw4r48aww06ldrfeuq2v438ujnl6alsz0685a0","okexchain1qj5c07sm6jetjz8f509qtrxgh4psxkv32x0qas"}; + + Message messages = msg.produceContractDeploymentWhitelistProposal( + "String title", + "String description", + distributorAddresses, + true, + "okt", + "100.000000000000000000" + ); + + JSONObject res = msg.submit(messages, "0.03", "2000000", ""); + System.out.println(res.toJSONString()); + try { + boolean succeed = msg.isTxSucceed(res); + System.out.println("tx " + (succeed ? "succeed": "failed")); + } catch (Exception e) { + System.out.println(e.toString()); + } + } }