TimeCrowdsale.open() 总是 returns 在部署到开发网络后关闭
TimeCrowdsale.open() always returns as closed after deployed to development network
简而言之,我不明白为什么我部署的 TimedCrowdsale 永远不会打开
将 TimeCrowdsale 合约部署到 Truffle 开发网络
在我的迁移脚本中,我部署了 TimeCrowdsale 合同。
部署后,我意识到众筹永远不会进入开放状态。每次我 运行 调试脚本都会得到相同的结果。
Executing crowdsale_debug.js
crowdsale open?: false
crowdsale opening time: 1641354700
crowdsale closing time: 1641355000
Latest block timestamp: 1641354615
TimedCrowdsale.sol的isOpen()函数如下
function isOpen() public view returns (bool) {
return block.timestamp >= _openingTime && block.timestamp <= _closingTime;
}
我知道在测试中您可以使用 openzep testhelpers 来提前时间。但是我将如何在测试之外这样做呢?
区块时间戳低于开盘时间。所以这部分表达式 returns false
// 1641354615 >= 1641354700 // false
block.timestamp >= _openingTime
导致 isOpen()
函数 return false
.
您可以使用 evm_increaseTime
JSON-RPC 方法增加 Ganache(Truffle 开发网络)时间,将秒数作为唯一参数传递给它。
在测试脚本之外,您可以向本地 Ganache 网络发送 CURL 请求:
curl -X POST \
http://localhost:7545 \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "1.0",
"id": "curltest",
"method": "evm_increaseTime",
"params": [
100000
]
}'
简而言之,我不明白为什么我部署的 TimedCrowdsale 永远不会打开
将 TimeCrowdsale 合约部署到 Truffle 开发网络
在我的迁移脚本中,我部署了 TimeCrowdsale 合同。 部署后,我意识到众筹永远不会进入开放状态。每次我 运行 调试脚本都会得到相同的结果。
Executing crowdsale_debug.js
crowdsale open?: false
crowdsale opening time: 1641354700
crowdsale closing time: 1641355000
Latest block timestamp: 1641354615
TimedCrowdsale.sol的isOpen()函数如下
function isOpen() public view returns (bool) {
return block.timestamp >= _openingTime && block.timestamp <= _closingTime;
}
我知道在测试中您可以使用 openzep testhelpers 来提前时间。但是我将如何在测试之外这样做呢?
区块时间戳低于开盘时间。所以这部分表达式 returns false
// 1641354615 >= 1641354700 // false
block.timestamp >= _openingTime
导致 isOpen()
函数 return false
.
您可以使用 evm_increaseTime
JSON-RPC 方法增加 Ganache(Truffle 开发网络)时间,将秒数作为唯一参数传递给它。
在测试脚本之外,您可以向本地 Ganache 网络发送 CURL 请求:
curl -X POST \
http://localhost:7545 \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "1.0",
"id": "curltest",
"method": "evm_increaseTime",
"params": [
100000
]
}'