Ist es möglich, der ABI manuell Funktionen hinzuzufügen, insbesondere die Funktionen getProduct und addProductToStore? Macht es einen Unterschied? Habe bereits versucht, Build zu löschen + neu zu kompilieren + neu zu migrieren, dasselbe Problem. Glauben Sie, dass es ein Problem mit dem Build-Prozess von Truffle ist, der die Artefakte beschädigt?
Ähnlich wie bei diesem Problem: https://github.com/trufflesuite/truffle/issues/685
Remix:
[
{
"constant": true,
"inputs": [],
"name": "productIndex",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_productId",
"type": "uint256"
}
],
"name": "getProduct",
"outputs": [
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "string"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint256"
},
{
"name": "",
"type": "uint8"
},
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_name",
"type": "string"
},
{
"name": "_category",
"type": "string"
},
{
"name": "_imageLink",
"type": "string"
},
{
"name": "_descLink",
"type": "string"
},
{
"name": "_auctionStartTime",
"type": "uint256"
},
{
"name": "_auctionEndTime",
"type": "uint256"
},
{
"name": "_startPrice",
"type": "uint256"
},
{
"name": "_productCondition",
"type": "uint256"
}
],
"name": "addProductToStore",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}
]
Lokale Json-Datei:
"abi": [
{
"constant": true,
"inputs": [],
"name": "productIndex",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}
]
Dieses Problem wurde in der Vergangenheit oft behoben, aber Sie können es definitiv loswerden, indem Sie auf Truffle 3.x herunterstufen, den Ordner build/contracts/ löschen (aber sichern Sie ihn, nur für den Fall!) und tun Sie truffle compile --all
.
Außerdem können Sie natürlich alle Informationen zu Funktionen beliebig in die JSON-Datei einfügen, sie müssen nur dem Solidity-Code entsprechen.
jamacus_13
Nikita Fuchs