Развернутый контракт содержит пустые значения

Я могу протестировать с помощью truffle и успешно подтвердить, что значения моего развернутого контракта верны, но как в testrpc, так и в приватном geth фактические значения в моем контракте пусты.

Я инициализирую свой контракт на ранней стадии

this.contract = this.web3.eth.contract(this.abi);

затем через графический интерфейс создается новый контракт:

this.deployedContract = this.contract.new(name, {from: contractAddress, gas: 3000000, data: this.byteCode}, (contractError, contractResult) => {
    if (!contractError && contractResult) {
        console.log('contract address: ' + contractResult.address);
        console.log('contractResult: ' + contractResult);
    }else if(contractError){
        console.log("contractError: " + contractError);
    }
});

Контракт добывается, и я получаю адрес, который я ищу. И в консоли geth, и через API JavaScript я вижу результат name =0x0000000000000000000000000000000000000000000000000000000000000000

имя байт32

В консоли geth я просматриваю транзакцию и вижу cumulativeGasUsed: 1109932, что меньше 3000000, которые я объявил заранее.

Я также замечаю, что газ не был снят с моего счета.

Вы тестировали свой контракт с помощью ремикса?
Да, отлично работает, если я использую виртуальную машину JavaScript или поставщика Web3 для своего локального локального Geth.

Ответы (1)

Казалось бы, если у вас есть контракт, который принимает аргументы в свои параметры, если вы не сопоставите их вместе, то контракт будет создан как бы с пустым конструктором (по умолчанию?), без каких-либо ошибок или предупреждений.

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