{ "abi": [ { "inputs": [ { "internalType": "uint256", "name": "threshold", "type": "uint256" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [], "name": "dkgThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDkgKeys", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes[]", "name": "", "type": "bytes[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getJustifications", "outputs": [ { "internalType": "bytes[]", "name": "", "type": "bytes[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getParticipants", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getResponses", "outputs": [ { "internalType": "bytes[]", "name": "", "type": "bytes[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getShares", "outputs": [ { "internalType": "bytes[]", "name": "", "type": "bytes[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inPhase", "outputs": [ { "internalType": "int8", "name": "", "type": "int8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "nodes", "type": "address[]" }, { "internalType": "bytes[]", "name": "publicKeys", "type": "bytes[]" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "justifications", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "keys", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "participants", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "phaseDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "value", "type": "bytes" } ], "name": "publish", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "responses", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "selfDestruct", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "shares", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "startBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": { "object": "0x60c0604052600060065534801561001557600080fd5b506040516116663803806116668339810160408190526100349161009b565b61003d3361004b565b60a0919091526080526100bf565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156100ae57600080fd5b505080516020909101519092909150565b60805160a05161154a61011c6000396000818161027f0152610768015260008181610243015281816103aa015281816103dc015281816104150152818161044e0152818161089b0152818161093e01526109e5015261154a6000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063cc5ef00911610071578063cc5ef009146102a1578063cd5e3837146102a9578063ce7c2ac2146102bc578063d73fe0aa146102cf578063f2fde38b146102d757600080fd5b80638da5cb5b146102255780639cb8a26a14610236578063ac5553ce1461023e578063b0ef817914610265578063c27040241461027a57600080fd5b80634e3874a0116100f45780634e3874a0146101cc5780635aa68ac0146101e2578063670d14b2146101f7578063715018a61461020a5780637fd283461461021257600080fd5b80630ea6564814610131578063221f95111461015a57806335c1d3491461017557806337f8d5ff146101a057806348cd4cb1146101b5575b600080fd5b61014461013f36600461105a565b6102ea565b60405161015191906110d0565b60405180910390f35b610162610384565b60405160009190910b8152602001610151565b6101886101833660046110e3565b61048b565b6040516001600160a01b039091168152602001610151565b6101b36101ae366004611148565b6104b5565b005b6101be60065481565b604051908152602001610151565b6101d461060a565b60405161015192919061120c565b6101ea61078f565b604051610151919061122d565b61014461020536600461105a565b6107f1565b6101b361080a565b6101b361022036600461127a565b61081e565b6000546001600160a01b0316610188565b6101b3610ae1565b6101be7f000000000000000000000000000000000000000000000000000000000000000081565b61026d610af7565b60405161015191906112ec565b6101be7f000000000000000000000000000000000000000000000000000000000000000081565b61026d610c55565b6101446102b736600461105a565b610dad565b6101446102ca36600461105a565b610dc6565b61026d610ddf565b6101b36102e536600461105a565b610f37565b60036020526000908152604090208054610303906112ff565b80601f016020809104026020016040519081016040528092919081815260200182805461032f906112ff565b801561037c5780601f106103515761010080835404028352916020019161037c565b820191906000526020600020905b81548152906001019060200180831161035f57829003601f168201915b505050505081565b60006006546000036103965750600090565b6000600654436103a69190611349565b90507f000000000000000000000000000000000000000000000000000000000000000081116103d757600191505090565b6104027f00000000000000000000000000000000000000000000000000000000000000006002611362565b811161041057600291505090565b61043b7f00000000000000000000000000000000000000000000000000000000000000006003611362565b811161044957600391505090565b6104747f00000000000000000000000000000000000000000000000000000000000000006004611362565b811161048257600491505090565b60001991505090565b6005818154811061049b57600080fd5b6000918252602090912001546001600160a01b0316905081565b6006541561050a5760405162461bcd60e51b815260206004820152601760248201527f444b472068617320616c7265616479207374617274656400000000000000000060448201526064015b60405180910390fd5b610512610fb0565b60005b838110156105ff57600585858381811061053157610531611379565b9050602002016020810190610546919061105a565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b0390921691909117905582828281811061058a5761058a611379565b905060200281019061059c919061138f565b600160008888868181106105b2576105b2611379565b90506020020160208101906105c7919061105a565b6001600160a01b031681526020810191909152604001600020916105ec91908361143a565b50806105f7816114fb565b915050610515565b505043600655505050565b60006060600060058054905067ffffffffffffffff81111561062e5761062e6113d6565b60405190808252806020026020018201604052801561066157816020015b606081526020019060019003908161064c5790505b50905060005b60055481101561076557600160006005838154811061068857610688611379565b60009182526020808320909101546001600160a01b03168352820192909252604001902080546106b7906112ff565b80601f01602080910402602001604051908101604052809291908181526020018280546106e3906112ff565b80156107305780601f1061070557610100808354040283529160200191610730565b820191906000526020600020905b81548152906001019060200180831161071357829003601f168201915b505050505082828151811061074757610747611379565b6020026020010181905250808061075d906114fb565b915050610667565b507f0000000000000000000000000000000000000000000000000000000000000000939092509050565b606060058054806020026020016040519081016040528092919081815260200182805480156107e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107c9575b5050505050905090565b60016020526000908152604090208054610303906112ff565b610812610fb0565b61081c600061100a565b565b3360009081526001602052604081208054610838906112ff565b9050116108875760405162461bcd60e51b815260206004820152601b60248201527f796f7520617265206e6f7420612067726f7570206d656d6265722100000000006044820152606401610501565b6000600654436108979190611349565b90507f000000000000000000000000000000000000000000000000000000000000000081116109395733600090815260026020526040902080546108da906112ff565b1590506109195760405162461bcd60e51b815260206004820152600d60248201526c1cda185c9948195e1a5cdd1959609a1b6044820152606401610501565b33600090815260026020526040902061093383858361143a565b50505050565b6109647f00000000000000000000000000000000000000000000000000000000000000006002611362565b81116109e0573360009081526003602052604090208054610984906112ff565b1590506109c65760405162461bcd60e51b815260206004820152601060248201526f1c995cdc1bdb9cd948195e1a5cdd195960821b6044820152606401610501565b33600090815260036020526040902061093383858361143a565b610a0b7f00000000000000000000000000000000000000000000000000000000000000006003611362565b8111610a94573360009081526004602052604090208054610a2b906112ff565b159050610a7a5760405162461bcd60e51b815260206004820152601560248201527f6a757374696669636174696f6e206578697374656400000000000000000000006044820152606401610501565b33600090815260046020526040902061093383858361143a565b60405162461bcd60e51b815260206004820152601560248201527f444b47205075626c6973682068617320656e64656400000000000000000000006044820152606401610501565b505050565b610ae9610fb0565b6000546001600160a01b0316ff5b60055460609060009067ffffffffffffffff811115610b1857610b186113d6565b604051908082528060200260200182016040528015610b4b57816020015b6060815260200190600190039081610b365790505b50905060005b600554811015610c4f576004600060058381548110610b7257610b72611379565b60009182526020808320909101546001600160a01b0316835282019290925260400190208054610ba1906112ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610bcd906112ff565b8015610c1a5780601f10610bef57610100808354040283529160200191610c1a565b820191906000526020600020905b815481529060010190602001808311610bfd57829003601f168201915b5050505050828281518110610c3157610c31611379565b60200260200101819052508080610c47906114fb565b915050610b51565b50919050565b60055460609060009067ffffffffffffffff811115610c7657610c766113d6565b604051908082528060200260200182016040528015610ca957816020015b6060815260200190600190039081610c945790505b50905060005b600554811015610c4f576003600060058381548110610cd057610cd0611379565b60009182526020808320909101546001600160a01b0316835282019290925260400190208054610cff906112ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2b906112ff565b8015610d785780601f10610d4d57610100808354040283529160200191610d78565b820191906000526020600020905b815481529060010190602001808311610d5b57829003601f168201915b5050505050828281518110610d8f57610d8f611379565b60200260200101819052508080610da5906114fb565b915050610caf565b60046020526000908152604090208054610303906112ff565b60026020526000908152604090208054610303906112ff565b60055460609060009067ffffffffffffffff811115610e0057610e006113d6565b604051908082528060200260200182016040528015610e3357816020015b6060815260200190600190039081610e1e5790505b50905060005b600554811015610c4f576002600060058381548110610e5a57610e5a611379565b60009182526020808320909101546001600160a01b0316835282019290925260400190208054610e89906112ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb5906112ff565b8015610f025780601f10610ed757610100808354040283529160200191610f02565b820191906000526020600020905b815481529060010190602001808311610ee557829003601f168201915b5050505050828281518110610f1957610f19611379565b60200260200101819052508080610f2f906114fb565b915050610e39565b610f3f610fb0565b6001600160a01b038116610fa45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610501565b610fad8161100a565b50565b6000546001600160a01b0316331461081c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610501565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561106c57600080fd5b81356001600160a01b038116811461108357600080fd5b9392505050565b6000815180845260005b818110156110b057602081850181015186830182015201611094565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611083602083018461108a565b6000602082840312156110f557600080fd5b5035919050565b60008083601f84011261110e57600080fd5b50813567ffffffffffffffff81111561112657600080fd5b6020830191508360208260051b850101111561114157600080fd5b9250929050565b6000806000806040858703121561115e57600080fd5b843567ffffffffffffffff8082111561117657600080fd5b611182888389016110fc565b9096509450602087013591508082111561119b57600080fd5b506111a8878288016110fc565b95989497509550505050565b600082825180855260208086019550808260051b84010181860160005b848110156111ff57601f198684030189526111ed83835161108a565b988401989250908301906001016111d1565b5090979650505050505050565b82815260406020820152600061122560408301846111b4565b949350505050565b6020808252825182820181905260009190848201906040850190845b8181101561126e5783516001600160a01b031683529284019291840191600101611249565b50909695505050505050565b6000806020838503121561128d57600080fd5b823567ffffffffffffffff808211156112a557600080fd5b818501915085601f8301126112b957600080fd5b8135818111156112c857600080fd5b8660208285010111156112da57600080fd5b60209290920196919550909350505050565b60208152600061108360208301846111b4565b600181811c9082168061131357607f821691505b602082108103610c4f57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561135c5761135c611333565b92915050565b808202811582820484141761135c5761135c611333565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126113a657600080fd5b83018035915067ffffffffffffffff8211156113c157600080fd5b60200191503681900382131561114157600080fd5b634e487b7160e01b600052604160045260246000fd5b601f821115610adc57600081815260208120601f850160051c810160208610156114135750805b601f850160051c820191505b818110156114325782815560010161141f565b505050505050565b67ffffffffffffffff831115611452576114526113d6565b6114668361146083546112ff565b836113ec565b6000601f84116001811461149a57600085156114825750838201355b600019600387901b1c1916600186901b1783556114f4565b600083815260209020601f19861690835b828110156114cb57868501358255602094850194600190920191016114ab565b50868210156114e85760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60006001820161150d5761150d611333565b506001019056fea2646970667358221220c2a9f120eb2103820ad3e4aa8186766351660b5d60085b20e490025c0ac4bb2f64736f6c63430008120033", "sourceMap": "136:5290:76:-:0;;;999:1;971:29;;1349:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:37;719:10:51;936:18:37;:32::i;:::-;1408:24:76;;;;;1442;;136:5290;;2433:187:37;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:37;;;-1:-1:-1;;;;;;2541:17:37;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:245:127:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;-1:-1:-1;;193:16:127;;249:2;234:18;;;228:25;193:16;;228:25;;-1:-1:-1;14:245:127:o;:::-;136:5290:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063cc5ef00911610071578063cc5ef009146102a1578063cd5e3837146102a9578063ce7c2ac2146102bc578063d73fe0aa146102cf578063f2fde38b146102d757600080fd5b80638da5cb5b146102255780639cb8a26a14610236578063ac5553ce1461023e578063b0ef817914610265578063c27040241461027a57600080fd5b80634e3874a0116100f45780634e3874a0146101cc5780635aa68ac0146101e2578063670d14b2146101f7578063715018a61461020a5780637fd283461461021257600080fd5b80630ea6564814610131578063221f95111461015a57806335c1d3491461017557806337f8d5ff146101a057806348cd4cb1146101b5575b600080fd5b61014461013f36600461105a565b6102ea565b60405161015191906110d0565b60405180910390f35b610162610384565b60405160009190910b8152602001610151565b6101886101833660046110e3565b61048b565b6040516001600160a01b039091168152602001610151565b6101b36101ae366004611148565b6104b5565b005b6101be60065481565b604051908152602001610151565b6101d461060a565b60405161015192919061120c565b6101ea61078f565b604051610151919061122d565b61014461020536600461105a565b6107f1565b6101b361080a565b6101b361022036600461127a565b61081e565b6000546001600160a01b0316610188565b6101b3610ae1565b6101be7f000000000000000000000000000000000000000000000000000000000000000081565b61026d610af7565b60405161015191906112ec565b6101be7f000000000000000000000000000000000000000000000000000000000000000081565b61026d610c55565b6101446102b736600461105a565b610dad565b6101446102ca36600461105a565b610dc6565b61026d610ddf565b6101b36102e536600461105a565b610f37565b60036020526000908152604090208054610303906112ff565b80601f016020809104026020016040519081016040528092919081815260200182805461032f906112ff565b801561037c5780601f106103515761010080835404028352916020019161037c565b820191906000526020600020905b81548152906001019060200180831161035f57829003601f168201915b505050505081565b60006006546000036103965750600090565b6000600654436103a69190611349565b90507f000000000000000000000000000000000000000000000000000000000000000081116103d757600191505090565b6104027f00000000000000000000000000000000000000000000000000000000000000006002611362565b811161041057600291505090565b61043b7f00000000000000000000000000000000000000000000000000000000000000006003611362565b811161044957600391505090565b6104747f00000000000000000000000000000000000000000000000000000000000000006004611362565b811161048257600491505090565b60001991505090565b6005818154811061049b57600080fd5b6000918252602090912001546001600160a01b0316905081565b6006541561050a5760405162461bcd60e51b815260206004820152601760248201527f444b472068617320616c7265616479207374617274656400000000000000000060448201526064015b60405180910390fd5b610512610fb0565b60005b838110156105ff57600585858381811061053157610531611379565b9050602002016020810190610546919061105a565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b0390921691909117905582828281811061058a5761058a611379565b905060200281019061059c919061138f565b600160008888868181106105b2576105b2611379565b90506020020160208101906105c7919061105a565b6001600160a01b031681526020810191909152604001600020916105ec91908361143a565b50806105f7816114fb565b915050610515565b505043600655505050565b60006060600060058054905067ffffffffffffffff81111561062e5761062e6113d6565b60405190808252806020026020018201604052801561066157816020015b606081526020019060019003908161064c5790505b50905060005b60055481101561076557600160006005838154811061068857610688611379565b60009182526020808320909101546001600160a01b03168352820192909252604001902080546106b7906112ff565b80601f01602080910402602001604051908101604052809291908181526020018280546106e3906112ff565b80156107305780601f1061070557610100808354040283529160200191610730565b820191906000526020600020905b81548152906001019060200180831161071357829003601f168201915b505050505082828151811061074757610747611379565b6020026020010181905250808061075d906114fb565b915050610667565b507f0000000000000000000000000000000000000000000000000000000000000000939092509050565b606060058054806020026020016040519081016040528092919081815260200182805480156107e757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107c9575b5050505050905090565b60016020526000908152604090208054610303906112ff565b610812610fb0565b61081c600061100a565b565b3360009081526001602052604081208054610838906112ff565b9050116108875760405162461bcd60e51b815260206004820152601b60248201527f796f7520617265206e6f7420612067726f7570206d656d6265722100000000006044820152606401610501565b6000600654436108979190611349565b90507f000000000000000000000000000000000000000000000000000000000000000081116109395733600090815260026020526040902080546108da906112ff565b1590506109195760405162461bcd60e51b815260206004820152600d60248201526c1cda185c9948195e1a5cdd1959609a1b6044820152606401610501565b33600090815260026020526040902061093383858361143a565b50505050565b6109647f00000000000000000000000000000000000000000000000000000000000000006002611362565b81116109e0573360009081526003602052604090208054610984906112ff565b1590506109c65760405162461bcd60e51b815260206004820152601060248201526f1c995cdc1bdb9cd948195e1a5cdd195960821b6044820152606401610501565b33600090815260036020526040902061093383858361143a565b610a0b7f00000000000000000000000000000000000000000000000000000000000000006003611362565b8111610a94573360009081526004602052604090208054610a2b906112ff565b159050610a7a5760405162461bcd60e51b815260206004820152601560248201527f6a757374696669636174696f6e206578697374656400000000000000000000006044820152606401610501565b33600090815260046020526040902061093383858361143a565b60405162461bcd60e51b815260206004820152601560248201527f444b47205075626c6973682068617320656e64656400000000000000000000006044820152606401610501565b505050565b610ae9610fb0565b6000546001600160a01b0316ff5b60055460609060009067ffffffffffffffff811115610b1857610b186113d6565b604051908082528060200260200182016040528015610b4b57816020015b6060815260200190600190039081610b365790505b50905060005b600554811015610c4f576004600060058381548110610b7257610b72611379565b60009182526020808320909101546001600160a01b0316835282019290925260400190208054610ba1906112ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610bcd906112ff565b8015610c1a5780601f10610bef57610100808354040283529160200191610c1a565b820191906000526020600020905b815481529060010190602001808311610bfd57829003601f168201915b5050505050828281518110610c3157610c31611379565b60200260200101819052508080610c47906114fb565b915050610b51565b50919050565b60055460609060009067ffffffffffffffff811115610c7657610c766113d6565b604051908082528060200260200182016040528015610ca957816020015b6060815260200190600190039081610c945790505b50905060005b600554811015610c4f576003600060058381548110610cd057610cd0611379565b60009182526020808320909101546001600160a01b0316835282019290925260400190208054610cff906112ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2b906112ff565b8015610d785780601f10610d4d57610100808354040283529160200191610d78565b820191906000526020600020905b815481529060010190602001808311610d5b57829003601f168201915b5050505050828281518110610d8f57610d8f611379565b60200260200101819052508080610da5906114fb565b915050610caf565b60046020526000908152604090208054610303906112ff565b60026020526000908152604090208054610303906112ff565b60055460609060009067ffffffffffffffff811115610e0057610e006113d6565b604051908082528060200260200182016040528015610e3357816020015b6060815260200190600190039081610e1e5790505b50905060005b600554811015610c4f576002600060058381548110610e5a57610e5a611379565b60009182526020808320909101546001600160a01b0316835282019290925260400190208054610e89906112ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb5906112ff565b8015610f025780601f10610ed757610100808354040283529160200191610f02565b820191906000526020600020905b815481529060010190602001808311610ee557829003601f168201915b5050505050828281518110610f1957610f19611379565b60200260200101819052508080610f2f906114fb565b915050610e39565b610f3f610fb0565b6001600160a01b038116610fa45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610501565b610fad8161100a565b50565b6000546001600160a01b0316331461081c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610501565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561106c57600080fd5b81356001600160a01b038116811461108357600080fd5b9392505050565b6000815180845260005b818110156110b057602081850181015186830182015201611094565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611083602083018461108a565b6000602082840312156110f557600080fd5b5035919050565b60008083601f84011261110e57600080fd5b50813567ffffffffffffffff81111561112657600080fd5b6020830191508360208260051b850101111561114157600080fd5b9250929050565b6000806000806040858703121561115e57600080fd5b843567ffffffffffffffff8082111561117657600080fd5b611182888389016110fc565b9096509450602087013591508082111561119b57600080fd5b506111a8878288016110fc565b95989497509550505050565b600082825180855260208086019550808260051b84010181860160005b848110156111ff57601f198684030189526111ed83835161108a565b988401989250908301906001016111d1565b5090979650505050505050565b82815260406020820152600061122560408301846111b4565b949350505050565b6020808252825182820181905260009190848201906040850190845b8181101561126e5783516001600160a01b031683529284019291840191600101611249565b50909695505050505050565b6000806020838503121561128d57600080fd5b823567ffffffffffffffff808211156112a557600080fd5b818501915085601f8301126112b957600080fd5b8135818111156112c857600080fd5b8660208285010111156112da57600080fd5b60209290920196919550909350505050565b60208152600061108360208301846111b4565b600181811c9082168061131357607f821691505b602082108103610c4f57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561135c5761135c611333565b92915050565b808202811582820484141761135c5761135c611333565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126113a657600080fd5b83018035915067ffffffffffffffff8211156113c157600080fd5b60200191503681900382131561114157600080fd5b634e487b7160e01b600052604160045260246000fd5b601f821115610adc57600081815260208120601f850160051c810160208610156114135750805b601f850160051c820191505b818110156114325782815560010161141f565b505050505050565b67ffffffffffffffff831115611452576114526113d6565b6114668361146083546112ff565b836113ec565b6000601f84116001811461149a57600085156114825750838201355b600019600387901b1c1916600186901b1783556114f4565b600083815260209020601f19861690835b828110156114cb57868501358255602094850194600190920191016114ab565b50868210156114e85760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60006001820161150d5761150d611333565b506001019056fea2646970667358221220c2a9f120eb2103820ad3e4aa8186766351660b5d60085b20e490025c0ac4bb2f64736f6c63430008120033", "sourceMap": "136:5290:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;438:42;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4590:738;;;:::i;:::-;;;1063:4:127;1135:21;;;;1117:40;;1105:2;1090:18;4590:738:76;977:186:127;685:29:76;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1517:55:127;;;1499:74;;1487:2;1472:18;685:29:76;1353:226:127;1479:304:76;;;;;;:::i;:::-;;:::i;:::-;;971:29;;;;;;;;;2891:25:127;;;2879:2;2864:18;971:29:76;2745:177:127;4241:297:76;;;:::i;:::-;;;;;;;;:::i;4055:104::-;;;:::i;:::-;;;;;;;:::i;229:37::-;;;;;;:::i;:::-;;:::i;1831:101:37:-;;;:::i;2045:738:76:-;;;;;;:::i;:::-;;:::i;1201:85:37:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:37;1201:85;;5334:90:76;;;:::i;756:38::-;;;;;3680:319;;;:::i;:::-;;;;;;;:::i;837:37::-;;;;;3334:294;;;:::i;553:47::-;;;;;;:::i;:::-;;:::i;331:39::-;;;;;;:::i;:::-;;:::i;3008:279::-;;;:::i;2081:198:37:-;;;;;;:::i;:::-;;:::i;438:42:76:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4590:738::-;4630:4;4713:10;;4727:1;4713:15;4709:54;;-1:-1:-1;4751:1:76;;4590:738::o;4709:54::-;4773:24;4815:10;;4800:12;:25;;;;:::i;:::-;4773:52;;4860:13;4840:16;:33;4836:81;;4896:1;4889:8;;;4590:738;:::o;4836:81::-;4951:17;4955:13;4951:1;:17;:::i;:::-;4931:16;:37;4927:88;;4991:1;4984:8;;;4590:738;:::o;4927:88::-;5049:17;5053:13;5049:1;:17;:::i;:::-;5029:16;:37;5025:93;;5089:1;5082:8;;;4590:738;:::o;5025:93::-;5151:17;5155:13;5151:1;:17;:::i;:::-;5131:16;:37;5127:113;;5191:1;5184:8;;;4590:738;:::o;5127:113::-;-1:-1:-1;;5312:9:76;;;4590:738;:::o;685:29::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;685:29:76;;-1:-1:-1;685:29:76;:::o;1479:304::-;1282:10;;:15;1274:51;;;;-1:-1:-1;;;1274:51:76;;6464:2:127;1274:51:76;;;6446:21:127;6503:2;6483:18;;;6476:30;6542:25;6522:18;;;6515:53;6585:18;;1274:51:76;;;;;;;;;1094:13:37::1;:11;:13::i;:::-;1607:9:76::2;1602:139;1622:16:::0;;::::2;1602:139;;;1659:12;1677:5;;1683:1;1677:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1659:27:::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;1659:27:76;;;::::2;::::0;;;;;::::2;::::0;;-1:-1:-1;;;;;;1659:27:76::2;-1:-1:-1::0;;;;;1659:27:76;;::::2;::::0;;;::::2;::::0;;1717:10;;1728:1;1717:13;;::::2;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1700:4;:14;1705:5;;1711:1;1705:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1700:14:76::2;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;1700:14:76;;:30:::2;::::0;;:14;:30:::2;:::i;:::-;-1:-1:-1::0;1640:3:76;::::2;::::0;::::2;:::i;:::-;;;;1602:139;;;-1:-1:-1::0;;1764:12:76::2;1751:10;:25:::0;-1:-1:-1;;;1479:304:76:o;4241:297::-;4286:7;4295:14;4321:20;4356:12;:19;;;;4344:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4321:55;;4391:9;4386:107;4410:12;:19;4406:23;;4386:107;;;4461:4;:21;4466:12;4479:1;4466:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;4466:15:76;4461:21;;;;;;;;;;;;4450:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;4456:1;4450:8;;;;;;;;:::i;:::-;;;;;;:32;;;;4431:3;;;;;:::i;:::-;;;;4386:107;;;-1:-1:-1;4511:12:76;;4525:5;;-1:-1:-1;4241:297:76;-1:-1:-1;4241:297:76:o;4055:104::-;4105:16;4140:12;4133:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4133:19:76;;;;;;;;;;;;;;;;;;;;;;;4055:104;:::o;229:37::-;;;;;;;;;;;;;;;;:::i;1831:101:37:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2045:738:76:-;1113:10;1134:1;1108:16;;;:4;:16;;;;;:23;;;;;:::i;:::-;;;:27;1100:67;;;;-1:-1:-1;;;1100:67:76;;9798:2:127;1100:67:76;;;9780:21:127;9837:2;9817:18;;;9810:30;9876:29;9856:18;;;9849:57;9923:18;;1100:67:76;9596:351:127;1100:67:76;2119:24:::1;2161:10;;2146:12;:25;;;;:::i;:::-;2119:52;;2206:13;2186:16;:33;2182:595;;2250:10;2243:18;::::0;;;:6:::1;:18;::::0;;;;:25;;::::1;::::0;::::1;:::i;:::-;:30:::0;;-1:-1:-1;2235:56:76::1;;;::::0;-1:-1:-1;;;2235:56:76;;10154:2:127;2235:56:76::1;::::0;::::1;10136:21:127::0;10193:2;10173:18;;;10166:30;-1:-1:-1;;;10212:18:127;;;10205:43;10265:18;;2235:56:76::1;9952:337:127::0;2235:56:76::1;2312:10;2305:18;::::0;;;:6:::1;:18;::::0;;;;:26:::1;2326:5:::0;;2305:18;:26:::1;:::i;:::-;;2109:674;2045:738:::0;;:::o;2182:595::-:1;2372:17;2376:13;2372:1;:17;:::i;:::-;2352:16;:37;2348:429;;2423:10;2413:21;::::0;;;:9:::1;:21;::::0;;;;:28;;::::1;::::0;::::1;:::i;:::-;:33:::0;;-1:-1:-1;2405:62:76::1;;;::::0;-1:-1:-1;;;2405:62:76;;10496:2:127;2405:62:76::1;::::0;::::1;10478:21:127::0;10535:2;10515:18;;;10508:30;-1:-1:-1;;;10554:18:127;;;10547:46;10610:18;;2405:62:76::1;10294:340:127::0;2405:62:76::1;2491:10;2481:21;::::0;;;:9:::1;:21;::::0;;;;:29:::1;2505:5:::0;;2481:21;:29:::1;:::i;2348:429::-;2551:17;2555:13;2551:1;:17;:::i;:::-;2531:16;:37;2527:250;;2607:10;2592:26;::::0;;;:14:::1;:26;::::0;;;;:33;;::::1;::::0;::::1;:::i;:::-;:38:::0;;-1:-1:-1;2584:72:76::1;;;::::0;-1:-1:-1;;;2584:72:76;;10841:2:127;2584:72:76::1;::::0;::::1;10823:21:127::0;10880:2;10860:18;;;10853:30;10919:23;10899:18;;;10892:51;10960:18;;2584:72:76::1;10639:345:127::0;2584:72:76::1;2685:10;2670:26;::::0;;;:14:::1;:26;::::0;;;;:34:::1;2699:5:::0;;2670:26;:34:::1;:::i;2527:250::-;2735:31;::::0;-1:-1:-1;;;2735:31:76;;11191:2:127;2735:31:76::1;::::0;::::1;11173:21:127::0;11230:2;11210:18;;;11203:30;11269:23;11249:18;;;11242:51;11310:18;;2735:31:76::1;10989:345:127::0;2527:250:76::1;2109:674;2045:738:::0;;:::o;5334:90::-;1094:13:37;:11;:13::i;:::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:37;5387:30:76::1;3680:319:::0;3803:12;:19;3732:14;;3758:30;;3791:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3758:65;;3838:9;3833:127;3857:12;:19;3853:23;;3833:127;;;3918:14;:31;3933:12;3946:1;3933:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3933:15:76;3918:31;;;;;;;;;;;;3897:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;3913:1;3897:18;;;;;;;;:::i;:::-;;;;;;:52;;;;3878:3;;;;;:::i;:::-;;;;3833:127;;;-1:-1:-1;3977:15:76;3680:319;-1:-1:-1;3680:319:76:o;3334:294::-;3447:12;:19;3381:14;;3407:25;;3435:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3407:60;;3482:9;3477:117;3501:12;:19;3497:23;;3477:117;;;3557:9;:26;3567:12;3580:1;3567:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3567:15:76;3557:26;;;;;;;;;;;;3541:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:10;3552:1;3541:13;;;;;;;;:::i;:::-;;;;;;:42;;;;3522:3;;;;;:::i;:::-;;;;3477:117;;553:47;;;;;;;;;;;;;;;;:::i;331:39::-;;;;;;;;;;;;;;;;:::i;3008:279::-;3115:12;:19;3052:14;;3078:22;;3103:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3078:57;;3150:9;3145:111;3169:12;:19;3165:23;;3145:111;;;3222:6;:23;3229:12;3242:1;3229:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3229:15:76;3222:23;;;;;;;;;;;;3209:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;3217:1;3209:10;;;;;;;;:::i;:::-;;;;;;:36;;;;3190:3;;;;;:::i;:::-;;;;3145:111;;2081:198:37;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:37;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:37;;11541:2:127;2161:73:37::1;::::0;::::1;11523:21:127::0;11580:2;11560:18;;;11553:30;11619:34;11599:18;;;11592:62;-1:-1:-1;;;11670:18:127;;;11663:36;11716:19;;2161:73:37::1;11339:402:127::0;2161:73:37::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:37;719:10:51;1422:23:37;1414:68;;;;-1:-1:-1;;;1414:68:37;;11948:2:127;1414:68:37;;;11930:21:127;;;11967:18;;;11960:30;12026:34;12006:18;;;11999:62;12078:18;;1414:68:37;11746:356:127;2433:187:37;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:37;;;-1:-1:-1;;;;;;2541:17:37;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:309:127:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;-1:-1:-1;;;;;224:5:127;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:127:o;328:422::-;369:3;407:5;401:12;434:6;429:3;422:19;459:1;469:162;483:6;480:1;477:13;469:162;;;545:4;601:13;;;597:22;;591:29;573:11;;;569:20;;562:59;498:12;469:162;;;473:3;676:1;669:4;660:6;655:3;651:16;647:27;640:38;739:4;732:2;728:7;723:2;715:6;711:15;707:29;702:3;698:39;694:50;687:57;;;328:422;;;;:::o;755:217::-;902:2;891:9;884:21;865:4;922:44;962:2;951:9;947:18;939:6;922:44;:::i;1168:180::-;1227:6;1280:2;1268:9;1259:7;1255:23;1251:32;1248:52;;;1296:1;1293;1286:12;1248:52;-1:-1:-1;1319:23:127;;1168:180;-1:-1:-1;1168:180:127:o;1584:367::-;1647:8;1657:6;1711:3;1704:4;1696:6;1692:17;1688:27;1678:55;;1729:1;1726;1719:12;1678:55;-1:-1:-1;1752:20:127;;1795:18;1784:30;;1781:50;;;1827:1;1824;1817:12;1781:50;1864:4;1856:6;1852:17;1840:29;;1924:3;1917:4;1907:6;1904:1;1900:14;1892:6;1888:27;1884:38;1881:47;1878:67;;;1941:1;1938;1931:12;1878:67;1584:367;;;;;:::o;1956:784::-;2089:6;2097;2105;2113;2166:2;2154:9;2145:7;2141:23;2137:32;2134:52;;;2182:1;2179;2172:12;2134:52;2222:9;2209:23;2251:18;2292:2;2284:6;2281:14;2278:34;;;2308:1;2305;2298:12;2278:34;2347:70;2409:7;2400:6;2389:9;2385:22;2347:70;:::i;:::-;2436:8;;-1:-1:-1;2321:96:127;-1:-1:-1;2524:2:127;2509:18;;2496:32;;-1:-1:-1;2540:16:127;;;2537:36;;;2569:1;2566;2559:12;2537:36;;2608:72;2672:7;2661:8;2650:9;2646:24;2608:72;:::i;:::-;1956:784;;;;-1:-1:-1;2699:8:127;-1:-1:-1;;;;1956:784:127:o;2927:590::-;2978:3;3009;3041:5;3035:12;3068:6;3063:3;3056:19;3094:4;3123:2;3118:3;3114:12;3107:19;;3179:2;3169:6;3166:1;3162:14;3155:5;3151:26;3147:35;3216:2;3209:5;3205:14;3237:1;3247:244;3261:6;3258:1;3255:13;3247:244;;;3348:2;3344:7;3336:5;3330:4;3326:16;3322:30;3317:3;3310:43;3374:37;3406:4;3397:6;3391:13;3374:37;:::i;:::-;3469:12;;;;3366:45;-1:-1:-1;3434:15:127;;;;3283:1;3276:9;3247:244;;;-1:-1:-1;3507:4:127;;2927:590;-1:-1:-1;;;;;;;2927:590:127:o;3522:348::-;3747:6;3736:9;3729:25;3790:2;3785;3774:9;3770:18;3763:30;3710:4;3810:54;3860:2;3849:9;3845:18;3837:6;3810:54;:::i;:::-;3802:62;3522:348;-1:-1:-1;;;;3522:348:127:o;3875:681::-;4046:2;4098:21;;;4168:13;;4071:18;;;4190:22;;;4017:4;;4046:2;4269:15;;;;4243:2;4228:18;;;4017:4;4312:218;4326:6;4323:1;4320:13;4312:218;;;4391:13;;-1:-1:-1;;;;;4387:62:127;4375:75;;4505:15;;;;4470:12;;;;4348:1;4341:9;4312:218;;;-1:-1:-1;4547:3:127;;3875:681;-1:-1:-1;;;;;;3875:681:127:o;4561:591::-;4631:6;4639;4692:2;4680:9;4671:7;4667:23;4663:32;4660:52;;;4708:1;4705;4698:12;4660:52;4748:9;4735:23;4777:18;4818:2;4810:6;4807:14;4804:34;;;4834:1;4831;4824:12;4804:34;4872:6;4861:9;4857:22;4847:32;;4917:7;4910:4;4906:2;4902:13;4898:27;4888:55;;4939:1;4936;4929:12;4888:55;4979:2;4966:16;5005:2;4997:6;4994:14;4991:34;;;5021:1;5018;5011:12;4991:34;5066:7;5061:2;5052:6;5048:2;5044:15;5040:24;5037:37;5034:57;;;5087:1;5084;5077:12;5034:57;5118:2;5110:11;;;;;5140:6;;-1:-1:-1;4561:591:127;;-1:-1:-1;;;;4561:591:127:o;5157:277::-;5354:2;5343:9;5336:21;5317:4;5374:54;5424:2;5413:9;5409:18;5401:6;5374:54;:::i;5439:380::-;5518:1;5514:12;;;;5561;;;5582:61;;5636:4;5628:6;5624:17;5614:27;;5582:61;5689:2;5681:6;5678:14;5658:18;5655:38;5652:161;;5735:10;5730:3;5726:20;5723:1;5716:31;5770:4;5767:1;5760:15;5798:4;5795:1;5788:15;5824:127;5885:10;5880:3;5876:20;5873:1;5866:31;5916:4;5913:1;5906:15;5940:4;5937:1;5930:15;5956:128;6023:9;;;6044:11;;;6041:37;;;6058:18;;:::i;:::-;5956:128;;;;:::o;6089:168::-;6162:9;;;6193;;6210:15;;;6204:22;;6190:37;6180:71;;6231:18;;:::i;6614:127::-;6675:10;6670:3;6666:20;6663:1;6656:31;6706:4;6703:1;6696:15;6730:4;6727:1;6720:15;6746:521;6823:4;6829:6;6889:11;6876:25;6983:2;6979:7;6968:8;6952:14;6948:29;6944:43;6924:18;6920:68;6910:96;;7002:1;6999;6992:12;6910:96;7029:33;;7081:20;;;-1:-1:-1;7124:18:127;7113:30;;7110:50;;;7156:1;7153;7146:12;7110:50;7189:4;7177:17;;-1:-1:-1;7220:14:127;7216:27;;;7206:38;;7203:58;;;7257:1;7254;7247:12;7272:127;7333:10;7328:3;7324:20;7321:1;7314:31;7364:4;7361:1;7354:15;7388:4;7385:1;7378:15;7529:544;7630:2;7625:3;7622:11;7619:448;;;7666:1;7691:5;7687:2;7680:17;7736:4;7732:2;7722:19;7806:2;7794:10;7790:19;7787:1;7783:27;7777:4;7773:38;7842:4;7830:10;7827:20;7824:47;;;-1:-1:-1;7865:4:127;7824:47;7920:2;7915:3;7911:12;7908:1;7904:20;7898:4;7894:31;7884:41;;7975:82;7993:2;7986:5;7983:13;7975:82;;;8038:17;;;8019:1;8008:13;7975:82;;;7979:3;;;7529:544;;;:::o;8249:1202::-;8371:18;8366:3;8363:27;8360:53;;;8393:18;;:::i;:::-;8422:93;8511:3;8471:38;8503:4;8497:11;8471:38;:::i;:::-;8465:4;8422:93;:::i;:::-;8541:1;8566:2;8561:3;8558:11;8583:1;8578:615;;;;9237:1;9254:3;9251:93;;;-1:-1:-1;9310:19:127;;;9297:33;9251:93;-1:-1:-1;;8206:1:127;8202:11;;;8198:24;8194:29;8184:40;8230:1;8226:11;;;8181:57;9357:78;;8551:894;;8578:615;7476:1;7469:14;;;7513:4;7500:18;;-1:-1:-1;;8614:17:127;;;8714:9;8736:229;8750:7;8747:1;8744:14;8736:229;;;8839:19;;;8826:33;8811:49;;8946:4;8931:20;;;;8899:1;8887:14;;;;8766:12;8736:229;;;8740:3;8993;8984:7;8981:16;8978:159;;;9117:1;9113:6;9107:3;9101;9098:1;9094:11;9090:21;9086:34;9082:39;9069:9;9064:3;9060:19;9047:33;9043:79;9035:6;9028:95;8978:159;;;9180:1;9174:3;9171:1;9167:11;9163:19;9157:4;9150:33;8551:894;;;8249:1202;;;:::o;9456:135::-;9495:3;9516:17;;;9513:43;;9536:18;;:::i;:::-;-1:-1:-1;9583:1:127;9572:13;;9456:135::o", "linkReferences": {}, "immutableReferences": { "44422": [ { "start": 579, "length": 32 }, { "start": 938, "length": 32 }, { "start": 988, "length": 32 }, { "start": 1045, "length": 32 }, { "start": 1102, "length": 32 }, { "start": 2203, "length": 32 }, { "start": 2366, "length": 32 }, { "start": 2533, "length": 32 } ], "44425": [ { "start": 639, "length": 32 }, { "start": 1896, "length": 32 } ] } }, "methodIdentifiers": { "dkgThreshold()": "c2704024", "getDkgKeys()": "4e3874a0", "getJustifications()": "b0ef8179", "getParticipants()": "5aa68ac0", "getResponses()": "cc5ef009", "getShares()": "d73fe0aa", "inPhase()": "221f9511", "initialize(address[],bytes[])": "37f8d5ff", "justifications(address)": "cd5e3837", "keys(address)": "670d14b2", "owner()": "8da5cb5b", "participants(uint256)": "35c1d349", "phaseDuration()": "ac5553ce", "publish(bytes)": "7fd28346", "renounceOwnership()": "715018a6", "responses(address)": "0ea65648", "selfDestruct()": "9cb8a26a", "shares(address)": "ce7c2ac2", "startBlock()": "48cd4cb1", "transferOwnership(address)": "f2fde38b" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"dkgThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDkgKeys\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getJustifications\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParticipants\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getResponses\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getShares\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inPhase\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"publicKeys\",\"type\":\"bytes[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"justifications\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"keys\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"participants\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"phaseDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"publish\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"responses\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selfDestruct\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"shares\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"dkgThreshold()\":{\"notice\":\"The dkgThreshold of the DKG\"},\"getDkgKeys()\":{\"notice\":\"Gets the participants' DKG keys along with the thershold of the DKG\"},\"getJustifications()\":{\"notice\":\"Gets the participants' justifications\"},\"getParticipants()\":{\"notice\":\"Gets the participants' ethereum addresses\"},\"getResponses()\":{\"notice\":\"Gets the participants' responses\"},\"getShares()\":{\"notice\":\"Gets the participants' shares\"},\"inPhase()\":{\"notice\":\"Returns the current phase of the DKG.\"},\"justifications(address)\":{\"notice\":\"Mapping of Ethereum Address => DKG Phase 3 Justifications\"},\"keys(address)\":{\"notice\":\"Mapping of Ethereum Address => DKG public keys\"},\"phaseDuration()\":{\"notice\":\"The duration of each phase\"},\"publish(bytes)\":{\"notice\":\"Participant publishes their data and depending on the phase the data gets inserted in the shares, responses or justifications mapping. Reverts if the participant has already published their data for a phase or if the DKG has ended.\"},\"responses(address)\":{\"notice\":\"Mapping of Ethereum Address => DKG Phase 2 Responses\"},\"shares(address)\":{\"notice\":\"Mapping of Ethereum Address => DKG Phase 1 Shares\"},\"startBlock()\":{\"notice\":\"If it's 0 then the DKG is still pending start. If >0, it is the DKG's start block\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Coordinator.sol\":\"Coordinator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":300},\"remappings\":[\":Staking-v0.1/=lib/Staking-v0.1/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/Coordinator.sol\":{\"keccak256\":\"0x5e5f89b4d5e0560aad2c620ceacb854ad491dcc21ccdd4ec05b71a1c2aed66e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92e01c67ccd7fb5d807be058136a48af45e85d641189ce4845ec27d5e279b7eb\",\"dweb:/ipfs/QmXn4zawP5pimL7kypg61ezVY494qQgvwUkqtw766Jck1s\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.18+commit.87f61d96" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "uint256", "name": "threshold", "type": "uint256" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "previousOwner", "type": "address", "indexed": true }, { "internalType": "address", "name": "newOwner", "type": "address", "indexed": true } ], "type": "event", "name": "OwnershipTransferred", "anonymous": false }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "dkgThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getDkgKeys", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes[]", "name": "", "type": "bytes[]" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getJustifications", "outputs": [ { "internalType": "bytes[]", "name": "", "type": "bytes[]" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getParticipants", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getResponses", "outputs": [ { "internalType": "bytes[]", "name": "", "type": "bytes[]" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getShares", "outputs": [ { "internalType": "bytes[]", "name": "", "type": "bytes[]" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "inPhase", "outputs": [ { "internalType": "int8", "name": "", "type": "int8" } ] }, { "inputs": [ { "internalType": "address[]", "name": "nodes", "type": "address[]" }, { "internalType": "bytes[]", "name": "publicKeys", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function", "name": "initialize" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "justifications", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "keys", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "participants", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "phaseDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [ { "internalType": "bytes", "name": "value", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function", "name": "publish" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "renounceOwnership" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "responses", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "selfDestruct" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "shares", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "startBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "transferOwnership" } ], "devdoc": { "kind": "dev", "methods": { "owner()": { "details": "Returns the address of the current owner." }, "renounceOwnership()": { "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." }, "transferOwnership(address)": { "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "dkgThreshold()": { "notice": "The dkgThreshold of the DKG" }, "getDkgKeys()": { "notice": "Gets the participants' DKG keys along with the thershold of the DKG" }, "getJustifications()": { "notice": "Gets the participants' justifications" }, "getParticipants()": { "notice": "Gets the participants' ethereum addresses" }, "getResponses()": { "notice": "Gets the participants' responses" }, "getShares()": { "notice": "Gets the participants' shares" }, "inPhase()": { "notice": "Returns the current phase of the DKG." }, "justifications(address)": { "notice": "Mapping of Ethereum Address => DKG Phase 3 Justifications" }, "keys(address)": { "notice": "Mapping of Ethereum Address => DKG public keys" }, "phaseDuration()": { "notice": "The duration of each phase" }, "publish(bytes)": { "notice": "Participant publishes their data and depending on the phase the data gets inserted in the shares, responses or justifications mapping. Reverts if the participant has already published their data for a phase or if the DKG has ended." }, "responses(address)": { "notice": "Mapping of Ethereum Address => DKG Phase 2 Responses" }, "shares(address)": { "notice": "Mapping of Ethereum Address => DKG Phase 1 Shares" }, "startBlock()": { "notice": "If it's 0 then the DKG is still pending start. If >0, it is the DKG's start block" } }, "version": 1 } }, "settings": { "remappings": [ ":Staking-v0.1/=lib/Staking-v0.1/src/", ":ds-test/=lib/forge-std/lib/ds-test/src/", ":forge-std/=lib/forge-std/src/", ":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", ":openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 300 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/Coordinator.sol": "Coordinator" }, "libraries": {} }, "sources": { "lib/openzeppelin-contracts/contracts/access/Ownable.sol": { "keccak256": "0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673", "urls": [ "bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2", "dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Context.sol": { "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", "urls": [ "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" ], "license": "MIT" }, "src/Coordinator.sol": { "keccak256": "0x5e5f89b4d5e0560aad2c620ceacb854ad491dcc21ccdd4ec05b71a1c2aed66e5", "urls": [ "bzz-raw://92e01c67ccd7fb5d807be058136a48af45e85d641189ce4845ec27d5e279b7eb", "dweb:/ipfs/QmXn4zawP5pimL7kypg61ezVY494qQgvwUkqtw766Jck1s" ], "license": "MIT" } }, "version": 1 }, "ast": { "absolutePath": "src/Coordinator.sol", "id": 44885, "exportedSymbols": { "Coordinator": [ 44884 ], "Ownable": [ 32191 ] }, "nodeType": "SourceUnit", "src": "32:5395:76", "nodes": [ { "id": 44392, "nodeType": "PragmaDirective", "src": "32:24:76", "nodes": [], "literals": [ "solidity", "^", "0.8", ".18" ] }, { "id": 44394, "nodeType": "ImportDirective", "src": "58:76:76", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/access/Ownable.sol", "file": "openzeppelin-contracts/contracts/access/Ownable.sol", "nameLocation": "-1:-1:-1", "scope": 44885, "sourceUnit": 32192, "symbolAliases": [ { "foreign": { "id": 44393, "name": "Ownable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 32191, "src": "66:7:76", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 44884, "nodeType": "ContractDefinition", "src": "136:5290:76", "nodes": [ { "id": 44401, "nodeType": "VariableDeclaration", "src": "229:37:76", "nodes": [], "constant": false, "documentation": { "id": 44397, "nodeType": "StructuredDocumentation", "src": "174:50:76", "text": "Mapping of Ethereum Address => DKG public keys" }, "functionSelector": "670d14b2", "mutability": "mutable", "name": "keys", "nameLocation": "262:4:76", "scope": 44884, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes)" }, "typeName": { "id": 44400, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 44398, "name": "address", "nodeType": "ElementaryTypeName", "src": "237:7:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "229:25:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 44399, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "248:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "visibility": "public" }, { "id": 44406, "nodeType": "VariableDeclaration", "src": "331:39:76", "nodes": [], "constant": false, "documentation": { "id": 44402, "nodeType": "StructuredDocumentation", "src": "273:53:76", "text": "Mapping of Ethereum Address => DKG Phase 1 Shares" }, "functionSelector": "ce7c2ac2", "mutability": "mutable", "name": "shares", "nameLocation": "364:6:76", "scope": 44884, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes)" }, "typeName": { "id": 44405, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 44403, "name": "address", "nodeType": "ElementaryTypeName", "src": "339:7:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "331:25:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 44404, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "350:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "visibility": "public" }, { "id": 44411, "nodeType": "VariableDeclaration", "src": "438:42:76", "nodes": [], "constant": false, "documentation": { "id": 44407, "nodeType": "StructuredDocumentation", "src": "377:56:76", "text": "Mapping of Ethereum Address => DKG Phase 2 Responses" }, "functionSelector": "0ea65648", "mutability": "mutable", "name": "responses", "nameLocation": "471:9:76", "scope": 44884, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes)" }, "typeName": { "id": 44410, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 44408, "name": "address", "nodeType": "ElementaryTypeName", "src": "446:7:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "438:25:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 44409, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "457:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "visibility": "public" }, { "id": 44416, "nodeType": "VariableDeclaration", "src": "553:47:76", "nodes": [], "constant": false, "documentation": { "id": 44412, "nodeType": "StructuredDocumentation", "src": "487:61:76", "text": "Mapping of Ethereum Address => DKG Phase 3 Justifications" }, "functionSelector": "cd5e3837", "mutability": "mutable", "name": "justifications", "nameLocation": "586:14:76", "scope": 44884, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes)" }, "typeName": { "id": 44415, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 44413, "name": "address", "nodeType": "ElementaryTypeName", "src": "561:7:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "553:25:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 44414, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "572:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "visibility": "public" }, { "id": 44419, "nodeType": "VariableDeclaration", "src": "685:29:76", "nodes": [], "constant": false, "functionSelector": "35c1d349", "mutability": "mutable", "name": "participants", "nameLocation": "702:12:76", "scope": 44884, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[]" }, "typeName": { "baseType": { "id": 44417, "name": "address", "nodeType": "ElementaryTypeName", "src": "685:7:76", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 44418, "nodeType": "ArrayTypeName", "src": "685:9:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "public" }, { "id": 44422, "nodeType": "VariableDeclaration", "src": "756:38:76", "nodes": [], "constant": false, "documentation": { "id": 44420, "nodeType": "StructuredDocumentation", "src": "721:30:76", "text": "The duration of each phase" }, "functionSelector": "ac5553ce", "mutability": "immutable", "name": "phaseDuration", "nameLocation": "781:13:76", "scope": 44884, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44421, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "756:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "id": 44425, "nodeType": "VariableDeclaration", "src": "837:37:76", "nodes": [], "constant": false, "documentation": { "id": 44423, "nodeType": "StructuredDocumentation", "src": "801:31:76", "text": "The dkgThreshold of the DKG" }, "functionSelector": "c2704024", "mutability": "immutable", "name": "dkgThreshold", "nameLocation": "862:12:76", "scope": 44884, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44424, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "837:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "id": 44429, "nodeType": "VariableDeclaration", "src": "971:29:76", "nodes": [], "constant": false, "documentation": { "id": 44426, "nodeType": "StructuredDocumentation", "src": "881:85:76", "text": "If it's 0 then the DKG is still pending start. If >0, it is the DKG's start block" }, "functionSelector": "48cd4cb1", "mutability": "mutable", "name": "startBlock", "nameLocation": "986:10:76", "scope": 44884, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44427, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "971:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "hexValue": "30", "id": 44428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "999:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "visibility": "public" }, { "id": 44445, "nodeType": "ModifierDefinition", "src": "1063:122:76", "nodes": [], "body": { "id": 44444, "nodeType": "Block", "src": "1090:95:76", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 44433, "name": "keys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44401, "src": "1108:4:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44436, "indexExpression": { "expression": { "id": 44434, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "1113:3:76", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 44435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1117:6:76", "memberName": "sender", "nodeType": "MemberAccess", "src": "1113:10:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1108:16:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 44437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1125:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "1108:23:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 44438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1134:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1108:27:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "796f7520617265206e6f7420612067726f7570206d656d62657221", "id": 44440, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1137:29:76", "typeDescriptions": { "typeIdentifier": "t_stringliteral_109d9490d86fdd87669e89fbd6010f763fe62db7f8c0de6cde95b419915f7dd2", "typeString": "literal_string \"you are not a group member!\"" }, "value": "you are not a group member!" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_109d9490d86fdd87669e89fbd6010f763fe62db7f8c0de6cde95b419915f7dd2", "typeString": "literal_string \"you are not a group member!\"" } ], "id": 44432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1100:7:76", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 44441, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1100:67:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 44442, "nodeType": "ExpressionStatement", "src": "1100:67:76" }, { "id": 44443, "nodeType": "PlaceholderStatement", "src": "1177:1:76" } ] }, "documentation": { "id": 44430, "nodeType": "StructuredDocumentation", "src": "1007:51:76", "text": "A group member is one whose pubkey's length > 0" }, "name": "onlyGroupMember", "nameLocation": "1072:15:76", "parameters": { "id": 44431, "nodeType": "ParameterList", "parameters": [], "src": "1087:2:76" }, "virtual": false, "visibility": "internal" }, { "id": 44457, "nodeType": "ModifierDefinition", "src": "1234:109:76", "nodes": [], "body": { "id": 44456, "nodeType": "Block", "src": "1264:79:76", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44449, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44429, "src": "1282:10:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 44450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1296:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1282:15:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "444b472068617320616c72656164792073746172746564", "id": 44452, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1299:25:76", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4fe62ab88770e53c6729d9fdeeb26ca03acf24d2763693945de41669daea7bd5", "typeString": "literal_string \"DKG has already started\"" }, "value": "DKG has already started" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_4fe62ab88770e53c6729d9fdeeb26ca03acf24d2763693945de41669daea7bd5", "typeString": "literal_string \"DKG has already started\"" } ], "id": 44448, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1274:7:76", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 44453, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1274:51:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 44454, "nodeType": "ExpressionStatement", "src": "1274:51:76" }, { "id": 44455, "nodeType": "PlaceholderStatement", "src": "1335:1:76" } ] }, "documentation": { "id": 44446, "nodeType": "StructuredDocumentation", "src": "1191:38:76", "text": "The DKG starts when startBlock > 0" }, "name": "onlyWhenNotStarted", "nameLocation": "1243:18:76", "parameters": { "id": 44447, "nodeType": "ParameterList", "parameters": [], "src": "1261:2:76" }, "virtual": false, "visibility": "internal" }, { "id": 44473, "nodeType": "FunctionDefinition", "src": "1349:124:76", "nodes": [], "body": { "id": 44472, "nodeType": "Block", "src": "1398:75:76", "nodes": [], "statements": [ { "expression": { "id": 44466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 44464, "name": "dkgThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44425, "src": "1408:12:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 44465, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44459, "src": "1423:9:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1408:24:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 44467, "nodeType": "ExpressionStatement", "src": "1408:24:76" }, { "expression": { "id": 44470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 44468, "name": "phaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44422, "src": "1442:13:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 44469, "name": "duration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44461, "src": "1458:8:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1442:24:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 44471, "nodeType": "ExpressionStatement", "src": "1442:24:76" } ] }, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "parameters": { "id": 44462, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44459, "mutability": "mutable", "name": "threshold", "nameLocation": "1369:9:76", "nodeType": "VariableDeclaration", "scope": 44473, "src": "1361:17:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44458, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1361:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 44461, "mutability": "mutable", "name": "duration", "nameLocation": "1388:8:76", "nodeType": "VariableDeclaration", "scope": 44473, "src": "1380:16:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44460, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1380:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1360:37:76" }, "returnParameters": { "id": 44463, "nodeType": "ParameterList", "parameters": [], "src": "1398:0:76" }, "scope": 44884, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 44523, "nodeType": "FunctionDefinition", "src": "1479:304:76", "nodes": [], "body": { "id": 44522, "nodeType": "Block", "src": "1592:191:76", "nodes": [], "statements": [ { "body": { "id": 44515, "nodeType": "Block", "src": "1645:96:76", "statements": [ { "expression": { "arguments": [ { "baseExpression": { "id": 44500, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44476, "src": "1677:5:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 44502, "indexExpression": { "id": 44501, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44487, "src": "1683:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1677:8:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 44497, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "1659:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1672:4:76", "memberName": "push", "nodeType": "MemberAccess", "src": "1659:17:76", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", "typeString": "function (address[] storage pointer,address)" } }, "id": 44503, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1659:27:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 44504, "nodeType": "ExpressionStatement", "src": "1659:27:76" }, { "expression": { "id": 44513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 44505, "name": "keys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44401, "src": "1700:4:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44509, "indexExpression": { "baseExpression": { "id": 44506, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44476, "src": "1705:5:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 44508, "indexExpression": { "id": 44507, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44487, "src": "1711:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1705:8:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1700:14:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 44510, "name": "publicKeys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44479, "src": "1717:10:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes calldata[] calldata" } }, "id": 44512, "indexExpression": { "id": 44511, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44487, "src": "1728:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1717:13:76", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "src": "1700:30:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 44514, "nodeType": "ExpressionStatement", "src": "1700:30:76" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44493, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44490, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44487, "src": "1622:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 44491, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44476, "src": "1626:5:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[] calldata" } }, "id": 44492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1632:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "1626:12:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1622:16:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44516, "initializationExpression": { "assignments": [ 44487 ], "declarations": [ { "constant": false, "id": 44487, "mutability": "mutable", "name": "i", "nameLocation": "1615:1:76", "nodeType": "VariableDeclaration", "scope": 44516, "src": "1607:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44486, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1607:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 44489, "initialValue": { "hexValue": "30", "id": 44488, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1619:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "1607:13:76" }, "loopExpression": { "expression": { "id": 44495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "1640:3:76", "subExpression": { "id": 44494, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44487, "src": "1640:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 44496, "nodeType": "ExpressionStatement", "src": "1640:3:76" }, "nodeType": "ForStatement", "src": "1602:139:76" }, { "expression": { "id": 44520, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 44517, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44429, "src": "1751:10:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 44518, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "1764:5:76", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 44519, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1770:6:76", "memberName": "number", "nodeType": "MemberAccess", "src": "1764:12:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1751:25:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 44521, "nodeType": "ExpressionStatement", "src": "1751:25:76" } ] }, "functionSelector": "37f8d5ff", "implemented": true, "kind": "function", "modifiers": [ { "id": 44482, "kind": "modifierInvocation", "modifierName": { "id": 44481, "name": "onlyWhenNotStarted", "nameLocations": [ "1563:18:76" ], "nodeType": "IdentifierPath", "referencedDeclaration": 44457, "src": "1563:18:76" }, "nodeType": "ModifierInvocation", "src": "1563:18:76" }, { "id": 44484, "kind": "modifierInvocation", "modifierName": { "id": 44483, "name": "onlyOwner", "nameLocations": [ "1582:9:76" ], "nodeType": "IdentifierPath", "referencedDeclaration": 32110, "src": "1582:9:76" }, "nodeType": "ModifierInvocation", "src": "1582:9:76" } ], "name": "initialize", "nameLocation": "1488:10:76", "parameters": { "id": 44480, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44476, "mutability": "mutable", "name": "nodes", "nameLocation": "1518:5:76", "nodeType": "VariableDeclaration", "scope": 44523, "src": "1499:24:76", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 44474, "name": "address", "nodeType": "ElementaryTypeName", "src": "1499:7:76", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 44475, "nodeType": "ArrayTypeName", "src": "1499:9:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 44479, "mutability": "mutable", "name": "publicKeys", "nameLocation": "1542:10:76", "nodeType": "VariableDeclaration", "scope": 44523, "src": "1525:27:76", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 44477, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1525:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44478, "nodeType": "ArrayTypeName", "src": "1525:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "src": "1498:55:76" }, "returnParameters": { "id": 44485, "nodeType": "ParameterList", "parameters": [], "src": "1592:0:76" }, "scope": 44884, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 44617, "nodeType": "FunctionDefinition", "src": "2045:738:76", "nodes": [], "body": { "id": 44616, "nodeType": "Block", "src": "2109:674:76", "nodes": [], "statements": [ { "assignments": [ 44532 ], "declarations": [ { "constant": false, "id": 44532, "mutability": "mutable", "name": "blocksSinceStart", "nameLocation": "2127:16:76", "nodeType": "VariableDeclaration", "scope": 44616, "src": "2119:24:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44531, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2119:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 44537, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44536, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 44533, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "2146:5:76", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 44534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2152:6:76", "memberName": "number", "nodeType": "MemberAccess", "src": "2146:12:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 44535, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44429, "src": "2161:10:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2146:25:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "2119:52:76" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44538, "name": "blocksSinceStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44532, "src": "2186:16:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "id": 44539, "name": "phaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44422, "src": "2206:13:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2186:33:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44560, "name": "blocksSinceStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44532, "src": "2352:16:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44563, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 44561, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2372:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "id": 44562, "name": "phaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44422, "src": "2376:13:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2372:17:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2352:37:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44584, "name": "blocksSinceStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44532, "src": "2531:16:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "33", "id": 44585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2551:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "id": 44586, "name": "phaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44422, "src": "2555:13:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2551:17:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2531:37:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 44612, "nodeType": "Block", "src": "2721:56:76", "statements": [ { "expression": { "arguments": [ { "hexValue": "444b47205075626c6973682068617320656e646564", "id": 44609, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2742:23:76", "typeDescriptions": { "typeIdentifier": "t_stringliteral_885eeaa3286a806dc8aaa720b3fd2f1eef5ceecb582872621da6c573f1d2d008", "typeString": "literal_string \"DKG Publish has ended\"" }, "value": "DKG Publish has ended" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_885eeaa3286a806dc8aaa720b3fd2f1eef5ceecb582872621da6c573f1d2d008", "typeString": "literal_string \"DKG Publish has ended\"" } ], "id": 44608, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "2735:6:76", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 44610, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2735:31:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 44611, "nodeType": "ExpressionStatement", "src": "2735:31:76" } ] }, "id": 44613, "nodeType": "IfStatement", "src": "2527:250:76", "trueBody": { "id": 44607, "nodeType": "Block", "src": "2570:145:76", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 44590, "name": "justifications", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44416, "src": "2592:14:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44593, "indexExpression": { "expression": { "id": 44591, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "2607:3:76", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 44592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2611:6:76", "memberName": "sender", "nodeType": "MemberAccess", "src": "2607:10:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2592:26:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 44594, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2619:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "2592:33:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 44595, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2629:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2592:38:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "6a757374696669636174696f6e2065786973746564", "id": 44597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2632:23:76", "typeDescriptions": { "typeIdentifier": "t_stringliteral_91743dd06e17aef01722a49e8c8368eaeb51ba6109e9da97eaa49f07fc9c719b", "typeString": "literal_string \"justification existed\"" }, "value": "justification existed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_91743dd06e17aef01722a49e8c8368eaeb51ba6109e9da97eaa49f07fc9c719b", "typeString": "literal_string \"justification existed\"" } ], "id": 44589, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2584:7:76", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 44598, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2584:72:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 44599, "nodeType": "ExpressionStatement", "src": "2584:72:76" }, { "expression": { "id": 44605, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 44600, "name": "justifications", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44416, "src": "2670:14:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44603, "indexExpression": { "expression": { "id": 44601, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "2685:3:76", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 44602, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2689:6:76", "memberName": "sender", "nodeType": "MemberAccess", "src": "2685:10:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2670:26:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 44604, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44526, "src": "2699:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "src": "2670:34:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 44606, "nodeType": "ExpressionStatement", "src": "2670:34:76" } ] } }, "id": 44614, "nodeType": "IfStatement", "src": "2348:429:76", "trueBody": { "id": 44583, "nodeType": "Block", "src": "2391:130:76", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 44566, "name": "responses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44411, "src": "2413:9:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44569, "indexExpression": { "expression": { "id": 44567, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "2423:3:76", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 44568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2427:6:76", "memberName": "sender", "nodeType": "MemberAccess", "src": "2423:10:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2413:21:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 44570, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2435:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "2413:28:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 44571, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2445:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2413:33:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "726573706f6e73652065786973746564", "id": 44573, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2448:18:76", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bf1de20ffe2ebb3a8acf716c79e65222af021f26691dbf5a88029a5c01ae032a", "typeString": "literal_string \"response existed\"" }, "value": "response existed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_bf1de20ffe2ebb3a8acf716c79e65222af021f26691dbf5a88029a5c01ae032a", "typeString": "literal_string \"response existed\"" } ], "id": 44565, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2405:7:76", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 44574, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2405:62:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 44575, "nodeType": "ExpressionStatement", "src": "2405:62:76" }, { "expression": { "id": 44581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 44576, "name": "responses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44411, "src": "2481:9:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44579, "indexExpression": { "expression": { "id": 44577, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "2491:3:76", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 44578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2495:6:76", "memberName": "sender", "nodeType": "MemberAccess", "src": "2491:10:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2481:21:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 44580, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44526, "src": "2505:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "src": "2481:29:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 44582, "nodeType": "ExpressionStatement", "src": "2481:29:76" } ] } }, "id": 44615, "nodeType": "IfStatement", "src": "2182:595:76", "trueBody": { "id": 44559, "nodeType": "Block", "src": "2221:121:76", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44548, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 44542, "name": "shares", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44406, "src": "2243:6:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44545, "indexExpression": { "expression": { "id": 44543, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "2250:3:76", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 44544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2254:6:76", "memberName": "sender", "nodeType": "MemberAccess", "src": "2250:10:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2243:18:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 44546, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2262:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "2243:25:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 44547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2272:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2243:30:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "73686172652065786973746564", "id": 44549, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2275:15:76", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f701803b75f5540ca93a0c55d8571e146a316714b765b62a89d49df261c390f0", "typeString": "literal_string \"share existed\"" }, "value": "share existed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f701803b75f5540ca93a0c55d8571e146a316714b765b62a89d49df261c390f0", "typeString": "literal_string \"share existed\"" } ], "id": 44541, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2235:7:76", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 44550, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2235:56:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 44551, "nodeType": "ExpressionStatement", "src": "2235:56:76" }, { "expression": { "id": 44557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 44552, "name": "shares", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44406, "src": "2305:6:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44555, "indexExpression": { "expression": { "id": 44553, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "2312:3:76", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 44554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2316:6:76", "memberName": "sender", "nodeType": "MemberAccess", "src": "2312:10:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2305:18:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 44556, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44526, "src": "2326:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "src": "2305:26:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "id": 44558, "nodeType": "ExpressionStatement", "src": "2305:26:76" } ] } } ] }, "documentation": { "id": 44524, "nodeType": "StructuredDocumentation", "src": "1789:251:76", "text": "Participant publishes their data and depending on the phase the data gets inserted\n in the shares, responses or justifications mapping. Reverts if the participant\n has already published their data for a phase or if the DKG has ended." }, "functionSelector": "7fd28346", "implemented": true, "kind": "function", "modifiers": [ { "id": 44529, "kind": "modifierInvocation", "modifierName": { "id": 44528, "name": "onlyGroupMember", "nameLocations": [ "2093:15:76" ], "nodeType": "IdentifierPath", "referencedDeclaration": 44445, "src": "2093:15:76" }, "nodeType": "ModifierInvocation", "src": "2093:15:76" } ], "name": "publish", "nameLocation": "2054:7:76", "parameters": { "id": 44527, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44526, "mutability": "mutable", "name": "value", "nameLocation": "2077:5:76", "nodeType": "VariableDeclaration", "scope": 44617, "src": "2062:20:76", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 44525, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2062:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "2061:22:76" }, "returnParameters": { "id": 44530, "nodeType": "ParameterList", "parameters": [], "src": "2109:0:76" }, "scope": 44884, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 44662, "nodeType": "FunctionDefinition", "src": "3008:279:76", "nodes": [], "body": { "id": 44661, "nodeType": "Block", "src": "3068:219:76", "nodes": [], "statements": [ { "assignments": [ 44628 ], "declarations": [ { "constant": false, "id": 44628, "mutability": "mutable", "name": "_shares", "nameLocation": "3093:7:76", "nodeType": "VariableDeclaration", "scope": 44661, "src": "3078:22:76", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 44626, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3078:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44627, "nodeType": "ArrayTypeName", "src": "3078:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "id": 44635, "initialValue": { "arguments": [ { "expression": { "id": 44632, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "3115:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44633, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3128:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "3115:19:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 44631, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "3103:11:76", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes memory[] memory)" }, "typeName": { "baseType": { "id": 44629, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3107:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44630, "nodeType": "ArrayTypeName", "src": "3107:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } } }, "id": 44634, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3103:32:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "3078:57:76" }, { "body": { "id": 44657, "nodeType": "Block", "src": "3195:61:76", "statements": [ { "expression": { "id": 44655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 44647, "name": "_shares", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44628, "src": "3209:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "id": 44649, "indexExpression": { "id": 44648, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44637, "src": "3217:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3209:10:76", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 44650, "name": "shares", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44406, "src": "3222:6:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44654, "indexExpression": { "baseExpression": { "id": 44651, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "3229:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44653, "indexExpression": { "id": 44652, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44637, "src": "3242:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3229:15:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3222:23:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "3209:36:76", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 44656, "nodeType": "ExpressionStatement", "src": "3209:36:76" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44640, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44637, "src": "3165:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 44641, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "3169:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3182:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "3169:19:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3165:23:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44658, "initializationExpression": { "assignments": [ 44637 ], "declarations": [ { "constant": false, "id": 44637, "mutability": "mutable", "name": "i", "nameLocation": "3158:1:76", "nodeType": "VariableDeclaration", "scope": 44658, "src": "3150:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44636, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3150:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 44639, "initialValue": { "hexValue": "30", "id": 44638, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3162:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "3150:13:76" }, "loopExpression": { "expression": { "id": 44645, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3190:3:76", "subExpression": { "id": 44644, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44637, "src": "3190:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 44646, "nodeType": "ExpressionStatement", "src": "3190:3:76" }, "nodeType": "ForStatement", "src": "3145:111:76" }, { "expression": { "id": 44659, "name": "_shares", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44628, "src": "3273:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "functionReturnParameters": 44623, "id": 44660, "nodeType": "Return", "src": "3266:14:76" } ] }, "documentation": { "id": 44618, "nodeType": "StructuredDocumentation", "src": "2970:33:76", "text": "Gets the participants' shares" }, "functionSelector": "d73fe0aa", "implemented": true, "kind": "function", "modifiers": [], "name": "getShares", "nameLocation": "3017:9:76", "parameters": { "id": 44619, "nodeType": "ParameterList", "parameters": [], "src": "3026:2:76" }, "returnParameters": { "id": 44623, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44622, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44662, "src": "3052:14:76", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 44620, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3052:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44621, "nodeType": "ArrayTypeName", "src": "3052:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "src": "3051:16:76" }, "scope": 44884, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44707, "nodeType": "FunctionDefinition", "src": "3334:294:76", "nodes": [], "body": { "id": 44706, "nodeType": "Block", "src": "3397:231:76", "nodes": [], "statements": [ { "assignments": [ 44673 ], "declarations": [ { "constant": false, "id": 44673, "mutability": "mutable", "name": "_responses", "nameLocation": "3422:10:76", "nodeType": "VariableDeclaration", "scope": 44706, "src": "3407:25:76", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 44671, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3407:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44672, "nodeType": "ArrayTypeName", "src": "3407:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "id": 44680, "initialValue": { "arguments": [ { "expression": { "id": 44677, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "3447:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3460:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "3447:19:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 44676, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "3435:11:76", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes memory[] memory)" }, "typeName": { "baseType": { "id": 44674, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3439:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44675, "nodeType": "ArrayTypeName", "src": "3439:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } } }, "id": 44679, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3435:32:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "3407:60:76" }, { "body": { "id": 44702, "nodeType": "Block", "src": "3527:67:76", "statements": [ { "expression": { "id": 44700, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 44692, "name": "_responses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44673, "src": "3541:10:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "id": 44694, "indexExpression": { "id": 44693, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44682, "src": "3552:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3541:13:76", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 44695, "name": "responses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44411, "src": "3557:9:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44699, "indexExpression": { "baseExpression": { "id": 44696, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "3567:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44698, "indexExpression": { "id": 44697, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44682, "src": "3580:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3567:15:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3557:26:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "3541:42:76", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 44701, "nodeType": "ExpressionStatement", "src": "3541:42:76" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44688, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44685, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44682, "src": "3497:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 44686, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "3501:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3514:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "3501:19:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3497:23:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44703, "initializationExpression": { "assignments": [ 44682 ], "declarations": [ { "constant": false, "id": 44682, "mutability": "mutable", "name": "i", "nameLocation": "3490:1:76", "nodeType": "VariableDeclaration", "scope": 44703, "src": "3482:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44681, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3482:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 44684, "initialValue": { "hexValue": "30", "id": 44683, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3494:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "3482:13:76" }, "loopExpression": { "expression": { "id": 44690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3522:3:76", "subExpression": { "id": 44689, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44682, "src": "3522:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 44691, "nodeType": "ExpressionStatement", "src": "3522:3:76" }, "nodeType": "ForStatement", "src": "3477:117:76" }, { "expression": { "id": 44704, "name": "_responses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44673, "src": "3611:10:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "functionReturnParameters": 44668, "id": 44705, "nodeType": "Return", "src": "3604:17:76" } ] }, "documentation": { "id": 44663, "nodeType": "StructuredDocumentation", "src": "3293:36:76", "text": "Gets the participants' responses" }, "functionSelector": "cc5ef009", "implemented": true, "kind": "function", "modifiers": [], "name": "getResponses", "nameLocation": "3343:12:76", "parameters": { "id": 44664, "nodeType": "ParameterList", "parameters": [], "src": "3355:2:76" }, "returnParameters": { "id": 44668, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44667, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44707, "src": "3381:14:76", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 44665, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3381:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44666, "nodeType": "ArrayTypeName", "src": "3381:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "src": "3380:16:76" }, "scope": 44884, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44752, "nodeType": "FunctionDefinition", "src": "3680:319:76", "nodes": [], "body": { "id": 44751, "nodeType": "Block", "src": "3748:251:76", "nodes": [], "statements": [ { "assignments": [ 44718 ], "declarations": [ { "constant": false, "id": 44718, "mutability": "mutable", "name": "_justifications", "nameLocation": "3773:15:76", "nodeType": "VariableDeclaration", "scope": 44751, "src": "3758:30:76", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 44716, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3758:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44717, "nodeType": "ArrayTypeName", "src": "3758:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "id": 44725, "initialValue": { "arguments": [ { "expression": { "id": 44722, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "3803:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3816:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "3803:19:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 44721, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "3791:11:76", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes memory[] memory)" }, "typeName": { "baseType": { "id": 44719, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3795:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44720, "nodeType": "ArrayTypeName", "src": "3795:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } } }, "id": 44724, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3791:32:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "3758:65:76" }, { "body": { "id": 44747, "nodeType": "Block", "src": "3883:77:76", "statements": [ { "expression": { "id": 44745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 44737, "name": "_justifications", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44718, "src": "3897:15:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "id": 44739, "indexExpression": { "id": 44738, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44727, "src": "3913:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "3897:18:76", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 44740, "name": "justifications", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44416, "src": "3918:14:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44744, "indexExpression": { "baseExpression": { "id": 44741, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "3933:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44743, "indexExpression": { "id": 44742, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44727, "src": "3946:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3933:15:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3918:31:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "3897:52:76", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 44746, "nodeType": "ExpressionStatement", "src": "3897:52:76" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44730, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44727, "src": "3853:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 44731, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "3857:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44732, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3870:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "3857:19:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3853:23:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44748, "initializationExpression": { "assignments": [ 44727 ], "declarations": [ { "constant": false, "id": 44727, "mutability": "mutable", "name": "i", "nameLocation": "3846:1:76", "nodeType": "VariableDeclaration", "scope": 44748, "src": "3838:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44726, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3838:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 44729, "initialValue": { "hexValue": "30", "id": 44728, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3850:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "3838:13:76" }, "loopExpression": { "expression": { "id": 44735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3878:3:76", "subExpression": { "id": 44734, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44727, "src": "3878:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 44736, "nodeType": "ExpressionStatement", "src": "3878:3:76" }, "nodeType": "ForStatement", "src": "3833:127:76" }, { "expression": { "id": 44749, "name": "_justifications", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44718, "src": "3977:15:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "functionReturnParameters": 44713, "id": 44750, "nodeType": "Return", "src": "3970:22:76" } ] }, "documentation": { "id": 44708, "nodeType": "StructuredDocumentation", "src": "3634:41:76", "text": "Gets the participants' justifications" }, "functionSelector": "b0ef8179", "implemented": true, "kind": "function", "modifiers": [], "name": "getJustifications", "nameLocation": "3689:17:76", "parameters": { "id": 44709, "nodeType": "ParameterList", "parameters": [], "src": "3706:2:76" }, "returnParameters": { "id": 44713, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44712, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44752, "src": "3732:14:76", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 44710, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3732:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44711, "nodeType": "ArrayTypeName", "src": "3732:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "src": "3731:16:76" }, "scope": 44884, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44762, "nodeType": "FunctionDefinition", "src": "4055:104:76", "nodes": [], "body": { "id": 44761, "nodeType": "Block", "src": "4123:36:76", "nodes": [], "statements": [ { "expression": { "id": 44759, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "4140:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 44758, "id": 44760, "nodeType": "Return", "src": "4133:19:76" } ] }, "documentation": { "id": 44753, "nodeType": "StructuredDocumentation", "src": "4005:45:76", "text": "Gets the participants' ethereum addresses" }, "functionSelector": "5aa68ac0", "implemented": true, "kind": "function", "modifiers": [], "name": "getParticipants", "nameLocation": "4064:15:76", "parameters": { "id": 44754, "nodeType": "ParameterList", "parameters": [], "src": "4079:2:76" }, "returnParameters": { "id": 44758, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44757, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44762, "src": "4105:16:76", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 44755, "name": "address", "nodeType": "ElementaryTypeName", "src": "4105:7:76", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 44756, "nodeType": "ArrayTypeName", "src": "4105:9:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "4104:18:76" }, "scope": 44884, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44811, "nodeType": "FunctionDefinition", "src": "4241:297:76", "nodes": [], "body": { "id": 44810, "nodeType": "Block", "src": "4311:227:76", "nodes": [], "statements": [ { "assignments": [ 44775 ], "declarations": [ { "constant": false, "id": 44775, "mutability": "mutable", "name": "_keys", "nameLocation": "4336:5:76", "nodeType": "VariableDeclaration", "scope": 44810, "src": "4321:20:76", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 44773, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4321:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44774, "nodeType": "ArrayTypeName", "src": "4321:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "id": 44782, "initialValue": { "arguments": [ { "expression": { "id": 44779, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "4356:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4369:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "4356:19:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 44778, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "4344:11:76", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes memory[] memory)" }, "typeName": { "baseType": { "id": 44776, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4348:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44777, "nodeType": "ArrayTypeName", "src": "4348:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } } }, "id": 44781, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4344:32:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "4321:55:76" }, { "body": { "id": 44804, "nodeType": "Block", "src": "4436:57:76", "statements": [ { "expression": { "id": 44802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 44794, "name": "_keys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44775, "src": "4450:5:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "id": 44796, "indexExpression": { "id": 44795, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44784, "src": "4456:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4450:8:76", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 44797, "name": "keys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44401, "src": "4461:4:76", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", "typeString": "mapping(address => bytes storage ref)" } }, "id": 44801, "indexExpression": { "baseExpression": { "id": 44798, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "4466:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44800, "indexExpression": { "id": 44799, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44784, "src": "4479:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4466:15:76", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4461:21:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } }, "src": "4450:32:76", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 44803, "nodeType": "ExpressionStatement", "src": "4450:32:76" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44787, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44784, "src": "4406:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 44788, "name": "participants", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44419, "src": "4410:12:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 44789, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4423:6:76", "memberName": "length", "nodeType": "MemberAccess", "src": "4410:19:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4406:23:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44805, "initializationExpression": { "assignments": [ 44784 ], "declarations": [ { "constant": false, "id": 44784, "mutability": "mutable", "name": "i", "nameLocation": "4399:1:76", "nodeType": "VariableDeclaration", "scope": 44805, "src": "4391:9:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44783, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4391:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 44786, "initialValue": { "hexValue": "30", "id": 44785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4403:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "4391:13:76" }, "loopExpression": { "expression": { "id": 44792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "4431:3:76", "subExpression": { "id": 44791, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44784, "src": "4431:1:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 44793, "nodeType": "ExpressionStatement", "src": "4431:3:76" }, "nodeType": "ForStatement", "src": "4386:107:76" }, { "expression": { "components": [ { "id": 44806, "name": "dkgThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44425, "src": "4511:12:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 44807, "name": "_keys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44775, "src": "4525:5:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } } ], "id": 44808, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "4510:21:76", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", "typeString": "tuple(uint256,bytes memory[] memory)" } }, "functionReturnParameters": 44770, "id": 44809, "nodeType": "Return", "src": "4503:28:76" } ] }, "documentation": { "id": 44763, "nodeType": "StructuredDocumentation", "src": "4165:71:76", "text": "Gets the participants' DKG keys along with the thershold of the DKG" }, "functionSelector": "4e3874a0", "implemented": true, "kind": "function", "modifiers": [], "name": "getDkgKeys", "nameLocation": "4250:10:76", "parameters": { "id": 44764, "nodeType": "ParameterList", "parameters": [], "src": "4260:2:76" }, "returnParameters": { "id": 44770, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44766, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44811, "src": "4286:7:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44765, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4286:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 44769, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44811, "src": "4295:14:76", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 44767, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4295:5:76", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 44768, "nodeType": "ArrayTypeName", "src": "4295:7:76", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "src": "4285:25:76" }, "scope": 44884, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 44869, "nodeType": "FunctionDefinition", "src": "4590:738:76", "nodes": [], "body": { "id": 44868, "nodeType": "Block", "src": "4636:692:76", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44817, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44429, "src": "4713:10:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 44818, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4727:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "4713:15:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44823, "nodeType": "IfStatement", "src": "4709:54:76", "trueBody": { "id": 44822, "nodeType": "Block", "src": "4730:33:76", "statements": [ { "expression": { "hexValue": "30", "id": 44820, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4751:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 44816, "id": 44821, "nodeType": "Return", "src": "4744:8:76" } ] } }, { "assignments": [ 44825 ], "declarations": [ { "constant": false, "id": 44825, "mutability": "mutable", "name": "blocksSinceStart", "nameLocation": "4781:16:76", "nodeType": "VariableDeclaration", "scope": 44868, "src": "4773:24:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 44824, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4773:7:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 44830, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 44826, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "4800:5:76", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 44827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4806:6:76", "memberName": "number", "nodeType": "MemberAccess", "src": "4800:12:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 44828, "name": "startBlock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44429, "src": "4815:10:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4800:25:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4773:52:76" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44833, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44831, "name": "blocksSinceStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44825, "src": "4840:16:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "id": 44832, "name": "phaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44422, "src": "4860:13:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4840:33:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44837, "nodeType": "IfStatement", "src": "4836:81:76", "trueBody": { "id": 44836, "nodeType": "Block", "src": "4875:42:76", "statements": [ { "expression": { "hexValue": "31", "id": 44834, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4896:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "functionReturnParameters": 44816, "id": 44835, "nodeType": "Return", "src": "4889:8:76" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44838, "name": "blocksSinceStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44825, "src": "4931:16:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 44839, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4951:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "id": 44840, "name": "phaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44422, "src": "4955:13:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4951:17:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4931:37:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44846, "nodeType": "IfStatement", "src": "4927:88:76", "trueBody": { "id": 44845, "nodeType": "Block", "src": "4970:45:76", "statements": [ { "expression": { "hexValue": "32", "id": 44843, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4991:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "functionReturnParameters": 44816, "id": 44844, "nodeType": "Return", "src": "4984:8:76" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44847, "name": "blocksSinceStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44825, "src": "5029:16:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44850, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "33", "id": 44848, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5049:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "id": 44849, "name": "phaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44422, "src": "5053:13:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5049:17:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5029:37:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44855, "nodeType": "IfStatement", "src": "5025:93:76", "trueBody": { "id": 44854, "nodeType": "Block", "src": "5068:50:76", "statements": [ { "expression": { "hexValue": "33", "id": 44852, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5089:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "functionReturnParameters": 44816, "id": 44853, "nodeType": "Return", "src": "5082:8:76" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44856, "name": "blocksSinceStart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44825, "src": "5131:16:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 44859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "34", "id": 44857, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5151:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "id": 44858, "name": "phaseDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44422, "src": "5155:13:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5151:17:76", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5131:37:76", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 44864, "nodeType": "IfStatement", "src": "5127:113:76", "trueBody": { "id": 44863, "nodeType": "Block", "src": "5170:70:76", "statements": [ { "expression": { "hexValue": "34", "id": 44861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5191:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "functionReturnParameters": 44816, "id": 44862, "nodeType": "Return", "src": "5184:8:76" } ] } }, { "expression": { "id": 44866, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "5319:2:76", "subExpression": { "hexValue": "31", "id": 44865, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5320:1:76", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_1_by_1", "typeString": "int_const -1" } }, "functionReturnParameters": 44816, "id": 44867, "nodeType": "Return", "src": "5312:9:76" } ] }, "documentation": { "id": 44812, "nodeType": "StructuredDocumentation", "src": "4544:41:76", "text": "Returns the current phase of the DKG." }, "functionSelector": "221f9511", "implemented": true, "kind": "function", "modifiers": [], "name": "inPhase", "nameLocation": "4599:7:76", "parameters": { "id": 44813, "nodeType": "ParameterList", "parameters": [], "src": "4606:2:76" }, "returnParameters": { "id": 44816, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 44815, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 44869, "src": "4630:4:76", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int8", "typeString": "int8" }, "typeName": { "id": 44814, "name": "int8", "nodeType": "ElementaryTypeName", "src": "4630:4:76", "typeDescriptions": { "typeIdentifier": "t_int8", "typeString": "int8" } }, "visibility": "internal" } ], "src": "4629:6:76" }, "scope": 44884, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 44883, "nodeType": "FunctionDefinition", "src": "5334:90:76", "nodes": [], "body": { "id": 44882, "nodeType": "Block", "src": "5377:47:76", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 44877, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 32119, "src": "5408:5:76", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 44878, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5408:7:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 44876, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5400:8:76", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { "id": 44875, "name": "address", "nodeType": "ElementaryTypeName", "src": "5400:8:76", "stateMutability": "payable", "typeDescriptions": {} } }, "id": 44879, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5400:16:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 44874, "name": "selfdestruct", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -21, "src": "5387:12:76", "typeDescriptions": { "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, "id": 44880, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5387:30:76", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 44881, "nodeType": "ExpressionStatement", "src": "5387:30:76" } ] }, "functionSelector": "9cb8a26a", "implemented": true, "kind": "function", "modifiers": [ { "id": 44872, "kind": "modifierInvocation", "modifierName": { "id": 44871, "name": "onlyOwner", "nameLocations": [ "5367:9:76" ], "nodeType": "IdentifierPath", "referencedDeclaration": 32110, "src": "5367:9:76" }, "nodeType": "ModifierInvocation", "src": "5367:9:76" } ], "name": "selfDestruct", "nameLocation": "5343:12:76", "parameters": { "id": 44870, "nodeType": "ParameterList", "parameters": [], "src": "5355:2:76" }, "returnParameters": { "id": 44873, "nodeType": "ParameterList", "parameters": [], "src": "5377:0:76" }, "scope": 44884, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 44395, "name": "Ownable", "nameLocations": [ "160:7:76" ], "nodeType": "IdentifierPath", "referencedDeclaration": 32191, "src": "160:7:76" }, "id": 44396, "nodeType": "InheritanceSpecifier", "src": "160:7:76" } ], "canonicalName": "Coordinator", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ 44884, 32191, 34088 ], "name": "Coordinator", "nameLocation": "145:11:76", "scope": 44885, "usedErrors": [] } ], "license": "MIT" }, "id": 76 }