добро пожаловать в «криптомир», как вы его назвали.
Я немного заблудился в вашем вопросе, но вам нужно развернуть контракт с исходным сообщением, а затем изменить это сообщение, используя метод setMessage
, через консоль.
Первое, что вы делаете неправильно, вызывает метод "setMessage", используя .call()
. Если вы хотите что-то изменить в цепочке блоков, вы отправите транзакцию, а для отправки транзакции вам необходимо указать учетную запись. Правильный метод должен быть .send({ from: "you-account-address" })
.
Чтобы немного упростить, позвольте мне показать несколько строк, которые вы можете использовать, а затем объяснить
$ > truffle console --network ropsten
$ (truffle) > helloInstance = await HelloWorld.deployed()
$ (truffle) > await helloInstance.getMessage()
$ (truffle) > await helloInstance.setMessage("new Hi", { from: "you-account-address" })
Итак, в основном все вызовы асинхронные. Во-первых, вы вызываете HelloWorld.deployed()
, поскольку при развертывании контрактов с трюфелем трюфель создает папку с именем «build», в которой сохраняются контракты со всеми необходимыми данными, поэтому вам не нужно указывать адрес или abi. Это полностью отличается от использования web3.js, в котором вам нужно указать оба.
Тогда вы можете просто вызывать методы.
Более подробную информацию вы можете найти здесь https://www.trufflesuite.com/docs/truffle/getting-started/interacting-with-your-contracts