• 官网
  • 中文
  • English
  • Español
  • 日本語
  • 한국어
  • Deutsch
  • Nederlands
  • Portuguese (Br)
  • French
  • Italiano
Show / Hide Table of Contents
  • NEO 基础知识
    • NEO 白皮书
    • NEO Contract白皮书
    • 共识机制
      • 共识机制白皮书
      • 共识机制图解
  • NEO 节点
    • NEO 节点介绍
    • NEO-GUI
    • NEO-CLI
      • 安装
      • NEO-CLI 命令参考
      • API 参考
        • dumpprivkey
        • getaccountstate
        • getapplicationlog
        • getassetstate
        • getbalance
        • getbestblockhash
        • getblock
        • getblock
        • getblockcount
        • getblockhash
        • getblocksysfee
        • getconnectioncount
        • getcontractstate
        • getnewaddress
        • getrawmempool
        • getrawtransaction
        • getstorage
        • gettxout
        • getpeers
        • getversion
        • invoke
        • invokefunction
        • invokescript
        • listaddress
        • sendfrom
        • sendrawtransaction
        • sendtoaddress
        • sendmany
        • validateaddress
    • NEO-Python
  • NEO 网络
    • 测试网
    • 搭建私有链
    • 快速同步区块
    • 网络协议
  • NEO 开发工具
    • NEO SDK
      • 欢迎使用 NEO SDK
      • NEO SDK 常见用法
  • 智能合约
    • 智能合约介绍
    • 快速入门
      • 如何开始
        • 使用C# (Windows)
        • 使用C# (macOS)
        • 使用C# (uubuntu)
        • 使用 Java
        • 使用 Python
      • 合约编写限制
      • 测试
      • 部署合约
      • 调用合约
    • 开发参考
      • API 参考
        • NEO
        • System
      • 框架
        • .net 框架
          • NEO
            • Account
            • Asset
            • Block
            • Blockchain
            • Contract
            • Enrollment
            • Header
            • Runtime
            • Storage
            • StorageContext
            • Transaction
            • TransactionAttribute
            • TransactionInput
            • TransactionOutput
            • TriggerType
            • Validator
          • System
            • ExecutionEngine
    • 合约示例与教程
      • Hello World
      • Lock(锁仓合约)
      • Domain(域名系统)
      • 鉴权合约示例教程
      • 锁仓合约的部署
    • 参数和返回值
    • 智能合约触发器
    • 系统使用费
  • 常见问题
  • 交易所对接指南
    • v2.7.3
    • v2.7.1
    • v2.6.0

智能合约示例——Lock(锁仓合约)

public class Lock : SmartContract
{
    public static bool Main(uint timestamp, byte[] pubkey, byte[] signature)
    {
        Header header = Blockchain.GetHeader(Blockchain.GetHeight());
        if (header.Timestamp < timestamp)
            return false;
        return VerifySignature(signature, pubkey);
    }
}

该合约实现了一个这样的功能:指定一个时间戳(timestamp),当区块链系统的时间到达该指定的时间之前,任何人也不能从该合约中将资金取出,当区块链系统的时间过了指定的时间后,合约持有者可以将资金取出。

代码中通过区块链中最新区块的时间来获得当前时间(误差大约在 15 秒以内)。详情可参考 Blockchain 类, Header 类。

该合约用于部署到区块链上供其它人调用,如果想在本地部署锁仓合约,请参考 锁仓合约的部署。

  • Improve this Doc
Back to top Copyright © 2014-2018 NEO