Ethereum 为什么可以';我是否将以太发送到智能合约&x27;谁的地址?

Ethereum 为什么可以';我是否将以太发送到智能合约&x27;谁的地址?,ethereum,solidity,Ethereum,Solidity,到目前为止,这是有效的。然而,令人惊讶的是,这条线 消息发送方转账(金额); 在我的合同中,我不会在web3上编译,尽管这一行是直接从solidity文档中获得的。必须改用Solc,因为0.4.6中没有transfer() transfer()不是以太坊的核心部分吗?我本以为这会存在于V0.1中 不管怎样,我尝试在合同中添加乙醚,如下所示: contract_file = 'contract.sol' contract_name = ':SimpleContract' Solc = requi

到目前为止,这是有效的。然而,令人惊讶的是,这条线 消息发送方转账(金额); 在我的合同中,我不会在web3上编译,尽管这一行是直接从solidity文档中获得的。必须改用Solc,因为0.4.6中没有transfer()

transfer()不是以太坊的核心部分吗?我本以为这会存在于V0.1中

不管怎样,我尝试在合同中添加乙醚,如下所示:

contract_file = 'contract.sol'
contract_name = ':SimpleContract'

Solc = require('solc')
Web3 = require('web3')

web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
source_code = fs.readFileSync(contract_file).toString()

admin_account = web3.eth.accounts[0]

compiledContract = Solc.compile(source_code)
abi = compiledContract.contracts[contract_name].interface
bytecode = compiledContract.contracts[contract_name].bytecode;
ContractClass =  web3.eth.contract(JSON.parse(abi))

contract_init_data = {
    data: bytecode,
    from: admin_account,
    gas: 1000000,
}

deployed_contract = ContractClass.new(contract_init_data)
contract_instance = ContractClass.at(deployed_contract.address)
Error: VM Exception while processing transaction: invalid opcode
我得到:

load_up = {
    from: admin_account, 
    to: deployed_contract.address, 
    value: web3.toWei(1, 'ether'),
}
web3.eth.sendTransaction(load_up)

这对我来说没什么用。我做错了什么,将来如何调试类似的问题?

事实证明,我需要使用
payment
关键字在合同上创建一个方法,例如:

函数addth()应付款{}

然后我可以像这样与我的合同互动:

contract_file = 'contract.sol'
contract_name = ':SimpleContract'

Solc = require('solc')
Web3 = require('web3')

web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
source_code = fs.readFileSync(contract_file).toString()

admin_account = web3.eth.accounts[0]

compiledContract = Solc.compile(source_code)
abi = compiledContract.contracts[contract_name].interface
bytecode = compiledContract.contracts[contract_name].bytecode;
ContractClass =  web3.eth.contract(JSON.parse(abi))

contract_init_data = {
    data: bytecode,
    from: admin_account,
    gas: 1000000,
}

deployed_contract = ContractClass.new(contract_init_data)
contract_instance = ContractClass.at(deployed_contract.address)
Error: VM Exception while processing transaction: invalid opcode

你能把合同的代码贴出来吗?您使用的是哪个版本的solc?您使用什么类型的节点(main、test或localtestrpc?)检查此项如何从该函数获取事务收据?