Closed Ununuk closed 6 years ago
Ethereum::Contract.create(name: contract_name, address: contract_address, abi: abi.to_json)
resolved problem.
Looks like your method is actually named totalSupply
and not total_supply
. In any case, how do you call your totalSupply
function now? For some reason, I'm unable to do @contract.transact.myMethod()
Everything works for me. It's total_supply
.
Please create new issue or explain more if your problem is connected.
@Ununuk i have a blockchain_controller.rb
file:
class BlockchainController < ApplicationController
skip_before_action :verify_authenticity_token
# @client = Ethereum::IpcClient.new
@client = Ethereum::HttpClient.new('https://ropsten.infura.io/api_key')
PATH = "#{Dir.pwd}/contracts/CharityMerchantUser.sol"
def create
# @client.default_account = "my_addr"
@contract = Ethereum::Contract.create(file:PATH, address:"contract_addr", client:@client)
key = Eth::Key.new
@contract.sender = key #"my_addr"
@contract.deploy_and_wait
## render html: address ##
render json: @contract.abi #json: client.eth_gas_price
end
def instantiateOfferToMerchant
merchant_address = "0x0"
charity_address = "0x0"
@contract.transact.userInitiatesOfferToMerchant(20, merchant_address, charity_address)
end
def acceptOffer
@contract.transact.acceptOfferFromUser(1)
end
end
# Ethereum::Singleton.setup { |c| c.default_account = "0x1234567890123456789012345678901234567890" }
I keep getting this error: undefined method 'default_account' for nil:NilClass
for the line that does create
.
Sorry it's not connected to my issue. Please add new issue for better range.
I took all data from: https://kovan.etherscan.io/address/0x6ff6c0ff1d68b964901f986d4c9fa3ac68346570#code and i want to get contract and do some transactions, but i can't do anything:
contract_name = "ZRXToken"
contract_address = '0x6Ff6C0Ff1d68b964901F986d4C9FA3ac68346570'
abi = [{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]
Ethereum::Contract.create(name: contract_name, address: contract_address, abi: abi).call.total_supply
I run parity like this:parity --chain kovan
I have always
undefined method 'total_supply'
Operations on my smartcontract on eth work. What am i doing wrong?