# Week3-7.18 #### Day1 - Java-solidity数据类型转换 java-conflux-sdk继承于web3j. 当需要做与合约有关的操作时, 需要将java中的数据类型转为solidity合约中的数据类型. 这里的数据类型的对应关系可以查看: https://github.com/web3j/web3j/blob/master/abi/src/main/java/org/web3j/abi/datatypes/AbiTypes.java#:~:text=public%20static%20Class%3C%3F%20extends%20Type%3E%20getType(String%20type%2C%20boolean%20primitives) #### Day2 - Java-conflux-sdk hexstring与byte[]的转换 java-conflux-sdk中在调用call方法时会涉及到hexstring和byte[]的转换。 web3j为我们提供了一个方便的Numeric类来帮助我们实现转换功能。具体的可见https://github.com/web3j/web3j/blob/master/utils/src/main/java/org/web3j/utils/Numeric.java#:~:text=public%20final%20class%20Numeric 示例代码: ```JAVA String hexstring = "xxxxxx"; //hexstring byte[] test = Numeric.hexStringToByteArray(hexstring); String tmp = Numeric.toHexString(test); ``` #### Day3 - account.call与client.call的区别 java-conflux-sdk中在通过client调用call方法去读取合约的某个方法,并返回合约的返回值时不会改变合约状态,账户的nonce不会增加。在通过account.call方法去调用合约时,会带来合约状态的改变。 #### Day4 - 调用sdk时的rpc_url 在用sdk创建client时,需要用到rpc_url。目前rpc_url的汇总如下: | URL | 场景 | 备注| | ---- | ---- | ---- | | http://127.0.0.1:12539 | 本地节点 | port在toml文件里可以修改 | | https://test.confluxrpc.com | 香港测试网节点 | | | https://main.confluxrpc.com| 香港主网节点| | | https://test.confluxrpc.org | 美东测试网节点 | | | https://main.confluxrpc.org| 美东主网节点| | #### Day5 - pos节点的注册 conflux目前支持了pos共识,调用pos内置合约需要将本地节点注册为pos节点。java-conflux-sdk提供了相应的内置合约接口去调用内置合约中的注册方法,只需要用户提供相应的raw data. raw data的获取可见: https://wiki.conflux123.xyz/link/32#bkmrk-%E6%9C%89%E4%B8%80%E4%B8%AA%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84pos%E6%9C%AC%E5%9C%B0%E8%8A%82%E7%82%B9-%E5%9C%A8%E6%9C%AC%E5%9C%B0%E8%B0%83