草庐IT

EOSIO源码分析 - EOSIO合约开发库

EOSIO合约开发库通过简单的源码分析,可以很清楚的看到EOSIO合约开发库在目录libraries下,各个库的功能如下:注意:由于篇幅问题,只介绍最主要的,常用的CDT:总目录|----libraries:合约开发库总目录|----boost:经过裁剪的boost库|----eosiolib:链提供的合约API接口|----capi:访问链的宿主函数API接口|----contracts:宿主函数API的部分封装|----action.hpp:对action分装,调用内联action,使用此类|----contract.hpp:合约基类|----multi_index.hpp:合约中最重要的

python - ibpy:提取多个合约的 API 响应

我有兴趣使用ibpy和InteractiveBrokersAPI来获取给定100只股票的实时报价数据。下面的代码来自网络上的示例,适用于一只股票。谁能告诉我如何同时处理100只股票?Python脚本:fromib.optimportibConnection,messagefromib.ext.ContractimportContractfromtimeimportsleepdefmy_callback_handler(msg):inside_mkt_bid=''inside_mkt_ask=''ifmsg.field==1:inside_mkt_bid=msg.priceprint'b

solidity使用create2预测合约地址|create2用法|智能合约create2

此篇文章教你如何在部署合约前就可以确定合约地址一、合约源码让我们创建一个工厂合约,它包含两个合约。第一个是Demo合约,其中一个函数可以读取全县所有者的钱包地址。第二个合约是工厂合约,它可以在部署Demo合约前获取其合约地址。这个合约将使用Solidity文档中所说的CREATE2操作码:加“盐”的合约创建/create2。//SPDX-License-Identifier:MITpragmasolidity^0.8.0;contractContractDemo{addresspublicowner;//Onlyownerscancalltransactionsmarkedwiththismo

【学习笔记】智能合约引擎

图片来源:https://www.researchgate.net/publication/336453428_Detecting_nondeterministic_payment_bugs_in_Ethereum_smart_contracts/figures?lo=1智能合约是区块链技术的核心。我们可以根据以下公式定义智能合约智能合约=事务处理和保存机制+完备的状态机智能合约的事务主要包含需要发送的数据,事件是描述数据的信息;智能合约的运行需要可信任的执行环境和系统。虚拟机或者Docker为智能合约提供计算资源和运行容器。今天为大家总结智能合约引擎的一些内容,包括功能结构,设计原则,比较不

智能合约 -- 常规漏洞分析 + 实例

 1.重入攻击漏洞分析攻击者利用合约漏洞,通过fallback()或者receive()函数进行函数递归进行持续取钱。刚才试了一下可以递归10次,貌似就结束了(version:0.8.20)。直接看代码:银行合约:有存钱、取钱、查看账户余额等函数。攻击合约:攻击、以及合约接受以太币就触发的receive()函数。分析:攻击者通过Attack合约调用attack()接口,先存钱,后进行取钱;那么Bank会向该合约发送以太币,进而触发Attack合约的receive()函数,然后又进行取钱操作,由于形成递归操作,Bank合约的withdraw()接口的,账户置0操作无法执行,从而形成无限递归。//

solidity实现账户地址向合约账户转账

一个合约最多有一个receive函数,声明函数为:receive()externalpayable{…}不需要function关键字,也没有参数和返回值并且必须是 external 可见性和 payable修饰.它可以是virtual的,可以被重载也可以有修改器modifier。在对合约没有任何附加数据调用(通常是对合约转账)是会执行receive函数. 例如 通过.send()or.transfer()如果receive函数不存在, 但是有payable 的fallback回退函数那么在进行纯以太转账时,fallback函数会调用.如果两个函数都没有,这个合约就没法通过常规的转账交易接收以太

2023安全与软工顶会/刊中区块链智能合约相关论文

2023安全与软工顶会/刊中区块链智能合约相关论文前言软工顶会ISSTAFSEASEICSE软工顶刊TOSEMTSE安全顶会S&PUSENIXSecurityCCSNDSS前言主要整理了2023年四大安全顶会、四大软工顶会和两个软工顶刊中,有关区块链智能合约的相关论文。搜索方式是:在dblp中该顶会的页面列表直接使用Ctrl+F搜索block、smartcontract,所以如若名字中没有,可能会有遗漏。搜集包含有:软工顶会:ISSTA、FSE、ASE、ICSE软工顶刊:TOSEM、TSE安全顶会:S&P、USENIXSecurity、CCS、NDSS软工顶会ISSTA1、ItyFuzz:Sn

猿创征文 | Solidity 智能合约技术成长之路

Solidity智能合约入门Solidity是链上智能合约的开发语言,链上智能合约相当于传统行业的后端,链上应用基本都是由合约+前端组成的,虽然不推荐,但部分链上应用也会加入后端进行数据存储,以降低用户的使用成本。Solidity这门开发语言并不复杂,只需要您稍微有一点儿编程基础,英文词汇量达到中学生水平,都能看懂基本的合约代码逻辑即可。最开始强烈推荐先入门ERC20和ERC721,理解之后,再去看关联的ERC1155、ERC4907等以太坊标准,都不会觉得有什么理解上的太大压力。除此之外,以太坊标准ERC为开发者提供了大量开源的合约接口,开发者可轻松用于构建各类链上实用功能。Solidity

区块链智能合约代码示例

        以下是一个简单的区块链智能合约代码示例:pragmasolidity^0.4.17;contractSimpleContract{uintpublicmyData;functionsetMyData(uintnewData)public{myData=newData;}}该合约具有以下功能:定义了一个名为SimpleContract的合约。定义了一个名为myData的公共整数变量。定义了一个名为setMyData的公共函数,该函数接受一个uint类型的参数newData,并将其设置为myData的新值。在Solidity编写智能合约时,需要注意以下几点:合约必须包含pragma

【区块链Solidity】智能合约与Solidity介绍

目录智能合约Solidity语言简介 Solidity语言特性智能合约智能合约的英文是SmartContract最早是尼克丶萨博在1995年就提出了智能合约的概念~就是将法律条文写成可执行代码VitalikButerin(V神)把它引入到以太坊中,表示以太坊程序能自动执行及无法被干预的特点。以太坊是区块链与智能合约的完美结合,通过编写智能合约可以实现强大的功能,实现去中心化的应用开发。 现在智能合约已经扩展到所有的区块链平台,很多时候人们把超级账本Hyperledger,EOS等区块链平台的程序也称为‘智能合约’智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转智能合约本身