Truffle
設置開發環境
要求
在我們開始之前,有一些技術要求。 請安裝以下內容: 要求:
Windows, Linux or Mac OS X
針對 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