Truffle 初始迁移合约(Migrations.sol)
要使用Truffle迁移功能,必须首先部署一个初始迁移合约,此合约包含特定接口。
使用 truffle init初始化项目时,会自动创建初始迁移合约,及其迁移脚本:
contracts/Migrations.sol 初始迁移合约
migrations/1_initial_migration.js 迁移脚本
对于大多数项目,此合约将作为第一个迁移任务部署,并且以后不会再更新。
文件名: contracts/Migrations.sol
pragma solidity ^0.4.8; contract Migrations { addresspublic
owner; // 需要一个函数签名为“last_completed_migration()”的函数,返回一个uint。 uint
public
last_completed_migration; modifier restricted() {if
(msg.sender == owner) _; } function Migrations() { owner = msg.sender; } // 需要一个函数签名为“setCompleted(uint)”的函数。 function setCompleted(uint
completed) restricted { last_completed_migration = completed; } function upgrade(address new_address) restricted { Migrations upgraded = Migrations(new_address); upgraded.setCompleted
(last_completed_migration); } }
为了使用迁移功能,必须先部署 Migrations合约。为此,Truffle自动创建下面的迁移脚本:
文件名: migrations/1_initial_migration.js
var
Migrations = artifacts.require
("Migrations"
); module.exports = function
(deployer) { // 部署Migrations deployer.deploy
(Migrations); };
接下来,你就可以创建新的迁移脚本,部署自己的合约。
Truffle 部署器(Deployer): 迁移脚本中,使用部署器(Deployer)来部署合约。 部署器(Deployer)将按正确的代码顺序执行: // 先部署A,再部署Bdeployer.deploy(A);de ...