- 浏览: 765164 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
// SPDX-License-Identifier: MIT pragma solidity >= 0.6.0 < 0.9.0; import '@openzeppelin/contracts/utils/math/SafeMath.sol'; import "hardhat/console.sol"; interface ICoinFlip{ function flip(bool _guess) external returns (bool);//这里函数可见性要改成external } contract CoinFlip2 { using SafeMath for uint256; uint256 public consecutiveWins; uint256 public lastHash; uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968; address public caddr; constructor(address addr) public { consecutiveWins = 0; caddr = addr; } function flip(bool _guess) public returns (bool) { uint256 blockValue = uint256(blockhash(block.number.sub(1))); uint256 coinFlip = blockValue.div(FACTOR); bool side = coinFlip == 1 ? true : false; ICoinFlip cf = ICoinFlip(caddr); cf.flip(side); } }
发表评论
-
TypeError:ethers_1.getAddress
2024-04-29 10:45 282package.json 添加:"@nomicfou ... -
solidity
2023-02-25 14:23 12一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
solidity
2023-02-25 14:23 11一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
solidity
2023-02-25 14:23 267一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
Address
2023-02-23 10:54 5// contracts/Box.sol // SPDX ... -
Address
2023-02-23 10:50 230// contracts/Box.sol // SPDX ... -
Beacon
2023-02-20 11:45 242Beacon a.Implementation地址并不存放在P ... -
UUPS
2023-02-17 16:16 273a.Proxy直接把所有的请求都通过delegatecall丢 ... -
Transparent
2023-02-16 15:44 224Transparent: a.如果Proxy合约发现自己被Pr ... -
string转bytes
2023-02-16 11:04 294const data = Buffer.from(''); ... -
hardhat命令
2023-02-13 09:58 3521.前置准备,运行一个新项目 mkdir my-project ... -
multicall
2023-01-31 20:11 201multicall的solidity调用与ethers.js调 ... -
检查是否是721
2023-01-31 15:18 162// SPDX-License-Identifier: M ... -
EVM操作码
2023-01-25 10:33 3042.栈和内存操作码 2.1 POP:取出栈顶元素 2.2 PU ... -
计算合约地址
2023-01-19 11:27 252EVM会根据发送者地址和nonce经过RLP编码后再进行kec ... -
标准修饰符
2023-01-18 17:03 1641.internal:类似c++中的protected,通过J ... -
ABI编码函数
2023-01-17 10:40 3131. abi.encode()returns(bytes):对 ... -
数据位置
2023-01-17 10:24 1841.函数参数包括返回的参数默认是memory 2.局部变量默认 ... -
随机数
2023-01-17 10:06 204https://www.paradigm.xyz/2023/0 ... -
extcodesize
2023-01-16 11:16 298extcodesize取出的byte code长度,若长度大于 ...
相关推荐
- `Migrations.sol`: 这个合约用于在Tron网络上部署其他合约,通常是Truffle框架的一部分。 - `test/`: 这个目录可能包含测试脚本,用于验证合约的行为是否符合预期。 - `truffle-config.js`: Truffle配置文件,定义...
智能合约不仅在金融公司中得到应用,在其他多个行业也开始发挥重要作用,这表明其已经成为一个不可逆转的技术趋势。随着技术的进一步发展,智能合约有望在更多领域展现其自动化和优化流程的能力,从而实现各种业务...
公链中的数据都是公开的, 如何兼顾数据隐私,而又准确提供历史交易记录,我发现了一个非常优雅解决方案: 状态变量中只应该保存 Solidity 智能合约需要使用的数据, 而其他数据都应该利用智能合约的事件机制转储到...
形式化验证是一种使用数学中的形式化方法对算法的性质进行证明或证伪的技术。主要有两种方法: 1. **模型检验**:列出系统的所有可能状态,并逐一进行检验。这种方法适用于小型系统,可以实现全自动化。 2. **...
`delegatecall`是一种特殊类型的调用,它允许合约调用其他合约,并且执行过程中保持调用者的`msg.sender`和`msg.value`不变,但使用被调用合约的代码执行。如果使用不当,它可能会导致调用者合约的状态被错误地修改...
例如,如果你想要创建一个符合ERC20标准的通证,你可以直接使用OpenZeppelin的`ERC20`合约,它已经包含了转移、批准和其他必要功能的实现,这样就避免了从零开始编写所有逻辑。 OpenZeppelin还引入了一些关键的安全...
- **蜜罐陷阱合约**:这是一种恶意合约,旨在模仿正常合约的行为来吸引用户或投资者,从而实施诈骗或其他恶意活动。 - **挑战**:随着智能合约的应用范围扩大,其安全性问题也日益凸显,尤其是蜜罐陷阱合约的隐蔽性...
智能合约的使用通常与分布式应用程序(DApps)开发、去中心化金融(DeFi)、身份验证、供应链管理、投票和其他领域相关联。在mtxm项目中,这些合约可能被设计用于实现特定的功能,比如创建去中心化的交易市场、实施...
这份白皮书详细介绍了12种智能合约在商业及其他领域的使用案例,并由尼克·萨博(Nick Szabo)撰写了前言。尼克·萨博是智能合约领域的先驱者,早在20多年前就提出了智能合约的概念。这份文件不仅涉及技术方面,还...
在本项目中,我们探索了如何使用Vue.js前端框架、Node.js后端服务以及Ganache作为以太坊区块链模拟器来本地部署并调用基于web3的智能合约。这个项目涉及的技术栈广泛,涵盖了前端开发、后端开发以及区块链应用开发的...
【资源说明】 区块链毕业设计 基于智能合约和React前端的去中心化学生...4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
1. **合约编写**:开发者使用Solidity或其他支持的语言编写智能合约代码,这些代码定义了合约的规则和操作,比如转移代币、执行条件判断等。 2. **编译**:编写好的智能合约代码需要被编译成EVM(以太坊虚拟机)或...
U3无限升级合约和补丁!"是指一种方法,通过这个方法,用户可以确保他们的Avast! U3版本能够持续获得更新和升级,即使官方可能已经停止对某些版本的支持。这通常是通过非正式的补丁或许可证文件来实现的,这些文件...
3. gas 限制:智能合约应该对gas的使用进行限制,以防止DoS攻击。 4. 代码审查:智能合约的代码应该经过严格的审查,以防止Reentrancy漏洞和其他安全漏洞。 智能合约消息调用攻防是指智能合约之间的消息调用可能...
建议尝试使用其他测试网,如Rinkeby,并确保正确配置了MetaMask和其他相关工具。 #### 6. ERC721智能合约与ERC20代币的交互 - **交互设计**:可以在ERC721智能合约中编写一个方法,该方法检查是否有特定数量的ERC...
复制机密资料须得到权利方明确许可,且必须妥善保管,一旦发现不当使用或泄露,应立即通知权利方并采取补救措施。义务方不能将机密资料用于未经权利方同意的其他用途。如果因为法律要求必须披露,义务方需提前通知...
2. 编译合约:使用solc或者其他Solidity编译器将源代码编译成字节码,以便部署到以太坊网络。 3. 部署合约:使用web3.js的`contract.deploy()`方法,将编译后的合约部署到网络上,获取合约地址。 4. 交互合约:部署...
2. 土地信息:合约需详细描述出租的土地,包括地理位置、面积、四至边界、土地性质(如农业用地、工业用地、商业用地等)、权属证明(如土地使用权证)等。 3. 出租条款:这部分会规定租金的金额、支付方式(一次性...
毕业设计 基于以太坊的区块链智能合约彩票源码+详细文档+全部资料(高分项目).zip毕业设计 基于以太坊的区块链智能合约彩票源码+详细文档+全部资料(高分项目).zip毕业设计 基于以太坊的区块链智能合约彩票源码+...