# JAVA学习solidity智能合约2


By [想住大房子的java程序员](https://paragraph.com/@java-3) · 2022-10-12

---

### 调用web3时，发送事务：

    合约地址对象.methods.合约函数名(参数)   
    
    .send({ from: 账户名,value: web3js.utils.toWei("0.001","ether")})   
    
    .on("receipt", function(receipt) {  //成功的逻辑   })   
    
    .on("error", function(error) {    //失败后的处理逻辑   });
    

其中，`receipt` 事件将在合约被包含进以太坊区块上以后被触发。

`error` 将在事务未被成功包含进区块后触发。比如用户未支付足够的 gas。我们需要在界面中通知用户事务失败以便他们可以再次尝试。

调用的参数传递中，如果是payable，那么可以传value: web3js.utils.toWei("0.001","ether")。

调用web3时，发送消息。
-------------

    合约地址对象.methods.合约函数名(参数)   
    
    .call();
    

`call` 用来调用 `view` 和 `pure` 函数.

`view` _和_ `pure` _函数是只读的并不会改变区块链的状态。它们也不会消耗任何gas。用户也不会被要求用MetaMask对事务签名。_

---

*Originally published on [想住大房子的java程序员](https://paragraph.com/@java-3/java-solidity-2)*
