Застрял при передаче адреса развернутого контракта другому конструктору контрактов

#javascript #ethereum #solidity #truffle #web3js

#javascript #ethereum #надежность #трюфель #web3js

Вопрос:

Я успешно развернул свой первый контракт и получил его экземпляр. но когда я попытался развернуть второй контракт, который принимает первый контракт в качестве аргумента, это привело меня к ошибке. Я передал адрес первого контракта или также объекта (экземпляр первого контракта). каждый раз, когда он выдает мне ошибку.

  1. при передаче в качестве адреса он выдает недопустимый адрес или формат адреса Iban, подобный этому. введите код здесь, это ссылка на изображение ошибки

и ошибка

 Uncaught (in promise) Error: Provided address "[object Promise]" is invalid, the capitalization checksum test failed, or its an indrect IBAN address which can't be converted.
    at Object.d [as inputAddressFormatter]
  
  1. Код, который я пытаюсь использовать для развертывания [` // получить скомпилированные данные
     let DhiSaleJsonInterface = await $.getJSON("DhiSale.json");

    //create new object of DhiSale Contract.
    let instance = new web3.eth.Contract(DhiSaleJsonInterface.abi);

    //added meta data or required options
    instance.options.address = "";
    instance.options.from = account;
    instance.options.gas = 1000000;
    instance.options.gasPrice = '1000000000';

    //add bytecode required for deployement.
    instance.options.data = DhiSaleJsonInterface.bytecode;

    //deploy the DhiSale contract

    //Dhi is an already deployed contract object.

    //it gives the error
    return instance.deploy({ arguments: [Dhi.options.address, 1000000000] }).send({ from: account }).then((contractInstance) => {
        console.log("Dhi Sale address :"   contractInstance.options.address);
        return contractInstance;
    })`]
  

Комментарии:

1. можете ли вы попробовать web3.utils.checkAddressChecksum(Dhi.options.address), а затем передать адрес в качестве аргумента? Проблема определенно связана с неправильной интерпретацией Dhi.options.address.

2. web3, tuils.checkAddressChecksum([адрес]), я пробую этот метод, он возвращает true.

3. Извините, я имел в виду. toChecksumAddress, но в любом случае, если результат равен true, он должен был сработать

4. нет, это не работает для меня. я все еще ищу ответ.

5. можете ли вы показать результат консоли. журнал для Dhi.options.address