не в состоянии запустить простой контракт - PullRequest
0 голосов
/ 14 апреля 2019

просто пытаюсь настроить пример simpleStorage, подобный тому, который выложен здесь: https://solidity.readthedocs.io/en/v0.5.7/style-guide.html?highlight=simplestorage#natspec Это то, что у меня есть до сих пор

index.sol

pragma solidity ^0.5.2;

contract SimpleStorage {
    uint storedData;

    function set(uint x) public {
        storedData = x;
    }

    function get() public view returns (uint) {
        return storedData;
    }
}

создаетследующий файл, когда я запускаю

echo var compiledStorage = `solc --combined-json abi,bin,interface contracts/SimpleStorage/index.sol` > contracts/SimpleStorage/index.js

index.js

var compiledStorage = {"contracts":{"contracts/SimpleStorage/index.sol:SimpleStorage":{"abi":"[{\"constant\":false,\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]","bin":"608060405234801561001057600080fd5b5060bd8061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806360fe47b11460375780636d4ce63c146062575b600080fd5b606060048036036020811015604b57600080fd5b8101908080359060200190929190505050607e565b005b60686088565b6040518082815260200191505060405180910390f35b8060008190555050565b6000805490509056fea165627a7a723058202d6164869800689651c219b1586634d754009604bc8adf8656a4145f348b1ac60029"}},"version":"0.5.7+commit.6da8b019.Darwin.appleclang"}

все, что кажется нормальным.Я запускаю свой личный блокчейн с geth --dev console Я проверяю, что у меня есть баланс на моем личном блокчейне

> eth.getBalance(eth.accounts[0])
1.15792089237316195423570985008687907853269984665640564039457584007913129639927e+77

, затем я загружаю скрипт

> loadScript('contracts/SimpleStorage/index.js')
> compiledStorage
{
  contracts: {
    contracts/SimpleStorage/index.sol:SimpleStorage: {
      abi: "[{\"constant\":false,\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]",
      bin: "608060405234801561001057600080fd5b5060bd8061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806360fe47b11460375780636d4ce63c146062575b600080fd5b606060048036036020811015604b57600080fd5b8101908080359060200190929190505050607e565b005b60686088565b6040518082815260200191505060405180910390f35b8060008190555050565b6000805490509056fea165627a7a723058202d6164869800689651c219b1586634d754009604bc8adf8656a4145f348b1ac60029"
    }
  },
  version: "0.5.7+commit.6da8b019.Darwin.appleclang"
}

super

Я создаю свою abi, hex и будущую транзакцию развертывания

> var ABI = compiledStorage.contracts['contracts/SimpleStorage/index.sol:SimpleStorage'].abi
> var bin = '0x' + compiledStorage.contracts['contracts/SimpleStorage/index.sol:SimpleStorage'].bin
> var deploymentTx = {from:eth.accounts[0],data:bin,gas:100000}

Я создаю свой интерфейс и экземпляр этого интерфейса

> var storageInterface = eth.contract(JSON.parse(ABI))
> var storageInstance = storageInterface.new(deploymentTx)

Работа майнинга завершена, и я проверяю, чтобы убедиться, чтоУ меня есть адрес, и я получаю мои контрактные двоичные файлы.

> var contractAddress = eth.getTransactionReceipt(storageInstance.transactionHash).contractAddress
> contractAddress
"0x05d7a6d44e773d6e50b6dbf6029d06e09c86dec7"
> var simpleStorage = storageInterface.at(contractAddress)

А теперь я врезался в стену.

> simpleStorage.get.call()
0
> simpleStorage.set.sendTransaction(5, {from:eth.accounts[0]:gas:100000})
...
> simpleStorage.get.call()
0

должно быть 5 нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...