├── README.md ├── backup ├── pradata的副本.cpp └── pradata的副本.hpp ├── build.sh ├── demo ├── README.md ├── build.sh ├── demo.abi ├── demo.cpp ├── demo.wasm └── demo.wast ├── pradata.abi ├── pradata.cpp ├── pradata.hpp ├── pradata.wasm └── pradata.wast /README.md: -------------------------------------------------------------------------------- 1 | 2 | # ProChain Rating DApp 3 | 4 | * A dapp gives rating data provided by [`prochaintech`](https://eosflare.io/account/prochaintech) 5 | 6 | * ProRating是ProChain(般若)开源的链上账号评级合约,在链上存储全网账号属性,能够标注出合约账号、羊毛党黑名单、PRA KYC人脸比对结果、PRA CandyBox人机滑块验证结果,并具备数据实时更新特性。 7 | 8 | * DAPP开发者只需包含该头文件,即可在合约内部通过代码查询数据,适用于DAPP开发者防范合约攻击、防范羊毛党攻击、免人机滑块验证等应用场景。 9 | 10 | ## Features 11 | * **全网账号上链,区分合约账户、羊毛党黑名单、KYC白名单** 12 | * ProRating将全网账号上链,每个账号有账号类型、账号评级属性 13 | * ProChain(般若)承担该合约各项成本,如RAM、CPU、NET开销 14 | 15 | * **数据实时生效,同步上链** 16 | * 实时监测PRA CandyBox的羊毛党黑名单、KYC白名单、人机滑块验证结果,同步上链 17 | * 实时监测各账号的Set Code行为,标注出合约账号,同步上链 18 | 19 | * **应用简单,有包含头文件、接口回调两种使用方式** 20 | * DAPP开发者包含该头文件,即可在合约内部通过代码查询数据 21 | * ProRating合约已陆续开发API,DAPP开发者可在链上调用该接口查询,并通过回调接口获知结果 22 | 23 | ## EOS Mainnet 主网部署情况 24 | 25 | * **contract account**: [`rating.pra`](https://eosflare.io/account/rating.pra),**scope**: `rating.pra` 26 | * **合约账号**:[`rating.pra`](https://eosflare.io/account/rating.pra),**scope**: `rating.pra` 27 | 28 | * 查询链上数据: 29 | ``` 30 | cleos get table rating.pra rating.pra trating 31 | ``` 32 | 33 | ## Data Structure 数据结构 34 | 35 | ### Table `trating` 账号表 36 | - `account` eos account name 账号名称 37 | - `account_type` enum_account_type: 0, normal account; 1, code account; 账号类型:0, 普通账号; 1, 合约账号; 38 | - `normal_account_level` rating level for normal account, from 0 to 10 普通账号评分:从0到10,分数越低,账号属性越差 39 | - `code_account_level` rating level for code account, from 0 to 10 合约账号评分:从0到10,分数越低,账号属性越差 40 | 41 | ### enum `enum_account_type` 枚举类型 42 | - 0, `normal_account` 普通账号 43 | - 1, `code_account` 合约账号 44 | 45 | ### level defined for both normal and code account 普通账号和合约账号共用评分 46 | - `ACCOUNT_LEVEL_DEFAULT`: 5 账号默认评分,5分 47 | - `BP_BLACKLIST`: 0 被ECAF或BP拉黑的账号,0分;数据源详见[https://bloks.io/blacklist](https://bloks.io/blacklist) 48 | 49 | ### level defined for normal account 普通账号评分 50 | - `PRABOX_BLACKLIST`: 2 被PRA CandyBox拉黑的羊毛党账号,2分 51 | - `PRABOX_GREYLIST`: 3 被PRA CandyBox加灰的疑似羊毛党账号,3分 52 | - `PRABOX_AUTH_VERYFIED`: 6 在24小时内,通过PRA CandyBox人机滑块验证的账号,6分 53 | - `PRABOX_KYC_VERYFIED`: 6 通过PRA KYC人脸比对验证的账号,6分 54 | 55 | ### level defined for code account 合约账号评分 56 | - `MALICIOUS_CODE_ACCOUNT`: 0 已知恶意合约账号,如实施过合约攻击行为,0分 57 | 58 | ### Call Back API 回调接口 59 | * TBD 60 | * 已实现checkblack检查账号是否在黑名单的接口,并以回调方式通知调用方 61 | * 其余接口待实现,欢迎通过issue提出需求 62 | 63 | ### call back results 回调结果 64 | - `RESULT_FOUND`: "FOUND" 找到账号 65 | - `RESULT_NOTFOUND`: "NOTFOUND" 未找到账号 66 | 67 | ## Sample Codes 示例代码 68 | * [demo.cpp](https://github.com/ProChain/ProRatingEOS/blob/master/demo/demo.cpp) 69 | * [demo_readme](https://github.com/ProChain/ProRatingEOS/blob/master/demo/README.md) 70 | 71 | ## Known Users 已知用户 72 | * ![logo](https://prowebsitebj.oss-cn-beijing.aliyuncs.com/website/topbidderlogo.png) 73 | **捕域达人** **Top Bidder** [https://chain.pro/domain-auction/](https://chain.pro/domain-auction/) 74 | 75 | * ![logo](https://prowebsitebj.oss-cn-beijing.aliyuncs.com/website/eosdice.png) 76 | **EOS Dice** [https://eosdice.vip/](https://eosdice.vip/) 77 | 78 | * 按照登记顺序排序,更多接入DAPP,欢迎在[https://github.com/ProChain/ProRatingEOS/issues/1](https://github.com/ProChain/ProRatingEOS/issues/1)登记 79 | 80 | ## Contribution 81 | * Source Code: [https://github.com/ProChain/ProRatingEOS](https://github.com/ProChain/ProRatingEOS) 82 | * Issue Tracker: [https://github.com/ProChain/ProRatingEOS/issues](https://github.com/ProChain/ProRatingEOS/issues) 83 | 84 | ## Support 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 |
ProChain微信助手 WeChat Assistant
WeChat No:ProChain3
support-1
95 | 96 | ## License 97 | The MIT License 98 | 99 | Permission is hereby granted, free of charge, to any person obtaining a copy 100 | of this software and associated documentation files (the "Software"), to deal 101 | in the Software without restriction, including without limitation the rights 102 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 103 | copies of the Software, and to permit persons to whom the Software is 104 | furnished to do so, subject to the following conditions: 105 | 106 | The above copyright notice and this permission notice shall be included in 107 | all copies or substantial portions of the Software. 108 | 109 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 110 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 111 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 112 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 113 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 114 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 115 | THE SOFTWARE. 116 | -------------------------------------------------------------------------------- /backup/pradata的副本.cpp: -------------------------------------------------------------------------------- 1 | #include "pradata.hpp" 2 | 3 | using eosio::action; 4 | using eosio::permission_level; 5 | using namespace eosio; 6 | 7 | using namespace prochain; 8 | //{ 9 | 10 | #define RATING_CONTRACT N(rating.pra) 11 | 12 | class pradata : public contract 13 | { 14 | 15 | public: 16 | explicit pradata(account_name self) : contract(self){}; 17 | 18 | /** 19 | * @brief get account info 检查账号信息 20 | * 21 | * @param account account name to be checked 账号名称 22 | */ 23 | // @abi action 24 | void check(const account_name &account) 25 | { 26 | eosio_assert(is_account(account), "account is not valid"); 27 | 28 | //声明rating.pra的trating表 29 | rating_index list(RATING_CONTRACT, RATING_CONTRACT); 30 | 31 | //检查账号是否存在 32 | auto check = list.find(account); 33 | 34 | //trating表中存储了全量链上合约账号,并实时更新 35 | //如果找不到,则该账号是普通账号 36 | if (check != list.end()) 37 | { 38 | //获取账号类型:普通账号 或 合约账号 39 | auto account_type = check->account_type; 40 | //此处可应用场景:拒绝合约账号调用 41 | 42 | //获取普通账号的评分 43 | if (account_type == normal_account) 44 | { 45 | //此处可应用场景:拒绝黑名单账号、羊毛党账号、灰名单账号调用 46 | //此处可应用场景:用户免人机滑块验证 47 | action( 48 | permission_level{_self, N(active)}, 49 | _self, N(logreceipt), std::make_tuple(account, account_type, check->normal_account_level)) 50 | .send(); 51 | } 52 | //获取合约账号的评分 53 | else if (account_type == code_account) 54 | { 55 | //此处可应用场景:拒绝恶意合约账号调用 56 | action( 57 | permission_level{_self, N(active)}, 58 | _self, N(logreceipt), std::make_tuple(account, account_type, check->code_account_level)) 59 | .send(); 60 | } 61 | } 62 | else 63 | { 64 | //普通账号默认评分 65 | action( 66 | permission_level{_self, N(active)}, 67 | _self, N(logreceipt), std::make_tuple(account, normal_account, ACCOUNT_LEVEL_DEFAULT)) 68 | .send(); 69 | } 70 | } 71 | 72 | /** 73 | * @brief Call Back API: check account is black or not 回调接口:检查账号是否在黑名单 74 | * 75 | * @param account account name to be checked 账号名称 76 | * @param notifyaccnt call back, send check result to notify account 回调通知账号 77 | * @param notifyfunc call back, send check result to notify function 回调通知函数 78 | */ 79 | //@abi action 80 | void checkblack(const account_name &account, const account_name ¬ifyaccnt, std::string notifyfunc) 81 | { 82 | require_auth(notifyaccnt); 83 | 84 | //声明rating.pra的trating表 85 | rating_index ratinglist(RATING_CONTRACT, RATING_CONTRACT); 86 | 87 | //检查账号是否存在 88 | auto iter = ratinglist.find(account); 89 | 90 | //trating表中存储了全量链上合约账号,并实时更新 91 | //如果找不到,则该账号是普通账号 92 | if (iter != ratinglist.end()) 93 | { 94 | bool isblack = false; 95 | 96 | //根据账号类型判断是否为黑名单账号 97 | //check account type and account level 98 | if (iter->account_type == normal_account) 99 | { 100 | if (iter->normal_account_level == BP_BLACKLIST || iter->normal_account_level == PRABOX_BLACKLIST) 101 | { 102 | isblack = true; 103 | } 104 | } 105 | else 106 | { 107 | if (iter->code_account_level == BP_BLACKLIST || iter->code_account_level == MALICIOUS_CODE_ACCOUNT) 108 | { 109 | isblack = true; 110 | } 111 | } 112 | 113 | //found the account is black 114 | if (isblack) 115 | { 116 | //回调通知结果 117 | action(permission_level{_self, N(active)}, 118 | N(notifyaccnt), 119 | N(notifyfunc), 120 | std::make_tuple(account, std::string(RESULT_FOUND))) 121 | .send(); 122 | } 123 | } 124 | else 125 | { 126 | //回调通知结果 127 | action(permission_level{_self, N(active)}, 128 | N(notifyaccnt), 129 | N(notifyfunc), 130 | std::make_tuple(account, std::string(RESULT_NOTFOUND))) 131 | .send(); 132 | } 133 | } 134 | 135 | //@abi action 136 | void addrating(const Rating &rating) 137 | { 138 | require_auth(_self); 139 | 140 | eosio_assert(is_account(rating.account), "rating account is not valid"); 141 | eosio_assert(rating.account_type >= 0 && rating.account_type < account_type_count, "rating account type is not valid"); 142 | 143 | rating_index ratinglist(RATING_CONTRACT, RATING_CONTRACT); 144 | auto iter = ratinglist.find(rating.account); 145 | if (iter == ratinglist.end()) 146 | { 147 | ratinglist.emplace(_self, [&](auto &r) { 148 | r.account = rating.account; 149 | r.account_type = rating.account_type; 150 | r.normal_account_level = rating.normal_account_level; 151 | r.code_account_level = rating.code_account_level; 152 | }); 153 | } 154 | else 155 | { 156 | ratinglist.modify(iter, 0, [&](auto &r) { 157 | r.account_type = rating.account_type; 158 | r.normal_account_level = rating.normal_account_level; 159 | r.code_account_level = rating.code_account_level; 160 | }); 161 | } 162 | } 163 | 164 | //@abi action 165 | void delrating(const Rating &rating) 166 | { 167 | require_auth(_self); 168 | 169 | rating_index ratinglist(RATING_CONTRACT, RATING_CONTRACT); 170 | auto iter = ratinglist.find(rating.account); 171 | if (iter != ratinglist.end()) 172 | { 173 | ratinglist.erase(iter); 174 | } 175 | } 176 | 177 | // @abi action 178 | void logreceipt(const account_name &account, const uint8_t &account_type, const uint8_t &account_level) 179 | { 180 | require_auth(_self); 181 | } 182 | 183 | 184 | //@abi aciton 185 | void addrelate(const account_name &account, const account_name & teacher_account) 186 | { 187 | require_auth(account); 188 | eosio_assert(is_account(teacher_account), "teacher account is not valid"); 189 | 190 | relation_index relationlist(RATING_CONTRACT, RATING_CONTRACT); 191 | auto iter = relationlist.find(account); 192 | if (iter == relationlist.end()) 193 | { 194 | relationlist.emplace(_self, [&](auto &r) { 195 | r.account = account; 196 | r.teacher_account = teacher_account; 197 | }); 198 | } 199 | else 200 | { 201 | eosio_assert(0, "teacher relation already exist"); 202 | } 203 | } 204 | 205 | //@abi action 206 | void changerelate() 207 | { 208 | //todo 209 | } 210 | 211 | 212 | }; 213 | 214 | 215 | 216 | EOSIO_ABI(pradata, (checkblack)(addrating)(delrating)(check)(logreceipt)(addrelate)) 217 | 218 | //} // namespace prochain -------------------------------------------------------------------------------- /backup/pradata的副本.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | namespace prochain 7 | { 8 | 9 | 10 | 11 | struct AdRelation 12 | { 13 | account_name account; 14 | account_name teacher_account; 15 | uint64_t primary_key() const { return account; } 16 | EOSLIB_SERIALIZE(AdRelation, (account)(teacher_account)); 17 | }; 18 | typedef eosio::multi_index relation_index; 19 | 20 | 21 | // @abi table trating i64 22 | struct Rating 23 | { 24 | account_name account; //eos account name, 账号名称 25 | uint8_t account_type; //enum_account_type: 0, normal account; 1, code account; 账号类型:0, 普通账号; 1, 合约账号; 26 | uint8_t normal_account_level; //rating level for normal account, from 0 to 10 普通账号评分:从0到10,分数越低,账号属性越差,默认是5 27 | uint8_t code_account_level; //rating level for code account, from 0 to 10 合约账号评分:从0到10,分数越低,账号属性越差,默认是5 28 | 29 | uint64_t primary_key() const { return account; } 30 | EOSLIB_SERIALIZE(Rating, (account)(account_type)(normal_account_level)(code_account_level)); 31 | }; 32 | typedef eosio::multi_index rating_index; 33 | 34 | //account type 账号类型 35 | enum enum_account_type 36 | { 37 | normal_account = 0, // 0: normal account 普通账号 38 | code_account, // 1: code account 合约账号 39 | account_type_count 40 | }; 41 | 42 | //level defined for both normal and code account 普通账号和合约账号共用评分 43 | uint8_t ACCOUNT_LEVEL_DEFAULT = 5; //账号默认评分,5分 44 | uint8_t BP_BLACKLIST = 0; //被ECAF或BP拉黑的账号,0分;数据源详见https://bloks.io/blacklist 45 | 46 | //level defined for normal account 普通账号评分 47 | uint8_t PRABOX_BLACKLIST = 2; //被PRA CandyBox拉黑的羊毛党账号,2分 48 | uint8_t PRABOX_GREYLIST = 3; //被PRA CandyBox加灰的疑似羊毛党账号,3分 49 | uint8_t PRABOX_AUTH_VERYFIED = 6; //在24小时内,通过PRA CandyBox人机滑块验证的账号,6分 50 | uint8_t PRABOX_KYC_VERYFIED = 6; //通过PRA KYC人脸比对验证的账号,6分 51 | 52 | //level defined for code account 合约账号评分 53 | uint8_t MALICIOUS_CODE_ACCOUNT = 0; //已知恶意合约账号,如实施过合约攻击行为,0分 54 | 55 | //call back results 回调结果 56 | std::string RESULT_FOUND = "FOUND"; //找到账号 57 | std::string RESULT_NOTFOUND = "NOTFOUND"; //未找到账号 58 | 59 | } // namespace prochain -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | rm pradata.wast pradata.wasm 2 | eosiocpp -o pradata.wast pradata.cpp 3 | 4 | rm pradata.abi 5 | eosiocpp -g pradata.abi pradata.cpp 6 | -------------------------------------------------------------------------------- /demo/README.md: -------------------------------------------------------------------------------- 1 | 2 | # demo 3 | 4 | ## sample codes: 5 | 6 | ``` 7 | #include "../pradata.hpp" 8 | 9 | using namespace prochain; 10 | 11 | //声明rating.pra的trating表 12 | rating_index list(N(rating.pra), N(rating.pra)); 13 | 14 | //检查账号是否存在 15 | auto check = list.find(account); 16 | 17 | //trating表中存储了全量链上合约账号,并实时更新 18 | //如果找不到,则该账号是普通账号 19 | if (check != list.end()) 20 | { 21 | //获取账号类型:普通账号 或 合约账号 22 | uint8_t account_type = check->account_type; 23 | //此处可应用场景:拒绝合约账号调用 24 | 25 | //获取普通账号的评分 26 | if (account_type == normal_account) 27 | { 28 | uint8_t account_level = check->normal_account_level; 29 | //此处可应用场景:拒绝黑名单账号、羊毛党账号、灰名单账号调用 30 | //此处可应用场景:用户免人机滑块验证 31 | } 32 | //获取合约账号的评分 33 | else if (account_type == code_account) 34 | { 35 | uint8_t account_level = check->code_account_level; 36 | //此处可应用场景:拒绝恶意合约账号调用 37 | } 38 | } 39 | else 40 | { 41 | //普通账号默认评分 42 | uint8_t account_level = ACCOUNT_LEVEL_DEFAULT; 43 | } 44 | ``` -------------------------------------------------------------------------------- /demo/build.sh: -------------------------------------------------------------------------------- 1 | rm demo.wast demo.wasm 2 | eosiocpp -o demo.wast demo.cpp 3 | 4 | rm demo.abi 5 | eosiocpp -g demo.abi demo.cpp 6 | -------------------------------------------------------------------------------- /demo/demo.abi: -------------------------------------------------------------------------------- 1 | { 2 | "____comment": "This file was generated by eosio-abigen. DO NOT EDIT - 2018-11-22T04:09:02", 3 | "version": "eosio::abi/1.0", 4 | "types": [], 5 | "structs": [{ 6 | "name": "Rating", 7 | "base": "", 8 | "fields": [{ 9 | "name": "account", 10 | "type": "name" 11 | },{ 12 | "name": "account_type", 13 | "type": "uint8" 14 | },{ 15 | "name": "normal_account_level", 16 | "type": "uint8" 17 | },{ 18 | "name": "code_account_level", 19 | "type": "uint8" 20 | } 21 | ] 22 | },{ 23 | "name": "check", 24 | "base": "", 25 | "fields": [{ 26 | "name": "account", 27 | "type": "name" 28 | } 29 | ] 30 | },{ 31 | "name": "logreceipt", 32 | "base": "", 33 | "fields": [{ 34 | "name": "account", 35 | "type": "name" 36 | },{ 37 | "name": "account_type", 38 | "type": "uint8" 39 | },{ 40 | "name": "account_level", 41 | "type": "uint8" 42 | } 43 | ] 44 | } 45 | ], 46 | "actions": [{ 47 | "name": "check", 48 | "type": "check", 49 | "ricardian_contract": "" 50 | },{ 51 | "name": "logreceipt", 52 | "type": "logreceipt", 53 | "ricardian_contract": "" 54 | } 55 | ], 56 | "tables": [{ 57 | "name": "trating", 58 | "index_type": "i64", 59 | "key_names": [ 60 | "account" 61 | ], 62 | "key_types": [ 63 | "name" 64 | ], 65 | "type": "Rating" 66 | } 67 | ], 68 | "ricardian_clauses": [], 69 | "error_messages": [], 70 | "abi_extensions": [] 71 | } -------------------------------------------------------------------------------- /demo/demo.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include "../pradata.hpp" 6 | 7 | using namespace eosio; 8 | using namespace prochain; 9 | 10 | class demo : public contract 11 | { 12 | public: 13 | demo(account_name self) : contract(self){}; 14 | 15 | // @abi action 16 | void check(const account_name &account) 17 | { 18 | eosio_assert(is_account(account), "account is not valid"); 19 | 20 | //声明rating.pra的trating表 21 | rating_index list(N(rating.pra), N(rating.pra)); 22 | 23 | //检查账号是否存在 24 | auto check = list.find(account); 25 | 26 | //trating表中存储了全量链上合约账号,并实时更新 27 | //如果找不到,则该账号是普通账号 28 | if (check != list.end()) 29 | { 30 | //获取账号类型:普通账号 或 合约账号 31 | auto account_type = check->account_type; 32 | //此处可应用场景:拒绝合约账号调用 33 | 34 | //获取普通账号的评分 35 | if (account_type == normal_account) 36 | { 37 | //此处可应用场景:拒绝黑名单账号、羊毛党账号、灰名单账号调用 38 | //此处可应用场景:用户免人机滑块验证 39 | action( 40 | permission_level{_self, N(active)}, 41 | _self, N(logreceipt), std::make_tuple(account, account_type, check->normal_account_level)) 42 | .send(); 43 | } 44 | //获取合约账号的评分 45 | else if (account_type == code_account) 46 | { 47 | //此处可应用场景:拒绝恶意合约账号调用 48 | action( 49 | permission_level{_self, N(active)}, 50 | _self, N(logreceipt), std::make_tuple(account, account_type, check->code_account_level)) 51 | .send(); 52 | } 53 | } 54 | else 55 | { 56 | //普通账号默认评分 57 | action( 58 | permission_level{_self, N(active)}, 59 | _self, N(logreceipt), std::make_tuple(account, normal_account, ACCOUNT_LEVEL_DEFAULT)) 60 | .send(); 61 | } 62 | } 63 | 64 | // @abi action 65 | void logreceipt(const account_name &account, const uint8_t &account_type, const uint8_t &account_level) 66 | { 67 | require_auth(_self); 68 | } 69 | }; 70 | 71 | EOSIO_ABI(demo, (check)(logreceipt)); 72 | -------------------------------------------------------------------------------- /demo/demo.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProChain/ProRatingEOS/23487c4f88a70640c36bc2f86f9695dea4a8b24d/demo/demo.wasm -------------------------------------------------------------------------------- /demo/demo.wast: -------------------------------------------------------------------------------- 1 | (module 2 | (type $FUNCSIG$vii (func (param i32 i32))) 3 | (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) 4 | (type $FUNCSIG$v (func)) 5 | (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) 6 | (type $FUNCSIG$j (func (result i64))) 7 | (type $FUNCSIG$vjj (func (param i64 i64))) 8 | (type $FUNCSIG$i (func (result i32))) 9 | (type $FUNCSIG$iii (func (param i32 i32) (result i32))) 10 | (type $FUNCSIG$vj (func (param i64))) 11 | (type $FUNCSIG$ij (func (param i64) (result i32))) 12 | (type $FUNCSIG$ijjjj (func (param i64 i64 i64 i64) (result i32))) 13 | (type $FUNCSIG$vi (func (param i32))) 14 | (import "env" "abort" (func $abort)) 15 | (import "env" "action_data_size" (func $action_data_size (result i32))) 16 | (import "env" "current_time" (func $current_time (result i64))) 17 | (import "env" "db_find_i64" (func $db_find_i64 (param i64 i64 i64 i64) (result i32))) 18 | (import "env" "db_get_i64" (func $db_get_i64 (param i32 i32 i32) (result i32))) 19 | (import "env" "eosio_assert" (func $eosio_assert (param i32 i32))) 20 | (import "env" "is_account" (func $is_account (param i64) (result i32))) 21 | (import "env" "memcpy" (func $memcpy (param i32 i32 i32) (result i32))) 22 | (import "env" "memset" (func $memset (param i32 i32 i32) (result i32))) 23 | (import "env" "read_action_data" (func $read_action_data (param i32 i32) (result i32))) 24 | (import "env" "require_auth" (func $require_auth (param i64))) 25 | (import "env" "require_auth2" (func $require_auth2 (param i64 i64))) 26 | (import "env" "send_inline" (func $send_inline (param i32 i32))) 27 | (table 5 5 anyfunc) 28 | (elem (i32.const 0) $__wasm_nullptr $__cxx_global_array_dtor $__cxx_global_array_dtor.3 $_ZN4demo5checkERKy $_ZN4demo10logreceiptERKyRKhS3_) 29 | (memory $0 1) 30 | (data (i32.const 4) "0d\00\00") 31 | (data (i32.const 16) "\05") 32 | (data (i32.const 32) "\00") 33 | (data (i32.const 48) "\02") 34 | (data (i32.const 64) "\03") 35 | (data (i32.const 80) "\06") 36 | (data (i32.const 96) "\06") 37 | (data (i32.const 112) "\00") 38 | (data (i32.const 144) "FOUND\00") 39 | (data (i32.const 160) "NOTFOUND\00") 40 | (data (i32.const 176) "onerror\00") 41 | (data (i32.const 192) "eosio\00") 42 | (data (i32.const 208) "onerror action\'s are only valid from the \"eosio\" system account\00") 43 | (data (i32.const 272) "read\00") 44 | (data (i32.const 288) "account is not valid\00") 45 | (data (i32.const 320) "rating.pra\00") 46 | (data (i32.const 336) "object passed to iterator_to is not in multi_index\00") 47 | (data (i32.const 400) "active\00") 48 | (data (i32.const 416) "logreceipt\00") 49 | (data (i32.const 432) "write\00") 50 | (data (i32.const 448) "error reading iterator\00") 51 | (data (i32.const 472) "\00\00\00\00") 52 | (data (i32.const 8880) "malloc_from_freed was designed to only be called after _heap was completely allocated\00") 53 | (export "memory" (memory $0)) 54 | (export "_ZeqRK11checksum256S1_" (func $_ZeqRK11checksum256S1_)) 55 | (export "_ZeqRK11checksum160S1_" (func $_ZeqRK11checksum160S1_)) 56 | (export "_ZneRK11checksum160S1_" (func $_ZneRK11checksum160S1_)) 57 | (export "now" (func $now)) 58 | (export "_ZN5eosio12require_authERKNS_16permission_levelE" (func $_ZN5eosio12require_authERKNS_16permission_levelE)) 59 | (export "apply" (func $apply)) 60 | (export "malloc" (func $malloc)) 61 | (export "free" (func $free)) 62 | (export "__cxa_atexit" (func $__cxa_atexit)) 63 | (export "__lock" (func $__lock)) 64 | (export "__unlock" (func $__unlock)) 65 | (export "memcmp" (func $memcmp)) 66 | (export "strlen" (func $strlen)) 67 | (export "calloc" (func $calloc)) 68 | (export "_GLOBAL__sub_I_demo.cpp" (func $_GLOBAL__sub_I_demo.cpp)) 69 | (func $_GLOBAL__sub_I_demo.cpp 70 | (local $0 i32) 71 | (local $1 i32) 72 | (local $2 i32) 73 | (i64.store offset=116 align=4 74 | (i32.const 0) 75 | (i64.const 0) 76 | ) 77 | (i32.store offset=124 78 | (i32.const 0) 79 | (i32.const 0) 80 | ) 81 | (block $label$0 82 | (block $label$1 83 | (br_if $label$1 84 | (i32.ge_u 85 | (tee_local $0 86 | (call $strlen 87 | (i32.const 144) 88 | ) 89 | ) 90 | (i32.const -16) 91 | ) 92 | ) 93 | (block $label$2 94 | (block $label$3 95 | (block $label$4 96 | (br_if $label$4 97 | (i32.ge_u 98 | (get_local $0) 99 | (i32.const 11) 100 | ) 101 | ) 102 | (i32.store8 offset=116 103 | (i32.const 0) 104 | (i32.shl 105 | (get_local $0) 106 | (i32.const 1) 107 | ) 108 | ) 109 | (set_local $2 110 | (i32.const 117) 111 | ) 112 | (br_if $label$3 113 | (get_local $0) 114 | ) 115 | (br $label$2) 116 | ) 117 | (set_local $2 118 | (call $_Znwj 119 | (tee_local $1 120 | (i32.and 121 | (i32.add 122 | (get_local $0) 123 | (i32.const 16) 124 | ) 125 | (i32.const -16) 126 | ) 127 | ) 128 | ) 129 | ) 130 | (i32.store offset=116 131 | (i32.const 0) 132 | (i32.or 133 | (get_local $1) 134 | (i32.const 1) 135 | ) 136 | ) 137 | (i32.store offset=124 138 | (i32.const 0) 139 | (get_local $2) 140 | ) 141 | (i32.store offset=120 142 | (i32.const 0) 143 | (get_local $0) 144 | ) 145 | ) 146 | (drop 147 | (call $memcpy 148 | (get_local $2) 149 | (i32.const 144) 150 | (get_local $0) 151 | ) 152 | ) 153 | ) 154 | (i32.store8 155 | (i32.add 156 | (get_local $2) 157 | (get_local $0) 158 | ) 159 | (i32.const 0) 160 | ) 161 | (drop 162 | (call $__cxa_atexit 163 | (i32.const 1) 164 | (i32.const 0) 165 | (i32.const 472) 166 | ) 167 | ) 168 | (i64.store offset=128 align=4 169 | (i32.const 0) 170 | (i64.const 0) 171 | ) 172 | (i32.store offset=136 173 | (i32.const 0) 174 | (i32.const 0) 175 | ) 176 | (br_if $label$0 177 | (i32.ge_u 178 | (tee_local $0 179 | (call $strlen 180 | (i32.const 160) 181 | ) 182 | ) 183 | (i32.const -16) 184 | ) 185 | ) 186 | (block $label$5 187 | (block $label$6 188 | (block $label$7 189 | (br_if $label$7 190 | (i32.ge_u 191 | (get_local $0) 192 | (i32.const 11) 193 | ) 194 | ) 195 | (i32.store8 offset=128 196 | (i32.const 0) 197 | (i32.shl 198 | (get_local $0) 199 | (i32.const 1) 200 | ) 201 | ) 202 | (set_local $2 203 | (i32.const 129) 204 | ) 205 | (br_if $label$6 206 | (get_local $0) 207 | ) 208 | (br $label$5) 209 | ) 210 | (set_local $2 211 | (call $_Znwj 212 | (tee_local $1 213 | (i32.and 214 | (i32.add 215 | (get_local $0) 216 | (i32.const 16) 217 | ) 218 | (i32.const -16) 219 | ) 220 | ) 221 | ) 222 | ) 223 | (i32.store offset=128 224 | (i32.const 0) 225 | (i32.or 226 | (get_local $1) 227 | (i32.const 1) 228 | ) 229 | ) 230 | (i32.store offset=136 231 | (i32.const 0) 232 | (get_local $2) 233 | ) 234 | (i32.store offset=132 235 | (i32.const 0) 236 | (get_local $0) 237 | ) 238 | ) 239 | (drop 240 | (call $memcpy 241 | (get_local $2) 242 | (i32.const 160) 243 | (get_local $0) 244 | ) 245 | ) 246 | ) 247 | (i32.store8 248 | (i32.add 249 | (get_local $2) 250 | (get_local $0) 251 | ) 252 | (i32.const 0) 253 | ) 254 | (drop 255 | (call $__cxa_atexit 256 | (i32.const 2) 257 | (i32.const 0) 258 | (i32.const 472) 259 | ) 260 | ) 261 | (return) 262 | ) 263 | (call $_ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv 264 | (i32.const 116) 265 | ) 266 | (unreachable) 267 | ) 268 | (call $_ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv 269 | (i32.const 128) 270 | ) 271 | (unreachable) 272 | ) 273 | (func $__cxx_global_array_dtor (type $FUNCSIG$vi) (param $0 i32) 274 | (block $label$0 275 | (br_if $label$0 276 | (i32.eqz 277 | (i32.and 278 | (i32.load8_u offset=116 279 | (i32.const 0) 280 | ) 281 | (i32.const 1) 282 | ) 283 | ) 284 | ) 285 | (call $_ZdlPv 286 | (i32.load offset=124 287 | (i32.const 0) 288 | ) 289 | ) 290 | ) 291 | ) 292 | (func $__cxx_global_array_dtor.3 (type $FUNCSIG$vi) (param $0 i32) 293 | (block $label$0 294 | (br_if $label$0 295 | (i32.eqz 296 | (i32.and 297 | (i32.load8_u offset=128 298 | (i32.const 0) 299 | ) 300 | (i32.const 1) 301 | ) 302 | ) 303 | ) 304 | (call $_ZdlPv 305 | (i32.load offset=136 306 | (i32.const 0) 307 | ) 308 | ) 309 | ) 310 | ) 311 | (func $_ZeqRK11checksum256S1_ (param $0 i32) (param $1 i32) (result i32) 312 | (i32.eqz 313 | (call $memcmp 314 | (get_local $0) 315 | (get_local $1) 316 | (i32.const 32) 317 | ) 318 | ) 319 | ) 320 | (func $_ZeqRK11checksum160S1_ (param $0 i32) (param $1 i32) (result i32) 321 | (i32.eqz 322 | (call $memcmp 323 | (get_local $0) 324 | (get_local $1) 325 | (i32.const 32) 326 | ) 327 | ) 328 | ) 329 | (func $_ZneRK11checksum160S1_ (param $0 i32) (param $1 i32) (result i32) 330 | (i32.ne 331 | (call $memcmp 332 | (get_local $0) 333 | (get_local $1) 334 | (i32.const 32) 335 | ) 336 | (i32.const 0) 337 | ) 338 | ) 339 | (func $now (result i32) 340 | (i32.wrap/i64 341 | (i64.div_u 342 | (call $current_time) 343 | (i64.const 1000000) 344 | ) 345 | ) 346 | ) 347 | (func $_ZN5eosio12require_authERKNS_16permission_levelE (param $0 i32) 348 | (call $require_auth2 349 | (i64.load 350 | (get_local $0) 351 | ) 352 | (i64.load offset=8 353 | (get_local $0) 354 | ) 355 | ) 356 | ) 357 | (func $apply (param $0 i64) (param $1 i64) (param $2 i64) 358 | (local $3 i32) 359 | (local $4 i32) 360 | (local $5 i64) 361 | (local $6 i64) 362 | (local $7 i64) 363 | (local $8 i64) 364 | (local $9 i32) 365 | (i32.store offset=4 366 | (i32.const 0) 367 | (tee_local $9 368 | (i32.sub 369 | (i32.load offset=4 370 | (i32.const 0) 371 | ) 372 | (i32.const 48) 373 | ) 374 | ) 375 | ) 376 | (set_local $6 377 | (i64.const 0) 378 | ) 379 | (set_local $5 380 | (i64.const 59) 381 | ) 382 | (set_local $4 383 | (i32.const 176) 384 | ) 385 | (set_local $7 386 | (i64.const 0) 387 | ) 388 | (loop $label$0 389 | (block $label$1 390 | (block $label$2 391 | (block $label$3 392 | (block $label$4 393 | (block $label$5 394 | (br_if $label$5 395 | (i64.gt_u 396 | (get_local $6) 397 | (i64.const 6) 398 | ) 399 | ) 400 | (br_if $label$4 401 | (i32.gt_u 402 | (i32.and 403 | (i32.add 404 | (tee_local $3 405 | (i32.load8_s 406 | (get_local $4) 407 | ) 408 | ) 409 | (i32.const -97) 410 | ) 411 | (i32.const 255) 412 | ) 413 | (i32.const 25) 414 | ) 415 | ) 416 | (set_local $3 417 | (i32.add 418 | (get_local $3) 419 | (i32.const 165) 420 | ) 421 | ) 422 | (br $label$3) 423 | ) 424 | (set_local $8 425 | (i64.const 0) 426 | ) 427 | (br_if $label$2 428 | (i64.le_u 429 | (get_local $6) 430 | (i64.const 11) 431 | ) 432 | ) 433 | (br $label$1) 434 | ) 435 | (set_local $3 436 | (select 437 | (i32.add 438 | (get_local $3) 439 | (i32.const 208) 440 | ) 441 | (i32.const 0) 442 | (i32.lt_u 443 | (i32.and 444 | (i32.add 445 | (get_local $3) 446 | (i32.const -49) 447 | ) 448 | (i32.const 255) 449 | ) 450 | (i32.const 5) 451 | ) 452 | ) 453 | ) 454 | ) 455 | (set_local $8 456 | (i64.shr_s 457 | (i64.shl 458 | (i64.extend_u/i32 459 | (get_local $3) 460 | ) 461 | (i64.const 56) 462 | ) 463 | (i64.const 56) 464 | ) 465 | ) 466 | ) 467 | (set_local $8 468 | (i64.shl 469 | (i64.and 470 | (get_local $8) 471 | (i64.const 31) 472 | ) 473 | (i64.and 474 | (get_local $5) 475 | (i64.const 4294967295) 476 | ) 477 | ) 478 | ) 479 | ) 480 | (set_local $4 481 | (i32.add 482 | (get_local $4) 483 | (i32.const 1) 484 | ) 485 | ) 486 | (set_local $6 487 | (i64.add 488 | (get_local $6) 489 | (i64.const 1) 490 | ) 491 | ) 492 | (set_local $7 493 | (i64.or 494 | (get_local $8) 495 | (get_local $7) 496 | ) 497 | ) 498 | (br_if $label$0 499 | (i64.ne 500 | (tee_local $5 501 | (i64.add 502 | (get_local $5) 503 | (i64.const -5) 504 | ) 505 | ) 506 | (i64.const -6) 507 | ) 508 | ) 509 | ) 510 | (block $label$6 511 | (br_if $label$6 512 | (i64.ne 513 | (get_local $7) 514 | (get_local $2) 515 | ) 516 | ) 517 | (set_local $6 518 | (i64.const 0) 519 | ) 520 | (set_local $5 521 | (i64.const 59) 522 | ) 523 | (set_local $4 524 | (i32.const 192) 525 | ) 526 | (set_local $7 527 | (i64.const 0) 528 | ) 529 | (loop $label$7 530 | (block $label$8 531 | (block $label$9 532 | (block $label$10 533 | (block $label$11 534 | (block $label$12 535 | (br_if $label$12 536 | (i64.gt_u 537 | (get_local $6) 538 | (i64.const 4) 539 | ) 540 | ) 541 | (br_if $label$11 542 | (i32.gt_u 543 | (i32.and 544 | (i32.add 545 | (tee_local $3 546 | (i32.load8_s 547 | (get_local $4) 548 | ) 549 | ) 550 | (i32.const -97) 551 | ) 552 | (i32.const 255) 553 | ) 554 | (i32.const 25) 555 | ) 556 | ) 557 | (set_local $3 558 | (i32.add 559 | (get_local $3) 560 | (i32.const 165) 561 | ) 562 | ) 563 | (br $label$10) 564 | ) 565 | (set_local $8 566 | (i64.const 0) 567 | ) 568 | (br_if $label$9 569 | (i64.le_u 570 | (get_local $6) 571 | (i64.const 11) 572 | ) 573 | ) 574 | (br $label$8) 575 | ) 576 | (set_local $3 577 | (select 578 | (i32.add 579 | (get_local $3) 580 | (i32.const 208) 581 | ) 582 | (i32.const 0) 583 | (i32.lt_u 584 | (i32.and 585 | (i32.add 586 | (get_local $3) 587 | (i32.const -49) 588 | ) 589 | (i32.const 255) 590 | ) 591 | (i32.const 5) 592 | ) 593 | ) 594 | ) 595 | ) 596 | (set_local $8 597 | (i64.shr_s 598 | (i64.shl 599 | (i64.extend_u/i32 600 | (get_local $3) 601 | ) 602 | (i64.const 56) 603 | ) 604 | (i64.const 56) 605 | ) 606 | ) 607 | ) 608 | (set_local $8 609 | (i64.shl 610 | (i64.and 611 | (get_local $8) 612 | (i64.const 31) 613 | ) 614 | (i64.and 615 | (get_local $5) 616 | (i64.const 4294967295) 617 | ) 618 | ) 619 | ) 620 | ) 621 | (set_local $4 622 | (i32.add 623 | (get_local $4) 624 | (i32.const 1) 625 | ) 626 | ) 627 | (set_local $6 628 | (i64.add 629 | (get_local $6) 630 | (i64.const 1) 631 | ) 632 | ) 633 | (set_local $7 634 | (i64.or 635 | (get_local $8) 636 | (get_local $7) 637 | ) 638 | ) 639 | (br_if $label$7 640 | (i64.ne 641 | (tee_local $5 642 | (i64.add 643 | (get_local $5) 644 | (i64.const -5) 645 | ) 646 | ) 647 | (i64.const -6) 648 | ) 649 | ) 650 | ) 651 | (call $eosio_assert 652 | (i64.eq 653 | (get_local $7) 654 | (get_local $1) 655 | ) 656 | (i32.const 208) 657 | ) 658 | ) 659 | (block $label$13 660 | (block $label$14 661 | (br_if $label$14 662 | (i64.eq 663 | (get_local $1) 664 | (get_local $0) 665 | ) 666 | ) 667 | (set_local $6 668 | (i64.const 0) 669 | ) 670 | (set_local $5 671 | (i64.const 59) 672 | ) 673 | (set_local $4 674 | (i32.const 176) 675 | ) 676 | (set_local $7 677 | (i64.const 0) 678 | ) 679 | (loop $label$15 680 | (block $label$16 681 | (block $label$17 682 | (block $label$18 683 | (block $label$19 684 | (block $label$20 685 | (br_if $label$20 686 | (i64.gt_u 687 | (get_local $6) 688 | (i64.const 6) 689 | ) 690 | ) 691 | (br_if $label$19 692 | (i32.gt_u 693 | (i32.and 694 | (i32.add 695 | (tee_local $3 696 | (i32.load8_s 697 | (get_local $4) 698 | ) 699 | ) 700 | (i32.const -97) 701 | ) 702 | (i32.const 255) 703 | ) 704 | (i32.const 25) 705 | ) 706 | ) 707 | (set_local $3 708 | (i32.add 709 | (get_local $3) 710 | (i32.const 165) 711 | ) 712 | ) 713 | (br $label$18) 714 | ) 715 | (set_local $8 716 | (i64.const 0) 717 | ) 718 | (br_if $label$17 719 | (i64.le_u 720 | (get_local $6) 721 | (i64.const 11) 722 | ) 723 | ) 724 | (br $label$16) 725 | ) 726 | (set_local $3 727 | (select 728 | (i32.add 729 | (get_local $3) 730 | (i32.const 208) 731 | ) 732 | (i32.const 0) 733 | (i32.lt_u 734 | (i32.and 735 | (i32.add 736 | (get_local $3) 737 | (i32.const -49) 738 | ) 739 | (i32.const 255) 740 | ) 741 | (i32.const 5) 742 | ) 743 | ) 744 | ) 745 | ) 746 | (set_local $8 747 | (i64.shr_s 748 | (i64.shl 749 | (i64.extend_u/i32 750 | (get_local $3) 751 | ) 752 | (i64.const 56) 753 | ) 754 | (i64.const 56) 755 | ) 756 | ) 757 | ) 758 | (set_local $8 759 | (i64.shl 760 | (i64.and 761 | (get_local $8) 762 | (i64.const 31) 763 | ) 764 | (i64.and 765 | (get_local $5) 766 | (i64.const 4294967295) 767 | ) 768 | ) 769 | ) 770 | ) 771 | (set_local $4 772 | (i32.add 773 | (get_local $4) 774 | (i32.const 1) 775 | ) 776 | ) 777 | (set_local $6 778 | (i64.add 779 | (get_local $6) 780 | (i64.const 1) 781 | ) 782 | ) 783 | (set_local $7 784 | (i64.or 785 | (get_local $8) 786 | (get_local $7) 787 | ) 788 | ) 789 | (br_if $label$15 790 | (i64.ne 791 | (tee_local $5 792 | (i64.add 793 | (get_local $5) 794 | (i64.const -5) 795 | ) 796 | ) 797 | (i64.const -6) 798 | ) 799 | ) 800 | ) 801 | (br_if $label$13 802 | (i64.ne 803 | (get_local $7) 804 | (get_local $2) 805 | ) 806 | ) 807 | ) 808 | (i64.store offset=40 809 | (get_local $9) 810 | (get_local $0) 811 | ) 812 | (block $label$21 813 | (br_if $label$21 814 | (i64.eq 815 | (get_local $2) 816 | (i64.const -8279457654029533184) 817 | ) 818 | ) 819 | (br_if $label$13 820 | (i64.ne 821 | (get_local $2) 822 | (i64.const 4851652232166244352) 823 | ) 824 | ) 825 | (i32.store offset=36 826 | (get_local $9) 827 | (i32.const 0) 828 | ) 829 | (i32.store offset=32 830 | (get_local $9) 831 | (i32.const 3) 832 | ) 833 | (i64.store offset=8 align=4 834 | (get_local $9) 835 | (i64.load offset=32 836 | (get_local $9) 837 | ) 838 | ) 839 | (drop 840 | (call $_ZN5eosio14execute_actionI4demoS1_JRKyEEEbPT_MT0_FvDpT1_E 841 | (i32.add 842 | (get_local $9) 843 | (i32.const 40) 844 | ) 845 | (i32.add 846 | (get_local $9) 847 | (i32.const 8) 848 | ) 849 | ) 850 | ) 851 | (br $label$13) 852 | ) 853 | (i32.store offset=28 854 | (get_local $9) 855 | (i32.const 0) 856 | ) 857 | (i32.store offset=24 858 | (get_local $9) 859 | (i32.const 4) 860 | ) 861 | (i64.store offset=16 align=4 862 | (get_local $9) 863 | (i64.load offset=24 864 | (get_local $9) 865 | ) 866 | ) 867 | (drop 868 | (call $_ZN5eosio14execute_actionI4demoS1_JRKyRKhS5_EEEbPT_MT0_FvDpT1_E 869 | (i32.add 870 | (get_local $9) 871 | (i32.const 40) 872 | ) 873 | (i32.add 874 | (get_local $9) 875 | (i32.const 16) 876 | ) 877 | ) 878 | ) 879 | ) 880 | (i32.store offset=4 881 | (i32.const 0) 882 | (i32.add 883 | (get_local $9) 884 | (i32.const 48) 885 | ) 886 | ) 887 | ) 888 | (func $_ZN4demo5checkERKy (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) 889 | (local $2 i32) 890 | (local $3 i32) 891 | (local $4 i64) 892 | (local $5 i32) 893 | (local $6 i64) 894 | (local $7 i64) 895 | (local $8 i64) 896 | (local $9 i64) 897 | (local $10 i64) 898 | (local $11 i32) 899 | (i32.store offset=4 900 | (i32.const 0) 901 | (tee_local $11 902 | (i32.sub 903 | (i32.load offset=4 904 | (i32.const 0) 905 | ) 906 | (i32.const 128) 907 | ) 908 | ) 909 | ) 910 | (call $eosio_assert 911 | (call $is_account 912 | (i64.load 913 | (get_local $1) 914 | ) 915 | ) 916 | (i32.const 288) 917 | ) 918 | (set_local $7 919 | (i64.const 0) 920 | ) 921 | (set_local $6 922 | (i64.const 59) 923 | ) 924 | (set_local $5 925 | (i32.const 320) 926 | ) 927 | (set_local $8 928 | (i64.const 0) 929 | ) 930 | (loop $label$0 931 | (block $label$1 932 | (block $label$2 933 | (block $label$3 934 | (block $label$4 935 | (block $label$5 936 | (br_if $label$5 937 | (i64.gt_u 938 | (get_local $7) 939 | (i64.const 9) 940 | ) 941 | ) 942 | (br_if $label$4 943 | (i32.gt_u 944 | (i32.and 945 | (i32.add 946 | (tee_local $2 947 | (i32.load8_s 948 | (get_local $5) 949 | ) 950 | ) 951 | (i32.const -97) 952 | ) 953 | (i32.const 255) 954 | ) 955 | (i32.const 25) 956 | ) 957 | ) 958 | (set_local $2 959 | (i32.add 960 | (get_local $2) 961 | (i32.const 165) 962 | ) 963 | ) 964 | (br $label$3) 965 | ) 966 | (set_local $9 967 | (i64.const 0) 968 | ) 969 | (br_if $label$2 970 | (i64.le_u 971 | (get_local $7) 972 | (i64.const 11) 973 | ) 974 | ) 975 | (br $label$1) 976 | ) 977 | (set_local $2 978 | (select 979 | (i32.add 980 | (get_local $2) 981 | (i32.const 208) 982 | ) 983 | (i32.const 0) 984 | (i32.lt_u 985 | (i32.and 986 | (i32.add 987 | (get_local $2) 988 | (i32.const -49) 989 | ) 990 | (i32.const 255) 991 | ) 992 | (i32.const 5) 993 | ) 994 | ) 995 | ) 996 | ) 997 | (set_local $9 998 | (i64.shr_s 999 | (i64.shl 1000 | (i64.extend_u/i32 1001 | (get_local $2) 1002 | ) 1003 | (i64.const 56) 1004 | ) 1005 | (i64.const 56) 1006 | ) 1007 | ) 1008 | ) 1009 | (set_local $9 1010 | (i64.shl 1011 | (i64.and 1012 | (get_local $9) 1013 | (i64.const 31) 1014 | ) 1015 | (i64.and 1016 | (get_local $6) 1017 | (i64.const 4294967295) 1018 | ) 1019 | ) 1020 | ) 1021 | ) 1022 | (set_local $5 1023 | (i32.add 1024 | (get_local $5) 1025 | (i32.const 1) 1026 | ) 1027 | ) 1028 | (set_local $7 1029 | (i64.add 1030 | (get_local $7) 1031 | (i64.const 1) 1032 | ) 1033 | ) 1034 | (set_local $8 1035 | (i64.or 1036 | (get_local $9) 1037 | (get_local $8) 1038 | ) 1039 | ) 1040 | (br_if $label$0 1041 | (i64.ne 1042 | (tee_local $6 1043 | (i64.add 1044 | (get_local $6) 1045 | (i64.const -5) 1046 | ) 1047 | ) 1048 | (i64.const -6) 1049 | ) 1050 | ) 1051 | ) 1052 | (set_local $7 1053 | (i64.const 0) 1054 | ) 1055 | (set_local $6 1056 | (i64.const 59) 1057 | ) 1058 | (set_local $5 1059 | (i32.const 320) 1060 | ) 1061 | (set_local $10 1062 | (i64.const 0) 1063 | ) 1064 | (loop $label$6 1065 | (block $label$7 1066 | (block $label$8 1067 | (block $label$9 1068 | (block $label$10 1069 | (block $label$11 1070 | (br_if $label$11 1071 | (i64.gt_u 1072 | (get_local $7) 1073 | (i64.const 9) 1074 | ) 1075 | ) 1076 | (br_if $label$10 1077 | (i32.gt_u 1078 | (i32.and 1079 | (i32.add 1080 | (tee_local $2 1081 | (i32.load8_s 1082 | (get_local $5) 1083 | ) 1084 | ) 1085 | (i32.const -97) 1086 | ) 1087 | (i32.const 255) 1088 | ) 1089 | (i32.const 25) 1090 | ) 1091 | ) 1092 | (set_local $2 1093 | (i32.add 1094 | (get_local $2) 1095 | (i32.const 165) 1096 | ) 1097 | ) 1098 | (br $label$9) 1099 | ) 1100 | (set_local $9 1101 | (i64.const 0) 1102 | ) 1103 | (br_if $label$8 1104 | (i64.le_u 1105 | (get_local $7) 1106 | (i64.const 11) 1107 | ) 1108 | ) 1109 | (br $label$7) 1110 | ) 1111 | (set_local $2 1112 | (select 1113 | (i32.add 1114 | (get_local $2) 1115 | (i32.const 208) 1116 | ) 1117 | (i32.const 0) 1118 | (i32.lt_u 1119 | (i32.and 1120 | (i32.add 1121 | (get_local $2) 1122 | (i32.const -49) 1123 | ) 1124 | (i32.const 255) 1125 | ) 1126 | (i32.const 5) 1127 | ) 1128 | ) 1129 | ) 1130 | ) 1131 | (set_local $9 1132 | (i64.shr_s 1133 | (i64.shl 1134 | (i64.extend_u/i32 1135 | (get_local $2) 1136 | ) 1137 | (i64.const 56) 1138 | ) 1139 | (i64.const 56) 1140 | ) 1141 | ) 1142 | ) 1143 | (set_local $9 1144 | (i64.shl 1145 | (i64.and 1146 | (get_local $9) 1147 | (i64.const 31) 1148 | ) 1149 | (i64.and 1150 | (get_local $6) 1151 | (i64.const 4294967295) 1152 | ) 1153 | ) 1154 | ) 1155 | ) 1156 | (set_local $5 1157 | (i32.add 1158 | (get_local $5) 1159 | (i32.const 1) 1160 | ) 1161 | ) 1162 | (set_local $7 1163 | (i64.add 1164 | (get_local $7) 1165 | (i64.const 1) 1166 | ) 1167 | ) 1168 | (set_local $10 1169 | (i64.or 1170 | (get_local $9) 1171 | (get_local $10) 1172 | ) 1173 | ) 1174 | (br_if $label$6 1175 | (i64.ne 1176 | (tee_local $6 1177 | (i64.add 1178 | (get_local $6) 1179 | (i64.const -5) 1180 | ) 1181 | ) 1182 | (i64.const -6) 1183 | ) 1184 | ) 1185 | ) 1186 | (i32.store 1187 | (i32.add 1188 | (get_local $11) 1189 | (i32.const 104) 1190 | ) 1191 | (i32.const 0) 1192 | ) 1193 | (i64.store offset=88 1194 | (get_local $11) 1195 | (i64.const -1) 1196 | ) 1197 | (set_local $7 1198 | (i64.const 0) 1199 | ) 1200 | (i64.store offset=96 1201 | (get_local $11) 1202 | (i64.const 0) 1203 | ) 1204 | (i64.store offset=80 1205 | (get_local $11) 1206 | (get_local $10) 1207 | ) 1208 | (i64.store offset=72 1209 | (get_local $11) 1210 | (get_local $8) 1211 | ) 1212 | (block $label$12 1213 | (block $label$13 1214 | (block $label$14 1215 | (block $label$15 1216 | (block $label$16 1217 | (br_if $label$16 1218 | (i32.lt_s 1219 | (tee_local $5 1220 | (call $db_find_i64 1221 | (get_local $8) 1222 | (get_local $10) 1223 | (i64.const -3617068566592880640) 1224 | (i64.load 1225 | (get_local $1) 1226 | ) 1227 | ) 1228 | ) 1229 | (i32.const 0) 1230 | ) 1231 | ) 1232 | (call $eosio_assert 1233 | (i32.eq 1234 | (i32.load offset=16 1235 | (tee_local $3 1236 | (call $_ZNK5eosio11multi_indexILy14829675507116670976EN8prochain6RatingEJEE31load_object_by_primary_iteratorEl 1237 | (i32.add 1238 | (get_local $11) 1239 | (i32.const 72) 1240 | ) 1241 | (get_local $5) 1242 | ) 1243 | ) 1244 | ) 1245 | (i32.add 1246 | (get_local $11) 1247 | (i32.const 72) 1248 | ) 1249 | ) 1250 | (i32.const 336) 1251 | ) 1252 | (br_if $label$15 1253 | (i32.eq 1254 | (tee_local $5 1255 | (i32.load8_u offset=8 1256 | (get_local $3) 1257 | ) 1258 | ) 1259 | (i32.const 1) 1260 | ) 1261 | ) 1262 | (br_if $label$14 1263 | (get_local $5) 1264 | ) 1265 | (set_local $10 1266 | (i64.load 1267 | (get_local $0) 1268 | ) 1269 | ) 1270 | (set_local $7 1271 | (i64.const 0) 1272 | ) 1273 | (set_local $6 1274 | (i64.const 59) 1275 | ) 1276 | (set_local $5 1277 | (i32.const 400) 1278 | ) 1279 | (set_local $8 1280 | (i64.const 0) 1281 | ) 1282 | (loop $label$17 1283 | (block $label$18 1284 | (block $label$19 1285 | (block $label$20 1286 | (block $label$21 1287 | (block $label$22 1288 | (br_if $label$22 1289 | (i64.gt_u 1290 | (get_local $7) 1291 | (i64.const 5) 1292 | ) 1293 | ) 1294 | (br_if $label$21 1295 | (i32.gt_u 1296 | (i32.and 1297 | (i32.add 1298 | (tee_local $2 1299 | (i32.load8_s 1300 | (get_local $5) 1301 | ) 1302 | ) 1303 | (i32.const -97) 1304 | ) 1305 | (i32.const 255) 1306 | ) 1307 | (i32.const 25) 1308 | ) 1309 | ) 1310 | (set_local $2 1311 | (i32.add 1312 | (get_local $2) 1313 | (i32.const 165) 1314 | ) 1315 | ) 1316 | (br $label$20) 1317 | ) 1318 | (set_local $9 1319 | (i64.const 0) 1320 | ) 1321 | (br_if $label$19 1322 | (i64.le_u 1323 | (get_local $7) 1324 | (i64.const 11) 1325 | ) 1326 | ) 1327 | (br $label$18) 1328 | ) 1329 | (set_local $2 1330 | (select 1331 | (i32.add 1332 | (get_local $2) 1333 | (i32.const 208) 1334 | ) 1335 | (i32.const 0) 1336 | (i32.lt_u 1337 | (i32.and 1338 | (i32.add 1339 | (get_local $2) 1340 | (i32.const -49) 1341 | ) 1342 | (i32.const 255) 1343 | ) 1344 | (i32.const 5) 1345 | ) 1346 | ) 1347 | ) 1348 | ) 1349 | (set_local $9 1350 | (i64.shr_s 1351 | (i64.shl 1352 | (i64.extend_u/i32 1353 | (get_local $2) 1354 | ) 1355 | (i64.const 56) 1356 | ) 1357 | (i64.const 56) 1358 | ) 1359 | ) 1360 | ) 1361 | (set_local $9 1362 | (i64.shl 1363 | (i64.and 1364 | (get_local $9) 1365 | (i64.const 31) 1366 | ) 1367 | (i64.and 1368 | (get_local $6) 1369 | (i64.const 4294967295) 1370 | ) 1371 | ) 1372 | ) 1373 | ) 1374 | (set_local $5 1375 | (i32.add 1376 | (get_local $5) 1377 | (i32.const 1) 1378 | ) 1379 | ) 1380 | (set_local $7 1381 | (i64.add 1382 | (get_local $7) 1383 | (i64.const 1) 1384 | ) 1385 | ) 1386 | (set_local $8 1387 | (i64.or 1388 | (get_local $9) 1389 | (get_local $8) 1390 | ) 1391 | ) 1392 | (br_if $label$17 1393 | (i64.ne 1394 | (tee_local $6 1395 | (i64.add 1396 | (get_local $6) 1397 | (i64.const -5) 1398 | ) 1399 | ) 1400 | (i64.const -6) 1401 | ) 1402 | ) 1403 | ) 1404 | (i64.store offset=24 1405 | (get_local $11) 1406 | (get_local $8) 1407 | ) 1408 | (i64.store offset=16 1409 | (get_local $11) 1410 | (get_local $10) 1411 | ) 1412 | (set_local $7 1413 | (i64.const 0) 1414 | ) 1415 | (set_local $6 1416 | (i64.const 59) 1417 | ) 1418 | (set_local $5 1419 | (i32.const 416) 1420 | ) 1421 | (set_local $8 1422 | (i64.const 0) 1423 | ) 1424 | (loop $label$23 1425 | (block $label$24 1426 | (block $label$25 1427 | (block $label$26 1428 | (block $label$27 1429 | (block $label$28 1430 | (br_if $label$28 1431 | (i64.gt_u 1432 | (get_local $7) 1433 | (i64.const 9) 1434 | ) 1435 | ) 1436 | (br_if $label$27 1437 | (i32.gt_u 1438 | (i32.and 1439 | (i32.add 1440 | (tee_local $2 1441 | (i32.load8_s 1442 | (get_local $5) 1443 | ) 1444 | ) 1445 | (i32.const -97) 1446 | ) 1447 | (i32.const 255) 1448 | ) 1449 | (i32.const 25) 1450 | ) 1451 | ) 1452 | (set_local $2 1453 | (i32.add 1454 | (get_local $2) 1455 | (i32.const 165) 1456 | ) 1457 | ) 1458 | (br $label$26) 1459 | ) 1460 | (set_local $9 1461 | (i64.const 0) 1462 | ) 1463 | (br_if $label$25 1464 | (i64.le_u 1465 | (get_local $7) 1466 | (i64.const 11) 1467 | ) 1468 | ) 1469 | (br $label$24) 1470 | ) 1471 | (set_local $2 1472 | (select 1473 | (i32.add 1474 | (get_local $2) 1475 | (i32.const 208) 1476 | ) 1477 | (i32.const 0) 1478 | (i32.lt_u 1479 | (i32.and 1480 | (i32.add 1481 | (get_local $2) 1482 | (i32.const -49) 1483 | ) 1484 | (i32.const 255) 1485 | ) 1486 | (i32.const 5) 1487 | ) 1488 | ) 1489 | ) 1490 | ) 1491 | (set_local $9 1492 | (i64.shr_s 1493 | (i64.shl 1494 | (i64.extend_u/i32 1495 | (get_local $2) 1496 | ) 1497 | (i64.const 56) 1498 | ) 1499 | (i64.const 56) 1500 | ) 1501 | ) 1502 | ) 1503 | (set_local $9 1504 | (i64.shl 1505 | (i64.and 1506 | (get_local $9) 1507 | (i64.const 31) 1508 | ) 1509 | (i64.and 1510 | (get_local $6) 1511 | (i64.const 4294967295) 1512 | ) 1513 | ) 1514 | ) 1515 | ) 1516 | (set_local $5 1517 | (i32.add 1518 | (get_local $5) 1519 | (i32.const 1) 1520 | ) 1521 | ) 1522 | (set_local $7 1523 | (i64.add 1524 | (get_local $7) 1525 | (i64.const 1) 1526 | ) 1527 | ) 1528 | (set_local $8 1529 | (i64.or 1530 | (get_local $9) 1531 | (get_local $8) 1532 | ) 1533 | ) 1534 | (br_if $label$23 1535 | (i64.ne 1536 | (tee_local $6 1537 | (i64.add 1538 | (get_local $6) 1539 | (i64.const -5) 1540 | ) 1541 | ) 1542 | (i64.const -6) 1543 | ) 1544 | ) 1545 | ) 1546 | (i32.store8 offset=8 1547 | (get_local $11) 1548 | (i32.const 0) 1549 | ) 1550 | (i64.store 1551 | (get_local $11) 1552 | (i64.load 1553 | (get_local $1) 1554 | ) 1555 | ) 1556 | (i32.store8 offset=9 1557 | (get_local $11) 1558 | (i32.load8_u offset=9 1559 | (get_local $3) 1560 | ) 1561 | ) 1562 | (call $_ZN5eosio4packINS_6actionEEENSt3__16vectorIcNS2_9allocatorIcEEEERKT_ 1563 | (i32.add 1564 | (get_local $11) 1565 | (i32.const 112) 1566 | ) 1567 | (tee_local $5 1568 | (call $_ZN5eosio6actionC2INSt3__15tupleIJyhhEEEEERKNS_16permission_levelEyyOT_ 1569 | (i32.add 1570 | (get_local $11) 1571 | (i32.const 32) 1572 | ) 1573 | (i32.add 1574 | (get_local $11) 1575 | (i32.const 16) 1576 | ) 1577 | (get_local $10) 1578 | (get_local $8) 1579 | (get_local $11) 1580 | ) 1581 | ) 1582 | ) 1583 | (call $send_inline 1584 | (tee_local $2 1585 | (i32.load offset=112 1586 | (get_local $11) 1587 | ) 1588 | ) 1589 | (i32.sub 1590 | (i32.load offset=116 1591 | (get_local $11) 1592 | ) 1593 | (get_local $2) 1594 | ) 1595 | ) 1596 | (block $label$29 1597 | (br_if $label$29 1598 | (i32.eqz 1599 | (tee_local $2 1600 | (i32.load offset=112 1601 | (get_local $11) 1602 | ) 1603 | ) 1604 | ) 1605 | ) 1606 | (i32.store offset=116 1607 | (get_local $11) 1608 | (get_local $2) 1609 | ) 1610 | (call $_ZdlPv 1611 | (get_local $2) 1612 | ) 1613 | ) 1614 | (block $label$30 1615 | (br_if $label$30 1616 | (i32.eqz 1617 | (tee_local $2 1618 | (i32.load offset=28 1619 | (get_local $5) 1620 | ) 1621 | ) 1622 | ) 1623 | ) 1624 | (i32.store 1625 | (i32.add 1626 | (get_local $5) 1627 | (i32.const 32) 1628 | ) 1629 | (get_local $2) 1630 | ) 1631 | (call $_ZdlPv 1632 | (get_local $2) 1633 | ) 1634 | ) 1635 | (br_if $label$14 1636 | (i32.eqz 1637 | (tee_local $2 1638 | (i32.load offset=16 1639 | (get_local $5) 1640 | ) 1641 | ) 1642 | ) 1643 | ) 1644 | (i32.store 1645 | (i32.add 1646 | (get_local $5) 1647 | (i32.const 20) 1648 | ) 1649 | (get_local $2) 1650 | ) 1651 | (call $_ZdlPv 1652 | (get_local $2) 1653 | ) 1654 | (br_if $label$13 1655 | (tee_local $1 1656 | (i32.load offset=96 1657 | (get_local $11) 1658 | ) 1659 | ) 1660 | ) 1661 | (br $label$12) 1662 | ) 1663 | (set_local $4 1664 | (i64.load 1665 | (get_local $0) 1666 | ) 1667 | ) 1668 | (set_local $6 1669 | (i64.const 59) 1670 | ) 1671 | (set_local $5 1672 | (i32.const 400) 1673 | ) 1674 | (set_local $8 1675 | (i64.const 0) 1676 | ) 1677 | (loop $label$31 1678 | (block $label$32 1679 | (block $label$33 1680 | (block $label$34 1681 | (block $label$35 1682 | (block $label$36 1683 | (br_if $label$36 1684 | (i64.gt_u 1685 | (get_local $7) 1686 | (i64.const 5) 1687 | ) 1688 | ) 1689 | (br_if $label$35 1690 | (i32.gt_u 1691 | (i32.and 1692 | (i32.add 1693 | (tee_local $2 1694 | (i32.load8_s 1695 | (get_local $5) 1696 | ) 1697 | ) 1698 | (i32.const -97) 1699 | ) 1700 | (i32.const 255) 1701 | ) 1702 | (i32.const 25) 1703 | ) 1704 | ) 1705 | (set_local $2 1706 | (i32.add 1707 | (get_local $2) 1708 | (i32.const 165) 1709 | ) 1710 | ) 1711 | (br $label$34) 1712 | ) 1713 | (set_local $9 1714 | (i64.const 0) 1715 | ) 1716 | (br_if $label$33 1717 | (i64.le_u 1718 | (get_local $7) 1719 | (i64.const 11) 1720 | ) 1721 | ) 1722 | (br $label$32) 1723 | ) 1724 | (set_local $2 1725 | (select 1726 | (i32.add 1727 | (get_local $2) 1728 | (i32.const 208) 1729 | ) 1730 | (i32.const 0) 1731 | (i32.lt_u 1732 | (i32.and 1733 | (i32.add 1734 | (get_local $2) 1735 | (i32.const -49) 1736 | ) 1737 | (i32.const 255) 1738 | ) 1739 | (i32.const 5) 1740 | ) 1741 | ) 1742 | ) 1743 | ) 1744 | (set_local $9 1745 | (i64.shr_s 1746 | (i64.shl 1747 | (i64.extend_u/i32 1748 | (get_local $2) 1749 | ) 1750 | (i64.const 56) 1751 | ) 1752 | (i64.const 56) 1753 | ) 1754 | ) 1755 | ) 1756 | (set_local $9 1757 | (i64.shl 1758 | (i64.and 1759 | (get_local $9) 1760 | (i64.const 31) 1761 | ) 1762 | (i64.and 1763 | (get_local $6) 1764 | (i64.const 4294967295) 1765 | ) 1766 | ) 1767 | ) 1768 | ) 1769 | (set_local $5 1770 | (i32.add 1771 | (get_local $5) 1772 | (i32.const 1) 1773 | ) 1774 | ) 1775 | (set_local $7 1776 | (i64.add 1777 | (get_local $7) 1778 | (i64.const 1) 1779 | ) 1780 | ) 1781 | (set_local $8 1782 | (i64.or 1783 | (get_local $9) 1784 | (get_local $8) 1785 | ) 1786 | ) 1787 | (br_if $label$31 1788 | (i64.ne 1789 | (tee_local $6 1790 | (i64.add 1791 | (get_local $6) 1792 | (i64.const -5) 1793 | ) 1794 | ) 1795 | (i64.const -6) 1796 | ) 1797 | ) 1798 | ) 1799 | (set_local $7 1800 | (i64.const 0) 1801 | ) 1802 | (set_local $6 1803 | (i64.const 59) 1804 | ) 1805 | (set_local $5 1806 | (i32.const 416) 1807 | ) 1808 | (set_local $10 1809 | (i64.const 0) 1810 | ) 1811 | (loop $label$37 1812 | (block $label$38 1813 | (block $label$39 1814 | (block $label$40 1815 | (block $label$41 1816 | (block $label$42 1817 | (br_if $label$42 1818 | (i64.gt_u 1819 | (get_local $7) 1820 | (i64.const 9) 1821 | ) 1822 | ) 1823 | (br_if $label$41 1824 | (i32.gt_u 1825 | (i32.and 1826 | (i32.add 1827 | (tee_local $2 1828 | (i32.load8_s 1829 | (get_local $5) 1830 | ) 1831 | ) 1832 | (i32.const -97) 1833 | ) 1834 | (i32.const 255) 1835 | ) 1836 | (i32.const 25) 1837 | ) 1838 | ) 1839 | (set_local $2 1840 | (i32.add 1841 | (get_local $2) 1842 | (i32.const 165) 1843 | ) 1844 | ) 1845 | (br $label$40) 1846 | ) 1847 | (set_local $9 1848 | (i64.const 0) 1849 | ) 1850 | (br_if $label$39 1851 | (i64.le_u 1852 | (get_local $7) 1853 | (i64.const 11) 1854 | ) 1855 | ) 1856 | (br $label$38) 1857 | ) 1858 | (set_local $2 1859 | (select 1860 | (i32.add 1861 | (get_local $2) 1862 | (i32.const 208) 1863 | ) 1864 | (i32.const 0) 1865 | (i32.lt_u 1866 | (i32.and 1867 | (i32.add 1868 | (get_local $2) 1869 | (i32.const -49) 1870 | ) 1871 | (i32.const 255) 1872 | ) 1873 | (i32.const 5) 1874 | ) 1875 | ) 1876 | ) 1877 | ) 1878 | (set_local $9 1879 | (i64.shr_s 1880 | (i64.shl 1881 | (i64.extend_u/i32 1882 | (get_local $2) 1883 | ) 1884 | (i64.const 56) 1885 | ) 1886 | (i64.const 56) 1887 | ) 1888 | ) 1889 | ) 1890 | (set_local $9 1891 | (i64.shl 1892 | (i64.and 1893 | (get_local $9) 1894 | (i64.const 31) 1895 | ) 1896 | (i64.and 1897 | (get_local $6) 1898 | (i64.const 4294967295) 1899 | ) 1900 | ) 1901 | ) 1902 | ) 1903 | (set_local $5 1904 | (i32.add 1905 | (get_local $5) 1906 | (i32.const 1) 1907 | ) 1908 | ) 1909 | (set_local $7 1910 | (i64.add 1911 | (get_local $7) 1912 | (i64.const 1) 1913 | ) 1914 | ) 1915 | (set_local $10 1916 | (i64.or 1917 | (get_local $9) 1918 | (get_local $10) 1919 | ) 1920 | ) 1921 | (br_if $label$37 1922 | (i64.ne 1923 | (tee_local $6 1924 | (i64.add 1925 | (get_local $6) 1926 | (i64.const -5) 1927 | ) 1928 | ) 1929 | (i64.const -6) 1930 | ) 1931 | ) 1932 | ) 1933 | (i64.store offset=16 1934 | (get_local $11) 1935 | (i64.load 1936 | (get_local $1) 1937 | ) 1938 | ) 1939 | (i32.store offset=24 1940 | (get_local $11) 1941 | (i32.const 0) 1942 | ) 1943 | (i32.store8 offset=28 1944 | (get_local $11) 1945 | (i32.load8_u offset=16 1946 | (i32.const 0) 1947 | ) 1948 | ) 1949 | (i64.store offset=32 1950 | (get_local $11) 1951 | (get_local $4) 1952 | ) 1953 | (i64.store offset=40 1954 | (get_local $11) 1955 | (get_local $10) 1956 | ) 1957 | (i64.store 1958 | (tee_local $5 1959 | (call $_Znwj 1960 | (i32.const 16) 1961 | ) 1962 | ) 1963 | (get_local $4) 1964 | ) 1965 | (i64.store offset=8 1966 | (get_local $5) 1967 | (get_local $8) 1968 | ) 1969 | (i32.store 1970 | (tee_local $2 1971 | (i32.add 1972 | (get_local $11) 1973 | (i32.const 64) 1974 | ) 1975 | ) 1976 | (i32.const 0) 1977 | ) 1978 | (i32.store 1979 | (i32.add 1980 | (get_local $11) 1981 | (i32.const 56) 1982 | ) 1983 | (tee_local $1 1984 | (i32.add 1985 | (get_local $5) 1986 | (i32.const 16) 1987 | ) 1988 | ) 1989 | ) 1990 | (i32.store 1991 | (i32.add 1992 | (get_local $11) 1993 | (i32.const 52) 1994 | ) 1995 | (get_local $1) 1996 | ) 1997 | (i32.store offset=48 1998 | (get_local $11) 1999 | (get_local $5) 2000 | ) 2001 | (i32.store offset=60 2002 | (get_local $11) 2003 | (i32.const 0) 2004 | ) 2005 | (i32.store 2006 | (i32.add 2007 | (get_local $11) 2008 | (i32.const 68) 2009 | ) 2010 | (i32.const 0) 2011 | ) 2012 | (call $_ZNSt3__16vectorIcNS_9allocatorIcEEE8__appendEj 2013 | (i32.add 2014 | (get_local $11) 2015 | (i32.const 60) 2016 | ) 2017 | (i32.const 13) 2018 | ) 2019 | (call $eosio_assert 2020 | (i32.gt_s 2021 | (tee_local $2 2022 | (i32.sub 2023 | (i32.load 2024 | (get_local $2) 2025 | ) 2026 | (tee_local $5 2027 | (i32.load offset=60 2028 | (get_local $11) 2029 | ) 2030 | ) 2031 | ) 2032 | ) 2033 | (i32.const 7) 2034 | ) 2035 | (i32.const 432) 2036 | ) 2037 | (drop 2038 | (call $memcpy 2039 | (get_local $5) 2040 | (i32.add 2041 | (get_local $11) 2042 | (i32.const 16) 2043 | ) 2044 | (i32.const 8) 2045 | ) 2046 | ) 2047 | (call $eosio_assert 2048 | (i32.gt_s 2049 | (i32.add 2050 | (get_local $2) 2051 | (i32.const -8) 2052 | ) 2053 | (i32.const 3) 2054 | ) 2055 | (i32.const 432) 2056 | ) 2057 | (drop 2058 | (call $memcpy 2059 | (i32.add 2060 | (get_local $5) 2061 | (i32.const 8) 2062 | ) 2063 | (i32.add 2064 | (i32.add 2065 | (get_local $11) 2066 | (i32.const 16) 2067 | ) 2068 | (i32.const 8) 2069 | ) 2070 | (i32.const 4) 2071 | ) 2072 | ) 2073 | (call $eosio_assert 2074 | (i32.gt_s 2075 | (i32.add 2076 | (get_local $2) 2077 | (i32.const -12) 2078 | ) 2079 | (i32.const 0) 2080 | ) 2081 | (i32.const 432) 2082 | ) 2083 | (drop 2084 | (call $memcpy 2085 | (i32.add 2086 | (get_local $5) 2087 | (i32.const 12) 2088 | ) 2089 | (i32.add 2090 | (i32.add 2091 | (get_local $11) 2092 | (i32.const 16) 2093 | ) 2094 | (i32.const 12) 2095 | ) 2096 | (i32.const 1) 2097 | ) 2098 | ) 2099 | (call $_ZN5eosio4packINS_6actionEEENSt3__16vectorIcNS2_9allocatorIcEEEERKT_ 2100 | (get_local $11) 2101 | (i32.add 2102 | (get_local $11) 2103 | (i32.const 32) 2104 | ) 2105 | ) 2106 | (call $send_inline 2107 | (tee_local $5 2108 | (i32.load 2109 | (get_local $11) 2110 | ) 2111 | ) 2112 | (i32.sub 2113 | (i32.load offset=4 2114 | (get_local $11) 2115 | ) 2116 | (get_local $5) 2117 | ) 2118 | ) 2119 | (block $label$43 2120 | (br_if $label$43 2121 | (i32.eqz 2122 | (tee_local $5 2123 | (i32.load 2124 | (get_local $11) 2125 | ) 2126 | ) 2127 | ) 2128 | ) 2129 | (i32.store offset=4 2130 | (get_local $11) 2131 | (get_local $5) 2132 | ) 2133 | (call $_ZdlPv 2134 | (get_local $5) 2135 | ) 2136 | ) 2137 | (block $label$44 2138 | (br_if $label$44 2139 | (i32.eqz 2140 | (tee_local $5 2141 | (i32.load offset=60 2142 | (get_local $11) 2143 | ) 2144 | ) 2145 | ) 2146 | ) 2147 | (i32.store 2148 | (i32.add 2149 | (get_local $11) 2150 | (i32.const 64) 2151 | ) 2152 | (get_local $5) 2153 | ) 2154 | (call $_ZdlPv 2155 | (get_local $5) 2156 | ) 2157 | ) 2158 | (br_if $label$14 2159 | (i32.eqz 2160 | (tee_local $5 2161 | (i32.load offset=48 2162 | (get_local $11) 2163 | ) 2164 | ) 2165 | ) 2166 | ) 2167 | (i32.store 2168 | (i32.add 2169 | (get_local $11) 2170 | (i32.const 52) 2171 | ) 2172 | (get_local $5) 2173 | ) 2174 | (call $_ZdlPv 2175 | (get_local $5) 2176 | ) 2177 | (br_if $label$13 2178 | (tee_local $1 2179 | (i32.load offset=96 2180 | (get_local $11) 2181 | ) 2182 | ) 2183 | ) 2184 | (br $label$12) 2185 | ) 2186 | (set_local $10 2187 | (i64.load 2188 | (get_local $0) 2189 | ) 2190 | ) 2191 | (set_local $7 2192 | (i64.const 0) 2193 | ) 2194 | (set_local $6 2195 | (i64.const 59) 2196 | ) 2197 | (set_local $5 2198 | (i32.const 400) 2199 | ) 2200 | (set_local $8 2201 | (i64.const 0) 2202 | ) 2203 | (loop $label$45 2204 | (block $label$46 2205 | (block $label$47 2206 | (block $label$48 2207 | (block $label$49 2208 | (block $label$50 2209 | (br_if $label$50 2210 | (i64.gt_u 2211 | (get_local $7) 2212 | (i64.const 5) 2213 | ) 2214 | ) 2215 | (br_if $label$49 2216 | (i32.gt_u 2217 | (i32.and 2218 | (i32.add 2219 | (tee_local $2 2220 | (i32.load8_s 2221 | (get_local $5) 2222 | ) 2223 | ) 2224 | (i32.const -97) 2225 | ) 2226 | (i32.const 255) 2227 | ) 2228 | (i32.const 25) 2229 | ) 2230 | ) 2231 | (set_local $2 2232 | (i32.add 2233 | (get_local $2) 2234 | (i32.const 165) 2235 | ) 2236 | ) 2237 | (br $label$48) 2238 | ) 2239 | (set_local $9 2240 | (i64.const 0) 2241 | ) 2242 | (br_if $label$47 2243 | (i64.le_u 2244 | (get_local $7) 2245 | (i64.const 11) 2246 | ) 2247 | ) 2248 | (br $label$46) 2249 | ) 2250 | (set_local $2 2251 | (select 2252 | (i32.add 2253 | (get_local $2) 2254 | (i32.const 208) 2255 | ) 2256 | (i32.const 0) 2257 | (i32.lt_u 2258 | (i32.and 2259 | (i32.add 2260 | (get_local $2) 2261 | (i32.const -49) 2262 | ) 2263 | (i32.const 255) 2264 | ) 2265 | (i32.const 5) 2266 | ) 2267 | ) 2268 | ) 2269 | ) 2270 | (set_local $9 2271 | (i64.shr_s 2272 | (i64.shl 2273 | (i64.extend_u/i32 2274 | (get_local $2) 2275 | ) 2276 | (i64.const 56) 2277 | ) 2278 | (i64.const 56) 2279 | ) 2280 | ) 2281 | ) 2282 | (set_local $9 2283 | (i64.shl 2284 | (i64.and 2285 | (get_local $9) 2286 | (i64.const 31) 2287 | ) 2288 | (i64.and 2289 | (get_local $6) 2290 | (i64.const 4294967295) 2291 | ) 2292 | ) 2293 | ) 2294 | ) 2295 | (set_local $5 2296 | (i32.add 2297 | (get_local $5) 2298 | (i32.const 1) 2299 | ) 2300 | ) 2301 | (set_local $7 2302 | (i64.add 2303 | (get_local $7) 2304 | (i64.const 1) 2305 | ) 2306 | ) 2307 | (set_local $8 2308 | (i64.or 2309 | (get_local $9) 2310 | (get_local $8) 2311 | ) 2312 | ) 2313 | (br_if $label$45 2314 | (i64.ne 2315 | (tee_local $6 2316 | (i64.add 2317 | (get_local $6) 2318 | (i64.const -5) 2319 | ) 2320 | ) 2321 | (i64.const -6) 2322 | ) 2323 | ) 2324 | ) 2325 | (i64.store offset=24 2326 | (get_local $11) 2327 | (get_local $8) 2328 | ) 2329 | (i64.store offset=16 2330 | (get_local $11) 2331 | (get_local $10) 2332 | ) 2333 | (set_local $7 2334 | (i64.const 0) 2335 | ) 2336 | (set_local $6 2337 | (i64.const 59) 2338 | ) 2339 | (set_local $5 2340 | (i32.const 416) 2341 | ) 2342 | (set_local $8 2343 | (i64.const 0) 2344 | ) 2345 | (loop $label$51 2346 | (block $label$52 2347 | (block $label$53 2348 | (block $label$54 2349 | (block $label$55 2350 | (block $label$56 2351 | (br_if $label$56 2352 | (i64.gt_u 2353 | (get_local $7) 2354 | (i64.const 9) 2355 | ) 2356 | ) 2357 | (br_if $label$55 2358 | (i32.gt_u 2359 | (i32.and 2360 | (i32.add 2361 | (tee_local $2 2362 | (i32.load8_s 2363 | (get_local $5) 2364 | ) 2365 | ) 2366 | (i32.const -97) 2367 | ) 2368 | (i32.const 255) 2369 | ) 2370 | (i32.const 25) 2371 | ) 2372 | ) 2373 | (set_local $2 2374 | (i32.add 2375 | (get_local $2) 2376 | (i32.const 165) 2377 | ) 2378 | ) 2379 | (br $label$54) 2380 | ) 2381 | (set_local $9 2382 | (i64.const 0) 2383 | ) 2384 | (br_if $label$53 2385 | (i64.le_u 2386 | (get_local $7) 2387 | (i64.const 11) 2388 | ) 2389 | ) 2390 | (br $label$52) 2391 | ) 2392 | (set_local $2 2393 | (select 2394 | (i32.add 2395 | (get_local $2) 2396 | (i32.const 208) 2397 | ) 2398 | (i32.const 0) 2399 | (i32.lt_u 2400 | (i32.and 2401 | (i32.add 2402 | (get_local $2) 2403 | (i32.const -49) 2404 | ) 2405 | (i32.const 255) 2406 | ) 2407 | (i32.const 5) 2408 | ) 2409 | ) 2410 | ) 2411 | ) 2412 | (set_local $9 2413 | (i64.shr_s 2414 | (i64.shl 2415 | (i64.extend_u/i32 2416 | (get_local $2) 2417 | ) 2418 | (i64.const 56) 2419 | ) 2420 | (i64.const 56) 2421 | ) 2422 | ) 2423 | ) 2424 | (set_local $9 2425 | (i64.shl 2426 | (i64.and 2427 | (get_local $9) 2428 | (i64.const 31) 2429 | ) 2430 | (i64.and 2431 | (get_local $6) 2432 | (i64.const 4294967295) 2433 | ) 2434 | ) 2435 | ) 2436 | ) 2437 | (set_local $5 2438 | (i32.add 2439 | (get_local $5) 2440 | (i32.const 1) 2441 | ) 2442 | ) 2443 | (set_local $7 2444 | (i64.add 2445 | (get_local $7) 2446 | (i64.const 1) 2447 | ) 2448 | ) 2449 | (set_local $8 2450 | (i64.or 2451 | (get_local $9) 2452 | (get_local $8) 2453 | ) 2454 | ) 2455 | (br_if $label$51 2456 | (i64.ne 2457 | (tee_local $6 2458 | (i64.add 2459 | (get_local $6) 2460 | (i64.const -5) 2461 | ) 2462 | ) 2463 | (i64.const -6) 2464 | ) 2465 | ) 2466 | ) 2467 | (i32.store8 offset=8 2468 | (get_local $11) 2469 | (i32.const 1) 2470 | ) 2471 | (i64.store 2472 | (get_local $11) 2473 | (i64.load 2474 | (get_local $1) 2475 | ) 2476 | ) 2477 | (i32.store8 offset=9 2478 | (get_local $11) 2479 | (i32.load8_u offset=10 2480 | (get_local $3) 2481 | ) 2482 | ) 2483 | (call $_ZN5eosio4packINS_6actionEEENSt3__16vectorIcNS2_9allocatorIcEEEERKT_ 2484 | (i32.add 2485 | (get_local $11) 2486 | (i32.const 112) 2487 | ) 2488 | (tee_local $5 2489 | (call $_ZN5eosio6actionC2INSt3__15tupleIJyhhEEEEERKNS_16permission_levelEyyOT_ 2490 | (i32.add 2491 | (get_local $11) 2492 | (i32.const 32) 2493 | ) 2494 | (i32.add 2495 | (get_local $11) 2496 | (i32.const 16) 2497 | ) 2498 | (get_local $10) 2499 | (get_local $8) 2500 | (get_local $11) 2501 | ) 2502 | ) 2503 | ) 2504 | (call $send_inline 2505 | (tee_local $2 2506 | (i32.load offset=112 2507 | (get_local $11) 2508 | ) 2509 | ) 2510 | (i32.sub 2511 | (i32.load offset=116 2512 | (get_local $11) 2513 | ) 2514 | (get_local $2) 2515 | ) 2516 | ) 2517 | (block $label$57 2518 | (br_if $label$57 2519 | (i32.eqz 2520 | (tee_local $2 2521 | (i32.load offset=112 2522 | (get_local $11) 2523 | ) 2524 | ) 2525 | ) 2526 | ) 2527 | (i32.store offset=116 2528 | (get_local $11) 2529 | (get_local $2) 2530 | ) 2531 | (call $_ZdlPv 2532 | (get_local $2) 2533 | ) 2534 | ) 2535 | (block $label$58 2536 | (br_if $label$58 2537 | (i32.eqz 2538 | (tee_local $2 2539 | (i32.load offset=28 2540 | (get_local $5) 2541 | ) 2542 | ) 2543 | ) 2544 | ) 2545 | (i32.store 2546 | (i32.add 2547 | (get_local $5) 2548 | (i32.const 32) 2549 | ) 2550 | (get_local $2) 2551 | ) 2552 | (call $_ZdlPv 2553 | (get_local $2) 2554 | ) 2555 | ) 2556 | (br_if $label$14 2557 | (i32.eqz 2558 | (tee_local $2 2559 | (i32.load offset=16 2560 | (get_local $5) 2561 | ) 2562 | ) 2563 | ) 2564 | ) 2565 | (i32.store 2566 | (i32.add 2567 | (get_local $5) 2568 | (i32.const 20) 2569 | ) 2570 | (get_local $2) 2571 | ) 2572 | (call $_ZdlPv 2573 | (get_local $2) 2574 | ) 2575 | ) 2576 | (br_if $label$12 2577 | (i32.eqz 2578 | (tee_local $1 2579 | (i32.load offset=96 2580 | (get_local $11) 2581 | ) 2582 | ) 2583 | ) 2584 | ) 2585 | ) 2586 | (block $label$59 2587 | (block $label$60 2588 | (br_if $label$60 2589 | (i32.eq 2590 | (tee_local $5 2591 | (i32.load 2592 | (tee_local $0 2593 | (i32.add 2594 | (get_local $11) 2595 | (i32.const 100) 2596 | ) 2597 | ) 2598 | ) 2599 | ) 2600 | (get_local $1) 2601 | ) 2602 | ) 2603 | (loop $label$61 2604 | (set_local $2 2605 | (i32.load 2606 | (tee_local $5 2607 | (i32.add 2608 | (get_local $5) 2609 | (i32.const -24) 2610 | ) 2611 | ) 2612 | ) 2613 | ) 2614 | (i32.store 2615 | (get_local $5) 2616 | (i32.const 0) 2617 | ) 2618 | (block $label$62 2619 | (br_if $label$62 2620 | (i32.eqz 2621 | (get_local $2) 2622 | ) 2623 | ) 2624 | (call $_ZdlPv 2625 | (get_local $2) 2626 | ) 2627 | ) 2628 | (br_if $label$61 2629 | (i32.ne 2630 | (get_local $1) 2631 | (get_local $5) 2632 | ) 2633 | ) 2634 | ) 2635 | (set_local $5 2636 | (i32.load 2637 | (i32.add 2638 | (get_local $11) 2639 | (i32.const 96) 2640 | ) 2641 | ) 2642 | ) 2643 | (br $label$59) 2644 | ) 2645 | (set_local $5 2646 | (get_local $1) 2647 | ) 2648 | ) 2649 | (i32.store 2650 | (get_local $0) 2651 | (get_local $1) 2652 | ) 2653 | (call $_ZdlPv 2654 | (get_local $5) 2655 | ) 2656 | ) 2657 | (i32.store offset=4 2658 | (i32.const 0) 2659 | (i32.add 2660 | (get_local $11) 2661 | (i32.const 128) 2662 | ) 2663 | ) 2664 | ) 2665 | (func $_ZN5eosio14execute_actionI4demoS1_JRKyEEEbPT_MT0_FvDpT1_E (param $0 i32) (param $1 i32) (result i32) 2666 | (local $2 i32) 2667 | (local $3 i64) 2668 | (local $4 i32) 2669 | (local $5 i32) 2670 | (local $6 i32) 2671 | (set_local $6 2672 | (tee_local $4 2673 | (i32.sub 2674 | (i32.load offset=4 2675 | (i32.const 0) 2676 | ) 2677 | (i32.const 16) 2678 | ) 2679 | ) 2680 | ) 2681 | (i32.store offset=4 2682 | (i32.const 0) 2683 | (get_local $4) 2684 | ) 2685 | (set_local $2 2686 | (i32.load offset=4 2687 | (get_local $1) 2688 | ) 2689 | ) 2690 | (set_local $5 2691 | (i32.load 2692 | (get_local $1) 2693 | ) 2694 | ) 2695 | (block $label$0 2696 | (block $label$1 2697 | (block $label$2 2698 | (block $label$3 2699 | (br_if $label$3 2700 | (i32.eqz 2701 | (tee_local $1 2702 | (call $action_data_size) 2703 | ) 2704 | ) 2705 | ) 2706 | (br_if $label$2 2707 | (i32.lt_u 2708 | (get_local $1) 2709 | (i32.const 513) 2710 | ) 2711 | ) 2712 | (set_local $4 2713 | (call $malloc 2714 | (get_local $1) 2715 | ) 2716 | ) 2717 | (br $label$1) 2718 | ) 2719 | (set_local $4 2720 | (i32.const 0) 2721 | ) 2722 | (br $label$0) 2723 | ) 2724 | (i32.store offset=4 2725 | (i32.const 0) 2726 | (tee_local $4 2727 | (i32.sub 2728 | (get_local $4) 2729 | (i32.and 2730 | (i32.add 2731 | (get_local $1) 2732 | (i32.const 15) 2733 | ) 2734 | (i32.const -16) 2735 | ) 2736 | ) 2737 | ) 2738 | ) 2739 | ) 2740 | (drop 2741 | (call $read_action_data 2742 | (get_local $4) 2743 | (get_local $1) 2744 | ) 2745 | ) 2746 | ) 2747 | (i64.store offset=8 2748 | (get_local $6) 2749 | (i64.const 0) 2750 | ) 2751 | (call $eosio_assert 2752 | (i32.gt_u 2753 | (get_local $1) 2754 | (i32.const 7) 2755 | ) 2756 | (i32.const 272) 2757 | ) 2758 | (drop 2759 | (call $memcpy 2760 | (i32.add 2761 | (get_local $6) 2762 | (i32.const 8) 2763 | ) 2764 | (get_local $4) 2765 | (i32.const 8) 2766 | ) 2767 | ) 2768 | (set_local $3 2769 | (i64.load offset=8 2770 | (get_local $6) 2771 | ) 2772 | ) 2773 | (block $label$4 2774 | (br_if $label$4 2775 | (i32.lt_u 2776 | (get_local $1) 2777 | (i32.const 513) 2778 | ) 2779 | ) 2780 | (call $free 2781 | (get_local $4) 2782 | ) 2783 | ) 2784 | (i64.store offset=8 2785 | (get_local $6) 2786 | (get_local $3) 2787 | ) 2788 | (set_local $1 2789 | (i32.add 2790 | (get_local $0) 2791 | (i32.shr_s 2792 | (get_local $2) 2793 | (i32.const 1) 2794 | ) 2795 | ) 2796 | ) 2797 | (block $label$5 2798 | (br_if $label$5 2799 | (i32.eqz 2800 | (i32.and 2801 | (get_local $2) 2802 | (i32.const 1) 2803 | ) 2804 | ) 2805 | ) 2806 | (set_local $5 2807 | (i32.load 2808 | (i32.add 2809 | (i32.load 2810 | (get_local $1) 2811 | ) 2812 | (get_local $5) 2813 | ) 2814 | ) 2815 | ) 2816 | ) 2817 | (call_indirect (type $FUNCSIG$vii) 2818 | (get_local $1) 2819 | (i32.add 2820 | (get_local $6) 2821 | (i32.const 8) 2822 | ) 2823 | (get_local $5) 2824 | ) 2825 | (i32.store offset=4 2826 | (i32.const 0) 2827 | (i32.add 2828 | (get_local $6) 2829 | (i32.const 16) 2830 | ) 2831 | ) 2832 | (i32.const 1) 2833 | ) 2834 | (func $_ZN4demo10logreceiptERKyRKhS3_ (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) 2835 | (call $require_auth 2836 | (i64.load 2837 | (get_local $0) 2838 | ) 2839 | ) 2840 | ) 2841 | (func $_ZN5eosio14execute_actionI4demoS1_JRKyRKhS5_EEEbPT_MT0_FvDpT1_E (param $0 i32) (param $1 i32) (result i32) 2842 | (local $2 i32) 2843 | (local $3 i32) 2844 | (local $4 i32) 2845 | (local $5 i32) 2846 | (local $6 i32) 2847 | (local $7 i32) 2848 | (set_local $6 2849 | (tee_local $7 2850 | (i32.sub 2851 | (i32.load offset=4 2852 | (i32.const 0) 2853 | ) 2854 | (i32.const 32) 2855 | ) 2856 | ) 2857 | ) 2858 | (i32.store offset=4 2859 | (i32.const 0) 2860 | (get_local $7) 2861 | ) 2862 | (set_local $2 2863 | (i32.load offset=4 2864 | (get_local $1) 2865 | ) 2866 | ) 2867 | (set_local $5 2868 | (i32.load 2869 | (get_local $1) 2870 | ) 2871 | ) 2872 | (set_local $4 2873 | (i32.const 0) 2874 | ) 2875 | (block $label$0 2876 | (br_if $label$0 2877 | (i32.eqz 2878 | (tee_local $1 2879 | (call $action_data_size) 2880 | ) 2881 | ) 2882 | ) 2883 | (block $label$1 2884 | (block $label$2 2885 | (br_if $label$2 2886 | (i32.lt_u 2887 | (get_local $1) 2888 | (i32.const 513) 2889 | ) 2890 | ) 2891 | (set_local $4 2892 | (call $malloc 2893 | (get_local $1) 2894 | ) 2895 | ) 2896 | (br $label$1) 2897 | ) 2898 | (i32.store offset=4 2899 | (i32.const 0) 2900 | (tee_local $4 2901 | (i32.sub 2902 | (get_local $7) 2903 | (i32.and 2904 | (i32.add 2905 | (get_local $1) 2906 | (i32.const 15) 2907 | ) 2908 | (i32.const -16) 2909 | ) 2910 | ) 2911 | ) 2912 | ) 2913 | ) 2914 | (drop 2915 | (call $read_action_data 2916 | (get_local $4) 2917 | (get_local $1) 2918 | ) 2919 | ) 2920 | ) 2921 | (i64.store 2922 | (get_local $6) 2923 | (i64.const 0) 2924 | ) 2925 | (i32.store16 offset=8 2926 | (get_local $6) 2927 | (i32.const 0) 2928 | ) 2929 | (call $eosio_assert 2930 | (i32.gt_u 2931 | (get_local $1) 2932 | (i32.const 7) 2933 | ) 2934 | (i32.const 272) 2935 | ) 2936 | (drop 2937 | (call $memcpy 2938 | (get_local $6) 2939 | (get_local $4) 2940 | (i32.const 8) 2941 | ) 2942 | ) 2943 | (call $eosio_assert 2944 | (i32.ne 2945 | (get_local $1) 2946 | (i32.const 8) 2947 | ) 2948 | (i32.const 272) 2949 | ) 2950 | (drop 2951 | (call $memcpy 2952 | (tee_local $7 2953 | (i32.add 2954 | (get_local $6) 2955 | (i32.const 8) 2956 | ) 2957 | ) 2958 | (i32.add 2959 | (get_local $4) 2960 | (i32.const 8) 2961 | ) 2962 | (i32.const 1) 2963 | ) 2964 | ) 2965 | (call $eosio_assert 2966 | (i32.ne 2967 | (get_local $1) 2968 | (i32.const 9) 2969 | ) 2970 | (i32.const 272) 2971 | ) 2972 | (drop 2973 | (call $memcpy 2974 | (tee_local $3 2975 | (i32.add 2976 | (get_local $6) 2977 | (i32.const 9) 2978 | ) 2979 | ) 2980 | (i32.add 2981 | (get_local $4) 2982 | (i32.const 9) 2983 | ) 2984 | (i32.const 1) 2985 | ) 2986 | ) 2987 | (block $label$3 2988 | (br_if $label$3 2989 | (i32.lt_u 2990 | (get_local $1) 2991 | (i32.const 513) 2992 | ) 2993 | ) 2994 | (call $free 2995 | (get_local $4) 2996 | ) 2997 | ) 2998 | (set_local $1 2999 | (i32.load8_u 3000 | (get_local $3) 3001 | ) 3002 | ) 3003 | (set_local $4 3004 | (i32.load8_u 3005 | (get_local $7) 3006 | ) 3007 | ) 3008 | (i64.store offset=24 3009 | (get_local $6) 3010 | (i64.load 3011 | (get_local $6) 3012 | ) 3013 | ) 3014 | (i32.store8 offset=23 3015 | (get_local $6) 3016 | (get_local $4) 3017 | ) 3018 | (i32.store8 offset=22 3019 | (get_local $6) 3020 | (get_local $1) 3021 | ) 3022 | (set_local $1 3023 | (i32.add 3024 | (get_local $0) 3025 | (i32.shr_s 3026 | (get_local $2) 3027 | (i32.const 1) 3028 | ) 3029 | ) 3030 | ) 3031 | (block $label$4 3032 | (br_if $label$4 3033 | (i32.eqz 3034 | (i32.and 3035 | (get_local $2) 3036 | (i32.const 1) 3037 | ) 3038 | ) 3039 | ) 3040 | (set_local $5 3041 | (i32.load 3042 | (i32.add 3043 | (i32.load 3044 | (get_local $1) 3045 | ) 3046 | (get_local $5) 3047 | ) 3048 | ) 3049 | ) 3050 | ) 3051 | (call_indirect (type $FUNCSIG$viiii) 3052 | (get_local $1) 3053 | (i32.add 3054 | (get_local $6) 3055 | (i32.const 24) 3056 | ) 3057 | (i32.add 3058 | (get_local $6) 3059 | (i32.const 23) 3060 | ) 3061 | (i32.add 3062 | (get_local $6) 3063 | (i32.const 22) 3064 | ) 3065 | (get_local $5) 3066 | ) 3067 | (i32.store offset=4 3068 | (i32.const 0) 3069 | (i32.add 3070 | (get_local $6) 3071 | (i32.const 32) 3072 | ) 3073 | ) 3074 | (i32.const 1) 3075 | ) 3076 | (func $_ZNK5eosio11multi_indexILy14829675507116670976EN8prochain6RatingEJEE31load_object_by_primary_iteratorEl (param $0 i32) (param $1 i32) (result i32) 3077 | (local $2 i32) 3078 | (local $3 i32) 3079 | (local $4 i32) 3080 | (local $5 i64) 3081 | (local $6 i32) 3082 | (local $7 i32) 3083 | (local $8 i32) 3084 | (local $9 i32) 3085 | (set_local $8 3086 | (tee_local $9 3087 | (i32.sub 3088 | (i32.load offset=4 3089 | (i32.const 0) 3090 | ) 3091 | (i32.const 48) 3092 | ) 3093 | ) 3094 | ) 3095 | (i32.store offset=4 3096 | (i32.const 0) 3097 | (get_local $9) 3098 | ) 3099 | (block $label$0 3100 | (br_if $label$0 3101 | (i32.eq 3102 | (tee_local $7 3103 | (i32.load 3104 | (i32.add 3105 | (get_local $0) 3106 | (i32.const 28) 3107 | ) 3108 | ) 3109 | ) 3110 | (tee_local $2 3111 | (i32.load offset=24 3112 | (get_local $0) 3113 | ) 3114 | ) 3115 | ) 3116 | ) 3117 | (set_local $3 3118 | (i32.sub 3119 | (i32.const 0) 3120 | (get_local $2) 3121 | ) 3122 | ) 3123 | (set_local $6 3124 | (i32.add 3125 | (get_local $7) 3126 | (i32.const -24) 3127 | ) 3128 | ) 3129 | (loop $label$1 3130 | (br_if $label$0 3131 | (i32.eq 3132 | (i32.load 3133 | (i32.add 3134 | (get_local $6) 3135 | (i32.const 16) 3136 | ) 3137 | ) 3138 | (get_local $1) 3139 | ) 3140 | ) 3141 | (set_local $7 3142 | (get_local $6) 3143 | ) 3144 | (set_local $6 3145 | (tee_local $4 3146 | (i32.add 3147 | (get_local $6) 3148 | (i32.const -24) 3149 | ) 3150 | ) 3151 | ) 3152 | (br_if $label$1 3153 | (i32.ne 3154 | (i32.add 3155 | (get_local $4) 3156 | (get_local $3) 3157 | ) 3158 | (i32.const -24) 3159 | ) 3160 | ) 3161 | ) 3162 | ) 3163 | (block $label$2 3164 | (block $label$3 3165 | (br_if $label$3 3166 | (i32.eq 3167 | (get_local $7) 3168 | (get_local $2) 3169 | ) 3170 | ) 3171 | (set_local $6 3172 | (i32.load 3173 | (i32.add 3174 | (get_local $7) 3175 | (i32.const -24) 3176 | ) 3177 | ) 3178 | ) 3179 | (br $label$2) 3180 | ) 3181 | (call $eosio_assert 3182 | (i32.xor 3183 | (i32.shr_u 3184 | (tee_local $6 3185 | (call $db_get_i64 3186 | (get_local $1) 3187 | (i32.const 0) 3188 | (i32.const 0) 3189 | ) 3190 | ) 3191 | (i32.const 31) 3192 | ) 3193 | (i32.const 1) 3194 | ) 3195 | (i32.const 448) 3196 | ) 3197 | (block $label$4 3198 | (block $label$5 3199 | (br_if $label$5 3200 | (i32.lt_u 3201 | (get_local $6) 3202 | (i32.const 513) 3203 | ) 3204 | ) 3205 | (set_local $4 3206 | (call $malloc 3207 | (get_local $6) 3208 | ) 3209 | ) 3210 | (br $label$4) 3211 | ) 3212 | (i32.store offset=4 3213 | (i32.const 0) 3214 | (tee_local $4 3215 | (i32.sub 3216 | (get_local $9) 3217 | (i32.and 3218 | (i32.add 3219 | (get_local $6) 3220 | (i32.const 15) 3221 | ) 3222 | (i32.const -16) 3223 | ) 3224 | ) 3225 | ) 3226 | ) 3227 | ) 3228 | (drop 3229 | (call $db_get_i64 3230 | (get_local $1) 3231 | (get_local $4) 3232 | (get_local $6) 3233 | ) 3234 | ) 3235 | (i32.store offset=36 3236 | (get_local $8) 3237 | (get_local $4) 3238 | ) 3239 | (i32.store offset=32 3240 | (get_local $8) 3241 | (get_local $4) 3242 | ) 3243 | (i32.store offset=40 3244 | (get_local $8) 3245 | (i32.add 3246 | (get_local $4) 3247 | (get_local $6) 3248 | ) 3249 | ) 3250 | (block $label$6 3251 | (br_if $label$6 3252 | (i32.lt_u 3253 | (get_local $6) 3254 | (i32.const 513) 3255 | ) 3256 | ) 3257 | (call $free 3258 | (get_local $4) 3259 | ) 3260 | ) 3261 | (i32.store offset=16 3262 | (tee_local $6 3263 | (call $_Znwj 3264 | (i32.const 32) 3265 | ) 3266 | ) 3267 | (get_local $0) 3268 | ) 3269 | (drop 3270 | (call $_ZN8prochainrsIN5eosio10datastreamIPKcEEEERT_S7_RNS_6RatingE 3271 | (i32.add 3272 | (get_local $8) 3273 | (i32.const 32) 3274 | ) 3275 | (get_local $6) 3276 | ) 3277 | ) 3278 | (i32.store offset=20 3279 | (get_local $6) 3280 | (get_local $1) 3281 | ) 3282 | (i32.store offset=24 3283 | (get_local $8) 3284 | (get_local $6) 3285 | ) 3286 | (i64.store offset=16 3287 | (get_local $8) 3288 | (tee_local $5 3289 | (i64.load 3290 | (get_local $6) 3291 | ) 3292 | ) 3293 | ) 3294 | (i32.store offset=12 3295 | (get_local $8) 3296 | (tee_local $7 3297 | (i32.load offset=20 3298 | (get_local $6) 3299 | ) 3300 | ) 3301 | ) 3302 | (block $label$7 3303 | (block $label$8 3304 | (br_if $label$8 3305 | (i32.ge_u 3306 | (tee_local $4 3307 | (i32.load 3308 | (tee_local $1 3309 | (i32.add 3310 | (get_local $0) 3311 | (i32.const 28) 3312 | ) 3313 | ) 3314 | ) 3315 | ) 3316 | (i32.load 3317 | (i32.add 3318 | (get_local $0) 3319 | (i32.const 32) 3320 | ) 3321 | ) 3322 | ) 3323 | ) 3324 | (i64.store offset=8 3325 | (get_local $4) 3326 | (get_local $5) 3327 | ) 3328 | (i32.store offset=16 3329 | (get_local $4) 3330 | (get_local $7) 3331 | ) 3332 | (i32.store offset=24 3333 | (get_local $8) 3334 | (i32.const 0) 3335 | ) 3336 | (i32.store 3337 | (get_local $4) 3338 | (get_local $6) 3339 | ) 3340 | (i32.store 3341 | (get_local $1) 3342 | (i32.add 3343 | (get_local $4) 3344 | (i32.const 24) 3345 | ) 3346 | ) 3347 | (br $label$7) 3348 | ) 3349 | (call $_ZNSt3__16vectorIN5eosio11multi_indexILy14829675507116670976EN8prochain6RatingEJEE8item_ptrENS_9allocatorIS6_EEE24__emplace_back_slow_pathIJNS_10unique_ptrINS5_4itemENS_14default_deleteISC_EEEERyRlEEEvDpOT_ 3350 | (i32.add 3351 | (get_local $0) 3352 | (i32.const 24) 3353 | ) 3354 | (i32.add 3355 | (get_local $8) 3356 | (i32.const 24) 3357 | ) 3358 | (i32.add 3359 | (get_local $8) 3360 | (i32.const 16) 3361 | ) 3362 | (i32.add 3363 | (get_local $8) 3364 | (i32.const 12) 3365 | ) 3366 | ) 3367 | ) 3368 | (set_local $4 3369 | (i32.load offset=24 3370 | (get_local $8) 3371 | ) 3372 | ) 3373 | (i32.store offset=24 3374 | (get_local $8) 3375 | (i32.const 0) 3376 | ) 3377 | (br_if $label$2 3378 | (i32.eqz 3379 | (get_local $4) 3380 | ) 3381 | ) 3382 | (call $_ZdlPv 3383 | (get_local $4) 3384 | ) 3385 | ) 3386 | (i32.store offset=4 3387 | (i32.const 0) 3388 | (i32.add 3389 | (get_local $8) 3390 | (i32.const 48) 3391 | ) 3392 | ) 3393 | (get_local $6) 3394 | ) 3395 | (func $_ZN5eosio6actionC2INSt3__15tupleIJyhhEEEEERKNS_16permission_levelEyyOT_ (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i64) (param $4 i32) (result i32) 3396 | (local $5 i32) 3397 | (local $6 i32) 3398 | (local $7 i32) 3399 | (local $8 i32) 3400 | (i64.store offset=8 3401 | (get_local $0) 3402 | (get_local $3) 3403 | ) 3404 | (i64.store 3405 | (get_local $0) 3406 | (get_local $2) 3407 | ) 3408 | (i64.store offset=16 align=4 3409 | (get_local $0) 3410 | (i64.const 0) 3411 | ) 3412 | (i32.store 3413 | (tee_local $5 3414 | (i32.add 3415 | (get_local $0) 3416 | (i32.const 24) 3417 | ) 3418 | ) 3419 | (i32.const 0) 3420 | ) 3421 | (i32.store offset=16 3422 | (get_local $0) 3423 | (tee_local $6 3424 | (call $_Znwj 3425 | (i32.const 16) 3426 | ) 3427 | ) 3428 | ) 3429 | (i32.store 3430 | (tee_local $7 3431 | (i32.add 3432 | (get_local $0) 3433 | (i32.const 20) 3434 | ) 3435 | ) 3436 | (get_local $6) 3437 | ) 3438 | (i32.store 3439 | (get_local $5) 3440 | (tee_local $8 3441 | (i32.add 3442 | (get_local $6) 3443 | (i32.const 16) 3444 | ) 3445 | ) 3446 | ) 3447 | (i64.store 3448 | (i32.add 3449 | (get_local $6) 3450 | (i32.const 8) 3451 | ) 3452 | (i64.load 3453 | (i32.add 3454 | (get_local $1) 3455 | (i32.const 8) 3456 | ) 3457 | ) 3458 | ) 3459 | (i64.store 3460 | (get_local $6) 3461 | (i64.load 3462 | (get_local $1) 3463 | ) 3464 | ) 3465 | (i32.store 3466 | (get_local $7) 3467 | (get_local $8) 3468 | ) 3469 | (i32.store offset=28 3470 | (get_local $0) 3471 | (i32.const 0) 3472 | ) 3473 | (i32.store 3474 | (tee_local $6 3475 | (i32.add 3476 | (get_local $0) 3477 | (i32.const 32) 3478 | ) 3479 | ) 3480 | (i32.const 0) 3481 | ) 3482 | (i32.store 3483 | (i32.add 3484 | (get_local $0) 3485 | (i32.const 36) 3486 | ) 3487 | (i32.const 0) 3488 | ) 3489 | (call $_ZNSt3__16vectorIcNS_9allocatorIcEEE8__appendEj 3490 | (i32.add 3491 | (get_local $0) 3492 | (i32.const 28) 3493 | ) 3494 | (i32.const 10) 3495 | ) 3496 | (call $eosio_assert 3497 | (i32.gt_s 3498 | (tee_local $1 3499 | (i32.sub 3500 | (i32.load 3501 | (get_local $6) 3502 | ) 3503 | (tee_local $6 3504 | (i32.load offset=28 3505 | (get_local $0) 3506 | ) 3507 | ) 3508 | ) 3509 | ) 3510 | (i32.const 7) 3511 | ) 3512 | (i32.const 432) 3513 | ) 3514 | (drop 3515 | (call $memcpy 3516 | (get_local $6) 3517 | (get_local $4) 3518 | (i32.const 8) 3519 | ) 3520 | ) 3521 | (call $eosio_assert 3522 | (i32.gt_s 3523 | (i32.add 3524 | (get_local $1) 3525 | (i32.const -8) 3526 | ) 3527 | (i32.const 0) 3528 | ) 3529 | (i32.const 432) 3530 | ) 3531 | (drop 3532 | (call $memcpy 3533 | (i32.add 3534 | (get_local $6) 3535 | (i32.const 8) 3536 | ) 3537 | (i32.add 3538 | (get_local $4) 3539 | (i32.const 8) 3540 | ) 3541 | (i32.const 1) 3542 | ) 3543 | ) 3544 | (call $eosio_assert 3545 | (i32.gt_s 3546 | (i32.add 3547 | (get_local $1) 3548 | (i32.const -9) 3549 | ) 3550 | (i32.const 0) 3551 | ) 3552 | (i32.const 432) 3553 | ) 3554 | (drop 3555 | (call $memcpy 3556 | (i32.add 3557 | (get_local $6) 3558 | (i32.const 9) 3559 | ) 3560 | (i32.add 3561 | (get_local $4) 3562 | (i32.const 9) 3563 | ) 3564 | (i32.const 1) 3565 | ) 3566 | ) 3567 | (get_local $0) 3568 | ) 3569 | (func $_ZN5eosio4packINS_6actionEEENSt3__16vectorIcNS2_9allocatorIcEEEERKT_ (param $0 i32) (param $1 i32) 3570 | (local $2 i32) 3571 | (local $3 i32) 3572 | (local $4 i32) 3573 | (local $5 i32) 3574 | (local $6 i64) 3575 | (local $7 i32) 3576 | (local $8 i32) 3577 | (i32.store offset=4 3578 | (i32.const 0) 3579 | (tee_local $8 3580 | (i32.sub 3581 | (i32.load offset=4 3582 | (i32.const 0) 3583 | ) 3584 | (i32.const 16) 3585 | ) 3586 | ) 3587 | ) 3588 | (i32.store offset=8 3589 | (get_local $0) 3590 | (i32.const 0) 3591 | ) 3592 | (i64.store align=4 3593 | (get_local $0) 3594 | (i64.const 0) 3595 | ) 3596 | (set_local $5 3597 | (i32.const 16) 3598 | ) 3599 | (set_local $2 3600 | (i32.add 3601 | (get_local $1) 3602 | (i32.const 16) 3603 | ) 3604 | ) 3605 | (set_local $6 3606 | (i64.extend_u/i32 3607 | (i32.shr_s 3608 | (tee_local $4 3609 | (i32.sub 3610 | (tee_local $7 3611 | (i32.load 3612 | (i32.add 3613 | (get_local $1) 3614 | (i32.const 20) 3615 | ) 3616 | ) 3617 | ) 3618 | (tee_local $3 3619 | (i32.load offset=16 3620 | (get_local $1) 3621 | ) 3622 | ) 3623 | ) 3624 | ) 3625 | (i32.const 4) 3626 | ) 3627 | ) 3628 | ) 3629 | (loop $label$0 3630 | (set_local $5 3631 | (i32.add 3632 | (get_local $5) 3633 | (i32.const 1) 3634 | ) 3635 | ) 3636 | (br_if $label$0 3637 | (i64.ne 3638 | (tee_local $6 3639 | (i64.shr_u 3640 | (get_local $6) 3641 | (i64.const 7) 3642 | ) 3643 | ) 3644 | (i64.const 0) 3645 | ) 3646 | ) 3647 | ) 3648 | (block $label$1 3649 | (br_if $label$1 3650 | (i32.eq 3651 | (get_local $3) 3652 | (get_local $7) 3653 | ) 3654 | ) 3655 | (set_local $5 3656 | (i32.add 3657 | (i32.and 3658 | (get_local $4) 3659 | (i32.const -16) 3660 | ) 3661 | (get_local $5) 3662 | ) 3663 | ) 3664 | ) 3665 | (set_local $5 3666 | (i32.sub 3667 | (i32.sub 3668 | (tee_local $7 3669 | (i32.load offset=28 3670 | (get_local $1) 3671 | ) 3672 | ) 3673 | (get_local $5) 3674 | ) 3675 | (tee_local $3 3676 | (i32.load 3677 | (i32.add 3678 | (get_local $1) 3679 | (i32.const 32) 3680 | ) 3681 | ) 3682 | ) 3683 | ) 3684 | ) 3685 | (set_local $4 3686 | (i32.add 3687 | (get_local $1) 3688 | (i32.const 28) 3689 | ) 3690 | ) 3691 | (set_local $6 3692 | (i64.extend_u/i32 3693 | (i32.sub 3694 | (get_local $3) 3695 | (get_local $7) 3696 | ) 3697 | ) 3698 | ) 3699 | (loop $label$2 3700 | (set_local $5 3701 | (i32.add 3702 | (get_local $5) 3703 | (i32.const -1) 3704 | ) 3705 | ) 3706 | (br_if $label$2 3707 | (i64.ne 3708 | (tee_local $6 3709 | (i64.shr_u 3710 | (get_local $6) 3711 | (i64.const 7) 3712 | ) 3713 | ) 3714 | (i64.const 0) 3715 | ) 3716 | ) 3717 | ) 3718 | (set_local $7 3719 | (i32.const 0) 3720 | ) 3721 | (block $label$3 3722 | (block $label$4 3723 | (br_if $label$4 3724 | (i32.eqz 3725 | (get_local $5) 3726 | ) 3727 | ) 3728 | (call $_ZNSt3__16vectorIcNS_9allocatorIcEEE8__appendEj 3729 | (get_local $0) 3730 | (i32.sub 3731 | (i32.const 0) 3732 | (get_local $5) 3733 | ) 3734 | ) 3735 | (set_local $7 3736 | (i32.load 3737 | (i32.add 3738 | (get_local $0) 3739 | (i32.const 4) 3740 | ) 3741 | ) 3742 | ) 3743 | (set_local $5 3744 | (i32.load 3745 | (get_local $0) 3746 | ) 3747 | ) 3748 | (br $label$3) 3749 | ) 3750 | (set_local $5 3751 | (i32.const 0) 3752 | ) 3753 | ) 3754 | (i32.store 3755 | (get_local $8) 3756 | (get_local $5) 3757 | ) 3758 | (i32.store offset=8 3759 | (get_local $8) 3760 | (get_local $7) 3761 | ) 3762 | (call $eosio_assert 3763 | (i32.gt_s 3764 | (i32.sub 3765 | (get_local $7) 3766 | (get_local $5) 3767 | ) 3768 | (i32.const 7) 3769 | ) 3770 | (i32.const 432) 3771 | ) 3772 | (drop 3773 | (call $memcpy 3774 | (get_local $5) 3775 | (get_local $1) 3776 | (i32.const 8) 3777 | ) 3778 | ) 3779 | (call $eosio_assert 3780 | (i32.gt_s 3781 | (i32.sub 3782 | (get_local $7) 3783 | (tee_local $0 3784 | (i32.add 3785 | (get_local $5) 3786 | (i32.const 8) 3787 | ) 3788 | ) 3789 | ) 3790 | (i32.const 7) 3791 | ) 3792 | (i32.const 432) 3793 | ) 3794 | (drop 3795 | (call $memcpy 3796 | (get_local $0) 3797 | (i32.add 3798 | (get_local $1) 3799 | (i32.const 8) 3800 | ) 3801 | (i32.const 8) 3802 | ) 3803 | ) 3804 | (i32.store offset=4 3805 | (get_local $8) 3806 | (i32.add 3807 | (get_local $5) 3808 | (i32.const 16) 3809 | ) 3810 | ) 3811 | (drop 3812 | (call $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__16vectorIcNS6_9allocatorIcEEEE 3813 | (call $_ZN5eosiolsINS_10datastreamIPcEENS_16permission_levelEEERT_S6_RKNSt3__16vectorIT0_NS7_9allocatorIS9_EEEE 3814 | (get_local $8) 3815 | (get_local $2) 3816 | ) 3817 | (get_local $4) 3818 | ) 3819 | ) 3820 | (i32.store offset=4 3821 | (i32.const 0) 3822 | (i32.add 3823 | (get_local $8) 3824 | (i32.const 16) 3825 | ) 3826 | ) 3827 | ) 3828 | (func $_ZNSt3__16vectorIcNS_9allocatorIcEEE8__appendEj (param $0 i32) (param $1 i32) 3829 | (local $2 i32) 3830 | (local $3 i32) 3831 | (local $4 i32) 3832 | (local $5 i32) 3833 | (local $6 i32) 3834 | (block $label$0 3835 | (block $label$1 3836 | (block $label$2 3837 | (block $label$3 3838 | (block $label$4 3839 | (br_if $label$4 3840 | (i32.ge_u 3841 | (i32.sub 3842 | (tee_local $2 3843 | (i32.load offset=8 3844 | (get_local $0) 3845 | ) 3846 | ) 3847 | (tee_local $6 3848 | (i32.load offset=4 3849 | (get_local $0) 3850 | ) 3851 | ) 3852 | ) 3853 | (get_local $1) 3854 | ) 3855 | ) 3856 | (br_if $label$2 3857 | (i32.le_s 3858 | (tee_local $4 3859 | (i32.add 3860 | (tee_local $3 3861 | (i32.sub 3862 | (get_local $6) 3863 | (tee_local $5 3864 | (i32.load 3865 | (get_local $0) 3866 | ) 3867 | ) 3868 | ) 3869 | ) 3870 | (get_local $1) 3871 | ) 3872 | ) 3873 | (i32.const -1) 3874 | ) 3875 | ) 3876 | (set_local $6 3877 | (i32.const 2147483647) 3878 | ) 3879 | (block $label$5 3880 | (br_if $label$5 3881 | (i32.gt_u 3882 | (tee_local $2 3883 | (i32.sub 3884 | (get_local $2) 3885 | (get_local $5) 3886 | ) 3887 | ) 3888 | (i32.const 1073741822) 3889 | ) 3890 | ) 3891 | (br_if $label$3 3892 | (i32.eqz 3893 | (tee_local $6 3894 | (select 3895 | (get_local $4) 3896 | (tee_local $6 3897 | (i32.shl 3898 | (get_local $2) 3899 | (i32.const 1) 3900 | ) 3901 | ) 3902 | (i32.lt_u 3903 | (get_local $6) 3904 | (get_local $4) 3905 | ) 3906 | ) 3907 | ) 3908 | ) 3909 | ) 3910 | ) 3911 | (set_local $2 3912 | (call $_Znwj 3913 | (get_local $6) 3914 | ) 3915 | ) 3916 | (br $label$1) 3917 | ) 3918 | (set_local $0 3919 | (i32.add 3920 | (get_local $0) 3921 | (i32.const 4) 3922 | ) 3923 | ) 3924 | (loop $label$6 3925 | (i32.store8 3926 | (get_local $6) 3927 | (i32.const 0) 3928 | ) 3929 | (i32.store 3930 | (get_local $0) 3931 | (tee_local $6 3932 | (i32.add 3933 | (i32.load 3934 | (get_local $0) 3935 | ) 3936 | (i32.const 1) 3937 | ) 3938 | ) 3939 | ) 3940 | (br_if $label$6 3941 | (tee_local $1 3942 | (i32.add 3943 | (get_local $1) 3944 | (i32.const -1) 3945 | ) 3946 | ) 3947 | ) 3948 | (br $label$0) 3949 | ) 3950 | ) 3951 | (set_local $6 3952 | (i32.const 0) 3953 | ) 3954 | (set_local $2 3955 | (i32.const 0) 3956 | ) 3957 | (br $label$1) 3958 | ) 3959 | (call $_ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv 3960 | (get_local $0) 3961 | ) 3962 | (unreachable) 3963 | ) 3964 | (set_local $4 3965 | (i32.add 3966 | (get_local $2) 3967 | (get_local $6) 3968 | ) 3969 | ) 3970 | (set_local $6 3971 | (tee_local $5 3972 | (i32.add 3973 | (get_local $2) 3974 | (get_local $3) 3975 | ) 3976 | ) 3977 | ) 3978 | (loop $label$7 3979 | (i32.store8 3980 | (get_local $6) 3981 | (i32.const 0) 3982 | ) 3983 | (set_local $6 3984 | (i32.add 3985 | (get_local $6) 3986 | (i32.const 1) 3987 | ) 3988 | ) 3989 | (br_if $label$7 3990 | (tee_local $1 3991 | (i32.add 3992 | (get_local $1) 3993 | (i32.const -1) 3994 | ) 3995 | ) 3996 | ) 3997 | ) 3998 | (set_local $5 3999 | (i32.sub 4000 | (get_local $5) 4001 | (tee_local $2 4002 | (i32.sub 4003 | (i32.load 4004 | (tee_local $3 4005 | (i32.add 4006 | (get_local $0) 4007 | (i32.const 4) 4008 | ) 4009 | ) 4010 | ) 4011 | (tee_local $1 4012 | (i32.load 4013 | (get_local $0) 4014 | ) 4015 | ) 4016 | ) 4017 | ) 4018 | ) 4019 | ) 4020 | (block $label$8 4021 | (br_if $label$8 4022 | (i32.lt_s 4023 | (get_local $2) 4024 | (i32.const 1) 4025 | ) 4026 | ) 4027 | (drop 4028 | (call $memcpy 4029 | (get_local $5) 4030 | (get_local $1) 4031 | (get_local $2) 4032 | ) 4033 | ) 4034 | (set_local $1 4035 | (i32.load 4036 | (get_local $0) 4037 | ) 4038 | ) 4039 | ) 4040 | (i32.store 4041 | (get_local $0) 4042 | (get_local $5) 4043 | ) 4044 | (i32.store 4045 | (get_local $3) 4046 | (get_local $6) 4047 | ) 4048 | (i32.store 4049 | (i32.add 4050 | (get_local $0) 4051 | (i32.const 8) 4052 | ) 4053 | (get_local $4) 4054 | ) 4055 | (br_if $label$0 4056 | (i32.eqz 4057 | (get_local $1) 4058 | ) 4059 | ) 4060 | (call $_ZdlPv 4061 | (get_local $1) 4062 | ) 4063 | (return) 4064 | ) 4065 | ) 4066 | (func $_ZN5eosiolsINS_10datastreamIPcEENS_16permission_levelEEERT_S6_RKNSt3__16vectorIT0_NS7_9allocatorIS9_EEEE (param $0 i32) (param $1 i32) (result i32) 4067 | (local $2 i32) 4068 | (local $3 i32) 4069 | (local $4 i64) 4070 | (local $5 i32) 4071 | (local $6 i32) 4072 | (local $7 i32) 4073 | (i32.store offset=4 4074 | (i32.const 0) 4075 | (tee_local $7 4076 | (i32.sub 4077 | (i32.load offset=4 4078 | (i32.const 0) 4079 | ) 4080 | (i32.const 16) 4081 | ) 4082 | ) 4083 | ) 4084 | (set_local $4 4085 | (i64.extend_u/i32 4086 | (i32.shr_s 4087 | (i32.sub 4088 | (i32.load offset=4 4089 | (get_local $1) 4090 | ) 4091 | (i32.load 4092 | (get_local $1) 4093 | ) 4094 | ) 4095 | (i32.const 4) 4096 | ) 4097 | ) 4098 | ) 4099 | (set_local $5 4100 | (i32.load offset=4 4101 | (get_local $0) 4102 | ) 4103 | ) 4104 | (set_local $2 4105 | (i32.add 4106 | (get_local $0) 4107 | (i32.const 8) 4108 | ) 4109 | ) 4110 | (loop $label$0 4111 | (set_local $3 4112 | (i32.wrap/i64 4113 | (get_local $4) 4114 | ) 4115 | ) 4116 | (i32.store8 offset=15 4117 | (get_local $7) 4118 | (i32.or 4119 | (i32.shl 4120 | (tee_local $6 4121 | (i64.ne 4122 | (tee_local $4 4123 | (i64.shr_u 4124 | (get_local $4) 4125 | (i64.const 7) 4126 | ) 4127 | ) 4128 | (i64.const 0) 4129 | ) 4130 | ) 4131 | (i32.const 7) 4132 | ) 4133 | (i32.and 4134 | (get_local $3) 4135 | (i32.const 127) 4136 | ) 4137 | ) 4138 | ) 4139 | (call $eosio_assert 4140 | (i32.gt_s 4141 | (i32.sub 4142 | (i32.load 4143 | (get_local $2) 4144 | ) 4145 | (get_local $5) 4146 | ) 4147 | (i32.const 0) 4148 | ) 4149 | (i32.const 432) 4150 | ) 4151 | (drop 4152 | (call $memcpy 4153 | (i32.load 4154 | (tee_local $3 4155 | (i32.add 4156 | (get_local $0) 4157 | (i32.const 4) 4158 | ) 4159 | ) 4160 | ) 4161 | (i32.add 4162 | (get_local $7) 4163 | (i32.const 15) 4164 | ) 4165 | (i32.const 1) 4166 | ) 4167 | ) 4168 | (i32.store 4169 | (get_local $3) 4170 | (tee_local $5 4171 | (i32.add 4172 | (i32.load 4173 | (get_local $3) 4174 | ) 4175 | (i32.const 1) 4176 | ) 4177 | ) 4178 | ) 4179 | (br_if $label$0 4180 | (get_local $6) 4181 | ) 4182 | ) 4183 | (block $label$1 4184 | (br_if $label$1 4185 | (i32.eq 4186 | (tee_local $6 4187 | (i32.load 4188 | (get_local $1) 4189 | ) 4190 | ) 4191 | (tee_local $1 4192 | (i32.load 4193 | (i32.add 4194 | (get_local $1) 4195 | (i32.const 4) 4196 | ) 4197 | ) 4198 | ) 4199 | ) 4200 | ) 4201 | (set_local $3 4202 | (i32.add 4203 | (get_local $0) 4204 | (i32.const 4) 4205 | ) 4206 | ) 4207 | (loop $label$2 4208 | (call $eosio_assert 4209 | (i32.gt_s 4210 | (i32.sub 4211 | (i32.load 4212 | (tee_local $2 4213 | (i32.add 4214 | (get_local $0) 4215 | (i32.const 8) 4216 | ) 4217 | ) 4218 | ) 4219 | (get_local $5) 4220 | ) 4221 | (i32.const 7) 4222 | ) 4223 | (i32.const 432) 4224 | ) 4225 | (drop 4226 | (call $memcpy 4227 | (i32.load 4228 | (get_local $3) 4229 | ) 4230 | (get_local $6) 4231 | (i32.const 8) 4232 | ) 4233 | ) 4234 | (i32.store 4235 | (get_local $3) 4236 | (tee_local $5 4237 | (i32.add 4238 | (i32.load 4239 | (get_local $3) 4240 | ) 4241 | (i32.const 8) 4242 | ) 4243 | ) 4244 | ) 4245 | (call $eosio_assert 4246 | (i32.gt_s 4247 | (i32.sub 4248 | (i32.load 4249 | (get_local $2) 4250 | ) 4251 | (get_local $5) 4252 | ) 4253 | (i32.const 7) 4254 | ) 4255 | (i32.const 432) 4256 | ) 4257 | (drop 4258 | (call $memcpy 4259 | (i32.load 4260 | (get_local $3) 4261 | ) 4262 | (i32.add 4263 | (get_local $6) 4264 | (i32.const 8) 4265 | ) 4266 | (i32.const 8) 4267 | ) 4268 | ) 4269 | (i32.store 4270 | (get_local $3) 4271 | (tee_local $5 4272 | (i32.add 4273 | (i32.load 4274 | (get_local $3) 4275 | ) 4276 | (i32.const 8) 4277 | ) 4278 | ) 4279 | ) 4280 | (br_if $label$2 4281 | (i32.ne 4282 | (tee_local $6 4283 | (i32.add 4284 | (get_local $6) 4285 | (i32.const 16) 4286 | ) 4287 | ) 4288 | (get_local $1) 4289 | ) 4290 | ) 4291 | ) 4292 | ) 4293 | (i32.store offset=4 4294 | (i32.const 0) 4295 | (i32.add 4296 | (get_local $7) 4297 | (i32.const 16) 4298 | ) 4299 | ) 4300 | (get_local $0) 4301 | ) 4302 | (func $_ZN5eosiolsINS_10datastreamIPcEEEERT_S5_RKNSt3__16vectorIcNS6_9allocatorIcEEEE (param $0 i32) (param $1 i32) (result i32) 4303 | (local $2 i32) 4304 | (local $3 i32) 4305 | (local $4 i32) 4306 | (local $5 i32) 4307 | (local $6 i32) 4308 | (local $7 i64) 4309 | (local $8 i32) 4310 | (i32.store offset=4 4311 | (i32.const 0) 4312 | (tee_local $8 4313 | (i32.sub 4314 | (i32.load offset=4 4315 | (i32.const 0) 4316 | ) 4317 | (i32.const 16) 4318 | ) 4319 | ) 4320 | ) 4321 | (set_local $7 4322 | (i64.extend_u/i32 4323 | (i32.sub 4324 | (i32.load offset=4 4325 | (get_local $1) 4326 | ) 4327 | (i32.load 4328 | (get_local $1) 4329 | ) 4330 | ) 4331 | ) 4332 | ) 4333 | (set_local $6 4334 | (i32.load offset=4 4335 | (get_local $0) 4336 | ) 4337 | ) 4338 | (set_local $4 4339 | (i32.add 4340 | (get_local $0) 4341 | (i32.const 8) 4342 | ) 4343 | ) 4344 | (set_local $5 4345 | (i32.add 4346 | (get_local $0) 4347 | (i32.const 4) 4348 | ) 4349 | ) 4350 | (loop $label$0 4351 | (set_local $2 4352 | (i32.wrap/i64 4353 | (get_local $7) 4354 | ) 4355 | ) 4356 | (i32.store8 offset=15 4357 | (get_local $8) 4358 | (i32.or 4359 | (i32.shl 4360 | (tee_local $3 4361 | (i64.ne 4362 | (tee_local $7 4363 | (i64.shr_u 4364 | (get_local $7) 4365 | (i64.const 7) 4366 | ) 4367 | ) 4368 | (i64.const 0) 4369 | ) 4370 | ) 4371 | (i32.const 7) 4372 | ) 4373 | (i32.and 4374 | (get_local $2) 4375 | (i32.const 127) 4376 | ) 4377 | ) 4378 | ) 4379 | (call $eosio_assert 4380 | (i32.gt_s 4381 | (i32.sub 4382 | (i32.load 4383 | (get_local $4) 4384 | ) 4385 | (get_local $6) 4386 | ) 4387 | (i32.const 0) 4388 | ) 4389 | (i32.const 432) 4390 | ) 4391 | (drop 4392 | (call $memcpy 4393 | (i32.load 4394 | (get_local $5) 4395 | ) 4396 | (i32.add 4397 | (get_local $8) 4398 | (i32.const 15) 4399 | ) 4400 | (i32.const 1) 4401 | ) 4402 | ) 4403 | (i32.store 4404 | (get_local $5) 4405 | (tee_local $6 4406 | (i32.add 4407 | (i32.load 4408 | (get_local $5) 4409 | ) 4410 | (i32.const 1) 4411 | ) 4412 | ) 4413 | ) 4414 | (br_if $label$0 4415 | (get_local $3) 4416 | ) 4417 | ) 4418 | (call $eosio_assert 4419 | (i32.ge_s 4420 | (i32.sub 4421 | (i32.load 4422 | (i32.add 4423 | (get_local $0) 4424 | (i32.const 8) 4425 | ) 4426 | ) 4427 | (get_local $6) 4428 | ) 4429 | (tee_local $5 4430 | (i32.sub 4431 | (i32.load 4432 | (i32.add 4433 | (get_local $1) 4434 | (i32.const 4) 4435 | ) 4436 | ) 4437 | (tee_local $2 4438 | (i32.load 4439 | (get_local $1) 4440 | ) 4441 | ) 4442 | ) 4443 | ) 4444 | ) 4445 | (i32.const 432) 4446 | ) 4447 | (drop 4448 | (call $memcpy 4449 | (i32.load 4450 | (tee_local $6 4451 | (i32.add 4452 | (get_local $0) 4453 | (i32.const 4) 4454 | ) 4455 | ) 4456 | ) 4457 | (get_local $2) 4458 | (get_local $5) 4459 | ) 4460 | ) 4461 | (i32.store 4462 | (get_local $6) 4463 | (i32.add 4464 | (i32.load 4465 | (get_local $6) 4466 | ) 4467 | (get_local $5) 4468 | ) 4469 | ) 4470 | (i32.store offset=4 4471 | (i32.const 0) 4472 | (i32.add 4473 | (get_local $8) 4474 | (i32.const 16) 4475 | ) 4476 | ) 4477 | (get_local $0) 4478 | ) 4479 | (func $_ZN8prochainrsIN5eosio10datastreamIPKcEEEERT_S7_RNS_6RatingE (param $0 i32) (param $1 i32) (result i32) 4480 | (local $2 i32) 4481 | (call $eosio_assert 4482 | (i32.gt_u 4483 | (i32.sub 4484 | (i32.load offset=8 4485 | (get_local $0) 4486 | ) 4487 | (i32.load offset=4 4488 | (get_local $0) 4489 | ) 4490 | ) 4491 | (i32.const 7) 4492 | ) 4493 | (i32.const 272) 4494 | ) 4495 | (drop 4496 | (call $memcpy 4497 | (get_local $1) 4498 | (i32.load offset=4 4499 | (get_local $0) 4500 | ) 4501 | (i32.const 8) 4502 | ) 4503 | ) 4504 | (i32.store offset=4 4505 | (get_local $0) 4506 | (tee_local $2 4507 | (i32.add 4508 | (i32.load offset=4 4509 | (get_local $0) 4510 | ) 4511 | (i32.const 8) 4512 | ) 4513 | ) 4514 | ) 4515 | (call $eosio_assert 4516 | (i32.ne 4517 | (i32.load offset=8 4518 | (get_local $0) 4519 | ) 4520 | (get_local $2) 4521 | ) 4522 | (i32.const 272) 4523 | ) 4524 | (drop 4525 | (call $memcpy 4526 | (i32.add 4527 | (get_local $1) 4528 | (i32.const 8) 4529 | ) 4530 | (i32.load offset=4 4531 | (get_local $0) 4532 | ) 4533 | (i32.const 1) 4534 | ) 4535 | ) 4536 | (i32.store offset=4 4537 | (get_local $0) 4538 | (tee_local $2 4539 | (i32.add 4540 | (i32.load offset=4 4541 | (get_local $0) 4542 | ) 4543 | (i32.const 1) 4544 | ) 4545 | ) 4546 | ) 4547 | (call $eosio_assert 4548 | (i32.ne 4549 | (i32.load offset=8 4550 | (get_local $0) 4551 | ) 4552 | (get_local $2) 4553 | ) 4554 | (i32.const 272) 4555 | ) 4556 | (drop 4557 | (call $memcpy 4558 | (i32.add 4559 | (get_local $1) 4560 | (i32.const 9) 4561 | ) 4562 | (i32.load offset=4 4563 | (get_local $0) 4564 | ) 4565 | (i32.const 1) 4566 | ) 4567 | ) 4568 | (i32.store offset=4 4569 | (get_local $0) 4570 | (tee_local $2 4571 | (i32.add 4572 | (i32.load offset=4 4573 | (get_local $0) 4574 | ) 4575 | (i32.const 1) 4576 | ) 4577 | ) 4578 | ) 4579 | (call $eosio_assert 4580 | (i32.ne 4581 | (i32.load offset=8 4582 | (get_local $0) 4583 | ) 4584 | (get_local $2) 4585 | ) 4586 | (i32.const 272) 4587 | ) 4588 | (drop 4589 | (call $memcpy 4590 | (i32.add 4591 | (get_local $1) 4592 | (i32.const 10) 4593 | ) 4594 | (i32.load offset=4 4595 | (get_local $0) 4596 | ) 4597 | (i32.const 1) 4598 | ) 4599 | ) 4600 | (i32.store offset=4 4601 | (get_local $0) 4602 | (i32.add 4603 | (i32.load offset=4 4604 | (get_local $0) 4605 | ) 4606 | (i32.const 1) 4607 | ) 4608 | ) 4609 | (get_local $0) 4610 | ) 4611 | (func $_ZNSt3__16vectorIN5eosio11multi_indexILy14829675507116670976EN8prochain6RatingEJEE8item_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) 4612 | (local $4 i32) 4613 | (local $5 i32) 4614 | (local $6 i32) 4615 | (local $7 i32) 4616 | (block $label$0 4617 | (block $label$1 4618 | (br_if $label$1 4619 | (i32.ge_u 4620 | (tee_local $5 4621 | (i32.add 4622 | (tee_local $4 4623 | (i32.div_s 4624 | (i32.sub 4625 | (i32.load offset=4 4626 | (get_local $0) 4627 | ) 4628 | (tee_local $6 4629 | (i32.load 4630 | (get_local $0) 4631 | ) 4632 | ) 4633 | ) 4634 | (i32.const 24) 4635 | ) 4636 | ) 4637 | (i32.const 1) 4638 | ) 4639 | ) 4640 | (i32.const 178956971) 4641 | ) 4642 | ) 4643 | (set_local $7 4644 | (i32.const 178956970) 4645 | ) 4646 | (block $label$2 4647 | (block $label$3 4648 | (br_if $label$3 4649 | (i32.gt_u 4650 | (tee_local $6 4651 | (i32.div_s 4652 | (i32.sub 4653 | (i32.load offset=8 4654 | (get_local $0) 4655 | ) 4656 | (get_local $6) 4657 | ) 4658 | (i32.const 24) 4659 | ) 4660 | ) 4661 | (i32.const 89478484) 4662 | ) 4663 | ) 4664 | (br_if $label$2 4665 | (i32.eqz 4666 | (tee_local $7 4667 | (select 4668 | (get_local $5) 4669 | (tee_local $7 4670 | (i32.shl 4671 | (get_local $6) 4672 | (i32.const 1) 4673 | ) 4674 | ) 4675 | (i32.lt_u 4676 | (get_local $7) 4677 | (get_local $5) 4678 | ) 4679 | ) 4680 | ) 4681 | ) 4682 | ) 4683 | ) 4684 | (set_local $6 4685 | (call $_Znwj 4686 | (i32.mul 4687 | (get_local $7) 4688 | (i32.const 24) 4689 | ) 4690 | ) 4691 | ) 4692 | (br $label$0) 4693 | ) 4694 | (set_local $7 4695 | (i32.const 0) 4696 | ) 4697 | (set_local $6 4698 | (i32.const 0) 4699 | ) 4700 | (br $label$0) 4701 | ) 4702 | (call $_ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv 4703 | (get_local $0) 4704 | ) 4705 | (unreachable) 4706 | ) 4707 | (set_local $5 4708 | (i32.load 4709 | (get_local $1) 4710 | ) 4711 | ) 4712 | (i32.store 4713 | (get_local $1) 4714 | (i32.const 0) 4715 | ) 4716 | (i32.store 4717 | (tee_local $1 4718 | (i32.add 4719 | (get_local $6) 4720 | (i32.mul 4721 | (get_local $4) 4722 | (i32.const 24) 4723 | ) 4724 | ) 4725 | ) 4726 | (get_local $5) 4727 | ) 4728 | (i64.store offset=8 4729 | (get_local $1) 4730 | (i64.load 4731 | (get_local $2) 4732 | ) 4733 | ) 4734 | (i32.store offset=16 4735 | (get_local $1) 4736 | (i32.load 4737 | (get_local $3) 4738 | ) 4739 | ) 4740 | (set_local $4 4741 | (i32.add 4742 | (get_local $6) 4743 | (i32.mul 4744 | (get_local $7) 4745 | (i32.const 24) 4746 | ) 4747 | ) 4748 | ) 4749 | (set_local $5 4750 | (i32.add 4751 | (get_local $1) 4752 | (i32.const 24) 4753 | ) 4754 | ) 4755 | (block $label$4 4756 | (block $label$5 4757 | (br_if $label$5 4758 | (i32.eq 4759 | (tee_local $6 4760 | (i32.load 4761 | (i32.add 4762 | (get_local $0) 4763 | (i32.const 4) 4764 | ) 4765 | ) 4766 | ) 4767 | (tee_local $7 4768 | (i32.load 4769 | (get_local $0) 4770 | ) 4771 | ) 4772 | ) 4773 | ) 4774 | (loop $label$6 4775 | (set_local $3 4776 | (i32.load 4777 | (tee_local $2 4778 | (i32.add 4779 | (get_local $6) 4780 | (i32.const -24) 4781 | ) 4782 | ) 4783 | ) 4784 | ) 4785 | (i32.store 4786 | (get_local $2) 4787 | (i32.const 0) 4788 | ) 4789 | (i32.store 4790 | (i32.add 4791 | (get_local $1) 4792 | (i32.const -24) 4793 | ) 4794 | (get_local $3) 4795 | ) 4796 | (i32.store 4797 | (i32.add 4798 | (get_local $1) 4799 | (i32.const -8) 4800 | ) 4801 | (i32.load 4802 | (i32.add 4803 | (get_local $6) 4804 | (i32.const -8) 4805 | ) 4806 | ) 4807 | ) 4808 | (i32.store 4809 | (i32.add 4810 | (get_local $1) 4811 | (i32.const -12) 4812 | ) 4813 | (i32.load 4814 | (i32.add 4815 | (get_local $6) 4816 | (i32.const -12) 4817 | ) 4818 | ) 4819 | ) 4820 | (i32.store 4821 | (i32.add 4822 | (get_local $1) 4823 | (i32.const -16) 4824 | ) 4825 | (i32.load 4826 | (i32.add 4827 | (get_local $6) 4828 | (i32.const -16) 4829 | ) 4830 | ) 4831 | ) 4832 | (set_local $1 4833 | (i32.add 4834 | (get_local $1) 4835 | (i32.const -24) 4836 | ) 4837 | ) 4838 | (set_local $6 4839 | (get_local $2) 4840 | ) 4841 | (br_if $label$6 4842 | (i32.ne 4843 | (get_local $7) 4844 | (get_local $2) 4845 | ) 4846 | ) 4847 | ) 4848 | (set_local $7 4849 | (i32.load 4850 | (i32.add 4851 | (get_local $0) 4852 | (i32.const 4) 4853 | ) 4854 | ) 4855 | ) 4856 | (set_local $6 4857 | (i32.load 4858 | (get_local $0) 4859 | ) 4860 | ) 4861 | (br $label$4) 4862 | ) 4863 | (set_local $6 4864 | (get_local $7) 4865 | ) 4866 | ) 4867 | (i32.store 4868 | (get_local $0) 4869 | (get_local $1) 4870 | ) 4871 | (i32.store 4872 | (i32.add 4873 | (get_local $0) 4874 | (i32.const 4) 4875 | ) 4876 | (get_local $5) 4877 | ) 4878 | (i32.store 4879 | (i32.add 4880 | (get_local $0) 4881 | (i32.const 8) 4882 | ) 4883 | (get_local $4) 4884 | ) 4885 | (block $label$7 4886 | (br_if $label$7 4887 | (i32.eq 4888 | (get_local $7) 4889 | (get_local $6) 4890 | ) 4891 | ) 4892 | (loop $label$8 4893 | (set_local $1 4894 | (i32.load 4895 | (tee_local $7 4896 | (i32.add 4897 | (get_local $7) 4898 | (i32.const -24) 4899 | ) 4900 | ) 4901 | ) 4902 | ) 4903 | (i32.store 4904 | (get_local $7) 4905 | (i32.const 0) 4906 | ) 4907 | (block $label$9 4908 | (br_if $label$9 4909 | (i32.eqz 4910 | (get_local $1) 4911 | ) 4912 | ) 4913 | (call $_ZdlPv 4914 | (get_local $1) 4915 | ) 4916 | ) 4917 | (br_if $label$8 4918 | (i32.ne 4919 | (get_local $6) 4920 | (get_local $7) 4921 | ) 4922 | ) 4923 | ) 4924 | ) 4925 | (block $label$10 4926 | (br_if $label$10 4927 | (i32.eqz 4928 | (get_local $6) 4929 | ) 4930 | ) 4931 | (call $_ZdlPv 4932 | (get_local $6) 4933 | ) 4934 | ) 4935 | ) 4936 | (func $malloc (param $0 i32) (result i32) 4937 | (call $_ZN5eosio14memory_manager6mallocEm 4938 | (i32.const 476) 4939 | (get_local $0) 4940 | ) 4941 | ) 4942 | (func $_ZN5eosio14memory_manager6mallocEm (param $0 i32) (param $1 i32) (result i32) 4943 | (local $2 i32) 4944 | (local $3 i32) 4945 | (local $4 i32) 4946 | (local $5 i32) 4947 | (local $6 i32) 4948 | (local $7 i32) 4949 | (local $8 i32) 4950 | (local $9 i32) 4951 | (local $10 i32) 4952 | (local $11 i32) 4953 | (local $12 i32) 4954 | (local $13 i32) 4955 | (block $label$0 4956 | (br_if $label$0 4957 | (i32.eqz 4958 | (get_local $1) 4959 | ) 4960 | ) 4961 | (block $label$1 4962 | (br_if $label$1 4963 | (tee_local $13 4964 | (i32.load offset=8384 4965 | (get_local $0) 4966 | ) 4967 | ) 4968 | ) 4969 | (set_local $13 4970 | (i32.const 16) 4971 | ) 4972 | (i32.store 4973 | (i32.add 4974 | (get_local $0) 4975 | (i32.const 8384) 4976 | ) 4977 | (i32.const 16) 4978 | ) 4979 | ) 4980 | (set_local $2 4981 | (select 4982 | (i32.sub 4983 | (i32.add 4984 | (get_local $1) 4985 | (i32.const 8) 4986 | ) 4987 | (tee_local $2 4988 | (i32.and 4989 | (i32.add 4990 | (get_local $1) 4991 | (i32.const 4) 4992 | ) 4993 | (i32.const 7) 4994 | ) 4995 | ) 4996 | ) 4997 | (get_local $1) 4998 | (get_local $2) 4999 | ) 5000 | ) 5001 | (block $label$2 5002 | (block $label$3 5003 | (block $label$4 5004 | (br_if $label$4 5005 | (i32.ge_u 5006 | (tee_local $10 5007 | (i32.load offset=8388 5008 | (get_local $0) 5009 | ) 5010 | ) 5011 | (get_local $13) 5012 | ) 5013 | ) 5014 | (set_local $1 5015 | (i32.add 5016 | (i32.add 5017 | (get_local $0) 5018 | (i32.mul 5019 | (get_local $10) 5020 | (i32.const 12) 5021 | ) 5022 | ) 5023 | (i32.const 8192) 5024 | ) 5025 | ) 5026 | (block $label$5 5027 | (br_if $label$5 5028 | (get_local $10) 5029 | ) 5030 | (br_if $label$5 5031 | (i32.load 5032 | (tee_local $13 5033 | (i32.add 5034 | (get_local $0) 5035 | (i32.const 8196) 5036 | ) 5037 | ) 5038 | ) 5039 | ) 5040 | (i32.store 5041 | (get_local $1) 5042 | (i32.const 8192) 5043 | ) 5044 | (i32.store 5045 | (get_local $13) 5046 | (get_local $0) 5047 | ) 5048 | ) 5049 | (set_local $10 5050 | (i32.add 5051 | (get_local $2) 5052 | (i32.const 4) 5053 | ) 5054 | ) 5055 | (loop $label$6 5056 | (block $label$7 5057 | (br_if $label$7 5058 | (i32.gt_u 5059 | (i32.add 5060 | (tee_local $13 5061 | (i32.load offset=8 5062 | (get_local $1) 5063 | ) 5064 | ) 5065 | (get_local $10) 5066 | ) 5067 | (i32.load 5068 | (get_local $1) 5069 | ) 5070 | ) 5071 | ) 5072 | (i32.store 5073 | (tee_local $13 5074 | (i32.add 5075 | (i32.load offset=4 5076 | (get_local $1) 5077 | ) 5078 | (get_local $13) 5079 | ) 5080 | ) 5081 | (i32.or 5082 | (i32.and 5083 | (i32.load 5084 | (get_local $13) 5085 | ) 5086 | (i32.const -2147483648) 5087 | ) 5088 | (get_local $2) 5089 | ) 5090 | ) 5091 | (i32.store 5092 | (tee_local $1 5093 | (i32.add 5094 | (get_local $1) 5095 | (i32.const 8) 5096 | ) 5097 | ) 5098 | (i32.add 5099 | (i32.load 5100 | (get_local $1) 5101 | ) 5102 | (get_local $10) 5103 | ) 5104 | ) 5105 | (i32.store 5106 | (get_local $13) 5107 | (i32.or 5108 | (i32.load 5109 | (get_local $13) 5110 | ) 5111 | (i32.const -2147483648) 5112 | ) 5113 | ) 5114 | (br_if $label$3 5115 | (tee_local $1 5116 | (i32.add 5117 | (get_local $13) 5118 | (i32.const 4) 5119 | ) 5120 | ) 5121 | ) 5122 | ) 5123 | (br_if $label$6 5124 | (tee_local $1 5125 | (call $_ZN5eosio14memory_manager16next_active_heapEv 5126 | (get_local $0) 5127 | ) 5128 | ) 5129 | ) 5130 | ) 5131 | ) 5132 | (set_local $4 5133 | (i32.sub 5134 | (i32.const 2147483644) 5135 | (get_local $2) 5136 | ) 5137 | ) 5138 | (set_local $11 5139 | (i32.add 5140 | (get_local $0) 5141 | (i32.const 8392) 5142 | ) 5143 | ) 5144 | (set_local $12 5145 | (i32.add 5146 | (get_local $0) 5147 | (i32.const 8384) 5148 | ) 5149 | ) 5150 | (set_local $13 5151 | (tee_local $3 5152 | (i32.load offset=8392 5153 | (get_local $0) 5154 | ) 5155 | ) 5156 | ) 5157 | (loop $label$8 5158 | (call $eosio_assert 5159 | (i32.eq 5160 | (i32.load 5161 | (i32.add 5162 | (tee_local $1 5163 | (i32.add 5164 | (get_local $0) 5165 | (i32.mul 5166 | (get_local $13) 5167 | (i32.const 12) 5168 | ) 5169 | ) 5170 | ) 5171 | (i32.const 8200) 5172 | ) 5173 | ) 5174 | (i32.load 5175 | (tee_local $5 5176 | (i32.add 5177 | (get_local $1) 5178 | (i32.const 8192) 5179 | ) 5180 | ) 5181 | ) 5182 | ) 5183 | (i32.const 8880) 5184 | ) 5185 | (set_local $13 5186 | (i32.add 5187 | (tee_local $6 5188 | (i32.load 5189 | (i32.add 5190 | (get_local $1) 5191 | (i32.const 8196) 5192 | ) 5193 | ) 5194 | ) 5195 | (i32.const 4) 5196 | ) 5197 | ) 5198 | (loop $label$9 5199 | (set_local $7 5200 | (i32.add 5201 | (get_local $6) 5202 | (i32.load 5203 | (get_local $5) 5204 | ) 5205 | ) 5206 | ) 5207 | (set_local $1 5208 | (i32.and 5209 | (tee_local $9 5210 | (i32.load 5211 | (tee_local $8 5212 | (i32.add 5213 | (get_local $13) 5214 | (i32.const -4) 5215 | ) 5216 | ) 5217 | ) 5218 | ) 5219 | (i32.const 2147483647) 5220 | ) 5221 | ) 5222 | (block $label$10 5223 | (br_if $label$10 5224 | (i32.lt_s 5225 | (get_local $9) 5226 | (i32.const 0) 5227 | ) 5228 | ) 5229 | (block $label$11 5230 | (br_if $label$11 5231 | (i32.ge_u 5232 | (get_local $1) 5233 | (get_local $2) 5234 | ) 5235 | ) 5236 | (loop $label$12 5237 | (br_if $label$11 5238 | (i32.ge_u 5239 | (tee_local $10 5240 | (i32.add 5241 | (get_local $13) 5242 | (get_local $1) 5243 | ) 5244 | ) 5245 | (get_local $7) 5246 | ) 5247 | ) 5248 | (br_if $label$11 5249 | (i32.lt_s 5250 | (tee_local $10 5251 | (i32.load 5252 | (get_local $10) 5253 | ) 5254 | ) 5255 | (i32.const 0) 5256 | ) 5257 | ) 5258 | (br_if $label$12 5259 | (i32.lt_u 5260 | (tee_local $1 5261 | (i32.add 5262 | (i32.add 5263 | (get_local $1) 5264 | (i32.and 5265 | (get_local $10) 5266 | (i32.const 2147483647) 5267 | ) 5268 | ) 5269 | (i32.const 4) 5270 | ) 5271 | ) 5272 | (get_local $2) 5273 | ) 5274 | ) 5275 | ) 5276 | ) 5277 | (i32.store 5278 | (get_local $8) 5279 | (i32.or 5280 | (select 5281 | (get_local $1) 5282 | (get_local $2) 5283 | (i32.lt_u 5284 | (get_local $1) 5285 | (get_local $2) 5286 | ) 5287 | ) 5288 | (i32.and 5289 | (get_local $9) 5290 | (i32.const -2147483648) 5291 | ) 5292 | ) 5293 | ) 5294 | (block $label$13 5295 | (br_if $label$13 5296 | (i32.le_u 5297 | (get_local $1) 5298 | (get_local $2) 5299 | ) 5300 | ) 5301 | (i32.store 5302 | (i32.add 5303 | (get_local $13) 5304 | (get_local $2) 5305 | ) 5306 | (i32.and 5307 | (i32.add 5308 | (get_local $4) 5309 | (get_local $1) 5310 | ) 5311 | (i32.const 2147483647) 5312 | ) 5313 | ) 5314 | ) 5315 | (br_if $label$2 5316 | (i32.ge_u 5317 | (get_local $1) 5318 | (get_local $2) 5319 | ) 5320 | ) 5321 | ) 5322 | (br_if $label$9 5323 | (i32.lt_u 5324 | (tee_local $13 5325 | (i32.add 5326 | (i32.add 5327 | (get_local $13) 5328 | (get_local $1) 5329 | ) 5330 | (i32.const 4) 5331 | ) 5332 | ) 5333 | (get_local $7) 5334 | ) 5335 | ) 5336 | ) 5337 | (set_local $1 5338 | (i32.const 0) 5339 | ) 5340 | (i32.store 5341 | (get_local $11) 5342 | (tee_local $13 5343 | (select 5344 | (i32.const 0) 5345 | (tee_local $13 5346 | (i32.add 5347 | (i32.load 5348 | (get_local $11) 5349 | ) 5350 | (i32.const 1) 5351 | ) 5352 | ) 5353 | (i32.eq 5354 | (get_local $13) 5355 | (i32.load 5356 | (get_local $12) 5357 | ) 5358 | ) 5359 | ) 5360 | ) 5361 | ) 5362 | (br_if $label$8 5363 | (i32.ne 5364 | (get_local $13) 5365 | (get_local $3) 5366 | ) 5367 | ) 5368 | ) 5369 | ) 5370 | (return 5371 | (get_local $1) 5372 | ) 5373 | ) 5374 | (i32.store 5375 | (get_local $8) 5376 | (i32.or 5377 | (i32.load 5378 | (get_local $8) 5379 | ) 5380 | (i32.const -2147483648) 5381 | ) 5382 | ) 5383 | (return 5384 | (get_local $13) 5385 | ) 5386 | ) 5387 | (i32.const 0) 5388 | ) 5389 | (func $_ZN5eosio14memory_manager16next_active_heapEv (param $0 i32) (result i32) 5390 | (local $1 i32) 5391 | (local $2 i32) 5392 | (local $3 i32) 5393 | (local $4 i32) 5394 | (local $5 i32) 5395 | (local $6 i32) 5396 | (local $7 i32) 5397 | (local $8 i32) 5398 | (set_local $1 5399 | (i32.load offset=8388 5400 | (get_local $0) 5401 | ) 5402 | ) 5403 | (block $label$0 5404 | (block $label$1 5405 | (br_if $label$1 5406 | (i32.eqz 5407 | (i32.load8_u offset=8966 5408 | (i32.const 0) 5409 | ) 5410 | ) 5411 | ) 5412 | (set_local $7 5413 | (i32.load offset=8968 5414 | (i32.const 0) 5415 | ) 5416 | ) 5417 | (br $label$0) 5418 | ) 5419 | (set_local $7 5420 | (current_memory) 5421 | ) 5422 | (i32.store8 offset=8966 5423 | (i32.const 0) 5424 | (i32.const 1) 5425 | ) 5426 | (i32.store offset=8968 5427 | (i32.const 0) 5428 | (tee_local $7 5429 | (i32.shl 5430 | (get_local $7) 5431 | (i32.const 16) 5432 | ) 5433 | ) 5434 | ) 5435 | ) 5436 | (set_local $3 5437 | (get_local $7) 5438 | ) 5439 | (block $label$2 5440 | (block $label$3 5441 | (block $label$4 5442 | (block $label$5 5443 | (br_if $label$5 5444 | (i32.le_u 5445 | (tee_local $2 5446 | (i32.shr_u 5447 | (i32.add 5448 | (get_local $7) 5449 | (i32.const 65535) 5450 | ) 5451 | (i32.const 16) 5452 | ) 5453 | ) 5454 | (tee_local $8 5455 | (current_memory) 5456 | ) 5457 | ) 5458 | ) 5459 | (drop 5460 | (grow_memory 5461 | (i32.sub 5462 | (get_local $2) 5463 | (get_local $8) 5464 | ) 5465 | ) 5466 | ) 5467 | (set_local $8 5468 | (i32.const 0) 5469 | ) 5470 | (br_if $label$4 5471 | (i32.ne 5472 | (get_local $2) 5473 | (current_memory) 5474 | ) 5475 | ) 5476 | (set_local $3 5477 | (i32.load offset=8968 5478 | (i32.const 0) 5479 | ) 5480 | ) 5481 | ) 5482 | (set_local $8 5483 | (i32.const 0) 5484 | ) 5485 | (i32.store offset=8968 5486 | (i32.const 0) 5487 | (get_local $3) 5488 | ) 5489 | (br_if $label$4 5490 | (i32.lt_s 5491 | (get_local $7) 5492 | (i32.const 0) 5493 | ) 5494 | ) 5495 | (set_local $2 5496 | (i32.add 5497 | (get_local $0) 5498 | (i32.mul 5499 | (get_local $1) 5500 | (i32.const 12) 5501 | ) 5502 | ) 5503 | ) 5504 | (set_local $7 5505 | (i32.sub 5506 | (i32.sub 5507 | (i32.add 5508 | (get_local $7) 5509 | (select 5510 | (i32.const 65536) 5511 | (i32.const 131072) 5512 | (tee_local $6 5513 | (i32.lt_u 5514 | (tee_local $8 5515 | (i32.and 5516 | (get_local $7) 5517 | (i32.const 65535) 5518 | ) 5519 | ) 5520 | (i32.const 64513) 5521 | ) 5522 | ) 5523 | ) 5524 | ) 5525 | (select 5526 | (get_local $8) 5527 | (i32.and 5528 | (get_local $7) 5529 | (i32.const 131071) 5530 | ) 5531 | (get_local $6) 5532 | ) 5533 | ) 5534 | (get_local $7) 5535 | ) 5536 | ) 5537 | (block $label$6 5538 | (br_if $label$6 5539 | (i32.load8_u offset=8966 5540 | (i32.const 0) 5541 | ) 5542 | ) 5543 | (set_local $3 5544 | (current_memory) 5545 | ) 5546 | (i32.store8 offset=8966 5547 | (i32.const 0) 5548 | (i32.const 1) 5549 | ) 5550 | (i32.store offset=8968 5551 | (i32.const 0) 5552 | (tee_local $3 5553 | (i32.shl 5554 | (get_local $3) 5555 | (i32.const 16) 5556 | ) 5557 | ) 5558 | ) 5559 | ) 5560 | (set_local $2 5561 | (i32.add 5562 | (get_local $2) 5563 | (i32.const 8192) 5564 | ) 5565 | ) 5566 | (br_if $label$3 5567 | (i32.lt_s 5568 | (get_local $7) 5569 | (i32.const 0) 5570 | ) 5571 | ) 5572 | (set_local $6 5573 | (get_local $3) 5574 | ) 5575 | (block $label$7 5576 | (br_if $label$7 5577 | (i32.le_u 5578 | (tee_local $8 5579 | (i32.shr_u 5580 | (i32.add 5581 | (i32.add 5582 | (tee_local $5 5583 | (i32.and 5584 | (i32.add 5585 | (get_local $7) 5586 | (i32.const 7) 5587 | ) 5588 | (i32.const -8) 5589 | ) 5590 | ) 5591 | (get_local $3) 5592 | ) 5593 | (i32.const 65535) 5594 | ) 5595 | (i32.const 16) 5596 | ) 5597 | ) 5598 | (tee_local $4 5599 | (current_memory) 5600 | ) 5601 | ) 5602 | ) 5603 | (drop 5604 | (grow_memory 5605 | (i32.sub 5606 | (get_local $8) 5607 | (get_local $4) 5608 | ) 5609 | ) 5610 | ) 5611 | (br_if $label$3 5612 | (i32.ne 5613 | (get_local $8) 5614 | (current_memory) 5615 | ) 5616 | ) 5617 | (set_local $6 5618 | (i32.load offset=8968 5619 | (i32.const 0) 5620 | ) 5621 | ) 5622 | ) 5623 | (i32.store offset=8968 5624 | (i32.const 0) 5625 | (i32.add 5626 | (get_local $6) 5627 | (get_local $5) 5628 | ) 5629 | ) 5630 | (br_if $label$3 5631 | (i32.eq 5632 | (get_local $3) 5633 | (i32.const -1) 5634 | ) 5635 | ) 5636 | (br_if $label$2 5637 | (i32.eq 5638 | (i32.add 5639 | (tee_local $6 5640 | (i32.load 5641 | (i32.add 5642 | (tee_local $1 5643 | (i32.add 5644 | (get_local $0) 5645 | (i32.mul 5646 | (get_local $1) 5647 | (i32.const 12) 5648 | ) 5649 | ) 5650 | ) 5651 | (i32.const 8196) 5652 | ) 5653 | ) 5654 | ) 5655 | (tee_local $8 5656 | (i32.load 5657 | (get_local $2) 5658 | ) 5659 | ) 5660 | ) 5661 | (get_local $3) 5662 | ) 5663 | ) 5664 | (block $label$8 5665 | (br_if $label$8 5666 | (i32.eq 5667 | (get_local $8) 5668 | (tee_local $1 5669 | (i32.load 5670 | (tee_local $5 5671 | (i32.add 5672 | (get_local $1) 5673 | (i32.const 8200) 5674 | ) 5675 | ) 5676 | ) 5677 | ) 5678 | ) 5679 | ) 5680 | (i32.store 5681 | (tee_local $6 5682 | (i32.add 5683 | (get_local $6) 5684 | (get_local $1) 5685 | ) 5686 | ) 5687 | (i32.or 5688 | (i32.and 5689 | (i32.load 5690 | (get_local $6) 5691 | ) 5692 | (i32.const -2147483648) 5693 | ) 5694 | (i32.add 5695 | (i32.sub 5696 | (i32.const -4) 5697 | (get_local $1) 5698 | ) 5699 | (get_local $8) 5700 | ) 5701 | ) 5702 | ) 5703 | (i32.store 5704 | (get_local $5) 5705 | (i32.load 5706 | (get_local $2) 5707 | ) 5708 | ) 5709 | (i32.store 5710 | (get_local $6) 5711 | (i32.and 5712 | (i32.load 5713 | (get_local $6) 5714 | ) 5715 | (i32.const 2147483647) 5716 | ) 5717 | ) 5718 | ) 5719 | (i32.store 5720 | (tee_local $2 5721 | (i32.add 5722 | (get_local $0) 5723 | (i32.const 8388) 5724 | ) 5725 | ) 5726 | (tee_local $2 5727 | (i32.add 5728 | (i32.load 5729 | (get_local $2) 5730 | ) 5731 | (i32.const 1) 5732 | ) 5733 | ) 5734 | ) 5735 | (i32.store 5736 | (i32.add 5737 | (tee_local $0 5738 | (i32.add 5739 | (get_local $0) 5740 | (i32.mul 5741 | (get_local $2) 5742 | (i32.const 12) 5743 | ) 5744 | ) 5745 | ) 5746 | (i32.const 8196) 5747 | ) 5748 | (get_local $3) 5749 | ) 5750 | (i32.store 5751 | (tee_local $8 5752 | (i32.add 5753 | (get_local $0) 5754 | (i32.const 8192) 5755 | ) 5756 | ) 5757 | (get_local $7) 5758 | ) 5759 | ) 5760 | (return 5761 | (get_local $8) 5762 | ) 5763 | ) 5764 | (block $label$9 5765 | (br_if $label$9 5766 | (i32.eq 5767 | (tee_local $8 5768 | (i32.load 5769 | (get_local $2) 5770 | ) 5771 | ) 5772 | (tee_local $7 5773 | (i32.load 5774 | (tee_local $1 5775 | (i32.add 5776 | (tee_local $3 5777 | (i32.add 5778 | (get_local $0) 5779 | (i32.mul 5780 | (get_local $1) 5781 | (i32.const 12) 5782 | ) 5783 | ) 5784 | ) 5785 | (i32.const 8200) 5786 | ) 5787 | ) 5788 | ) 5789 | ) 5790 | ) 5791 | ) 5792 | (i32.store 5793 | (tee_local $3 5794 | (i32.add 5795 | (i32.load 5796 | (i32.add 5797 | (get_local $3) 5798 | (i32.const 8196) 5799 | ) 5800 | ) 5801 | (get_local $7) 5802 | ) 5803 | ) 5804 | (i32.or 5805 | (i32.and 5806 | (i32.load 5807 | (get_local $3) 5808 | ) 5809 | (i32.const -2147483648) 5810 | ) 5811 | (i32.add 5812 | (i32.sub 5813 | (i32.const -4) 5814 | (get_local $7) 5815 | ) 5816 | (get_local $8) 5817 | ) 5818 | ) 5819 | ) 5820 | (i32.store 5821 | (get_local $1) 5822 | (i32.load 5823 | (get_local $2) 5824 | ) 5825 | ) 5826 | (i32.store 5827 | (get_local $3) 5828 | (i32.and 5829 | (i32.load 5830 | (get_local $3) 5831 | ) 5832 | (i32.const 2147483647) 5833 | ) 5834 | ) 5835 | ) 5836 | (i32.store offset=8384 5837 | (get_local $0) 5838 | (tee_local $3 5839 | (i32.add 5840 | (i32.load 5841 | (tee_local $7 5842 | (i32.add 5843 | (get_local $0) 5844 | (i32.const 8388) 5845 | ) 5846 | ) 5847 | ) 5848 | (i32.const 1) 5849 | ) 5850 | ) 5851 | ) 5852 | (i32.store 5853 | (get_local $7) 5854 | (get_local $3) 5855 | ) 5856 | (return 5857 | (i32.const 0) 5858 | ) 5859 | ) 5860 | (i32.store 5861 | (get_local $2) 5862 | (i32.add 5863 | (get_local $8) 5864 | (get_local $7) 5865 | ) 5866 | ) 5867 | (get_local $2) 5868 | ) 5869 | (func $free (param $0 i32) 5870 | (local $1 i32) 5871 | (local $2 i32) 5872 | (local $3 i32) 5873 | (block $label$0 5874 | (block $label$1 5875 | (br_if $label$1 5876 | (i32.eqz 5877 | (get_local $0) 5878 | ) 5879 | ) 5880 | (br_if $label$1 5881 | (i32.lt_s 5882 | (tee_local $2 5883 | (i32.load offset=8860 5884 | (i32.const 0) 5885 | ) 5886 | ) 5887 | (i32.const 1) 5888 | ) 5889 | ) 5890 | (set_local $3 5891 | (i32.const 8668) 5892 | ) 5893 | (set_local $1 5894 | (i32.add 5895 | (i32.mul 5896 | (get_local $2) 5897 | (i32.const 12) 5898 | ) 5899 | (i32.const 8668) 5900 | ) 5901 | ) 5902 | (loop $label$2 5903 | (br_if $label$1 5904 | (i32.eqz 5905 | (tee_local $2 5906 | (i32.load 5907 | (i32.add 5908 | (get_local $3) 5909 | (i32.const 4) 5910 | ) 5911 | ) 5912 | ) 5913 | ) 5914 | ) 5915 | (block $label$3 5916 | (br_if $label$3 5917 | (i32.gt_u 5918 | (i32.add 5919 | (get_local $2) 5920 | (i32.const 4) 5921 | ) 5922 | (get_local $0) 5923 | ) 5924 | ) 5925 | (br_if $label$0 5926 | (i32.gt_u 5927 | (i32.add 5928 | (get_local $2) 5929 | (i32.load 5930 | (get_local $3) 5931 | ) 5932 | ) 5933 | (get_local $0) 5934 | ) 5935 | ) 5936 | ) 5937 | (br_if $label$2 5938 | (i32.lt_u 5939 | (tee_local $3 5940 | (i32.add 5941 | (get_local $3) 5942 | (i32.const 12) 5943 | ) 5944 | ) 5945 | (get_local $1) 5946 | ) 5947 | ) 5948 | ) 5949 | ) 5950 | (return) 5951 | ) 5952 | (i32.store 5953 | (tee_local $3 5954 | (i32.add 5955 | (get_local $0) 5956 | (i32.const -4) 5957 | ) 5958 | ) 5959 | (i32.and 5960 | (i32.load 5961 | (get_local $3) 5962 | ) 5963 | (i32.const 2147483647) 5964 | ) 5965 | ) 5966 | ) 5967 | (func $_Znwj (param $0 i32) (result i32) 5968 | (local $1 i32) 5969 | (local $2 i32) 5970 | (block $label$0 5971 | (br_if $label$0 5972 | (tee_local $0 5973 | (call $malloc 5974 | (tee_local $1 5975 | (select 5976 | (get_local $0) 5977 | (i32.const 1) 5978 | (get_local $0) 5979 | ) 5980 | ) 5981 | ) 5982 | ) 5983 | ) 5984 | (loop $label$1 5985 | (set_local $0 5986 | (i32.const 0) 5987 | ) 5988 | (br_if $label$0 5989 | (i32.eqz 5990 | (tee_local $2 5991 | (i32.load offset=8972 5992 | (i32.const 0) 5993 | ) 5994 | ) 5995 | ) 5996 | ) 5997 | (call_indirect (type $FUNCSIG$v) 5998 | (get_local $2) 5999 | ) 6000 | (br_if $label$1 6001 | (i32.eqz 6002 | (tee_local $0 6003 | (call $malloc 6004 | (get_local $1) 6005 | ) 6006 | ) 6007 | ) 6008 | ) 6009 | ) 6010 | ) 6011 | (get_local $0) 6012 | ) 6013 | (func $_ZdlPv (param $0 i32) 6014 | (block $label$0 6015 | (br_if $label$0 6016 | (i32.eqz 6017 | (get_local $0) 6018 | ) 6019 | ) 6020 | (call $free 6021 | (get_local $0) 6022 | ) 6023 | ) 6024 | ) 6025 | (func $_ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv (param $0 i32) 6026 | (call $abort) 6027 | (unreachable) 6028 | ) 6029 | (func $_ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv (param $0 i32) 6030 | (call $abort) 6031 | (unreachable) 6032 | ) 6033 | (func $__cxa_atexit (param $0 i32) (param $1 i32) (param $2 i32) (result i32) 6034 | (local $3 i32) 6035 | (local $4 i32) 6036 | (call $__lock 6037 | (i32.const 8976) 6038 | ) 6039 | (block $label$0 6040 | (br_if $label$0 6041 | (tee_local $4 6042 | (i32.load offset=8984 6043 | (i32.const 0) 6044 | ) 6045 | ) 6046 | ) 6047 | (set_local $4 6048 | (i32.const 8988) 6049 | ) 6050 | (i32.store offset=8984 6051 | (i32.const 0) 6052 | (i32.const 8988) 6053 | ) 6054 | ) 6055 | (block $label$1 6056 | (block $label$2 6057 | (br_if $label$2 6058 | (i32.ne 6059 | (tee_local $3 6060 | (i32.load offset=9248 6061 | (i32.const 0) 6062 | ) 6063 | ) 6064 | (i32.const 32) 6065 | ) 6066 | ) 6067 | (br_if $label$1 6068 | (i32.eqz 6069 | (tee_local $4 6070 | (call $calloc 6071 | (i32.const 260) 6072 | (i32.const 1) 6073 | ) 6074 | ) 6075 | ) 6076 | ) 6077 | (set_local $3 6078 | (i32.const 0) 6079 | ) 6080 | (i32.store 6081 | (get_local $4) 6082 | (i32.load offset=8984 6083 | (i32.const 0) 6084 | ) 6085 | ) 6086 | (i32.store offset=8984 6087 | (i32.const 0) 6088 | (get_local $4) 6089 | ) 6090 | (i32.store offset=9248 6091 | (i32.const 0) 6092 | (i32.const 0) 6093 | ) 6094 | ) 6095 | (i32.store offset=9248 6096 | (i32.const 0) 6097 | (i32.add 6098 | (get_local $3) 6099 | (i32.const 1) 6100 | ) 6101 | ) 6102 | (i32.store 6103 | (i32.add 6104 | (tee_local $4 6105 | (i32.add 6106 | (get_local $4) 6107 | (i32.shl 6108 | (get_local $3) 6109 | (i32.const 2) 6110 | ) 6111 | ) 6112 | ) 6113 | (i32.const 132) 6114 | ) 6115 | (get_local $1) 6116 | ) 6117 | (i32.store 6118 | (i32.add 6119 | (get_local $4) 6120 | (i32.const 4) 6121 | ) 6122 | (get_local $0) 6123 | ) 6124 | (call $__unlock 6125 | (i32.const 8976) 6126 | ) 6127 | (return 6128 | (i32.const 0) 6129 | ) 6130 | ) 6131 | (call $__unlock 6132 | (i32.const 8976) 6133 | ) 6134 | (i32.const -1) 6135 | ) 6136 | (func $__lock (param $0 i32) 6137 | (i32.store 6138 | (get_local $0) 6139 | (i32.const 1) 6140 | ) 6141 | ) 6142 | (func $__unlock (param $0 i32) 6143 | (i32.store 6144 | (get_local $0) 6145 | (i32.const 0) 6146 | ) 6147 | ) 6148 | (func $memcmp (param $0 i32) (param $1 i32) (param $2 i32) (result i32) 6149 | (local $3 i32) 6150 | (local $4 i32) 6151 | (local $5 i32) 6152 | (set_local $5 6153 | (i32.const 0) 6154 | ) 6155 | (block $label$0 6156 | (br_if $label$0 6157 | (i32.eqz 6158 | (get_local $2) 6159 | ) 6160 | ) 6161 | (block $label$1 6162 | (loop $label$2 6163 | (br_if $label$1 6164 | (i32.ne 6165 | (tee_local $3 6166 | (i32.load8_u 6167 | (get_local $0) 6168 | ) 6169 | ) 6170 | (tee_local $4 6171 | (i32.load8_u 6172 | (get_local $1) 6173 | ) 6174 | ) 6175 | ) 6176 | ) 6177 | (set_local $1 6178 | (i32.add 6179 | (get_local $1) 6180 | (i32.const 1) 6181 | ) 6182 | ) 6183 | (set_local $0 6184 | (i32.add 6185 | (get_local $0) 6186 | (i32.const 1) 6187 | ) 6188 | ) 6189 | (br_if $label$2 6190 | (tee_local $2 6191 | (i32.add 6192 | (get_local $2) 6193 | (i32.const -1) 6194 | ) 6195 | ) 6196 | ) 6197 | (br $label$0) 6198 | ) 6199 | ) 6200 | (set_local $5 6201 | (i32.sub 6202 | (get_local $3) 6203 | (get_local $4) 6204 | ) 6205 | ) 6206 | ) 6207 | (get_local $5) 6208 | ) 6209 | (func $strlen (param $0 i32) (result i32) 6210 | (local $1 i32) 6211 | (local $2 i32) 6212 | (set_local $2 6213 | (get_local $0) 6214 | ) 6215 | (block $label$0 6216 | (block $label$1 6217 | (br_if $label$1 6218 | (i32.eqz 6219 | (i32.and 6220 | (get_local $0) 6221 | (i32.const 3) 6222 | ) 6223 | ) 6224 | ) 6225 | (set_local $2 6226 | (get_local $0) 6227 | ) 6228 | (loop $label$2 6229 | (br_if $label$0 6230 | (i32.eqz 6231 | (i32.load8_u 6232 | (get_local $2) 6233 | ) 6234 | ) 6235 | ) 6236 | (br_if $label$2 6237 | (i32.and 6238 | (tee_local $2 6239 | (i32.add 6240 | (get_local $2) 6241 | (i32.const 1) 6242 | ) 6243 | ) 6244 | (i32.const 3) 6245 | ) 6246 | ) 6247 | ) 6248 | ) 6249 | (set_local $2 6250 | (i32.add 6251 | (get_local $2) 6252 | (i32.const -4) 6253 | ) 6254 | ) 6255 | (loop $label$3 6256 | (br_if $label$3 6257 | (i32.eqz 6258 | (i32.and 6259 | (i32.and 6260 | (i32.xor 6261 | (tee_local $1 6262 | (i32.load 6263 | (tee_local $2 6264 | (i32.add 6265 | (get_local $2) 6266 | (i32.const 4) 6267 | ) 6268 | ) 6269 | ) 6270 | ) 6271 | (i32.const -1) 6272 | ) 6273 | (i32.add 6274 | (get_local $1) 6275 | (i32.const -16843009) 6276 | ) 6277 | ) 6278 | (i32.const -2139062144) 6279 | ) 6280 | ) 6281 | ) 6282 | ) 6283 | (br_if $label$0 6284 | (i32.eqz 6285 | (i32.and 6286 | (get_local $1) 6287 | (i32.const 255) 6288 | ) 6289 | ) 6290 | ) 6291 | (loop $label$4 6292 | (br_if $label$4 6293 | (i32.load8_u 6294 | (tee_local $2 6295 | (i32.add 6296 | (get_local $2) 6297 | (i32.const 1) 6298 | ) 6299 | ) 6300 | ) 6301 | ) 6302 | ) 6303 | ) 6304 | (i32.sub 6305 | (get_local $2) 6306 | (get_local $0) 6307 | ) 6308 | ) 6309 | (func $calloc (param $0 i32) (param $1 i32) (result i32) 6310 | (drop 6311 | (call $memset 6312 | (tee_local $0 6313 | (call $_ZN5eosio14memory_manager6mallocEm 6314 | (i32.const 476) 6315 | (tee_local $1 6316 | (i32.mul 6317 | (get_local $1) 6318 | (get_local $0) 6319 | ) 6320 | ) 6321 | ) 6322 | ) 6323 | (i32.const 0) 6324 | (get_local $1) 6325 | ) 6326 | ) 6327 | (get_local $0) 6328 | ) 6329 | (func $__wasm_nullptr (type $FUNCSIG$v) 6330 | (unreachable) 6331 | ) 6332 | ) 6333 | -------------------------------------------------------------------------------- /pradata.abi: -------------------------------------------------------------------------------- 1 | { 2 | "____comment": "This file was generated by eosio-abigen. DO NOT EDIT - 2018-11-22T04:27:23", 3 | "version": "eosio::abi/1.0", 4 | "types": [], 5 | "structs": [{ 6 | "name": "Rating", 7 | "base": "", 8 | "fields": [{ 9 | "name": "account", 10 | "type": "name" 11 | },{ 12 | "name": "account_type", 13 | "type": "uint8" 14 | },{ 15 | "name": "normal_account_level", 16 | "type": "uint8" 17 | },{ 18 | "name": "code_account_level", 19 | "type": "uint8" 20 | } 21 | ] 22 | },{ 23 | "name": "check", 24 | "base": "", 25 | "fields": [{ 26 | "name": "account", 27 | "type": "name" 28 | } 29 | ] 30 | },{ 31 | "name": "checkblack", 32 | "base": "", 33 | "fields": [{ 34 | "name": "account", 35 | "type": "name" 36 | },{ 37 | "name": "notifyaccnt", 38 | "type": "name" 39 | },{ 40 | "name": "notifyfunc", 41 | "type": "string" 42 | } 43 | ] 44 | },{ 45 | "name": "addrating", 46 | "base": "", 47 | "fields": [{ 48 | "name": "rating", 49 | "type": "Rating" 50 | } 51 | ] 52 | },{ 53 | "name": "delrating", 54 | "base": "", 55 | "fields": [{ 56 | "name": "rating", 57 | "type": "Rating" 58 | } 59 | ] 60 | },{ 61 | "name": "logreceipt", 62 | "base": "", 63 | "fields": [{ 64 | "name": "account", 65 | "type": "name" 66 | },{ 67 | "name": "account_type", 68 | "type": "uint8" 69 | },{ 70 | "name": "account_level", 71 | "type": "uint8" 72 | } 73 | ] 74 | } 75 | ], 76 | "actions": [{ 77 | "name": "check", 78 | "type": "check", 79 | "ricardian_contract": "" 80 | },{ 81 | "name": "checkblack", 82 | "type": "checkblack", 83 | "ricardian_contract": "" 84 | },{ 85 | "name": "addrating", 86 | "type": "addrating", 87 | "ricardian_contract": "" 88 | },{ 89 | "name": "delrating", 90 | "type": "delrating", 91 | "ricardian_contract": "" 92 | },{ 93 | "name": "logreceipt", 94 | "type": "logreceipt", 95 | "ricardian_contract": "" 96 | } 97 | ], 98 | "tables": [{ 99 | "name": "trating", 100 | "index_type": "i64", 101 | "key_names": [ 102 | "account" 103 | ], 104 | "key_types": [ 105 | "name" 106 | ], 107 | "type": "Rating" 108 | } 109 | ], 110 | "ricardian_clauses": [], 111 | "error_messages": [], 112 | "abi_extensions": [] 113 | } -------------------------------------------------------------------------------- /pradata.cpp: -------------------------------------------------------------------------------- 1 | #include "pradata.hpp" 2 | 3 | using eosio::action; 4 | using eosio::permission_level; 5 | using namespace eosio; 6 | 7 | 8 | #define RATING_CONTRACT N(rating.pra) 9 | 10 | class pradata : public contract 11 | { 12 | 13 | public: 14 | explicit pradata(account_name self) : contract(self){}; 15 | 16 | /** 17 | * @brief get account info 检查账号信息 18 | * 19 | * @param account account name to be checked 账号名称 20 | */ 21 | // @abi action 22 | void check(const account_name &account) 23 | { 24 | eosio_assert(is_account(account), "account is not valid"); 25 | 26 | //声明rating.pra的trating表 27 | rating_index list(RATING_CONTRACT, RATING_CONTRACT); 28 | 29 | //检查账号是否存在 30 | auto check = list.find(account); 31 | 32 | //trating表中存储了全量链上合约账号,并实时更新 33 | //如果找不到,则该账号是普通账号 34 | if (check != list.end()) 35 | { 36 | //获取账号类型:普通账号 或 合约账号 37 | auto account_type = check->account_type; 38 | //此处可应用场景:拒绝合约账号调用 39 | 40 | //获取普通账号的评分 41 | if (account_type == normal_account) 42 | { 43 | //此处可应用场景:拒绝黑名单账号、羊毛党账号、灰名单账号调用 44 | //此处可应用场景:用户免人机滑块验证 45 | action( 46 | permission_level{_self, N(active)}, 47 | _self, N(logreceipt), std::make_tuple(account, account_type, check->normal_account_level)) 48 | .send(); 49 | } 50 | //获取合约账号的评分 51 | else if (account_type == code_account) 52 | { 53 | //此处可应用场景:拒绝恶意合约账号调用 54 | action( 55 | permission_level{_self, N(active)}, 56 | _self, N(logreceipt), std::make_tuple(account, account_type, check->code_account_level)) 57 | .send(); 58 | } 59 | } 60 | else 61 | { 62 | //普通账号默认评分 63 | action( 64 | permission_level{_self, N(active)}, 65 | _self, N(logreceipt), std::make_tuple(account, normal_account, ACCOUNT_LEVEL_DEFAULT)) 66 | .send(); 67 | } 68 | } 69 | 70 | /** 71 | * @brief Call Back API: check account is black or not 回调接口:检查账号是否在黑名单 72 | * 73 | * @param account account name to be checked 账号名称 74 | * @param notifyaccnt call back, send check result to notify account 回调通知账号 75 | * @param notifyfunc call back, send check result to notify function 回调通知函数 76 | */ 77 | //@abi action 78 | void checkblack(const account_name &account, const account_name ¬ifyaccnt, std::string notifyfunc) 79 | { 80 | require_auth(notifyaccnt); 81 | 82 | //声明rating.pra的trating表 83 | rating_index ratinglist(RATING_CONTRACT, RATING_CONTRACT); 84 | 85 | //检查账号是否存在 86 | auto iter = ratinglist.find(account); 87 | 88 | //trating表中存储了全量链上合约账号,并实时更新 89 | //如果找不到,则该账号是普通账号 90 | if (iter != ratinglist.end()) 91 | { 92 | bool isblack = false; 93 | 94 | //根据账号类型判断是否为黑名单账号 95 | //check account type and account level 96 | if (iter->account_type == normal_account) 97 | { 98 | if (iter->normal_account_level == BP_BLACKLIST || iter->normal_account_level == PRABOX_BLACKLIST) 99 | { 100 | isblack = true; 101 | } 102 | } 103 | else 104 | { 105 | if (iter->code_account_level == BP_BLACKLIST || iter->code_account_level == MALICIOUS_CODE_ACCOUNT) 106 | { 107 | isblack = true; 108 | } 109 | } 110 | 111 | //found the account is black 112 | if (isblack) 113 | { 114 | //回调通知结果 115 | action(permission_level{_self, N(active)}, 116 | N(notifyaccnt), 117 | N(notifyfunc), 118 | std::make_tuple(account, std::string(RESULT_FOUND))) 119 | .send(); 120 | } 121 | } 122 | else 123 | { 124 | //回调通知结果 125 | action(permission_level{_self, N(active)}, 126 | N(notifyaccnt), 127 | N(notifyfunc), 128 | std::make_tuple(account, std::string(RESULT_NOTFOUND))) 129 | .send(); 130 | } 131 | } 132 | 133 | //@abi action 134 | void addrating(const Rating &rating) 135 | { 136 | require_auth(_self); 137 | 138 | eosio_assert(is_account(rating.account), "rating account is not valid"); 139 | eosio_assert(rating.account_type >= 0 && rating.account_type < account_type_count, "rating account type is not valid"); 140 | 141 | rating_index ratinglist(RATING_CONTRACT, RATING_CONTRACT); 142 | auto iter = ratinglist.find(rating.account); 143 | if (iter == ratinglist.end()) 144 | { 145 | ratinglist.emplace(_self, [&](auto &r) { 146 | r.account = rating.account; 147 | r.account_type = rating.account_type; 148 | r.normal_account_level = rating.normal_account_level; 149 | r.code_account_level = rating.code_account_level; 150 | }); 151 | } 152 | else 153 | { 154 | ratinglist.modify(iter, 0, [&](auto &r) { 155 | r.account_type = rating.account_type; 156 | r.normal_account_level = rating.normal_account_level; 157 | r.code_account_level = rating.code_account_level; 158 | }); 159 | } 160 | } 161 | 162 | //@abi action 163 | void delrating(const Rating &rating) 164 | { 165 | require_auth(_self); 166 | 167 | rating_index ratinglist(RATING_CONTRACT, RATING_CONTRACT); 168 | auto iter = ratinglist.find(rating.account); 169 | if (iter != ratinglist.end()) 170 | { 171 | ratinglist.erase(iter); 172 | } 173 | } 174 | 175 | // @abi action 176 | void logreceipt(const account_name &account, const uint8_t &account_type, const uint8_t &account_level) 177 | { 178 | require_auth(_self); 179 | } 180 | 181 | 182 | //@abi aciton 183 | void addrelate(const account_name &account, const account_name & teacher_account) 184 | { 185 | require_auth(account); 186 | eosio_assert(is_account(teacher_account), "teacher account is not valid"); 187 | 188 | relation_index relationlist(RATING_CONTRACT, RATING_CONTRACT); 189 | auto iter = relationlist.find(account); 190 | if (iter == relationlist.end()) 191 | { 192 | relationlist.emplace(_self, [&](auto &r) { 193 | r.account = account; 194 | r.teacher_account = teacher_account; 195 | }); 196 | } 197 | else 198 | { 199 | eosio_assert(0, "teacher relation already exist"); 200 | } 201 | } 202 | 203 | 204 | }; 205 | 206 | 207 | 208 | EOSIO_ABI(pradata, (checkblack)(addrating)(delrating)(check)(logreceipt)(addrelate)) 209 | 210 | -------------------------------------------------------------------------------- /pradata.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | 7 | 8 | struct AdRelation 9 | { 10 | account_name account; 11 | account_name teacher_account; 12 | uint64_t primary_key() const { return account; } 13 | EOSLIB_SERIALIZE(AdRelation, (account)(teacher_account)); 14 | }; 15 | typedef eosio::multi_index relation_index; 16 | 17 | 18 | // @abi table trating i64 19 | struct Rating 20 | { 21 | account_name account; //eos account name, 账号名称 22 | uint8_t account_type; //enum_account_type: 0, normal account; 1, code account; 账号类型:0, 普通账号; 1, 合约账号; 23 | uint8_t normal_account_level; //rating level for normal account, from 0 to 10 普通账号评分:从0到10,分数越低,账号属性越差,默认是5 24 | uint8_t code_account_level; //rating level for code account, from 0 to 10 合约账号评分:从0到10,分数越低,账号属性越差,默认是5 25 | 26 | uint64_t primary_key() const { return account; } 27 | EOSLIB_SERIALIZE(Rating, (account)(account_type)(normal_account_level)(code_account_level)); 28 | }; 29 | typedef eosio::multi_index rating_index; 30 | 31 | //account type 账号类型 32 | 33 | uint8_t normal_account = 0; // 0: normal account 普通账号 34 | uint8_t code_account = 1; // 1: code account 合约账号 35 | uint8_t account_type_count = 2; 36 | 37 | //level defined for both normal and code account 普通账号和合约账号共用评分 38 | uint8_t ACCOUNT_LEVEL_DEFAULT = 5; //账号默认评分,5分 39 | uint8_t BP_BLACKLIST = 0; //被ECAF或BP拉黑的账号,0分;数据源详见https://bloks.io/blacklist 40 | 41 | //level defined for normal account 普通账号评分 42 | uint8_t PRABOX_BLACKLIST = 2; //被PRA CandyBox拉黑的羊毛党账号,2分 43 | uint8_t PRABOX_GREYLIST = 3; //被PRA CandyBox加灰的疑似羊毛党账号,3分 44 | uint8_t PRABOX_AUTH_VERYFIED = 6; //在24小时内,通过PRA CandyBox人机滑块验证的账号,6分 45 | uint8_t PRABOX_KYC_VERYFIED = 6; //通过PRA KYC人脸比对验证的账号,6分 46 | 47 | //level defined for code account 合约账号评分 48 | uint8_t MALICIOUS_CODE_ACCOUNT = 0; //已知恶意合约账号,如实施过合约攻击行为,0分 49 | 50 | //call back results 回调结果 51 | std::string RESULT_FOUND = "FOUND"; //找到账号 52 | std::string RESULT_NOTFOUND = "NOTFOUND"; //未找到账号 53 | 54 | -------------------------------------------------------------------------------- /pradata.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProChain/ProRatingEOS/23487c4f88a70640c36bc2f86f9695dea4a8b24d/pradata.wasm --------------------------------------------------------------------------------