-
Notifications
You must be signed in to change notification settings - Fork 0
/
2-twitter.json
344 lines (342 loc) · 41.8 KB
/
2-twitter.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
{
"udl-SC_version" : "1.0",
"name" : "Twitter",
"creation_date":"2020-2-15",
"Business Perspective": {
"Legal":{ "name": "Ricardian contract" , "type":"Ricardian contract" ,"link":"https://www.barclays.co.uk/"},
"QOS":{ "service level": { "latency": "6ms", "gasConsomation": "1173748", "ContractGasPrice":"1173748"},
"Princing" :{" Gaslimit": "80000000", "tokenPrice": "234.56 USD"},
"security" : {"signed": "yes", "tested": "yes", "link":"https://mariachris.github.io/Pubs/FSE-2020-Harvey.pdf", "description":"A state-of-the-art greybox fuzzer for Ethereum smart contracts. It integrates various novel techniques for finding bugs faster and more reliably."}
},
"participants" : {
"provider":"0xfe1bD11cD131C02f31A8b213651A8358FA1ab7a8",
"FutureUserType":"both"
},
"sc characteristics ":{
"documentational characteristics":{ "used compiler":"v0.6.2+commit.bacdbe57",
"usedRessources":"ipfs://7e7b5a97eb73750499b4df6281cb690d53527af91066669fcb56c035578c6beb",
"abi" : [
{
"constant": false,
"inputs": [
{
"name": "_content",
"type": "string"
},
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
}
],
"name": "sendMessageFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_followed",
"type": "address"
}
],
"name": "follow",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "count",
"type": "uint256"
}
],
"name": "getLatestTweets",
"outputs": [
{
"components": [
{
"name": "id",
"type": "uint256"
},
{
"name": "author",
"type": "address"
},
{
"name": "content",
"type": "string"
},
{
"name": "createdAt",
"type": "uint256"
}
],
"name": "",
"type": "tuple[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_user",
"type": "address"
},
{
"name": "count",
"type": "uint256"
}
],
"name": "getTweetsOf",
"outputs": [
{
"components": [
{
"name": "id",
"type": "uint256"
},
{
"name": "author",
"type": "address"
},
{
"name": "content",
"type": "string"
},
{
"name": "createdAt",
"type": "uint256"
}
],
"name": "",
"type": "tuple[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_content",
"type": "string"
},
{
"name": "_to",
"type": "address"
}
],
"name": "sendMessage",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_from",
"type": "address"
},
{
"name": "_content",
"type": "string"
}
],
"name": "tweetFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_content",
"type": "string"
}
],
"name": "tweet",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "id",
"type": "uint256"
},
{
"indexed": true,
"name": "author",
"type": "address"
},
{
"indexed": false,
"name": "content",
"type": "string"
},
{
"indexed": false,
"name": "createdAt",
"type": "uint256"
}
],
"name": "TweetSent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "id",
"type": "uint256"
},
{
"indexed": false,
"name": "content",
"type": "string"
},
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "createdAt",
"type": "uint256"
}
],
"name": "MessageSent",
"type": "event"
}
],
"deployed byte code" :{
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50611450806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80635b4d42141161005b5780635b4d4214146100ea578063c48d6d5e1461011a578063c6bc463c14610136578063fb46d4c5146101525761007d565b8063179a21e8146100825780634dbf27cc1461009e5780634dc0a687146100ba575b600080fd5b61009c60048036036100979190810190610f94565b61016e565b005b6100b860048036036100b39190810190610e3a565b6101c3565b005b6100d460048036036100cf9190810190611000565b610269565b6040516100e1919061125a565b60405180910390f35b61010460048036036100ff9190810190610ebb565b610453565b604051610111919061125a565b60405180910390f35b610134600480360361012f9190810190610f3c565b61069e565b005b610150600480360361014b9190810190610e63565b6106f2565b005b61016c60048036036101679190810190610ef7565b610745565b005b6101bd84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508383610797565b50505050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b606060008211801561027d57506005548211155b6102bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b39061127c565b60405180910390fd5b6060826040519080825280602002602001820160405280156102f857816020015b6102e5610ce3565b8152602001906001900390816102dd5790505b5090506000836005540390505b60055481101561044957600080600083815260200190815260200160002090506040518060800160405280826000015481526020018260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104125780601f106103e757610100808354040283529160200191610412565b820191906000526020600020905b8154815290600101906020018083116103f557829003601f168201915b50505050508152602001826003015481525083838151811061043057fe5b6020026020010181905250508080600101915050610305565b5080915050919050565b60606000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000831180156104ac575080805490508311155b6104eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e29061127c565b60405180910390fd5b60608360405190808252806020026020018201604052801561052757816020015b610514610ce3565b81526020019060019003908161050c5790505b50905060008483805490500390505b828054905081101561069257600080600085848154811061055357fe5b9060005260206000200154815260200190815260200160002090506040518060800160405280826000015481526020018260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561065b5780601f106106305761010080835404028352916020019161065b565b820191906000526020600020905b81548152906001019060200180831161063e57829003601f168201915b50505050508152602001826003015481525083838151811061067957fe5b6020026020010181905250508080600101915050610536565b50809250505092915050565b6106ed83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050503383610797565b505050565b6107408383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610a74565b505050565b6107933383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610a74565b5050565b8160011515600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085f9061129c565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16019050600260008281526020019081526020016000206040518060a0016040528060065481526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020014281525090806001815401808255809150509060018203906000526020600020906005020160009091929091909150600082015181600001556020820151816001019080519060200190610954929190610d21565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550608082015181600401555050508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f053227a5bdcc96607ea58ea40dd04c9394ddebceb1cd539ad1289d8b074bc4eb6006548842604051610a53939291906112bc565b60405180910390a36006600081548092919060010191905055505050505050565b8160011515600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c9061129c565b60405180910390fd5b604051806080016040528060055481526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020014281525060008060055481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190610bff929190610d21565b5060608201518160030155905050600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060055490806001815401808255809150509060018203906000526020600020016000909192909190915055508273ffffffffffffffffffffffffffffffffffffffff167f8d6b17b300471dd2e4fef05e2e70f50c236372b9a4aaf37cdb52644d99bc21a76005548442604051610cc4939291906112bc565b60405180910390a2600560008154809291906001019190505550505050565b604051806080016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d6257805160ff1916838001178555610d90565b82800160010185558215610d90579182015b82811115610d8f578251825591602001919060010190610d74565b5b509050610d9d9190610da1565b5090565b610dc391905b80821115610dbf576000816000905550600101610da7565b5090565b90565b600081359050610dd5816113e8565b92915050565b60008083601f840112610ded57600080fd5b8235905067ffffffffffffffff811115610e0657600080fd5b602083019150836001820283011115610e1e57600080fd5b9250929050565b600081359050610e34816113ff565b92915050565b600060208284031215610e4c57600080fd5b6000610e5a84828501610dc6565b91505092915050565b600080600060408486031215610e7857600080fd5b6000610e8686828701610dc6565b935050602084013567ffffffffffffffff811115610ea357600080fd5b610eaf86828701610ddb565b92509250509250925092565b60008060408385031215610ece57600080fd5b6000610edc85828601610dc6565b9250506020610eed85828601610e25565b9150509250929050565b60008060208385031215610f0a57600080fd5b600083013567ffffffffffffffff811115610f2457600080fd5b610f3085828601610ddb565b92509250509250929050565b600080600060408486031215610f5157600080fd5b600084013567ffffffffffffffff811115610f6b57600080fd5b610f7786828701610ddb565b93509350506020610f8a86828701610dc6565b9150509250925092565b60008060008060608587031215610faa57600080fd5b600085013567ffffffffffffffff811115610fc457600080fd5b610fd087828801610ddb565b94509450506020610fe387828801610dc6565b9250506040610ff487828801610dc6565b91505092959194509250565b60006020828403121561101257600080fd5b600061102084828501610e25565b91505092915050565b600061103583836111d9565b905092915050565b61104681611368565b82525050565b600061105782611307565b6110618185611335565b935083602082028501611073856112fa565b8060005b858110156110af57848403895281516110908582611029565b945061109b83611328565b925060208a01995050600181019050611077565b50829750879550505050505092915050565b60006110cc8261131d565b6110d68185611357565b93506110e68185602086016113a4565b6110ef816113d7565b840191505092915050565b600061110582611312565b61110f8185611346565b935061111f8185602086016113a4565b611128816113d7565b840191505092915050565b6000611140602483611357565b91507f546f6f20666577206f7220746f6f206d616e792074776565747320746f20726560008301527f7475726e000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006111a6601783611357565b91507f4f70657261746f72206e6f7420617574686f72697a65640000000000000000006000830152602082019050919050565b60006080830160008301516111f1600086018261123c565b506020830151611204602086018261103d565b506040830151848203604086015261121c82826110fa565b9150506060830151611231606086018261123c565b508091505092915050565b6112458161139a565b82525050565b6112548161139a565b82525050565b60006020820190508181036000830152611274818461104c565b905092915050565b6000602082019050818103600083015261129581611133565b9050919050565b600060208201905081810360008301526112b581611199565b9050919050565b60006060820190506112d1600083018661124b565b81810360208301526112e381856110c1565b90506112f2604083018461124b565b949350505050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006113738261137a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156113c25780820151818401526020810190506113a7565b838111156113d1576000848401525b50505050565b6000601f19601f8301169050919050565b6113f181611368565b81146113fc57600080fd5b50565b6114088161139a565b811461141357600080fd5b5056fea265627a7a72305820a3752366261d287ce6a6e3e1daad9f017ebcb41bbc855ad9e4c78ef0632f73a96c6578706572696d656e74616cf50037",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1450 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5B4D4214 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x5B4D4214 EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0xC48D6D5E EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0xC6BC463C EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0xFB46D4C5 EQ PUSH2 0x152 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x179A21E8 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x4DBF27CC EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0x4DC0A687 EQ PUSH2 0xBA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x97 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF94 JUMP JUMPDEST PUSH2 0x16E JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0xB3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE3A JUMP JUMPDEST PUSH2 0x1C3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0xCF SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x269 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0x125A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0xFF SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xEBB JUMP JUMPDEST PUSH2 0x453 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0x125A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x12F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xF3C JUMP JUMPDEST PUSH2 0x69E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x150 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x14B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xE63 JUMP JUMPDEST PUSH2 0x6F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x167 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0x745 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1BD DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 DUP4 PUSH2 0x797 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SWAP1 PUSH1 0x1 DUP3 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 GT DUP1 ISZERO PUSH2 0x27D JUMPI POP PUSH1 0x5 SLOAD DUP3 GT ISZERO JUMPDEST PUSH2 0x2BC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B3 SWAP1 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2F8 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x2E5 PUSH2 0xCE3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x2DD JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x5 SLOAD SUB SWAP1 POP JUMPDEST PUSH1 0x5 SLOAD DUP2 LT ISZERO PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x412 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x412 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3F5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x3 ADD SLOAD DUP2 MSTORE POP DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x430 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x305 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x4AC JUMPI POP DUP1 DUP1 SLOAD SWAP1 POP DUP4 GT ISZERO JUMPDEST PUSH2 0x4EB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E2 SWAP1 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x527 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x514 PUSH2 0xCE3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x50C JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP5 DUP4 DUP1 SLOAD SWAP1 POP SUB SWAP1 POP JUMPDEST DUP3 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x553 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x65B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x630 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x65B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x63E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x3 ADD SLOAD DUP2 MSTORE POP DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x679 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x536 JUMP JUMPDEST POP DUP1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x6ED DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP CALLER DUP4 PUSH2 0x797 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x740 DUP4 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0xA74 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x793 CALLER DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0xA74 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 ISZERO ISZERO PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x868 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x85F SWAP1 PUSH2 0x129C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ADD SWAP1 POP PUSH1 0x2 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SWAP1 PUSH1 0x1 DUP3 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x954 SWAP3 SWAP2 SWAP1 PUSH2 0xD21 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x53227A5BDCC96607EA58EA40DD04C9394DDEBCEB1CD539AD1289D8B074BC4EB PUSH1 0x6 SLOAD DUP9 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0xA53 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x6 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 ISZERO ISZERO PUSH1 0x4 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0xB45 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB3C SWAP1 PUSH2 0x129C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE POP PUSH1 0x0 DUP1 PUSH1 0x5 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBFF SWAP3 SWAP2 SWAP1 PUSH2 0xD21 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE SWAP1 POP POP PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 SLOAD SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SWAP1 PUSH1 0x1 DUP3 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8D6B17B300471DD2E4FEF05E2E70F50C236372B9A4AAF37CDB52644D99BC21A7 PUSH1 0x5 SLOAD DUP5 TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0xCC4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x5 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xD62 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xD90 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xD90 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xD8F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xD74 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xD9D SWAP2 SWAP1 PUSH2 0xDA1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xDC3 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xDBF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xDA7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDD5 DUP2 PUSH2 0x13E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE34 DUP2 PUSH2 0x13FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE5A DUP5 DUP3 DUP6 ADD PUSH2 0xDC6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xE78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xE86 DUP7 DUP3 DUP8 ADD PUSH2 0xDC6 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEAF DUP7 DUP3 DUP8 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xECE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEDC DUP6 DUP3 DUP7 ADD PUSH2 0xDC6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xEED DUP6 DUP3 DUP7 ADD PUSH2 0xE25 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF30 DUP6 DUP3 DUP7 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xF51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF77 DUP7 DUP3 DUP8 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x20 PUSH2 0xF8A DUP7 DUP3 DUP8 ADD PUSH2 0xDC6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xFAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFD0 DUP8 DUP3 DUP9 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 PUSH2 0xFE3 DUP8 DUP3 DUP9 ADD PUSH2 0xDC6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xFF4 DUP8 DUP3 DUP9 ADD PUSH2 0xDC6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1012 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1020 DUP5 DUP3 DUP6 ADD PUSH2 0xE25 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1035 DUP4 DUP4 PUSH2 0x11D9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1046 DUP2 PUSH2 0x1368 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1057 DUP3 PUSH2 0x1307 JUMP JUMPDEST PUSH2 0x1061 DUP2 DUP6 PUSH2 0x1335 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x1073 DUP6 PUSH2 0x12FA JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x10AF JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x1090 DUP6 DUP3 PUSH2 0x1029 JUMP JUMPDEST SWAP5 POP PUSH2 0x109B DUP4 PUSH2 0x1328 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1077 JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10CC DUP3 PUSH2 0x131D JUMP JUMPDEST PUSH2 0x10D6 DUP2 DUP6 PUSH2 0x1357 JUMP JUMPDEST SWAP4 POP PUSH2 0x10E6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x13A4 JUMP JUMPDEST PUSH2 0x10EF DUP2 PUSH2 0x13D7 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1105 DUP3 PUSH2 0x1312 JUMP JUMPDEST PUSH2 0x110F DUP2 DUP6 PUSH2 0x1346 JUMP JUMPDEST SWAP4 POP PUSH2 0x111F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x13A4 JUMP JUMPDEST PUSH2 0x1128 DUP2 PUSH2 0x13D7 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1140 PUSH1 0x24 DUP4 PUSH2 0x1357 JUMP JUMPDEST SWAP2 POP PUSH32 0x546F6F20666577206F7220746F6F206D616E792074776565747320746F207265 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x7475726E00000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11A6 PUSH1 0x17 DUP4 PUSH2 0x1357 JUMP JUMPDEST SWAP2 POP PUSH32 0x4F70657261746F72206E6F7420617574686F72697A6564000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x11F1 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x123C JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1204 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x103D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x121C DUP3 DUP3 PUSH2 0x10FA JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x1231 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x123C JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1245 DUP2 PUSH2 0x139A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1254 DUP2 PUSH2 0x139A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1274 DUP2 DUP5 PUSH2 0x104C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1295 DUP2 PUSH2 0x1133 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x12B5 DUP2 PUSH2 0x1199 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x12D1 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x124B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x12E3 DUP2 DUP6 PUSH2 0x10C1 JUMP JUMPDEST SWAP1 POP PUSH2 0x12F2 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x124B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1373 DUP3 PUSH2 0x137A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x13C2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x13A7 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x13D1 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13F1 DUP2 PUSH2 0x1368 JUMP JUMPDEST DUP2 EQ PUSH2 0x13FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x1408 DUP2 PUSH2 0x139A JUMP JUMPDEST DUP2 EQ PUSH2 0x1413 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 LOG3 PUSH22 0x2366261D287CE6A6E3E1DAAD9F017EBCB41BBC855AD9 0xe4 0xc7 DUP15 CREATE PUSH4 0x2F73A96C PUSH6 0x78706572696D PUSH6 0x6E74616CF500 CALLDATACOPY ",
"sourceMap": "181:3858:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;181:3858:0;;;;;;;"
},
"description" : "Contract allow sending messages on Twitter",
"hash":"0x009741469ee75f08f3a9617ec257ed2817d29ed182f34a1d176b2d8c26eca26f",
"metadata":"ipfs://QmUEXQWHsEo1KHuJqwwT3P8ZszQhhd7mdsLps6kyCrg5pd"},
"common characteristics":{"type":"Application logic contracts (ALCs)",
"category":"static", "updateDate":"","state":"mutable","version":"solidity ^0.5.8", "initialBalance ": "0"
,"creationDate":"", "lifeCycle":"ready"}}},
"technical Perspective":{ "blockhain characteristics ":{ "name":"Ethereum", "type":"public", "consensus":"proof of stacke","currency":"ETH"},
"Protocol information":{ "adress":"0x5B38Da6a701c568545dCfcB03FcB875f56beddC4"}
},
"operationalPerspective":{
"Functions" : [
{"name": "tweet",
"Type": "",
"scope" : "external",
"description": "allow creating a tweet and return the tweet and its sender ",
"inputs":[{"name": "_content", "Type": "string" }],
"outputs": []
},
{"name": "tweetFrom",
"Type": "",
"scope" : "external",
"description": "knowing the origin of a tweet, from any adress it came",
"inputs":[{"name": "from", "Type": "address" },{"name": "_content", "Type": "string" }],
"outputs": []
},
{"name": "sendMessage",
"Type": "",
"scope" : "external",
"description": "send message to a node",
"inputs":[{"name": "to", "Type": "address" },{"name": "_content", "Type": "string" }],
"outputs": []
},
{"name": "sendMessageFrom",
"Type": "",
"scope" : "external",
"description": "send message from a node to another",
"inputs":[{"name": "from", "Type": "address" },{"name": "to", "Type": "address" },{"name": "_content", "Type": "string" }],
"outputs": []
},
{"name": "follow",
"Type": "",
"scope" : "external",
"description": "allows to pushing an adress(fllower) to the fllowing[] array",
"inputs":[{"name": "_followed", "Type": "address" }],
"outputs": []
},
{"name": "getLatestTweets",
"Type": "view",
"scope" : "external",
"description": "returning an array of latest tweets for an account",
"inputs":[{"name": "count", "Type": "uint" }],
"outputs": [{"name": "" , "Type": "Tweet[]" }]
},
{"name": "getTweetsOf",
"Type": "external",
"scope" : "view",
"description": "get tweets[] array of an user using it's address ",
"inputs":[{"name": "_user", "Type": "address" },{"name": "count", "Type": "uint" }],
"outputs": [{"name": "" , "Type": "Tweet[]" }]
},
{"name": " _tweet",
"Type": "external",
"scope" : "",
"description": "allows sending tweet only by msg.sender",
"inputs":[{"name": "from", "Type": "address" },{"name": "_content", "Type": "string" }],
"outputs": []
},
{"name": "_sendMessage",
"Type": "external",
"scope" : "",
"description": "allows sending msg only by msg.sender",
"inputs":[{"name": "from", "Type": "address" },{"name": "to", "Type": "address" },{"name": "_content", "Type": "string" }],
"outputs": [{"name": "" , "Type": "" }]
}],
"Events": [
{"name": "TweetSent",
"Type": "custom",
"description": "emitted when a tweet is sent successfully ",
"outputs": [{"name": "id", "Type": "uint","is_indexed" : false },
{"name": "author", "Type": "address","is_indexed" : true },
{"name": "content", "Type": "string","is_indexed" :false },
{"name": "createdAt", "Type": "uint","is_indexed" :false }]
},
{"name": "MessageSent",
"Type": "custom",
"description": "emitted when a message is sent successfully",
"outputs": [{"name": "id", "Type": "uint","is_indexed" : false },
{"name": "content", "Type": "string","is_indexed" :false },
{"name": "from", "Type": "address","is_indexed" :true },
{"name": "to", "Type": "address","is_indexed" :true },
{"name": "createdAt", "Type": "uint","is_indexed" :false }]
}]
}
}