Solidity

使用 Meteor 和 TemplateVar 在 Javascript 中部署新合約時出錯

  • October 24, 2018

我正在嘗試使用 Meteor 和 TemplateVar 在點擊按鈕時創建一個新契約。相關程式碼為:

Template.Borrower.events({
 'click button'(event, instance) {
   // Create new Borrower
   var _borrower = "ABC"

   alert("I am working on it...")

   web3.eth.accounts.wallet.add("0x...");

   var newBorrower = web3.eth.contract(borrowerABIArray).new(_borrower,{from:eth.accounts[0],data:borrowerData,gas:500000}, function(err, newContract){
   if(!err) {

     if(!newContract.address) {
       alert("Contract transaction sent: TransactionHash: " + newContract.transactionHash + " waiting to be mined...");

     } else {
       alert("Contract mined! Address: " + newContract.address);
     }

   }
});

我什至沒有收到錯誤,它只顯示第一條消息“我正在處理它……”然後什麼也沒有。我已登錄 Metamask,所以我的錢包已解鎖,但我也嘗試解鎖它,但也沒有用。

當我直接使用 Remix 部署合約時,它需要不到 300000 的氣體,所以它不會是氣體問題。

謝謝你的幫助。

所以我想通了。我首先需要將 newBorrower 定義為合約的新實例:

newBorrower = new web3.eth.contract(borrowerABIArray)

然後程式碼工作並探勘一個新的借款人。

引用自:https://ethereum.stackexchange.com/questions/38827