Bitcoin Forum
June 01, 2024, 03:24:19 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: отправка эфира из javascript?  (Read 139 times)
zan0za (OP)
Jr. Member
*
Offline Offline

Activity: 46
Merit: 3


View Profile
February 12, 2019, 11:26:15 AM
 #1

Задеплоил смарт контракт в тестовую сеть Rinkeby и хочу вызвать платную функцию своего контракта, для этого во время вызова отправляю нужную сумму,
активизируется Метамаск и показывает мне сумму 0.006662 вместо 0.35 и еще в Метамаске появляется "ALERT: Transaction Error. Exception thrown in contract code."
Возможно алерт связан с тем что в смарт контракте стоит проверка на нинимальное количество эфира в транзакции?

Это код моего скрипта.
Code:
			const defaultAccount = web3.eth.defaultAccount;
var inWei = web3.toWei("0.035", "ether");
var fixedGasPrice = 1000000000;
//alert ('Send ETH: ' + inWei);
myContract = web3.eth.contract(abi).at(contractAddress);

myContract.myFunc(param1, param2, param3, param4, param5,

function(err, res){
TemplateVar.set(template, "answerId", res);
}).send({ from: defaultAccount, value: inWei });

//{ from: defaultAccount, gas: 35000000, gasPrice: fixedGasPrice },
//{ from: defaultAccount, gas: 35000000, value: 31000000 },
// , value: web3.utils.toWei("1.12", "ether")
// value: web3.toWei(0.1,'ether'),gas: 5000, gasPrice: web3.toWei(40,'gwei')

Специально оставил комментарии того как я извращался, но так и не могу найти причину почему у меня не передается в Метамаск нужная сумма?
Meteor вроде никак не может влиять на это?
zan0za (OP)
Jr. Member
*
Offline Offline

Activity: 46
Merit: 3


View Profile
February 12, 2019, 08:02:40 PM
 #2

Переделал код так:

Code:
			myContract.myFunc.sendTransaction(param1, param2, 
param3, param4, param5,{
            from: defaultAccount,
            gas: 35000000,
gasPrice: 1000000000,
gasLimit: 4000000000000000000000
},function (err, res){
                TemplateVar.set(template, "retId", res);
                }
        );
Но когда он выполняется то Метамаск выдает такую ошибку:

ALERT: [ethjs-rpc] rpc error with payload {"id":6042585039448,"jsonrpc":"2.0","params":["0xf9010a10843b9aca008402160ec0944d58f7546a3d63173c6ee2f5bd43832cecb565de80b8a46 159013c000000000000000000000000ae7857ab9fc7cda5524702f2ce369433c0a8387100000000 0000000000000000000000000000000000000000000000000000000a00000000000000000000000 0edb2d98750f37c0f007df2465eda4cbf846a658000000000000000000000000000000000000000 0000000000000000000000003200000000000000000000000000000000000000000000000000000 000000000102ca0080e0d38299415ec2a398ec9c886f5a25299579826f5de03038062b3cea4c5e7 a0742cbe542434b64b497b68656add9ecfdc6d49aff2fbda7ea1acfdd089b0f801"],"method":"eth_sendRawTransaction"} {"code":-32000,"message":"exceeds block gas limit"}


Вручную пытался в Метамаске газ добавить но это не помогает.

Как мызвать из javascript функцию смарт контракта с одновременной отправкой эфира? Никто не знает?
zan0za (OP)
Jr. Member
*
Offline Offline

Activity: 46
Merit: 3


View Profile
February 20, 2019, 06:43:12 PM
 #3

Кто знает напишите почему у меня не получается вызвать функцию смарт контракта с отправкой эфира? Как это надо правильно делать?
Я даже в Метамаске увеличиваю сумму эфира но это не помогает, уже не знаю что делать.
Не понимаю почему мою чисто кодерскую тему модераторы перенесли из кодеры в альты?
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!