In meinem Kontakt habe ich mehrere Importe und meinen Vertrag erfolgreich bereitgestellt. Dies ist meine Vertragsadresse0xc2d4d839001f9d985618a22b89155ea8d6550ae6
Wie bekomme ich das abi meiner Verträge :
pragma solidity ^0.4.18;
import './DeveloperToken.sol';
import 'zeppelin-solidity/contracts/crowdsale/CappedCrowdsale.sol';
import 'zeppelin-solidity/contracts/crowdsale/RefundableCrowdsale.sol';
contract DeveloperCrowdsale is CappedCrowdsale, RefundableCrowdsale {
Ich habe das versucht:
var compiled = web3.eth.compile.solidity(contractaddress);
var code = compiled.code;
var abi = compiled.info.abiDefinition;
var contract = web3.eth.contract(abi);
Aber es funktioniert nicht. Wie bekomme ich das abi meines Smart Contracts?
Speichern Sie Ihren Quellcode in einer Datei und verwenden Sie den Solidity-Compiler, um die ABI zu generieren.
Du kannst es mit installieren
npm install -g solc
oder
yarn global add solc
und führen Sie es dann gegen Ihren Quellcode aus
solcjs --abi contract.sol
Es generiert die ABI in Ihrem aktuellen Verzeichniscontract_sol_[ContractName].abi
Die einfachste Lösung, um das ABI zu erhalten, ist die Verwendung von Remix :
Zum Beispiel, wenn ich Ihren Code leicht ändere, um wie folgt zu sein
pragma solidity ^0.4.18;
import 'https://github.com/OpenZeppelin/zeppelin-solidity/contracts/token/ERC20/ERC20.sol';
import 'https://github.com/OpenZeppelin/zeppelin-solidity/contracts/crowdsale/validation/CappedCrowdsale.sol';
import 'https://github.com/OpenZeppelin/zeppelin-solidity/contracts/crowdsale/distribution/RefundableCrowdsale.sol';
contract DeveloperToken is ERC20 {
}
contract DeveloperCrowdsale is CappedCrowdsale, RefundableCrowdsale {
}
Dann können Sie die ABI im Detailbereich der Registerkarte „Kompilieren“ abrufen, indem Sie diesen einfachen Schritten folgen:
Sie werden jedoch feststellen, dass es zwei Unterschiede zwischen meinen Importaussagen und Ihren gibt:
Es sieht so aus, als ob der Code, den Sie haben, aus einem Truffle - Projekt stammt. In diesem Fall wird beim Aufrufen truffle compile
eine DeveloperCrowdsale.json-Datei im Verzeichnis ../build/contracts erstellt. Dieser JSON enthält die ABI.
Chirag Maliwal
Chirag Maliwal