├── .gitignore ├── KEEPs ├── keep-1 │ └── README.md └── keep-2 │ ├── README-zh.md │ ├── README.md │ ├── build.sh │ ├── contracts │ └── info │ │ ├── build.sh │ │ ├── info.abi │ │ ├── info.cpp │ │ ├── info.hpp │ │ ├── info.wasm │ │ └── info.wast │ ├── deploy.sh │ ├── interfaces │ └── token.md │ ├── scripts │ ├── boot.sh │ └── init.sh │ ├── test.sh │ └── test_manual.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | cmake-build-debug 2 | .idea 3 | record.txt -------------------------------------------------------------------------------- /KEEPs/keep-1/README.md: -------------------------------------------------------------------------------- 1 | Reserved for proposing KEEP standard -------------------------------------------------------------------------------- /KEEPs/keep-2/README-zh.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /KEEPs/keep-2/README.md: -------------------------------------------------------------------------------- 1 | # eosip-contract 2 | 3 | 本文目的是提供EOS智能合约上线流程的最佳实践,促进项目方的智能合约通过各个交易所、钱包、区块链浏览器的认可并公示。 4 | 5 | 目录: 6 | 7 | - 1 [注册基本信息](#1-%E6%B3%A8%E5%86%8C%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF) 8 | - 2 [包含适当的李嘉图合约](#2-%E5%8C%85%E5%90%AB%E9%80%82%E5%BD%93%E7%9A%84%E6%9D%8E%E5%98%89%E5%9B%BE%E5%90%88%E7%BA%A6) 9 | - 3 [通过第三方安全团队的审核](#3-%E9%80%9A%E8%BF%87%E7%AC%AC%E4%B8%89%E6%96%B9%E5%AE%89%E5%85%A8%E5%9B%A2%E9%98%9F%E7%9A%84%E5%AE%A1%E6%A0%B8) 10 | - 4 [resign权限](#4-resign%E6%9D%83%E9%99%90) 11 | - 5 [接口规范](#5-%E6%8E%A5%E5%8F%A3%E8%A7%84%E8%8C%83) 12 | - [token合约规范](https://github.com/cryptokylin/KEEP/blob/master/interfaces/token.md) 13 | 14 | 15 | 为达到上述目的,合约应满足如下条件(Checklist): 16 | 17 | ### 1. 注册基本信息 18 | 基本信息包括: 合约账户、项目官网、logo连接、简介、白皮书ipfs地址、github、合约文件压缩包ipfs地址等。 19 | 说明: 20 | 1. 按照EOS账户命名规则,合约账户长度为1-12个字符,字符范围为a-z,1-5和小数点。 21 | 2. logo连接用于方便第三方公示网站展示项目logo。 22 | 3. 合约文件压缩包中除包含c++源文件外,还必须包含一个脚本文件`build.sh`,此脚本文件用于第三方下载此压缩包并解压后,可以快速编译此合约。 23 | 压缩命令统一为`zip ${contract_folder}.zip ${contract_folder}`,即压缩包名字为合约文件夹名字加".zip"后缀,因此第三方可以统一用`unzip ${contract_folder}.zip`命令进行解压。 24 | 另外,合约中主cpp文件名需要和合约文件夹同名。 25 | 为了验证链上wasm文件是对应的c++源文件编译得到的,在build.sh中必须使用docker进行编译,我们建议统一使用镜像 `eosio/eos-dev` 进行编译。 26 | build.sh脚本中必须包含`image_name`,`image_version`,`image_id`,以方便第三方进行自动化处理, 27 | 并且 `docker run` 命令中必须使用 `image_id` 指定镜像,不能使用`image_name:image_version`的方式, 28 | 因为可以更新镜像而不改变版本号,只有image_id能唯一确定具体的镜像。 29 | `docker run` 命令之后可以再增加对 abi 文件修改的命令。 30 | 31 | build.sh模板如下 32 | ``` 33 | image_name=eosio/eos-dev 34 | image_version=v1.1.1 35 | image_id=8fa0988c81cc 36 | contract='info' 37 | docker run --rm -v `pwd`:/scts ${image_id} bash -c "cd /scts \ 38 | && eosiocpp -o ${contract}.wast ${contract}.cpp \ 39 | && eosiocpp -g ${contract}.abi ${contract}.cpp" 40 | ``` 41 | 42 | 项目方可以将合约文件压缩包放置在 github、自己的官网、IPFS网络,以方便第三方获取并进行验证。 43 | 44 | 4. 在合约中注册、更新、删除信息 45 | 管理此注册信息的合约账户为`cryptokylin1`(EOS主网)。 46 | 您也可以在Kylin测试网进行测试,Kylin测试网上合约账户是`contracts111`。 47 | 此合约有两个方法:createupdate 和 remove。 48 | 49 | createupdate 用于创建记录,若记录已存在,则更新该记录,参数如下: 50 | 51 | | name | type | example | limit | notes | 52 | |---|---|---|---|---| 53 | | contract | account_name | `contract1111` | required | | 54 | | website | string | `https://www.website.com` | required, 100 char max | | 55 | | logo_256 | string | `https://www.website.com/logo_256.png` | required, 100 char max | | 56 | | brief_intro | string | `project's brief introduction` | required, 500 char max | | 57 | | github | string | `https://github.com/repo/project` | required, 100 char max | | 58 | | white_paper | string | `QmdjFPtN93VkrCVsQ8YuAeubUCPKx8sozDzoCPsbVycRZC` | required, == 46 char | | 59 | | src_zip | string | `QmV6EiBVyFCXSM3FJqRVJrQwUxLE5fwDjydusbxxJgQcj9` | required, == 46 char | | 60 | | extension | string | see below | optional, 500 char max | | 61 | 62 | 63 | extension 字段是一个以`|`分割的包含多个`key=value`的字符串,用于包含附加信息,项目方应尽量提供以下信息: 64 | 65 | | name | example | notes | 66 | |---|---|---| 67 | | contract | `contractname` | | 68 | | telegram | `https://t.me/cryptokylin` | | 69 | | steemit | `https://steemit.com/@eosio` | | 70 | | twitter | `https://twitter.com/EOS_io` | | 71 | | wechat | `EOSIO-foo` | | 72 | 73 | 74 | 示例命令 75 | ``` 76 | # register project contract information to cryptokylin1 77 | 78 | contract=contract1111 79 | website=https://www.website.com 80 | logo_256=https://www.website.com/logo_256.png 81 | brief_intro="brief intro" 82 | github="https://github.com/repo/project" 83 | white_paper="QmdjFPtN93VkrCVsQ8YuAeubUCPKx8sozDzoCPsbVycRZC" 84 | src_zip="QmV6EiBVyFCXSM3FJqRVJrQwUxLE5fwDjydusbxxJgQcj9" 85 | telegram="https://t.me/cryptokylin" 86 | steemit=https://steemit.com/@eosio 87 | twitter="https://twitter.com/EOS_io" 88 | wechat="EOSIO-foo" 89 | 90 | extension="telegram=${telegram}|steemit=${steemit}|twitter=${twitter}|wechat=${wechat}" 91 | str="[ \"${contract}\",\"${website}\",\"${logo_256}\",\"${brief_intro}\",\"${github}\",\"${white_paper}\",\"${src_zip}\",\"${extension}\" ]" 92 | 93 | cleos push action ${accountaddr} createupdate "$str" -p contract1111@active 94 | 95 | # get registered contract information. 96 | cleos get table cryptokylin1 cryptokylin1 info -L contract1111 97 | ``` 98 | 99 | remove 用于删除一条记录,参数如下 100 | 101 | | 名称 | 类型 | 示例 | 限制 | 说明 | 102 | |---|---|---|---|---| 103 | | contract | account_name | contract1111 | <=12个字符 |部署合约的账户 | 104 | 105 | 示例命令 106 | ``` 107 | cleos push action cryptokylin1 remove '["contract1111"]' -p contract1111@active 108 | ``` 109 | 110 | ### 2 包含适当的李嘉图合约 111 | 112 | #### 2.1 概述 113 | 114 | ##### 2.1.1 和宪法的关系 115 | 116 | [Thomas Cox:第XI条 - EOS.IO宪法草案 - 开发者和智能合同许可](https://forums.eosgo.io/discussion/747/article-xi-v0-3-0-draft-eos-io-constitution-developers-and-smart-contract-licenses) 117 | 118 | > **Purpose** 119 | > 120 | > *Defines when a Member is a Developer. Establishes obligation of a Developer to provide a License and one or more Ricardian Contracts, and to name an Arbitration Forum for their software.* 121 | > 122 | 123 | **目的** 124 | 125 | 定义什么程度的成员才是开发人员。设定开发人员有义务提供许可证、李嘉图合约(一个或多个),并为他们的开发软件任命一个仲裁法庭。 126 | 127 | 128 | 129 | 130 | > **[Article VII - Open Source](https://github.com/EOS-Mainnet/governance/blob/master/eosio.system/eosio.system-clause-constitution-rc.md#article-vii---open-source)** 131 | 132 | > Each Member who makes available a smart contract on this blockchain shall be a Developer. Each Developer shall offer their smart contracts via a free and open source license, and each smart contract shall be documented with a Ricardian Contract stating the intent of all parties and naming the Arbitration Forum that will resolve disputes arising from that contract. 133 | 134 | 135 | **第七条 - 开源** 136 | 137 | 每个在此区块链上提供智能合约的成员均为开发人员,每个开发者都应提供免费的,开源的许可证的智能合约,每份智能合约应记录在一分描述各方意图的李嘉图协议中,名命名仲裁论坛来解决合同引起的争议 138 | 139 | ##### 2.1.2 原理 140 | 141 | 从法律合同到机器代码 142 | 在,我们将法律合同和机器代码视为一个连续统一体。 在一个极端的法律文本,纯粹用于人类消费,在另一个,计算机可执行机器代码。 在它们之间是不同的表示和抽象,在灵活性,有意模糊性,计算严谨性以及法律或计算机专家的创作和理解的简易性之间进行不同的权衡。 143 | 144 | 当一个人在连续体中向右移动(朝向链码)时,人们朝着法律文本的结构化表示移动,最终通过编译器到达可以在计算机芯片的中央处理单元(CPU)上执行的机器代码。 145 | 146 | 李嘉图条款描述了特定行为的预期结果。 它也可用于在发件人和合同之间建立条款。 147 | 148 | 149 | 150 | 151 | 152 | ##### 2.1.3 李嘉图协议使用过程 153 | 154 | 参考:[ What is a Ricardian Contract? eosio.stackexchange ](https://eosio.stackexchange.com/questions/1054/what-is-a-ricardian-contract/1064) 155 | 156 | ![](https://i.imgur.com/2J2Lqoy.png) 157 | 158 | 159 | http://iang.org/papers/ricardian_contract.html 160 | 161 | #### 2.2 格式和样本 162 | 163 | ##### 2.2.1 `ricardian_clauses` 李嘉图条款 164 | - 位于`合约名.abi` 165 | - 作为单独的一个第一级对象 166 | - 作为通用条款,用于指定智能合约相关方的权责 167 | 168 | ``` 169 | "version": “”, 170 | "types": [], 171 | "structs": [], 172 | "actions": [], 173 | "ricardian_clauses": [], 174 | "abi_extensions": [] 175 | ``` 176 | 177 | > 例子: [hello.abi](https://github.com/EOSIO/eos/blob/master/contracts/hello/hello.abi) 178 | 179 | ``` 180 | "ricardian_clauses": [{ 181 | "id": "保修", 182 | "body": "保修.保修。本合同的调用方应及时、熟练地履行本合同项下的义务,EOS.IO 的Blockchain Block Producers应当运用知识和建议来执行符合EOS规定的普遍可接受的服务标准。\n\n" 183 | },{ 184 | "id": "违约", 185 | "body": "违约。下列任何一项的发生均构成本合同项下的重大违约: \n\n" 186 | },{ 187 | "id": "不做恶" 188 | "body": "承诺不使用合约漏洞获取利益或损害其他人的合法权益,若发生此类情况,相关方愿意承担相当责任。 \n\n" 189 | },{ 190 | "id": "信息披露" 191 | "body": "承诺所有公开披露信息、规则真实可信 \n\n" 192 | },{ 193 | "id": "代码一致" 194 | "body": "承诺公开的源码与链上部署的二进制代码保持一致 \n\n" 195 | },{ 196 | "id": "补救措施", 197 | "body": "补救措施。除依法享有的任何和所有其他权利外,如果一方因未充分履行本合同的任何条款、期限或条件而违约,另一方可以向违约方发出书面通知,终止本合同。本通知应充分详细说明违约的性质。收到该通知的一方应立即被解除该合同,本合同自动终止。\n\n" 198 | },{ 199 | "id": "不可抗力", 200 | "body": "不可抗力。如果本合同或本合同项下的任何义务因任何一方无法合理控制的原因而被阻止、限制或干扰(“不可抗力”),如果一方未能履行其义务,另一方立即书面通知该等事件,则该条款援引的一方的义务应在该事件所必要的范围内暂停。“不可抗力”一词应包括但不限于上帝、火灾、爆炸、故意破坏、风暴或其他类似的事件、命令或军事或民事当局行为,或国家紧急情况、叛乱、暴动或战争、罢工、停工、停工或供应失败。被免除方应在情况下采取合理努力,避免或消除不履行的原因,并在消除或停止不履行的情况下,以合理的速度进行履行。如果一方或其雇员、官员、代理人或关联方犯下、遗漏或造成的行为或不作为,应被视为在该方的合理控制范围内。 \n \n" 201 | },{ 202 | "id": "纠纷解决", 203 | "body": "解决争议的方式。因本合同而产生的或与本合同有关的任何争议或异议,均由本协议规定的EOS.IO Blockchain规则进行仲裁解决。仲裁员的裁决是终局的,任何有适当管辖权的法院都可以作出判决。\n\n" 204 | },{ 205 | "id": "整个协议", 206 | "body": "整个协议。本合同包含双方的全部协议,无论任何其他协议,不论是口头的还是书面的及其他承诺或条件。本合同取代双方之前的任何书面或口头协议。 \n\n" 207 | },{ 208 | "id": "可分割性", 209 | "body": "可分割性。如果本合同的任何条款因任何原因被认为无效或不可执行,其余条款将继续有效和可执行。如果法院发现本合同的任何条款无效或不可执行,但通过限制该条款,该条款将变得有效和可执行,那么该条款将被视为书面的、解释性的和有限执行的。\n\n" 210 | },{ 211 | "id": "修正案", 212 | "body": "修正案。本合同经双方协商一致,可以以书面形式修正或修改。\n\n" 213 | },{ 214 | "id": "适用法律", 215 | "body": "适用法律。本合同应按照衡平法原则解释。 \n\n" 216 | },{ 217 | "id": "通知", 218 | "body": "通知。任何通知或通信要求或允许在本合同项下应当充分的可验证的电子邮件地址或递送等其他一方书面公开提供的电子邮件地址,或者通过blockchain发表为提供这种类型的通知在广播合同上。 \n" 219 | },{ 220 | "id": "放弃合同权利", 221 | "body": "放弃合同权利。任何一方未能执行本合同的任何条款,不应被解释为放弃或限制该方随后执行并强制严格遵守本合同各项条款的权利。 \n\n" 222 | },{ 223 | "id": "仲裁员对胜诉方的费用", 224 | "body": "仲裁员向胜诉方支付的费用。在本协议项下产生的任何诉讼或与本协议有效性有关的任何单独诉讼中,双方应支付仲裁初始成本的一半,胜诉方应获得合理的仲裁员费用和成本。\n\n" 225 | },{ 226 | "id": "结构和解释", 227 | "body": "结构和解释。要求对drafter进行构造或解释的规则被取消。该文件应视为双方共同起草的文件。 \n\n" 228 | },{ 229 | "id": "仲裁规则", 230 | "body": "因本合同引起的或与本合同有关的任何争议,应根据EOS核心仲裁论坛的争议解决规则,由一名或多名根据EOS章程规则指定的仲裁员最终解决。 \n \n" 231 | } 232 | ], 233 | ``` 234 | 235 | ##### 2.2.2 和action 执行方的约定:`ricardian_contract` 236 | - 位于`合约名.abi` 237 | - 作为附属object定义在`actions` 中 238 | - 用于指定action执行方的的权责 239 | 240 | ``` 241 | { 242 | "name": "XXX", //合同中定义的action名称 243 | "type": "XXX", //ABI中描述的隐式struct的名称 244 | "ricardian_contract": "" //与此操作关联的可选ricardian 条款,用于描述本action预期的功能。 245 | } 246 | ``` 247 | 248 | 249 | 250 | ##### 2.2.3 `<智能合约名称>--rc.md` 251 | 252 | - markdown形式的单独文件 253 | - 对 abi中的每一条action的 ricardian_contract,独立创建一个markdown 文档 254 | 255 | 例子参考:[eosio.wps.regproposer-rc.md](https://github.com/EOS-BP-Developers/wps-backend/blob/master/contracts/eosio.wps/abi/eosio.wps-regproposer-rc.md) 256 | 257 | > `{{regproposer}}`行动的目的是将一个帐户登记为向EOS Worker Proposal System提交提案的责任方。 258 | > 259 | > 我,`{{提议者}`,在此证明只提交我个人作为团队成员参与的建议。 260 | > 261 | > 我,`{提议者}}`,同意只提交旨在使EOS生态系统受益的建议。 262 | > 263 | > 我,`{{提议者}}`,承诺提供关于我将提交给EOS工人建议系统的建议的正确和真实的信息。如果我得知我可能在提案中提供了任何不正确的信息,或者如果我提供了任何信息,我将尽快更新该提案,只要我有能力这样做。 264 | > 265 | > 我,`{{提交者}}`,同意并承诺将我的建议可能收到的任何资金分发给有关各方,如我的建议书中所概述的那样。我证明我的建议包括了所有现有利益的有关细节,并声明了任何和所有利益冲突。 266 | > 267 | > 我,`{{提议者}}`,在此证明我提供的关于我自己的信息是准确的。 268 | > 269 | > 我,`{{提议者}}`,同意我在将来提交的任何建议都符合标准提案清单的标准,这是我所知的。 270 | > 271 | > 如果我的建议不符合公开发表的建议清单,同意我的建议可能被否决。 272 | > 273 | > 如果我不满足任何或一些在建议路线图中概述的可交付成果/里程碑,我同意我的建议可能会被否决。 274 | 275 | 276 | 277 | ##### 2.2.4 `<智能合约名称>_rc.md` 278 | 279 | 参考 [hello_rc.md](https://github.com/EOSIO/eos/blob/master/contracts/hello/hello_rc.md) 280 | 281 | - markdown 版本的单独文件 282 | - 现行 `ricardian_clauses` 李嘉图条款 283 | - 每一个智能合约只有一个ricardian_clauses 284 | 285 | 286 | 287 | #### 2.3 建议文件位置及结构 288 | 289 | ``` 290 | - <智能合约名称> 291 | - include 292 | - src 293 | - abi 294 | - 智能合约.abi 295 | - <智能合约名称>_rc.md 296 | - <智能合约名称>--rc.md 297 | - <智能合约名称>--rc.md 298 | - <智能合约名称>--rc.md 299 | - CMakeLists.txt 300 | - ReadMe.md 301 | ``` 302 | 303 | > 参考: https://github.com/EOSIO/eosio.contracts 304 | 305 | 306 | 307 | 308 | #### 2.4 相关资料 309 | 310 | 若想更多了解李嘉图合约,可参考有EOShenzhen翻译的相关材料: 311 | 312 | [关于李嘉图协议的hello合约](shorturl.at/biGM9) 313 | 314 | 315 | 316 | ### 3. 通过第三方安全团队的审核 317 | 1. 溢出审计 318 | 2. 权限控制审计 319 | - 权限漏洞审计 320 | - 权限过大审计 321 | 3. 安全设计审计 322 | - 硬编码地址安全 323 | - 显现编码安全 324 | - 异常校验审计 325 | - 类型安全审计 326 | 4. 性能优化审计 327 | 5. 设计逻辑审计 328 | 329 | 330 | 331 | ### 4. resign权限 332 | 项目方自行决定是否resign权限,以及将权限resign给谁。 333 | 334 | #### 4.1 完全放弃修改权限 335 | 336 | 如果想彻底放弃升级权限,则resign权限给 EOS1111111111111111111111111111111114T1Anm,命令如下: 337 | ``` 338 | cleos push action eosio updateauth '{"account": "${account}", "permission": "active", "parent": "owner",\ 339 | "auth":{"threshold": 1, "keys": [{"key":"EOS1111111111111111111111111111111114T1Anm","weight":1}], \ 340 | "waits": [], "accounts": []}}' -p ${account}@active 341 | 342 | cleos push action eosio updateauth '{"account": "${account}", "permission": "owner", "parent": "",\ 343 | "auth":{"threshold": 1, "keys": [{"key":"EOS1111111111111111111111111111111114T1Anm","weight":1}], \ 344 | "waits": [], "accounts": []}}' -p ${account}@owner 345 | ``` 346 | 347 | #### 4.2 把修改权限交给producer 348 | 349 | ``` 350 | cleos set account permission $CONTRACT active '{ "threshold": 1, "keys": [{ "key": "$PUBLIC_KEY_OF_CONTRACT", "weight": 1 }], "accounts": [{ "permission": { "actor":"$CONTRACT","permission":"eosio.prods" }, "weight":1 }] }' active -p $CONTRACT 351 | 352 | cleos set account permission $CONTRACT owner '{ "threshold": 1, "keys": [{ "key": "$PUBLIC_KEY_OF_CONTRACT", "weight": 1 }], "accounts": [{ "permission": { "actor":"$CONTRACT","permission":"eosio.prods" }, "weight":1 }] }' owner -p $CONTRACT 353 | ``` 354 | 355 | 356 | 357 | ### 5. 接口规范 358 | 359 | 目前接口规范正在逐步制定中,我们也真诚希望任何对此感兴趣的开发者贡献力量,如下是部分接口规范。 360 | 361 | [token类合约接口规范](https://github.com/cryptokylin/KEEP/blob/master/interfaces/token.md) 362 | 363 | 364 | 365 | -------------------------------------------------------------------------------- /KEEPs/keep-2/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ROOT_DIR=`pwd` 3 | 4 | #set -x 5 | # step 1: init 6 | . scripts/init.sh 7 | 8 | # step 2: set your own variables 9 | contract="info" # contract file's and folder's base name 10 | 11 | # step 2: build, modify abi file 12 | modify_abi(){ 13 | abi_file=${contract}.abi 14 | 15 | cd ${ROOT_DIR}/contracts/${contract} 16 | jq 'del(.____comment)' ${abi_file} | \ 17 | sed 's/"type": "name"/"type": "account_name"/g' | \ 18 | jq ' .types = [{"new_type_name":"account_name","type": "name"}]' > tmp.abi && mv tmp.abi ${abi_file} 19 | cd - 20 | } 21 | 22 | #build_contract_locally ${contract} 23 | build_contract_docker ${contract} v1.1.1 24 | modify_abi 25 | 26 | #set +x -------------------------------------------------------------------------------- /KEEPs/keep-2/contracts/info/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | contract='info' 4 | 5 | # image name: eosio/eos-dev 6 | # image version: v1.1.1 7 | # image id: 8fa0988c81cc 8 | docker run --rm -v `pwd`:/scts 8fa0988c81cc bash -c "cd /scts \ 9 | && eosiocpp -o ${contract}.wast ${contract}.cpp \ 10 | && eosiocpp -g ${contract}.abi ${contract}.cpp" 11 | 12 | jq 'del(.____comment)' ${contract}.abi | \ 13 | sed 's/"type": "name"/"type": "account_name"/g' | \ 14 | jq ' .types = [{"new_type_name":"account_name","type": "name"}]' > tmp.abi && mv tmp.abi ${contract}.abi -------------------------------------------------------------------------------- /KEEPs/keep-2/contracts/info/info.abi: -------------------------------------------------------------------------------- 1 | { 2 | "version": "eosio::abi/1.0", 3 | "types": [ 4 | { 5 | "new_type_name": "account_name", 6 | "type": "name" 7 | } 8 | ], 9 | "structs": [ 10 | { 11 | "name": "info", 12 | "base": "", 13 | "fields": [ 14 | { 15 | "name": "contract", 16 | "type": "account_name" 17 | }, 18 | { 19 | "name": "website", 20 | "type": "string" 21 | }, 22 | { 23 | "name": "logo_256", 24 | "type": "string" 25 | }, 26 | { 27 | "name": "brief_intro", 28 | "type": "string" 29 | }, 30 | { 31 | "name": "github", 32 | "type": "string" 33 | }, 34 | { 35 | "name": "white_paper", 36 | "type": "string" 37 | }, 38 | { 39 | "name": "src_zip", 40 | "type": "string" 41 | }, 42 | { 43 | "name": "extension", 44 | "type": "string" 45 | }, 46 | { 47 | "name": "version", 48 | "type": "uint32" 49 | } 50 | ] 51 | }, 52 | { 53 | "name": "createupdate", 54 | "base": "", 55 | "fields": [ 56 | { 57 | "name": "contract", 58 | "type": "account_name" 59 | }, 60 | { 61 | "name": "website", 62 | "type": "string" 63 | }, 64 | { 65 | "name": "logo_256", 66 | "type": "string" 67 | }, 68 | { 69 | "name": "brief_intro", 70 | "type": "string" 71 | }, 72 | { 73 | "name": "github", 74 | "type": "string" 75 | }, 76 | { 77 | "name": "white_paper", 78 | "type": "string" 79 | }, 80 | { 81 | "name": "src_zip", 82 | "type": "string" 83 | }, 84 | { 85 | "name": "extension", 86 | "type": "string" 87 | } 88 | ] 89 | }, 90 | { 91 | "name": "remove", 92 | "base": "", 93 | "fields": [ 94 | { 95 | "name": "contract", 96 | "type": "account_name" 97 | } 98 | ] 99 | } 100 | ], 101 | "actions": [ 102 | { 103 | "name": "createupdate", 104 | "type": "createupdate", 105 | "ricardian_contract": "" 106 | }, 107 | { 108 | "name": "remove", 109 | "type": "remove", 110 | "ricardian_contract": "" 111 | } 112 | ], 113 | "tables": [ 114 | { 115 | "name": "info", 116 | "index_type": "i64", 117 | "key_names": [ 118 | "contract" 119 | ], 120 | "key_types": [ 121 | "name" 122 | ], 123 | "type": "info" 124 | } 125 | ], 126 | "ricardian_clauses": [], 127 | "error_messages": [], 128 | "abi_extensions": [] 129 | } 130 | -------------------------------------------------------------------------------- /KEEPs/keep-2/contracts/info/info.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * @file 3 | * @copyright defined in eos/LICENSE.txt 4 | */ 5 | 6 | #include "info.hpp" 7 | 8 | void contracts::createupdate( account_name contract, 9 | string website, 10 | string logo_256, 11 | string brief_intro, 12 | string github, 13 | string white_paper, 14 | string src_zip, 15 | string extension) { 16 | 17 | require_auth( contract ); 18 | 19 | eosio_assert( website.size() <= 100, "website has more than 100 bytes" ); 20 | eosio_assert( logo_256.size() <= 100, "logo url has more than 100 bytes" ); 21 | eosio_assert( brief_intro.size() <= 500, "brief_intro has more than 500 bytes" ); 22 | eosio_assert( github.size() <= 100, "github url has more than 100 bytes" ); 23 | eosio_assert( white_paper.size() == 46, "white_paper ipfs address must be 46 bytes" ); 24 | eosio_assert( src_zip.size() == 46, "src_zip ipfs address must be 46 bytes" ); 25 | eosio_assert( extension.size() <= 500, "extension has more than 500 bytes" ); 26 | 27 | information info_t( _self, _self); 28 | 29 | auto existing = info_t.find( contract ); 30 | 31 | if ( existing == info_t.end()){ 32 | info_t.emplace( contract, [&]( auto& r ){ 33 | r.contract = contract; 34 | r.website = website; 35 | r.logo_256 = logo_256; 36 | r.brief_intro = brief_intro; 37 | r.github = github; 38 | r.white_paper = white_paper; 39 | r.src_zip = src_zip; 40 | r.extension = extension; 41 | r.version = 1; 42 | }); 43 | } else{ 44 | info_t.modify( existing, 0, [&]( auto& r ) { 45 | r.website = website; 46 | r.logo_256 = logo_256; 47 | r.brief_intro = brief_intro; 48 | r.github = github; 49 | r.white_paper = white_paper; 50 | r.src_zip = src_zip; 51 | r.extension = extension; 52 | r.version += 1; 53 | }); 54 | } 55 | } 56 | 57 | void contracts::remove( account_name contract ) { 58 | 59 | require_auth( contract ); 60 | 61 | information info_t( _self, _self); 62 | 63 | auto existing = info_t.find( contract ); 64 | info_t.erase( existing ); 65 | } 66 | 67 | EOSIO_ABI( contracts, (createupdate)(remove)) 68 | -------------------------------------------------------------------------------- /KEEPs/keep-2/contracts/info/info.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * @file 3 | * @copyright defined in eos/LICENSE.txt 4 | */ 5 | #pragma once 6 | 7 | #include 8 | #include 9 | 10 | #include 11 | 12 | using std::string; 13 | 14 | class contracts : public eosio::contract { 15 | public: 16 | contracts( account_name self ):contract(self){} 17 | 18 | /// @abi action 19 | void createupdate(account_name contract, 20 | string website, 21 | string logo_256, 22 | string brief_intro, 23 | string github, 24 | string white_paper, 25 | string src_zip, 26 | string extension); 27 | 28 | /// @abi action 29 | void remove( account_name contract ); 30 | 31 | private: 32 | 33 | /// @abi table 34 | struct info { 35 | account_name contract; // contract account. 36 | string website; // official website. 37 | string logo_256; // 256 * 256 logo pic link. 38 | string brief_intro; // project's brief introduction. 39 | string github; // project github address. 40 | string white_paper; // white paper link. 41 | string src_zip; // source code and build.sh compression package address. 42 | string extension; // extended information. 43 | uint32_t version; 44 | 45 | uint64_t primary_key()const { return contract; } 46 | }; 47 | 48 | typedef eosio::multi_index information; 49 | }; 50 | -------------------------------------------------------------------------------- /KEEPs/keep-2/contracts/info/info.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cryptokylin/KEEP/bf5b92fcf0339a7fd7971b226fa370f4cf6059ce/KEEPs/keep-2/contracts/info/info.wasm -------------------------------------------------------------------------------- /KEEPs/keep-2/contracts/info/info.wast: -------------------------------------------------------------------------------- 1 | (module 2 | (type $FUNCSIG$vij (func (param i32 i64))) 3 | (type $FUNCSIG$vijiiiiiii (func (param i32 i64 i32 i32 i32 i32 i32 i32 i32))) 4 | (type $FUNCSIG$v (func)) 5 | (type $FUNCSIG$j (func (result i64))) 6 | (type $FUNCSIG$vjj (func (param i64 i64))) 7 | (type $FUNCSIG$vj (func (param i64))) 8 | (type $FUNCSIG$vii (func (param i32 i32))) 9 | (type $FUNCSIG$ijjjj (func (param i64 i64 i64 i64) (result i32))) 10 | (type $FUNCSIG$ijjjjii (func (param i64 i64 i64 i64 i32 i32) (result i32))) 11 | (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) 12 | (type $FUNCSIG$vijii (func (param i32 i64 i32 i32))) 13 | (type $FUNCSIG$iii (func (param i32 i32) (result i32))) 14 | (type $FUNCSIG$vi (func (param i32))) 15 | (type $FUNCSIG$i (func (result i32))) 16 | (import "env" "abort" (func $abort)) 17 | (import "env" "action_data_size" (func $action_data_size (result i32))) 18 | (import "env" "current_receiver" (func $current_receiver (result i64))) 19 | (import "env" "current_time" (func $current_time (result i64))) 20 | (import "env" "db_find_i64" (func $db_find_i64 (param i64 i64 i64 i64) (result i32))) 21 | (import "env" "db_get_i64" (func $db_get_i64 (param i32 i32 i32) (result i32))) 22 | (import "env" "db_next_i64" (func $db_next_i64 (param i32 i32) (result i32))) 23 | (import "env" "db_remove_i64" (func $db_remove_i64 (param i32))) 24 | (import "env" "db_store_i64" (func $db_store_i64 (param i64 i64 i64 i64 i32 i32) (result i32))) 25 | (import "env" "db_update_i64" (func $db_update_i64 (param i32 i64 i32 i32))) 26 | (import "env" "eosio_assert" (func $eosio_assert (param i32 i32))) 27 | (import "env" "memcpy" (func $memcpy (param i32 i32 i32) (result i32))) 28 | (import "env" "memmove" (func $memmove (param i32 i32 i32) (result i32))) 29 | (import "env" "read_action_data" (func $read_action_data (param i32 i32) (result i32))) 30 | (import "env" "require_auth" (func $require_auth (param i64))) 31 | (import "env" "require_auth2" (func $require_auth2 (param i64 i64))) 32 | (table 3 3 anyfunc) 33 | (elem (i32.const 0) $__wasm_nullptr $_ZN9contracts12createupdateEyNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_S6_S6_S6_S6_S6_ $_ZN9contracts6removeEy) 34 | (memory $0 1) 35 | (data (i32.const 4) "\90e\00\00") 36 | (data (i32.const 16) "website has more than 100 bytes\00") 37 | (data (i32.const 48) "logo url has more than 100 bytes\00") 38 | (data (i32.const 96) "brief_intro has more than 500 bytes\00") 39 | (data (i32.const 144) "github url has more than 100 bytes\00") 40 | (data (i32.const 192) "white_paper ipfs address must be 46 bytes\00") 41 | (data (i32.const 240) "src_zip ipfs address must be 46 bytes\00") 42 | (data (i32.const 288) "extension has more than 500 bytes\00") 43 | (data (i32.const 336) "object passed to iterator_to is not in multi_index\00") 44 | (data (i32.const 400) "cannot pass end iterator to modify\00") 45 | (data (i32.const 448) "cannot create objects in table of another contract\00") 46 | (data (i32.const 512) "write\00") 47 | (data (i32.const 528) "object passed to modify is not in multi_index\00") 48 | (data (i32.const 576) "cannot modify objects in table of another contract\00") 49 | (data (i32.const 640) "updater cannot change primary key when modifying an object\00") 50 | (data (i32.const 704) "error reading iterator\00") 51 | (data (i32.const 736) "read\00") 52 | (data (i32.const 752) "get\00") 53 | (data (i32.const 768) "cannot pass end iterator to erase\00") 54 | (data (i32.const 816) "cannot increment end iterator\00") 55 | (data (i32.const 848) "object passed to erase is not in multi_index\00") 56 | (data (i32.const 896) "cannot erase objects in table of another contract\00") 57 | (data (i32.const 960) "attempt to remove object that was not in multi_index\00") 58 | (data (i32.const 1024) "onerror\00") 59 | (data (i32.const 1040) "eosio\00") 60 | (data (i32.const 1056) "onerror action\'s are only valid from the \"eosio\" system account\00") 61 | (data (i32.const 9520) "malloc_from_freed was designed to only be called after _heap was completely allocated\00") 62 | (export "memory" (memory $0)) 63 | (export "_ZeqRK11checksum256S1_" (func $_ZeqRK11checksum256S1_)) 64 | (export "_ZeqRK11checksum160S1_" (func $_ZeqRK11checksum160S1_)) 65 | (export "_ZneRK11checksum160S1_" (func $_ZneRK11checksum160S1_)) 66 | (export "now" (func $now)) 67 | (export "_ZN5eosio12require_authERKNS_16permission_levelE" (func $_ZN5eosio12require_authERKNS_16permission_levelE)) 68 | (export "_ZN9contracts12createupdateEyNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_S6_S6_S6_S6_S6_" (func $_ZN9contracts12createupdateEyNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_S6_S6_S6_S6_S6_)) 69 | (export "_ZN9contracts6removeEy" (func $_ZN9contracts6removeEy)) 70 | (export "apply" (func $apply)) 71 | (export "malloc" (func $malloc)) 72 | (export "free" (func $free)) 73 | (export "memcmp" (func $memcmp)) 74 | (func $_ZeqRK11checksum256S1_ (param $0 i32) (param $1 i32) (result i32) 75 | (i32.eqz 76 | (call $memcmp 77 | (get_local $0) 78 | (get_local $1) 79 | (i32.const 32) 80 | ) 81 | ) 82 | ) 83 | (func $_ZeqRK11checksum160S1_ (param $0 i32) (param $1 i32) (result i32) 84 | (i32.eqz 85 | (call $memcmp 86 | (get_local $0) 87 | (get_local $1) 88 | (i32.const 32) 89 | ) 90 | ) 91 | ) 92 | (func $_ZneRK11checksum160S1_ (param $0 i32) (param $1 i32) (result i32) 93 | (i32.ne 94 | (call $memcmp 95 | (get_local $0) 96 | (get_local $1) 97 | (i32.const 32) 98 | ) 99 | (i32.const 0) 100 | ) 101 | ) 102 | (func $now (result i32) 103 | (i32.wrap/i64 104 | (i64.div_u 105 | (call $current_time) 106 | (i64.const 1000000) 107 | ) 108 | ) 109 | ) 110 | (func $_ZN5eosio12require_authERKNS_16permission_levelE (param $0 i32) 111 | (call $require_auth2 112 | (i64.load 113 | (get_local $0) 114 | ) 115 | (i64.load offset=8 116 | (get_local $0) 117 | ) 118 | ) 119 | ) 120 | (func $_ZN9contracts12createupdateEyNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEES6_S6_S6_S6_S6_S6_ (type $FUNCSIG$vijiiiiiii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) 121 | (local $9 i64) 122 | (local $10 i32) 123 | (local $11 i32) 124 | (i32.store offset=4 125 | (i32.const 0) 126 | (tee_local $11 127 | (i32.sub 128 | (i32.load offset=4 129 | (i32.const 0) 130 | ) 131 | (i32.const 128) 132 | ) 133 | ) 134 | ) 135 | (i64.store offset=80 136 | (get_local $11) 137 | (get_local $1) 138 | ) 139 | (call $require_auth 140 | (get_local $1) 141 | ) 142 | (block $label$0 143 | (block $label$1 144 | (br_if $label$1 145 | (i32.and 146 | (tee_local $10 147 | (i32.load8_u 148 | (get_local $2) 149 | ) 150 | ) 151 | (i32.const 1) 152 | ) 153 | ) 154 | (set_local $10 155 | (i32.shr_u 156 | (get_local $10) 157 | (i32.const 1) 158 | ) 159 | ) 160 | (br $label$0) 161 | ) 162 | (set_local $10 163 | (i32.load offset=4 164 | (get_local $2) 165 | ) 166 | ) 167 | ) 168 | (call $eosio_assert 169 | (i32.lt_u 170 | (get_local $10) 171 | (i32.const 101) 172 | ) 173 | (i32.const 16) 174 | ) 175 | (block $label$2 176 | (block $label$3 177 | (br_if $label$3 178 | (i32.and 179 | (tee_local $10 180 | (i32.load8_u 181 | (get_local $3) 182 | ) 183 | ) 184 | (i32.const 1) 185 | ) 186 | ) 187 | (set_local $10 188 | (i32.shr_u 189 | (get_local $10) 190 | (i32.const 1) 191 | ) 192 | ) 193 | (br $label$2) 194 | ) 195 | (set_local $10 196 | (i32.load offset=4 197 | (get_local $3) 198 | ) 199 | ) 200 | ) 201 | (call $eosio_assert 202 | (i32.lt_u 203 | (get_local $10) 204 | (i32.const 101) 205 | ) 206 | (i32.const 48) 207 | ) 208 | (block $label$4 209 | (block $label$5 210 | (br_if $label$5 211 | (i32.and 212 | (tee_local $10 213 | (i32.load8_u 214 | (get_local $4) 215 | ) 216 | ) 217 | (i32.const 1) 218 | ) 219 | ) 220 | (set_local $10 221 | (i32.shr_u 222 | (get_local $10) 223 | (i32.const 1) 224 | ) 225 | ) 226 | (br $label$4) 227 | ) 228 | (set_local $10 229 | (i32.load offset=4 230 | (get_local $4) 231 | ) 232 | ) 233 | ) 234 | (call $eosio_assert 235 | (i32.lt_u 236 | (get_local $10) 237 | (i32.const 501) 238 | ) 239 | (i32.const 96) 240 | ) 241 | (block $label$6 242 | (block $label$7 243 | (br_if $label$7 244 | (i32.and 245 | (tee_local $10 246 | (i32.load8_u 247 | (get_local $5) 248 | ) 249 | ) 250 | (i32.const 1) 251 | ) 252 | ) 253 | (set_local $10 254 | (i32.shr_u 255 | (get_local $10) 256 | (i32.const 1) 257 | ) 258 | ) 259 | (br $label$6) 260 | ) 261 | (set_local $10 262 | (i32.load offset=4 263 | (get_local $5) 264 | ) 265 | ) 266 | ) 267 | (call $eosio_assert 268 | (i32.lt_u 269 | (get_local $10) 270 | (i32.const 101) 271 | ) 272 | (i32.const 144) 273 | ) 274 | (block $label$8 275 | (block $label$9 276 | (br_if $label$9 277 | (i32.and 278 | (tee_local $10 279 | (i32.load8_u 280 | (get_local $6) 281 | ) 282 | ) 283 | (i32.const 1) 284 | ) 285 | ) 286 | (set_local $10 287 | (i32.shr_u 288 | (get_local $10) 289 | (i32.const 1) 290 | ) 291 | ) 292 | (br $label$8) 293 | ) 294 | (set_local $10 295 | (i32.load offset=4 296 | (get_local $6) 297 | ) 298 | ) 299 | ) 300 | (call $eosio_assert 301 | (i32.eq 302 | (get_local $10) 303 | (i32.const 46) 304 | ) 305 | (i32.const 192) 306 | ) 307 | (block $label$10 308 | (block $label$11 309 | (br_if $label$11 310 | (i32.and 311 | (tee_local $10 312 | (i32.load8_u 313 | (get_local $7) 314 | ) 315 | ) 316 | (i32.const 1) 317 | ) 318 | ) 319 | (set_local $10 320 | (i32.shr_u 321 | (get_local $10) 322 | (i32.const 1) 323 | ) 324 | ) 325 | (br $label$10) 326 | ) 327 | (set_local $10 328 | (i32.load offset=4 329 | (get_local $7) 330 | ) 331 | ) 332 | ) 333 | (call $eosio_assert 334 | (i32.eq 335 | (get_local $10) 336 | (i32.const 46) 337 | ) 338 | (i32.const 240) 339 | ) 340 | (block $label$12 341 | (block $label$13 342 | (br_if $label$13 343 | (i32.and 344 | (tee_local $10 345 | (i32.load8_u 346 | (get_local $8) 347 | ) 348 | ) 349 | (i32.const 1) 350 | ) 351 | ) 352 | (set_local $10 353 | (i32.shr_u 354 | (get_local $10) 355 | (i32.const 1) 356 | ) 357 | ) 358 | (br $label$12) 359 | ) 360 | (set_local $10 361 | (i32.load offset=4 362 | (get_local $8) 363 | ) 364 | ) 365 | ) 366 | (call $eosio_assert 367 | (i32.lt_u 368 | (get_local $10) 369 | (i32.const 501) 370 | ) 371 | (i32.const 288) 372 | ) 373 | (i32.store 374 | (tee_local $10 375 | (i32.add 376 | (get_local $11) 377 | (i32.const 72) 378 | ) 379 | ) 380 | (i32.const 0) 381 | ) 382 | (i64.store offset=56 383 | (get_local $11) 384 | (i64.const -1) 385 | ) 386 | (i64.store offset=64 387 | (get_local $11) 388 | (i64.const 0) 389 | ) 390 | (i64.store offset=40 391 | (get_local $11) 392 | (tee_local $9 393 | (i64.load 394 | (get_local $0) 395 | ) 396 | ) 397 | ) 398 | (i64.store offset=48 399 | (get_local $11) 400 | (get_local $9) 401 | ) 402 | (block $label$14 403 | (block $label$15 404 | (block $label$16 405 | (br_if $label$16 406 | (i32.lt_s 407 | (tee_local $0 408 | (call $db_find_i64 409 | (get_local $9) 410 | (get_local $9) 411 | (i64.const 8419268397136609280) 412 | (get_local $1) 413 | ) 414 | ) 415 | (i32.const 0) 416 | ) 417 | ) 418 | (call $eosio_assert 419 | (i32.eq 420 | (i32.load offset=96 421 | (tee_local $0 422 | (call $_ZNK5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE31load_object_by_primary_iteratorEl 423 | (i32.add 424 | (get_local $11) 425 | (i32.const 40) 426 | ) 427 | (get_local $0) 428 | ) 429 | ) 430 | ) 431 | (i32.add 432 | (get_local $11) 433 | (i32.const 40) 434 | ) 435 | ) 436 | (i32.const 336) 437 | ) 438 | (i32.store offset=12 439 | (get_local $11) 440 | (get_local $3) 441 | ) 442 | (i32.store offset=8 443 | (get_local $11) 444 | (get_local $2) 445 | ) 446 | (i32.store offset=16 447 | (get_local $11) 448 | (get_local $4) 449 | ) 450 | (i32.store offset=20 451 | (get_local $11) 452 | (get_local $5) 453 | ) 454 | (i32.store offset=24 455 | (get_local $11) 456 | (get_local $6) 457 | ) 458 | (i32.store offset=28 459 | (get_local $11) 460 | (get_local $7) 461 | ) 462 | (i32.store offset=32 463 | (get_local $11) 464 | (get_local $8) 465 | ) 466 | (call $eosio_assert 467 | (i32.const 1) 468 | (i32.const 400) 469 | ) 470 | (call $_ZN5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE6modifyIZNS1_12createupdateEyNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEESB_SB_SB_SB_SB_SB_E3$_1EEvRKS2_yOT_ 471 | (i32.add 472 | (get_local $11) 473 | (i32.const 40) 474 | ) 475 | (get_local $0) 476 | (i32.add 477 | (get_local $11) 478 | (i32.const 8) 479 | ) 480 | ) 481 | (br_if $label$15 482 | (tee_local $5 483 | (i32.load offset=64 484 | (get_local $11) 485 | ) 486 | ) 487 | ) 488 | (br $label$14) 489 | ) 490 | (set_local $1 491 | (i64.load offset=80 492 | (get_local $11) 493 | ) 494 | ) 495 | (i32.store offset=12 496 | (get_local $11) 497 | (get_local $2) 498 | ) 499 | (i32.store offset=16 500 | (get_local $11) 501 | (get_local $3) 502 | ) 503 | (i32.store offset=20 504 | (get_local $11) 505 | (get_local $4) 506 | ) 507 | (i32.store offset=24 508 | (get_local $11) 509 | (get_local $5) 510 | ) 511 | (i32.store offset=28 512 | (get_local $11) 513 | (get_local $6) 514 | ) 515 | (i32.store offset=32 516 | (get_local $11) 517 | (get_local $7) 518 | ) 519 | (i32.store offset=8 520 | (get_local $11) 521 | (i32.add 522 | (get_local $11) 523 | (i32.const 80) 524 | ) 525 | ) 526 | (i32.store offset=36 527 | (get_local $11) 528 | (get_local $8) 529 | ) 530 | (i64.store offset=120 531 | (get_local $11) 532 | (get_local $1) 533 | ) 534 | (call $eosio_assert 535 | (i64.eq 536 | (i64.load offset=40 537 | (get_local $11) 538 | ) 539 | (call $current_receiver) 540 | ) 541 | (i32.const 448) 542 | ) 543 | (i32.store offset=100 544 | (get_local $11) 545 | (i32.add 546 | (get_local $11) 547 | (i32.const 8) 548 | ) 549 | ) 550 | (i32.store offset=96 551 | (get_local $11) 552 | (i32.add 553 | (get_local $11) 554 | (i32.const 40) 555 | ) 556 | ) 557 | (i32.store offset=104 558 | (get_local $11) 559 | (i32.add 560 | (get_local $11) 561 | (i32.const 120) 562 | ) 563 | ) 564 | (i64.store offset=8 align=4 565 | (tee_local $3 566 | (call $_Znwj 567 | (i32.const 112) 568 | ) 569 | ) 570 | (i64.const 0) 571 | ) 572 | (i64.store offset=16 align=4 573 | (get_local $3) 574 | (i64.const 0) 575 | ) 576 | (i64.store offset=24 align=4 577 | (get_local $3) 578 | (i64.const 0) 579 | ) 580 | (i64.store offset=32 align=4 581 | (get_local $3) 582 | (i64.const 0) 583 | ) 584 | (i64.store offset=40 align=4 585 | (get_local $3) 586 | (i64.const 0) 587 | ) 588 | (i32.store offset=48 589 | (get_local $3) 590 | (i32.const 0) 591 | ) 592 | (i32.store offset=52 593 | (get_local $3) 594 | (i32.const 0) 595 | ) 596 | (i32.store offset=56 597 | (get_local $3) 598 | (i32.const 0) 599 | ) 600 | (i32.store offset=60 601 | (get_local $3) 602 | (i32.const 0) 603 | ) 604 | (i32.store offset=64 605 | (get_local $3) 606 | (i32.const 0) 607 | ) 608 | (i32.store offset=68 609 | (get_local $3) 610 | (i32.const 0) 611 | ) 612 | (i32.store offset=72 613 | (get_local $3) 614 | (i32.const 0) 615 | ) 616 | (i32.store offset=76 617 | (get_local $3) 618 | (i32.const 0) 619 | ) 620 | (i32.store offset=80 621 | (get_local $3) 622 | (i32.const 0) 623 | ) 624 | (i32.store offset=84 625 | (get_local $3) 626 | (i32.const 0) 627 | ) 628 | (i32.store offset=88 629 | (get_local $3) 630 | (i32.const 0) 631 | ) 632 | (i32.store offset=96 633 | (get_local $3) 634 | (i32.add 635 | (get_local $11) 636 | (i32.const 40) 637 | ) 638 | ) 639 | (call $_ZZN5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE7emplaceIZNS1_12createupdateEyNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEESB_SB_SB_SB_SB_SB_E3$_0EENS3_14const_iteratorEyOT_ENKUlRSE_E_clINS3_4itemEEEDaSG_ 640 | (i32.add 641 | (get_local $11) 642 | (i32.const 96) 643 | ) 644 | (get_local $3) 645 | ) 646 | (i32.store offset=112 647 | (get_local $11) 648 | (get_local $3) 649 | ) 650 | (i64.store offset=96 651 | (get_local $11) 652 | (tee_local $1 653 | (i64.load 654 | (get_local $3) 655 | ) 656 | ) 657 | ) 658 | (i32.store offset=92 659 | (get_local $11) 660 | (tee_local $5 661 | (i32.load offset=100 662 | (get_local $3) 663 | ) 664 | ) 665 | ) 666 | (block $label$17 667 | (block $label$18 668 | (br_if $label$18 669 | (i32.ge_u 670 | (tee_local $4 671 | (i32.load 672 | (tee_local $6 673 | (i32.add 674 | (get_local $11) 675 | (i32.const 68) 676 | ) 677 | ) 678 | ) 679 | ) 680 | (i32.load 681 | (get_local $10) 682 | ) 683 | ) 684 | ) 685 | (i64.store offset=8 686 | (get_local $4) 687 | (get_local $1) 688 | ) 689 | (i32.store offset=16 690 | (get_local $4) 691 | (get_local $5) 692 | ) 693 | (i32.store offset=112 694 | (get_local $11) 695 | (i32.const 0) 696 | ) 697 | (i32.store 698 | (get_local $4) 699 | (get_local $3) 700 | ) 701 | (i32.store 702 | (get_local $6) 703 | (i32.add 704 | (get_local $4) 705 | (i32.const 24) 706 | ) 707 | ) 708 | (br $label$17) 709 | ) 710 | (call $_ZNSt3__16vectorIN5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE8item_ptrENS_9allocatorIS6_EEE24__emplace_back_slow_pathIJNS_10unique_ptrINS5_4itemENS_14default_deleteISC_EEEERyRlEEEvDpOT_ 711 | (i32.add 712 | (get_local $11) 713 | (i32.const 64) 714 | ) 715 | (i32.add 716 | (get_local $11) 717 | (i32.const 112) 718 | ) 719 | (i32.add 720 | (get_local $11) 721 | (i32.const 96) 722 | ) 723 | (i32.add 724 | (get_local $11) 725 | (i32.const 92) 726 | ) 727 | ) 728 | ) 729 | (set_local $3 730 | (i32.load offset=112 731 | (get_local $11) 732 | ) 733 | ) 734 | (i32.store offset=112 735 | (get_local $11) 736 | (i32.const 0) 737 | ) 738 | (block $label$19 739 | (br_if $label$19 740 | (i32.eqz 741 | (get_local $3) 742 | ) 743 | ) 744 | (drop 745 | (call $_ZN9contracts4infoD2Ev 746 | (get_local $3) 747 | ) 748 | ) 749 | (call $_ZdlPv 750 | (get_local $3) 751 | ) 752 | ) 753 | (br_if $label$14 754 | (i32.eqz 755 | (tee_local $5 756 | (i32.load offset=64 757 | (get_local $11) 758 | ) 759 | ) 760 | ) 761 | ) 762 | ) 763 | (block $label$20 764 | (block $label$21 765 | (br_if $label$21 766 | (i32.eq 767 | (tee_local $3 768 | (i32.load 769 | (tee_local $6 770 | (i32.add 771 | (get_local $11) 772 | (i32.const 68) 773 | ) 774 | ) 775 | ) 776 | ) 777 | (get_local $5) 778 | ) 779 | ) 780 | (loop $label$22 781 | (set_local $4 782 | (i32.load 783 | (tee_local $3 784 | (i32.add 785 | (get_local $3) 786 | (i32.const -24) 787 | ) 788 | ) 789 | ) 790 | ) 791 | (i32.store 792 | (get_local $3) 793 | (i32.const 0) 794 | ) 795 | (block $label$23 796 | (br_if $label$23 797 | (i32.eqz 798 | (get_local $4) 799 | ) 800 | ) 801 | (drop 802 | (call $_ZN9contracts4infoD2Ev 803 | (get_local $4) 804 | ) 805 | ) 806 | (call $_ZdlPv 807 | (get_local $4) 808 | ) 809 | ) 810 | (br_if $label$22 811 | (i32.ne 812 | (get_local $5) 813 | (get_local $3) 814 | ) 815 | ) 816 | ) 817 | (set_local $3 818 | (i32.load 819 | (i32.add 820 | (get_local $11) 821 | (i32.const 64) 822 | ) 823 | ) 824 | ) 825 | (br $label$20) 826 | ) 827 | (set_local $3 828 | (get_local $5) 829 | ) 830 | ) 831 | (i32.store 832 | (get_local $6) 833 | (get_local $5) 834 | ) 835 | (call $_ZdlPv 836 | (get_local $3) 837 | ) 838 | ) 839 | (i32.store offset=4 840 | (i32.const 0) 841 | (i32.add 842 | (get_local $11) 843 | (i32.const 128) 844 | ) 845 | ) 846 | ) 847 | (func $_ZNK5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE31load_object_by_primary_iteratorEl (param $0 i32) (param $1 i32) (result i32) 848 | (local $2 i32) 849 | (local $3 i32) 850 | (local $4 i32) 851 | (local $5 i64) 852 | (local $6 i32) 853 | (local $7 i32) 854 | (local $8 i32) 855 | (local $9 i32) 856 | (set_local $8 857 | (tee_local $9 858 | (i32.sub 859 | (i32.load offset=4 860 | (i32.const 0) 861 | ) 862 | (i32.const 80) 863 | ) 864 | ) 865 | ) 866 | (i32.store offset=4 867 | (i32.const 0) 868 | (get_local $9) 869 | ) 870 | (block $label$0 871 | (br_if $label$0 872 | (i32.eq 873 | (tee_local $7 874 | (i32.load 875 | (i32.add 876 | (get_local $0) 877 | (i32.const 28) 878 | ) 879 | ) 880 | ) 881 | (tee_local $2 882 | (i32.load offset=24 883 | (get_local $0) 884 | ) 885 | ) 886 | ) 887 | ) 888 | (set_local $3 889 | (i32.sub 890 | (i32.const 0) 891 | (get_local $2) 892 | ) 893 | ) 894 | (set_local $6 895 | (i32.add 896 | (get_local $7) 897 | (i32.const -24) 898 | ) 899 | ) 900 | (loop $label$1 901 | (br_if $label$0 902 | (i32.eq 903 | (i32.load 904 | (i32.add 905 | (get_local $6) 906 | (i32.const 16) 907 | ) 908 | ) 909 | (get_local $1) 910 | ) 911 | ) 912 | (set_local $7 913 | (get_local $6) 914 | ) 915 | (set_local $6 916 | (tee_local $4 917 | (i32.add 918 | (get_local $6) 919 | (i32.const -24) 920 | ) 921 | ) 922 | ) 923 | (br_if $label$1 924 | (i32.ne 925 | (i32.add 926 | (get_local $4) 927 | (get_local $3) 928 | ) 929 | (i32.const -24) 930 | ) 931 | ) 932 | ) 933 | ) 934 | (block $label$2 935 | (block $label$3 936 | (br_if $label$3 937 | (i32.eq 938 | (get_local $7) 939 | (get_local $2) 940 | ) 941 | ) 942 | (set_local $6 943 | (i32.load 944 | (i32.add 945 | (get_local $7) 946 | (i32.const -24) 947 | ) 948 | ) 949 | ) 950 | (br $label$2) 951 | ) 952 | (call $eosio_assert 953 | (i32.xor 954 | (i32.shr_u 955 | (tee_local $6 956 | (call $db_get_i64 957 | (get_local $1) 958 | (i32.const 0) 959 | (i32.const 0) 960 | ) 961 | ) 962 | (i32.const 31) 963 | ) 964 | (i32.const 1) 965 | ) 966 | (i32.const 704) 967 | ) 968 | (block $label$4 969 | (block $label$5 970 | (br_if $label$5 971 | (i32.lt_u 972 | (get_local $6) 973 | (i32.const 513) 974 | ) 975 | ) 976 | (set_local $4 977 | (call $malloc 978 | (get_local $6) 979 | ) 980 | ) 981 | (br $label$4) 982 | ) 983 | (i32.store offset=4 984 | (i32.const 0) 985 | (tee_local $4 986 | (i32.sub 987 | (get_local $9) 988 | (i32.and 989 | (i32.add 990 | (get_local $6) 991 | (i32.const 15) 992 | ) 993 | (i32.const -16) 994 | ) 995 | ) 996 | ) 997 | ) 998 | ) 999 | (drop 1000 | (call $db_get_i64 1001 | (get_local $1) 1002 | (get_local $4) 1003 | (get_local $6) 1004 | ) 1005 | ) 1006 | (i32.store offset=20 1007 | (get_local $8) 1008 | (get_local $4) 1009 | ) 1010 | (i32.store offset=16 1011 | (get_local $8) 1012 | (get_local $4) 1013 | ) 1014 | (i32.store offset=24 1015 | (get_local $8) 1016 | (i32.add 1017 | (get_local $4) 1018 | (get_local $6) 1019 | ) 1020 | ) 1021 | (block $label$6 1022 | (br_if $label$6 1023 | (i32.lt_u 1024 | (get_local $6) 1025 | (i32.const 513) 1026 | ) 1027 | ) 1028 | (call $free 1029 | (get_local $4) 1030 | ) 1031 | ) 1032 | (i64.store offset=8 align=4 1033 | (tee_local $6 1034 | (call $_Znwj 1035 | (i32.const 112) 1036 | ) 1037 | ) 1038 | (i64.const 0) 1039 | ) 1040 | (i64.store offset=16 align=4 1041 | (get_local $6) 1042 | (i64.const 0) 1043 | ) 1044 | (i64.store offset=24 align=4 1045 | (get_local $6) 1046 | (i64.const 0) 1047 | ) 1048 | (i64.store offset=32 align=4 1049 | (get_local $6) 1050 | (i64.const 0) 1051 | ) 1052 | (i64.store offset=40 align=4 1053 | (get_local $6) 1054 | (i64.const 0) 1055 | ) 1056 | (i32.store offset=48 1057 | (get_local $6) 1058 | (i32.const 0) 1059 | ) 1060 | (i32.store offset=52 1061 | (get_local $6) 1062 | (i32.const 0) 1063 | ) 1064 | (i32.store offset=56 1065 | (get_local $6) 1066 | (i32.const 0) 1067 | ) 1068 | (i32.store offset=60 1069 | (get_local $6) 1070 | (i32.const 0) 1071 | ) 1072 | (i32.store offset=64 1073 | (get_local $6) 1074 | (i32.const 0) 1075 | ) 1076 | (i32.store offset=68 1077 | (get_local $6) 1078 | (i32.const 0) 1079 | ) 1080 | (i32.store offset=72 1081 | (get_local $6) 1082 | (i32.const 0) 1083 | ) 1084 | (i32.store offset=76 1085 | (get_local $6) 1086 | (i32.const 0) 1087 | ) 1088 | (i32.store offset=80 1089 | (get_local $6) 1090 | (i32.const 0) 1091 | ) 1092 | (i32.store offset=84 1093 | (get_local $6) 1094 | (i32.const 0) 1095 | ) 1096 | (i32.store offset=88 1097 | (get_local $6) 1098 | (i32.const 0) 1099 | ) 1100 | (i32.store offset=96 1101 | (get_local $6) 1102 | (get_local $0) 1103 | ) 1104 | (i32.store offset=32 1105 | (get_local $8) 1106 | (i32.add 1107 | (get_local $8) 1108 | (i32.const 16) 1109 | ) 1110 | ) 1111 | (i32.store offset=44 1112 | (get_local $8) 1113 | (i32.add 1114 | (get_local $6) 1115 | (i32.const 8) 1116 | ) 1117 | ) 1118 | (i32.store offset=40 1119 | (get_local $8) 1120 | (get_local $6) 1121 | ) 1122 | (i32.store offset=48 1123 | (get_local $8) 1124 | (i32.add 1125 | (get_local $6) 1126 | (i32.const 20) 1127 | ) 1128 | ) 1129 | (i32.store offset=52 1130 | (get_local $8) 1131 | (i32.add 1132 | (get_local $6) 1133 | (i32.const 32) 1134 | ) 1135 | ) 1136 | (i32.store offset=56 1137 | (get_local $8) 1138 | (i32.add 1139 | (get_local $6) 1140 | (i32.const 44) 1141 | ) 1142 | ) 1143 | (i32.store offset=60 1144 | (get_local $8) 1145 | (i32.add 1146 | (get_local $6) 1147 | (i32.const 56) 1148 | ) 1149 | ) 1150 | (i32.store offset=64 1151 | (get_local $8) 1152 | (i32.add 1153 | (get_local $6) 1154 | (i32.const 68) 1155 | ) 1156 | ) 1157 | (i32.store offset=68 1158 | (get_local $8) 1159 | (i32.add 1160 | (get_local $6) 1161 | (i32.const 80) 1162 | ) 1163 | ) 1164 | (i32.store offset=72 1165 | (get_local $8) 1166 | (i32.add 1167 | (get_local $6) 1168 | (i32.const 92) 1169 | ) 1170 | ) 1171 | (call $_ZN5boost3pfr6detail19for_each_field_implINS1_14sequence_tuple5tupleIJRyRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEESD_SD_SD_SD_SD_SD_RmEEEZN5eosiorsINSG_10datastreamIPKcEEN9contracts4infoELPv0EEERT_SQ_RT0_EUlSQ_E_JLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7ELj8EEEEvSQ_OSR_NS6_16integer_sequenceIjJXspT1_EEEENS6_17integral_constantIbLb0EEE 1172 | (i32.add 1173 | (get_local $8) 1174 | (i32.const 40) 1175 | ) 1176 | (i32.add 1177 | (get_local $8) 1178 | (i32.const 32) 1179 | ) 1180 | ) 1181 | (i32.store offset=100 1182 | (get_local $6) 1183 | (get_local $1) 1184 | ) 1185 | (i32.store offset=32 1186 | (get_local $8) 1187 | (get_local $6) 1188 | ) 1189 | (i64.store offset=40 1190 | (get_local $8) 1191 | (tee_local $5 1192 | (i64.load 1193 | (get_local $6) 1194 | ) 1195 | ) 1196 | ) 1197 | (i32.store offset=12 1198 | (get_local $8) 1199 | (tee_local $7 1200 | (i32.load offset=100 1201 | (get_local $6) 1202 | ) 1203 | ) 1204 | ) 1205 | (block $label$7 1206 | (block $label$8 1207 | (br_if $label$8 1208 | (i32.ge_u 1209 | (tee_local $4 1210 | (i32.load 1211 | (tee_local $1 1212 | (i32.add 1213 | (get_local $0) 1214 | (i32.const 28) 1215 | ) 1216 | ) 1217 | ) 1218 | ) 1219 | (i32.load 1220 | (i32.add 1221 | (get_local $0) 1222 | (i32.const 32) 1223 | ) 1224 | ) 1225 | ) 1226 | ) 1227 | (i64.store offset=8 1228 | (get_local $4) 1229 | (get_local $5) 1230 | ) 1231 | (i32.store offset=16 1232 | (get_local $4) 1233 | (get_local $7) 1234 | ) 1235 | (i32.store offset=32 1236 | (get_local $8) 1237 | (i32.const 0) 1238 | ) 1239 | (i32.store 1240 | (get_local $4) 1241 | (get_local $6) 1242 | ) 1243 | (i32.store 1244 | (get_local $1) 1245 | (i32.add 1246 | (get_local $4) 1247 | (i32.const 24) 1248 | ) 1249 | ) 1250 | (br $label$7) 1251 | ) 1252 | (call $_ZNSt3__16vectorIN5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE8item_ptrENS_9allocatorIS6_EEE24__emplace_back_slow_pathIJNS_10unique_ptrINS5_4itemENS_14default_deleteISC_EEEERyRlEEEvDpOT_ 1253 | (i32.add 1254 | (get_local $0) 1255 | (i32.const 24) 1256 | ) 1257 | (i32.add 1258 | (get_local $8) 1259 | (i32.const 32) 1260 | ) 1261 | (i32.add 1262 | (get_local $8) 1263 | (i32.const 40) 1264 | ) 1265 | (i32.add 1266 | (get_local $8) 1267 | (i32.const 12) 1268 | ) 1269 | ) 1270 | ) 1271 | (set_local $4 1272 | (i32.load offset=32 1273 | (get_local $8) 1274 | ) 1275 | ) 1276 | (i32.store offset=32 1277 | (get_local $8) 1278 | (i32.const 0) 1279 | ) 1280 | (br_if $label$2 1281 | (i32.eqz 1282 | (get_local $4) 1283 | ) 1284 | ) 1285 | (drop 1286 | (call $_ZN9contracts4infoD2Ev 1287 | (get_local $4) 1288 | ) 1289 | ) 1290 | (call $_ZdlPv 1291 | (get_local $4) 1292 | ) 1293 | ) 1294 | (i32.store offset=4 1295 | (i32.const 0) 1296 | (i32.add 1297 | (get_local $8) 1298 | (i32.const 80) 1299 | ) 1300 | ) 1301 | (get_local $6) 1302 | ) 1303 | (func $_ZN5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE6modifyIZNS1_12createupdateEyNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEESB_SB_SB_SB_SB_SB_E3$_1EEvRKS2_yOT_ (param $0 i32) (param $1 i32) (param $2 i32) 1304 | (local $3 i64) 1305 | (local $4 i32) 1306 | (local $5 i32) 1307 | (local $6 i32) 1308 | (local $7 i32) 1309 | (local $8 i32) 1310 | (local $9 i32) 1311 | (local $10 i32) 1312 | (local $11 i32) 1313 | (local $12 i32) 1314 | (local $13 i32) 1315 | (i32.store offset=4 1316 | (i32.const 0) 1317 | (tee_local $13 1318 | (i32.sub 1319 | (i32.load offset=4 1320 | (i32.const 0) 1321 | ) 1322 | (i32.const 64) 1323 | ) 1324 | ) 1325 | ) 1326 | (call $eosio_assert 1327 | (i32.eq 1328 | (i32.load offset=96 1329 | (get_local $1) 1330 | ) 1331 | (get_local $0) 1332 | ) 1333 | (i32.const 528) 1334 | ) 1335 | (call $eosio_assert 1336 | (i64.eq 1337 | (i64.load 1338 | (get_local $0) 1339 | ) 1340 | (call $current_receiver) 1341 | ) 1342 | (i32.const 576) 1343 | ) 1344 | (set_local $3 1345 | (i64.load 1346 | (get_local $1) 1347 | ) 1348 | ) 1349 | (drop 1350 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1351 | (tee_local $4 1352 | (i32.add 1353 | (get_local $1) 1354 | (i32.const 8) 1355 | ) 1356 | ) 1357 | (i32.load 1358 | (get_local $2) 1359 | ) 1360 | ) 1361 | ) 1362 | (drop 1363 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1364 | (tee_local $5 1365 | (i32.add 1366 | (get_local $1) 1367 | (i32.const 20) 1368 | ) 1369 | ) 1370 | (i32.load offset=4 1371 | (get_local $2) 1372 | ) 1373 | ) 1374 | ) 1375 | (drop 1376 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1377 | (tee_local $6 1378 | (i32.add 1379 | (get_local $1) 1380 | (i32.const 32) 1381 | ) 1382 | ) 1383 | (i32.load offset=8 1384 | (get_local $2) 1385 | ) 1386 | ) 1387 | ) 1388 | (drop 1389 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1390 | (tee_local $7 1391 | (i32.add 1392 | (get_local $1) 1393 | (i32.const 44) 1394 | ) 1395 | ) 1396 | (i32.load offset=12 1397 | (get_local $2) 1398 | ) 1399 | ) 1400 | ) 1401 | (drop 1402 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1403 | (tee_local $8 1404 | (i32.add 1405 | (get_local $1) 1406 | (i32.const 56) 1407 | ) 1408 | ) 1409 | (i32.load offset=16 1410 | (get_local $2) 1411 | ) 1412 | ) 1413 | ) 1414 | (drop 1415 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1416 | (tee_local $9 1417 | (i32.add 1418 | (get_local $1) 1419 | (i32.const 68) 1420 | ) 1421 | ) 1422 | (i32.load offset=20 1423 | (get_local $2) 1424 | ) 1425 | ) 1426 | ) 1427 | (drop 1428 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1429 | (tee_local $10 1430 | (i32.add 1431 | (get_local $1) 1432 | (i32.const 80) 1433 | ) 1434 | ) 1435 | (i32.load offset=24 1436 | (get_local $2) 1437 | ) 1438 | ) 1439 | ) 1440 | (i32.store offset=92 1441 | (get_local $1) 1442 | (i32.add 1443 | (i32.load offset=92 1444 | (get_local $1) 1445 | ) 1446 | (i32.const 1) 1447 | ) 1448 | ) 1449 | (call $eosio_assert 1450 | (i64.eq 1451 | (get_local $3) 1452 | (i64.load 1453 | (get_local $1) 1454 | ) 1455 | ) 1456 | (i32.const 640) 1457 | ) 1458 | (i32.store offset=16 1459 | (tee_local $2 1460 | (get_local $13) 1461 | ) 1462 | (i32.const 0) 1463 | ) 1464 | (i32.store 1465 | (get_local $2) 1466 | (i32.add 1467 | (get_local $2) 1468 | (i32.const 16) 1469 | ) 1470 | ) 1471 | (i32.store offset=28 1472 | (get_local $2) 1473 | (get_local $4) 1474 | ) 1475 | (i32.store offset=24 1476 | (get_local $2) 1477 | (get_local $1) 1478 | ) 1479 | (i32.store offset=32 1480 | (get_local $2) 1481 | (get_local $5) 1482 | ) 1483 | (i32.store offset=36 1484 | (get_local $2) 1485 | (get_local $6) 1486 | ) 1487 | (i32.store offset=40 1488 | (get_local $2) 1489 | (get_local $7) 1490 | ) 1491 | (i32.store offset=44 1492 | (get_local $2) 1493 | (get_local $8) 1494 | ) 1495 | (i32.store offset=48 1496 | (get_local $2) 1497 | (get_local $9) 1498 | ) 1499 | (i32.store offset=52 1500 | (get_local $2) 1501 | (get_local $10) 1502 | ) 1503 | (i32.store offset=56 1504 | (get_local $2) 1505 | (tee_local $11 1506 | (i32.add 1507 | (get_local $1) 1508 | (i32.const 92) 1509 | ) 1510 | ) 1511 | ) 1512 | (call $_ZN5boost3pfr6detail19for_each_field_implINS1_14sequence_tuple5tupleIJRKyRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEESF_SF_SF_SF_SF_SF_RKmEEEZN5eosiolsINSJ_10datastreamIjEEN9contracts4infoELPv0EEERT_SR_RKT0_EUlRKSQ_E_JLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7ELj8EEEEvSR_OSS_NS7_16integer_sequenceIjJXspT1_EEEENS7_17integral_constantIbLb0EEE 1513 | (i32.add 1514 | (get_local $2) 1515 | (i32.const 24) 1516 | ) 1517 | (get_local $2) 1518 | ) 1519 | (block $label$0 1520 | (block $label$1 1521 | (br_if $label$1 1522 | (i32.lt_u 1523 | (tee_local $12 1524 | (i32.load offset=16 1525 | (get_local $2) 1526 | ) 1527 | ) 1528 | (i32.const 513) 1529 | ) 1530 | ) 1531 | (set_local $13 1532 | (call $malloc 1533 | (get_local $12) 1534 | ) 1535 | ) 1536 | (br $label$0) 1537 | ) 1538 | (i32.store offset=4 1539 | (i32.const 0) 1540 | (tee_local $13 1541 | (i32.sub 1542 | (get_local $13) 1543 | (i32.and 1544 | (i32.add 1545 | (get_local $12) 1546 | (i32.const 15) 1547 | ) 1548 | (i32.const -16) 1549 | ) 1550 | ) 1551 | ) 1552 | ) 1553 | ) 1554 | (i32.store offset=4 1555 | (get_local $2) 1556 | (get_local $13) 1557 | ) 1558 | (i32.store 1559 | (get_local $2) 1560 | (get_local $13) 1561 | ) 1562 | (i32.store offset=8 1563 | (get_local $2) 1564 | (i32.add 1565 | (get_local $13) 1566 | (get_local $12) 1567 | ) 1568 | ) 1569 | (i32.store offset=16 1570 | (get_local $2) 1571 | (get_local $2) 1572 | ) 1573 | (i32.store offset=28 1574 | (get_local $2) 1575 | (get_local $4) 1576 | ) 1577 | (i32.store offset=32 1578 | (get_local $2) 1579 | (get_local $5) 1580 | ) 1581 | (i32.store offset=36 1582 | (get_local $2) 1583 | (get_local $6) 1584 | ) 1585 | (i32.store offset=40 1586 | (get_local $2) 1587 | (get_local $7) 1588 | ) 1589 | (i32.store offset=44 1590 | (get_local $2) 1591 | (get_local $8) 1592 | ) 1593 | (i32.store offset=48 1594 | (get_local $2) 1595 | (get_local $9) 1596 | ) 1597 | (i32.store offset=24 1598 | (get_local $2) 1599 | (get_local $1) 1600 | ) 1601 | (i32.store offset=52 1602 | (get_local $2) 1603 | (get_local $10) 1604 | ) 1605 | (i32.store offset=56 1606 | (get_local $2) 1607 | (get_local $11) 1608 | ) 1609 | (call $_ZN5boost3pfr6detail19for_each_field_implINS1_14sequence_tuple5tupleIJRKyRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEESF_SF_SF_SF_SF_SF_RKmEEEZN5eosiolsINSJ_10datastreamIPcEEN9contracts4infoELPv0EEERT_SS_RKT0_EUlRKSR_E_JLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7ELj8EEEEvSS_OST_NS7_16integer_sequenceIjJXspT1_EEEENS7_17integral_constantIbLb0EEE 1610 | (i32.add 1611 | (get_local $2) 1612 | (i32.const 24) 1613 | ) 1614 | (i32.add 1615 | (get_local $2) 1616 | (i32.const 16) 1617 | ) 1618 | ) 1619 | (call $db_update_i64 1620 | (i32.load offset=100 1621 | (get_local $1) 1622 | ) 1623 | (i64.const 0) 1624 | (get_local $13) 1625 | (get_local $12) 1626 | ) 1627 | (block $label$2 1628 | (br_if $label$2 1629 | (i32.lt_u 1630 | (get_local $12) 1631 | (i32.const 513) 1632 | ) 1633 | ) 1634 | (call $free 1635 | (get_local $13) 1636 | ) 1637 | ) 1638 | (block $label$3 1639 | (br_if $label$3 1640 | (i64.lt_u 1641 | (get_local $3) 1642 | (i64.load offset=16 1643 | (get_local $0) 1644 | ) 1645 | ) 1646 | ) 1647 | (i64.store 1648 | (i32.add 1649 | (get_local $0) 1650 | (i32.const 16) 1651 | ) 1652 | (select 1653 | (i64.const -2) 1654 | (i64.add 1655 | (get_local $3) 1656 | (i64.const 1) 1657 | ) 1658 | (i64.gt_u 1659 | (get_local $3) 1660 | (i64.const -3) 1661 | ) 1662 | ) 1663 | ) 1664 | ) 1665 | (i32.store offset=4 1666 | (i32.const 0) 1667 | (i32.add 1668 | (get_local $2) 1669 | (i32.const 64) 1670 | ) 1671 | ) 1672 | ) 1673 | (func $_ZZN5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE7emplaceIZNS1_12createupdateEyNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEESB_SB_SB_SB_SB_SB_E3$_0EENS3_14const_iteratorEyOT_ENKUlRSE_E_clINS3_4itemEEEDaSG_ (param $0 i32) (param $1 i32) 1674 | (local $2 i32) 1675 | (local $3 i32) 1676 | (local $4 i32) 1677 | (local $5 i32) 1678 | (local $6 i32) 1679 | (local $7 i32) 1680 | (local $8 i32) 1681 | (local $9 i32) 1682 | (local $10 i32) 1683 | (local $11 i32) 1684 | (local $12 i64) 1685 | (local $13 i32) 1686 | (local $14 i32) 1687 | (i32.store offset=4 1688 | (i32.const 0) 1689 | (tee_local $13 1690 | (i32.sub 1691 | (i32.load offset=4 1692 | (i32.const 0) 1693 | ) 1694 | (i32.const 64) 1695 | ) 1696 | ) 1697 | ) 1698 | (i64.store 1699 | (get_local $1) 1700 | (i64.load 1701 | (i32.load 1702 | (tee_local $14 1703 | (i32.load offset=4 1704 | (get_local $0) 1705 | ) 1706 | ) 1707 | ) 1708 | ) 1709 | ) 1710 | (set_local $2 1711 | (i32.load 1712 | (get_local $0) 1713 | ) 1714 | ) 1715 | (drop 1716 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1717 | (tee_local $3 1718 | (i32.add 1719 | (get_local $1) 1720 | (i32.const 8) 1721 | ) 1722 | ) 1723 | (i32.load offset=4 1724 | (get_local $14) 1725 | ) 1726 | ) 1727 | ) 1728 | (drop 1729 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1730 | (tee_local $4 1731 | (i32.add 1732 | (get_local $1) 1733 | (i32.const 20) 1734 | ) 1735 | ) 1736 | (i32.load offset=8 1737 | (get_local $14) 1738 | ) 1739 | ) 1740 | ) 1741 | (drop 1742 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1743 | (tee_local $5 1744 | (i32.add 1745 | (get_local $1) 1746 | (i32.const 32) 1747 | ) 1748 | ) 1749 | (i32.load offset=12 1750 | (get_local $14) 1751 | ) 1752 | ) 1753 | ) 1754 | (drop 1755 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1756 | (tee_local $6 1757 | (i32.add 1758 | (get_local $1) 1759 | (i32.const 44) 1760 | ) 1761 | ) 1762 | (i32.load offset=16 1763 | (get_local $14) 1764 | ) 1765 | ) 1766 | ) 1767 | (drop 1768 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1769 | (tee_local $7 1770 | (i32.add 1771 | (get_local $1) 1772 | (i32.const 56) 1773 | ) 1774 | ) 1775 | (i32.load offset=20 1776 | (get_local $14) 1777 | ) 1778 | ) 1779 | ) 1780 | (drop 1781 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1782 | (tee_local $8 1783 | (i32.add 1784 | (get_local $1) 1785 | (i32.const 68) 1786 | ) 1787 | ) 1788 | (i32.load offset=24 1789 | (get_local $14) 1790 | ) 1791 | ) 1792 | ) 1793 | (drop 1794 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ 1795 | (tee_local $9 1796 | (i32.add 1797 | (get_local $1) 1798 | (i32.const 80) 1799 | ) 1800 | ) 1801 | (i32.load offset=28 1802 | (get_local $14) 1803 | ) 1804 | ) 1805 | ) 1806 | (i32.store offset=92 1807 | (get_local $1) 1808 | (i32.const 1) 1809 | ) 1810 | (i32.store offset=16 1811 | (tee_local $14 1812 | (get_local $13) 1813 | ) 1814 | (i32.const 0) 1815 | ) 1816 | (i32.store 1817 | (get_local $14) 1818 | (i32.add 1819 | (get_local $14) 1820 | (i32.const 16) 1821 | ) 1822 | ) 1823 | (i32.store offset=28 1824 | (get_local $14) 1825 | (get_local $3) 1826 | ) 1827 | (i32.store offset=24 1828 | (get_local $14) 1829 | (get_local $1) 1830 | ) 1831 | (i32.store offset=32 1832 | (get_local $14) 1833 | (get_local $4) 1834 | ) 1835 | (i32.store offset=36 1836 | (get_local $14) 1837 | (get_local $5) 1838 | ) 1839 | (i32.store offset=40 1840 | (get_local $14) 1841 | (get_local $6) 1842 | ) 1843 | (i32.store offset=44 1844 | (get_local $14) 1845 | (get_local $7) 1846 | ) 1847 | (i32.store offset=48 1848 | (get_local $14) 1849 | (get_local $8) 1850 | ) 1851 | (i32.store offset=52 1852 | (get_local $14) 1853 | (get_local $9) 1854 | ) 1855 | (i32.store offset=56 1856 | (get_local $14) 1857 | (tee_local $10 1858 | (i32.add 1859 | (get_local $1) 1860 | (i32.const 92) 1861 | ) 1862 | ) 1863 | ) 1864 | (call $_ZN5boost3pfr6detail19for_each_field_implINS1_14sequence_tuple5tupleIJRKyRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEESF_SF_SF_SF_SF_SF_RKmEEEZN5eosiolsINSJ_10datastreamIjEEN9contracts4infoELPv0EEERT_SR_RKT0_EUlRKSQ_E_JLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7ELj8EEEEvSR_OSS_NS7_16integer_sequenceIjJXspT1_EEEENS7_17integral_constantIbLb0EEE 1865 | (i32.add 1866 | (get_local $14) 1867 | (i32.const 24) 1868 | ) 1869 | (get_local $14) 1870 | ) 1871 | (block $label$0 1872 | (block $label$1 1873 | (br_if $label$1 1874 | (i32.lt_u 1875 | (tee_local $11 1876 | (i32.load offset=16 1877 | (get_local $14) 1878 | ) 1879 | ) 1880 | (i32.const 513) 1881 | ) 1882 | ) 1883 | (set_local $13 1884 | (call $malloc 1885 | (get_local $11) 1886 | ) 1887 | ) 1888 | (br $label$0) 1889 | ) 1890 | (i32.store offset=4 1891 | (i32.const 0) 1892 | (tee_local $13 1893 | (i32.sub 1894 | (get_local $13) 1895 | (i32.and 1896 | (i32.add 1897 | (get_local $11) 1898 | (i32.const 15) 1899 | ) 1900 | (i32.const -16) 1901 | ) 1902 | ) 1903 | ) 1904 | ) 1905 | ) 1906 | (i32.store offset=4 1907 | (get_local $14) 1908 | (get_local $13) 1909 | ) 1910 | (i32.store 1911 | (get_local $14) 1912 | (get_local $13) 1913 | ) 1914 | (i32.store offset=8 1915 | (get_local $14) 1916 | (i32.add 1917 | (get_local $13) 1918 | (get_local $11) 1919 | ) 1920 | ) 1921 | (i32.store offset=16 1922 | (get_local $14) 1923 | (get_local $14) 1924 | ) 1925 | (i32.store offset=28 1926 | (get_local $14) 1927 | (get_local $3) 1928 | ) 1929 | (i32.store offset=24 1930 | (get_local $14) 1931 | (get_local $1) 1932 | ) 1933 | (i32.store offset=32 1934 | (get_local $14) 1935 | (get_local $4) 1936 | ) 1937 | (i32.store offset=36 1938 | (get_local $14) 1939 | (get_local $5) 1940 | ) 1941 | (i32.store offset=40 1942 | (get_local $14) 1943 | (get_local $6) 1944 | ) 1945 | (i32.store offset=44 1946 | (get_local $14) 1947 | (get_local $7) 1948 | ) 1949 | (i32.store offset=48 1950 | (get_local $14) 1951 | (get_local $8) 1952 | ) 1953 | (i32.store offset=52 1954 | (get_local $14) 1955 | (get_local $9) 1956 | ) 1957 | (i32.store offset=56 1958 | (get_local $14) 1959 | (get_local $10) 1960 | ) 1961 | (call $_ZN5boost3pfr6detail19for_each_field_implINS1_14sequence_tuple5tupleIJRKyRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEESF_SF_SF_SF_SF_SF_RKmEEEZN5eosiolsINSJ_10datastreamIPcEEN9contracts4infoELPv0EEERT_SS_RKT0_EUlRKSR_E_JLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7ELj8EEEEvSS_OST_NS7_16integer_sequenceIjJXspT1_EEEENS7_17integral_constantIbLb0EEE 1962 | (i32.add 1963 | (get_local $14) 1964 | (i32.const 24) 1965 | ) 1966 | (i32.add 1967 | (get_local $14) 1968 | (i32.const 16) 1969 | ) 1970 | ) 1971 | (i32.store offset=100 1972 | (get_local $1) 1973 | (call $db_store_i64 1974 | (i64.load offset=8 1975 | (get_local $2) 1976 | ) 1977 | (i64.const 8419268397136609280) 1978 | (i64.load 1979 | (i32.load offset=8 1980 | (get_local $0) 1981 | ) 1982 | ) 1983 | (tee_local $12 1984 | (i64.load 1985 | (get_local $1) 1986 | ) 1987 | ) 1988 | (get_local $13) 1989 | (get_local $11) 1990 | ) 1991 | ) 1992 | (block $label$2 1993 | (br_if $label$2 1994 | (i32.lt_u 1995 | (get_local $11) 1996 | (i32.const 513) 1997 | ) 1998 | ) 1999 | (call $free 2000 | (get_local $13) 2001 | ) 2002 | ) 2003 | (block $label$3 2004 | (br_if $label$3 2005 | (i64.lt_u 2006 | (get_local $12) 2007 | (i64.load offset=16 2008 | (get_local $2) 2009 | ) 2010 | ) 2011 | ) 2012 | (i64.store 2013 | (i32.add 2014 | (get_local $2) 2015 | (i32.const 16) 2016 | ) 2017 | (select 2018 | (i64.const -2) 2019 | (i64.add 2020 | (get_local $12) 2021 | (i64.const 1) 2022 | ) 2023 | (i64.gt_u 2024 | (get_local $12) 2025 | (i64.const -3) 2026 | ) 2027 | ) 2028 | ) 2029 | ) 2030 | (i32.store offset=4 2031 | (i32.const 0) 2032 | (i32.add 2033 | (get_local $14) 2034 | (i32.const 64) 2035 | ) 2036 | ) 2037 | ) 2038 | (func $_ZNSt3__16vectorIN5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE8item_ptrENS_9allocatorIS6_EEE24__emplace_back_slow_pathIJNS_10unique_ptrINS5_4itemENS_14default_deleteISC_EEEERyRlEEEvDpOT_ (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) 2039 | (local $4 i32) 2040 | (local $5 i32) 2041 | (local $6 i32) 2042 | (local $7 i32) 2043 | (block $label$0 2044 | (block $label$1 2045 | (br_if $label$1 2046 | (i32.ge_u 2047 | (tee_local $5 2048 | (i32.add 2049 | (tee_local $4 2050 | (i32.div_s 2051 | (i32.sub 2052 | (i32.load offset=4 2053 | (get_local $0) 2054 | ) 2055 | (tee_local $6 2056 | (i32.load 2057 | (get_local $0) 2058 | ) 2059 | ) 2060 | ) 2061 | (i32.const 24) 2062 | ) 2063 | ) 2064 | (i32.const 1) 2065 | ) 2066 | ) 2067 | (i32.const 178956971) 2068 | ) 2069 | ) 2070 | (set_local $7 2071 | (i32.const 178956970) 2072 | ) 2073 | (block $label$2 2074 | (block $label$3 2075 | (br_if $label$3 2076 | (i32.gt_u 2077 | (tee_local $6 2078 | (i32.div_s 2079 | (i32.sub 2080 | (i32.load offset=8 2081 | (get_local $0) 2082 | ) 2083 | (get_local $6) 2084 | ) 2085 | (i32.const 24) 2086 | ) 2087 | ) 2088 | (i32.const 89478484) 2089 | ) 2090 | ) 2091 | (br_if $label$2 2092 | (i32.eqz 2093 | (tee_local $7 2094 | (select 2095 | (get_local $5) 2096 | (tee_local $7 2097 | (i32.shl 2098 | (get_local $6) 2099 | (i32.const 1) 2100 | ) 2101 | ) 2102 | (i32.lt_u 2103 | (get_local $7) 2104 | (get_local $5) 2105 | ) 2106 | ) 2107 | ) 2108 | ) 2109 | ) 2110 | ) 2111 | (set_local $6 2112 | (call $_Znwj 2113 | (i32.mul 2114 | (get_local $7) 2115 | (i32.const 24) 2116 | ) 2117 | ) 2118 | ) 2119 | (br $label$0) 2120 | ) 2121 | (set_local $7 2122 | (i32.const 0) 2123 | ) 2124 | (set_local $6 2125 | (i32.const 0) 2126 | ) 2127 | (br $label$0) 2128 | ) 2129 | (call $_ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv 2130 | (get_local $0) 2131 | ) 2132 | (unreachable) 2133 | ) 2134 | (set_local $5 2135 | (i32.load 2136 | (get_local $1) 2137 | ) 2138 | ) 2139 | (i32.store 2140 | (get_local $1) 2141 | (i32.const 0) 2142 | ) 2143 | (i32.store 2144 | (tee_local $1 2145 | (i32.add 2146 | (get_local $6) 2147 | (i32.mul 2148 | (get_local $4) 2149 | (i32.const 24) 2150 | ) 2151 | ) 2152 | ) 2153 | (get_local $5) 2154 | ) 2155 | (i64.store offset=8 2156 | (get_local $1) 2157 | (i64.load 2158 | (get_local $2) 2159 | ) 2160 | ) 2161 | (i32.store offset=16 2162 | (get_local $1) 2163 | (i32.load 2164 | (get_local $3) 2165 | ) 2166 | ) 2167 | (set_local $4 2168 | (i32.add 2169 | (get_local $6) 2170 | (i32.mul 2171 | (get_local $7) 2172 | (i32.const 24) 2173 | ) 2174 | ) 2175 | ) 2176 | (set_local $5 2177 | (i32.add 2178 | (get_local $1) 2179 | (i32.const 24) 2180 | ) 2181 | ) 2182 | (block $label$4 2183 | (block $label$5 2184 | (br_if $label$5 2185 | (i32.eq 2186 | (tee_local $6 2187 | (i32.load 2188 | (i32.add 2189 | (get_local $0) 2190 | (i32.const 4) 2191 | ) 2192 | ) 2193 | ) 2194 | (tee_local $7 2195 | (i32.load 2196 | (get_local $0) 2197 | ) 2198 | ) 2199 | ) 2200 | ) 2201 | (loop $label$6 2202 | (set_local $3 2203 | (i32.load 2204 | (tee_local $2 2205 | (i32.add 2206 | (get_local $6) 2207 | (i32.const -24) 2208 | ) 2209 | ) 2210 | ) 2211 | ) 2212 | (i32.store 2213 | (get_local $2) 2214 | (i32.const 0) 2215 | ) 2216 | (i32.store 2217 | (i32.add 2218 | (get_local $1) 2219 | (i32.const -24) 2220 | ) 2221 | (get_local $3) 2222 | ) 2223 | (i32.store 2224 | (i32.add 2225 | (get_local $1) 2226 | (i32.const -8) 2227 | ) 2228 | (i32.load 2229 | (i32.add 2230 | (get_local $6) 2231 | (i32.const -8) 2232 | ) 2233 | ) 2234 | ) 2235 | (i32.store 2236 | (i32.add 2237 | (get_local $1) 2238 | (i32.const -12) 2239 | ) 2240 | (i32.load 2241 | (i32.add 2242 | (get_local $6) 2243 | (i32.const -12) 2244 | ) 2245 | ) 2246 | ) 2247 | (i32.store 2248 | (i32.add 2249 | (get_local $1) 2250 | (i32.const -16) 2251 | ) 2252 | (i32.load 2253 | (i32.add 2254 | (get_local $6) 2255 | (i32.const -16) 2256 | ) 2257 | ) 2258 | ) 2259 | (set_local $1 2260 | (i32.add 2261 | (get_local $1) 2262 | (i32.const -24) 2263 | ) 2264 | ) 2265 | (set_local $6 2266 | (get_local $2) 2267 | ) 2268 | (br_if $label$6 2269 | (i32.ne 2270 | (get_local $7) 2271 | (get_local $2) 2272 | ) 2273 | ) 2274 | ) 2275 | (set_local $7 2276 | (i32.load 2277 | (i32.add 2278 | (get_local $0) 2279 | (i32.const 4) 2280 | ) 2281 | ) 2282 | ) 2283 | (set_local $6 2284 | (i32.load 2285 | (get_local $0) 2286 | ) 2287 | ) 2288 | (br $label$4) 2289 | ) 2290 | (set_local $6 2291 | (get_local $7) 2292 | ) 2293 | ) 2294 | (i32.store 2295 | (get_local $0) 2296 | (get_local $1) 2297 | ) 2298 | (i32.store 2299 | (i32.add 2300 | (get_local $0) 2301 | (i32.const 4) 2302 | ) 2303 | (get_local $5) 2304 | ) 2305 | (i32.store 2306 | (i32.add 2307 | (get_local $0) 2308 | (i32.const 8) 2309 | ) 2310 | (get_local $4) 2311 | ) 2312 | (block $label$7 2313 | (br_if $label$7 2314 | (i32.eq 2315 | (get_local $7) 2316 | (get_local $6) 2317 | ) 2318 | ) 2319 | (loop $label$8 2320 | (set_local $1 2321 | (i32.load 2322 | (tee_local $7 2323 | (i32.add 2324 | (get_local $7) 2325 | (i32.const -24) 2326 | ) 2327 | ) 2328 | ) 2329 | ) 2330 | (i32.store 2331 | (get_local $7) 2332 | (i32.const 0) 2333 | ) 2334 | (block $label$9 2335 | (br_if $label$9 2336 | (i32.eqz 2337 | (get_local $1) 2338 | ) 2339 | ) 2340 | (drop 2341 | (call $_ZN9contracts4infoD2Ev 2342 | (get_local $1) 2343 | ) 2344 | ) 2345 | (call $_ZdlPv 2346 | (get_local $1) 2347 | ) 2348 | ) 2349 | (br_if $label$8 2350 | (i32.ne 2351 | (get_local $6) 2352 | (get_local $7) 2353 | ) 2354 | ) 2355 | ) 2356 | ) 2357 | (block $label$10 2358 | (br_if $label$10 2359 | (i32.eqz 2360 | (get_local $6) 2361 | ) 2362 | ) 2363 | (call $_ZdlPv 2364 | (get_local $6) 2365 | ) 2366 | ) 2367 | ) 2368 | (func $_ZN9contracts4infoD2Ev (param $0 i32) (result i32) 2369 | (block $label$0 2370 | (br_if $label$0 2371 | (i32.eqz 2372 | (i32.and 2373 | (i32.load8_u offset=80 2374 | (get_local $0) 2375 | ) 2376 | (i32.const 1) 2377 | ) 2378 | ) 2379 | ) 2380 | (call $_ZdlPv 2381 | (i32.load 2382 | (i32.add 2383 | (get_local $0) 2384 | (i32.const 88) 2385 | ) 2386 | ) 2387 | ) 2388 | ) 2389 | (block $label$1 2390 | (br_if $label$1 2391 | (i32.eqz 2392 | (i32.and 2393 | (i32.load8_u offset=68 2394 | (get_local $0) 2395 | ) 2396 | (i32.const 1) 2397 | ) 2398 | ) 2399 | ) 2400 | (call $_ZdlPv 2401 | (i32.load 2402 | (i32.add 2403 | (get_local $0) 2404 | (i32.const 76) 2405 | ) 2406 | ) 2407 | ) 2408 | ) 2409 | (block $label$2 2410 | (br_if $label$2 2411 | (i32.eqz 2412 | (i32.and 2413 | (i32.load8_u offset=56 2414 | (get_local $0) 2415 | ) 2416 | (i32.const 1) 2417 | ) 2418 | ) 2419 | ) 2420 | (call $_ZdlPv 2421 | (i32.load 2422 | (i32.add 2423 | (get_local $0) 2424 | (i32.const 64) 2425 | ) 2426 | ) 2427 | ) 2428 | ) 2429 | (block $label$3 2430 | (br_if $label$3 2431 | (i32.eqz 2432 | (i32.and 2433 | (i32.load8_u offset=44 2434 | (get_local $0) 2435 | ) 2436 | (i32.const 1) 2437 | ) 2438 | ) 2439 | ) 2440 | (call $_ZdlPv 2441 | (i32.load 2442 | (i32.add 2443 | (get_local $0) 2444 | (i32.const 52) 2445 | ) 2446 | ) 2447 | ) 2448 | ) 2449 | (block $label$4 2450 | (br_if $label$4 2451 | (i32.eqz 2452 | (i32.and 2453 | (i32.load8_u offset=32 2454 | (get_local $0) 2455 | ) 2456 | (i32.const 1) 2457 | ) 2458 | ) 2459 | ) 2460 | (call $_ZdlPv 2461 | (i32.load 2462 | (i32.add 2463 | (get_local $0) 2464 | (i32.const 40) 2465 | ) 2466 | ) 2467 | ) 2468 | ) 2469 | (block $label$5 2470 | (br_if $label$5 2471 | (i32.eqz 2472 | (i32.and 2473 | (i32.load8_u offset=20 2474 | (get_local $0) 2475 | ) 2476 | (i32.const 1) 2477 | ) 2478 | ) 2479 | ) 2480 | (call $_ZdlPv 2481 | (i32.load 2482 | (i32.add 2483 | (get_local $0) 2484 | (i32.const 28) 2485 | ) 2486 | ) 2487 | ) 2488 | ) 2489 | (block $label$6 2490 | (br_if $label$6 2491 | (i32.eqz 2492 | (i32.and 2493 | (i32.load8_u offset=8 2494 | (get_local $0) 2495 | ) 2496 | (i32.const 1) 2497 | ) 2498 | ) 2499 | ) 2500 | (call $_ZdlPv 2501 | (i32.load 2502 | (i32.add 2503 | (get_local $0) 2504 | (i32.const 16) 2505 | ) 2506 | ) 2507 | ) 2508 | ) 2509 | (get_local $0) 2510 | ) 2511 | (func $_ZN5boost3pfr6detail19for_each_field_implINS1_14sequence_tuple5tupleIJRKyRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEESF_SF_SF_SF_SF_SF_RKmEEEZN5eosiolsINSJ_10datastreamIjEEN9contracts4infoELPv0EEERT_SR_RKT0_EUlRKSQ_E_JLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7ELj8EEEEvSR_OSS_NS7_16integer_sequenceIjJXspT1_EEEENS7_17integral_constantIbLb0EEE (param $0 i32) (param $1 i32) 2512 | (local $2 i32) 2513 | (local $3 i32) 2514 | (local $4 i32) 2515 | (local $5 i64) 2516 | (i32.store 2517 | (tee_local $4 2518 | (i32.load 2519 | (get_local $1) 2520 | ) 2521 | ) 2522 | (i32.add 2523 | (i32.load 2524 | (get_local $4) 2525 | ) 2526 | (i32.const 8) 2527 | ) 2528 | ) 2529 | (set_local $5 2530 | (i64.extend_u/i32 2531 | (select 2532 | (i32.load offset=4 2533 | (tee_local $2 2534 | (i32.load offset=4 2535 | (get_local $0) 2536 | ) 2537 | ) 2538 | ) 2539 | (i32.shr_u 2540 | (tee_local $4 2541 | (i32.load8_u 2542 | (get_local $2) 2543 | ) 2544 | ) 2545 | (i32.const 1) 2546 | ) 2547 | (i32.and 2548 | (get_local $4) 2549 | (i32.const 1) 2550 | ) 2551 | ) 2552 | ) 2553 | ) 2554 | (set_local $4 2555 | (i32.load 2556 | (tee_local $3 2557 | (i32.load 2558 | (get_local $1) 2559 | ) 2560 | ) 2561 | ) 2562 | ) 2563 | (loop $label$0 2564 | (set_local $4 2565 | (i32.add 2566 | (get_local $4) 2567 | (i32.const 1) 2568 | ) 2569 | ) 2570 | (br_if $label$0 2571 | (i64.ne 2572 | (tee_local $5 2573 | (i64.shr_u 2574 | (get_local $5) 2575 | (i64.const 7) 2576 | ) 2577 | ) 2578 | (i64.const 0) 2579 | ) 2580 | ) 2581 | ) 2582 | (i32.store 2583 | (get_local $3) 2584 | (get_local $4) 2585 | ) 2586 | (block $label$1 2587 | (br_if $label$1 2588 | (i32.eqz 2589 | (tee_local $2 2590 | (select 2591 | (i32.load 2592 | (i32.add 2593 | (get_local $2) 2594 | (i32.const 4) 2595 | ) 2596 | ) 2597 | (i32.shr_u 2598 | (tee_local $2 2599 | (i32.load8_u 2600 | (get_local $2) 2601 | ) 2602 | ) 2603 | (i32.const 1) 2604 | ) 2605 | (i32.and 2606 | (get_local $2) 2607 | (i32.const 1) 2608 | ) 2609 | ) 2610 | ) 2611 | ) 2612 | ) 2613 | (i32.store 2614 | (get_local $3) 2615 | (i32.add 2616 | (get_local $2) 2617 | (get_local $4) 2618 | ) 2619 | ) 2620 | ) 2621 | (set_local $5 2622 | (i64.extend_u/i32 2623 | (select 2624 | (i32.load offset=4 2625 | (tee_local $2 2626 | (i32.load offset=8 2627 | (get_local $0) 2628 | ) 2629 | ) 2630 | ) 2631 | (i32.shr_u 2632 | (tee_local $4 2633 | (i32.load8_u 2634 | (get_local $2) 2635 | ) 2636 | ) 2637 | (i32.const 1) 2638 | ) 2639 | (i32.and 2640 | (get_local $4) 2641 | (i32.const 1) 2642 | ) 2643 | ) 2644 | ) 2645 | ) 2646 | (set_local $4 2647 | (i32.load 2648 | (tee_local $3 2649 | (i32.load 2650 | (get_local $1) 2651 | ) 2652 | ) 2653 | ) 2654 | ) 2655 | (loop $label$2 2656 | (set_local $4 2657 | (i32.add 2658 | (get_local $4) 2659 | (i32.const 1) 2660 | ) 2661 | ) 2662 | (br_if $label$2 2663 | (i64.ne 2664 | (tee_local $5 2665 | (i64.shr_u 2666 | (get_local $5) 2667 | (i64.const 7) 2668 | ) 2669 | ) 2670 | (i64.const 0) 2671 | ) 2672 | ) 2673 | ) 2674 | (i32.store 2675 | (get_local $3) 2676 | (get_local $4) 2677 | ) 2678 | (block $label$3 2679 | (br_if $label$3 2680 | (i32.eqz 2681 | (tee_local $2 2682 | (select 2683 | (i32.load 2684 | (i32.add 2685 | (get_local $2) 2686 | (i32.const 4) 2687 | ) 2688 | ) 2689 | (i32.shr_u 2690 | (tee_local $2 2691 | (i32.load8_u 2692 | (get_local $2) 2693 | ) 2694 | ) 2695 | (i32.const 1) 2696 | ) 2697 | (i32.and 2698 | (get_local $2) 2699 | (i32.const 1) 2700 | ) 2701 | ) 2702 | ) 2703 | ) 2704 | ) 2705 | (i32.store 2706 | (get_local $3) 2707 | (i32.add 2708 | (get_local $2) 2709 | (get_local $4) 2710 | ) 2711 | ) 2712 | ) 2713 | (set_local $5 2714 | (i64.extend_u/i32 2715 | (select 2716 | (i32.load offset=4 2717 | (tee_local $2 2718 | (i32.load offset=12 2719 | (get_local $0) 2720 | ) 2721 | ) 2722 | ) 2723 | (i32.shr_u 2724 | (tee_local $4 2725 | (i32.load8_u 2726 | (get_local $2) 2727 | ) 2728 | ) 2729 | (i32.const 1) 2730 | ) 2731 | (i32.and 2732 | (get_local $4) 2733 | (i32.const 1) 2734 | ) 2735 | ) 2736 | ) 2737 | ) 2738 | (set_local $4 2739 | (i32.load 2740 | (tee_local $3 2741 | (i32.load 2742 | (get_local $1) 2743 | ) 2744 | ) 2745 | ) 2746 | ) 2747 | (loop $label$4 2748 | (set_local $4 2749 | (i32.add 2750 | (get_local $4) 2751 | (i32.const 1) 2752 | ) 2753 | ) 2754 | (br_if $label$4 2755 | (i64.ne 2756 | (tee_local $5 2757 | (i64.shr_u 2758 | (get_local $5) 2759 | (i64.const 7) 2760 | ) 2761 | ) 2762 | (i64.const 0) 2763 | ) 2764 | ) 2765 | ) 2766 | (i32.store 2767 | (get_local $3) 2768 | (get_local $4) 2769 | ) 2770 | (block $label$5 2771 | (br_if $label$5 2772 | (i32.eqz 2773 | (tee_local $2 2774 | (select 2775 | (i32.load 2776 | (i32.add 2777 | (get_local $2) 2778 | (i32.const 4) 2779 | ) 2780 | ) 2781 | (i32.shr_u 2782 | (tee_local $2 2783 | (i32.load8_u 2784 | (get_local $2) 2785 | ) 2786 | ) 2787 | (i32.const 1) 2788 | ) 2789 | (i32.and 2790 | (get_local $2) 2791 | (i32.const 1) 2792 | ) 2793 | ) 2794 | ) 2795 | ) 2796 | ) 2797 | (i32.store 2798 | (get_local $3) 2799 | (i32.add 2800 | (get_local $2) 2801 | (get_local $4) 2802 | ) 2803 | ) 2804 | ) 2805 | (set_local $5 2806 | (i64.extend_u/i32 2807 | (select 2808 | (i32.load offset=4 2809 | (tee_local $2 2810 | (i32.load offset=16 2811 | (get_local $0) 2812 | ) 2813 | ) 2814 | ) 2815 | (i32.shr_u 2816 | (tee_local $4 2817 | (i32.load8_u 2818 | (get_local $2) 2819 | ) 2820 | ) 2821 | (i32.const 1) 2822 | ) 2823 | (i32.and 2824 | (get_local $4) 2825 | (i32.const 1) 2826 | ) 2827 | ) 2828 | ) 2829 | ) 2830 | (set_local $4 2831 | (i32.load 2832 | (tee_local $3 2833 | (i32.load 2834 | (get_local $1) 2835 | ) 2836 | ) 2837 | ) 2838 | ) 2839 | (loop $label$6 2840 | (set_local $4 2841 | (i32.add 2842 | (get_local $4) 2843 | (i32.const 1) 2844 | ) 2845 | ) 2846 | (br_if $label$6 2847 | (i64.ne 2848 | (tee_local $5 2849 | (i64.shr_u 2850 | (get_local $5) 2851 | (i64.const 7) 2852 | ) 2853 | ) 2854 | (i64.const 0) 2855 | ) 2856 | ) 2857 | ) 2858 | (i32.store 2859 | (get_local $3) 2860 | (get_local $4) 2861 | ) 2862 | (block $label$7 2863 | (br_if $label$7 2864 | (i32.eqz 2865 | (tee_local $2 2866 | (select 2867 | (i32.load 2868 | (i32.add 2869 | (get_local $2) 2870 | (i32.const 4) 2871 | ) 2872 | ) 2873 | (i32.shr_u 2874 | (tee_local $2 2875 | (i32.load8_u 2876 | (get_local $2) 2877 | ) 2878 | ) 2879 | (i32.const 1) 2880 | ) 2881 | (i32.and 2882 | (get_local $2) 2883 | (i32.const 1) 2884 | ) 2885 | ) 2886 | ) 2887 | ) 2888 | ) 2889 | (i32.store 2890 | (get_local $3) 2891 | (i32.add 2892 | (get_local $2) 2893 | (get_local $4) 2894 | ) 2895 | ) 2896 | ) 2897 | (set_local $5 2898 | (i64.extend_u/i32 2899 | (select 2900 | (i32.load offset=4 2901 | (tee_local $2 2902 | (i32.load offset=20 2903 | (get_local $0) 2904 | ) 2905 | ) 2906 | ) 2907 | (i32.shr_u 2908 | (tee_local $4 2909 | (i32.load8_u 2910 | (get_local $2) 2911 | ) 2912 | ) 2913 | (i32.const 1) 2914 | ) 2915 | (i32.and 2916 | (get_local $4) 2917 | (i32.const 1) 2918 | ) 2919 | ) 2920 | ) 2921 | ) 2922 | (set_local $4 2923 | (i32.load 2924 | (tee_local $3 2925 | (i32.load 2926 | (get_local $1) 2927 | ) 2928 | ) 2929 | ) 2930 | ) 2931 | (loop $label$8 2932 | (set_local $4 2933 | (i32.add 2934 | (get_local $4) 2935 | (i32.const 1) 2936 | ) 2937 | ) 2938 | (br_if $label$8 2939 | (i64.ne 2940 | (tee_local $5 2941 | (i64.shr_u 2942 | (get_local $5) 2943 | (i64.const 7) 2944 | ) 2945 | ) 2946 | (i64.const 0) 2947 | ) 2948 | ) 2949 | ) 2950 | (i32.store 2951 | (get_local $3) 2952 | (get_local $4) 2953 | ) 2954 | (block $label$9 2955 | (br_if $label$9 2956 | (i32.eqz 2957 | (tee_local $2 2958 | (select 2959 | (i32.load 2960 | (i32.add 2961 | (get_local $2) 2962 | (i32.const 4) 2963 | ) 2964 | ) 2965 | (i32.shr_u 2966 | (tee_local $2 2967 | (i32.load8_u 2968 | (get_local $2) 2969 | ) 2970 | ) 2971 | (i32.const 1) 2972 | ) 2973 | (i32.and 2974 | (get_local $2) 2975 | (i32.const 1) 2976 | ) 2977 | ) 2978 | ) 2979 | ) 2980 | ) 2981 | (i32.store 2982 | (get_local $3) 2983 | (i32.add 2984 | (get_local $2) 2985 | (get_local $4) 2986 | ) 2987 | ) 2988 | ) 2989 | (set_local $5 2990 | (i64.extend_u/i32 2991 | (select 2992 | (i32.load offset=4 2993 | (tee_local $2 2994 | (i32.load offset=24 2995 | (get_local $0) 2996 | ) 2997 | ) 2998 | ) 2999 | (i32.shr_u 3000 | (tee_local $4 3001 | (i32.load8_u 3002 | (get_local $2) 3003 | ) 3004 | ) 3005 | (i32.const 1) 3006 | ) 3007 | (i32.and 3008 | (get_local $4) 3009 | (i32.const 1) 3010 | ) 3011 | ) 3012 | ) 3013 | ) 3014 | (set_local $4 3015 | (i32.load 3016 | (tee_local $3 3017 | (i32.load 3018 | (get_local $1) 3019 | ) 3020 | ) 3021 | ) 3022 | ) 3023 | (loop $label$10 3024 | (set_local $4 3025 | (i32.add 3026 | (get_local $4) 3027 | (i32.const 1) 3028 | ) 3029 | ) 3030 | (br_if $label$10 3031 | (i64.ne 3032 | (tee_local $5 3033 | (i64.shr_u 3034 | (get_local $5) 3035 | (i64.const 7) 3036 | ) 3037 | ) 3038 | (i64.const 0) 3039 | ) 3040 | ) 3041 | ) 3042 | (i32.store 3043 | (get_local $3) 3044 | (get_local $4) 3045 | ) 3046 | (block $label$11 3047 | (br_if $label$11 3048 | (i32.eqz 3049 | (tee_local $2 3050 | (select 3051 | (i32.load 3052 | (i32.add 3053 | (get_local $2) 3054 | (i32.const 4) 3055 | ) 3056 | ) 3057 | (i32.shr_u 3058 | (tee_local $2 3059 | (i32.load8_u 3060 | (get_local $2) 3061 | ) 3062 | ) 3063 | (i32.const 1) 3064 | ) 3065 | (i32.and 3066 | (get_local $2) 3067 | (i32.const 1) 3068 | ) 3069 | ) 3070 | ) 3071 | ) 3072 | ) 3073 | (i32.store 3074 | (get_local $3) 3075 | (i32.add 3076 | (get_local $2) 3077 | (get_local $4) 3078 | ) 3079 | ) 3080 | ) 3081 | (set_local $5 3082 | (i64.extend_u/i32 3083 | (select 3084 | (i32.load offset=4 3085 | (tee_local $0 3086 | (i32.load offset=28 3087 | (get_local $0) 3088 | ) 3089 | ) 3090 | ) 3091 | (i32.shr_u 3092 | (tee_local $4 3093 | (i32.load8_u 3094 | (get_local $0) 3095 | ) 3096 | ) 3097 | (i32.const 1) 3098 | ) 3099 | (i32.and 3100 | (get_local $4) 3101 | (i32.const 1) 3102 | ) 3103 | ) 3104 | ) 3105 | ) 3106 | (set_local $4 3107 | (i32.load 3108 | (tee_local $2 3109 | (i32.load 3110 | (get_local $1) 3111 | ) 3112 | ) 3113 | ) 3114 | ) 3115 | (loop $label$12 3116 | (set_local $4 3117 | (i32.add 3118 | (get_local $4) 3119 | (i32.const 1) 3120 | ) 3121 | ) 3122 | (br_if $label$12 3123 | (i64.ne 3124 | (tee_local $5 3125 | (i64.shr_u 3126 | (get_local $5) 3127 | (i64.const 7) 3128 | ) 3129 | ) 3130 | (i64.const 0) 3131 | ) 3132 | ) 3133 | ) 3134 | (i32.store 3135 | (get_local $2) 3136 | (get_local $4) 3137 | ) 3138 | (block $label$13 3139 | (br_if $label$13 3140 | (i32.eqz 3141 | (tee_local $0 3142 | (select 3143 | (i32.load 3144 | (i32.add 3145 | (get_local $0) 3146 | (i32.const 4) 3147 | ) 3148 | ) 3149 | (i32.shr_u 3150 | (tee_local $0 3151 | (i32.load8_u 3152 | (get_local $0) 3153 | ) 3154 | ) 3155 | (i32.const 1) 3156 | ) 3157 | (i32.and 3158 | (get_local $0) 3159 | (i32.const 1) 3160 | ) 3161 | ) 3162 | ) 3163 | ) 3164 | ) 3165 | (i32.store 3166 | (get_local $2) 3167 | (i32.add 3168 | (get_local $0) 3169 | (get_local $4) 3170 | ) 3171 | ) 3172 | ) 3173 | (i32.store 3174 | (tee_local $4 3175 | (i32.load 3176 | (get_local $1) 3177 | ) 3178 | ) 3179 | (i32.add 3180 | (i32.load 3181 | (get_local $4) 3182 | ) 3183 | (i32.const 4) 3184 | ) 3185 | ) 3186 | ) 3187 | (func $_ZN5boost3pfr6detail19for_each_field_implINS1_14sequence_tuple5tupleIJRKyRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEESF_SF_SF_SF_SF_SF_RKmEEEZN5eosiolsINSJ_10datastreamIPcEEN9contracts4infoELPv0EEERT_SS_RKT0_EUlRKSR_E_JLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7ELj8EEEEvSS_OST_NS7_16integer_sequenceIjJXspT1_EEEENS7_17integral_constantIbLb0EEE (param $0 i32) (param $1 i32) 3188 | (local $2 i32) 3189 | (local $3 i32) 3190 | (set_local $3 3191 | (i32.load 3192 | (get_local $0) 3193 | ) 3194 | ) 3195 | (call $eosio_assert 3196 | (i32.gt_s 3197 | (i32.sub 3198 | (i32.load offset=8 3199 | (tee_local $2 3200 | (i32.load 3201 | (get_local $1) 3202 | ) 3203 | ) 3204 | ) 3205 | (i32.load offset=4 3206 | (get_local $2) 3207 | ) 3208 | ) 3209 | (i32.const 7) 3210 | ) 3211 | (i32.const 512) 3212 | ) 3213 | (drop 3214 | (call $memcpy 3215 | (i32.load offset=4 3216 | (get_local $2) 3217 | ) 3218 | (get_local $3) 3219 | (i32.const 8) 3220 | ) 3221 | ) 3222 | (i32.store offset=4 3223 | (get_local $2) 3224 | (i32.add 3225 | (i32.load offset=4 3226 | (get_local $2) 3227 | ) 3228 | (i32.const 8) 3229 | ) 3230 | ) 3231 | (drop 3232 | (call $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE 3233 | (i32.load 3234 | (get_local $1) 3235 | ) 3236 | (i32.load offset=4 3237 | (get_local $0) 3238 | ) 3239 | ) 3240 | ) 3241 | (drop 3242 | (call $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE 3243 | (i32.load 3244 | (get_local $1) 3245 | ) 3246 | (i32.load offset=8 3247 | (get_local $0) 3248 | ) 3249 | ) 3250 | ) 3251 | (drop 3252 | (call $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE 3253 | (i32.load 3254 | (get_local $1) 3255 | ) 3256 | (i32.load offset=12 3257 | (get_local $0) 3258 | ) 3259 | ) 3260 | ) 3261 | (drop 3262 | (call $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE 3263 | (i32.load 3264 | (get_local $1) 3265 | ) 3266 | (i32.load offset=16 3267 | (get_local $0) 3268 | ) 3269 | ) 3270 | ) 3271 | (drop 3272 | (call $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE 3273 | (i32.load 3274 | (get_local $1) 3275 | ) 3276 | (i32.load offset=20 3277 | (get_local $0) 3278 | ) 3279 | ) 3280 | ) 3281 | (drop 3282 | (call $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE 3283 | (i32.load 3284 | (get_local $1) 3285 | ) 3286 | (i32.load offset=24 3287 | (get_local $0) 3288 | ) 3289 | ) 3290 | ) 3291 | (drop 3292 | (call $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE 3293 | (i32.load 3294 | (get_local $1) 3295 | ) 3296 | (i32.load offset=28 3297 | (get_local $0) 3298 | ) 3299 | ) 3300 | ) 3301 | (set_local $2 3302 | (i32.load offset=32 3303 | (get_local $0) 3304 | ) 3305 | ) 3306 | (call $eosio_assert 3307 | (i32.gt_s 3308 | (i32.sub 3309 | (i32.load offset=8 3310 | (tee_local $0 3311 | (i32.load 3312 | (get_local $1) 3313 | ) 3314 | ) 3315 | ) 3316 | (i32.load offset=4 3317 | (get_local $0) 3318 | ) 3319 | ) 3320 | (i32.const 3) 3321 | ) 3322 | (i32.const 512) 3323 | ) 3324 | (drop 3325 | (call $memcpy 3326 | (i32.load offset=4 3327 | (get_local $0) 3328 | ) 3329 | (get_local $2) 3330 | (i32.const 4) 3331 | ) 3332 | ) 3333 | (i32.store offset=4 3334 | (get_local $0) 3335 | (i32.add 3336 | (i32.load offset=4 3337 | (get_local $0) 3338 | ) 3339 | (i32.const 4) 3340 | ) 3341 | ) 3342 | ) 3343 | (func $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE (param $0 i32) (param $1 i32) (result i32) 3344 | (local $2 i32) 3345 | (local $3 i32) 3346 | (local $4 i32) 3347 | (local $5 i32) 3348 | (local $6 i32) 3349 | (local $7 i64) 3350 | (local $8 i32) 3351 | (i32.store offset=4 3352 | (i32.const 0) 3353 | (tee_local $8 3354 | (i32.sub 3355 | (i32.load offset=4 3356 | (i32.const 0) 3357 | ) 3358 | (i32.const 16) 3359 | ) 3360 | ) 3361 | ) 3362 | (set_local $7 3363 | (i64.extend_u/i32 3364 | (select 3365 | (i32.load offset=4 3366 | (get_local $1) 3367 | ) 3368 | (i32.shr_u 3369 | (tee_local $5 3370 | (i32.load8_u 3371 | (get_local $1) 3372 | ) 3373 | ) 3374 | (i32.const 1) 3375 | ) 3376 | (i32.and 3377 | (get_local $5) 3378 | (i32.const 1) 3379 | ) 3380 | ) 3381 | ) 3382 | ) 3383 | (set_local $6 3384 | (i32.load offset=4 3385 | (get_local $0) 3386 | ) 3387 | ) 3388 | (set_local $4 3389 | (i32.add 3390 | (get_local $0) 3391 | (i32.const 8) 3392 | ) 3393 | ) 3394 | (set_local $5 3395 | (i32.add 3396 | (get_local $0) 3397 | (i32.const 4) 3398 | ) 3399 | ) 3400 | (loop $label$0 3401 | (set_local $2 3402 | (i32.wrap/i64 3403 | (get_local $7) 3404 | ) 3405 | ) 3406 | (i32.store8 offset=15 3407 | (get_local $8) 3408 | (i32.or 3409 | (i32.shl 3410 | (tee_local $3 3411 | (i64.ne 3412 | (tee_local $7 3413 | (i64.shr_u 3414 | (get_local $7) 3415 | (i64.const 7) 3416 | ) 3417 | ) 3418 | (i64.const 0) 3419 | ) 3420 | ) 3421 | (i32.const 7) 3422 | ) 3423 | (i32.and 3424 | (get_local $2) 3425 | (i32.const 127) 3426 | ) 3427 | ) 3428 | ) 3429 | (call $eosio_assert 3430 | (i32.gt_s 3431 | (i32.sub 3432 | (i32.load 3433 | (get_local $4) 3434 | ) 3435 | (get_local $6) 3436 | ) 3437 | (i32.const 0) 3438 | ) 3439 | (i32.const 512) 3440 | ) 3441 | (drop 3442 | (call $memcpy 3443 | (i32.load 3444 | (get_local $5) 3445 | ) 3446 | (i32.add 3447 | (get_local $8) 3448 | (i32.const 15) 3449 | ) 3450 | (i32.const 1) 3451 | ) 3452 | ) 3453 | (i32.store 3454 | (get_local $5) 3455 | (tee_local $6 3456 | (i32.add 3457 | (i32.load 3458 | (get_local $5) 3459 | ) 3460 | (i32.const 1) 3461 | ) 3462 | ) 3463 | ) 3464 | (br_if $label$0 3465 | (get_local $3) 3466 | ) 3467 | ) 3468 | (block $label$1 3469 | (br_if $label$1 3470 | (i32.eqz 3471 | (tee_local $5 3472 | (select 3473 | (i32.load 3474 | (i32.add 3475 | (get_local $1) 3476 | (i32.const 4) 3477 | ) 3478 | ) 3479 | (i32.shr_u 3480 | (tee_local $5 3481 | (i32.load8_u 3482 | (get_local $1) 3483 | ) 3484 | ) 3485 | (i32.const 1) 3486 | ) 3487 | (tee_local $2 3488 | (i32.and 3489 | (get_local $5) 3490 | (i32.const 1) 3491 | ) 3492 | ) 3493 | ) 3494 | ) 3495 | ) 3496 | ) 3497 | (set_local $3 3498 | (i32.load offset=8 3499 | (get_local $1) 3500 | ) 3501 | ) 3502 | (call $eosio_assert 3503 | (i32.ge_s 3504 | (i32.sub 3505 | (i32.load 3506 | (i32.add 3507 | (get_local $0) 3508 | (i32.const 8) 3509 | ) 3510 | ) 3511 | (get_local $6) 3512 | ) 3513 | (get_local $5) 3514 | ) 3515 | (i32.const 512) 3516 | ) 3517 | (drop 3518 | (call $memcpy 3519 | (i32.load 3520 | (tee_local $6 3521 | (i32.add 3522 | (get_local $0) 3523 | (i32.const 4) 3524 | ) 3525 | ) 3526 | ) 3527 | (select 3528 | (get_local $3) 3529 | (i32.add 3530 | (get_local $1) 3531 | (i32.const 1) 3532 | ) 3533 | (get_local $2) 3534 | ) 3535 | (get_local $5) 3536 | ) 3537 | ) 3538 | (i32.store 3539 | (get_local $6) 3540 | (i32.add 3541 | (i32.load 3542 | (get_local $6) 3543 | ) 3544 | (get_local $5) 3545 | ) 3546 | ) 3547 | ) 3548 | (i32.store offset=4 3549 | (i32.const 0) 3550 | (i32.add 3551 | (get_local $8) 3552 | (i32.const 16) 3553 | ) 3554 | ) 3555 | (get_local $0) 3556 | ) 3557 | (func $_ZN5boost3pfr6detail19for_each_field_implINS1_14sequence_tuple5tupleIJRyRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEESD_SD_SD_SD_SD_SD_RmEEEZN5eosiorsINSG_10datastreamIPKcEEN9contracts4infoELPv0EEERT_SQ_RT0_EUlSQ_E_JLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7ELj8EEEEvSQ_OSR_NS6_16integer_sequenceIjJXspT1_EEEENS6_17integral_constantIbLb0EEE (param $0 i32) (param $1 i32) 3558 | (local $2 i32) 3559 | (local $3 i32) 3560 | (set_local $3 3561 | (i32.load 3562 | (get_local $0) 3563 | ) 3564 | ) 3565 | (call $eosio_assert 3566 | (i32.gt_u 3567 | (i32.sub 3568 | (i32.load offset=8 3569 | (tee_local $2 3570 | (i32.load 3571 | (get_local $1) 3572 | ) 3573 | ) 3574 | ) 3575 | (i32.load offset=4 3576 | (get_local $2) 3577 | ) 3578 | ) 3579 | (i32.const 7) 3580 | ) 3581 | (i32.const 736) 3582 | ) 3583 | (drop 3584 | (call $memcpy 3585 | (get_local $3) 3586 | (i32.load offset=4 3587 | (get_local $2) 3588 | ) 3589 | (i32.const 8) 3590 | ) 3591 | ) 3592 | (i32.store offset=4 3593 | (get_local $2) 3594 | (i32.add 3595 | (i32.load offset=4 3596 | (get_local $2) 3597 | ) 3598 | (i32.const 8) 3599 | ) 3600 | ) 3601 | (drop 3602 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 3603 | (i32.load 3604 | (get_local $1) 3605 | ) 3606 | (i32.load offset=4 3607 | (get_local $0) 3608 | ) 3609 | ) 3610 | ) 3611 | (drop 3612 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 3613 | (i32.load 3614 | (get_local $1) 3615 | ) 3616 | (i32.load offset=8 3617 | (get_local $0) 3618 | ) 3619 | ) 3620 | ) 3621 | (drop 3622 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 3623 | (i32.load 3624 | (get_local $1) 3625 | ) 3626 | (i32.load offset=12 3627 | (get_local $0) 3628 | ) 3629 | ) 3630 | ) 3631 | (drop 3632 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 3633 | (i32.load 3634 | (get_local $1) 3635 | ) 3636 | (i32.load offset=16 3637 | (get_local $0) 3638 | ) 3639 | ) 3640 | ) 3641 | (drop 3642 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 3643 | (i32.load 3644 | (get_local $1) 3645 | ) 3646 | (i32.load offset=20 3647 | (get_local $0) 3648 | ) 3649 | ) 3650 | ) 3651 | (drop 3652 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 3653 | (i32.load 3654 | (get_local $1) 3655 | ) 3656 | (i32.load offset=24 3657 | (get_local $0) 3658 | ) 3659 | ) 3660 | ) 3661 | (drop 3662 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 3663 | (i32.load 3664 | (get_local $1) 3665 | ) 3666 | (i32.load offset=28 3667 | (get_local $0) 3668 | ) 3669 | ) 3670 | ) 3671 | (set_local $2 3672 | (i32.load offset=32 3673 | (get_local $0) 3674 | ) 3675 | ) 3676 | (call $eosio_assert 3677 | (i32.gt_u 3678 | (i32.sub 3679 | (i32.load offset=8 3680 | (tee_local $0 3681 | (i32.load 3682 | (get_local $1) 3683 | ) 3684 | ) 3685 | ) 3686 | (i32.load offset=4 3687 | (get_local $0) 3688 | ) 3689 | ) 3690 | (i32.const 3) 3691 | ) 3692 | (i32.const 736) 3693 | ) 3694 | (drop 3695 | (call $memcpy 3696 | (get_local $2) 3697 | (i32.load offset=4 3698 | (get_local $0) 3699 | ) 3700 | (i32.const 4) 3701 | ) 3702 | ) 3703 | (i32.store offset=4 3704 | (get_local $0) 3705 | (i32.add 3706 | (i32.load offset=4 3707 | (get_local $0) 3708 | ) 3709 | (i32.const 4) 3710 | ) 3711 | ) 3712 | ) 3713 | (func $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE (param $0 i32) (param $1 i32) (result i32) 3714 | (local $2 i32) 3715 | (local $3 i32) 3716 | (local $4 i32) 3717 | (local $5 i32) 3718 | (local $6 i32) 3719 | (local $7 i32) 3720 | (i32.store offset=4 3721 | (i32.const 0) 3722 | (tee_local $7 3723 | (i32.sub 3724 | (i32.load offset=4 3725 | (i32.const 0) 3726 | ) 3727 | (i32.const 32) 3728 | ) 3729 | ) 3730 | ) 3731 | (i32.store offset=24 3732 | (get_local $7) 3733 | (i32.const 0) 3734 | ) 3735 | (i64.store offset=16 3736 | (get_local $7) 3737 | (i64.const 0) 3738 | ) 3739 | (drop 3740 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__16vectorIcNS7_9allocatorIcEEEE 3741 | (get_local $0) 3742 | (i32.add 3743 | (get_local $7) 3744 | (i32.const 16) 3745 | ) 3746 | ) 3747 | ) 3748 | (block $label$0 3749 | (block $label$1 3750 | (block $label$2 3751 | (block $label$3 3752 | (block $label$4 3753 | (block $label$5 3754 | (block $label$6 3755 | (block $label$7 3756 | (block $label$8 3757 | (br_if $label$8 3758 | (i32.ne 3759 | (tee_local $5 3760 | (i32.load offset=20 3761 | (get_local $7) 3762 | ) 3763 | ) 3764 | (tee_local $4 3765 | (i32.load offset=16 3766 | (get_local $7) 3767 | ) 3768 | ) 3769 | ) 3770 | ) 3771 | (br_if $label$7 3772 | (i32.and 3773 | (i32.load8_u 3774 | (get_local $1) 3775 | ) 3776 | (i32.const 1) 3777 | ) 3778 | ) 3779 | (i32.store16 3780 | (get_local $1) 3781 | (i32.const 0) 3782 | ) 3783 | (set_local $4 3784 | (i32.add 3785 | (get_local $1) 3786 | (i32.const 8) 3787 | ) 3788 | ) 3789 | (br $label$6) 3790 | ) 3791 | (i32.store 3792 | (i32.add 3793 | (get_local $7) 3794 | (i32.const 8) 3795 | ) 3796 | (i32.const 0) 3797 | ) 3798 | (i64.store 3799 | (get_local $7) 3800 | (i64.const 0) 3801 | ) 3802 | (br_if $label$0 3803 | (i32.ge_u 3804 | (tee_local $2 3805 | (i32.sub 3806 | (get_local $5) 3807 | (get_local $4) 3808 | ) 3809 | ) 3810 | (i32.const -16) 3811 | ) 3812 | ) 3813 | (br_if $label$5 3814 | (i32.ge_u 3815 | (get_local $2) 3816 | (i32.const 11) 3817 | ) 3818 | ) 3819 | (i32.store8 3820 | (get_local $7) 3821 | (i32.shl 3822 | (get_local $2) 3823 | (i32.const 1) 3824 | ) 3825 | ) 3826 | (set_local $6 3827 | (i32.or 3828 | (get_local $7) 3829 | (i32.const 1) 3830 | ) 3831 | ) 3832 | (br_if $label$4 3833 | (get_local $2) 3834 | ) 3835 | (br $label$3) 3836 | ) 3837 | (i32.store8 3838 | (i32.load offset=8 3839 | (get_local $1) 3840 | ) 3841 | (i32.const 0) 3842 | ) 3843 | (i32.store offset=4 3844 | (get_local $1) 3845 | (i32.const 0) 3846 | ) 3847 | (set_local $4 3848 | (i32.add 3849 | (get_local $1) 3850 | (i32.const 8) 3851 | ) 3852 | ) 3853 | ) 3854 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj 3855 | (get_local $1) 3856 | (i32.const 0) 3857 | ) 3858 | (i32.store 3859 | (get_local $4) 3860 | (i32.const 0) 3861 | ) 3862 | (i64.store align=4 3863 | (get_local $1) 3864 | (i64.const 0) 3865 | ) 3866 | (br_if $label$2 3867 | (tee_local $4 3868 | (i32.load offset=16 3869 | (get_local $7) 3870 | ) 3871 | ) 3872 | ) 3873 | (br $label$1) 3874 | ) 3875 | (set_local $6 3876 | (call $_Znwj 3877 | (tee_local $5 3878 | (i32.and 3879 | (i32.add 3880 | (get_local $2) 3881 | (i32.const 16) 3882 | ) 3883 | (i32.const -16) 3884 | ) 3885 | ) 3886 | ) 3887 | ) 3888 | (i32.store 3889 | (get_local $7) 3890 | (i32.or 3891 | (get_local $5) 3892 | (i32.const 1) 3893 | ) 3894 | ) 3895 | (i32.store offset=8 3896 | (get_local $7) 3897 | (get_local $6) 3898 | ) 3899 | (i32.store offset=4 3900 | (get_local $7) 3901 | (get_local $2) 3902 | ) 3903 | ) 3904 | (set_local $3 3905 | (get_local $2) 3906 | ) 3907 | (set_local $5 3908 | (get_local $6) 3909 | ) 3910 | (loop $label$9 3911 | (i32.store8 3912 | (get_local $5) 3913 | (i32.load8_u 3914 | (get_local $4) 3915 | ) 3916 | ) 3917 | (set_local $5 3918 | (i32.add 3919 | (get_local $5) 3920 | (i32.const 1) 3921 | ) 3922 | ) 3923 | (set_local $4 3924 | (i32.add 3925 | (get_local $4) 3926 | (i32.const 1) 3927 | ) 3928 | ) 3929 | (br_if $label$9 3930 | (tee_local $3 3931 | (i32.add 3932 | (get_local $3) 3933 | (i32.const -1) 3934 | ) 3935 | ) 3936 | ) 3937 | ) 3938 | (set_local $6 3939 | (i32.add 3940 | (get_local $6) 3941 | (get_local $2) 3942 | ) 3943 | ) 3944 | ) 3945 | (i32.store8 3946 | (get_local $6) 3947 | (i32.const 0) 3948 | ) 3949 | (block $label$10 3950 | (block $label$11 3951 | (br_if $label$11 3952 | (i32.and 3953 | (i32.load8_u 3954 | (get_local $1) 3955 | ) 3956 | (i32.const 1) 3957 | ) 3958 | ) 3959 | (i32.store16 3960 | (get_local $1) 3961 | (i32.const 0) 3962 | ) 3963 | (br $label$10) 3964 | ) 3965 | (i32.store8 3966 | (i32.load offset=8 3967 | (get_local $1) 3968 | ) 3969 | (i32.const 0) 3970 | ) 3971 | (i32.store offset=4 3972 | (get_local $1) 3973 | (i32.const 0) 3974 | ) 3975 | ) 3976 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj 3977 | (get_local $1) 3978 | (i32.const 0) 3979 | ) 3980 | (i32.store 3981 | (i32.add 3982 | (get_local $1) 3983 | (i32.const 8) 3984 | ) 3985 | (i32.load 3986 | (i32.add 3987 | (get_local $7) 3988 | (i32.const 8) 3989 | ) 3990 | ) 3991 | ) 3992 | (i64.store align=4 3993 | (get_local $1) 3994 | (i64.load 3995 | (get_local $7) 3996 | ) 3997 | ) 3998 | (br_if $label$1 3999 | (i32.eqz 4000 | (tee_local $4 4001 | (i32.load offset=16 4002 | (get_local $7) 4003 | ) 4004 | ) 4005 | ) 4006 | ) 4007 | ) 4008 | (i32.store offset=20 4009 | (get_local $7) 4010 | (get_local $4) 4011 | ) 4012 | (call $_ZdlPv 4013 | (get_local $4) 4014 | ) 4015 | ) 4016 | (i32.store offset=4 4017 | (i32.const 0) 4018 | (i32.add 4019 | (get_local $7) 4020 | (i32.const 32) 4021 | ) 4022 | ) 4023 | (return 4024 | (get_local $0) 4025 | ) 4026 | ) 4027 | (call $_ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv 4028 | (get_local $7) 4029 | ) 4030 | (unreachable) 4031 | ) 4032 | (func $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__16vectorIcNS7_9allocatorIcEEEE (param $0 i32) (param $1 i32) (result i32) 4033 | (local $2 i32) 4034 | (local $3 i32) 4035 | (local $4 i32) 4036 | (local $5 i32) 4037 | (local $6 i64) 4038 | (local $7 i32) 4039 | (set_local $5 4040 | (i32.load offset=4 4041 | (get_local $0) 4042 | ) 4043 | ) 4044 | (set_local $7 4045 | (i32.const 0) 4046 | ) 4047 | (set_local $6 4048 | (i64.const 0) 4049 | ) 4050 | (set_local $2 4051 | (i32.add 4052 | (get_local $0) 4053 | (i32.const 8) 4054 | ) 4055 | ) 4056 | (set_local $3 4057 | (i32.add 4058 | (get_local $0) 4059 | (i32.const 4) 4060 | ) 4061 | ) 4062 | (loop $label$0 4063 | (call $eosio_assert 4064 | (i32.lt_u 4065 | (get_local $5) 4066 | (i32.load 4067 | (get_local $2) 4068 | ) 4069 | ) 4070 | (i32.const 752) 4071 | ) 4072 | (set_local $4 4073 | (i32.load8_u 4074 | (tee_local $5 4075 | (i32.load 4076 | (get_local $3) 4077 | ) 4078 | ) 4079 | ) 4080 | ) 4081 | (i32.store 4082 | (get_local $3) 4083 | (tee_local $5 4084 | (i32.add 4085 | (get_local $5) 4086 | (i32.const 1) 4087 | ) 4088 | ) 4089 | ) 4090 | (set_local $6 4091 | (i64.or 4092 | (i64.extend_u/i32 4093 | (i32.shl 4094 | (i32.and 4095 | (get_local $4) 4096 | (i32.const 127) 4097 | ) 4098 | (tee_local $7 4099 | (i32.and 4100 | (get_local $7) 4101 | (i32.const 255) 4102 | ) 4103 | ) 4104 | ) 4105 | ) 4106 | (get_local $6) 4107 | ) 4108 | ) 4109 | (set_local $7 4110 | (i32.add 4111 | (get_local $7) 4112 | (i32.const 7) 4113 | ) 4114 | ) 4115 | (br_if $label$0 4116 | (i32.shr_u 4117 | (get_local $4) 4118 | (i32.const 7) 4119 | ) 4120 | ) 4121 | ) 4122 | (block $label$1 4123 | (block $label$2 4124 | (br_if $label$2 4125 | (i32.le_u 4126 | (tee_local $3 4127 | (i32.wrap/i64 4128 | (get_local $6) 4129 | ) 4130 | ) 4131 | (tee_local $2 4132 | (i32.sub 4133 | (tee_local $7 4134 | (i32.load offset=4 4135 | (get_local $1) 4136 | ) 4137 | ) 4138 | (tee_local $4 4139 | (i32.load 4140 | (get_local $1) 4141 | ) 4142 | ) 4143 | ) 4144 | ) 4145 | ) 4146 | ) 4147 | (call $_ZNSt3__16vectorIcNS_9allocatorIcEEE8__appendEj 4148 | (get_local $1) 4149 | (i32.sub 4150 | (get_local $3) 4151 | (get_local $2) 4152 | ) 4153 | ) 4154 | (set_local $5 4155 | (i32.load 4156 | (i32.add 4157 | (get_local $0) 4158 | (i32.const 4) 4159 | ) 4160 | ) 4161 | ) 4162 | (set_local $7 4163 | (i32.load 4164 | (i32.add 4165 | (get_local $1) 4166 | (i32.const 4) 4167 | ) 4168 | ) 4169 | ) 4170 | (set_local $4 4171 | (i32.load 4172 | (get_local $1) 4173 | ) 4174 | ) 4175 | (br $label$1) 4176 | ) 4177 | (br_if $label$1 4178 | (i32.ge_u 4179 | (get_local $3) 4180 | (get_local $2) 4181 | ) 4182 | ) 4183 | (i32.store 4184 | (i32.add 4185 | (get_local $1) 4186 | (i32.const 4) 4187 | ) 4188 | (tee_local $7 4189 | (i32.add 4190 | (get_local $4) 4191 | (get_local $3) 4192 | ) 4193 | ) 4194 | ) 4195 | ) 4196 | (call $eosio_assert 4197 | (i32.ge_u 4198 | (i32.sub 4199 | (i32.load 4200 | (i32.add 4201 | (get_local $0) 4202 | (i32.const 8) 4203 | ) 4204 | ) 4205 | (get_local $5) 4206 | ) 4207 | (tee_local $5 4208 | (i32.sub 4209 | (get_local $7) 4210 | (get_local $4) 4211 | ) 4212 | ) 4213 | ) 4214 | (i32.const 736) 4215 | ) 4216 | (drop 4217 | (call $memcpy 4218 | (get_local $4) 4219 | (i32.load 4220 | (tee_local $7 4221 | (i32.add 4222 | (get_local $0) 4223 | (i32.const 4) 4224 | ) 4225 | ) 4226 | ) 4227 | (get_local $5) 4228 | ) 4229 | ) 4230 | (i32.store 4231 | (get_local $7) 4232 | (i32.add 4233 | (i32.load 4234 | (get_local $7) 4235 | ) 4236 | (get_local $5) 4237 | ) 4238 | ) 4239 | (get_local $0) 4240 | ) 4241 | (func $_ZNSt3__16vectorIcNS_9allocatorIcEEE8__appendEj (param $0 i32) (param $1 i32) 4242 | (local $2 i32) 4243 | (local $3 i32) 4244 | (local $4 i32) 4245 | (local $5 i32) 4246 | (local $6 i32) 4247 | (block $label$0 4248 | (block $label$1 4249 | (block $label$2 4250 | (block $label$3 4251 | (block $label$4 4252 | (br_if $label$4 4253 | (i32.ge_u 4254 | (i32.sub 4255 | (tee_local $2 4256 | (i32.load offset=8 4257 | (get_local $0) 4258 | ) 4259 | ) 4260 | (tee_local $6 4261 | (i32.load offset=4 4262 | (get_local $0) 4263 | ) 4264 | ) 4265 | ) 4266 | (get_local $1) 4267 | ) 4268 | ) 4269 | (br_if $label$2 4270 | (i32.le_s 4271 | (tee_local $4 4272 | (i32.add 4273 | (tee_local $3 4274 | (i32.sub 4275 | (get_local $6) 4276 | (tee_local $5 4277 | (i32.load 4278 | (get_local $0) 4279 | ) 4280 | ) 4281 | ) 4282 | ) 4283 | (get_local $1) 4284 | ) 4285 | ) 4286 | (i32.const -1) 4287 | ) 4288 | ) 4289 | (set_local $6 4290 | (i32.const 2147483647) 4291 | ) 4292 | (block $label$5 4293 | (br_if $label$5 4294 | (i32.gt_u 4295 | (tee_local $2 4296 | (i32.sub 4297 | (get_local $2) 4298 | (get_local $5) 4299 | ) 4300 | ) 4301 | (i32.const 1073741822) 4302 | ) 4303 | ) 4304 | (br_if $label$3 4305 | (i32.eqz 4306 | (tee_local $6 4307 | (select 4308 | (get_local $4) 4309 | (tee_local $6 4310 | (i32.shl 4311 | (get_local $2) 4312 | (i32.const 1) 4313 | ) 4314 | ) 4315 | (i32.lt_u 4316 | (get_local $6) 4317 | (get_local $4) 4318 | ) 4319 | ) 4320 | ) 4321 | ) 4322 | ) 4323 | ) 4324 | (set_local $2 4325 | (call $_Znwj 4326 | (get_local $6) 4327 | ) 4328 | ) 4329 | (br $label$1) 4330 | ) 4331 | (set_local $0 4332 | (i32.add 4333 | (get_local $0) 4334 | (i32.const 4) 4335 | ) 4336 | ) 4337 | (loop $label$6 4338 | (i32.store8 4339 | (get_local $6) 4340 | (i32.const 0) 4341 | ) 4342 | (i32.store 4343 | (get_local $0) 4344 | (tee_local $6 4345 | (i32.add 4346 | (i32.load 4347 | (get_local $0) 4348 | ) 4349 | (i32.const 1) 4350 | ) 4351 | ) 4352 | ) 4353 | (br_if $label$6 4354 | (tee_local $1 4355 | (i32.add 4356 | (get_local $1) 4357 | (i32.const -1) 4358 | ) 4359 | ) 4360 | ) 4361 | (br $label$0) 4362 | ) 4363 | ) 4364 | (set_local $6 4365 | (i32.const 0) 4366 | ) 4367 | (set_local $2 4368 | (i32.const 0) 4369 | ) 4370 | (br $label$1) 4371 | ) 4372 | (call $_ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv 4373 | (get_local $0) 4374 | ) 4375 | (unreachable) 4376 | ) 4377 | (set_local $4 4378 | (i32.add 4379 | (get_local $2) 4380 | (get_local $6) 4381 | ) 4382 | ) 4383 | (set_local $6 4384 | (tee_local $5 4385 | (i32.add 4386 | (get_local $2) 4387 | (get_local $3) 4388 | ) 4389 | ) 4390 | ) 4391 | (loop $label$7 4392 | (i32.store8 4393 | (get_local $6) 4394 | (i32.const 0) 4395 | ) 4396 | (set_local $6 4397 | (i32.add 4398 | (get_local $6) 4399 | (i32.const 1) 4400 | ) 4401 | ) 4402 | (br_if $label$7 4403 | (tee_local $1 4404 | (i32.add 4405 | (get_local $1) 4406 | (i32.const -1) 4407 | ) 4408 | ) 4409 | ) 4410 | ) 4411 | (set_local $5 4412 | (i32.sub 4413 | (get_local $5) 4414 | (tee_local $2 4415 | (i32.sub 4416 | (i32.load 4417 | (tee_local $3 4418 | (i32.add 4419 | (get_local $0) 4420 | (i32.const 4) 4421 | ) 4422 | ) 4423 | ) 4424 | (tee_local $1 4425 | (i32.load 4426 | (get_local $0) 4427 | ) 4428 | ) 4429 | ) 4430 | ) 4431 | ) 4432 | ) 4433 | (block $label$8 4434 | (br_if $label$8 4435 | (i32.lt_s 4436 | (get_local $2) 4437 | (i32.const 1) 4438 | ) 4439 | ) 4440 | (drop 4441 | (call $memcpy 4442 | (get_local $5) 4443 | (get_local $1) 4444 | (get_local $2) 4445 | ) 4446 | ) 4447 | (set_local $1 4448 | (i32.load 4449 | (get_local $0) 4450 | ) 4451 | ) 4452 | ) 4453 | (i32.store 4454 | (get_local $0) 4455 | (get_local $5) 4456 | ) 4457 | (i32.store 4458 | (get_local $3) 4459 | (get_local $6) 4460 | ) 4461 | (i32.store 4462 | (i32.add 4463 | (get_local $0) 4464 | (i32.const 8) 4465 | ) 4466 | (get_local $4) 4467 | ) 4468 | (br_if $label$0 4469 | (i32.eqz 4470 | (get_local $1) 4471 | ) 4472 | ) 4473 | (call $_ZdlPv 4474 | (get_local $1) 4475 | ) 4476 | (return) 4477 | ) 4478 | ) 4479 | (func $_ZN9contracts6removeEy (type $FUNCSIG$vij) (param $0 i32) (param $1 i64) 4480 | (local $2 i32) 4481 | (local $3 i32) 4482 | (local $4 i64) 4483 | (local $5 i32) 4484 | (local $6 i32) 4485 | (i32.store offset=4 4486 | (i32.const 0) 4487 | (tee_local $6 4488 | (i32.sub 4489 | (i32.load offset=4 4490 | (i32.const 0) 4491 | ) 4492 | (i32.const 48) 4493 | ) 4494 | ) 4495 | ) 4496 | (call $require_auth 4497 | (get_local $1) 4498 | ) 4499 | (i32.store 4500 | (i32.add 4501 | (get_local $6) 4502 | (i32.const 32) 4503 | ) 4504 | (i32.const 0) 4505 | ) 4506 | (i64.store offset=16 4507 | (get_local $6) 4508 | (i64.const -1) 4509 | ) 4510 | (i64.store offset=24 4511 | (get_local $6) 4512 | (i64.const 0) 4513 | ) 4514 | (i64.store 4515 | (get_local $6) 4516 | (tee_local $4 4517 | (i64.load 4518 | (get_local $0) 4519 | ) 4520 | ) 4521 | ) 4522 | (i64.store offset=8 4523 | (get_local $6) 4524 | (get_local $4) 4525 | ) 4526 | (set_local $0 4527 | (i32.const 0) 4528 | ) 4529 | (block $label$0 4530 | (br_if $label$0 4531 | (i32.lt_s 4532 | (tee_local $3 4533 | (call $db_find_i64 4534 | (get_local $4) 4535 | (get_local $4) 4536 | (i64.const 8419268397136609280) 4537 | (get_local $1) 4538 | ) 4539 | ) 4540 | (i32.const 0) 4541 | ) 4542 | ) 4543 | (call $eosio_assert 4544 | (i32.eq 4545 | (i32.load offset=96 4546 | (tee_local $0 4547 | (call $_ZNK5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE31load_object_by_primary_iteratorEl 4548 | (get_local $6) 4549 | (get_local $3) 4550 | ) 4551 | ) 4552 | ) 4553 | (get_local $6) 4554 | ) 4555 | (i32.const 336) 4556 | ) 4557 | ) 4558 | (call $eosio_assert 4559 | (tee_local $3 4560 | (i32.ne 4561 | (get_local $0) 4562 | (i32.const 0) 4563 | ) 4564 | ) 4565 | (i32.const 768) 4566 | ) 4567 | (call $eosio_assert 4568 | (get_local $3) 4569 | (i32.const 816) 4570 | ) 4571 | (block $label$1 4572 | (br_if $label$1 4573 | (i32.lt_s 4574 | (tee_local $3 4575 | (call $db_next_i64 4576 | (i32.load offset=100 4577 | (get_local $0) 4578 | ) 4579 | (i32.add 4580 | (get_local $6) 4581 | (i32.const 40) 4582 | ) 4583 | ) 4584 | ) 4585 | (i32.const 0) 4586 | ) 4587 | ) 4588 | (drop 4589 | (call $_ZNK5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE31load_object_by_primary_iteratorEl 4590 | (get_local $6) 4591 | (get_local $3) 4592 | ) 4593 | ) 4594 | ) 4595 | (call $_ZN5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE5eraseERKS2_ 4596 | (get_local $6) 4597 | (get_local $0) 4598 | ) 4599 | (block $label$2 4600 | (br_if $label$2 4601 | (i32.eqz 4602 | (tee_local $2 4603 | (i32.load offset=24 4604 | (get_local $6) 4605 | ) 4606 | ) 4607 | ) 4608 | ) 4609 | (block $label$3 4610 | (block $label$4 4611 | (br_if $label$4 4612 | (i32.eq 4613 | (tee_local $0 4614 | (i32.load 4615 | (tee_local $5 4616 | (i32.add 4617 | (get_local $6) 4618 | (i32.const 28) 4619 | ) 4620 | ) 4621 | ) 4622 | ) 4623 | (get_local $2) 4624 | ) 4625 | ) 4626 | (loop $label$5 4627 | (set_local $3 4628 | (i32.load 4629 | (tee_local $0 4630 | (i32.add 4631 | (get_local $0) 4632 | (i32.const -24) 4633 | ) 4634 | ) 4635 | ) 4636 | ) 4637 | (i32.store 4638 | (get_local $0) 4639 | (i32.const 0) 4640 | ) 4641 | (block $label$6 4642 | (br_if $label$6 4643 | (i32.eqz 4644 | (get_local $3) 4645 | ) 4646 | ) 4647 | (drop 4648 | (call $_ZN9contracts4infoD2Ev 4649 | (get_local $3) 4650 | ) 4651 | ) 4652 | (call $_ZdlPv 4653 | (get_local $3) 4654 | ) 4655 | ) 4656 | (br_if $label$5 4657 | (i32.ne 4658 | (get_local $2) 4659 | (get_local $0) 4660 | ) 4661 | ) 4662 | ) 4663 | (set_local $0 4664 | (i32.load 4665 | (i32.add 4666 | (get_local $6) 4667 | (i32.const 24) 4668 | ) 4669 | ) 4670 | ) 4671 | (br $label$3) 4672 | ) 4673 | (set_local $0 4674 | (get_local $2) 4675 | ) 4676 | ) 4677 | (i32.store 4678 | (get_local $5) 4679 | (get_local $2) 4680 | ) 4681 | (call $_ZdlPv 4682 | (get_local $0) 4683 | ) 4684 | ) 4685 | (i32.store offset=4 4686 | (i32.const 0) 4687 | (i32.add 4688 | (get_local $6) 4689 | (i32.const 48) 4690 | ) 4691 | ) 4692 | ) 4693 | (func $_ZN5eosio11multi_indexILy8419268397136609280EN9contracts4infoEJEE5eraseERKS2_ (param $0 i32) (param $1 i32) 4694 | (local $2 i64) 4695 | (local $3 i32) 4696 | (local $4 i32) 4697 | (local $5 i32) 4698 | (local $6 i32) 4699 | (local $7 i32) 4700 | (local $8 i32) 4701 | (call $eosio_assert 4702 | (i32.eq 4703 | (i32.load offset=96 4704 | (get_local $1) 4705 | ) 4706 | (get_local $0) 4707 | ) 4708 | (i32.const 848) 4709 | ) 4710 | (call $eosio_assert 4711 | (i64.eq 4712 | (i64.load 4713 | (get_local $0) 4714 | ) 4715 | (call $current_receiver) 4716 | ) 4717 | (i32.const 896) 4718 | ) 4719 | (block $label$0 4720 | (br_if $label$0 4721 | (i32.eq 4722 | (tee_local $7 4723 | (i32.load 4724 | (tee_local $5 4725 | (i32.add 4726 | (get_local $0) 4727 | (i32.const 28) 4728 | ) 4729 | ) 4730 | ) 4731 | ) 4732 | (tee_local $3 4733 | (i32.load offset=24 4734 | (get_local $0) 4735 | ) 4736 | ) 4737 | ) 4738 | ) 4739 | (set_local $2 4740 | (i64.load 4741 | (get_local $1) 4742 | ) 4743 | ) 4744 | (set_local $6 4745 | (i32.sub 4746 | (i32.const 0) 4747 | (get_local $3) 4748 | ) 4749 | ) 4750 | (set_local $8 4751 | (i32.add 4752 | (get_local $7) 4753 | (i32.const -24) 4754 | ) 4755 | ) 4756 | (loop $label$1 4757 | (br_if $label$0 4758 | (i64.eq 4759 | (i64.load 4760 | (i32.load 4761 | (get_local $8) 4762 | ) 4763 | ) 4764 | (get_local $2) 4765 | ) 4766 | ) 4767 | (set_local $7 4768 | (get_local $8) 4769 | ) 4770 | (set_local $8 4771 | (tee_local $4 4772 | (i32.add 4773 | (get_local $8) 4774 | (i32.const -24) 4775 | ) 4776 | ) 4777 | ) 4778 | (br_if $label$1 4779 | (i32.ne 4780 | (i32.add 4781 | (get_local $4) 4782 | (get_local $6) 4783 | ) 4784 | (i32.const -24) 4785 | ) 4786 | ) 4787 | ) 4788 | ) 4789 | (call $eosio_assert 4790 | (i32.ne 4791 | (get_local $7) 4792 | (get_local $3) 4793 | ) 4794 | (i32.const 960) 4795 | ) 4796 | (set_local $8 4797 | (i32.add 4798 | (get_local $7) 4799 | (i32.const -24) 4800 | ) 4801 | ) 4802 | (block $label$2 4803 | (block $label$3 4804 | (br_if $label$3 4805 | (i32.eq 4806 | (get_local $7) 4807 | (tee_local $4 4808 | (i32.load 4809 | (get_local $5) 4810 | ) 4811 | ) 4812 | ) 4813 | ) 4814 | (set_local $3 4815 | (i32.sub 4816 | (i32.const 0) 4817 | (get_local $4) 4818 | ) 4819 | ) 4820 | (set_local $7 4821 | (get_local $8) 4822 | ) 4823 | (loop $label$4 4824 | (set_local $6 4825 | (i32.load 4826 | (tee_local $8 4827 | (i32.add 4828 | (get_local $7) 4829 | (i32.const 24) 4830 | ) 4831 | ) 4832 | ) 4833 | ) 4834 | (i32.store 4835 | (get_local $8) 4836 | (i32.const 0) 4837 | ) 4838 | (set_local $4 4839 | (i32.load 4840 | (get_local $7) 4841 | ) 4842 | ) 4843 | (i32.store 4844 | (get_local $7) 4845 | (get_local $6) 4846 | ) 4847 | (block $label$5 4848 | (br_if $label$5 4849 | (i32.eqz 4850 | (get_local $4) 4851 | ) 4852 | ) 4853 | (drop 4854 | (call $_ZN9contracts4infoD2Ev 4855 | (get_local $4) 4856 | ) 4857 | ) 4858 | (call $_ZdlPv 4859 | (get_local $4) 4860 | ) 4861 | ) 4862 | (i32.store 4863 | (i32.add 4864 | (get_local $7) 4865 | (i32.const 16) 4866 | ) 4867 | (i32.load 4868 | (i32.add 4869 | (get_local $7) 4870 | (i32.const 40) 4871 | ) 4872 | ) 4873 | ) 4874 | (i64.store 4875 | (i32.add 4876 | (get_local $7) 4877 | (i32.const 8) 4878 | ) 4879 | (i64.load 4880 | (i32.add 4881 | (get_local $7) 4882 | (i32.const 32) 4883 | ) 4884 | ) 4885 | ) 4886 | (set_local $7 4887 | (get_local $8) 4888 | ) 4889 | (br_if $label$4 4890 | (i32.ne 4891 | (i32.add 4892 | (get_local $8) 4893 | (get_local $3) 4894 | ) 4895 | (i32.const -24) 4896 | ) 4897 | ) 4898 | ) 4899 | (br_if $label$2 4900 | (i32.eq 4901 | (tee_local $7 4902 | (i32.load 4903 | (i32.add 4904 | (get_local $0) 4905 | (i32.const 28) 4906 | ) 4907 | ) 4908 | ) 4909 | (get_local $8) 4910 | ) 4911 | ) 4912 | ) 4913 | (loop $label$6 4914 | (set_local $4 4915 | (i32.load 4916 | (tee_local $7 4917 | (i32.add 4918 | (get_local $7) 4919 | (i32.const -24) 4920 | ) 4921 | ) 4922 | ) 4923 | ) 4924 | (i32.store 4925 | (get_local $7) 4926 | (i32.const 0) 4927 | ) 4928 | (block $label$7 4929 | (br_if $label$7 4930 | (i32.eqz 4931 | (get_local $4) 4932 | ) 4933 | ) 4934 | (drop 4935 | (call $_ZN9contracts4infoD2Ev 4936 | (get_local $4) 4937 | ) 4938 | ) 4939 | (call $_ZdlPv 4940 | (get_local $4) 4941 | ) 4942 | ) 4943 | (br_if $label$6 4944 | (i32.ne 4945 | (get_local $8) 4946 | (get_local $7) 4947 | ) 4948 | ) 4949 | ) 4950 | ) 4951 | (i32.store 4952 | (i32.add 4953 | (get_local $0) 4954 | (i32.const 28) 4955 | ) 4956 | (get_local $8) 4957 | ) 4958 | (call $db_remove_i64 4959 | (i32.load offset=100 4960 | (get_local $1) 4961 | ) 4962 | ) 4963 | ) 4964 | (func $apply (param $0 i64) (param $1 i64) (param $2 i64) 4965 | (local $3 i32) 4966 | (local $4 i32) 4967 | (local $5 i64) 4968 | (local $6 i64) 4969 | (local $7 i64) 4970 | (local $8 i64) 4971 | (local $9 i32) 4972 | (i32.store offset=4 4973 | (i32.const 0) 4974 | (tee_local $9 4975 | (i32.sub 4976 | (i32.load offset=4 4977 | (i32.const 0) 4978 | ) 4979 | (i32.const 48) 4980 | ) 4981 | ) 4982 | ) 4983 | (set_local $6 4984 | (i64.const 0) 4985 | ) 4986 | (set_local $5 4987 | (i64.const 59) 4988 | ) 4989 | (set_local $4 4990 | (i32.const 1024) 4991 | ) 4992 | (set_local $7 4993 | (i64.const 0) 4994 | ) 4995 | (loop $label$0 4996 | (block $label$1 4997 | (block $label$2 4998 | (block $label$3 4999 | (block $label$4 5000 | (block $label$5 5001 | (br_if $label$5 5002 | (i64.gt_u 5003 | (get_local $6) 5004 | (i64.const 6) 5005 | ) 5006 | ) 5007 | (br_if $label$4 5008 | (i32.gt_u 5009 | (i32.and 5010 | (i32.add 5011 | (tee_local $3 5012 | (i32.load8_s 5013 | (get_local $4) 5014 | ) 5015 | ) 5016 | (i32.const -97) 5017 | ) 5018 | (i32.const 255) 5019 | ) 5020 | (i32.const 25) 5021 | ) 5022 | ) 5023 | (set_local $3 5024 | (i32.add 5025 | (get_local $3) 5026 | (i32.const 165) 5027 | ) 5028 | ) 5029 | (br $label$3) 5030 | ) 5031 | (set_local $8 5032 | (i64.const 0) 5033 | ) 5034 | (br_if $label$2 5035 | (i64.le_u 5036 | (get_local $6) 5037 | (i64.const 11) 5038 | ) 5039 | ) 5040 | (br $label$1) 5041 | ) 5042 | (set_local $3 5043 | (select 5044 | (i32.add 5045 | (get_local $3) 5046 | (i32.const 208) 5047 | ) 5048 | (i32.const 0) 5049 | (i32.lt_u 5050 | (i32.and 5051 | (i32.add 5052 | (get_local $3) 5053 | (i32.const -49) 5054 | ) 5055 | (i32.const 255) 5056 | ) 5057 | (i32.const 5) 5058 | ) 5059 | ) 5060 | ) 5061 | ) 5062 | (set_local $8 5063 | (i64.shr_s 5064 | (i64.shl 5065 | (i64.extend_u/i32 5066 | (get_local $3) 5067 | ) 5068 | (i64.const 56) 5069 | ) 5070 | (i64.const 56) 5071 | ) 5072 | ) 5073 | ) 5074 | (set_local $8 5075 | (i64.shl 5076 | (i64.and 5077 | (get_local $8) 5078 | (i64.const 31) 5079 | ) 5080 | (i64.and 5081 | (get_local $5) 5082 | (i64.const 4294967295) 5083 | ) 5084 | ) 5085 | ) 5086 | ) 5087 | (set_local $4 5088 | (i32.add 5089 | (get_local $4) 5090 | (i32.const 1) 5091 | ) 5092 | ) 5093 | (set_local $6 5094 | (i64.add 5095 | (get_local $6) 5096 | (i64.const 1) 5097 | ) 5098 | ) 5099 | (set_local $7 5100 | (i64.or 5101 | (get_local $8) 5102 | (get_local $7) 5103 | ) 5104 | ) 5105 | (br_if $label$0 5106 | (i64.ne 5107 | (tee_local $5 5108 | (i64.add 5109 | (get_local $5) 5110 | (i64.const -5) 5111 | ) 5112 | ) 5113 | (i64.const -6) 5114 | ) 5115 | ) 5116 | ) 5117 | (block $label$6 5118 | (br_if $label$6 5119 | (i64.ne 5120 | (get_local $7) 5121 | (get_local $2) 5122 | ) 5123 | ) 5124 | (set_local $6 5125 | (i64.const 0) 5126 | ) 5127 | (set_local $5 5128 | (i64.const 59) 5129 | ) 5130 | (set_local $4 5131 | (i32.const 1040) 5132 | ) 5133 | (set_local $7 5134 | (i64.const 0) 5135 | ) 5136 | (loop $label$7 5137 | (block $label$8 5138 | (block $label$9 5139 | (block $label$10 5140 | (block $label$11 5141 | (block $label$12 5142 | (br_if $label$12 5143 | (i64.gt_u 5144 | (get_local $6) 5145 | (i64.const 4) 5146 | ) 5147 | ) 5148 | (br_if $label$11 5149 | (i32.gt_u 5150 | (i32.and 5151 | (i32.add 5152 | (tee_local $3 5153 | (i32.load8_s 5154 | (get_local $4) 5155 | ) 5156 | ) 5157 | (i32.const -97) 5158 | ) 5159 | (i32.const 255) 5160 | ) 5161 | (i32.const 25) 5162 | ) 5163 | ) 5164 | (set_local $3 5165 | (i32.add 5166 | (get_local $3) 5167 | (i32.const 165) 5168 | ) 5169 | ) 5170 | (br $label$10) 5171 | ) 5172 | (set_local $8 5173 | (i64.const 0) 5174 | ) 5175 | (br_if $label$9 5176 | (i64.le_u 5177 | (get_local $6) 5178 | (i64.const 11) 5179 | ) 5180 | ) 5181 | (br $label$8) 5182 | ) 5183 | (set_local $3 5184 | (select 5185 | (i32.add 5186 | (get_local $3) 5187 | (i32.const 208) 5188 | ) 5189 | (i32.const 0) 5190 | (i32.lt_u 5191 | (i32.and 5192 | (i32.add 5193 | (get_local $3) 5194 | (i32.const -49) 5195 | ) 5196 | (i32.const 255) 5197 | ) 5198 | (i32.const 5) 5199 | ) 5200 | ) 5201 | ) 5202 | ) 5203 | (set_local $8 5204 | (i64.shr_s 5205 | (i64.shl 5206 | (i64.extend_u/i32 5207 | (get_local $3) 5208 | ) 5209 | (i64.const 56) 5210 | ) 5211 | (i64.const 56) 5212 | ) 5213 | ) 5214 | ) 5215 | (set_local $8 5216 | (i64.shl 5217 | (i64.and 5218 | (get_local $8) 5219 | (i64.const 31) 5220 | ) 5221 | (i64.and 5222 | (get_local $5) 5223 | (i64.const 4294967295) 5224 | ) 5225 | ) 5226 | ) 5227 | ) 5228 | (set_local $4 5229 | (i32.add 5230 | (get_local $4) 5231 | (i32.const 1) 5232 | ) 5233 | ) 5234 | (set_local $6 5235 | (i64.add 5236 | (get_local $6) 5237 | (i64.const 1) 5238 | ) 5239 | ) 5240 | (set_local $7 5241 | (i64.or 5242 | (get_local $8) 5243 | (get_local $7) 5244 | ) 5245 | ) 5246 | (br_if $label$7 5247 | (i64.ne 5248 | (tee_local $5 5249 | (i64.add 5250 | (get_local $5) 5251 | (i64.const -5) 5252 | ) 5253 | ) 5254 | (i64.const -6) 5255 | ) 5256 | ) 5257 | ) 5258 | (call $eosio_assert 5259 | (i64.eq 5260 | (get_local $7) 5261 | (get_local $1) 5262 | ) 5263 | (i32.const 1056) 5264 | ) 5265 | ) 5266 | (block $label$13 5267 | (block $label$14 5268 | (br_if $label$14 5269 | (i64.eq 5270 | (get_local $1) 5271 | (get_local $0) 5272 | ) 5273 | ) 5274 | (set_local $6 5275 | (i64.const 0) 5276 | ) 5277 | (set_local $5 5278 | (i64.const 59) 5279 | ) 5280 | (set_local $4 5281 | (i32.const 1024) 5282 | ) 5283 | (set_local $7 5284 | (i64.const 0) 5285 | ) 5286 | (loop $label$15 5287 | (block $label$16 5288 | (block $label$17 5289 | (block $label$18 5290 | (block $label$19 5291 | (block $label$20 5292 | (br_if $label$20 5293 | (i64.gt_u 5294 | (get_local $6) 5295 | (i64.const 6) 5296 | ) 5297 | ) 5298 | (br_if $label$19 5299 | (i32.gt_u 5300 | (i32.and 5301 | (i32.add 5302 | (tee_local $3 5303 | (i32.load8_s 5304 | (get_local $4) 5305 | ) 5306 | ) 5307 | (i32.const -97) 5308 | ) 5309 | (i32.const 255) 5310 | ) 5311 | (i32.const 25) 5312 | ) 5313 | ) 5314 | (set_local $3 5315 | (i32.add 5316 | (get_local $3) 5317 | (i32.const 165) 5318 | ) 5319 | ) 5320 | (br $label$18) 5321 | ) 5322 | (set_local $8 5323 | (i64.const 0) 5324 | ) 5325 | (br_if $label$17 5326 | (i64.le_u 5327 | (get_local $6) 5328 | (i64.const 11) 5329 | ) 5330 | ) 5331 | (br $label$16) 5332 | ) 5333 | (set_local $3 5334 | (select 5335 | (i32.add 5336 | (get_local $3) 5337 | (i32.const 208) 5338 | ) 5339 | (i32.const 0) 5340 | (i32.lt_u 5341 | (i32.and 5342 | (i32.add 5343 | (get_local $3) 5344 | (i32.const -49) 5345 | ) 5346 | (i32.const 255) 5347 | ) 5348 | (i32.const 5) 5349 | ) 5350 | ) 5351 | ) 5352 | ) 5353 | (set_local $8 5354 | (i64.shr_s 5355 | (i64.shl 5356 | (i64.extend_u/i32 5357 | (get_local $3) 5358 | ) 5359 | (i64.const 56) 5360 | ) 5361 | (i64.const 56) 5362 | ) 5363 | ) 5364 | ) 5365 | (set_local $8 5366 | (i64.shl 5367 | (i64.and 5368 | (get_local $8) 5369 | (i64.const 31) 5370 | ) 5371 | (i64.and 5372 | (get_local $5) 5373 | (i64.const 4294967295) 5374 | ) 5375 | ) 5376 | ) 5377 | ) 5378 | (set_local $4 5379 | (i32.add 5380 | (get_local $4) 5381 | (i32.const 1) 5382 | ) 5383 | ) 5384 | (set_local $6 5385 | (i64.add 5386 | (get_local $6) 5387 | (i64.const 1) 5388 | ) 5389 | ) 5390 | (set_local $7 5391 | (i64.or 5392 | (get_local $8) 5393 | (get_local $7) 5394 | ) 5395 | ) 5396 | (br_if $label$15 5397 | (i64.ne 5398 | (tee_local $5 5399 | (i64.add 5400 | (get_local $5) 5401 | (i64.const -5) 5402 | ) 5403 | ) 5404 | (i64.const -6) 5405 | ) 5406 | ) 5407 | ) 5408 | (br_if $label$13 5409 | (i64.ne 5410 | (get_local $7) 5411 | (get_local $2) 5412 | ) 5413 | ) 5414 | ) 5415 | (i64.store offset=40 5416 | (get_local $9) 5417 | (get_local $0) 5418 | ) 5419 | (block $label$21 5420 | (br_if $label$21 5421 | (i64.eq 5422 | (get_local $2) 5423 | (i64.const -4997502827547852800) 5424 | ) 5425 | ) 5426 | (br_if $label$13 5427 | (i64.ne 5428 | (get_local $2) 5429 | (i64.const 5031766166805787296) 5430 | ) 5431 | ) 5432 | (i32.store offset=36 5433 | (get_local $9) 5434 | (i32.const 0) 5435 | ) 5436 | (i32.store offset=32 5437 | (get_local $9) 5438 | (i32.const 1) 5439 | ) 5440 | (i64.store offset=8 align=4 5441 | (get_local $9) 5442 | (i64.load offset=32 5443 | (get_local $9) 5444 | ) 5445 | ) 5446 | (drop 5447 | (call $_ZN5eosio14execute_actionI9contractsS1_JyNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_S8_S8_S8_S8_EEEbPT_MT0_FvDpT1_E 5448 | (i32.add 5449 | (get_local $9) 5450 | (i32.const 40) 5451 | ) 5452 | (i32.add 5453 | (get_local $9) 5454 | (i32.const 8) 5455 | ) 5456 | ) 5457 | ) 5458 | (br $label$13) 5459 | ) 5460 | (i32.store offset=28 5461 | (get_local $9) 5462 | (i32.const 0) 5463 | ) 5464 | (i32.store offset=24 5465 | (get_local $9) 5466 | (i32.const 2) 5467 | ) 5468 | (i64.store offset=16 align=4 5469 | (get_local $9) 5470 | (i64.load offset=24 5471 | (get_local $9) 5472 | ) 5473 | ) 5474 | (drop 5475 | (call $_ZN5eosio14execute_actionI9contractsS1_JyEEEbPT_MT0_FvDpT1_E 5476 | (i32.add 5477 | (get_local $9) 5478 | (i32.const 40) 5479 | ) 5480 | (i32.add 5481 | (get_local $9) 5482 | (i32.const 16) 5483 | ) 5484 | ) 5485 | ) 5486 | ) 5487 | (i32.store offset=4 5488 | (i32.const 0) 5489 | (i32.add 5490 | (get_local $9) 5491 | (i32.const 48) 5492 | ) 5493 | ) 5494 | ) 5495 | (func $_ZN5eosio14execute_actionI9contractsS1_JyNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_S8_S8_S8_S8_EEEbPT_MT0_FvDpT1_E (param $0 i32) (param $1 i32) (result i32) 5496 | (local $2 i32) 5497 | (local $3 i32) 5498 | (i32.store offset=4 5499 | (i32.const 0) 5500 | (tee_local $3 5501 | (i32.sub 5502 | (i32.load offset=4 5503 | (i32.const 0) 5504 | ) 5505 | (i32.const 128) 5506 | ) 5507 | ) 5508 | ) 5509 | (i32.store offset=108 5510 | (tee_local $2 5511 | (get_local $3) 5512 | ) 5513 | (get_local $0) 5514 | ) 5515 | (i32.store offset=96 5516 | (get_local $2) 5517 | (i32.load 5518 | (get_local $1) 5519 | ) 5520 | ) 5521 | (i32.store offset=100 5522 | (get_local $2) 5523 | (i32.load offset=4 5524 | (get_local $1) 5525 | ) 5526 | ) 5527 | (set_local $1 5528 | (i32.const 0) 5529 | ) 5530 | (block $label$0 5531 | (br_if $label$0 5532 | (i32.eqz 5533 | (tee_local $0 5534 | (call $action_data_size) 5535 | ) 5536 | ) 5537 | ) 5538 | (block $label$1 5539 | (block $label$2 5540 | (br_if $label$2 5541 | (i32.lt_u 5542 | (get_local $0) 5543 | (i32.const 513) 5544 | ) 5545 | ) 5546 | (set_local $1 5547 | (call $malloc 5548 | (get_local $0) 5549 | ) 5550 | ) 5551 | (br $label$1) 5552 | ) 5553 | (i32.store offset=4 5554 | (i32.const 0) 5555 | (tee_local $1 5556 | (i32.sub 5557 | (get_local $3) 5558 | (i32.and 5559 | (i32.add 5560 | (get_local $0) 5561 | (i32.const 15) 5562 | ) 5563 | (i32.const -16) 5564 | ) 5565 | ) 5566 | ) 5567 | ) 5568 | ) 5569 | (drop 5570 | (call $read_action_data 5571 | (get_local $1) 5572 | (get_local $0) 5573 | ) 5574 | ) 5575 | ) 5576 | (i64.store 5577 | (i32.add 5578 | (get_local $2) 5579 | (i32.const 16) 5580 | ) 5581 | (i64.const 0) 5582 | ) 5583 | (i64.store 5584 | (i32.add 5585 | (get_local $2) 5586 | (i32.const 24) 5587 | ) 5588 | (i64.const 0) 5589 | ) 5590 | (i32.store 5591 | (i32.add 5592 | (get_local $2) 5593 | (i32.const 40) 5594 | ) 5595 | (i32.const 0) 5596 | ) 5597 | (i64.store 5598 | (get_local $2) 5599 | (i64.const 0) 5600 | ) 5601 | (i64.store offset=8 5602 | (get_local $2) 5603 | (i64.const 0) 5604 | ) 5605 | (i64.store offset=32 5606 | (get_local $2) 5607 | (i64.const 0) 5608 | ) 5609 | (i32.store offset=44 5610 | (get_local $2) 5611 | (i32.const 0) 5612 | ) 5613 | (i32.store 5614 | (i32.add 5615 | (get_local $2) 5616 | (i32.const 48) 5617 | ) 5618 | (i32.const 0) 5619 | ) 5620 | (i32.store 5621 | (i32.add 5622 | (get_local $2) 5623 | (i32.const 52) 5624 | ) 5625 | (i32.const 0) 5626 | ) 5627 | (i32.store offset=56 5628 | (get_local $2) 5629 | (i32.const 0) 5630 | ) 5631 | (i32.store 5632 | (i32.add 5633 | (get_local $2) 5634 | (i32.const 60) 5635 | ) 5636 | (i32.const 0) 5637 | ) 5638 | (i32.store 5639 | (i32.add 5640 | (get_local $2) 5641 | (i32.const 64) 5642 | ) 5643 | (i32.const 0) 5644 | ) 5645 | (i32.store offset=68 5646 | (get_local $2) 5647 | (i32.const 0) 5648 | ) 5649 | (i32.store 5650 | (i32.add 5651 | (get_local $2) 5652 | (i32.const 72) 5653 | ) 5654 | (i32.const 0) 5655 | ) 5656 | (i32.store 5657 | (i32.add 5658 | (get_local $2) 5659 | (i32.const 76) 5660 | ) 5661 | (i32.const 0) 5662 | ) 5663 | (i32.store offset=80 5664 | (get_local $2) 5665 | (i32.const 0) 5666 | ) 5667 | (i32.store 5668 | (i32.add 5669 | (get_local $2) 5670 | (i32.const 84) 5671 | ) 5672 | (i32.const 0) 5673 | ) 5674 | (i32.store 5675 | (i32.add 5676 | (get_local $2) 5677 | (i32.const 88) 5678 | ) 5679 | (i32.const 0) 5680 | ) 5681 | (i32.store offset=120 5682 | (get_local $2) 5683 | (i32.add 5684 | (get_local $1) 5685 | (get_local $0) 5686 | ) 5687 | ) 5688 | (i32.store offset=112 5689 | (get_local $2) 5690 | (get_local $1) 5691 | ) 5692 | (call $eosio_assert 5693 | (i32.gt_u 5694 | (get_local $0) 5695 | (i32.const 7) 5696 | ) 5697 | (i32.const 736) 5698 | ) 5699 | (drop 5700 | (call $memcpy 5701 | (get_local $2) 5702 | (get_local $1) 5703 | (i32.const 8) 5704 | ) 5705 | ) 5706 | (i32.store offset=116 5707 | (get_local $2) 5708 | (i32.add 5709 | (get_local $1) 5710 | (i32.const 8) 5711 | ) 5712 | ) 5713 | (drop 5714 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 5715 | (i32.add 5716 | (get_local $2) 5717 | (i32.const 112) 5718 | ) 5719 | (i32.add 5720 | (get_local $2) 5721 | (i32.const 8) 5722 | ) 5723 | ) 5724 | ) 5725 | (drop 5726 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 5727 | (i32.add 5728 | (get_local $2) 5729 | (i32.const 112) 5730 | ) 5731 | (i32.add 5732 | (get_local $2) 5733 | (i32.const 20) 5734 | ) 5735 | ) 5736 | ) 5737 | (drop 5738 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 5739 | (i32.add 5740 | (get_local $2) 5741 | (i32.const 112) 5742 | ) 5743 | (i32.add 5744 | (get_local $2) 5745 | (i32.const 32) 5746 | ) 5747 | ) 5748 | ) 5749 | (drop 5750 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 5751 | (i32.add 5752 | (get_local $2) 5753 | (i32.const 112) 5754 | ) 5755 | (i32.add 5756 | (get_local $2) 5757 | (i32.const 44) 5758 | ) 5759 | ) 5760 | ) 5761 | (drop 5762 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 5763 | (i32.add 5764 | (get_local $2) 5765 | (i32.const 112) 5766 | ) 5767 | (i32.add 5768 | (get_local $2) 5769 | (i32.const 56) 5770 | ) 5771 | ) 5772 | ) 5773 | (drop 5774 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 5775 | (i32.add 5776 | (get_local $2) 5777 | (i32.const 112) 5778 | ) 5779 | (i32.add 5780 | (get_local $2) 5781 | (i32.const 68) 5782 | ) 5783 | ) 5784 | ) 5785 | (drop 5786 | (call $_ZN5eosiorsINS_10datastreamIPKcEEEERT_S6_RNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE 5787 | (i32.add 5788 | (get_local $2) 5789 | (i32.const 112) 5790 | ) 5791 | (i32.add 5792 | (get_local $2) 5793 | (i32.const 80) 5794 | ) 5795 | ) 5796 | ) 5797 | (block $label$3 5798 | (br_if $label$3 5799 | (i32.lt_u 5800 | (get_local $0) 5801 | (i32.const 513) 5802 | ) 5803 | ) 5804 | (call $free 5805 | (get_local $1) 5806 | ) 5807 | ) 5808 | (i32.store offset=116 5809 | (get_local $2) 5810 | (i32.add 5811 | (get_local $2) 5812 | (i32.const 96) 5813 | ) 5814 | ) 5815 | (i32.store offset=112 5816 | (get_local $2) 5817 | (i32.add 5818 | (get_local $2) 5819 | (i32.const 108) 5820 | ) 5821 | ) 5822 | (call $_ZN5boost4mp116detail16tuple_apply_implIRZN5eosio14execute_actionI9contractsS5_JyNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEESC_SC_SC_SC_SC_SC_EEEbPT_MT0_FvDpT1_EEUlDpT_E_RNS6_5tupleIJySC_SC_SC_SC_SC_SC_SC_EEEJLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7EEEEDTclclsr3stdE7forwardISD_Efp_Espclsr3stdE3getIXT1_EEclsr3stdE7forwardISF_Efp0_EEEEOSD_OSF_NS0_16integer_sequenceIjJXspT1_EEEE 5823 | (i32.add 5824 | (get_local $2) 5825 | (i32.const 112) 5826 | ) 5827 | (get_local $2) 5828 | ) 5829 | (block $label$4 5830 | (br_if $label$4 5831 | (i32.eqz 5832 | (i32.and 5833 | (i32.load8_u offset=80 5834 | (get_local $2) 5835 | ) 5836 | (i32.const 1) 5837 | ) 5838 | ) 5839 | ) 5840 | (call $_ZdlPv 5841 | (i32.load 5842 | (i32.add 5843 | (get_local $2) 5844 | (i32.const 88) 5845 | ) 5846 | ) 5847 | ) 5848 | ) 5849 | (block $label$5 5850 | (br_if $label$5 5851 | (i32.eqz 5852 | (i32.and 5853 | (i32.load8_u offset=68 5854 | (get_local $2) 5855 | ) 5856 | (i32.const 1) 5857 | ) 5858 | ) 5859 | ) 5860 | (call $_ZdlPv 5861 | (i32.load 5862 | (i32.add 5863 | (get_local $2) 5864 | (i32.const 76) 5865 | ) 5866 | ) 5867 | ) 5868 | ) 5869 | (block $label$6 5870 | (br_if $label$6 5871 | (i32.eqz 5872 | (i32.and 5873 | (i32.load8_u offset=56 5874 | (get_local $2) 5875 | ) 5876 | (i32.const 1) 5877 | ) 5878 | ) 5879 | ) 5880 | (call $_ZdlPv 5881 | (i32.load 5882 | (i32.add 5883 | (get_local $2) 5884 | (i32.const 64) 5885 | ) 5886 | ) 5887 | ) 5888 | ) 5889 | (block $label$7 5890 | (br_if $label$7 5891 | (i32.eqz 5892 | (i32.and 5893 | (i32.load8_u offset=44 5894 | (get_local $2) 5895 | ) 5896 | (i32.const 1) 5897 | ) 5898 | ) 5899 | ) 5900 | (call $_ZdlPv 5901 | (i32.load 5902 | (i32.add 5903 | (get_local $2) 5904 | (i32.const 52) 5905 | ) 5906 | ) 5907 | ) 5908 | ) 5909 | (block $label$8 5910 | (br_if $label$8 5911 | (i32.eqz 5912 | (i32.and 5913 | (i32.load8_u offset=32 5914 | (get_local $2) 5915 | ) 5916 | (i32.const 1) 5917 | ) 5918 | ) 5919 | ) 5920 | (call $_ZdlPv 5921 | (i32.load 5922 | (i32.add 5923 | (get_local $2) 5924 | (i32.const 40) 5925 | ) 5926 | ) 5927 | ) 5928 | ) 5929 | (block $label$9 5930 | (br_if $label$9 5931 | (i32.eqz 5932 | (i32.and 5933 | (i32.load8_u offset=20 5934 | (get_local $2) 5935 | ) 5936 | (i32.const 1) 5937 | ) 5938 | ) 5939 | ) 5940 | (call $_ZdlPv 5941 | (i32.load 5942 | (i32.add 5943 | (get_local $2) 5944 | (i32.const 28) 5945 | ) 5946 | ) 5947 | ) 5948 | ) 5949 | (block $label$10 5950 | (br_if $label$10 5951 | (i32.eqz 5952 | (i32.and 5953 | (i32.load8_u offset=8 5954 | (get_local $2) 5955 | ) 5956 | (i32.const 1) 5957 | ) 5958 | ) 5959 | ) 5960 | (call $_ZdlPv 5961 | (i32.load 5962 | (i32.add 5963 | (get_local $2) 5964 | (i32.const 16) 5965 | ) 5966 | ) 5967 | ) 5968 | ) 5969 | (i32.store offset=4 5970 | (i32.const 0) 5971 | (i32.add 5972 | (get_local $2) 5973 | (i32.const 128) 5974 | ) 5975 | ) 5976 | (i32.const 1) 5977 | ) 5978 | (func $_ZN5eosio14execute_actionI9contractsS1_JyEEEbPT_MT0_FvDpT1_E (param $0 i32) (param $1 i32) (result i32) 5979 | (local $2 i32) 5980 | (local $3 i64) 5981 | (local $4 i32) 5982 | (local $5 i32) 5983 | (local $6 i32) 5984 | (set_local $6 5985 | (tee_local $4 5986 | (i32.sub 5987 | (i32.load offset=4 5988 | (i32.const 0) 5989 | ) 5990 | (i32.const 16) 5991 | ) 5992 | ) 5993 | ) 5994 | (i32.store offset=4 5995 | (i32.const 0) 5996 | (get_local $4) 5997 | ) 5998 | (set_local $2 5999 | (i32.load offset=4 6000 | (get_local $1) 6001 | ) 6002 | ) 6003 | (set_local $5 6004 | (i32.load 6005 | (get_local $1) 6006 | ) 6007 | ) 6008 | (block $label$0 6009 | (block $label$1 6010 | (block $label$2 6011 | (block $label$3 6012 | (br_if $label$3 6013 | (i32.eqz 6014 | (tee_local $1 6015 | (call $action_data_size) 6016 | ) 6017 | ) 6018 | ) 6019 | (br_if $label$2 6020 | (i32.lt_u 6021 | (get_local $1) 6022 | (i32.const 513) 6023 | ) 6024 | ) 6025 | (set_local $4 6026 | (call $malloc 6027 | (get_local $1) 6028 | ) 6029 | ) 6030 | (br $label$1) 6031 | ) 6032 | (set_local $4 6033 | (i32.const 0) 6034 | ) 6035 | (br $label$0) 6036 | ) 6037 | (i32.store offset=4 6038 | (i32.const 0) 6039 | (tee_local $4 6040 | (i32.sub 6041 | (get_local $4) 6042 | (i32.and 6043 | (i32.add 6044 | (get_local $1) 6045 | (i32.const 15) 6046 | ) 6047 | (i32.const -16) 6048 | ) 6049 | ) 6050 | ) 6051 | ) 6052 | ) 6053 | (drop 6054 | (call $read_action_data 6055 | (get_local $4) 6056 | (get_local $1) 6057 | ) 6058 | ) 6059 | ) 6060 | (i64.store offset=8 6061 | (get_local $6) 6062 | (i64.const 0) 6063 | ) 6064 | (call $eosio_assert 6065 | (i32.gt_u 6066 | (get_local $1) 6067 | (i32.const 7) 6068 | ) 6069 | (i32.const 736) 6070 | ) 6071 | (drop 6072 | (call $memcpy 6073 | (i32.add 6074 | (get_local $6) 6075 | (i32.const 8) 6076 | ) 6077 | (get_local $4) 6078 | (i32.const 8) 6079 | ) 6080 | ) 6081 | (set_local $3 6082 | (i64.load offset=8 6083 | (get_local $6) 6084 | ) 6085 | ) 6086 | (block $label$4 6087 | (br_if $label$4 6088 | (i32.lt_u 6089 | (get_local $1) 6090 | (i32.const 513) 6091 | ) 6092 | ) 6093 | (call $free 6094 | (get_local $4) 6095 | ) 6096 | ) 6097 | (set_local $1 6098 | (i32.add 6099 | (get_local $0) 6100 | (i32.shr_s 6101 | (get_local $2) 6102 | (i32.const 1) 6103 | ) 6104 | ) 6105 | ) 6106 | (block $label$5 6107 | (br_if $label$5 6108 | (i32.eqz 6109 | (i32.and 6110 | (get_local $2) 6111 | (i32.const 1) 6112 | ) 6113 | ) 6114 | ) 6115 | (set_local $5 6116 | (i32.load 6117 | (i32.add 6118 | (i32.load 6119 | (get_local $1) 6120 | ) 6121 | (get_local $5) 6122 | ) 6123 | ) 6124 | ) 6125 | ) 6126 | (call_indirect (type $FUNCSIG$vij) 6127 | (get_local $1) 6128 | (get_local $3) 6129 | (get_local $5) 6130 | ) 6131 | (i32.store offset=4 6132 | (i32.const 0) 6133 | (i32.add 6134 | (get_local $6) 6135 | (i32.const 16) 6136 | ) 6137 | ) 6138 | (i32.const 1) 6139 | ) 6140 | (func $_ZN5boost4mp116detail16tuple_apply_implIRZN5eosio14execute_actionI9contractsS5_JyNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEESC_SC_SC_SC_SC_SC_EEEbPT_MT0_FvDpT1_EEUlDpT_E_RNS6_5tupleIJySC_SC_SC_SC_SC_SC_SC_EEEJLj0ELj1ELj2ELj3ELj4ELj5ELj6ELj7EEEEDTclclsr3stdE7forwardISD_Efp_Espclsr3stdE3getIXT1_EEclsr3stdE7forwardISF_Efp0_EEEEOSD_OSF_NS0_16integer_sequenceIjJXspT1_EEEE (param $0 i32) (param $1 i32) 6141 | (local $2 i64) 6142 | (local $3 i32) 6143 | (i32.store offset=4 6144 | (i32.const 0) 6145 | (tee_local $3 6146 | (i32.sub 6147 | (i32.load offset=4 6148 | (i32.const 0) 6149 | ) 6150 | (i32.const 112) 6151 | ) 6152 | ) 6153 | ) 6154 | (set_local $2 6155 | (i64.load 6156 | (get_local $1) 6157 | ) 6158 | ) 6159 | (drop 6160 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6161 | (i32.add 6162 | (get_local $3) 6163 | (i32.const 96) 6164 | ) 6165 | (i32.add 6166 | (get_local $1) 6167 | (i32.const 8) 6168 | ) 6169 | ) 6170 | ) 6171 | (drop 6172 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6173 | (i32.add 6174 | (get_local $3) 6175 | (i32.const 80) 6176 | ) 6177 | (i32.add 6178 | (get_local $1) 6179 | (i32.const 20) 6180 | ) 6181 | ) 6182 | ) 6183 | (drop 6184 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6185 | (i32.add 6186 | (get_local $3) 6187 | (i32.const 64) 6188 | ) 6189 | (i32.add 6190 | (get_local $1) 6191 | (i32.const 32) 6192 | ) 6193 | ) 6194 | ) 6195 | (drop 6196 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6197 | (i32.add 6198 | (get_local $3) 6199 | (i32.const 48) 6200 | ) 6201 | (i32.add 6202 | (get_local $1) 6203 | (i32.const 44) 6204 | ) 6205 | ) 6206 | ) 6207 | (drop 6208 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6209 | (i32.add 6210 | (get_local $3) 6211 | (i32.const 32) 6212 | ) 6213 | (i32.add 6214 | (get_local $1) 6215 | (i32.const 56) 6216 | ) 6217 | ) 6218 | ) 6219 | (drop 6220 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6221 | (i32.add 6222 | (get_local $3) 6223 | (i32.const 16) 6224 | ) 6225 | (i32.add 6226 | (get_local $1) 6227 | (i32.const 68) 6228 | ) 6229 | ) 6230 | ) 6231 | (drop 6232 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6233 | (get_local $3) 6234 | (i32.add 6235 | (get_local $1) 6236 | (i32.const 80) 6237 | ) 6238 | ) 6239 | ) 6240 | (call $_ZZN5eosio14execute_actionI9contractsS1_JyNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_S8_S8_S8_S8_EEEbPT_MT0_FvDpT1_EENKUlDpT_E_clIJyS8_S8_S8_S8_S8_S8_S8_EEEDaSH_ 6241 | (get_local $0) 6242 | (get_local $2) 6243 | (i32.add 6244 | (get_local $3) 6245 | (i32.const 96) 6246 | ) 6247 | (i32.add 6248 | (get_local $3) 6249 | (i32.const 80) 6250 | ) 6251 | (i32.add 6252 | (get_local $3) 6253 | (i32.const 64) 6254 | ) 6255 | (i32.add 6256 | (get_local $3) 6257 | (i32.const 48) 6258 | ) 6259 | (i32.add 6260 | (get_local $3) 6261 | (i32.const 32) 6262 | ) 6263 | (i32.add 6264 | (get_local $3) 6265 | (i32.const 16) 6266 | ) 6267 | (get_local $3) 6268 | ) 6269 | (block $label$0 6270 | (br_if $label$0 6271 | (i32.eqz 6272 | (i32.and 6273 | (i32.load8_u 6274 | (get_local $3) 6275 | ) 6276 | (i32.const 1) 6277 | ) 6278 | ) 6279 | ) 6280 | (call $_ZdlPv 6281 | (i32.load offset=8 6282 | (get_local $3) 6283 | ) 6284 | ) 6285 | ) 6286 | (block $label$1 6287 | (br_if $label$1 6288 | (i32.eqz 6289 | (i32.and 6290 | (i32.load8_u offset=16 6291 | (get_local $3) 6292 | ) 6293 | (i32.const 1) 6294 | ) 6295 | ) 6296 | ) 6297 | (call $_ZdlPv 6298 | (i32.load offset=24 6299 | (get_local $3) 6300 | ) 6301 | ) 6302 | ) 6303 | (block $label$2 6304 | (br_if $label$2 6305 | (i32.eqz 6306 | (i32.and 6307 | (i32.load8_u offset=32 6308 | (get_local $3) 6309 | ) 6310 | (i32.const 1) 6311 | ) 6312 | ) 6313 | ) 6314 | (call $_ZdlPv 6315 | (i32.load offset=40 6316 | (get_local $3) 6317 | ) 6318 | ) 6319 | ) 6320 | (block $label$3 6321 | (br_if $label$3 6322 | (i32.eqz 6323 | (i32.and 6324 | (i32.load8_u offset=48 6325 | (get_local $3) 6326 | ) 6327 | (i32.const 1) 6328 | ) 6329 | ) 6330 | ) 6331 | (call $_ZdlPv 6332 | (i32.load offset=56 6333 | (get_local $3) 6334 | ) 6335 | ) 6336 | ) 6337 | (block $label$4 6338 | (br_if $label$4 6339 | (i32.eqz 6340 | (i32.and 6341 | (i32.load8_u offset=64 6342 | (get_local $3) 6343 | ) 6344 | (i32.const 1) 6345 | ) 6346 | ) 6347 | ) 6348 | (call $_ZdlPv 6349 | (i32.load offset=72 6350 | (get_local $3) 6351 | ) 6352 | ) 6353 | ) 6354 | (block $label$5 6355 | (br_if $label$5 6356 | (i32.eqz 6357 | (i32.and 6358 | (i32.load8_u offset=80 6359 | (get_local $3) 6360 | ) 6361 | (i32.const 1) 6362 | ) 6363 | ) 6364 | ) 6365 | (call $_ZdlPv 6366 | (i32.load offset=88 6367 | (get_local $3) 6368 | ) 6369 | ) 6370 | ) 6371 | (block $label$6 6372 | (br_if $label$6 6373 | (i32.eqz 6374 | (i32.and 6375 | (i32.load8_u offset=96 6376 | (get_local $3) 6377 | ) 6378 | (i32.const 1) 6379 | ) 6380 | ) 6381 | ) 6382 | (call $_ZdlPv 6383 | (i32.load offset=104 6384 | (get_local $3) 6385 | ) 6386 | ) 6387 | ) 6388 | (i32.store offset=4 6389 | (i32.const 0) 6390 | (i32.add 6391 | (get_local $3) 6392 | (i32.const 112) 6393 | ) 6394 | ) 6395 | ) 6396 | (func $_ZZN5eosio14execute_actionI9contractsS1_JyNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_S8_S8_S8_S8_S8_EEEbPT_MT0_FvDpT1_EENKUlDpT_E_clIJyS8_S8_S8_S8_S8_S8_S8_EEEDaSH_ (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) 6397 | (local $9 i32) 6398 | (local $10 i32) 6399 | (local $11 i32) 6400 | (i32.store offset=4 6401 | (i32.const 0) 6402 | (tee_local $11 6403 | (i32.sub 6404 | (i32.load offset=4 6405 | (i32.const 0) 6406 | ) 6407 | (i32.const 112) 6408 | ) 6409 | ) 6410 | ) 6411 | (set_local $9 6412 | (i32.add 6413 | (i32.load 6414 | (i32.load 6415 | (get_local $0) 6416 | ) 6417 | ) 6418 | (i32.shr_s 6419 | (tee_local $10 6420 | (i32.load offset=4 6421 | (tee_local $0 6422 | (i32.load offset=4 6423 | (get_local $0) 6424 | ) 6425 | ) 6426 | ) 6427 | ) 6428 | (i32.const 1) 6429 | ) 6430 | ) 6431 | ) 6432 | (set_local $0 6433 | (i32.load 6434 | (get_local $0) 6435 | ) 6436 | ) 6437 | (block $label$0 6438 | (br_if $label$0 6439 | (i32.eqz 6440 | (i32.and 6441 | (get_local $10) 6442 | (i32.const 1) 6443 | ) 6444 | ) 6445 | ) 6446 | (set_local $0 6447 | (i32.load 6448 | (i32.add 6449 | (i32.load 6450 | (get_local $9) 6451 | ) 6452 | (get_local $0) 6453 | ) 6454 | ) 6455 | ) 6456 | ) 6457 | (drop 6458 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6459 | (i32.add 6460 | (get_local $11) 6461 | (i32.const 96) 6462 | ) 6463 | (get_local $2) 6464 | ) 6465 | ) 6466 | (drop 6467 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6468 | (i32.add 6469 | (get_local $11) 6470 | (i32.const 80) 6471 | ) 6472 | (get_local $3) 6473 | ) 6474 | ) 6475 | (drop 6476 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6477 | (i32.add 6478 | (get_local $11) 6479 | (i32.const 64) 6480 | ) 6481 | (get_local $4) 6482 | ) 6483 | ) 6484 | (drop 6485 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6486 | (i32.add 6487 | (get_local $11) 6488 | (i32.const 48) 6489 | ) 6490 | (get_local $5) 6491 | ) 6492 | ) 6493 | (drop 6494 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6495 | (i32.add 6496 | (get_local $11) 6497 | (i32.const 32) 6498 | ) 6499 | (get_local $6) 6500 | ) 6501 | ) 6502 | (drop 6503 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6504 | (i32.add 6505 | (get_local $11) 6506 | (i32.const 16) 6507 | ) 6508 | (get_local $7) 6509 | ) 6510 | ) 6511 | (drop 6512 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ 6513 | (get_local $11) 6514 | (get_local $8) 6515 | ) 6516 | ) 6517 | (call_indirect (type $FUNCSIG$vijiiiiiii) 6518 | (get_local $9) 6519 | (get_local $1) 6520 | (i32.add 6521 | (get_local $11) 6522 | (i32.const 96) 6523 | ) 6524 | (i32.add 6525 | (get_local $11) 6526 | (i32.const 80) 6527 | ) 6528 | (i32.add 6529 | (get_local $11) 6530 | (i32.const 64) 6531 | ) 6532 | (i32.add 6533 | (get_local $11) 6534 | (i32.const 48) 6535 | ) 6536 | (i32.add 6537 | (get_local $11) 6538 | (i32.const 32) 6539 | ) 6540 | (i32.add 6541 | (get_local $11) 6542 | (i32.const 16) 6543 | ) 6544 | (get_local $11) 6545 | (get_local $0) 6546 | ) 6547 | (block $label$1 6548 | (br_if $label$1 6549 | (i32.eqz 6550 | (i32.and 6551 | (i32.load8_u 6552 | (get_local $11) 6553 | ) 6554 | (i32.const 1) 6555 | ) 6556 | ) 6557 | ) 6558 | (call $_ZdlPv 6559 | (i32.load offset=8 6560 | (get_local $11) 6561 | ) 6562 | ) 6563 | ) 6564 | (block $label$2 6565 | (br_if $label$2 6566 | (i32.eqz 6567 | (i32.and 6568 | (i32.load8_u offset=16 6569 | (get_local $11) 6570 | ) 6571 | (i32.const 1) 6572 | ) 6573 | ) 6574 | ) 6575 | (call $_ZdlPv 6576 | (i32.load offset=24 6577 | (get_local $11) 6578 | ) 6579 | ) 6580 | ) 6581 | (block $label$3 6582 | (br_if $label$3 6583 | (i32.eqz 6584 | (i32.and 6585 | (i32.load8_u offset=32 6586 | (get_local $11) 6587 | ) 6588 | (i32.const 1) 6589 | ) 6590 | ) 6591 | ) 6592 | (call $_ZdlPv 6593 | (i32.load offset=40 6594 | (get_local $11) 6595 | ) 6596 | ) 6597 | ) 6598 | (block $label$4 6599 | (br_if $label$4 6600 | (i32.eqz 6601 | (i32.and 6602 | (i32.load8_u offset=48 6603 | (get_local $11) 6604 | ) 6605 | (i32.const 1) 6606 | ) 6607 | ) 6608 | ) 6609 | (call $_ZdlPv 6610 | (i32.load offset=56 6611 | (get_local $11) 6612 | ) 6613 | ) 6614 | ) 6615 | (block $label$5 6616 | (br_if $label$5 6617 | (i32.eqz 6618 | (i32.and 6619 | (i32.load8_u offset=64 6620 | (get_local $11) 6621 | ) 6622 | (i32.const 1) 6623 | ) 6624 | ) 6625 | ) 6626 | (call $_ZdlPv 6627 | (i32.load offset=72 6628 | (get_local $11) 6629 | ) 6630 | ) 6631 | ) 6632 | (block $label$6 6633 | (br_if $label$6 6634 | (i32.eqz 6635 | (i32.and 6636 | (i32.load8_u offset=80 6637 | (get_local $11) 6638 | ) 6639 | (i32.const 1) 6640 | ) 6641 | ) 6642 | ) 6643 | (call $_ZdlPv 6644 | (i32.load offset=88 6645 | (get_local $11) 6646 | ) 6647 | ) 6648 | ) 6649 | (block $label$7 6650 | (br_if $label$7 6651 | (i32.eqz 6652 | (i32.and 6653 | (i32.load8_u offset=96 6654 | (get_local $11) 6655 | ) 6656 | (i32.const 1) 6657 | ) 6658 | ) 6659 | ) 6660 | (call $_ZdlPv 6661 | (i32.load offset=104 6662 | (get_local $11) 6663 | ) 6664 | ) 6665 | ) 6666 | (i32.store offset=4 6667 | (i32.const 0) 6668 | (i32.add 6669 | (get_local $11) 6670 | (i32.const 112) 6671 | ) 6672 | ) 6673 | ) 6674 | (func $malloc (param $0 i32) (result i32) 6675 | (call $_ZN5eosio14memory_manager6mallocEm 6676 | (i32.const 1120) 6677 | (get_local $0) 6678 | ) 6679 | ) 6680 | (func $_ZN5eosio14memory_manager6mallocEm (param $0 i32) (param $1 i32) (result i32) 6681 | (local $2 i32) 6682 | (local $3 i32) 6683 | (local $4 i32) 6684 | (local $5 i32) 6685 | (local $6 i32) 6686 | (local $7 i32) 6687 | (local $8 i32) 6688 | (local $9 i32) 6689 | (local $10 i32) 6690 | (local $11 i32) 6691 | (local $12 i32) 6692 | (local $13 i32) 6693 | (block $label$0 6694 | (br_if $label$0 6695 | (i32.eqz 6696 | (get_local $1) 6697 | ) 6698 | ) 6699 | (block $label$1 6700 | (br_if $label$1 6701 | (tee_local $13 6702 | (i32.load offset=8384 6703 | (get_local $0) 6704 | ) 6705 | ) 6706 | ) 6707 | (set_local $13 6708 | (i32.const 16) 6709 | ) 6710 | (i32.store 6711 | (i32.add 6712 | (get_local $0) 6713 | (i32.const 8384) 6714 | ) 6715 | (i32.const 16) 6716 | ) 6717 | ) 6718 | (set_local $2 6719 | (select 6720 | (i32.sub 6721 | (i32.add 6722 | (get_local $1) 6723 | (i32.const 8) 6724 | ) 6725 | (tee_local $2 6726 | (i32.and 6727 | (i32.add 6728 | (get_local $1) 6729 | (i32.const 4) 6730 | ) 6731 | (i32.const 7) 6732 | ) 6733 | ) 6734 | ) 6735 | (get_local $1) 6736 | (get_local $2) 6737 | ) 6738 | ) 6739 | (block $label$2 6740 | (block $label$3 6741 | (block $label$4 6742 | (br_if $label$4 6743 | (i32.ge_u 6744 | (tee_local $10 6745 | (i32.load offset=8388 6746 | (get_local $0) 6747 | ) 6748 | ) 6749 | (get_local $13) 6750 | ) 6751 | ) 6752 | (set_local $1 6753 | (i32.add 6754 | (i32.add 6755 | (get_local $0) 6756 | (i32.mul 6757 | (get_local $10) 6758 | (i32.const 12) 6759 | ) 6760 | ) 6761 | (i32.const 8192) 6762 | ) 6763 | ) 6764 | (block $label$5 6765 | (br_if $label$5 6766 | (get_local $10) 6767 | ) 6768 | (br_if $label$5 6769 | (i32.load 6770 | (tee_local $13 6771 | (i32.add 6772 | (get_local $0) 6773 | (i32.const 8196) 6774 | ) 6775 | ) 6776 | ) 6777 | ) 6778 | (i32.store 6779 | (get_local $1) 6780 | (i32.const 8192) 6781 | ) 6782 | (i32.store 6783 | (get_local $13) 6784 | (get_local $0) 6785 | ) 6786 | ) 6787 | (set_local $10 6788 | (i32.add 6789 | (get_local $2) 6790 | (i32.const 4) 6791 | ) 6792 | ) 6793 | (loop $label$6 6794 | (block $label$7 6795 | (br_if $label$7 6796 | (i32.gt_u 6797 | (i32.add 6798 | (tee_local $13 6799 | (i32.load offset=8 6800 | (get_local $1) 6801 | ) 6802 | ) 6803 | (get_local $10) 6804 | ) 6805 | (i32.load 6806 | (get_local $1) 6807 | ) 6808 | ) 6809 | ) 6810 | (i32.store 6811 | (tee_local $13 6812 | (i32.add 6813 | (i32.load offset=4 6814 | (get_local $1) 6815 | ) 6816 | (get_local $13) 6817 | ) 6818 | ) 6819 | (i32.or 6820 | (i32.and 6821 | (i32.load 6822 | (get_local $13) 6823 | ) 6824 | (i32.const -2147483648) 6825 | ) 6826 | (get_local $2) 6827 | ) 6828 | ) 6829 | (i32.store 6830 | (tee_local $1 6831 | (i32.add 6832 | (get_local $1) 6833 | (i32.const 8) 6834 | ) 6835 | ) 6836 | (i32.add 6837 | (i32.load 6838 | (get_local $1) 6839 | ) 6840 | (get_local $10) 6841 | ) 6842 | ) 6843 | (i32.store 6844 | (get_local $13) 6845 | (i32.or 6846 | (i32.load 6847 | (get_local $13) 6848 | ) 6849 | (i32.const -2147483648) 6850 | ) 6851 | ) 6852 | (br_if $label$3 6853 | (tee_local $1 6854 | (i32.add 6855 | (get_local $13) 6856 | (i32.const 4) 6857 | ) 6858 | ) 6859 | ) 6860 | ) 6861 | (br_if $label$6 6862 | (tee_local $1 6863 | (call $_ZN5eosio14memory_manager16next_active_heapEv 6864 | (get_local $0) 6865 | ) 6866 | ) 6867 | ) 6868 | ) 6869 | ) 6870 | (set_local $4 6871 | (i32.sub 6872 | (i32.const 2147483644) 6873 | (get_local $2) 6874 | ) 6875 | ) 6876 | (set_local $11 6877 | (i32.add 6878 | (get_local $0) 6879 | (i32.const 8392) 6880 | ) 6881 | ) 6882 | (set_local $12 6883 | (i32.add 6884 | (get_local $0) 6885 | (i32.const 8384) 6886 | ) 6887 | ) 6888 | (set_local $13 6889 | (tee_local $3 6890 | (i32.load offset=8392 6891 | (get_local $0) 6892 | ) 6893 | ) 6894 | ) 6895 | (loop $label$8 6896 | (call $eosio_assert 6897 | (i32.eq 6898 | (i32.load 6899 | (i32.add 6900 | (tee_local $1 6901 | (i32.add 6902 | (get_local $0) 6903 | (i32.mul 6904 | (get_local $13) 6905 | (i32.const 12) 6906 | ) 6907 | ) 6908 | ) 6909 | (i32.const 8200) 6910 | ) 6911 | ) 6912 | (i32.load 6913 | (tee_local $5 6914 | (i32.add 6915 | (get_local $1) 6916 | (i32.const 8192) 6917 | ) 6918 | ) 6919 | ) 6920 | ) 6921 | (i32.const 9520) 6922 | ) 6923 | (set_local $13 6924 | (i32.add 6925 | (tee_local $6 6926 | (i32.load 6927 | (i32.add 6928 | (get_local $1) 6929 | (i32.const 8196) 6930 | ) 6931 | ) 6932 | ) 6933 | (i32.const 4) 6934 | ) 6935 | ) 6936 | (loop $label$9 6937 | (set_local $7 6938 | (i32.add 6939 | (get_local $6) 6940 | (i32.load 6941 | (get_local $5) 6942 | ) 6943 | ) 6944 | ) 6945 | (set_local $1 6946 | (i32.and 6947 | (tee_local $9 6948 | (i32.load 6949 | (tee_local $8 6950 | (i32.add 6951 | (get_local $13) 6952 | (i32.const -4) 6953 | ) 6954 | ) 6955 | ) 6956 | ) 6957 | (i32.const 2147483647) 6958 | ) 6959 | ) 6960 | (block $label$10 6961 | (br_if $label$10 6962 | (i32.lt_s 6963 | (get_local $9) 6964 | (i32.const 0) 6965 | ) 6966 | ) 6967 | (block $label$11 6968 | (br_if $label$11 6969 | (i32.ge_u 6970 | (get_local $1) 6971 | (get_local $2) 6972 | ) 6973 | ) 6974 | (loop $label$12 6975 | (br_if $label$11 6976 | (i32.ge_u 6977 | (tee_local $10 6978 | (i32.add 6979 | (get_local $13) 6980 | (get_local $1) 6981 | ) 6982 | ) 6983 | (get_local $7) 6984 | ) 6985 | ) 6986 | (br_if $label$11 6987 | (i32.lt_s 6988 | (tee_local $10 6989 | (i32.load 6990 | (get_local $10) 6991 | ) 6992 | ) 6993 | (i32.const 0) 6994 | ) 6995 | ) 6996 | (br_if $label$12 6997 | (i32.lt_u 6998 | (tee_local $1 6999 | (i32.add 7000 | (i32.add 7001 | (get_local $1) 7002 | (i32.and 7003 | (get_local $10) 7004 | (i32.const 2147483647) 7005 | ) 7006 | ) 7007 | (i32.const 4) 7008 | ) 7009 | ) 7010 | (get_local $2) 7011 | ) 7012 | ) 7013 | ) 7014 | ) 7015 | (i32.store 7016 | (get_local $8) 7017 | (i32.or 7018 | (select 7019 | (get_local $1) 7020 | (get_local $2) 7021 | (i32.lt_u 7022 | (get_local $1) 7023 | (get_local $2) 7024 | ) 7025 | ) 7026 | (i32.and 7027 | (get_local $9) 7028 | (i32.const -2147483648) 7029 | ) 7030 | ) 7031 | ) 7032 | (block $label$13 7033 | (br_if $label$13 7034 | (i32.le_u 7035 | (get_local $1) 7036 | (get_local $2) 7037 | ) 7038 | ) 7039 | (i32.store 7040 | (i32.add 7041 | (get_local $13) 7042 | (get_local $2) 7043 | ) 7044 | (i32.and 7045 | (i32.add 7046 | (get_local $4) 7047 | (get_local $1) 7048 | ) 7049 | (i32.const 2147483647) 7050 | ) 7051 | ) 7052 | ) 7053 | (br_if $label$2 7054 | (i32.ge_u 7055 | (get_local $1) 7056 | (get_local $2) 7057 | ) 7058 | ) 7059 | ) 7060 | (br_if $label$9 7061 | (i32.lt_u 7062 | (tee_local $13 7063 | (i32.add 7064 | (i32.add 7065 | (get_local $13) 7066 | (get_local $1) 7067 | ) 7068 | (i32.const 4) 7069 | ) 7070 | ) 7071 | (get_local $7) 7072 | ) 7073 | ) 7074 | ) 7075 | (set_local $1 7076 | (i32.const 0) 7077 | ) 7078 | (i32.store 7079 | (get_local $11) 7080 | (tee_local $13 7081 | (select 7082 | (i32.const 0) 7083 | (tee_local $13 7084 | (i32.add 7085 | (i32.load 7086 | (get_local $11) 7087 | ) 7088 | (i32.const 1) 7089 | ) 7090 | ) 7091 | (i32.eq 7092 | (get_local $13) 7093 | (i32.load 7094 | (get_local $12) 7095 | ) 7096 | ) 7097 | ) 7098 | ) 7099 | ) 7100 | (br_if $label$8 7101 | (i32.ne 7102 | (get_local $13) 7103 | (get_local $3) 7104 | ) 7105 | ) 7106 | ) 7107 | ) 7108 | (return 7109 | (get_local $1) 7110 | ) 7111 | ) 7112 | (i32.store 7113 | (get_local $8) 7114 | (i32.or 7115 | (i32.load 7116 | (get_local $8) 7117 | ) 7118 | (i32.const -2147483648) 7119 | ) 7120 | ) 7121 | (return 7122 | (get_local $13) 7123 | ) 7124 | ) 7125 | (i32.const 0) 7126 | ) 7127 | (func $_ZN5eosio14memory_manager16next_active_heapEv (param $0 i32) (result i32) 7128 | (local $1 i32) 7129 | (local $2 i32) 7130 | (local $3 i32) 7131 | (local $4 i32) 7132 | (local $5 i32) 7133 | (local $6 i32) 7134 | (local $7 i32) 7135 | (local $8 i32) 7136 | (set_local $1 7137 | (i32.load offset=8388 7138 | (get_local $0) 7139 | ) 7140 | ) 7141 | (block $label$0 7142 | (block $label$1 7143 | (br_if $label$1 7144 | (i32.eqz 7145 | (i32.load8_u offset=9606 7146 | (i32.const 0) 7147 | ) 7148 | ) 7149 | ) 7150 | (set_local $7 7151 | (i32.load offset=9608 7152 | (i32.const 0) 7153 | ) 7154 | ) 7155 | (br $label$0) 7156 | ) 7157 | (set_local $7 7158 | (current_memory) 7159 | ) 7160 | (i32.store8 offset=9606 7161 | (i32.const 0) 7162 | (i32.const 1) 7163 | ) 7164 | (i32.store offset=9608 7165 | (i32.const 0) 7166 | (tee_local $7 7167 | (i32.shl 7168 | (get_local $7) 7169 | (i32.const 16) 7170 | ) 7171 | ) 7172 | ) 7173 | ) 7174 | (set_local $3 7175 | (get_local $7) 7176 | ) 7177 | (block $label$2 7178 | (block $label$3 7179 | (block $label$4 7180 | (block $label$5 7181 | (br_if $label$5 7182 | (i32.le_u 7183 | (tee_local $2 7184 | (i32.shr_u 7185 | (i32.add 7186 | (get_local $7) 7187 | (i32.const 65535) 7188 | ) 7189 | (i32.const 16) 7190 | ) 7191 | ) 7192 | (tee_local $8 7193 | (current_memory) 7194 | ) 7195 | ) 7196 | ) 7197 | (drop 7198 | (grow_memory 7199 | (i32.sub 7200 | (get_local $2) 7201 | (get_local $8) 7202 | ) 7203 | ) 7204 | ) 7205 | (set_local $8 7206 | (i32.const 0) 7207 | ) 7208 | (br_if $label$4 7209 | (i32.ne 7210 | (get_local $2) 7211 | (current_memory) 7212 | ) 7213 | ) 7214 | (set_local $3 7215 | (i32.load offset=9608 7216 | (i32.const 0) 7217 | ) 7218 | ) 7219 | ) 7220 | (set_local $8 7221 | (i32.const 0) 7222 | ) 7223 | (i32.store offset=9608 7224 | (i32.const 0) 7225 | (get_local $3) 7226 | ) 7227 | (br_if $label$4 7228 | (i32.lt_s 7229 | (get_local $7) 7230 | (i32.const 0) 7231 | ) 7232 | ) 7233 | (set_local $2 7234 | (i32.add 7235 | (get_local $0) 7236 | (i32.mul 7237 | (get_local $1) 7238 | (i32.const 12) 7239 | ) 7240 | ) 7241 | ) 7242 | (set_local $7 7243 | (i32.sub 7244 | (i32.sub 7245 | (i32.add 7246 | (get_local $7) 7247 | (select 7248 | (i32.const 65536) 7249 | (i32.const 131072) 7250 | (tee_local $6 7251 | (i32.lt_u 7252 | (tee_local $8 7253 | (i32.and 7254 | (get_local $7) 7255 | (i32.const 65535) 7256 | ) 7257 | ) 7258 | (i32.const 64513) 7259 | ) 7260 | ) 7261 | ) 7262 | ) 7263 | (select 7264 | (get_local $8) 7265 | (i32.and 7266 | (get_local $7) 7267 | (i32.const 131071) 7268 | ) 7269 | (get_local $6) 7270 | ) 7271 | ) 7272 | (get_local $7) 7273 | ) 7274 | ) 7275 | (block $label$6 7276 | (br_if $label$6 7277 | (i32.load8_u offset=9606 7278 | (i32.const 0) 7279 | ) 7280 | ) 7281 | (set_local $3 7282 | (current_memory) 7283 | ) 7284 | (i32.store8 offset=9606 7285 | (i32.const 0) 7286 | (i32.const 1) 7287 | ) 7288 | (i32.store offset=9608 7289 | (i32.const 0) 7290 | (tee_local $3 7291 | (i32.shl 7292 | (get_local $3) 7293 | (i32.const 16) 7294 | ) 7295 | ) 7296 | ) 7297 | ) 7298 | (set_local $2 7299 | (i32.add 7300 | (get_local $2) 7301 | (i32.const 8192) 7302 | ) 7303 | ) 7304 | (br_if $label$3 7305 | (i32.lt_s 7306 | (get_local $7) 7307 | (i32.const 0) 7308 | ) 7309 | ) 7310 | (set_local $6 7311 | (get_local $3) 7312 | ) 7313 | (block $label$7 7314 | (br_if $label$7 7315 | (i32.le_u 7316 | (tee_local $8 7317 | (i32.shr_u 7318 | (i32.add 7319 | (i32.add 7320 | (tee_local $5 7321 | (i32.and 7322 | (i32.add 7323 | (get_local $7) 7324 | (i32.const 7) 7325 | ) 7326 | (i32.const -8) 7327 | ) 7328 | ) 7329 | (get_local $3) 7330 | ) 7331 | (i32.const 65535) 7332 | ) 7333 | (i32.const 16) 7334 | ) 7335 | ) 7336 | (tee_local $4 7337 | (current_memory) 7338 | ) 7339 | ) 7340 | ) 7341 | (drop 7342 | (grow_memory 7343 | (i32.sub 7344 | (get_local $8) 7345 | (get_local $4) 7346 | ) 7347 | ) 7348 | ) 7349 | (br_if $label$3 7350 | (i32.ne 7351 | (get_local $8) 7352 | (current_memory) 7353 | ) 7354 | ) 7355 | (set_local $6 7356 | (i32.load offset=9608 7357 | (i32.const 0) 7358 | ) 7359 | ) 7360 | ) 7361 | (i32.store offset=9608 7362 | (i32.const 0) 7363 | (i32.add 7364 | (get_local $6) 7365 | (get_local $5) 7366 | ) 7367 | ) 7368 | (br_if $label$3 7369 | (i32.eq 7370 | (get_local $3) 7371 | (i32.const -1) 7372 | ) 7373 | ) 7374 | (br_if $label$2 7375 | (i32.eq 7376 | (i32.add 7377 | (tee_local $6 7378 | (i32.load 7379 | (i32.add 7380 | (tee_local $1 7381 | (i32.add 7382 | (get_local $0) 7383 | (i32.mul 7384 | (get_local $1) 7385 | (i32.const 12) 7386 | ) 7387 | ) 7388 | ) 7389 | (i32.const 8196) 7390 | ) 7391 | ) 7392 | ) 7393 | (tee_local $8 7394 | (i32.load 7395 | (get_local $2) 7396 | ) 7397 | ) 7398 | ) 7399 | (get_local $3) 7400 | ) 7401 | ) 7402 | (block $label$8 7403 | (br_if $label$8 7404 | (i32.eq 7405 | (get_local $8) 7406 | (tee_local $1 7407 | (i32.load 7408 | (tee_local $5 7409 | (i32.add 7410 | (get_local $1) 7411 | (i32.const 8200) 7412 | ) 7413 | ) 7414 | ) 7415 | ) 7416 | ) 7417 | ) 7418 | (i32.store 7419 | (tee_local $6 7420 | (i32.add 7421 | (get_local $6) 7422 | (get_local $1) 7423 | ) 7424 | ) 7425 | (i32.or 7426 | (i32.and 7427 | (i32.load 7428 | (get_local $6) 7429 | ) 7430 | (i32.const -2147483648) 7431 | ) 7432 | (i32.add 7433 | (i32.sub 7434 | (i32.const -4) 7435 | (get_local $1) 7436 | ) 7437 | (get_local $8) 7438 | ) 7439 | ) 7440 | ) 7441 | (i32.store 7442 | (get_local $5) 7443 | (i32.load 7444 | (get_local $2) 7445 | ) 7446 | ) 7447 | (i32.store 7448 | (get_local $6) 7449 | (i32.and 7450 | (i32.load 7451 | (get_local $6) 7452 | ) 7453 | (i32.const 2147483647) 7454 | ) 7455 | ) 7456 | ) 7457 | (i32.store 7458 | (tee_local $2 7459 | (i32.add 7460 | (get_local $0) 7461 | (i32.const 8388) 7462 | ) 7463 | ) 7464 | (tee_local $2 7465 | (i32.add 7466 | (i32.load 7467 | (get_local $2) 7468 | ) 7469 | (i32.const 1) 7470 | ) 7471 | ) 7472 | ) 7473 | (i32.store 7474 | (i32.add 7475 | (tee_local $0 7476 | (i32.add 7477 | (get_local $0) 7478 | (i32.mul 7479 | (get_local $2) 7480 | (i32.const 12) 7481 | ) 7482 | ) 7483 | ) 7484 | (i32.const 8196) 7485 | ) 7486 | (get_local $3) 7487 | ) 7488 | (i32.store 7489 | (tee_local $8 7490 | (i32.add 7491 | (get_local $0) 7492 | (i32.const 8192) 7493 | ) 7494 | ) 7495 | (get_local $7) 7496 | ) 7497 | ) 7498 | (return 7499 | (get_local $8) 7500 | ) 7501 | ) 7502 | (block $label$9 7503 | (br_if $label$9 7504 | (i32.eq 7505 | (tee_local $8 7506 | (i32.load 7507 | (get_local $2) 7508 | ) 7509 | ) 7510 | (tee_local $7 7511 | (i32.load 7512 | (tee_local $1 7513 | (i32.add 7514 | (tee_local $3 7515 | (i32.add 7516 | (get_local $0) 7517 | (i32.mul 7518 | (get_local $1) 7519 | (i32.const 12) 7520 | ) 7521 | ) 7522 | ) 7523 | (i32.const 8200) 7524 | ) 7525 | ) 7526 | ) 7527 | ) 7528 | ) 7529 | ) 7530 | (i32.store 7531 | (tee_local $3 7532 | (i32.add 7533 | (i32.load 7534 | (i32.add 7535 | (get_local $3) 7536 | (i32.const 8196) 7537 | ) 7538 | ) 7539 | (get_local $7) 7540 | ) 7541 | ) 7542 | (i32.or 7543 | (i32.and 7544 | (i32.load 7545 | (get_local $3) 7546 | ) 7547 | (i32.const -2147483648) 7548 | ) 7549 | (i32.add 7550 | (i32.sub 7551 | (i32.const -4) 7552 | (get_local $7) 7553 | ) 7554 | (get_local $8) 7555 | ) 7556 | ) 7557 | ) 7558 | (i32.store 7559 | (get_local $1) 7560 | (i32.load 7561 | (get_local $2) 7562 | ) 7563 | ) 7564 | (i32.store 7565 | (get_local $3) 7566 | (i32.and 7567 | (i32.load 7568 | (get_local $3) 7569 | ) 7570 | (i32.const 2147483647) 7571 | ) 7572 | ) 7573 | ) 7574 | (i32.store offset=8384 7575 | (get_local $0) 7576 | (tee_local $3 7577 | (i32.add 7578 | (i32.load 7579 | (tee_local $7 7580 | (i32.add 7581 | (get_local $0) 7582 | (i32.const 8388) 7583 | ) 7584 | ) 7585 | ) 7586 | (i32.const 1) 7587 | ) 7588 | ) 7589 | ) 7590 | (i32.store 7591 | (get_local $7) 7592 | (get_local $3) 7593 | ) 7594 | (return 7595 | (i32.const 0) 7596 | ) 7597 | ) 7598 | (i32.store 7599 | (get_local $2) 7600 | (i32.add 7601 | (get_local $8) 7602 | (get_local $7) 7603 | ) 7604 | ) 7605 | (get_local $2) 7606 | ) 7607 | (func $free (param $0 i32) 7608 | (local $1 i32) 7609 | (local $2 i32) 7610 | (local $3 i32) 7611 | (block $label$0 7612 | (block $label$1 7613 | (br_if $label$1 7614 | (i32.eqz 7615 | (get_local $0) 7616 | ) 7617 | ) 7618 | (br_if $label$1 7619 | (i32.lt_s 7620 | (tee_local $2 7621 | (i32.load offset=9504 7622 | (i32.const 0) 7623 | ) 7624 | ) 7625 | (i32.const 1) 7626 | ) 7627 | ) 7628 | (set_local $3 7629 | (i32.const 9312) 7630 | ) 7631 | (set_local $1 7632 | (i32.add 7633 | (i32.mul 7634 | (get_local $2) 7635 | (i32.const 12) 7636 | ) 7637 | (i32.const 9312) 7638 | ) 7639 | ) 7640 | (loop $label$2 7641 | (br_if $label$1 7642 | (i32.eqz 7643 | (tee_local $2 7644 | (i32.load 7645 | (i32.add 7646 | (get_local $3) 7647 | (i32.const 4) 7648 | ) 7649 | ) 7650 | ) 7651 | ) 7652 | ) 7653 | (block $label$3 7654 | (br_if $label$3 7655 | (i32.gt_u 7656 | (i32.add 7657 | (get_local $2) 7658 | (i32.const 4) 7659 | ) 7660 | (get_local $0) 7661 | ) 7662 | ) 7663 | (br_if $label$0 7664 | (i32.gt_u 7665 | (i32.add 7666 | (get_local $2) 7667 | (i32.load 7668 | (get_local $3) 7669 | ) 7670 | ) 7671 | (get_local $0) 7672 | ) 7673 | ) 7674 | ) 7675 | (br_if $label$2 7676 | (i32.lt_u 7677 | (tee_local $3 7678 | (i32.add 7679 | (get_local $3) 7680 | (i32.const 12) 7681 | ) 7682 | ) 7683 | (get_local $1) 7684 | ) 7685 | ) 7686 | ) 7687 | ) 7688 | (return) 7689 | ) 7690 | (i32.store 7691 | (tee_local $3 7692 | (i32.add 7693 | (get_local $0) 7694 | (i32.const -4) 7695 | ) 7696 | ) 7697 | (i32.and 7698 | (i32.load 7699 | (get_local $3) 7700 | ) 7701 | (i32.const 2147483647) 7702 | ) 7703 | ) 7704 | ) 7705 | (func $_Znwj (param $0 i32) (result i32) 7706 | (local $1 i32) 7707 | (local $2 i32) 7708 | (block $label$0 7709 | (br_if $label$0 7710 | (tee_local $0 7711 | (call $malloc 7712 | (tee_local $1 7713 | (select 7714 | (get_local $0) 7715 | (i32.const 1) 7716 | (get_local $0) 7717 | ) 7718 | ) 7719 | ) 7720 | ) 7721 | ) 7722 | (loop $label$1 7723 | (set_local $0 7724 | (i32.const 0) 7725 | ) 7726 | (br_if $label$0 7727 | (i32.eqz 7728 | (tee_local $2 7729 | (i32.load offset=9612 7730 | (i32.const 0) 7731 | ) 7732 | ) 7733 | ) 7734 | ) 7735 | (call_indirect (type $FUNCSIG$v) 7736 | (get_local $2) 7737 | ) 7738 | (br_if $label$1 7739 | (i32.eqz 7740 | (tee_local $0 7741 | (call $malloc 7742 | (get_local $1) 7743 | ) 7744 | ) 7745 | ) 7746 | ) 7747 | ) 7748 | ) 7749 | (get_local $0) 7750 | ) 7751 | (func $_ZdlPv (param $0 i32) 7752 | (block $label$0 7753 | (br_if $label$0 7754 | (i32.eqz 7755 | (get_local $0) 7756 | ) 7757 | ) 7758 | (call $free 7759 | (get_local $0) 7760 | ) 7761 | ) 7762 | ) 7763 | (func $_ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv (param $0 i32) 7764 | (call $abort) 7765 | (unreachable) 7766 | ) 7767 | (func $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_ (param $0 i32) (param $1 i32) (result i32) 7768 | (local $2 i32) 7769 | (local $3 i32) 7770 | (local $4 i32) 7771 | (local $5 i32) 7772 | (local $6 i32) 7773 | (block $label$0 7774 | (block $label$1 7775 | (block $label$2 7776 | (block $label$3 7777 | (br_if $label$3 7778 | (i32.eq 7779 | (get_local $0) 7780 | (get_local $1) 7781 | ) 7782 | ) 7783 | (set_local $2 7784 | (select 7785 | (i32.load offset=4 7786 | (get_local $1) 7787 | ) 7788 | (i32.shr_u 7789 | (tee_local $2 7790 | (i32.load8_u 7791 | (get_local $1) 7792 | ) 7793 | ) 7794 | (i32.const 1) 7795 | ) 7796 | (tee_local $4 7797 | (i32.and 7798 | (get_local $2) 7799 | (i32.const 1) 7800 | ) 7801 | ) 7802 | ) 7803 | ) 7804 | (set_local $5 7805 | (i32.add 7806 | (get_local $1) 7807 | (i32.const 1) 7808 | ) 7809 | ) 7810 | (set_local $6 7811 | (i32.load offset=8 7812 | (get_local $1) 7813 | ) 7814 | ) 7815 | (set_local $1 7816 | (i32.const 10) 7817 | ) 7818 | (block $label$4 7819 | (br_if $label$4 7820 | (i32.eqz 7821 | (i32.and 7822 | (tee_local $3 7823 | (i32.load8_u 7824 | (get_local $0) 7825 | ) 7826 | ) 7827 | (i32.const 1) 7828 | ) 7829 | ) 7830 | ) 7831 | (set_local $1 7832 | (i32.add 7833 | (i32.and 7834 | (tee_local $3 7835 | (i32.load 7836 | (get_local $0) 7837 | ) 7838 | ) 7839 | (i32.const -2) 7840 | ) 7841 | (i32.const -1) 7842 | ) 7843 | ) 7844 | ) 7845 | (set_local $5 7846 | (select 7847 | (get_local $6) 7848 | (get_local $5) 7849 | (get_local $4) 7850 | ) 7851 | ) 7852 | (set_local $4 7853 | (i32.and 7854 | (get_local $3) 7855 | (i32.const 1) 7856 | ) 7857 | ) 7858 | (block $label$5 7859 | (block $label$6 7860 | (block $label$7 7861 | (br_if $label$7 7862 | (i32.le_u 7863 | (get_local $2) 7864 | (get_local $1) 7865 | ) 7866 | ) 7867 | (br_if $label$6 7868 | (get_local $4) 7869 | ) 7870 | (set_local $3 7871 | (i32.shr_u 7872 | (i32.and 7873 | (get_local $3) 7874 | (i32.const 254) 7875 | ) 7876 | (i32.const 1) 7877 | ) 7878 | ) 7879 | (br $label$5) 7880 | ) 7881 | (br_if $label$2 7882 | (get_local $4) 7883 | ) 7884 | (set_local $1 7885 | (i32.add 7886 | (get_local $0) 7887 | (i32.const 1) 7888 | ) 7889 | ) 7890 | (br_if $label$1 7891 | (get_local $2) 7892 | ) 7893 | (br $label$0) 7894 | ) 7895 | (set_local $3 7896 | (i32.load offset=4 7897 | (get_local $0) 7898 | ) 7899 | ) 7900 | ) 7901 | (call $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEjjjjjjPKc 7902 | (get_local $0) 7903 | (get_local $1) 7904 | (i32.sub 7905 | (get_local $2) 7906 | (get_local $1) 7907 | ) 7908 | (get_local $3) 7909 | (i32.const 0) 7910 | (get_local $3) 7911 | (get_local $2) 7912 | (get_local $5) 7913 | ) 7914 | ) 7915 | (return 7916 | (get_local $0) 7917 | ) 7918 | ) 7919 | (set_local $1 7920 | (i32.load offset=8 7921 | (get_local $0) 7922 | ) 7923 | ) 7924 | (br_if $label$0 7925 | (i32.eqz 7926 | (get_local $2) 7927 | ) 7928 | ) 7929 | ) 7930 | (drop 7931 | (call $memmove 7932 | (get_local $1) 7933 | (get_local $5) 7934 | (get_local $2) 7935 | ) 7936 | ) 7937 | ) 7938 | (i32.store8 7939 | (i32.add 7940 | (get_local $1) 7941 | (get_local $2) 7942 | ) 7943 | (i32.const 0) 7944 | ) 7945 | (block $label$8 7946 | (br_if $label$8 7947 | (i32.and 7948 | (i32.load8_u 7949 | (get_local $0) 7950 | ) 7951 | (i32.const 1) 7952 | ) 7953 | ) 7954 | (i32.store8 7955 | (get_local $0) 7956 | (i32.shl 7957 | (get_local $2) 7958 | (i32.const 1) 7959 | ) 7960 | ) 7961 | (return 7962 | (get_local $0) 7963 | ) 7964 | ) 7965 | (i32.store offset=4 7966 | (get_local $0) 7967 | (get_local $2) 7968 | ) 7969 | (get_local $0) 7970 | ) 7971 | (func $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE21__grow_by_and_replaceEjjjjjjPKc (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) 7972 | (local $8 i32) 7973 | (local $9 i32) 7974 | (local $10 i32) 7975 | (block $label$0 7976 | (br_if $label$0 7977 | (i32.lt_u 7978 | (i32.sub 7979 | (i32.const -18) 7980 | (get_local $1) 7981 | ) 7982 | (get_local $2) 7983 | ) 7984 | ) 7985 | (block $label$1 7986 | (block $label$2 7987 | (br_if $label$2 7988 | (i32.and 7989 | (i32.load8_u 7990 | (get_local $0) 7991 | ) 7992 | (i32.const 1) 7993 | ) 7994 | ) 7995 | (set_local $9 7996 | (i32.add 7997 | (get_local $0) 7998 | (i32.const 1) 7999 | ) 8000 | ) 8001 | (br $label$1) 8002 | ) 8003 | (set_local $9 8004 | (i32.load offset=8 8005 | (get_local $0) 8006 | ) 8007 | ) 8008 | ) 8009 | (set_local $10 8010 | (i32.const -17) 8011 | ) 8012 | (block $label$3 8013 | (br_if $label$3 8014 | (i32.gt_u 8015 | (get_local $1) 8016 | (i32.const 2147483622) 8017 | ) 8018 | ) 8019 | (set_local $10 8020 | (i32.const 11) 8021 | ) 8022 | (br_if $label$3 8023 | (i32.lt_u 8024 | (tee_local $2 8025 | (select 8026 | (tee_local $8 8027 | (i32.shl 8028 | (get_local $1) 8029 | (i32.const 1) 8030 | ) 8031 | ) 8032 | (tee_local $2 8033 | (i32.add 8034 | (get_local $2) 8035 | (get_local $1) 8036 | ) 8037 | ) 8038 | (i32.lt_u 8039 | (get_local $2) 8040 | (get_local $8) 8041 | ) 8042 | ) 8043 | ) 8044 | (i32.const 11) 8045 | ) 8046 | ) 8047 | (set_local $10 8048 | (i32.and 8049 | (i32.add 8050 | (get_local $2) 8051 | (i32.const 16) 8052 | ) 8053 | (i32.const -16) 8054 | ) 8055 | ) 8056 | ) 8057 | (set_local $2 8058 | (call $_Znwj 8059 | (get_local $10) 8060 | ) 8061 | ) 8062 | (block $label$4 8063 | (br_if $label$4 8064 | (i32.eqz 8065 | (get_local $4) 8066 | ) 8067 | ) 8068 | (drop 8069 | (call $memcpy 8070 | (get_local $2) 8071 | (get_local $9) 8072 | (get_local $4) 8073 | ) 8074 | ) 8075 | ) 8076 | (block $label$5 8077 | (br_if $label$5 8078 | (i32.eqz 8079 | (get_local $6) 8080 | ) 8081 | ) 8082 | (drop 8083 | (call $memcpy 8084 | (i32.add 8085 | (get_local $2) 8086 | (get_local $4) 8087 | ) 8088 | (get_local $7) 8089 | (get_local $6) 8090 | ) 8091 | ) 8092 | ) 8093 | (block $label$6 8094 | (br_if $label$6 8095 | (i32.eqz 8096 | (tee_local $7 8097 | (i32.sub 8098 | (tee_local $3 8099 | (i32.sub 8100 | (get_local $3) 8101 | (get_local $5) 8102 | ) 8103 | ) 8104 | (get_local $4) 8105 | ) 8106 | ) 8107 | ) 8108 | ) 8109 | (drop 8110 | (call $memcpy 8111 | (i32.add 8112 | (i32.add 8113 | (get_local $2) 8114 | (get_local $4) 8115 | ) 8116 | (get_local $6) 8117 | ) 8118 | (i32.add 8119 | (i32.add 8120 | (get_local $9) 8121 | (get_local $4) 8122 | ) 8123 | (get_local $5) 8124 | ) 8125 | (get_local $7) 8126 | ) 8127 | ) 8128 | ) 8129 | (block $label$7 8130 | (br_if $label$7 8131 | (i32.eq 8132 | (get_local $1) 8133 | (i32.const 10) 8134 | ) 8135 | ) 8136 | (call $_ZdlPv 8137 | (get_local $9) 8138 | ) 8139 | ) 8140 | (i32.store offset=8 8141 | (get_local $0) 8142 | (get_local $2) 8143 | ) 8144 | (i32.store 8145 | (get_local $0) 8146 | (i32.or 8147 | (get_local $10) 8148 | (i32.const 1) 8149 | ) 8150 | ) 8151 | (i32.store offset=4 8152 | (get_local $0) 8153 | (tee_local $4 8154 | (i32.add 8155 | (get_local $3) 8156 | (get_local $6) 8157 | ) 8158 | ) 8159 | ) 8160 | (i32.store8 8161 | (i32.add 8162 | (get_local $2) 8163 | (get_local $4) 8164 | ) 8165 | (i32.const 0) 8166 | ) 8167 | (return) 8168 | ) 8169 | (call $abort) 8170 | (unreachable) 8171 | ) 8172 | (func $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj (param $0 i32) (param $1 i32) 8173 | (local $2 i32) 8174 | (local $3 i32) 8175 | (local $4 i32) 8176 | (local $5 i32) 8177 | (local $6 i32) 8178 | (local $7 i32) 8179 | (block $label$0 8180 | (br_if $label$0 8181 | (i32.ge_u 8182 | (get_local $1) 8183 | (i32.const -16) 8184 | ) 8185 | ) 8186 | (set_local $2 8187 | (i32.const 10) 8188 | ) 8189 | (block $label$1 8190 | (br_if $label$1 8191 | (i32.eqz 8192 | (i32.and 8193 | (tee_local $5 8194 | (i32.load8_u 8195 | (get_local $0) 8196 | ) 8197 | ) 8198 | (i32.const 1) 8199 | ) 8200 | ) 8201 | ) 8202 | (set_local $2 8203 | (i32.add 8204 | (i32.and 8205 | (tee_local $5 8206 | (i32.load 8207 | (get_local $0) 8208 | ) 8209 | ) 8210 | (i32.const -2) 8211 | ) 8212 | (i32.const -1) 8213 | ) 8214 | ) 8215 | ) 8216 | (block $label$2 8217 | (block $label$3 8218 | (br_if $label$3 8219 | (i32.and 8220 | (get_local $5) 8221 | (i32.const 1) 8222 | ) 8223 | ) 8224 | (set_local $3 8225 | (i32.shr_u 8226 | (i32.and 8227 | (get_local $5) 8228 | (i32.const 254) 8229 | ) 8230 | (i32.const 1) 8231 | ) 8232 | ) 8233 | (br $label$2) 8234 | ) 8235 | (set_local $3 8236 | (i32.load offset=4 8237 | (get_local $0) 8238 | ) 8239 | ) 8240 | ) 8241 | (set_local $4 8242 | (i32.const 10) 8243 | ) 8244 | (block $label$4 8245 | (br_if $label$4 8246 | (i32.lt_u 8247 | (tee_local $1 8248 | (select 8249 | (get_local $3) 8250 | (get_local $1) 8251 | (i32.gt_u 8252 | (get_local $3) 8253 | (get_local $1) 8254 | ) 8255 | ) 8256 | ) 8257 | (i32.const 11) 8258 | ) 8259 | ) 8260 | (set_local $4 8261 | (i32.add 8262 | (i32.and 8263 | (i32.add 8264 | (get_local $1) 8265 | (i32.const 16) 8266 | ) 8267 | (i32.const -16) 8268 | ) 8269 | (i32.const -1) 8270 | ) 8271 | ) 8272 | ) 8273 | (block $label$5 8274 | (br_if $label$5 8275 | (i32.eq 8276 | (get_local $4) 8277 | (get_local $2) 8278 | ) 8279 | ) 8280 | (block $label$6 8281 | (block $label$7 8282 | (br_if $label$7 8283 | (i32.ne 8284 | (get_local $4) 8285 | (i32.const 10) 8286 | ) 8287 | ) 8288 | (set_local $6 8289 | (i32.const 1) 8290 | ) 8291 | (set_local $1 8292 | (i32.add 8293 | (get_local $0) 8294 | (i32.const 1) 8295 | ) 8296 | ) 8297 | (set_local $2 8298 | (i32.load offset=8 8299 | (get_local $0) 8300 | ) 8301 | ) 8302 | (set_local $7 8303 | (i32.const 0) 8304 | ) 8305 | (br $label$6) 8306 | ) 8307 | (set_local $1 8308 | (call $_Znwj 8309 | (i32.add 8310 | (get_local $4) 8311 | (i32.const 1) 8312 | ) 8313 | ) 8314 | ) 8315 | (block $label$8 8316 | (br_if $label$8 8317 | (i32.gt_u 8318 | (get_local $4) 8319 | (get_local $2) 8320 | ) 8321 | ) 8322 | (br_if $label$5 8323 | (i32.eqz 8324 | (get_local $1) 8325 | ) 8326 | ) 8327 | ) 8328 | (block $label$9 8329 | (br_if $label$9 8330 | (i32.and 8331 | (tee_local $5 8332 | (i32.load8_u 8333 | (get_local $0) 8334 | ) 8335 | ) 8336 | (i32.const 1) 8337 | ) 8338 | ) 8339 | (set_local $7 8340 | (i32.const 1) 8341 | ) 8342 | (set_local $2 8343 | (i32.add 8344 | (get_local $0) 8345 | (i32.const 1) 8346 | ) 8347 | ) 8348 | (set_local $6 8349 | (i32.const 0) 8350 | ) 8351 | (br $label$6) 8352 | ) 8353 | (set_local $2 8354 | (i32.load offset=8 8355 | (get_local $0) 8356 | ) 8357 | ) 8358 | (set_local $6 8359 | (i32.const 1) 8360 | ) 8361 | (set_local $7 8362 | (i32.const 1) 8363 | ) 8364 | ) 8365 | (block $label$10 8366 | (block $label$11 8367 | (br_if $label$11 8368 | (i32.and 8369 | (get_local $5) 8370 | (i32.const 1) 8371 | ) 8372 | ) 8373 | (set_local $5 8374 | (i32.shr_u 8375 | (i32.and 8376 | (get_local $5) 8377 | (i32.const 254) 8378 | ) 8379 | (i32.const 1) 8380 | ) 8381 | ) 8382 | (br $label$10) 8383 | ) 8384 | (set_local $5 8385 | (i32.load offset=4 8386 | (get_local $0) 8387 | ) 8388 | ) 8389 | ) 8390 | (block $label$12 8391 | (br_if $label$12 8392 | (i32.eqz 8393 | (tee_local $5 8394 | (i32.add 8395 | (get_local $5) 8396 | (i32.const 1) 8397 | ) 8398 | ) 8399 | ) 8400 | ) 8401 | (drop 8402 | (call $memcpy 8403 | (get_local $1) 8404 | (get_local $2) 8405 | (get_local $5) 8406 | ) 8407 | ) 8408 | ) 8409 | (block $label$13 8410 | (br_if $label$13 8411 | (i32.eqz 8412 | (get_local $6) 8413 | ) 8414 | ) 8415 | (call $_ZdlPv 8416 | (get_local $2) 8417 | ) 8418 | ) 8419 | (block $label$14 8420 | (br_if $label$14 8421 | (i32.eqz 8422 | (get_local $7) 8423 | ) 8424 | ) 8425 | (i32.store offset=4 8426 | (get_local $0) 8427 | (get_local $3) 8428 | ) 8429 | (i32.store offset=8 8430 | (get_local $0) 8431 | (get_local $1) 8432 | ) 8433 | (i32.store 8434 | (get_local $0) 8435 | (i32.or 8436 | (i32.add 8437 | (get_local $4) 8438 | (i32.const 1) 8439 | ) 8440 | (i32.const 1) 8441 | ) 8442 | ) 8443 | (return) 8444 | ) 8445 | (i32.store8 8446 | (get_local $0) 8447 | (i32.shl 8448 | (get_local $3) 8449 | (i32.const 1) 8450 | ) 8451 | ) 8452 | ) 8453 | (return) 8454 | ) 8455 | (call $abort) 8456 | (unreachable) 8457 | ) 8458 | (func $_ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv (param $0 i32) 8459 | (call $abort) 8460 | (unreachable) 8461 | ) 8462 | (func $_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2ERKS5_ (param $0 i32) (param $1 i32) (result i32) 8463 | (local $2 i32) 8464 | (local $3 i32) 8465 | (local $4 i32) 8466 | (i64.store align=4 8467 | (get_local $0) 8468 | (i64.const 0) 8469 | ) 8470 | (i32.store 8471 | (tee_local $3 8472 | (i32.add 8473 | (get_local $0) 8474 | (i32.const 8) 8475 | ) 8476 | ) 8477 | (i32.const 0) 8478 | ) 8479 | (block $label$0 8480 | (br_if $label$0 8481 | (i32.and 8482 | (i32.load8_u 8483 | (get_local $1) 8484 | ) 8485 | (i32.const 1) 8486 | ) 8487 | ) 8488 | (i64.store align=4 8489 | (get_local $0) 8490 | (i64.load align=4 8491 | (get_local $1) 8492 | ) 8493 | ) 8494 | (i32.store 8495 | (get_local $3) 8496 | (i32.load 8497 | (i32.add 8498 | (get_local $1) 8499 | (i32.const 8) 8500 | ) 8501 | ) 8502 | ) 8503 | (return 8504 | (get_local $0) 8505 | ) 8506 | ) 8507 | (block $label$1 8508 | (br_if $label$1 8509 | (i32.ge_u 8510 | (tee_local $3 8511 | (i32.load offset=4 8512 | (get_local $1) 8513 | ) 8514 | ) 8515 | (i32.const -16) 8516 | ) 8517 | ) 8518 | (set_local $2 8519 | (i32.load offset=8 8520 | (get_local $1) 8521 | ) 8522 | ) 8523 | (block $label$2 8524 | (block $label$3 8525 | (block $label$4 8526 | (br_if $label$4 8527 | (i32.ge_u 8528 | (get_local $3) 8529 | (i32.const 11) 8530 | ) 8531 | ) 8532 | (i32.store8 8533 | (get_local $0) 8534 | (i32.shl 8535 | (get_local $3) 8536 | (i32.const 1) 8537 | ) 8538 | ) 8539 | (set_local $1 8540 | (i32.add 8541 | (get_local $0) 8542 | (i32.const 1) 8543 | ) 8544 | ) 8545 | (br_if $label$3 8546 | (get_local $3) 8547 | ) 8548 | (br $label$2) 8549 | ) 8550 | (set_local $1 8551 | (call $_Znwj 8552 | (tee_local $4 8553 | (i32.and 8554 | (i32.add 8555 | (get_local $3) 8556 | (i32.const 16) 8557 | ) 8558 | (i32.const -16) 8559 | ) 8560 | ) 8561 | ) 8562 | ) 8563 | (i32.store 8564 | (get_local $0) 8565 | (i32.or 8566 | (get_local $4) 8567 | (i32.const 1) 8568 | ) 8569 | ) 8570 | (i32.store offset=8 8571 | (get_local $0) 8572 | (get_local $1) 8573 | ) 8574 | (i32.store offset=4 8575 | (get_local $0) 8576 | (get_local $3) 8577 | ) 8578 | ) 8579 | (drop 8580 | (call $memcpy 8581 | (get_local $1) 8582 | (get_local $2) 8583 | (get_local $3) 8584 | ) 8585 | ) 8586 | ) 8587 | (i32.store8 8588 | (i32.add 8589 | (get_local $1) 8590 | (get_local $3) 8591 | ) 8592 | (i32.const 0) 8593 | ) 8594 | (return 8595 | (get_local $0) 8596 | ) 8597 | ) 8598 | (call $abort) 8599 | (unreachable) 8600 | ) 8601 | (func $memcmp (param $0 i32) (param $1 i32) (param $2 i32) (result i32) 8602 | (local $3 i32) 8603 | (local $4 i32) 8604 | (local $5 i32) 8605 | (set_local $5 8606 | (i32.const 0) 8607 | ) 8608 | (block $label$0 8609 | (br_if $label$0 8610 | (i32.eqz 8611 | (get_local $2) 8612 | ) 8613 | ) 8614 | (block $label$1 8615 | (loop $label$2 8616 | (br_if $label$1 8617 | (i32.ne 8618 | (tee_local $3 8619 | (i32.load8_u 8620 | (get_local $0) 8621 | ) 8622 | ) 8623 | (tee_local $4 8624 | (i32.load8_u 8625 | (get_local $1) 8626 | ) 8627 | ) 8628 | ) 8629 | ) 8630 | (set_local $1 8631 | (i32.add 8632 | (get_local $1) 8633 | (i32.const 1) 8634 | ) 8635 | ) 8636 | (set_local $0 8637 | (i32.add 8638 | (get_local $0) 8639 | (i32.const 1) 8640 | ) 8641 | ) 8642 | (br_if $label$2 8643 | (tee_local $2 8644 | (i32.add 8645 | (get_local $2) 8646 | (i32.const -1) 8647 | ) 8648 | ) 8649 | ) 8650 | (br $label$0) 8651 | ) 8652 | ) 8653 | (set_local $5 8654 | (i32.sub 8655 | (get_local $3) 8656 | (get_local $4) 8657 | ) 8658 | ) 8659 | ) 8660 | (get_local $5) 8661 | ) 8662 | (func $__wasm_nullptr (type $FUNCSIG$v) 8663 | (unreachable) 8664 | ) 8665 | ) 8666 | -------------------------------------------------------------------------------- /KEEPs/keep-2/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #set -x 4 | 5 | c_name=nodeostmp 6 | api_mainnet="https://api.eosstore.co" 7 | api_kylinnet="http://api.kylin.eoseco.com" 8 | 9 | docker rm ${c_name} -f 1>/dev/null 2>&1 10 | docker run -v `pwd`/contracts:/scts --name ${c_name} eosio/eos sleep 100000 & 11 | cleos="docker exec ${c_name} cleos" 12 | sleep 3 && $cleos wallet create 1>/dev/null 2>&1 && sleep 1 13 | 14 | 15 | if [ "$1" == "getcode" ];then 16 | $cleos -u ${api_mainnet} get code cryptokylin1 17 | $cleos -u ${api_kylinnet} get code contracts111 18 | fi 19 | 20 | 21 | if [[ "$1" == "mainnet" || "$1" == "" ]];then 22 | echo -n "请输入主网cryptokylin1私钥:" && read -s ps_cryptokylin1 && echo 23 | $cleos wallet import --private-key ${ps_cryptokylin1} 24 | $cleos -u ${api_mainnet} set contract cryptokylin1 /scts/info -p cryptokylin1 25 | fi 26 | 27 | 28 | if [[ "$1" == "testnet" || "$1" == "" ]];then 29 | echo -n "请输入测试网contracts111私钥:" && read -s ps_contracts111 && echo 30 | $cleos wallet import --private-key ${ps_contracts111} 31 | $cleos -u ${api_kylinnet} set contract contracts111 /scts/info -p contracts111 32 | fi 33 | 34 | docker rm ${c_name} -f 1>/dev/null 2>&1 35 | 36 | 37 | 38 | 39 | set +x 40 | 41 | -------------------------------------------------------------------------------- /KEEPs/keep-2/interfaces/token.md: -------------------------------------------------------------------------------- 1 | 2 | ## token kind contract interface standard 3 | 4 | ### 1. open source 5 | Token contracts must be open source, if third-party libraries are used, their source code of the corresponding version must be provided with your contract's source code. 6 | 7 | ### 2. `asset` data struct 8 | - In token contracts, you must use `asset` data structure which defined in [asset.hpp](https://github.com/EOSIO/eos/blob/master/contracts/eosiolib/asset.hpp) to represent user's token. you can't use your custom defined data structure to represent user's token, because this leads to a lot of incompatibility. 9 | - symbol name must be uppercase english letters, and should not be longer than 7 characters. 10 | 11 | ### 2. actions 12 | Token contracts must contain below actions and corresponding parameters: 13 | 14 | - transfer 15 | All assets related to the transfer must be checkable on the chain, such as asset transfer, transaction fee costs, etc. 16 | ``` 17 | void transfer( account_name from, 18 | account_name to, 19 | asset quantity, 20 | string memo ); 21 | ``` 22 | 23 | ### 3. tables 24 | token contracts must contain below tables, 25 | and each table must contain at least the corresponding fields and use the same primary_key() listed blow. 26 | 27 | - the table name of `struct account` must be **accounts** , such as defined in [eosio.token.hpp](https://github.com/EOSIO/eos/blob/master/contracts/eosio.token/eosio.token.hpp#L54) 28 | - table `accounts`'s code must be `_self` and scope must be the token balance `owner`, such as defined in [eosio.token.cpp](https://github.com/EOSIO/eos/blob/master/contracts/eosio.token/eosio.token.cpp#L88) 29 | - the table name of `struct currency_stats` must be **stat**, such as defined in [eosio.token.hpp](https://github.com/EOSIO/eos/blob/master/contracts/eosio.token/eosio.token.hpp#L55) 30 | - table `stat`'s code must be `_self` and scope must be the token symbol name `sym`, such as defined in [eosio.token.cpp](https://github.com/EOSIO/eos/blob/master/contracts/eosio.token/eosio.token.cpp#L20) 31 | 32 | table structs 33 | ``` 34 | struct account { 35 | asset balance; 36 | 37 | uint64_t primary_key()const { return balance.symbol.name(); } 38 | }; 39 | 40 | struct currency_stats { 41 | asset supply; 42 | asset max_supply; 43 | account_name issuer; 44 | 45 | uint64_t primary_key()const { return supply.symbol.name(); } 46 | }; 47 | 48 | ``` 49 | ### 4. send inline action for various fees 50 | It is very important that any transaction detail should be queryable on the chain. so if you charge for some operations, such as transaction fee for actiion `transfer`, then you need to send a separate action (such as SEND_INLINE_ACTION) for the fee,only in this way can the transaction details be querying on the chain. 51 | 52 | ### 5. advice 53 | It's better that token contracts be independent of business logic contracts. when a business logic contract need token operation, it should send action to token contract's abi interface to transfer token. 54 | -------------------------------------------------------------------------------- /KEEPs/keep-2/scripts/boot.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | . init.sh >/dev/null 2>&1 4 | 5 | set -x 6 | 7 | init(){ 8 | docker rm nodeos -f 1>/dev/null 2>&1 9 | docker run -d -v ${ROOT_DIR}/contracts:/mycts --name nodeos ${IMAGE_MAINNET} nodeosd.sh -e -p eosio \ 10 | --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin \ 11 | --contracts-console --max-transaction-time 1000 12 | 13 | docker exec nodeos nohup /opt/eosio/bin/keosd --http-server-address=127.0.0.1:8900 --unlock-timeout 1000000 > /dev/null 2>/dev/null & 14 | sleep 1 && $cleos wallet create > /dev/null 15 | $cleos wallet import --private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 16 | 17 | sleep 1 && $cleos set contract eosio /opt/eosio/bin/data-dir/contracts/eosio.bios -p eosio 18 | } 19 | init 20 | 21 | 22 | create_system_account(){ 23 | for account in eosio.token eosio.msig eosio.names eosio.ram eosio.ramfee eosio.saving eosio.stake eosio.vpay eosio.bpay 24 | do 25 | echo -e "\n creating $account \n"; 26 | $cleos create account eosio ${account} EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV; 27 | done 28 | } 29 | create_system_account 30 | 31 | 32 | deploy_token_and_msig_contract(){ 33 | $cleos set contract eosio.token /opt/eosio/bin/data-dir/contracts/eosio.token -p eosio.token 34 | $cleos set contract eosio.msig /opt/eosio/bin/data-dir/contracts/eosio.msig -p eosio.msig 35 | } 36 | deploy_token_and_msig_contract 37 | 38 | 39 | create_and_issue_eos_token(){ 40 | $cleos push action eosio.token create '["eosio", "10000000000.0000 EOS"]' -p eosio.token 41 | $cleos push action eosio.token issue '["eosio", "1000000000.0000 EOS", "memo"]' -p eosio 42 | } 43 | create_and_issue_eos_token 44 | 45 | 46 | set_msig_privilege(){ 47 | $cleos push action eosio setpriv '{"account": "eosio.msig", "is_priv": 1}' -p eosio 48 | } 49 | set_msig_privilege 50 | 51 | 52 | deploy_system_contract(){ 53 | $cleos set contract eosio /opt/eosio/bin/data-dir/contracts/eosio.system -x 1000 -p eosio 54 | } 55 | deploy_system_contract 56 | 57 | 58 | set +x 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /KEEPs/keep-2/scripts/init.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ "${ROOT_DIR}" == "" ];then 4 | echo "ERROR! Set ROOT_DIR first please." 5 | fi 6 | 7 | IMAGE_OFFICAL='eosio/eos' 8 | IMAGE_MAINNET='eoslaomao/eos:mainnet-1.1.1' 9 | 10 | cleos='docker exec nodeos cleos' 11 | eosio_abigeneos='docker exec nodeos eosio-abigeneos' 12 | eosio_launcher='docker exec nodeos eosio-launcher' 13 | eosio_s2wasm='docker exec nodeos eosio-s2wasm' 14 | eosio_wast2wasm='docker exec nodeos eosio-wast2wasm' 15 | 16 | 17 | get_str(){ 18 | echo $1 | cut -d'|' -f$2 19 | } 20 | 21 | get_pri(){ 22 | get_str $1 1 23 | } 24 | 25 | get_pub(){ 26 | get_str $1 2 27 | } 28 | 29 | rm_build_files(){ 30 | rm *.wast *.wasm *.abi 2>/dev/null 31 | } 32 | 33 | rm_all_build(){ 34 | cd ${ROOT_DIR} && rm */*/*.wasm && rm */*/*.wast && rm */*/*.abi 35 | } 36 | 37 | # usage: create_account account_name owner_key [active_key] 38 | create_account(){ 39 | $cleos system newaccount --stake-net "100.0000 EOS" --stake-cpu "100.0000 EOS" --buy-ram "100.0000 EOS" eosio $1 $2 $3 -p eosio 40 | } 41 | 42 | import_key(){ 43 | $cleos wallet import --private-key $1 44 | } 45 | 46 | create_account_and_import_key(){ 47 | account=$1 48 | pub_key=`get_pub $2` 49 | pri_key=`get_pri $2` 50 | create_account ${account} ${pub_key} 51 | import_key ${pri_key} 52 | } 53 | 54 | new_account(){ 55 | account=$1 56 | 57 | str=`$cleos create key` 58 | pri_key=`echo $str | cut -d' ' -f 3` 59 | pub_key=`echo $str | cut -d' ' -f 6` 60 | 61 | create_account ${account} ${pub_key} 62 | import_key ${pri_key} 63 | } 64 | 65 | add_abi_types(){ 66 | abi_file=$1 67 | jq ' .types = [{"new_type_name":"account_name","type": "name"}]' ${abi_file} > tmp.abi && mv tmp.abi ${abi_file} 68 | } 69 | 70 | build_contract_docker(){ 71 | contract=$1 72 | 73 | version=$2 74 | if [ "$2" == "" ];then 75 | version='v1.1.4' 76 | fi 77 | 78 | cd ${ROOT_DIR}/contracts/${contract} && rm_build_files 79 | docker run --rm -v `pwd`:/scts eosio/eos-dev:${version} bash -c "cd /scts \ 80 | && eosiocpp -o ${contract}.wast ${contract}.cpp \ 81 | && eosiocpp -g ${contract}.abi ${contract}.cpp" 82 | cd - 83 | } 84 | 85 | build_contract_locally(){ 86 | contract=$1 87 | 88 | cd ${ROOT_DIR}/contracts/${contract} && rm_build_files 89 | eosiocpp -o ${contract}.wast ${contract}.cpp 90 | eosiocpp -g ${contract}.abi ${contract}.cpp 91 | cd - 92 | } 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /KEEPs/keep-2/test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ROOT_DIR=`pwd` 3 | 4 | # step 1: init 5 | . scripts/init.sh 6 | action=$1 7 | 8 | # step 2: set your own variables 9 | contract="info" # contract file's and folder's base name 10 | accountaddr="contracts111" # account who set the contract code to the chain 11 | issuer="boss" # token issuer 12 | 13 | 14 | # step 3: bios boot and create accounts; 15 | if [ "${action}" == '' ];then 16 | . scripts/boot.sh 17 | 18 | for name in ${accountaddr} boss inita initb initc initd bigboss11111 contract5111; do 19 | new_account ${name} 20 | done 21 | fi 22 | 23 | 24 | 25 | # step 4: build, modify abi file and deploy contract. 26 | if [[ "${action}" == "" || "${action}" == "deploy" ]]; then 27 | # . ./build.sh 28 | $cleos set contract ${accountaddr} /mycts/${contract} -p ${accountaddr} 29 | fi 30 | 31 | # ================================== Step 5: Test ================================== 32 | if [ "${action}" == 'test' ]; then 33 | set -x 34 | 35 | test_update(){ 36 | $cleos push action ${accountaddr} createupdate '["inita", "https://www.website-a1.com", "https://www.website.com/logo.png", "brief intro" ,"https://github.com/repo/project", "QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7","QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7","key1=value1|key2=value2|key3=value3"]' -p inita@active 37 | $cleos push action ${accountaddr} createupdate '["initb", "https://www.website-b1.com", "https://www.website.com/logo.png", "brief intro" ,"https://github.com/repo/project", "QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7","QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7","key1=value1|key2=value2|key3=value3"]' -p initb@active 38 | 39 | $cleos get table ${accountaddr} ${accountaddr} info 40 | 41 | $cleos push action ${accountaddr} createupdate '["inita", "https://www.website-a2.com", "https://www.website.com/logo.png", "brief intro" ,"https://github.com/repo/project", "QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7","QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7","key1=value1|key2=value2|key3=value3"]' -p inita@active 42 | $cleos push action ${accountaddr} createupdate '["initb", "https://www.website-b2.com", "https://www.website.com/logo.png", "brief intro" ,"https://github.com/repo/project", "QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7","QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7","key1=value1|key2=value2|key3=value3"]' -p initb@active 43 | 44 | $cleos get table ${accountaddr} ${accountaddr} info 45 | 46 | 47 | $cleos push action ${accountaddr} remove '["inita"]' -p inita@active 48 | $cleos push action ${accountaddr} remove '["initb"]' -p initb@active 49 | $cleos get table ${accountaddr} ${accountaddr} info 50 | 51 | 52 | contract=inita 53 | website=https://www.website-a1.com 54 | logo_256=https://www.website.com/logo.png 55 | brief_intro="brief intro" 56 | github="https://github.com/repo/project" 57 | white_paper="QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7" 58 | src_zip="QmdTg15kLsDzHHPAH5mdyhXTPJoAeuGyYbb8imKc54h6m7" 59 | 60 | telegram="https://t.me/cryptokylin" 61 | steemit=https://steemit.com/@eosio 62 | twitter="https://twitter.com/EOS_io" 63 | wechat="EOSIO-foo" 64 | 65 | extension="telegram=${telegram}|steemit=${steemit}|twitter=${twitter}|wechat=${wechat}" 66 | 67 | str="[ \"${contract}\",\"${website}\",\"${logo_256}\",\"${brief_intro}\",\"${github}\",\"${white_paper}\",\"${src_zip}\",\"${extension}\" ]" 68 | 69 | $cleos push action ${accountaddr} createupdate "$str" -p inita@active 70 | 71 | 72 | } 73 | test_update 74 | 75 | set +x 76 | fi 77 | -------------------------------------------------------------------------------- /KEEPs/keep-2/test_manual.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | test commands 4 | ``` 5 | . test.sh # boot a local chain, build and deploy the contract 6 | . test.sh deploy # rebuild and update the contract 7 | . test.sh test # run test commands 8 | 9 | ``` -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # KEEPs 2 | Kylin EOS Enhancement Proposals (KEEPs) describe standards for the EOS platform, including core protocol specifications, client APIs, and contract standards. 3 | 4 | ## Proposals 5 | 6 | [[keep-2] Smart contract best practice guideline](/KEEPs/keep-2) --------------------------------------------------------------------------------