`

智能合约依赖库

    博客分类:
  • EOS
 
阅读更多
Action:这部分定义了查询或发送action的API.在EOS系统中,一个action包括action的作用域,action名称,授权账户与授权等级以及具体的执行代码
1.read_action_data:拷贝当前action数据到指定位置,其中msg指针为待拷贝位置,len为待拷贝数据长度
2.action_data_size:获取当前action数据长度
3.require_recipient:将指定账户添加到通知列表中
4.require_auth:判断指定账户是否位于授权列表中
5.has_auth:判断当前action中是否有指定账户的授权信息,返回bool值
6.require_auth2:判断指定账户与权限等级是否位于授权列表中
7.is_account:判断账户名合法性
8.send_inline:在action的父交易中的上下文中,发送一个内联action
9.send_context_free_inline:在actoin的父交易中的上下文中,发送一个上下文自由的内联action
10.require_write_lock:判断指定账户是否位于写入锁定列表中
11.publication_time:获取公共时间
12.account_name:获取当前action的接收者

Chain文件:这部分定义了查询当前区块链状态信息
1.uint32_tget_active_producers:获取活跃出场节点账户集
其中参数包括两个,producers是一个用于保存返回账户名的buff指针,datalen为返回的数据长度.该函数包括一个前置条件,那就是producers所指向的内在空间必不小于datalen,执行成功后,函数将返回的账户信息注入producers指向的buffer中

Console文件:定义了一些打印文本信息的方法
1.prints:打印字符串变量
2.prints_l:打印指定长度的字符串变量
3.printi:打印一个64位签名整数
4.printui:打印一个64位非签名整数
5.printi128:打印一个128位签名整数
6.printui128:打印一个128位非签名整数
7.printsf:打印一个单精度浮点数
8.printdf:打印一个双精度浮点数
9.printqf:打印值为四倍精度浮点数(即长双精度)
10.printn:打印64位名称作为base32编码的字符串
11.printhex:打印64位名称作为base32编码的字符串

Crypto:读文件定义了一个计算与验证哈希值的C函数
1.assert_sha256:测试从数据生成的sha256哈希是否与提供的校验和匹配
2.voidassert_sha1:测试从数据生成的sha1哈希是否与提供的校验和匹配
3.voidassert_sha512:测试从数据生成的sha512哈希是否与提供的校验和匹配
4.voidassert_ripemd160:测试从数据生成的ripemod160哈希是否与提供的校验和匹配
5.voidsha256:使用sha256散列数据并将结果存储在散列指向的内存中
6.voidsha1:使用sha1散列数据并将结果存储在散列指向的内存中
7.voidsha512:使用sha512散列数据并将结果存储在散列指向的内存中
8.voidripemd160:使用ripemod160散列数据并将结果存储在散列指向的内存中
9.intrecover_key:计算用于给定签名的公钥和用于创建消息的哈希
10.voidassert_recover_key:使用摘要和签名生成的密钥测试给定的公钥

Database:定义了与数据库交互的C函数
1.int32_tdb_store_i64:将记录存储在主64位整数索引表中
2.voiddb_update_i64:更新主64位整数索引表中的记录
3.voiddb_remove_i64:删除主64位整数索引表中的记录
4.int32_tdb_get_i64:获取主64位整数索引表中的记录
5.int32_tdb_next_i64:获取主64位整数索引表中的记录
6.int32_tdb_previous_i64:从主64位整数索引表中获取给定迭代器之前的上一条记录
7.int32_tdb_find_i64:从主64位整数索引表中查找记录
8.int32_tdb_lowerbound_i64:给定主64位整数索引表中的键的下限记录
9.int32_tdb_upperbound_i64:给定主64位整数索引表中的键的上限记录
10.int32_tdb_end_i64:给主64位整数索引表中查找最新的记录
11.int32_tdb_idx64_store:将记录的辅助索引存储在辅助64位整数索引表中
12.voiddb_idx64_update:在辅助64位整数索引表中更新记录的辅助索引
13.voiddb_idx64_remove:在辅助64位整数索引表中删除记录的辅助索引
14.int32_tdb_idx64_next:获取辅助64位整数索引表中的下一个辅助索引
15.int32_tdb_idx64_previous:在辅助64位整数索引表中获取先前的辅助索引
16.int32_tdb_idx64_find_primary:在给定记录的主键的情况下,从辅助64位整数索引表中获取记录的二级索引
17.int32_tdb_idx64_find_secondary:在给定辅助索引键的情况下,从辅助64位整数索引表中获取记录的二级索引
18.int32_tdb_idx64_lowerbound:在给定辅助索引键的情况下,从辅助64位整数索引表中获取记录的二级索引
19.int32_tdb_idx64_upperbound:在给定辅助索引键的情况下,从辅助64位整数索引表中获取记录的二级索引
20.int32_tdb_idx64_end:从辅助64位整数索引表中获取最后一个辅助索引

Database参数
a.scope-:存储二级索引的范围
b.table-:存储二级索引的表名
c.payer-:为此存储空间付款的账户
d.id-:要存储的二级索引的记录的主键
e.secondary-:指向要存储的辅助索引的键的指针
f.iterator-:二级索引的迭代器

System:该文件定义了用于与系统级内在函数交互的API
1.eosio_assert:中止处理此操作并展开所有挂起的更改
2.eosio_assert_message:中止处理此操作并展开所有挂起的更改
3.eosio_assert_code:中止处理此操作并展开所有挂起的更改
4.eosio_exit:在不失败合同的情况下中止执行wasm
5.current_time:获取最后接受的块的时间
6.now:获取当前块的时间(向下舍入到最接近的秒)(即包含此操作的块)

Transaction;该文件定义了发送交易的API
1.send_deferred:发送延期交易
2.cancel_deffered:取消延期交易
3.read_transaction:访问当前正在执行的事务的副本
4.transaction_size:获取当前正在执行的事务的大小
5.taPos_block_num:获取当前正在执行的事务上用于TAPoS的块的编号
6.taPoS_block_prefix:获取当前正在执行的事务用于TAPoS的块的前缀
7.time`[expiration]#(expiration)`:获取当前正在执行的事务的到期时间
8.get_action:从活动事务中检索指示的操作
9.get_context_free_data:检索被签名的交易数据

Transaction参数:
a.sender_id:发件人的ID
b.payer:账户支持RAM
c.serialized_transaction:要延迟的序列化交易的指针
d.size:要保留的数据大小

Privileged:该文件定义了优先级API
1.set_source_limits:设置帐户的资源限制
2.set_proPoSed_producers:设置新的活跃区块生产者提案
3.set_active_producers:设置新的活动生成器,只有在下一轮开始的区块不可逆时,生产者才会被激活
4.is_priviledged:检查账户是否具有特权
5.set_privileged:设置账户的特权状态
6.set_blockchain_parameters_packed:设置区块链关键参数
7.get_blockchain_parameters_packed:获取区块链的关键参数
8.activate_feature:激活新的特征

参数:
a.account:要设置其资源限制的账户的名称
b.ram_bytes:ram限制值
c.net_weight:net净限额
d.cpu_weight:cpu限制值
e.set_proPoSed_producers:提出新的活跃生产者计划
f.producer_data:以适当的生产者计划顺序打包的produce_keys数据
g.producer_data_size:数据缓冲区的大小

Memory:定义了一些分配内存的C函数
1.malloc:分配额外的内存
2.calloc:为计数元素数组分配一块内存,每个计数元素的长度大小为字节,并用0初始化所有位
3.realloc:重新分配给定的内存区域
4.free:释放给定的内存区域

Multi-Index
1.multi_index:通过主迭代器加载对象
2.get_code:返回代码成员属性
3.get_scope:返回范围成员属性
4.lower_bound:搜索具有大于或等于给定主键的最低主键object_type,相当于[,end]
5.upper_bound:搜索具有大于给定主键的最低主键的objec_type,相当于(,end]
6.primary_key:返回可用的主键
7.get_index:返回适当类型的二级索引
8.get:使用主键从表中检索现在对象

参数:
code:拥有该永久表的账户
scope:该表中元素的作用域,即该对象的所有者

get_code函数:返回拥有该表的智能合约账户名

get_scope函数:返回当前接收者代码中作用域标识,可通过这个标识找到主表实例

get函数:根据主键检索并返回表中已存在的对象
分享到:
评论

相关推荐

    201806 智能合约安全之形式化验证研究报告.pdf

    4. **智能合约语言设计**:一些公链平台开始采用Haskell或OCaml等函数式语言,这类语言更易于编写形式化验证相关的开发者库和工具。 5. **赏金猎人机制**:这是一种在智能合约部署后发现漏洞的补救机制,通过奖励...

    Vue+NodeJs+Ganache 本地部署、调用 web3 智能合约区块链.zip

    通过安装`web3`库,Node.js可以与以太坊网络进行交互,读取和写入智能合约。 Ganache是Truffle Suite的一部分,它提供了一个本地以太坊网络,可以快速、安全地进行智能合约测试和开发。在这个项目中,Ganache作为...

    JavaScript_OpenZeppelin Contracts是一个用于安全智能合约开发的库.zip

    JavaScript OpenZeppelin Contracts是一个在智能合约开发领域广泛应用的开源库,专门为以太坊区块链上的DApps(去中心化应用)提供安全、可复用的智能合约代码。这个库由OpenZeppelin团队维护,他们致力于提高智能...

    智能合约投票系统Dapp(truffle + react + solidity)编程作业

    在这个投票系统中,Truffle将帮助开发者快速设置开发环境,管理依赖,以及执行自动化测试,确保智能合约的功能正确无误。 React是Facebook开发的JavaScript库,主要用于构建用户界面,尤其适合单页面应用。在Dapp中...

    智能合约安全最佳实践:防止常见漏洞和攻击.md

    通过提供详细的漏洞示例和修复方案,包括使用安全的编码模式、引入第三方库和服务以及正确设置函数的可见性等,本文为智能合约开发者提供了全面的安全指南,确保合约的安全性和可靠性。 智能合约的安全最佳实践,...

    区块链智能合约安全分析.pptx

    - **库和外部调用审查**:审查智能合约中使用的任何第三方库和外部合约调用,确保其安全可靠。 通过对以上方面的深入分析和审查,可以有效地识别智能合约中的潜在安全威胁,并采取相应的预防措施,提高智能合约的...

    降真智能合约安全性.pptx

    ### 降真智能合约安全性研究 #### 一、降真智能合约攻击类型分析 ##### 1.1 整数溢出攻击 - **定义**: 整数溢出是一种编程错误,当运算结果超出数据类型所能表示的最大范围时,程序会出现异常行为。 - **影响**: ...

    Waffle:用于编写和测试智能合约的库

    用于测试智能合约的最先进的框架。 更甜,更简单,更快。 链接 网站-https: 文档-https: 哲学 更简单:极简,几乎没有依赖关系。 较甜:语法不错,易于扩展。 更快:非常关注测试执行的速度。 特征: 甜蜜的柴火...

    ERC20合约调用demo

    这个"ERC20合约调用demo"很可能是为了展示如何与ERC20智能合约进行交互,这对于开发去中心化应用(DApps)或者进行加密货币交易非常重要。 首先,我们需要理解智能合约的概念。智能合约是一种自动执行的协议,它...

    contracts-v1:AirSwap原子交换和令牌智能合约

    该存储库包括AirSwap交换和令牌智能合约。 使用进行开发和测试。 错误赏金 我们正在执行一个持续的漏洞赏金计划。 上的详细信息。 要浏览以前的提交内容,请参阅 。 入门 使用Yarn或NPM安装依赖项。 yarn install -...

    web3抽奖合约 包含前端html调用和合约内容

    在区块链技术领域,Web3和智能合约是两个关键概念,它们为去中心化的应用程序(DApps)提供了基础。本文将详细解析"web3抽奖合约"的相关知识点,包括前端HTML调用合约以及合约的内容。 首先,让我们理解Web3。Web3...

    web3swift:Swift中的优雅Web3js功能。 以太坊网络上的本机ABI解析和智能合约交互

    智能合约ABI解析 :open_book: 本地密钥库管理(与geth兼容) 私钥和交易直接在iOS设备上创建,并直接发送到节点 本机API 安全性(就像硬皮钱包一样酷!开箱即用!:box:) 没有不必要的依赖 可以使用所有现有...

    mtxm项目的开源合约

    "mtxm项目的开源合约"是针对一个名为mtxm的项目所发布的开源代码库,主要包含的是智能合约相关的代码。在区块链技术中,智能合约是一种自动执行的程序,它定义了参与方之间的交互规则和协议,并在区块链网络上运行。...

    echidna:以太坊智能合约模糊器

    首先,你需要安装 Python 环境以及 echidna 的依赖库。然后,将你的 Solidity 合约导入到项目中,并运行 echidna 命令进行测试。echidna 提供了命令行接口,你可以指定要测试的合约地址或源代码文件。 **文件结构...

    vscode-solidity:以太坊中的Solidity智能合约的Visual Studio Code语言支持扩展

    对Visual Studio代码的Solidity支持 Solidity是以太坊用于创建智能合约的语言,此扩展提供: 语法高亮片段编制当前合同(按F1固体性:编制当前固体合同),或按F5 编译所有合同(按F1 Solidity:编译所有Solidity...

    以太坊智能合约安全检查清单:Knownsec 404团队的以太坊智能合约安全检查清单

    2. **固有漏洞**:关注常见的智能合约漏洞,如重入攻击(Reentrancy)、交易顺序依赖(Transaction Order Dependence)、溢出和下溢(Overflow/Underflow)等。这些漏洞可能导致资金丢失或合约被恶意利用。 3. **...

    smart-contracts:智能合约存储库为Hord.app实现了区块链协议

    智能合约实施hord.fund协议开发人员指示安装依赖性yarn install 创建.env文件,并确保它具有以下信息: PK=YOUR_PRIVATE_KEY USERNAME=HORDPROJECT=HORD_FUND编译代码npx hardhat clean (清除缓存并删除所有工件) ...

    GenericUI:以太坊智能合约的通用UI

    在以太坊生态系统中,JavaScript库如Web3.js和Ethereum.js被用于与以太坊节点进行通信,执行智能合约操作,如读取合约状态、调用函数或进行交易。 在GenericUI项目中,JavaScript可能被用来处理用户输入,与智能...

    typescript-solidity-dev-starter-kit:使用Typescript进行智能合约开发的入门工具包

    这是用于使用完整的Typescript环境开发,测试和部署智能合约的入门工具包。 该堆栈使用作为平台层来协调所有任务。 用于所有复仇互动和测试。 使用这个专案 克隆此存储库,然后使用npm install安装依赖项。 使用npm...

Global site tag (gtag.js) - Google Analytics