在我用于测试的 js 文件中。我将发送交易调用到智能合约,那么 value 和 gas 之间有什么区别:
In my js file for testing .I call a send transaction to the smart contract, so what is the difference between value and gas :
it("allows a manager to make a payment request f(createRequest) ", async ()=> {
await campaign.methods.createRequest('buy beer', accounts[2], '100').send({
from: accounts[0],
gas: '1000000'
});
it('Contribute money from another account & checks whether it is approved or not', async () =>{
await campaign.methods.contribute().send({
from: accounts[1],
value: '200'
});
我想知道决定因素,什么时候使用gas,什么时候使用value?
value
是您随交易发送的本机令牌的数量。
Network
Native token
Ethereum
ETH
Binance Smart Chain
BNB
Tron
TRX
以不可分割的最小单位表示。如果是 ETH,那就是 wei。 1 ETH 是 10^18 wei.
因此,根据您的示例,当您将 value
设置为 200
时,您将通过执行 contribute()
函数向合约发送 0.0000000000000002 ETH .
value
的一个示例用法是当合约想要以 0.1 ETH 的价格向您出售代币时。在这种情况下,您在执行合约的 buy()
函数时将 value
设置为 0.1 ETH。
value
不会取代 gas
费用:
gas
是您随交易发送的费用金额。为了更好地解释什么是 gas,以太坊 StackExchange 上有一个 great post。
但简而言之 - gas 是执行智能合约功能的一种支付方式。
执行函数所需的最小gas
量通常可以使用web3 estimateGas()方法计算(也有一些例外情况,估计不正确或无法计算)。
根据 gasPrice
(根据最近的数据自动计算或您可以手动覆盖),总交易费用以原生代币(例如 ETH)计算。
it("allows a manager to make a payment request f(createRequest) ", async ()=> {
await campaign.methods.createRequest('buy beer', accounts[2], '100').send({
from: accounts[0],
gas: '1000000'
});
it('Contribute money from another account & checks whether it is approved or not', async () =>{
await campaign.methods.contribute().send({
from: accounts[1],
value: '200'
});
我想知道决定因素,什么时候使用gas,什么时候使用value?
value
是您随交易发送的本机令牌的数量。
Network | Native token |
---|---|
Ethereum | ETH |
Binance Smart Chain | BNB |
Tron | TRX |
以不可分割的最小单位表示。如果是 ETH,那就是 wei。 1 ETH 是 10^18 wei.
因此,根据您的示例,当您将 value
设置为 200
时,您将通过执行 contribute()
函数向合约发送 0.0000000000000002 ETH .
value
的一个示例用法是当合约想要以 0.1 ETH 的价格向您出售代币时。在这种情况下,您在执行合约的 buy()
函数时将 value
设置为 0.1 ETH。
value
不会取代 gas
费用:
gas
是您随交易发送的费用金额。为了更好地解释什么是 gas,以太坊 StackExchange 上有一个 great post。
但简而言之 - gas 是执行智能合约功能的一种支付方式。
执行函数所需的最小gas
量通常可以使用web3 estimateGas()方法计算(也有一些例外情况,估计不正确或无法计算)。
根据 gasPrice
(根据最近的数据自动计算或您可以手动覆盖),总交易费用以原生代币(例如 ETH)计算。