├── 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 | * 
73 | **捕域达人** **Top Bidder** [https://chain.pro/domain-auction/](https://chain.pro/domain-auction/)
74 |
75 | * 
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 | ProChain微信助手 WeChat Assistant WeChat No:ProChain3 |
88 |
89 |
90 |
91 |  |
92 |
93 |
94 |
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
--------------------------------------------------------------------------------