不好意思還是新手,排版可能不美
想問我用solidity在Remix上試用Remix VM部屬合約,也用了個html網頁在自己電腦的VScode,html的ABI與合約地址是Remix編譯會出現的ABI,以及合約部屬後的地址,但是都串聯不了...html會出現以下錯誤訊息
Uncaught TypeError: contractInstance.methods.admin is not a function
at contract.html:334:34
contract.html:314 Uncaught (in promise) TypeError: contractInstance.methods.deployEvi is not a function
at deployEvi (contract.html:314:44)
at HTMLButtonElement.onclick (contract.html:17:35)
想問這是什麼意思,需要修改什麼
也想問問大家有沒有html串聯solidity的參考資料,找了好久都還是串不起來 > <
感謝大家!!
html碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Clinical Trial Contract Interaction</title>
<script src="https://cdn.jsdelivr.net/npm/web3@1.5.0/dist/web3.min.js"></script>
</head>
<body>
<h1>Clinical Trial Contract Interaction</h1>
<div>
<h2>Contract Information</h2>
<p><strong>Admin:</strong> <span id="adminAddress"></span></p>
<p><strong>Contract Address:</strong> <span id="contractAddress"></span></p>
</div>
<script>
// 配置 Web3 提供者
const web3 = new Web3(Web3.givenProvider || 'http://localhost:7545');
// 合約 ABI
const abi = [
// Your ABI Here
];
// 合約地址
const contractAddress = 'Your Contract Address Here';
// 初始化合約實例
const contractInstance = new web3.eth.Contract(abi, contractAddress);
// 獲取並填充合約和管理員信息
contractInstance.methods.admin().call().then(admin => {
document.getElementById('adminAddress').textContent = admin;
document.getElementById('contractAddress').textContent = contractAddress;
});
</script>
</body>
</html>