verifiedSealerIndexes = new HashSet<>();
for (int i = 0; i < signatureListArray.size(); i++) {
JSONObject signatureInfo = signatureListArray.getJSONObject(i);
@@ -211,13 +223,18 @@ private int verifySignatures(JSONArray signatureListArray, JSONArray sealerListA
continue;
}
+ if (!verifiedSealerIndexes.add(sealerIndex)) {
+ getHCDVSLogger().warn("忽略共识节点 {} 的重复签名", sealerIndex);
+ continue;
+ }
+
String nodeId = sealerListArray.getString(sealerIndex);
String publicKeyHex = StrUtil.removePrefix(nodeId, "0x");
try {
byte[] signatureBytes = HexUtil.decodeHex(
StrUtil.removePrefix(signatureInfo.getString("signature"), "0x"));
- if (cryptoSuite.verify(publicKeyHex, hashBytes, signatureBytes)) {
+ if (verifySecp256k1Signature(publicKeyHex, hashBytes, signatureBytes)) {
validSignatureCount++;
getHCDVSLogger().debug("节点 {} 的签名验证成功", nodeId);
} else {
@@ -231,6 +248,47 @@ private int verifySignatures(JSONArray signatureListArray, JSONArray sealerListA
return validSignatureCount;
}
+ /**
+ * Verifies the FISCO BCOS ECDSA signature without constructing {@code CryptoSuite}.
+ *
+ * The SDK's {@code CryptoSuite} eagerly loads the WeDPR native library even though
+ * HCDVS only needs standard secp256k1 verification. Committee nodes load HCDVS in an
+ * isolated PF4J class loader, where that native resource is deliberately unavailable.
+ * Bouncy Castle keeps this verification deterministic, portable and independent of
+ * the blockchain SDK runtime.
+ */
+ private boolean verifySecp256k1Signature(String publicKeyHex, byte[] hashBytes, byte[] signatureBytes) {
+ if (hashBytes.length != 32 || (signatureBytes.length != 64 && signatureBytes.length != 65)) {
+ return false;
+ }
+
+ byte[] publicKeyBytes = HexUtil.decodeHex(StrUtil.removePrefix(publicKeyHex, "0x"));
+ if (publicKeyBytes.length == 64) {
+ byte[] uncompressedPublicKey = new byte[65];
+ uncompressedPublicKey[0] = 0x04;
+ System.arraycopy(publicKeyBytes, 0, uncompressedPublicKey, 1, publicKeyBytes.length);
+ publicKeyBytes = uncompressedPublicKey;
+ }
+
+ if (publicKeyBytes.length != 33 && publicKeyBytes.length != 65) {
+ return false;
+ }
+
+ BigInteger r = new BigInteger(1, Arrays.copyOfRange(signatureBytes, 0, 32));
+ BigInteger s = new BigInteger(1, Arrays.copyOfRange(signatureBytes, 32, 64));
+ if (r.signum() <= 0 || s.signum() <= 0 || r.compareTo(SECP256K1_DOMAIN.getN()) >= 0
+ || s.compareTo(SECP256K1_DOMAIN.getN()) >= 0) {
+ return false;
+ }
+
+ ECDSASigner verifier = new ECDSASigner();
+ verifier.init(false, new ECPublicKeyParameters(
+ SECP256K1_PARAMS.getCurve().decodePoint(publicKeyBytes),
+ SECP256K1_DOMAIN
+ ));
+ return verifier.verifySignature(hashBytes, r, s);
+ }
+
/**
* 检查AM合约地址是否匹配
*
@@ -492,4 +550,4 @@ public JSONObject getLogEntry() {
return logEntry;
}
}
-}
\ No newline at end of file
+}
diff --git a/acb-sdk/pluginset/fiscobcos/offchain-plugin/src/main/java/com/alipay/antchain/bridge/plugins/fiscobcos/abi/AppContract.java b/acb-sdk/pluginset/fiscobcos/offchain-plugin/src/main/java/com/alipay/antchain/bridge/plugins/fiscobcos/abi/AppContract.java
index d39cc11b..a067a2c0 100644
--- a/acb-sdk/pluginset/fiscobcos/offchain-plugin/src/main/java/com/alipay/antchain/bridge/plugins/fiscobcos/abi/AppContract.java
+++ b/acb-sdk/pluginset/fiscobcos/offchain-plugin/src/main/java/com/alipay/antchain/bridge/plugins/fiscobcos/abi/AppContract.java
@@ -15,8 +15,10 @@
import org.fisco.bcos.sdk.v3.codec.datatypes.TypeReference;
import org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32;
+import org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint256;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64;
+import org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint8;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple1;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple3;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple4;
@@ -29,19 +31,20 @@
import org.fisco.bcos.sdk.v3.model.CryptoType;
import org.fisco.bcos.sdk.v3.model.TransactionReceipt;
import org.fisco.bcos.sdk.v3.model.callback.TransactionCallback;
+import org.fisco.bcos.sdk.v3.transaction.manager.transactionv1.ProxySignTransactionManager;
import org.fisco.bcos.sdk.v3.transaction.model.exception.ContractException;
@SuppressWarnings("unchecked")
public class AppContract extends Contract {
- public static final String[] BINARY_ARRAY = {"608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6111a78061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063a1c5324d116100c3578063e5512e971161007c578063e5512e9714610285578063eff2a07614610298578063f2fde38b146102ab578063f6d750e4146102be578063f76f703b146102d1578063ff098be7146102e457600080fd5b8063a1c5324d1461023d578063a25ae14a14610246578063aec2fc141461024e578063c09b261b14610256578063c1cecc5a14610269578063d7686d5c1461027c57600080fd5b8063715018a611610115578063715018a6146101ed5780637260ca9c146101f557806381c3f533146101fe57806389c9b1d9146102115780638da5cb5b146102195780639670efcb1461022a57600080fd5b80630a9d793d1461015d57806335cd96e014610172578063387868ae146101905780633fecfe3f146101bb57806358e28153146101ce5780635ee20956146101d6575b600080fd5b61017061016b366004610b9f565b6102f7565b005b61017a61034c565b6040516101879190610c1c565b60405180910390f35b6003546101a3906001600160a01b031681565b6040516001600160a01b039091168152602001610187565b61017a6101c9366004610c2f565b6103de565b61017a610497565b6101df60075481565b604051908152602001610187565b6101706104a4565b6101df60055481565b61017061020c366004610cf4565b6104da565b61017a61055f565b6000546001600160a01b03166101a3565b61017a610238366004610c2f565b61056e565b6101df60045481565b61017a61058a565b61017a610597565b610170610264366004610d7b565b6105a4565b610170610277366004610d7b565b61067c565b6101df60065481565b610170610293366004610e19565b61074a565b6101706102a6366004610cf4565b610798565b6101706102b9366004610b9f565b61081d565b6101706102cc366004610eb0565b6108b8565b6101706102df366004610d7b565b61091d565b6101706102f2366004610d7b565b6109eb565b6000546001600160a01b0316331461032a5760405162461bcd60e51b815260040161032190610f6d565b60405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60606009805461035b90610fa2565b80601f016020809104026020016040519081016040528092919081815260200182805461038790610fa2565b80156103d45780601f106103a9576101008083540402835291602001916103d4565b820191906000526020600020905b8154815290600101906020018083116103b757829003601f168201915b5050505050905090565b600260205281600052604060002081815481106103fa57600080fd5b9060005260206000200160009150915050805461041690610fa2565b80601f016020809104026020016040519081016040528092919081815260200182805461044290610fa2565b801561048f5780601f106104645761010080835404028352916020019161048f565b820191906000526020600020905b81548152906001019060200180831161047257829003601f168201915b505050505081565b6008805461041690610fa2565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161032190610f6d565b6104d86000610ab6565b565b6003546040516391198fcd60e01b81526001600160a01b039091169081906391198fcd90610512908790899088908890600401610fdd565b6020604051808303816000875af1158015610531573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610555919061101b565b6004555050505050565b6060600a805461035b90610fa2565b600160205281600052604060002081815481106103fa57600080fd5b600a805461041690610fa2565b6009805461041690610fa2565b6003546001600160a01b031633146105f35760405162461bcd60e51b815260206004820152601260248201527124a72b20a624a22fa822a926a4a9a9a4a7a760711b6044820152606401610321565b6000828152600160208181526040832080549283018155835291829020835161062493919092019190840190610b06565b508051610638906009906020840190610b06565b507f7b59e766dd02d6ce4e574f0ab75dfc4b180c90deb50dd9dbdbc65768abcf80f1838383600160405161066f9493929190611034565b60405180910390a1505050565b6003546040516360e7662d60e11b81526001600160a01b039091169063c1cecc5a906106b090869086908690600401611073565b600060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b505050600083815260026020908152604082208054600181018255908352918190208451610713945092019190840190610b06565b507fbbe83d8459c305cf51f2425b93e693dcfaaf60f22766486b0983c905b98ead40838383600060405161066f9493929190611034565b7fa8bb25943cddb58193ff50af54633a11fcff3e922840a1c4f2964f2fff27a025868686868686604051610783969594939291906110a8565b60405180910390a15050506006929092555050565b6003546040516302e546d360e11b81526001600160a01b039091169081906305ca8da6906107d0908790899088908890600401610fdd565b6020604051808303816000875af11580156107ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610813919061101b565b6005555050505050565b6000546001600160a01b031633146108475760405162461bcd60e51b815260040161032190610f6d565b6001600160a01b0381166108ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610321565b6108b581610ab6565b50565b7f67644860f47ea033ed40e06c5d59a6fc642d999c52b2fd29a57d476db4989d81878787878787876040516108f39796959493929190611102565b60405180910390a160078790558051610913906008906020840190610b06565b5050505050505050565b60035460405163f76f703b60e01b81526001600160a01b039091169063f76f703b9061095190869086908690600401611073565b600060405180830381600087803b15801561096b57600080fd5b505af115801561097f573d6000803e3d6000fd5b5050506000838152600260209081526040822080546001810182559083529181902084516109b4945092019190840190610b06565b507fbbe83d8459c305cf51f2425b93e693dcfaaf60f22766486b0983c905b98ead40838383600160405161066f9493929190611034565b6003546001600160a01b03163314610a3a5760405162461bcd60e51b815260206004820152601260248201527124a72b20a624a22fa822a926a4a9a9a4a7a760711b6044820152606401610321565b60008281526001602081815260408320805492830181558352918290208351610a6b93919092019190840190610b06565b508051610a7f90600a906020840190610b06565b507f7b59e766dd02d6ce4e574f0ab75dfc4b180c90deb50dd9dbdbc65768abcf80f1838383600060405161066f9493929190611034565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054610b1290610fa2565b90600052602060002090601f016020900481019282610b345760008555610b7a565b82601f10610b4d57805160ff1916838001178555610b7a565b82800160010185558215610b7a579182015b82811115610b7a578251825591602001919060010190610b5f565b50610b86929150610b8a565b5090565b5b80821115610b865760008155600101610b8b565b600060208284031215610bb157600080fd5b81356001600160a01b0381168114610bc857600080fd5b9392505050565b6000815180845260005b81811015610bf557602081850181015186830182015201610bd9565b81811115610c07576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610bc86020830184610bcf565b60008060408385031215610c4257600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610c7857600080fd5b813567ffffffffffffffff80821115610c9357610c93610c51565b604051601f8301601f19908116603f01168101908282118183101715610cbb57610cbb610c51565b81604052838152866020858801011115610cd457600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060808587031215610d0a57600080fd5b84359350602085013567ffffffffffffffff80821115610d2957600080fd5b610d3588838901610c67565b9450604087013591508115158214610d4c57600080fd5b90925060608601359080821115610d6257600080fd5b50610d6f87828801610c67565b91505092959194509250565b600080600060608486031215610d9057600080fd5b833567ffffffffffffffff80821115610da857600080fd5b610db487838801610c67565b9450602086013593506040860135915080821115610dd157600080fd5b50610dde86828701610c67565b9150509250925092565b803563ffffffff81168114610dfc57600080fd5b919050565b803567ffffffffffffffff81168114610dfc57600080fd5b60008060008060008060c08789031215610e3257600080fd5b86359550602087013567ffffffffffffffff80821115610e5157600080fd5b610e5d8a838b01610c67565b965060408901359550610e7260608a01610de8565b9450610e8060808a01610e01565b935060a0890135915080821115610e9657600080fd5b50610ea389828a01610c67565b9150509295509295509295565b600080600080600080600060e0888a031215610ecb57600080fd5b87359650602088013567ffffffffffffffff80821115610eea57600080fd5b610ef68b838c01610c67565b975060408a01359650610f0b60608b01610de8565b9550610f1960808b01610e01565b945060a08a0135915080821115610f2f57600080fd5b610f3b8b838c01610c67565b935060c08a0135915080821115610f5157600080fd5b50610f5e8a828b01610c67565b91505092959891949750929550565b6020808252818101527f4f776e61626c653a2063","616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680610fb657607f821691505b60208210811415610fd757634e487b7160e01b600052602260045260246000fd5b50919050565b608081526000610ff06080830187610bcf565b856020840152841515604084015282810360608401526110108185610bcf565b979650505050505050565b60006020828403121561102d57600080fd5b5051919050565b6080815260006110476080830187610bcf565b856020840152828103604084015261105f8186610bcf565b915050821515606083015295945050505050565b6060815260006110866060830186610bcf565b846020840152828103604084015261109e8185610bcf565b9695505050505050565b86815260c0602082015260006110c160c0830188610bcf565b86604084015263ffffffff8616606084015267ffffffffffffffff8516608084015282810360a08401526110f58185610bcf565b9998505050505050505050565b87815260e06020820152600061111b60e0830189610bcf565b87604084015263ffffffff8716606084015267ffffffffffffffff8616608084015282810360a084015261114f8186610bcf565b905082810360c08401526111638185610bcf565b9a995050505050505050505056fea26469706673582212208efa56bf468df8098bb568198d902a3d13b350d9a685d7b7d5e261aaacccfed764736f6c634300080b0033"};
+ public static final String[] BINARY_ARRAY = {"608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6114a98061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063a25ae14a116100f9578063eff2a07611610097578063f6d750e411610071578063f6d750e414610363578063f76f703b14610376578063f80babb114610389578063ff098be71461039c57600080fd5b8063eff2a0761461032a578063f1f352a41461033d578063f2fde38b1461035057600080fd5b8063c1cecc5a116100d3578063c1cecc5a146102e8578063d7686d5c146102fb578063e5512e9714610304578063e55210921461031757600080fd5b8063a25ae14a146102c5578063aec2fc14146102cd578063c09b261b146102d557600080fd5b8063715018a61161016657806389c9b1d91161014057806389c9b1d9146102905780638da5cb5b146102985780639670efcb146102a9578063a1c5324d146102bc57600080fd5b8063715018a61461026c5780637260ca9c1461027457806381c3f5331461027d57600080fd5b80633fecfe3f116101a25780633fecfe3f146102275780635018f4921461023a57806358e281531461024d5780635ee209561461025557600080fd5b80630a9d793d146101c957806335cd96e0146101de578063387868ae146101fc575b600080fd5b6101dc6101d7366004610d65565b6103af565b005b6101e6610404565b6040516101f39190610de2565b60405180910390f35b60045461020f906001600160a01b031681565b6040516001600160a01b0390911681526020016101f3565b6101e6610235366004610df5565b610496565b6101dc610248366004610ecf565b61054f565b6101e66105d6565b61025e60085481565b6040519081526020016101f3565b6101dc6105e3565b61025e60065481565b6101dc61028b366004610f70565b610619565b6101e661069d565b6000546001600160a01b031661020f565b6101e66102b7366004610df5565b6106ac565b61025e60055481565b6101e66106c8565b6101e66106d5565b6101dc6102e3366004610fee565b6106e2565b6101dc6102f6366004610fee565b610795565b61025e60075481565b6101dc610312366004611087565b610863565b60035461020f906001600160a01b031681565b6101dc610338366004610f70565b6108b1565b6101dc61034b366004610ecf565b610935565b6101dc61035e366004610d65565b6109bc565b6101dc61037136600461111e565b610a57565b6101dc610384366004610fee565b610abc565b6101dc610397366004610d65565b610b8a565b6101dc6103aa366004610fee565b610bd6565b6000546001600160a01b031633146103e25760405162461bcd60e51b81526004016103d9906111db565b60405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6060600a805461041390611210565b80601f016020809104026020016040519081016040528092919081815260200182805461043f90611210565b801561048c5780601f106104615761010080835404028352916020019161048c565b820191906000526020600020905b81548152906001019060200180831161046f57829003601f168201915b5050505050905090565b600260205281600052604060002081815481106104b257600080fd5b906000526020600020016000915091505080546104ce90611210565b80601f01602080910402602001604051908101604052809291908181526020018280546104fa90611210565b80156105475780601f1061051c57610100808354040283529160200191610547565b820191906000526020600020905b81548152906001019060200180831161052a57829003601f168201915b505050505081565b60048054604051633b179eb760e11b81526001600160a01b039091169163762f3d6e916105889189918b918a918a918a918a910161124b565b6020604051808303816000875af11580156105a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cb9190611297565b600655505050505050565b600980546104ce90611210565b6000546001600160a01b0316331461060d5760405162461bcd60e51b81526004016103d9906111db565b6106176000610c7c565b565b600480546040516391198fcd60e01b81526001600160a01b039091169182916391198fcd916106509188918a9189918991016112b0565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106939190611297565b6005555050505050565b6060600b805461041390611210565b600160205281600052604060002081815481106104b257600080fd5b600b80546104ce90611210565b600a80546104ce90611210565b6003546001600160a01b0316331461070c5760405162461bcd60e51b81526004016103d9906112ee565b6000828152600160208181526040832080549283018155835291829020835161073d93919092019190840190610ccc565b50805161075190600a906020840190610ccc565b507f7b59e766dd02d6ce4e574f0ab75dfc4b180c90deb50dd9dbdbc65768abcf80f183838360016040516107889493929190611336565b60405180910390a1505050565b600354604051635debd27960e01b81526001600160a01b0390911690635debd279906107c990869086908690600401611375565b600060405180830381600087803b1580156107e357600080fd5b505af11580156107f7573d6000803e3d6000fd5b50505060008381526002602090815260408220805460018101825590835291819020845161082c945092019190840190610ccc565b507fbbe83d8459c305cf51f2425b93e693dcfaaf60f22766486b0983c905b98ead4083838360006040516107889493929190611336565b7fa8bb25943cddb58193ff50af54633a11fcff3e922840a1c4f2964f2fff27a02586868686868660405161089c969594939291906113aa565b60405180910390a15050506007929092555050565b600480546040516302e546d360e11b81526001600160a01b039091169182916305ca8da6916108e89188918a9189918991016112b0565b6020604051808303816000875af1158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b9190611297565b6006555050505050565b600480546040516337084d7f60e11b81526001600160a01b0390911691636e109afe9161096e9189918b918a918a918a918a910161124b565b6020604051808303816000875af115801561098d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b19190611297565b600555505050505050565b6000546001600160a01b031633146109e65760405162461bcd60e51b81526004016103d9906111db565b6001600160a01b038116610a4b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103d9565b610a5481610c7c565b50565b7f67644860f47ea033ed40e06c5d59a6fc642d999c52b2fd29a57d476db4989d8187878787878787604051610a929796959493929190611404565b60405180910390a160088790558051610ab2906009906020840190610ccc565b5050505050505050565b60035460405163630853bb60e11b81526001600160a01b039091169063c610a77690610af090869086908690600401611375565b600060405180830381600087803b158015610b0a57600080fd5b505af1158015610b1e573d6000803e3d6000fd5b505050600083815260026020908152604082208054600181018255908352918190208451610b53945092019190840190610ccc565b507fbbe83d8459c305cf51f2425b93e693dcfaaf60f22766486b0983c905b98ead4083838360016040516107889493929190611336565b6000546001600160a01b03163314610bb45760405162461bcd60e51b81526004016103d9906111db565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314610c005760405162461bcd60e51b81526004016103d9906112ee565b60008281526001602081815260408320805492830181558352918290208351610c3193919092019190840190610ccc565b508051610c4590600b906020840190610ccc565b507f7b59e766dd02d6ce4e574f0ab75dfc4b180c90deb50dd9dbdbc65768abcf80f183838360006040516107889493929190611336565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054610cd890611210565b90600052602060002090601f016020900481019282610cfa5760008555610d40565b82601f10610d1357805160ff1916838001178555610d40565b82800160010185558215610d40579182015b82811115610d40578251825591602001919060010190610d25565b50610d4c929150610d50565b5090565b5b80821115610d4c5760008155600101610d51565b600060208284031215610d7757600080fd5b81356001600160a01b0381168114610d8e57600080fd5b9392505050565b6000815180845260005b81811015610dbb57602081850181015186830182015201610d9f565b81811115610dcd576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610d8e6020830184610d95565b60008060408385031215610e0857600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610e3e57600080fd5b813567ffffffffffffffff80821115610e5957610e59610e17565b604051601f8301601f19908116603f01168101908282118183101715610e8157610e81610e17565b81604052838152866020858801011115610e9a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80358015158114610eca57600080fd5b919050565b60008060008060008060c08789031215610ee857600080fd5b86359550602087013567ffffffffffffffff80821115610f0757600080fd5b610f138a838b01610e2d565b9650610f2160408a01610eba565b95506060890135915080821115610f3757600080fd5b50610f4489828a01610e2d565b935050608087013560ff81168114610f5b57600080fd5b8092505060a087013590509295509295509295565b60008060008060808587031215610f8657","600080fd5b84359350602085013567ffffffffffffffff80821115610fa557600080fd5b610fb188838901610e2d565b9450610fbf60408801610eba565b93506060870135915080821115610fd557600080fd5b50610fe287828801610e2d565b91505092959194509250565b60008060006060848603121561100357600080fd5b833567ffffffffffffffff8082111561101b57600080fd5b61102787838801610e2d565b945060208601359350604086013591508082111561104457600080fd5b5061105186828701610e2d565b9150509250925092565b803563ffffffff81168114610eca57600080fd5b803567ffffffffffffffff81168114610eca57600080fd5b60008060008060008060c087890312156110a057600080fd5b86359550602087013567ffffffffffffffff808211156110bf57600080fd5b6110cb8a838b01610e2d565b9650604089013595506110e060608a0161105b565b94506110ee60808a0161106f565b935060a089013591508082111561110457600080fd5b5061111189828a01610e2d565b9150509295509295509295565b600080600080600080600060e0888a03121561113957600080fd5b87359650602088013567ffffffffffffffff8082111561115857600080fd5b6111648b838c01610e2d565b975060408a0135965061117960608b0161105b565b955061118760808b0161106f565b945060a08a013591508082111561119d57600080fd5b6111a98b838c01610e2d565b935060c08a01359150808211156111bf57600080fd5b506111cc8a828b01610e2d565b91505092959891949750929550565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061122457607f821691505b6020821081141561124557634e487b7160e01b600052602260045260246000fd5b50919050565b60c08152600061125e60c0830189610d95565b8760208401528615156040840152828103606084015261127e8187610d95565b60ff959095166080840152505060a00152949350505050565b6000602082840312156112a957600080fd5b5051919050565b6080815260006112c36080830187610d95565b856020840152841515604084015282810360608401526112e38185610d95565b979650505050505050565b60208082526028908201527f494e56414c49445f5045524d495353494f4e3a206f6e6c79206d6f6e69746f72604082015267206d65737361676560c01b606082015260800190565b6080815260006113496080830187610d95565b85602084015282810360408401526113618186610d95565b915050821515606083015295945050505050565b6060815260006113886060830186610d95565b84602084015282810360408401526113a08185610d95565b9695505050505050565b86815260c0602082015260006113c360c0830188610d95565b86604084015263ffffffff8616606084015267ffffffffffffffff8516608084015282810360a08401526113f78185610d95565b9998505050505050505050565b87815260e06020820152600061141d60e0830189610d95565b87604084015263ffffffff8716606084015267ffffffffffffffff8616608084015282810360a08401526114518186610d95565b905082810360c08401526114658185610d95565b9a995050505050505050505056fea2646970667358221220b4f7b1f8d58d0f8a9449f08eabfbd298bb0b19934aacbae7ae1e1db91e2c912f64736f6c634300080b0033"};
public static final String BINARY = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", BINARY_ARRAY);
- public static final String[] SM_BINARY_ARRAY = {"608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f5c7c30d4a0f08950cb23be4132957b357fa5dfdb0fcf218f81b86a1c036e47d09190a35050565b6111a98061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806390b28686116100c3578063d84ecd691161007c578063d84ecd691461028c578063d86e29e21461029f578063e2df53a9146102a7578063e5b813ad146102ba578063f985484a146102cd578063fbec4563146102e057600080fd5b806390b28686146102445780639c1b7bb214610257578063b31d332914610260578063bdb560a614610268578063d417dd1814610270578063d6175d1a1461028357600080fd5b80632d0da185116101155780632d0da185146101eb5780634ae89fd2146101f45780635089e2c8146101fc5780635b3040451461022157806365699d8d146102295780638a5851371461023c57600080fd5b80630204ebc21461015d578063084e7508146101725780630a3b07e81461019b57806316cad12a146101b25780632097809b146101c5578063281cf5e6146101d8575b600080fd5b61017061016b366004610c44565b6102f3565b005b610185610180366004610cb1565b6103ce565b6040516101929190610d20565b60405180910390f35b6101a460075481565b604051908152602001610192565b6101706101c0366004610d3a565b610487565b6101706101d3366004610d3a565b61052d565b6101706101e6366004610c44565b61057a565b6101a460065481565b610185610646565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610192565b610185610653565b610170610237366004610c44565b610660565b61018561072e565b610185610252366004610cb1565b6107c0565b6101a460045481565b6101856107dc565b6101856107e9565b61017061027e366004610d94565b6107f8565b6101a460055481565b600354610209906001600160a01b031681565b61017061085d565b6101706102b5366004610e51565b610894565b6101706102c8366004610c44565b610919565b6101706102db366004610e51565b6109e5565b6101706102ee366004610ed8565b610a6a565b60035460405163010275e160e11b81526001600160a01b0390911690630204ebc29061032790869086908690600401610f6f565b600060405180830381600087803b15801561034157600080fd5b505af1158015610355573d6000803e3d6000fd5b50505060008381526002602090815260408220805460018101825590835291819020845161038a945092019190840190610b08565b507f200ed2971aa003016354f781cf280ada45672de3dc8c36583854d0bfe8b33a6083838360006040516103c19493929190610fa4565b60405180910390a1505050565b600260205281600052604060002081815481106103ea57600080fd5b9060005260206000200160009150915050805461040690610fe3565b80601f016020809104026020016040519081016040528092919081815260200182805461043290610fe3565b801561047f5780601f106104545761010080835404028352916020019161047f565b820191906000526020600020905b81548152906001019060200180831161046257829003601f168201915b505050505081565b6000546001600160a01b031633146104bb57604051636381e58960e11b81526004016104b29061101e565b60405180910390fd5b6001600160a01b03811661052157604051636381e58960e11b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104b2565b61052a81610ab8565b50565b6000546001600160a01b0316331461055857604051636381e58960e11b81526004016104b29061101e565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146105ca57604051636381e58960e11b815260206004820152601260248201527124a72b20a624a22fa822a926a4a9a9a4a7a760711b60448201526064016104b2565b600082815260016020818152604083208054928301815583529182902083516105fb93919092019190840190610b08565b50805161060f906009906020840190610b08565b507f96dd7a715fb188abef0d5ab36bd03d64c6457c75f997607aa73f9c3d85700ba583838360016040516103c19493929190610fa4565b600a805461040690610fe3565b6008805461040690610fe3565b6003546040516365699d8d60e01b81526001600160a01b03909116906365699d8d9061069490869086908690600401610f6f565b600060405180830381600087803b1580156106ae57600080fd5b505af11580156106c2573d6000803e3d6000fd5b5050506000838152600260209081526040822080546001810182559083529181902084516106f7945092019190840190610b08565b507f200ed2971aa003016354f781cf280ada45672de3dc8c36583854d0bfe8b33a6083838360016040516103c19493929190610fa4565b6060600a805461073d90610fe3565b80601f016020809104026020016040519081016040528092919081815260200182805461076990610fe3565b80156107b65780601f1061078b576101008083540402835291602001916107b6565b820191906000526020600020905b81548152906001019060200180831161079957829003601f168201915b5050505050905090565b600160205281600052604060002081815481106103ea57600080fd5b6009805461040690610fe3565b60606009805461073d90610fe3565b7f7c428ded023c093a8e5b0442e2d50dac9ab81475f660a28b1cd1a028ffd0d991878787878787876040516108339796959493929190611053565b60405180910390a160078790558051610853906008906020840190610b08565b5050505050505050565b6000546001600160a01b0316331461088857604051636381e58960e11b81526004016104b29061101e565b6108926000610ab8565b565b60035460405163f7d579c760e01b81526001600160a01b0390911690819063f7d579c7906108cc9087908990889088906004016110c2565b6020604051808303816000875af11580156108eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090f9190611100565b6005555050505050565b6003546001600160a01b0316331461096957604051636381e58960e11b815260206004820152601260248201527124a72b20a624a22fa822a926a4a9a9a4a7a760711b60448201526064016104b2565b6000828152600160208181526040832080549283018155835291829020835161099a93919092019190840190610b08565b5080516109ae90600a906020840190610b08565b507f96dd7a715fb188abef0d5ab36bd03d64c6457c75f997607aa73f9c3d85700ba583838360006040516103c19493929190610fa4565b600354604051631839bef160e21b81526001600160a01b039091169081906360e6fbc490610a1d9087908990889088906004016110c2565b6020604051808303816000875af1158015610a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a609190611100565b6004555050505050565b7fa7647aaf8a6699c6874d335ef4930e14945244cf7d83698864123d18f37c0a72868686868686604051610aa396959493929190611119565b60405180910390a15050506006929092555050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f5c7c30d4a0f08950cb23be4132957b357fa5dfdb0fcf218f81b86a1c036e47d09190a35050565b828054610b1490610fe3565b90600052602060002090601f016020900481019282610b365760008555610b7c565b82601f10610b4f57805160ff1916838001178555610b7c565b82800160010185558215610b7c579182015b82811115610b7c578251825591602001919060010190610b61565b50610b88929150610b8c565b5090565b5b80821115610b885760008155600101610b8d565b63b95aa35560e01b600052604160045260246000fd5b600082601f830112610bc857600080fd5b813567ffffffffffffffff80821115610be357610be3610ba1565b604051601f8301601f19908116603f01168101908282118183101715610c0b57610c0b610ba1565b81604052838152866020858801011115610c2457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610c5957600080fd5b833567ffffffffffffffff80821115610c7157600080fd5b610c7d87838801610bb7565b9450602086013593506040860135915080821115610c9a57600080fd5b50610ca786828701610bb7565b9150509250925092565b60008060408385031215610cc457600080fd5b50508035926020909101359150565b6000815180845260005b81811015610cf957602081850181015186830182015201610cdd565b81811115610d0b576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610d336020830184610cd3565b9392505050565b600060208284031215610d4c57600080fd5b81356001600160a01b0381168114610d3357600080fd5b803563ffffffff81168114610d7757600080fd5b919050565b803567ffffffffffffffff81168114610d7757600080fd5b600080600080600080600060e0888a031215610daf57600080fd5b87359650602088013567ffffffffffffffff80821115610dce57600080fd5b610dda8b838c01610bb7565b975060408a01359650610def60608b01610d63565b9550610dfd60808b01610d7c565b945060a08a0135915080821115610e1357600080fd5b610e1f8b838c01610bb7565b935060c08a0135915080821115610e3557600080fd5b50610e428a828b01610bb7565b91505092959891949750929550565b60008060008060808587031215610e6757600080fd5b84359350602085013567ffffffffffffffff80821115610e8657600080fd5b610e9288838901610bb7565b9450604087013591508115158214610ea957600080fd5b90925060608601359080821115610ebf57600080fd5b50610ecc87828801610bb7565b91505092959194509250565b60008060008060008060c08789031215610ef157600080fd5b86359550602087013567ffffffffffffffff80821115610f1057600080fd5b610f1c8a838b01610bb7565b965060408901359550610f3160608a01610d63565b9450610f3f60808a01610d7c565b935060a0890135915080821115610f5557600080fd5b50610f6289828a01610bb7565b9150509295509295509295565b606081526000610f826060830186610cd356","5b8460208401528281036040840152610f9a8185610cd3565b9695505050505050565b608081526000610fb76080830187610cd3565b8560208401528281036040840152610fcf8186610cd3565b915050821515606083015295945050505050565b600181811c90821680610ff757607f821691505b602082108114156110185763b95aa35560e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b87815260e06020820152600061106c60e0830189610cd3565b87604084015263ffffffff8716606084015267ffffffffffffffff8616608084015282810360a08401526110a08186610cd3565b905082810360c08401526110b48185610cd3565b9a9950505050505050505050565b6080815260006110d56080830187610cd3565b856020840152841515604084015282810360608401526110f58185610cd3565b979650505050505050565b60006020828403121561111257600080fd5b5051919050565b86815260c06020820152600061113260c0830188610cd3565b86604084015263ffffffff8616606084015267ffffffffffffffff8516608084015282810360a08401526111668185610cd3565b999850505050505050505056fea2646970667358221220ec39d6f57340a1527abbd45581a9b60f1290135dd5ba89363de4c6a0345a821a64736f6c634300080b0033"};
+ public static final String[] SM_BINARY_ARRAY = {"608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f5c7c30d4a0f08950cb23be4132957b357fa5dfdb0fcf218f81b86a1c036e47d09190a35050565b6114ac8061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80639c1b7bb2116100f9578063d964ada511610097578063edf79eef11610071578063edf79eef1461035f578063f03dc28814610372578063f985484a14610385578063fbec45631461039857600080fd5b8063d964ada514610326578063e2df53a914610339578063e5b813ad1461034c57600080fd5b8063d417dd18116100d3578063d417dd18146102ef578063d6175d1a14610302578063d84ecd691461030b578063d86e29e21461031e57600080fd5b80639c1b7bb2146102d6578063b31d3329146102df578063bdb560a6146102e757600080fd5b806336f35354116101665780635b304045116101405780635b304045146102a057806365699d8d146102a85780638a585137146102bb57806390b28686146102c357600080fd5b806336f35354146102605780634ae89fd2146102735780635089e2c81461027b57600080fd5b806316cad12a116101a257806316cad12a1461021e5780632097809b14610231578063281cf5e6146102445780632d0da1851461025757600080fd5b80630204ebc2146101c9578063084e7508146101de5780630a3b07e814610207575b600080fd5b6101dc6101d7366004610e0b565b6103ab565b005b6101f16101ec366004610e78565b610486565b6040516101fe9190610ee7565b60405180910390f35b61021060085481565b6040519081526020016101fe565b6101dc61022c366004610f01565b61053f565b6101dc61023f366004610f01565b6105e5565b6101dc610252366004610e0b565b610632565b61021060075481565b6101dc61026e366004610f01565b6106d9565b6101f1610726565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b6101f1610733565b6101dc6102b6366004610e0b565b610740565b6101f161080e565b6101f16102d1366004610e78565b6108a0565b61021060055481565b6101f16108bc565b6101f16108c9565b6101dc6102fd366004610f5b565b6108d8565b61021060065481565b600454610288906001600160a01b031681565b6101dc61093d565b6101dc610334366004611028565b610974565b6101dc6103473660046110c9565b6109fb565b6101dc61035a366004610e0b565b610a7f565b6101dc61036d366004611028565b610b26565b600354610288906001600160a01b031681565b6101dc6103933660046110c9565b610bad565b6101dc6103a6366004611147565b610c31565b60035460405163354e6a6f60e21b81526001600160a01b039091169063d539a9bc906103df908690869086906004016111de565b600060405180830381600087803b1580156103f957600080fd5b505af115801561040d573d6000803e3d6000fd5b505050600083815260026020908152604082208054600181018255908352918190208451610442945092019190840190610ccf565b507f200ed2971aa003016354f781cf280ada45672de3dc8c36583854d0bfe8b33a6083838360006040516104799493929190611213565b60405180910390a1505050565b600260205281600052604060002081815481106104a257600080fd5b906000526020600020016000915091505080546104be90611252565b80601f01602080910402602001604051908101604052809291908181526020018280546104ea90611252565b80156105375780601f1061050c57610100808354040283529160200191610537565b820191906000526020600020905b81548152906001019060200180831161051a57829003601f168201915b505050505081565b6000546001600160a01b0316331461057357604051636381e58960e11b815260040161056a9061128d565b60405180910390fd5b6001600160a01b0381166105d957604051636381e58960e11b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161056a565b6105e281610c7f565b50565b6000546001600160a01b0316331461061057604051636381e58960e11b815260040161056a9061128d565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b0316331461065d57604051636381e58960e11b815260040161056a906112c2565b6000828152600160208181526040832080549283018155835291829020835161068e93919092019190840190610ccf565b5080516106a290600a906020840190610ccf565b507f96dd7a715fb188abef0d5ab36bd03d64c6457c75f997607aa73f9c3d85700ba583838360016040516104799493929190611213565b6000546001600160a01b0316331461070457604051636381e58960e11b815260040161056a9061128d565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600b80546104be90611252565b600980546104be90611252565b6003546040516303ed4ce560e41b81526001600160a01b0390911690633ed4ce5090610774908690869086906004016111de565b600060405180830381600087803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b5050506000838152600260209081526040822080546001810182559083529181902084516107d7945092019190840190610ccf565b507f200ed2971aa003016354f781cf280ada45672de3dc8c36583854d0bfe8b33a6083838360016040516104799493929190611213565b6060600b805461081d90611252565b80601f016020809104026020016040519081016040528092919081815260200182805461084990611252565b80156108965780601f1061086b57610100808354040283529160200191610896565b820191906000526020600020905b81548152906001019060200180831161087957829003601f168201915b5050505050905090565b600160205281600052604060002081815481106104a257600080fd5b600a80546104be90611252565b6060600a805461081d90611252565b7f7c428ded023c093a8e5b0442e2d50dac9ab81475f660a28b1cd1a028ffd0d99187878787878787604051610913979695949392919061130a565b60405180910390a160088790558051610933906009906020840190610ccf565b5050505050505050565b6000546001600160a01b0316331461096857604051636381e58960e11b815260040161056a9061128d565b6109726000610c7f565b565b60048054604051634183bc3f60e01b81526001600160a01b0390911691634183bc3f916109ad9189918b918a918a918a918a9101611379565b6020604051808303816000875af11580156109cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f091906113c5565b600655505050505050565b6004805460405163f7d579c760e01b81526001600160a01b0390911691829163f7d579c791610a329188918a9189918991016113de565b6020604051808303816000875af1158015610a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7591906113c5565b6006555050505050565b6003546001600160a01b03163314610aaa57604051636381e58960e11b815260040161056a906112c2565b60008281526001602081815260408320805492830181558352918290208351610adb93919092019190840190610ccf565b508051610aef90600b906020840190610ccf565b507f96dd7a715fb188abef0d5ab36bd03d64c6457c75f997607aa73f9c3d85700ba583838360006040516104799493929190611213565b6004805460405163488c188160e11b81526001600160a01b0390911691639118310291610b5f9189918b918a918a918a918a9101611379565b6020604051808303816000875af1158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba291906113c5565b600555505050505050565b60048054604051631839bef160e21b81526001600160a01b039091169182916360e6fbc491610be49188918a9189918991016113de565b6020604051808303816000875af1158015610c03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2791906113c5565b6005555050505050565b7fa7647aaf8a6699c6874d335ef4930e14945244cf7d83698864123d18f37c0a72868686868686604051610c6a9695949392919061141c565b60405180910390a15050506007929092555050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f5c7c30d4a0f08950cb23be4132957b357fa5dfdb0fcf218f81b86a1c036e47d09190a35050565b828054610cdb90611252565b90600052602060002090601f016020900481019282610cfd5760008555610d43565b82601f10610d1657805160ff1916838001178555610d43565b82800160010185558215610d43579182015b82811115610d43578251825591602001919060010190610d28565b50610d4f929150610d53565b5090565b5b80821115610d4f5760008155600101610d54565b63b95aa35560e01b600052604160045260246000fd5b600082601f830112610d8f57600080fd5b813567ffffffffffffffff80821115610daa57610daa610d68565b604051601f8301601f19908116603f01168101908282118183101715610dd257610dd2610d68565b81604052838152866020858801011115610deb57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610e2057600080fd5b833567ffffffffffffffff80821115610e3857600080fd5b610e4487838801610d7e565b9450602086013593506040860135915080821115610e6157600080fd5b50610e6e86828701610d7e565b9150509250925092565b60008060408385031215610e8b57600080fd5b50508035926020909101359150565b6000815180845260005b81811015610ec057602081850181015186830182015201610ea4565b81811115610ed2576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610efa6020830184610e9a565b9392505050565b600060208284031215610f1357600080fd5b81356001600160a01b0381168114610efa57600080fd5b803563ffffffff81168114610f3e57600080fd5b919050565b803567ffffffffffffffff81168114610f3e57600080fd5b600080600080600080600060e0888a031215610f7657600080fd5b87359650602088013567ff","ffffffffffffff80821115610f9557600080fd5b610fa18b838c01610d7e565b975060408a01359650610fb660608b01610f2a565b9550610fc460808b01610f43565b945060a08a0135915080821115610fda57600080fd5b610fe68b838c01610d7e565b935060c08a0135915080821115610ffc57600080fd5b506110098a828b01610d7e565b91505092959891949750929550565b80358015158114610f3e57600080fd5b60008060008060008060c0878903121561104157600080fd5b86359550602087013567ffffffffffffffff8082111561106057600080fd5b61106c8a838b01610d7e565b965061107a60408a01611018565b9550606089013591508082111561109057600080fd5b5061109d89828a01610d7e565b935050608087013560ff811681146110b457600080fd5b8092505060a087013590509295509295509295565b600080600080608085870312156110df57600080fd5b84359350602085013567ffffffffffffffff808211156110fe57600080fd5b61110a88838901610d7e565b945061111860408801611018565b9350606087013591508082111561112e57600080fd5b5061113b87828801610d7e565b91505092959194509250565b60008060008060008060c0878903121561116057600080fd5b86359550602087013567ffffffffffffffff8082111561117f57600080fd5b61118b8a838b01610d7e565b9650604089013595506111a060608a01610f2a565b94506111ae60808a01610f43565b935060a08901359150808211156111c457600080fd5b506111d189828a01610d7e565b9150509295509295509295565b6060815260006111f16060830186610e9a565b84602084015282810360408401526112098185610e9a565b9695505050505050565b6080815260006112266080830187610e9a565b856020840152828103604084015261123e8186610e9a565b915050821515606083015295945050505050565b600181811c9082168061126657607f821691505b602082108114156112875763b95aa35560e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526028908201527f494e56414c49445f5045524d495353494f4e3a206f6e6c79206d6f6e69746f72604082015267206d65737361676560c01b606082015260800190565b87815260e06020820152600061132360e0830189610e9a565b87604084015263ffffffff8716606084015267ffffffffffffffff8616608084015282810360a08401526113578186610e9a565b905082810360c084015261136b8185610e9a565b9a9950505050505050505050565b60c08152600061138c60c0830189610e9a565b876020840152861515604084015282810360608401526113ac8187610e9a565b60ff959095166080840152505060a00152949350505050565b6000602082840312156113d757600080fd5b5051919050565b6080815260006113f16080830187610e9a565b856020840152841515604084015282810360608401526114118185610e9a565b979650505050505050565b86815260c06020820152600061143560c0830188610e9a565b86604084015263ffffffff8616606084015267ffffffffffffffff8516608084015282810360a08401526114698185610e9a565b999850505050505050505056fea26469706673582212202cb33e13adb52d120f7e13d7e2446df1698acd011c496332749f613c9bf9b31e64736f6c634300080b0033"};
public static final String SM_BINARY = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", SM_BINARY_ARRAY);
- public static final String[] ABI_ARRAY = {"[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"sequence\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"errorMsg\",\"type\":\"string\"}],\"name\":\"AckOnError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"sequence\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"AckOnSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"senderDomain\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"author\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isOrdered\",\"type\":\"bool\"}],\"name\":\"recvCrosschainMsg\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isOrdered\",\"type\":\"bool\"}],\"name\":\"sendCrosschainMsg\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"sequence\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"errorMsg\",\"type\":\"string\"}],\"name\":\"ackOnError\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"sequence\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ackOnSuccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastMsg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastUnorderedMsg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last_msg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last_uo_msg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_error\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_id_ack_error\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_id_ack_success\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_id_sent_order\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_id_sent_unorder\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"senderDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"author\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"recvMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"recvMsg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"senderDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"author\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"recvUnorderedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sdpAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sendMsg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"sendUnorderedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"atomic\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"}],\"name\":\"sendUnorderedV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"atomic\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"}],\"name\":\"sendV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protocolAddress\",\"type\":\"address\"}],\"name\":\"setProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"};
+ public static final String[] ABI_ARRAY = {"[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"sequence\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"errorMsg\",\"type\":\"string\"}],\"name\":\"AckOnError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"sequence\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"AckOnSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"senderDomain\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"author\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isOrdered\",\"type\":\"bool\"}],\"name\":\"recvCrosschainMsg\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isOrdered\",\"type\":\"bool\"}],\"name\":\"sendCrosschainMsg\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"sequence\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"errorMsg\",\"type\":\"string\"}],\"name\":\"ackOnError\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"sequence\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"ackOnSuccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastMsg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastUnorderedMsg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last_msg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"last_uo_msg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_error\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_id_ack_error\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_id_ack_success\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_id_sent_order\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latest_msg_id_sent_unorder\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"monitorAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"senderDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"author\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"recvMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"recvMsg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"senderDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"author\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"recvUnorderedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sdpAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sendMsg\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"sendUnorderedMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"atomic\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"}],\"name\":\"sendUnorderedV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"atomic\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"timeoutMeasure\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"sendUnorderedV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"atomic\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"}],\"name\":\"sendV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"receiver\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"atomic\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"timeoutMeasure\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"sendV3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMoni","torAddress\",\"type\":\"address\"}],\"name\":\"setMonitorContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protocolAddress\",\"type\":\"address\"}],\"name\":\"setProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"};
public static final String ABI = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", ABI_ARRAY);
@@ -67,6 +70,8 @@ public class AppContract extends Contract {
public static final String FUNC_LATEST_MSG_ID_SENT_UNORDER = "latest_msg_id_sent_unorder";
+ public static final String FUNC_MONITORADDRESS = "monitorAddress";
+
public static final String FUNC_OWNER = "owner";
public static final String FUNC_RECVMESSAGE = "recvMessage";
@@ -87,34 +92,41 @@ public class AppContract extends Contract {
public static final String FUNC_SENDUNORDEREDV2 = "sendUnorderedV2";
+ public static final String FUNC_SENDUNORDEREDV3 = "sendUnorderedV3";
+
public static final String FUNC_SENDV2 = "sendV2";
+ public static final String FUNC_SENDV3 = "sendV3";
+
+ public static final String FUNC_SETMONITORCONTRACT = "setMonitorContract";
+
public static final String FUNC_SETPROTOCOL = "setProtocol";
public static final String FUNC_TRANSFEROWNERSHIP = "transferOwnership";
- public static final Event ACKONERROR_EVENT = new Event("AckOnError",
+ public static final Event ACKONERROR_EVENT = new Event("AckOnError",
Arrays.>asList(new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}));
;
- public static final Event ACKONSUCCESS_EVENT = new Event("AckOnSuccess",
+ public static final Event ACKONSUCCESS_EVENT = new Event("AckOnSuccess",
Arrays.>asList(new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}));
;
- public static final Event OWNERSHIPTRANSFERRED_EVENT = new Event("OwnershipTransferred",
+ public static final Event OWNERSHIPTRANSFERRED_EVENT = new Event("OwnershipTransferred",
Arrays.>asList(new TypeReference(true) {}, new TypeReference(true) {}));
;
- public static final Event RECVCROSSCHAINMSG_EVENT = new Event("recvCrosschainMsg",
+ public static final Event RECVCROSSCHAINMSG_EVENT = new Event("recvCrosschainMsg",
Arrays.>asList(new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}));
;
- public static final Event SENDCROSSCHAINMSG_EVENT = new Event("sendCrosschainMsg",
+ public static final Event SENDCROSSCHAINMSG_EVENT = new Event("sendCrosschainMsg",
Arrays.>asList(new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}));
;
protected AppContract(String contractAddress, Client client, CryptoKeyPair credential) {
super(getBinary(client.getCryptoSuite()), contractAddress, client, credential);
+ this.transactionManager = new ProxySignTransactionManager(client);
}
public static String getBinary(CryptoSuite cryptoSuite) {
@@ -266,14 +278,14 @@ public void subscribeSendCrosschainMsgEvent(EventSubCallback callback) {
public TransactionReceipt ackOnError(byte[] messageId, String receiverDomain, byte[] receiver,
BigInteger sequence, BigInteger nonce, byte[] message, String errorMsg) {
final Function function = new Function(
- FUNC_ACKONERROR,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(errorMsg)),
+ FUNC_ACKONERROR,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(errorMsg)),
Collections.>emptyList(), 0);
return executeTransaction(function);
}
@@ -281,14 +293,14 @@ public TransactionReceipt ackOnError(byte[] messageId, String receiverDomain, by
public Function getMethodAckOnErrorRawFunction(byte[] messageId, String receiverDomain,
byte[] receiver, BigInteger sequence, BigInteger nonce, byte[] message, String errorMsg)
throws ContractException {
- final Function function = new Function(FUNC_ACKONERROR,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(errorMsg)),
+ final Function function = new Function(FUNC_ACKONERROR,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(errorMsg)),
Arrays.>asList());
return function;
}
@@ -297,14 +309,14 @@ public String getSignedTransactionForAckOnError(byte[] messageId, String receive
byte[] receiver, BigInteger sequence, BigInteger nonce, byte[] message,
String errorMsg) {
final Function function = new Function(
- FUNC_ACKONERROR,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(errorMsg)),
+ FUNC_ACKONERROR,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(errorMsg)),
Collections.>emptyList(), 0);
return createSignedTransaction(function);
}
@@ -313,14 +325,14 @@ public String ackOnError(byte[] messageId, String receiverDomain, byte[] receive
BigInteger sequence, BigInteger nonce, byte[] message, String errorMsg,
TransactionCallback callback) {
final Function function = new Function(
- FUNC_ACKONERROR,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(errorMsg)),
+ FUNC_ACKONERROR,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(errorMsg)),
Collections.>emptyList(), 0);
return asyncExecuteTransaction(function, callback);
}
@@ -328,18 +340,18 @@ public String ackOnError(byte[] messageId, String receiverDomain, byte[] receive
public Tuple7 getAckOnErrorInput(
TransactionReceipt transactionReceipt) {
String data = transactionReceipt.getInput().substring(10);
- final Function function = new Function(FUNC_ACKONERROR,
- Arrays.asList(),
+ final Function function = new Function(FUNC_ACKONERROR,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}));
List results = this.functionReturnDecoder.decode(data, function.getOutputParameters());
return new Tuple7(
- (byte[]) results.get(0).getValue(),
- (String) results.get(1).getValue(),
- (byte[]) results.get(2).getValue(),
- (BigInteger) results.get(3).getValue(),
- (BigInteger) results.get(4).getValue(),
- (byte[]) results.get(5).getValue(),
+ (byte[]) results.get(0).getValue(),
+ (String) results.get(1).getValue(),
+ (byte[]) results.get(2).getValue(),
+ (BigInteger) results.get(3).getValue(),
+ (BigInteger) results.get(4).getValue(),
+ (byte[]) results.get(5).getValue(),
(String) results.get(6).getValue()
);
}
@@ -347,13 +359,13 @@ public Tuple7 ge
public TransactionReceipt ackOnSuccess(byte[] messageId, String receiverDomain, byte[] receiver,
BigInteger sequence, BigInteger nonce, byte[] message) {
final Function function = new Function(
- FUNC_ACKONSUCCESS,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ FUNC_ACKONSUCCESS,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Collections.>emptyList(), 0);
return executeTransaction(function);
}
@@ -361,13 +373,13 @@ public TransactionReceipt ackOnSuccess(byte[] messageId, String receiverDomain,
public Function getMethodAckOnSuccessRawFunction(byte[] messageId, String receiverDomain,
byte[] receiver, BigInteger sequence, BigInteger nonce, byte[] message) throws
ContractException {
- final Function function = new Function(FUNC_ACKONSUCCESS,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ final Function function = new Function(FUNC_ACKONSUCCESS,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Arrays.>asList());
return function;
}
@@ -375,13 +387,13 @@ public Function getMethodAckOnSuccessRawFunction(byte[] messageId, String receiv
public String getSignedTransactionForAckOnSuccess(byte[] messageId, String receiverDomain,
byte[] receiver, BigInteger sequence, BigInteger nonce, byte[] message) {
final Function function = new Function(
- FUNC_ACKONSUCCESS,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ FUNC_ACKONSUCCESS,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Collections.>emptyList(), 0);
return createSignedTransaction(function);
}
@@ -389,13 +401,13 @@ public String getSignedTransactionForAckOnSuccess(byte[] messageId, String recei
public String ackOnSuccess(byte[] messageId, String receiverDomain, byte[] receiver,
BigInteger sequence, BigInteger nonce, byte[] message, TransactionCallback callback) {
final Function function = new Function(
- FUNC_ACKONSUCCESS,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
- new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ FUNC_ACKONSUCCESS,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(messageId),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiver),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(sequence),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint64(nonce),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Collections.>emptyList(), 0);
return asyncExecuteTransaction(function, callback);
}
@@ -403,177 +415,191 @@ public String ackOnSuccess(byte[] messageId, String receiverDomain, byte[] recei
public Tuple6 getAckOnSuccessInput(
TransactionReceipt transactionReceipt) {
String data = transactionReceipt.getInput().substring(10);
- final Function function = new Function(FUNC_ACKONSUCCESS,
- Arrays.asList(),
+ final Function function = new Function(FUNC_ACKONSUCCESS,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}, new TypeReference() {}));
List results = this.functionReturnDecoder.decode(data, function.getOutputParameters());
return new Tuple6(
- (byte[]) results.get(0).getValue(),
- (String) results.get(1).getValue(),
- (byte[]) results.get(2).getValue(),
- (BigInteger) results.get(3).getValue(),
- (BigInteger) results.get(4).getValue(),
+ (byte[]) results.get(0).getValue(),
+ (String) results.get(1).getValue(),
+ (byte[]) results.get(2).getValue(),
+ (BigInteger) results.get(3).getValue(),
+ (BigInteger) results.get(4).getValue(),
(byte[]) results.get(5).getValue()
);
}
public byte[] getLastMsg() throws ContractException {
- final Function function = new Function(FUNC_GETLASTMSG,
- Arrays.asList(),
+ final Function function = new Function(FUNC_GETLASTMSG,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, byte[].class);
}
public Function getMethodGetLastMsgRawFunction() throws ContractException {
- final Function function = new Function(FUNC_GETLASTMSG,
- Arrays.asList(),
+ final Function function = new Function(FUNC_GETLASTMSG,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
public byte[] getLastUnorderedMsg() throws ContractException {
- final Function function = new Function(FUNC_GETLASTUNORDEREDMSG,
- Arrays.asList(),
+ final Function function = new Function(FUNC_GETLASTUNORDEREDMSG,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, byte[].class);
}
public Function getMethodGetLastUnorderedMsgRawFunction() throws ContractException {
- final Function function = new Function(FUNC_GETLASTUNORDEREDMSG,
- Arrays.asList(),
+ final Function function = new Function(FUNC_GETLASTUNORDEREDMSG,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
public byte[] last_msg() throws ContractException {
- final Function function = new Function(FUNC_LAST_MSG,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LAST_MSG,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, byte[].class);
}
public Function getMethodLast_msgRawFunction() throws ContractException {
- final Function function = new Function(FUNC_LAST_MSG,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LAST_MSG,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
public byte[] last_uo_msg() throws ContractException {
- final Function function = new Function(FUNC_LAST_UO_MSG,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LAST_UO_MSG,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, byte[].class);
}
public Function getMethodLast_uo_msgRawFunction() throws ContractException {
- final Function function = new Function(FUNC_LAST_UO_MSG,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LAST_UO_MSG,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
public String latest_msg_error() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ERROR,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ERROR,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, String.class);
}
public Function getMethodLatest_msg_errorRawFunction() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ERROR,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ERROR,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
public byte[] latest_msg_id_ack_error() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ID_ACK_ERROR,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ID_ACK_ERROR,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, byte[].class);
}
public Function getMethodLatest_msg_id_ack_errorRawFunction() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ID_ACK_ERROR,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ID_ACK_ERROR,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
public byte[] latest_msg_id_ack_success() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ID_ACK_SUCCESS,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ID_ACK_SUCCESS,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, byte[].class);
}
public Function getMethodLatest_msg_id_ack_successRawFunction() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ID_ACK_SUCCESS,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ID_ACK_SUCCESS,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
public byte[] latest_msg_id_sent_order() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ID_SENT_ORDER,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ID_SENT_ORDER,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, byte[].class);
}
public Function getMethodLatest_msg_id_sent_orderRawFunction() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ID_SENT_ORDER,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ID_SENT_ORDER,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
public byte[] latest_msg_id_sent_unorder() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ID_SENT_UNORDER,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ID_SENT_UNORDER,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, byte[].class);
}
public Function getMethodLatest_msg_id_sent_unorderRawFunction() throws ContractException {
- final Function function = new Function(FUNC_LATEST_MSG_ID_SENT_UNORDER,
- Arrays.asList(),
+ final Function function = new Function(FUNC_LATEST_MSG_ID_SENT_UNORDER,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
+ public String monitorAddress() throws ContractException {
+ final Function function = new Function(FUNC_MONITORADDRESS,
+ Arrays.asList(),
+ Arrays.>asList(new TypeReference() {}));
+ return executeCallWithSingleValueReturn(function, String.class);
+ }
+
+ public Function getMethodMonitorAddressRawFunction() throws ContractException {
+ final Function function = new Function(FUNC_MONITORADDRESS,
+ Arrays.asList(),
+ Arrays.>asList(new TypeReference() {}));
+ return function;
+ }
+
public String owner() throws ContractException {
- final Function function = new Function(FUNC_OWNER,
- Arrays.asList(),
+ final Function function = new Function(FUNC_OWNER,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, String.class);
}
public Function getMethodOwnerRawFunction() throws ContractException {
- final Function function = new Function(FUNC_OWNER,
- Arrays.asList(),
+ final Function function = new Function(FUNC_OWNER,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}));
return function;
}
public TransactionReceipt recvMessage(String senderDomain, byte[] author, byte[] message) {
final Function function = new Function(
- FUNC_RECVMESSAGE,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ FUNC_RECVMESSAGE,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Collections.>emptyList(), 0);
return executeTransaction(function);
}
public Function getMethodRecvMessageRawFunction(String senderDomain, byte[] author,
byte[] message) throws ContractException {
- final Function function = new Function(FUNC_RECVMESSAGE,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ final Function function = new Function(FUNC_RECVMESSAGE,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Arrays.>asList());
return function;
}
@@ -581,10 +607,10 @@ public Function getMethodRecvMessageRawFunction(String senderDomain, byte[] auth
public String getSignedTransactionForRecvMessage(String senderDomain, byte[] author,
byte[] message) {
final Function function = new Function(
- FUNC_RECVMESSAGE,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ FUNC_RECVMESSAGE,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Collections.>emptyList(), 0);
return createSignedTransaction(function);
}
@@ -592,10 +618,10 @@ public String getSignedTransactionForRecvMessage(String senderDomain, byte[] aut
public String recvMessage(String senderDomain, byte[] author, byte[] message,
TransactionCallback callback) {
final Function function = new Function(
- FUNC_RECVMESSAGE,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ FUNC_RECVMESSAGE,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Collections.>emptyList(), 0);
return asyncExecuteTransaction(function, callback);
}
@@ -603,31 +629,31 @@ public String recvMessage(String senderDomain, byte[] author, byte[] message,
public Tuple3 getRecvMessageInput(
TransactionReceipt transactionReceipt) {
String data = transactionReceipt.getInput().substring(10);
- final Function function = new Function(FUNC_RECVMESSAGE,
- Arrays.asList(),
+ final Function function = new Function(FUNC_RECVMESSAGE,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}, new TypeReference() {}, new TypeReference() {}));
List results = this.functionReturnDecoder.decode(data, function.getOutputParameters());
return new Tuple3(
- (String) results.get(0).getValue(),
- (byte[]) results.get(1).getValue(),
+ (String) results.get(0).getValue(),
+ (byte[]) results.get(1).getValue(),
(byte[]) results.get(2).getValue()
);
}
public byte[] recvMsg(byte[] param0, BigInteger param1) throws ContractException {
- final Function function = new Function(FUNC_RECVMSG,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(param0),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint256(param1)),
+ final Function function = new Function(FUNC_RECVMSG,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(param0),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint256(param1)),
Arrays.>asList(new TypeReference() {}));
return executeCallWithSingleValueReturn(function, byte[].class);
}
public Function getMethodRecvMsgRawFunction(byte[] param0, BigInteger param1) throws
ContractException {
- final Function function = new Function(FUNC_RECVMSG,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(param0),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint256(param1)),
+ final Function function = new Function(FUNC_RECVMSG,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(param0),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint256(param1)),
Arrays.>asList(new TypeReference() {}));
return function;
}
@@ -635,20 +661,20 @@ public Function getMethodRecvMsgRawFunction(byte[] param0, BigInteger param1) th
public TransactionReceipt recvUnorderedMessage(String senderDomain, byte[] author,
byte[] message) {
final Function function = new Function(
- FUNC_RECVUNORDEREDMESSAGE,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ FUNC_RECVUNORDEREDMESSAGE,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Collections.>emptyList(), 0);
return executeTransaction(function);
}
public Function getMethodRecvUnorderedMessageRawFunction(String senderDomain, byte[] author,
byte[] message) throws ContractException {
- final Function function = new Function(FUNC_RECVUNORDEREDMESSAGE,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ final Function function = new Function(FUNC_RECVUNORDEREDMESSAGE,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Arrays.>asList());
return function;
}
@@ -656,10 +682,10 @@ public Function getMethodRecvUnorderedMessageRawFunction(String senderDomain, by
public String getSignedTransactionForRecvUnorderedMessage(String senderDomain, byte[] author,
byte[] message) {
final Function function = new Function(
- FUNC_RECVUNORDEREDMESSAGE,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ FUNC_RECVUNORDEREDMESSAGE,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Collections.>emptyList(), 0);
return createSignedTransaction(function);
}
@@ -667,10 +693,10 @@ public String getSignedTransactionForRecvUnorderedMessage(String senderDomain, b
public String recvUnorderedMessage(String senderDomain, byte[] author, byte[] message,
TransactionCallback callback) {
final Function function = new Function(
- FUNC_RECVUNORDEREDMESSAGE,
- Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
- new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
- new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
+ FUNC_RECVUNORDEREDMESSAGE,
+ Arrays.asList(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(author),
+ new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(message)),
Collections.>emptyList(), 0);
return asyncExecuteTransaction(function, callback);
}
@@ -678,79 +704,79 @@ public String recvUnorderedMessage(String senderDomain, byte[] author, byte[] me
public Tuple3 getRecvUnorderedMessageInput(
TransactionReceipt transactionReceipt) {
String data = transactionReceipt.getInput().substring(10);
- final Function function = new Function(FUNC_RECVUNORDEREDMESSAGE,
- Arrays.asList(),
+ final Function function = new Function(FUNC_RECVUNORDEREDMESSAGE,
+ Arrays.asList(),
Arrays.>asList(new TypeReference() {}, new TypeReference() {}, new TypeReference() {}));
List