Вызов функции интеллектуального контракта с Web3 - кажется, она не вызывается как функция - PullRequest
0 голосов
/ 08 декабря 2018

Я сделал простое приложение с Solidity + Web3.js с Metamask (ropsten). Я развернул свой контракт с Remix.

В приложении я могу купить токены без каких-либо ошибок.Но проблема возникает, когда я пытаюсь тратить свои токены с «потребляющей функцией токена».

Проблема в том, что когда я проверяю свою транзакцию в Etherscan, это не похоже на то, что функция вызывается.Проверьте etherscan ниже.

Вы можете увидеть в обычномВ области входных данных транзакции сказано, что это функция.Но, как вы можете видеть из транзакции ошибки, это не так.

Есть функция js, которая делает эту ошибку.И abi этой функции.

Я также прилагаю свои целые коды приложения.Пожалуйста, спасите меня!

Вы должны быть в метамаске.Запустите это приложение.

function bidForProduct(i) {
  const itemName = itemNames[i];
  const bidTokens = $(`#tb-${itemName}`).val();
  alert(
    "Bid has been submitted. The bid will be done as soon as the bid is recorded on the blockchain. \
          (As long as your bid is higher than the previouse highest one.)"
  );
  $(`#tb-${itemName}`).val("");

  console.log(`bids for ${itemName} about ${bidTokens}`);

  // Invoke contract method
  auction.bid(itemName, bidTokens, (e, r) => {
    if(e) console.log(e);
    getHighestBids();
    getMyBids();
  });
}

let abi = [
	{
		"constant": false,
		"inputs": [
			{
				"name": "itemName",
				"type": "bytes32"
			},
			{
				"name": "tokenCountForBid",
				"type": "uint256"
			}
		],
		"name": "bid",
		"outputs": [],
		"payable": false,
		"stateMutability": "nonpayable",
		"type": "function"
	},
  
  ...
 ]
...