Отправить wei в оплачиваемую функцию с помощью асинхронного режима web3

Я хочу отправить 100wei оплачиваемой функции в развернутом контракте. Но я не хочу подписывать транзакцию из-за больших усилий, чтобы это произошло. Я просто хочу отправить транзакцию с помощью метамаски. Поэтому мне нужна правильная команда web3 для вызова моего метода «depositFunds» и отправки 100 wei. В настоящее время у меня есть эта команда, но я получаю откровенно ошибку.myContractInstance.depositFunds().sendTransaction({from: web3.eth.accounts[0], gas: 3000000, value: 100}, function(err, res){});

Что мне нужно изменить, чтобы это заработало?

Какое полное сообщение об ошибке вы получаете?

Ответы (2)

Вы можете вызвать метод напрямую без sendTransaction:

myContractInstance.depositFunds({from: web3.eth.accounts[0], gas: 3000000, value: 100}, function(err, res){});

Вот учебник, который я написал по взаимодействию со смарт-контрактами с помощью MetaMask. Вызов оплачиваемой функции аналогичен этому, просто добавьте значение к транзакции:

https://medium.com/metamask/вызов-умного-контракта-с-кнопкой-d278b1e76705

Вам понадобится адрес контракта и его ABI для вызова метода.