From 17bd5b727f77e2dbab01df613cf715dcac0e6297 Mon Sep 17 00:00:00 2001 From: wenlinli <1574249665@qq.com> Date: Thu, 14 Dec 2023 16:02:30 +0800 Subject: [PATCH 1/8] add BalanceOpCommand --- .../console/command/SupportedCommand.java | 12 +- .../command/category/BalanceOpCommand.java | 108 ++++++++++++++++++ .../console/command/model/CommandType.java | 5 +- .../java/console/command/model/HelpInfo.java | 44 +++++++ .../console/precompiled/PrecompiledFace.java | 10 ++ .../console/precompiled/PrecompiledImpl.java | 102 +++++++++++++++++ 6 files changed, 270 insertions(+), 11 deletions(-) create mode 100644 src/main/java/console/command/category/BalanceOpCommand.java diff --git a/src/main/java/console/command/SupportedCommand.java b/src/main/java/console/command/SupportedCommand.java index d9eda798..d11fa495 100644 --- a/src/main/java/console/command/SupportedCommand.java +++ b/src/main/java/console/command/SupportedCommand.java @@ -13,16 +13,7 @@ */ package console.command; -import console.command.category.AccountOpCommand; -import console.command.category.AuthOpCommand; -import console.command.category.BasicCommand; -import console.command.category.BfsCommand; -import console.command.category.ConsensusOpCommand; -import console.command.category.ContractOpCommand; -import console.command.category.CrudCommand; -import console.command.category.GroupCommand; -import console.command.category.ShardingCommand; -import console.command.category.StatusQueryCommand; +import console.command.category.*; import console.command.model.BasicCategoryCommand; import console.command.model.CommandInfo; import console.common.ConsoleUtils; @@ -59,6 +50,7 @@ public static void setIsWasm(boolean wasm) { public static final AuthOpCommand authOpCommand = new AuthOpCommand(); public static final AccountOpCommand accountOpCommand = new AccountOpCommand(); public static final ShardingCommand shardingCommand = new ShardingCommand(); + public static final BalanceOpCommand balanceOpCommand = new BalanceOpCommand(); /// FIXME: not supported now // public static CollaborationOpCommand collaborationOpCommand = new CollaborationOpCommand(); diff --git a/src/main/java/console/command/category/BalanceOpCommand.java b/src/main/java/console/command/category/BalanceOpCommand.java new file mode 100644 index 00000000..b1357aa0 --- /dev/null +++ b/src/main/java/console/command/category/BalanceOpCommand.java @@ -0,0 +1,108 @@ +package console.command.category; + +import console.command.model.BasicCategoryCommand; +import console.command.model.CommandInfo; +import console.command.model.CommandType; +import console.command.model.HelpInfo; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class BalanceOpCommand extends BasicCategoryCommand { + public static final CommandInfo GET_BALANCE = + new CommandInfo( + "getBalance", + "Get balance of the account", + HelpInfo::getBalanceHelp, + (consoleInitializer, params, pwd) -> + consoleInitializer.getPrecompiledFace().getBalance(params), + 1, + 1); + public static final CommandInfo ADD_BALANCE = + new CommandInfo( + "addBalance", + "Add balance to the account", + HelpInfo::addBalanceHelp, + (consoleInitializer, params, pwd) -> + consoleInitializer.getPrecompiledFace().addBalance(params), + 2, + 2); + public static final CommandInfo SUB_BALANCE = + new CommandInfo( + "subBalance", + "Sub balance from the account", + HelpInfo::subBalanceHelp, + (consoleInitializer, params, pwd) -> + consoleInitializer.getPrecompiledFace().subBalance(params), + 2, + 2); + public static final CommandInfo REGISTER_CALLER = + new CommandInfo( + "registerCaller", + "Register caller to the account", + HelpInfo::registerCallerHelp, + (consoleInitializer, params, pwd) -> + consoleInitializer.getPrecompiledFace().registerCaller(params), + 1, + 1); + public static final CommandInfo UNREGISTER_CALLER = + new CommandInfo( + "unregisterCaller", + "Unregister caller from the account", + HelpInfo::unregisterCallerHelp, + (consoleInitializer, params, pwd) -> + consoleInitializer.getPrecompiledFace().unregisterCaller(params), + 1, + 1); + protected static final Map commandToCommandInfo = new HashMap<>(); + + static { + Field[] fields = BalanceOpCommand.class.getDeclaredFields(); + for (Field field : fields) { + if (field.getType().equals(CommandInfo.class)) { + try { + CommandInfo constantCommandInfo = (CommandInfo) field.get(null); + commandToCommandInfo.put(constantCommandInfo.getCommand(), constantCommandInfo); + if (constantCommandInfo.getOptionCommand() != null) { + List subCommandList = constantCommandInfo.getOptionCommand(); + for (String s : subCommandList) { + commandToCommandInfo.put(s, constantCommandInfo); + } + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + } + + public BalanceOpCommand() { + super(CommandType.BALANCE_PRECOMPILED_OP); + } + + public CommandInfo getCommandInfo(String command) { + if (commandToCommandInfo.containsKey(command)) { + return commandToCommandInfo.get(command); + } + return null; + } + + public List getAllCommand(boolean isWasm, boolean isAuthOpen) { + return commandToCommandInfo + .keySet() + .stream() + .filter( + key -> + !(isWasm && !commandToCommandInfo.get(key).isWasmSupport() + || (!isAuthOpen + && commandToCommandInfo.get(key).isNeedAuthOpen()))) + .collect(Collectors.toList()); + } + + public Map getAllCommandInfo(boolean isWasm) { + return commandToCommandInfo; + } +} diff --git a/src/main/java/console/command/model/CommandType.java b/src/main/java/console/command/model/CommandType.java index 558aa0c2..bf40cb06 100644 --- a/src/main/java/console/command/model/CommandType.java +++ b/src/main/java/console/command/model/CommandType.java @@ -11,7 +11,8 @@ public enum CommandType { AUTH_OP, ACCOUNT_OP, COLLABORATE_OP, - SHARDING_OP; + SHARDING_OP, + BALANCE_PRECOMPILED_OP; @Override public String toString() { @@ -38,6 +39,8 @@ public String toString() { return "Wasm Collaboration Operation"; case SHARDING_OP: return "Sharding Operation"; + case BALANCE_PRECOMPILED_OP: + return "Balance Precompiled Operation"; default: return "Unknown Command"; } diff --git a/src/main/java/console/command/model/HelpInfo.java b/src/main/java/console/command/model/HelpInfo.java index 1905f04a..cce8b620 100644 --- a/src/main/java/console/command/model/HelpInfo.java +++ b/src/main/java/console/command/model/HelpInfo.java @@ -467,6 +467,50 @@ public static void transferHelp() { "[Note]: 1 ether = 10^18 wei = 10^15 kwei = 10^12 mwei = 10^9 gwei = 10^6 szabo = 10^3 finney"); } + public static void getBalanceHelp() { + System.out.println("Query the balance of the specified account"); + System.out.println("Usage: \ngetBalance accountAddress"); + System.out.println("* accountAddress -- The address of the account."); + } + + public static void addBalanceHelp() { + System.out.println("Add balance to the specified account"); + System.out.println("Usage: \naddBalance accountAddress amount [unit]"); + System.out.println("* accountAddress -- The address of the account."); + System.out.println("* amount -- The amount of token to add."); + System.out.println( + "* unit -- (optional) The unit of amount, default is wei, support \"wei\", \"kwei\", \"mwei\", \"gwei\", \"szabo\", \"finney\", \"ether\", \"kether\", \"mether\", \"gether\"."); + System.out.println( + "[Note]: 1 ether = 10^18 wei = 10^15 kwei = 10^12 mwei = 10^9 gwei = 10^6 szabo = 10^3 finney"); + } + + public static void subBalanceHelp() { + System.out.println("Sub balance from the specified account"); + System.out.println("Usage: \nsubBalance accountAddress amount [unit]"); + System.out.println("* accountAddress -- The address of the account."); + System.out.println("* amount -- The amount of token to sub."); + System.out.println( + "* unit -- (optional) The unit of amount, default is wei, support \"wei\", \"kwei\", \"mwei\", \"gwei\", \"szabo\", \"finney\", \"ether\", \"kether\", \"mether\", \"gether\"."); + System.out.println( + "[Note]: 1 ether = 10^18 wei = 10^15 kwei = 10^12 mwei = 10^9 gwei = 10^6 szabo = 10^3 finney"); + } + + public static void registerCallerHelp() { + System.out.println("Register caller to the specified account"); + System.out.println("Usage: \nregisterCaller accountAddress"); + System.out.println("* accountAddress -- The address of the account."); + System.out.println("[Note]: The caller must be a contract address."); + System.out.println("[Note]: The request initiator account must be governor."); + } + + public static void unregisterCallerHelp() { + System.out.println("Unregister caller from the specified account"); + System.out.println("Usage: \nunregisterCaller accountAddress"); + System.out.println("* accountAddress -- The address of the account."); + System.out.println("[Note]: The caller must be a contract address."); + System.out.println("[Note]: The request initiator account must be governor."); + } + public static void startHelp() { System.out.println("Please provide one of the following ways to start the console."); System.out.println("Usage: "); diff --git a/src/main/java/console/precompiled/PrecompiledFace.java b/src/main/java/console/precompiled/PrecompiledFace.java index c203db01..ef3125e4 100644 --- a/src/main/java/console/precompiled/PrecompiledFace.java +++ b/src/main/java/console/precompiled/PrecompiledFace.java @@ -47,5 +47,15 @@ void setSystemConfigByKey(ConsoleInitializer consoleInitializer, String[] params void fixBFS(String[] params) throws Exception; + void getBalance(String[] params) throws Exception; + + void addBalance(String[] params) throws Exception; + + void subBalance(String[] params) throws Exception; + + void registerCaller(String[] params) throws Exception; + + void unregisterCaller(String[] params) throws Exception; + String getPwd(); } diff --git a/src/main/java/console/precompiled/PrecompiledImpl.java b/src/main/java/console/precompiled/PrecompiledImpl.java index 5c3a3b45..91ad6e32 100644 --- a/src/main/java/console/precompiled/PrecompiledImpl.java +++ b/src/main/java/console/precompiled/PrecompiledImpl.java @@ -18,11 +18,15 @@ import java.util.Map; import java.util.Scanner; import java.util.Set; + import net.sf.jsqlparser.JSQLParserException; import org.apache.commons.io.FilenameUtils; import org.fisco.bcos.sdk.v3.client.Client; import org.fisco.bcos.sdk.v3.client.protocol.response.Abi; import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple2; +import org.fisco.bcos.sdk.v3.contract.auth.manager.AuthManager; +import org.fisco.bcos.sdk.v3.contract.auth.po.GovernorInfo; +import org.fisco.bcos.sdk.v3.contract.precompiled.balance.BalanceService; import org.fisco.bcos.sdk.v3.contract.precompiled.bfs.BFSInfo; import org.fisco.bcos.sdk.v3.contract.precompiled.bfs.BFSPrecompiled.BfsInfo; import org.fisco.bcos.sdk.v3.contract.precompiled.bfs.BFSService; @@ -56,16 +60,20 @@ public class PrecompiledImpl implements PrecompiledFace { private TableCRUDService tableCRUDService; private BFSService bfsService; private ShardingService shardingService; + private BalanceService balanceService; + private AuthManager authManager; private String pwd = "/apps"; public PrecompiledImpl(Client client) { this.client = client; + this.authManager = new AuthManager(client, client.getCryptoSuite().getCryptoKeyPair()); CryptoKeyPair cryptoKeyPair = client.getCryptoSuite().getCryptoKeyPair(); this.consensusService = new ConsensusService(client, cryptoKeyPair); this.systemConfigService = new SystemConfigService(client, cryptoKeyPair); this.tableCRUDService = new TableCRUDService(client, cryptoKeyPair); this.bfsService = new BFSService(client, cryptoKeyPair); this.shardingService = new ShardingService(client, cryptoKeyPair); + this.balanceService = new BalanceService(client, cryptoKeyPair); } @Override @@ -745,6 +753,100 @@ public void fixBFS(String[] params) throws Exception { ConsoleUtils.printJson(bfsService.fixBfs().toString()); } + @Override + public void getBalance(String[] params) throws Exception { + String address = params[1]; + Tuple2 result = this.balanceService.getBalance(address); + if (result.getValue2().equals("success")) { + System.out.println("balance: " + result.getValue1()); + } else { + System.out.println("get balance " + address + " failed. " + result.getValue2()); + } + } + + @Override + public void addBalance(String[] params) throws Exception { + String address = params[1]; + BigInteger amount = + BigInteger.valueOf(ConsoleUtils.processNonNegativeNumber("amount", params[2])); + RetCode retCode = this.balanceService.addBalance(address, amount); + + logger.info("addBalance: {}, retCode {}", address, retCode); + // parse the result + if (retCode.getMessage() == "") { + System.out.println( + "add balance " + address + " success. You can use 'getBalance' to check"); + } else { + System.out.println("add balance " + address + " failed "); + ConsoleUtils.printJson(retCode.toString()); + } + } + + @Override + public void subBalance(String[] params) throws Exception { + String address = params[1]; + BigInteger amount = + BigInteger.valueOf(ConsoleUtils.processNonNegativeNumber("amount", params[2])); + RetCode retCode = this.balanceService.subBalance(address, amount); + + logger.info("subBalance: {}, retCode {}", address, retCode); + // parse the result + if (retCode.getMessage() == "") { + System.out.println( + "sub balance " + address + " success. You can use 'getBalance' to check"); + } else { + System.out.println("sub balance " + address + " failed "); + ConsoleUtils.printJson(retCode.toString()); + } + } + + @Override + public void registerCaller(String[] params) throws Exception { + String address = params[1]; + String currentAccount = client.getCryptoSuite().getCryptoKeyPair().getAddress(); + System.out.println("currentAccount: " + currentAccount); + List governorList = authManager.getCommitteeInfo().getGovernorList(); + for (GovernorInfo governorInfo : governorList) { + if (!governorInfo.getGovernorAddress().equals(currentAccount)) { + System.out.println("Only governor can register caller"); + return; + } + } + RetCode retCode = this.balanceService.registerCaller(address); + + logger.info("registerCaller: {}, retCode {}", address, retCode); + // parse the result + if (retCode.getCode() == PrecompiledRetCode.CODE_SUCCESS.getCode()) { + System.out.println("register caller " + address + " success."); + } else { + System.out.println("register caller " + address + " failed "); + ConsoleUtils.printJson(retCode.toString()); + } + } + + @Override + public void unregisterCaller(String[] params) throws Exception { + String address = params[1]; + String currentAccount = client.getCryptoSuite().getCryptoKeyPair().getAddress(); + List governorList = authManager.getCommitteeInfo().getGovernorList(); + for (GovernorInfo governorInfo : governorList) { + if (!governorInfo.getGovernorAddress().equals(currentAccount)) { + System.out.println("Only governor can register caller"); + return; + } + } + RetCode retCode = this.balanceService.unregisterCaller(address); + + logger.info("unregisterCaller: {}, retCode {}", address, retCode); + // parse the result + if (retCode.getCode() == PrecompiledRetCode.CODE_SUCCESS.getCode()) { + System.out.println("unregister caller " + address + " success."); + } else { + System.out.println("unregister caller " + address + " failed "); + ConsoleUtils.printJson(retCode.toString()); + } + } + @Override public String getPwd() { return pwd; From d5bbf5f03867d4f365de277aa0296cf05507c79e Mon Sep 17 00:00:00 2001 From: wenlinli <1574249665@qq.com> Date: Mon, 18 Dec 2023 14:10:49 +0800 Subject: [PATCH 2/8] update --- .../command/category/BalanceOpCommand.java | 1 - .../console/precompiled/PrecompiledImpl.java | 45 ++++++++++--------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/main/java/console/command/category/BalanceOpCommand.java b/src/main/java/console/command/category/BalanceOpCommand.java index b1357aa0..039cec48 100644 --- a/src/main/java/console/command/category/BalanceOpCommand.java +++ b/src/main/java/console/command/category/BalanceOpCommand.java @@ -4,7 +4,6 @@ import console.command.model.CommandInfo; import console.command.model.CommandType; import console.command.model.HelpInfo; - import java.lang.reflect.Field; import java.util.HashMap; import java.util.List; diff --git a/src/main/java/console/precompiled/PrecompiledImpl.java b/src/main/java/console/precompiled/PrecompiledImpl.java index 91ad6e32..cf966f1c 100644 --- a/src/main/java/console/precompiled/PrecompiledImpl.java +++ b/src/main/java/console/precompiled/PrecompiledImpl.java @@ -18,7 +18,6 @@ import java.util.Map; import java.util.Scanner; import java.util.Set; - import net.sf.jsqlparser.JSQLParserException; import org.apache.commons.io.FilenameUtils; import org.fisco.bcos.sdk.v3.client.Client; @@ -756,12 +755,8 @@ public void fixBFS(String[] params) throws Exception { @Override public void getBalance(String[] params) throws Exception { String address = params[1]; - Tuple2 result = this.balanceService.getBalance(address); - if (result.getValue2().equals("success")) { - System.out.println("balance: " + result.getValue1()); - } else { - System.out.println("get balance " + address + " failed. " + result.getValue2()); - } + BigInteger result = this.balanceService.getBalance(address); + System.out.println("balance: " + result); } @Override @@ -773,7 +768,7 @@ public void addBalance(String[] params) throws Exception { logger.info("addBalance: {}, retCode {}", address, retCode); // parse the result - if (retCode.getMessage() == "") { + if (retCode == PrecompiledRetCode.CODE_SUCCESS) { System.out.println( "add balance " + address + " success. You can use 'getBalance' to check"); } else { @@ -791,7 +786,7 @@ public void subBalance(String[] params) throws Exception { logger.info("subBalance: {}, retCode {}", address, retCode); // parse the result - if (retCode.getMessage() == "") { + if (retCode == PrecompiledRetCode.CODE_SUCCESS) { System.out.println( "sub balance " + address + " success. You can use 'getBalance' to check"); } else { @@ -806,21 +801,25 @@ public void registerCaller(String[] params) throws Exception { String currentAccount = client.getCryptoSuite().getCryptoKeyPair().getAddress(); System.out.println("currentAccount: " + currentAccount); List governorList = authManager.getCommitteeInfo().getGovernorList(); + boolean isGovernor = false; for (GovernorInfo governorInfo : governorList) { - if (!governorInfo.getGovernorAddress().equals(currentAccount)) { - System.out.println("Only governor can register caller"); - return; + if (governorInfo.getGovernorAddress().equals(currentAccount)) { + isGovernor = true; + break; } } + if (!isGovernor) { + System.out.println("Only governor can register caller"); + return; + } RetCode retCode = this.balanceService.registerCaller(address); logger.info("registerCaller: {}, retCode {}", address, retCode); // parse the result - if (retCode.getCode() == PrecompiledRetCode.CODE_SUCCESS.getCode()) { + if (retCode == PrecompiledRetCode.CODE_SUCCESS) { System.out.println("register caller " + address + " success."); } else { - System.out.println("register caller " + address + " failed "); - ConsoleUtils.printJson(retCode.toString()); + System.out.println("register caller " + address + " failed. "); } } @@ -829,21 +828,25 @@ public void unregisterCaller(String[] params) throws Exception { String address = params[1]; String currentAccount = client.getCryptoSuite().getCryptoKeyPair().getAddress(); List governorList = authManager.getCommitteeInfo().getGovernorList(); + boolean isGovernor = false; for (GovernorInfo governorInfo : governorList) { - if (!governorInfo.getGovernorAddress().equals(currentAccount)) { - System.out.println("Only governor can register caller"); - return; + if (governorInfo.getGovernorAddress().equals(currentAccount)) { + isGovernor = true; + break; } } + if (!isGovernor) { + System.out.println("Only governor can register caller"); + return; + } RetCode retCode = this.balanceService.unregisterCaller(address); logger.info("unregisterCaller: {}, retCode {}", address, retCode); // parse the result - if (retCode.getCode() == PrecompiledRetCode.CODE_SUCCESS.getCode()) { + if (retCode == PrecompiledRetCode.CODE_SUCCESS) { System.out.println("unregister caller " + address + " success."); } else { - System.out.println("unregister caller " + address + " failed "); - ConsoleUtils.printJson(retCode.toString()); + System.out.println("unregister caller " + address + " failed. "); } } From 2df9ffe621eb22894029b7cb625f916a171ca88d Mon Sep 17 00:00:00 2001 From: wenlinli <1574249665@qq.com> Date: Mon, 18 Dec 2023 14:45:28 +0800 Subject: [PATCH 3/8] javaFormat code --- src/main/java/console/command/category/BalanceOpCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/console/command/category/BalanceOpCommand.java b/src/main/java/console/command/category/BalanceOpCommand.java index 039cec48..e6a0e599 100644 --- a/src/main/java/console/command/category/BalanceOpCommand.java +++ b/src/main/java/console/command/category/BalanceOpCommand.java @@ -97,7 +97,7 @@ public List getAllCommand(boolean isWasm, boolean isAuthOpen) { key -> !(isWasm && !commandToCommandInfo.get(key).isWasmSupport() || (!isAuthOpen - && commandToCommandInfo.get(key).isNeedAuthOpen()))) + && commandToCommandInfo.get(key).isNeedAuthOpen()))) .collect(Collectors.toList()); } From 4e37c6c8bde803d9d4213ea48fe6d54adf9f41ee Mon Sep 17 00:00:00 2001 From: wenlinli <1574249665@qq.com> Date: Mon, 18 Dec 2023 15:07:24 +0800 Subject: [PATCH 4/8] remove registerCaller address check --- .../console/command/SupportedCommand.java | 13 ++++++++- .../java/console/command/model/HelpInfo.java | 10 ++----- .../console/precompiled/PrecompiledImpl.java | 28 ------------------- 3 files changed, 14 insertions(+), 37 deletions(-) diff --git a/src/main/java/console/command/SupportedCommand.java b/src/main/java/console/command/SupportedCommand.java index d11fa495..41ccc913 100644 --- a/src/main/java/console/command/SupportedCommand.java +++ b/src/main/java/console/command/SupportedCommand.java @@ -13,10 +13,21 @@ */ package console.command; -import console.command.category.*; +import console.command.category.AccountOpCommand; +import console.command.category.AuthOpCommand; +import console.command.category.BalanceOpCommand; +import console.command.category.BasicCommand; +import console.command.category.BfsCommand; +import console.command.category.ConsensusOpCommand; +import console.command.category.ContractOpCommand; +import console.command.category.CrudCommand; +import console.command.category.GroupCommand; +import console.command.category.ShardingCommand; +import console.command.category.StatusQueryCommand; import console.command.model.BasicCategoryCommand; import console.command.model.CommandInfo; import console.common.ConsoleUtils; + import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/console/command/model/HelpInfo.java b/src/main/java/console/command/model/HelpInfo.java index cce8b620..01a1e61c 100644 --- a/src/main/java/console/command/model/HelpInfo.java +++ b/src/main/java/console/command/model/HelpInfo.java @@ -478,10 +478,7 @@ public static void addBalanceHelp() { System.out.println("Usage: \naddBalance accountAddress amount [unit]"); System.out.println("* accountAddress -- The address of the account."); System.out.println("* amount -- The amount of token to add."); - System.out.println( - "* unit -- (optional) The unit of amount, default is wei, support \"wei\", \"kwei\", \"mwei\", \"gwei\", \"szabo\", \"finney\", \"ether\", \"kether\", \"mether\", \"gether\"."); - System.out.println( - "[Note]: 1 ether = 10^18 wei = 10^15 kwei = 10^12 mwei = 10^9 gwei = 10^6 szabo = 10^3 finney"); + System.out.println("* unit -- (optional) The unit of amount, default is wei."); } public static void subBalanceHelp() { @@ -489,10 +486,7 @@ public static void subBalanceHelp() { System.out.println("Usage: \nsubBalance accountAddress amount [unit]"); System.out.println("* accountAddress -- The address of the account."); System.out.println("* amount -- The amount of token to sub."); - System.out.println( - "* unit -- (optional) The unit of amount, default is wei, support \"wei\", \"kwei\", \"mwei\", \"gwei\", \"szabo\", \"finney\", \"ether\", \"kether\", \"mether\", \"gether\"."); - System.out.println( - "[Note]: 1 ether = 10^18 wei = 10^15 kwei = 10^12 mwei = 10^9 gwei = 10^6 szabo = 10^3 finney"); + System.out.println("* unit -- (optional) The unit of amount, default is wei."); } public static void registerCallerHelp() { diff --git a/src/main/java/console/precompiled/PrecompiledImpl.java b/src/main/java/console/precompiled/PrecompiledImpl.java index cf966f1c..1abcb521 100644 --- a/src/main/java/console/precompiled/PrecompiledImpl.java +++ b/src/main/java/console/precompiled/PrecompiledImpl.java @@ -24,7 +24,6 @@ import org.fisco.bcos.sdk.v3.client.protocol.response.Abi; import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple2; import org.fisco.bcos.sdk.v3.contract.auth.manager.AuthManager; -import org.fisco.bcos.sdk.v3.contract.auth.po.GovernorInfo; import org.fisco.bcos.sdk.v3.contract.precompiled.balance.BalanceService; import org.fisco.bcos.sdk.v3.contract.precompiled.bfs.BFSInfo; import org.fisco.bcos.sdk.v3.contract.precompiled.bfs.BFSPrecompiled.BfsInfo; @@ -798,20 +797,6 @@ public void subBalance(String[] params) throws Exception { @Override public void registerCaller(String[] params) throws Exception { String address = params[1]; - String currentAccount = client.getCryptoSuite().getCryptoKeyPair().getAddress(); - System.out.println("currentAccount: " + currentAccount); - List governorList = authManager.getCommitteeInfo().getGovernorList(); - boolean isGovernor = false; - for (GovernorInfo governorInfo : governorList) { - if (governorInfo.getGovernorAddress().equals(currentAccount)) { - isGovernor = true; - break; - } - } - if (!isGovernor) { - System.out.println("Only governor can register caller"); - return; - } RetCode retCode = this.balanceService.registerCaller(address); logger.info("registerCaller: {}, retCode {}", address, retCode); @@ -826,19 +811,6 @@ public void registerCaller(String[] params) throws Exception { @Override public void unregisterCaller(String[] params) throws Exception { String address = params[1]; - String currentAccount = client.getCryptoSuite().getCryptoKeyPair().getAddress(); - List governorList = authManager.getCommitteeInfo().getGovernorList(); - boolean isGovernor = false; - for (GovernorInfo governorInfo : governorList) { - if (governorInfo.getGovernorAddress().equals(currentAccount)) { - isGovernor = true; - break; - } - } - if (!isGovernor) { - System.out.println("Only governor can register caller"); - return; - } RetCode retCode = this.balanceService.unregisterCaller(address); logger.info("unregisterCaller: {}, retCode {}", address, retCode); From 0161557824042455aa114190ff7903530d36d17f Mon Sep 17 00:00:00 2001 From: wenlinli <1574249665@qq.com> Date: Mon, 18 Dec 2023 15:14:28 +0800 Subject: [PATCH 5/8] change registerCaller interface name --- src/main/java/console/command/category/BalanceOpCommand.java | 4 ++-- src/main/java/console/precompiled/PrecompiledFace.java | 4 ++-- src/main/java/console/precompiled/PrecompiledImpl.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/console/command/category/BalanceOpCommand.java b/src/main/java/console/command/category/BalanceOpCommand.java index e6a0e599..0986b0e0 100644 --- a/src/main/java/console/command/category/BalanceOpCommand.java +++ b/src/main/java/console/command/category/BalanceOpCommand.java @@ -44,7 +44,7 @@ public class BalanceOpCommand extends BasicCategoryCommand { "Register caller to the account", HelpInfo::registerCallerHelp, (consoleInitializer, params, pwd) -> - consoleInitializer.getPrecompiledFace().registerCaller(params), + consoleInitializer.getPrecompiledFace().registerBalancePrecompiledCaller(params), 1, 1); public static final CommandInfo UNREGISTER_CALLER = @@ -53,7 +53,7 @@ public class BalanceOpCommand extends BasicCategoryCommand { "Unregister caller from the account", HelpInfo::unregisterCallerHelp, (consoleInitializer, params, pwd) -> - consoleInitializer.getPrecompiledFace().unregisterCaller(params), + consoleInitializer.getPrecompiledFace().unregisterBalancePrecompiledCaller(params), 1, 1); protected static final Map commandToCommandInfo = new HashMap<>(); diff --git a/src/main/java/console/precompiled/PrecompiledFace.java b/src/main/java/console/precompiled/PrecompiledFace.java index ef3125e4..f433373b 100644 --- a/src/main/java/console/precompiled/PrecompiledFace.java +++ b/src/main/java/console/precompiled/PrecompiledFace.java @@ -53,9 +53,9 @@ void setSystemConfigByKey(ConsoleInitializer consoleInitializer, String[] params void subBalance(String[] params) throws Exception; - void registerCaller(String[] params) throws Exception; + void registerBalancePrecompiledCaller(String[] params) throws Exception; - void unregisterCaller(String[] params) throws Exception; + void unregisterBalancePrecompiledCaller(String[] params) throws Exception; String getPwd(); } diff --git a/src/main/java/console/precompiled/PrecompiledImpl.java b/src/main/java/console/precompiled/PrecompiledImpl.java index 1abcb521..87134579 100644 --- a/src/main/java/console/precompiled/PrecompiledImpl.java +++ b/src/main/java/console/precompiled/PrecompiledImpl.java @@ -795,7 +795,7 @@ public void subBalance(String[] params) throws Exception { } @Override - public void registerCaller(String[] params) throws Exception { + public void registerBalancePrecompiledCaller(String[] params) throws Exception { String address = params[1]; RetCode retCode = this.balanceService.registerCaller(address); @@ -809,7 +809,7 @@ public void registerCaller(String[] params) throws Exception { } @Override - public void unregisterCaller(String[] params) throws Exception { + public void unregisterBalancePrecompiledCaller(String[] params) throws Exception { String address = params[1]; RetCode retCode = this.balanceService.unregisterCaller(address); From edf5e785912771493f83c46261cae022c2824b53 Mon Sep 17 00:00:00 2001 From: wenlinli <1574249665@qq.com> Date: Mon, 18 Dec 2023 15:37:46 +0800 Subject: [PATCH 6/8] code format --- src/main/java/console/command/SupportedCommand.java | 1 - .../java/console/command/category/BalanceOpCommand.java | 8 ++++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/console/command/SupportedCommand.java b/src/main/java/console/command/SupportedCommand.java index 41ccc913..89deba85 100644 --- a/src/main/java/console/command/SupportedCommand.java +++ b/src/main/java/console/command/SupportedCommand.java @@ -27,7 +27,6 @@ import console.command.model.BasicCategoryCommand; import console.command.model.CommandInfo; import console.common.ConsoleUtils; - import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/console/command/category/BalanceOpCommand.java b/src/main/java/console/command/category/BalanceOpCommand.java index 0986b0e0..8bb579aa 100644 --- a/src/main/java/console/command/category/BalanceOpCommand.java +++ b/src/main/java/console/command/category/BalanceOpCommand.java @@ -44,7 +44,9 @@ public class BalanceOpCommand extends BasicCategoryCommand { "Register caller to the account", HelpInfo::registerCallerHelp, (consoleInitializer, params, pwd) -> - consoleInitializer.getPrecompiledFace().registerBalancePrecompiledCaller(params), + consoleInitializer + .getPrecompiledFace() + .registerBalancePrecompiledCaller(params), 1, 1); public static final CommandInfo UNREGISTER_CALLER = @@ -53,7 +55,9 @@ public class BalanceOpCommand extends BasicCategoryCommand { "Unregister caller from the account", HelpInfo::unregisterCallerHelp, (consoleInitializer, params, pwd) -> - consoleInitializer.getPrecompiledFace().unregisterBalancePrecompiledCaller(params), + consoleInitializer + .getPrecompiledFace() + .unregisterBalancePrecompiledCaller(params), 1, 1); protected static final Map commandToCommandInfo = new HashMap<>(); From c1d2462fdf87c97a121f32fb30cac7c29d7294fc Mon Sep 17 00:00:00 2001 From: wenlinli <1574249665@qq.com> Date: Mon, 18 Dec 2023 16:00:22 +0800 Subject: [PATCH 7/8] update --- .../console/command/category/BalanceOpCommand.java | 9 ++++++--- src/main/java/console/command/model/HelpInfo.java | 10 ++++------ src/main/java/console/precompiled/PrecompiledImpl.java | 1 - 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/console/command/category/BalanceOpCommand.java b/src/main/java/console/command/category/BalanceOpCommand.java index 8bb579aa..94e7bcf2 100644 --- a/src/main/java/console/command/category/BalanceOpCommand.java +++ b/src/main/java/console/command/category/BalanceOpCommand.java @@ -42,7 +42,7 @@ public class BalanceOpCommand extends BasicCategoryCommand { new CommandInfo( "registerCaller", "Register caller to the account", - HelpInfo::registerCallerHelp, + HelpInfo::registerBalancePrecompiledCallerHelp, (consoleInitializer, params, pwd) -> consoleInitializer .getPrecompiledFace() @@ -53,7 +53,7 @@ public class BalanceOpCommand extends BasicCategoryCommand { new CommandInfo( "unregisterCaller", "Unregister caller from the account", - HelpInfo::unregisterCallerHelp, + HelpInfo::unregisterBalancePrecompiledCallerHelp, (consoleInitializer, params, pwd) -> consoleInitializer .getPrecompiledFace() @@ -86,6 +86,7 @@ public BalanceOpCommand() { super(CommandType.BALANCE_PRECOMPILED_OP); } + @Override public CommandInfo getCommandInfo(String command) { if (commandToCommandInfo.containsKey(command)) { return commandToCommandInfo.get(command); @@ -93,6 +94,7 @@ public CommandInfo getCommandInfo(String command) { return null; } + @Override public List getAllCommand(boolean isWasm, boolean isAuthOpen) { return commandToCommandInfo .keySet() @@ -101,10 +103,11 @@ public List getAllCommand(boolean isWasm, boolean isAuthOpen) { key -> !(isWasm && !commandToCommandInfo.get(key).isWasmSupport() || (!isAuthOpen - && commandToCommandInfo.get(key).isNeedAuthOpen()))) + && commandToCommandInfo.get(key).isNeedAuthOpen()))) .collect(Collectors.toList()); } + @Override public Map getAllCommandInfo(boolean isWasm) { return commandToCommandInfo; } diff --git a/src/main/java/console/command/model/HelpInfo.java b/src/main/java/console/command/model/HelpInfo.java index 01a1e61c..9b8adde0 100644 --- a/src/main/java/console/command/model/HelpInfo.java +++ b/src/main/java/console/command/model/HelpInfo.java @@ -475,21 +475,19 @@ public static void getBalanceHelp() { public static void addBalanceHelp() { System.out.println("Add balance to the specified account"); - System.out.println("Usage: \naddBalance accountAddress amount [unit]"); + System.out.println("Usage: \naddBalance accountAddress amount"); System.out.println("* accountAddress -- The address of the account."); System.out.println("* amount -- The amount of token to add."); - System.out.println("* unit -- (optional) The unit of amount, default is wei."); } public static void subBalanceHelp() { System.out.println("Sub balance from the specified account"); - System.out.println("Usage: \nsubBalance accountAddress amount [unit]"); + System.out.println("Usage: \nsubBalance accountAddress amount"); System.out.println("* accountAddress -- The address of the account."); System.out.println("* amount -- The amount of token to sub."); - System.out.println("* unit -- (optional) The unit of amount, default is wei."); } - public static void registerCallerHelp() { + public static void registerBalancePrecompiledCallerHelp() { System.out.println("Register caller to the specified account"); System.out.println("Usage: \nregisterCaller accountAddress"); System.out.println("* accountAddress -- The address of the account."); @@ -497,7 +495,7 @@ public static void registerCallerHelp() { System.out.println("[Note]: The request initiator account must be governor."); } - public static void unregisterCallerHelp() { + public static void unregisterBalancePrecompiledCallerHelp() { System.out.println("Unregister caller from the specified account"); System.out.println("Usage: \nunregisterCaller accountAddress"); System.out.println("* accountAddress -- The address of the account."); diff --git a/src/main/java/console/precompiled/PrecompiledImpl.java b/src/main/java/console/precompiled/PrecompiledImpl.java index 87134579..c4915bf7 100644 --- a/src/main/java/console/precompiled/PrecompiledImpl.java +++ b/src/main/java/console/precompiled/PrecompiledImpl.java @@ -64,7 +64,6 @@ public class PrecompiledImpl implements PrecompiledFace { public PrecompiledImpl(Client client) { this.client = client; - this.authManager = new AuthManager(client, client.getCryptoSuite().getCryptoKeyPair()); CryptoKeyPair cryptoKeyPair = client.getCryptoSuite().getCryptoKeyPair(); this.consensusService = new ConsensusService(client, cryptoKeyPair); this.systemConfigService = new SystemConfigService(client, cryptoKeyPair); From 33bd963a8f2dd28f1d26268d3930618c92132e2a Mon Sep 17 00:00:00 2001 From: wenlinli <1574249665@qq.com> Date: Mon, 18 Dec 2023 16:10:55 +0800 Subject: [PATCH 8/8] format file --- src/main/java/console/command/category/BalanceOpCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/console/command/category/BalanceOpCommand.java b/src/main/java/console/command/category/BalanceOpCommand.java index 94e7bcf2..9506785a 100644 --- a/src/main/java/console/command/category/BalanceOpCommand.java +++ b/src/main/java/console/command/category/BalanceOpCommand.java @@ -103,7 +103,7 @@ public List getAllCommand(boolean isWasm, boolean isAuthOpen) { key -> !(isWasm && !commandToCommandInfo.get(key).isWasmSupport() || (!isAuthOpen - && commandToCommandInfo.get(key).isNeedAuthOpen()))) + && commandToCommandInfo.get(key).isNeedAuthOpen()))) .collect(Collectors.toList()); }