Как развернуть контракт в тестовой сети ganache и взаимодействовать с ним?
Я получаю следующую ошибку при попытке развернуть мой контракт
Ошибка: Миграции не были развернуты в обнаруженной сети (несоответствие сети / артефактов) по адресу /Users/rohank2/.nvm/versions/node/v8.11.1/lib/node_modules/truffle/build/webpack:
Я использовал init для трюфелей, чтобы создать свой собственный трюфельный проект. Я инициализировал умный контракт под названием "Миграции".
вот код для этого умного контракта:
pragma solidity ^0.4.23;
contract Migrations{
address public admin;
struct Bank{
string bankname;
string PWCcode;
}
struct graybarbranch{
string branchname ;
uint currentapr;
uint currentdebt;
uint amtreturned;
uint totalborrowed;
string bankborrowedfrom;
}
mapping(address=>Bank) public Banks;
event graybar(address accountaddress,string branchname,uint totalamt);
mapping(address=>graybarbranch) public graybarbranches;
constructor() public {
admin =msg.sender;
}
function borrow(address from, address to,uint currentapr,uint currentamt) public {
graybarbranches[to].bankborrowedfrom=Banks[from].bankname;
graybarbranches[to].currentapr=currentapr;
graybarbranches[to].totalborrowed+=currentamt;
graybarbranches[to].currentdebt=graybarbranches[to].totalborrowed-graybarbranches[to].amtreturned;
}
function ret(address to,uint amt) public {
graybarbranches[to].amtreturned+=amt;
graybarbranches[to].currentdebt=graybarbranches[to].totalborrowed-graybarbranches[to].amtreturned;
}
function initializebank(string bankname,string PWCcode,address ad)public{
Banks[ad].bankname=bankname;
Banks[ad].PWCcode = PWCcode;
}
function initializegraybar(address ad,string branchname) public {
graybarbranches[ad].branchname=branchname;
graybarbranches[ad].currentapr=0;
graybarbranches[ad].currentdebt=0;
graybarbranches[ad].totalborrowed=0;
graybarbranches[ad].amtreturned=0;
}
function display(address ad) public{
emit graybar(ad,graybarbranches[ad].branchname,graybarbranches[ad].totalborrowed);
}
}
и вот файлы миграции:
var Migrations = artifacts.require("Migrations");
module.exports = function(deployer) {
deployer.deploy(Migrations);
};
и, наконец, это мой файл truffle.js:
module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 7545,
network_id: "*"
}
}
};
Не знаю, как взаимодействовать с договором.
1 ответ
Чтобы развернуть контракт на Ganache, запустите следующую команду: $ truffle migrate Вы получите txHash и адрес контракта на консоли. Вы можете использовать адрес контракта для взаимодействия с консолью Geth.
Чтобы взаимодействовать с Ganache Client, вы должны установить "Geth" на своем компьютере.
Запустите следующие команды:
- $ geth attach http://127.0.0.1:7545/
- Вы получите "Добро пожаловать в консоль Geth Javascript!" сообщение и командная строка для взаимодействия блокчейна.
- Используйте eth.getCode({contract_address}), чтобы передать адрес контракта, который вы получили при развертывании трюфеля.