File size: 19,909 Bytes
160aacb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
{
    "abi": [
        {
            "inputs": [],
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "id",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "string",
                    "name": "phrase",
                    "type": "string"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "proposer",
                    "type": "address"
                }
            ],
            "name": "EntryProposed",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "id",
                    "type": "uint256"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "verifier",
                    "type": "address"
                }
            ],
            "name": "EntryVerified",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "researcher",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "ReputationMinted",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "name": "entries",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "id",
                    "type": "uint256"
                },
                {
                    "internalType": "string",
                    "name": "phrase",
                    "type": "string"
                },
                {
                    "internalType": "string",
                    "name": "dialect",
                    "type": "string"
                },
                {
                    "internalType": "string",
                    "name": "ipfsCid",
                    "type": "string"
                },
                {
                    "internalType": "address",
                    "name": "contributor",
                    "type": "address"
                },
                {
                    "internalType": "string",
                    "name": "licenseType",
                    "type": "string"
                },
                {
                    "internalType": "uint256",
                    "name": "verificationCount",
                    "type": "uint256"
                },
                {
                    "internalType": "bool",
                    "name": "isVerified",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "entryCounter",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_id",
                    "type": "uint256"
                }
            ],
            "name": "getLicenseInfo",
            "outputs": [
                {
                    "internalType": "string",
                    "name": "",
                    "type": "string"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "labAdmin",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "string",
                    "name": "_phrase",
                    "type": "string"
                },
                {
                    "internalType": "string",
                    "name": "_dialect",
                    "type": "string"
                },
                {
                    "internalType": "string",
                    "name": "_ipfsCid",
                    "type": "string"
                },
                {
                    "internalType": "string",
                    "name": "_license",
                    "type": "string"
                }
            ],
            "name": "proposeEntry",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_user",
                    "type": "address"
                },
                {
                    "internalType": "string",
                    "name": "_role",
                    "type": "string"
                }
            ],
            "name": "registerResearcher",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "researchers",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "isRegistered",
                    "type": "bool"
                },
                {
                    "internalType": "uint256",
                    "name": "reputationScore",
                    "type": "uint256"
                },
                {
                    "internalType": "string",
                    "name": "role",
                    "type": "string"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_id",
                    "type": "uint256"
                }
            ],
            "name": "verifyEntry",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "60806040523480156200001157600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060600160405280600115158152602001606481526020016040518060400160405280600581526020017f41646d696e0000000000000000000000000000000000000000000000000000008152508152506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020190805190602001906200012d92919062000137565b509050506200024c565b8280546200014590620001e7565b90600052602060002090601f016020900481019282620001695760008555620001b5565b82601f106200018457805160ff1916838001178555620001b5565b82800160010185558215620001b5579182015b82811115620001b457825182559160200191906001019062000197565b5b509050620001c49190620001c8565b5090565b5b80821115620001e3576000816000905550600101620001c9565b5090565b600060028204905060018216806200020057607f821691505b602082108114156200021757620002166200021d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6115be806200025c6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b30906d41161005b578063b30906d414610117578063d40f299a1461014e578063efebb0441461016a578063f3c2cf651461018657610088565b806301bc237d1461008d5780633f633e65146100bf57806362da8313146100db57806386c8ce7f146100f9575b600080fd5b6100a760048036038101906100a29190610e35565b6101b7565b6040516100b69392919061111f565b60405180910390f35b6100d960048036038101906100d49190610eb2565b610276565b005b6100e36104d0565b6040516100f0919061122f565b60405180910390f35b6101016104d6565b60405161010e9190611104565b60405180910390f35b610131600480360381019061012c9190610f75565b6104fc565b60405161014598979695949392919061124a565b60405180910390f35b61016860048036038101906101639190610e5e565b610791565b005b610184600480360381019061017f9190610f75565b6108cc565b005b6101a0600480360381019061019b9190610f75565b610b70565b6040516101ae92919061117f565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020180546101f390611441565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90611441565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905083565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16610304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fb906111ef565b60405180910390fd5b6002600081548092919061031790611473565b919050555060405180610100016040528060025481526020018581526020018481526020018381526020013373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200160008152602001600015158152506003600060025481526020019081526020016000206000820151816000015560208201518160010190805190602001906103ad929190610d00565b5060408201518160020190805190602001906103ca929190610d00565b5060608201518160030190805190602001906103e7929190610d00565b5060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600501908051906020019061044b929190610d00565b5060c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050503373ffffffffffffffffffffffffffffffffffffffff166002547f41bbb82aa0096a4ef6e73d180bcf005a06dae558a2bd374fefd8e9d3d116d693866040516104c2919061115d565b60405180910390a350505050565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360205280600052604060002060009150905080600001549080600101805461052590611441565b80601f016020809104026020016040519081016040528092919081815260200182805461055190611441565b801561059e5780601f106105735761010080835404028352916020019161059e565b820191906000526020600020905b81548152906001019060200180831161058157829003601f168201915b5050505050908060020180546105b390611441565b80601f01602080910402602001604051908101604052809291908181526020018280546105df90611441565b801561062c5780601f106106015761010080835404028352916020019161062c565b820191906000526020600020905b81548152906001019060200180831161060f57829003601f168201915b50505050509080600301805461064190611441565b80601f016020809104026020016040519081016040528092919081815260200182805461066d90611441565b80156106ba5780601f1061068f576101008083540402835291602001916106ba565b820191906000526020600020905b81548152906001019060200180831161069d57829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050180546106f590611441565b80601f016020809104026020016040519081016040528092919081815260200182805461072190611441565b801561076e5780601f106107435761010080835404028352916020019161076e565b820191906000526020600020905b81548152906001019060200180831161075157829003601f168201915b5050505050908060060154908060070160009054906101000a900460ff16905088565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610821576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610818906111cf565b60405180910390fd5b6040518060600160405280600115158152602001600a8152602001828152506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020190805190602001906108c4929190610d00565b509050505050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1661095a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610951906111ef565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f69061120f565b60405180910390fd5b6003600082815260200190815260200160002060070160009054906101000a900460ff1615610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a906111af565b60405180910390fd5b600360008281526020019081526020016000206006016000815480929190610a8a90611473565b91905055506002600360008381526020019081526020016000206006015410610b625760016003600083815260200190815260200160002060070160006101000a81548160ff021916908315150217905550610b1d6003600083815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166032610c56565b3373ffffffffffffffffffffffffffffffffffffffff16817f82a82ea54aa0cfb8695810af1805d7f37f71a2683a57dc52567342b0a001f85260405160405180910390a35b610b6d33600a610c56565b50565b60606000600360008481526020019081526020016000206005016003600085815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16818054610bcd90611441565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf990611441565b8015610c465780601f10610c1b57610100808354040283529160200191610c46565b820191906000526020600020905b815481529060010190602001808311610c2957829003601f168201915b5050505050915091509150915091565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254610ca79190611361565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f42bcf4689d0211adce4e556ee455319d34e671e8b8a762034e146461fb1be82d82604051610cf4919061122f565b60405180910390a25050565b828054610d0c90611441565b90600052602060002090601f016020900481019282610d2e5760008555610d75565b82601f10610d4757805160ff1916838001178555610d75565b82800160010185558215610d75579182015b82811115610d74578251825591602001919060010190610d59565b5b509050610d829190610d86565b5090565b5b80821115610d9f576000816000905550600101610d87565b5090565b6000610db6610db184611315565b6112e4565b905082815260208101848484011115610dce57600080fd5b610dd98482856113ff565b509392505050565b600081359050610df08161155a565b92915050565b600082601f830112610e0757600080fd5b8135610e17848260208601610da3565b91505092915050565b600081359050610e2f81611571565b92915050565b600060208284031215610e4757600080fd5b6000610e5584828501610de1565b91505092915050565b60008060408385031215610e7157600080fd5b6000610e7f85828601610de1565b925050602083013567ffffffffffffffff811115610e9c57600080fd5b610ea885828601610df6565b9150509250929050565b60008060008060808587031215610ec857600080fd5b600085013567ffffffffffffffff811115610ee257600080fd5b610eee87828801610df6565b945050602085013567ffffffffffffffff811115610f0b57600080fd5b610f1787828801610df6565b935050604085013567ffffffffffffffff811115610f3457600080fd5b610f4087828801610df6565b925050606085013567ffffffffffffffff811115610f5d57600080fd5b610f6987828801610df6565b91505092959194509250565b600060208284031215610f8757600080fd5b6000610f9584828501610e20565b91505092915050565b610fa7816113b7565b82525050565b610fb6816113c9565b82525050565b6000610fc782611345565b610fd18185611350565b9350610fe181856020860161140e565b610fea81611549565b840191505092915050565b6000611002601083611350565b91507f416c7265616479207665726966696564000000000000000000000000000000006000830152602082019050919050565b6000611042601a83611350565b91507f4f6e6c79204c61622041646d696e2063616e20646f20746869730000000000006000830152602082019050919050565b6000611082601d83611350565b91507f4d757374206265207265676973746572656420726573656172636865720000006000830152602082019050919050565b60006110c2601783611350565b91507f43616e6e6f7420766572696679206f776e20656e7472790000000000000000006000830152602082019050919050565b6110fe816113f5565b82525050565b60006020820190506111196000830184610f9e565b92915050565b60006060820190506111346000830186610fad565b61114160208301856110f5565b81810360408301526111538184610fbc565b9050949350505050565b600060208201905081810360008301526111778184610fbc565b905092915050565b600060408201905081810360008301526111998185610fbc565b90506111a86020830184610f9e565b9392505050565b600060208201905081810360008301526111c881610ff5565b9050919050565b600060208201905081810360008301526111e881611035565b9050919050565b6000602082019050818103600083015261120881611075565b9050919050565b60006020820190508181036000830152611228816110b5565b9050919050565b600060208201905061124460008301846110f5565b92915050565b600061010082019050611260600083018b6110f5565b8181036020830152611272818a610fbc565b905081810360408301526112868189610fbc565b9050818103606083015261129a8188610fbc565b90506112a96080830187610f9e565b81810360a08301526112bb8186610fbc565b90506112ca60c08301856110f5565b6112d760e0830184610fad565b9998505050505050505050565b6000604051905081810181811067ffffffffffffffff8211171561130b5761130a61151a565b5b8060405250919050565b600067ffffffffffffffff8211156113305761132f61151a565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600061136c826113f5565b9150611377836113f5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156113ac576113ab6114bc565b5b828201905092915050565b60006113c2826113d5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561142c578082015181840152602081019050611411565b8381111561143b576000848401525b50505050565b6000600282049050600182168061145957607f821691505b6020821081141561146d5761146c6114eb565b5b50919050565b600061147e826113f5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114b1576114b06114bc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b611563816113b7565b811461156e57600080fd5b50565b61157a816113f5565b811461158557600080fd5b5056fea2646970667358221220bc04262e0b3f59e1d74064235b000c35489c2b80ff2cc669aed5ac4572a7085b64736f6c63430008000033"
}