Truffle

設置開發環境

要求

在我們開始之前,有一些技術要求。 請安裝以下內容: 要求:

針對 Windows 的建議 如果您在 Windows 上運行 Truffle,您可能會遇到一些可能阻止 Truffle 正確執行的命名衝突。 請參閱解決命名衝突部分的解決方案。

Installing Truffle

一旦我們安裝了這些,我們只需要一個命令來安裝 Truffle:

npm install -g truffle

要驗證 Truffle 是否已正確安裝,請在終端上鍵入 truffle version。 如果您看到錯誤,請確保您的 npm 模塊已添加到您的路徑中。

項目創建、編譯和配置

第一步是創建一個 Truffle 項目。 我們將使用 *MegaCoin 作為示例,它創建了一個可以在賬戶之間轉移的代幣:

為您的 Truffle 項目創建一個新目錄

mkdir MegaCoin
cd MegaCoin

初始化你的項目:

要初始化您的項目,請使用以下命令

truffle init

完成此操作後,您現在將擁有一個包含以下項目的項目結構:

  • contract/: Solidity 合約目錄

  • migrations/:可編寫腳本的部署文件的目錄

  • test/:用於測試應用程序和合約的測試文件目錄

  • truffle-config.js:松露配置文件

創建合同

您可以編寫自己的智能合約或下載 BEP20 代幣智能合約模板。

編譯合約

要編譯 Truffle 項目,請切換到項目所在目錄的根目錄,然後在終端中鍵入以下內容:

truffle compile

為 PSC 配置Truffle

  • 轉到 truffle-config.js

  • 使用 bsc-network-credentials 更新 truffle-config。

const HDWalletProvider = require('@truffle/hdwallet-provider');
const fs = require('fs');
const mnemonic = fs.readFileSync(".secret").toString().trim();

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",     // Localhost (default: none)
      port: 8545,            // Standard BSC port (default: none)
      network_id: "*",       // Any network (default: none)
    },
    testnet: {
      provider: () => new HDWalletProvider(mnemonic, `https://data-seed-prebsc-1-s1.binance.org:8545`),
      network_id: 97,
      confirmations: 10,
      timeoutBlocks: 200,
      skipDryRun: true
    },
    bsc: {
      provider: () => new HDWalletProvider(mnemonic, `https://bsc-dataseed1.binance.org`),
      network_id: 56,
      confirmations: 10,
      timeoutBlocks: 200,
      skipDryRun: true
    },
  },

  // Set default mocha options here, use special reporters etc.
  mocha: {
    // timeout: 100000
  },

  // Configure your compilers
  compilers: {
    solc: {
      version: "^0.6.12", // A version or constraint - Ex. "^0.5.0"
    }
  }
}

請注意,它需要為 Provider 傳遞助記詞,這是您要部署的帳戶的助記詞。 在根目錄中創建一個新的 .secret 文件並輸入您的 12 字助記詞助記詞以開始使用。 要從 metamask 錢包中獲取種子詞,您可以轉到 Metamask 設置,然後從菜單中選擇安全和隱私,您將在其中看到一個顯示種子詞的按鈕。

在 PSC 網絡上部署

在項目目錄的根目錄中運行此命令:

$ truffle migrate --network testnet

合約將部署在 Poly Chain Chapel 測試網上,如下所示:

1_initial_migration.js
======================

   Deploying 'Migrations'
   ----------------------
   > transaction hash:    0xaf4502198400bde2148eb4274b08d727a17080b685cd2dcd4aee13d8eb954adc
   > Blocks: 3            Seconds: 9
   > contract address:    0x81eCD10b61978D9160428943a0c0Fb31a5460466
   > block number:        3223948
   > block timestamp:     1604049862
   > account:             0x623ac9f6E62A8134bBD5Dc96D9B8b29b4B60e45F
   > balance:             6.24574114
   > gas used:            191943 (0x2edc7)
   > gas price:           20 gwei
   > value sent:          0 ETH
   > total cost:          0.00383886 ETH

   Pausing for 5 confirmations...
   ------------------------------
   > confirmation number: 2 (block: 3223952)
   > confirmation number: 3 (block: 3223953)
   > confirmation number: 4 (block: 3223954)
   > confirmation number: 6 (block: 3223956)

   > Saving migration to chain.
   > Saving artifacts
   -------------------------------------
   > Total cost:          0.00383886 ETH


Summary
=======
> Total deployments:   1
> Final cost:          0.00383886 ETH

請記住您提供的地址、transaction_hash 和其他詳細信息會有所不同,以上只是提供一個結構概念。

恭喜! 您已成功部署 PRC20 智能合約。

現在您可以與智能合約進行交互。 您可以在此處查看部署狀態: https://scan.polysmartchain.com/

Last updated