Truffle 初始迁移合约(Migrations.sol)

要使用Truffle迁移功能,必须首先部署一个初始迁移合约,此合约包含特定接口。

使用 truffle init初始化项目时,会自动创建初始迁移合约,及其迁移脚本:

contracts/Migrations.sol 初始迁移合约

migrations/1_initial_migration.js 迁移脚本

对于大多数项目,此合约将作为第一个迁移任务部署,并且以后不会再更新。

文件名: contracts/Migrations.sol

pragma solidity ^0.4.8;
contract Migrations {
  address 

public

owner; // 需要一个函数签名为“last_completed_migration()”的函数,返回一个uint。 u

int

public

last_completed_migration; modifier restricted() {

if

(msg.sender == owner) _; } function Migrations() { owner = msg.sender; } // 需要一个函数签名为“setCompleted(uint)”的函数。 function setCompleted(u

int

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 部署器

Truffle 部署器(Deployer):  迁移脚本中,使用部署器(Deployer)来部署合约。 部署器(Deployer)将按正确的代码顺序执行: // 先部署A,再部署Bdeployer.deploy(A);de ...