UNPKG

@cartesi/arbitration

Version:
734 lines 185 kB
{ "contractName": "MMInstantiatorTestAux", "sourceName": "contracts/test/MMInstantiatorTestAux.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "FinishedProofs", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "FinishedReplay", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_index", "type": "uint256" }, { "indexed": false, "internalType": "bytes32", "name": "_initialHash", "type": "bytes32" } ], "name": "MemoryCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_index", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "_wasRead", "type": "bool" }, { "indexed": false, "internalType": "uint64", "name": "_position", "type": "uint64" }, { "indexed": false, "internalType": "bytes8", "name": "_value", "type": "bytes8" } ], "name": "ValueProved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_index", "type": "uint256" }, { "indexed": false, "internalType": "uint64", "name": "_position", "type": "uint64" }, { "indexed": false, "internalType": "bytes8", "name": "_value", "type": "bytes8" } ], "name": "ValueRead", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_index", "type": "uint256" }, { "indexed": false, "internalType": "uint64", "name": "_position", "type": "uint64" }, { "indexed": false, "internalType": "bytes8", "name": "_value", "type": "bytes8" } ], "name": "ValueWritten", "type": "event" }, { "inputs": [], "name": "currentIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "finishProofPhase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "finishReplayPhase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "getCurrentState", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "uint256", "name": "_roundDuration", "type": "uint256" }, { "internalType": "uint256", "name": "_timeToStartMachine", "type": "uint256" } ], "name": "getCurrentStateDeadline", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_roundDuration", "type": "uint256" }, { "internalType": "uint256", "name": "_timeToStartMachine", "type": "uint256" } ], "name": "getMaxInstanceDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "getNonce", "outputs": [ { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "getRWArrays", "outputs": [ { "internalType": "uint64[]", "name": "", "type": "uint64[]" }, { "internalType": "bytes8[]", "name": "", "type": "bytes8[]" }, { "internalType": "bool[]", "name": "", "type": "bool[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "getState", "outputs": [ { "internalType": "address", "name": "_provider", "type": "address" }, { "internalType": "bytes32", "name": "_initialHash", "type": "bytes32" }, { "internalType": "bytes32", "name": "_newHash", "type": "bytes32" }, { "internalType": "uint256", "name": "_numberSubmitted", "type": "uint256" }, { "internalType": "bytes32", "name": "_currentState", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "getSubInstances", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "initialHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_provider", "type": "address" }, { "internalType": "bytes32", "name": "_initialHash", "type": "bytes32" } ], "name": "instantiate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "isActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "address", "name": "_user", "type": "address" } ], "name": "isConcerned", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "newHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "uint64", "name": "_position", "type": "uint64" }, { "internalType": "bytes8", "name": "_value", "type": "bytes8" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "proveRead", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "uint64", "name": "_position", "type": "uint64" }, { "internalType": "bytes8", "name": "_oldValue", "type": "bytes8" }, { "internalType": "bytes8", "name": "_newValue", "type": "bytes8" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "proveWrite", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "provider", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "bytes32", "name": "newHash", "type": "bytes32" } ], "name": "setNewHashAtIndex", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "enum MMInterface.state", "name": "toState", "type": "uint8" } ], "name": "setState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "stateIsFinishedReplay", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "stateIsWaitingProofs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "stateIsWaitingReplay", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x60806040526000805534801561001457600080fd5b50611de3806100246000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806384dfd44d116100c3578063ac448b161161007c578063ac448b161461049e578063ade5f41714610567578063c526656c14610584578063d53b22e914610649578063db1de4191461066c578063f154f91d146106955761014d565b806384dfd44d146103135780638a05e47814610336578063906458401461036c578063965ff5bc1461038957806396f429ba146103af578063a9c7a1e6146103cc5761014d565b806343d4b78b1161011557806343d4b78b1461020557806352cc70c6146102225780635748c1301461025b57806373df1612146102785780637d036b0d146102d957806382afd23b146102f65761014d565b806301ff62ab146101525780631c5d3c601461019257806326987b60146101af5780633d46b819146101c95780633ed5d456146101e6575b600080fd5b61017e6004803603604081101561016857600080fd5b50803590602001356001600160a01b0316610790565b604080519115158252519081900360200190f35b61017e600480360360208110156101a857600080fd5b50356107b4565b6101b7610828565b60408051918252519081900360200190f35b6101b7600480360360208110156101df57600080fd5b503561082e565b610203600480360360208110156101fc57600080fd5b50356108d4565b005b61017e6004803603602081101561021b57600080fd5b5035610a55565b61023f6004803603602081101561023857600080fd5b5035610aa3565b604080516001600160a01b039092168252519081900360200190f35b6101b76004803603602081101561027157600080fd5b5035610b0a565b6102a46004803603604081101561028e57600080fd5b50803590602001356001600160a01b0316610c52565b604080516001600160a01b03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b610203600480360360208110156102ef57600080fd5b5035610dd5565b61017e6004803603602081101561030c57600080fd5b5035610f4e565b6101b76004803603604081101561032957600080fd5b5080359060200135610f63565b6101b76004803603606081101561034c57600080fd5b506001600160a01b03813581169160208101359091169060400135610f9f565b6101b76004803603602081101561038257600080fd5b503561105c565b6102036004803603604081101561039f57600080fd5b508035906020013560ff166110bb565b61017e600480360360208110156103c557600080fd5b50356110ec565b610203600480360360a08110156103e257600080fd5b8135916001600160401b03602082013516916001600160c01b0319604083013581169260608101359091169181019060a08101608082013564010000000081111561042c57600080fd5b82018360208201111561043e57600080fd5b8035906020019184602083028401116401000000008311171561046057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061113a945050505050565b610203600480360360808110156104b457600080fd5b8135916001600160401b03602082013516916001600160c01b031960408301351691908101906080810160608201356401000000008111156104f557600080fd5b82018360208201111561050757600080fd5b8035906020019184602083028401116401000000008311171561052957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061155d945050505050565b6101b76004803603602081101561057d57600080fd5b50356118b5565b6105b06004803603604081101561059a57600080fd5b50803590602001356001600160a01b0316611913565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156105f45781810151838201526020016105dc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561063357818101518382015260200161061b565b5050505090500194505050505060405180910390f35b6102036004803603604081101561065f57600080fd5b508035906020013561192e565b6101b76004803603606081101561068257600080fd5b5080359060208101359060400135611945565b6106b2600480360360208110156106ab57600080fd5b50356119b5565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156106fa5781810151838201526020016106e2565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610739578181015183820152602001610721565b50505050905001848103825285818151815260200191508051906020019060200280838360005b83811015610778578181015183820152602001610760565b50505050905001965050505050505060405180910390f35b600091825260036020526040909120600101546001600160a01b0391821691161490565b60008180600054116107fb576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b60005b60008481526003602052604090206005015460ff16600281111561081e57fe5b1491505b50919050565b60005481565b6000818060005411610875576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b61087e81610f4e565b6108c0576040805162461bcd60e51b815260206004820152600e60248201526d496e64657820696e61637469766560901b604482015290519081900360640190fd5b505060009081526002602052604090205490565b808060005411610919576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000828152600360205260409020546001600160a01b0316338114610980576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b6000838152600260205260409020805460010190558261099f81610a55565b6109da5760405162461bcd60e51b8152600401808060200182810382526023815260200180611d6b6023913960400191505060405180910390fd5b60008481526003602052604081206109f791600490910190611c25565b6000848152600360205260409020600501805460ff19166002179055610a1c84611bab565b6040805185815290517feac25e5c6b8f91fcaaec2cbaed6317b8403630d1f793fc32c10fa4731a464e879181900360200190a150505050565b6000818060005411610a9c576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b60016107fe565b6000818060005411610aea576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b50506000908152600360205260409020600101546001600160a01b031690565b6000818060005411610b51576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b60008381526003602052604081206005015460ff166002811115610b7157fe5b1415610b8f576c57616974696e6750726f6f667360981b9150610822565b600160008481526003602052604090206005015460ff166002811115610bb157fe5b1415610bcf576c57616974696e675265706c617960981b9150610822565b600260008481526003602052604090206005015460ff166002811115610bf157fe5b1415610c10576d46696e69736865645265706c617960901b9150610822565b6040805162461bcd60e51b8152602060048201526012602482015271556e7265636f676e697a656420737461746560701b604482015290519081900360640190fd5b6000806000806000868060005411610c9f576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b610ca7611c46565b6000898152600360208181526040808420815160c08101835281546001600160a01b039081168252600183015416818501526002820154818401529381015460608501526004810180548351818602810186019094528084529495919460808701949192909184015b82821015610d71576000848152602090819020604080516060810182529185015460ff81161515835261010081046001600160401b031683850152600160481b900460c01b6001600160c01b03191690820152825260019092019101610d10565b50505090825250600582015460209091019060ff166002811115610d9157fe5b6002811115610d9c57fe5b815250509050806020015181604001518260600151836080015151610dc08d610b0a565b939d929c50909a509850909650945050505050565b808060005411610e1a576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000828152600360205260409020600101546001600160a01b0316338114610e84576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600083815260026020526040812080546001019055839060008581526003602052604090206005015460ff166002811115610ebb57fe5b14610ef75760405162461bcd60e51b815260040180806020018281038252603a815260200180611cfe603a913960400191505060405180910390fd5b600084815260036020908152604091829020600501805460ff19166001179055815186815291517f0b1229d47b7ccd1dde07b4148a6c9336fd9d5fb57cca980e709576e96ae600ed9281900390910190a150505050565b60009081526001602052604090205460ff1690565b600080610f7260008585611bce565b90506000610f8260018686611bce565b90506000610f9260008787611bce565b9190920101949350505050565b60008054815260036020818152604080842080546001600160a01b038981166001600160a01b0319928316178355600183018054918a16919092161790556002810186905592830185905560058301805460ff191690558354815190815291820185905280517f9d7a7145d65060279d0bc06f7f03a791000bbaa9b8a8e75c3c10e2d24348791b9281900390910190a150506000805481526001602081905260408220805460ff19168217905581549081019091555b9392505050565b60008180600054116110a3576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b50506000908152600360208190526040909120015490565b6000828152600360205260409020600501805482919060ff191660018360028111156110e357fe5b02179055505050565b6000818060005411611133576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b60026107fe565b84806000541161117f576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000868152600360205260409020600101546001600160a01b03163381146111e9576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600087815260026020526040812080546001019055879060008981526003602052604090206005015460ff16600281111561122057fe5b1461125c5760405162461bcd60e51b8152600401808060200182810382526034815260200180611ca66034913960400191505060405180910390fd5b600360008981526020019081526020016000206003015473__$c7dbd794b8c7b5c2028db781007df1176e$__638492d93b8989886040518463ffffffff1660e01b815260040180846001600160401b03168152602001836001600160c01b031916815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156112fe5781810151838201526020016112e6565b5050505090500194505050505060206040518083038186803b15801561132357600080fd5b505af4158015611337573d6000803e3d6000fd5b505050506040513d602081101561134d57600080fd5b50511461138b5760405162461bcd60e51b8152600401808060200182810382526024815260200180611cda6024913960400191505060405180910390fd5b604051638492d93b60e01b81526001600160401b038816600482019081526001600160c01b03198716602483015260606044830190815286516064840152865173__$c7dbd794b8c7b5c2028db781007df1176e$__93638492d93b938c938b938b93608401906020808601910280838360005b838110156114165781810151838201526020016113fe565b5050505090500194505050505060206040518083038186803b15801561143b57600080fd5b505af415801561144f573d6000803e3d6000fd5b505050506040513d602081101561146557600080fd5b50516000898152600360208181526040808420928301949094558351606080820186528482526001600160401b03808e168385018181526001600160c01b03198e16858a0181815260049098018054600181018255908a52878a209651960180549251985160c01c600160481b0267ffffffffffffffff60481b19999095166101000268ffffffffffffffff001997151560ff19909416939093179690961691909117969096169190911790925585518e815292830194909452818501529182015290517f912a59309f29407977c171115122b2599e36be67312d6366767f7dbeb3d831ce9181900360800190a15050505050505050565b8380600054116115a2576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000858152600360205260409020600101546001600160a01b031633811461160c576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600086815260026020526040812080546001019055869060008881526003602052604090206005015460ff16600281111561164357fe5b1461167f5760405162461bcd60e51b8152600401808060200182810382526033815260200180611d386033913960400191505060405180910390fd5b600360008881526020019081526020016000206003015473__$c7dbd794b8c7b5c2028db781007df1176e$__638492d93b8888886040518463ffffffff1660e01b815260040180846001600160401b03168152602001836001600160c01b031916815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015611721578181015183820152602001611709565b5050505090500194505050505060206040518083038186803b15801561174657600080fd5b505af415801561175a573d6000803e3d6000fd5b505050506040513d602081101561177057600080fd5b5051146117c4576040805162461bcd60e51b815260206004820152601b60248201527f4d65726b6c652070726f6f6620646f6573206e6f74206d617463680000000000604482015290519081900360640190fd5b600087815260036020908152604080832081516060808201845260018083526001600160401b03808e168488018181526001600160c01b03198f16868901818152600490980180548087018255908c529a8a9020965196909a0180549151975160c01c600160481b0267ffffffffffffffff60481b19989094166101000268ffffffffffffffff001997151560ff19909316929092179690961617959095161790925583518d8152948501919091528383019190915282019290925290517f912a59309f29407977c171115122b2599e36be67312d6366767f7dbeb3d831ce9181900360800190a150505050505050565b60008180600054116118fc576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b505060009081526003602052604090206002015490565b50506040805160008082526020820190815281830190925291565b600091825260036020819052604090922090910155565b600083806000541161198c576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000858152600360205260409020600501546119ac9060ff168585611bce565b95945050505050565b60008181526003602052604090206004018054606091829182919082816001600160401b03811180156119e757600080fd5b50604051908082528060200260200182016040528015611a11578160200160208202803683370190505b5090506060826001600160401b0381118015611a2c57600080fd5b50604051908082528060200260200182016040528015611a56578160200160208202803683370190505b5090506060836001600160401b0381118015611a7157600080fd5b50604051908082528060200260200182016040528015611a9b578160200160208202803683370190505b50905060005b84811015611b9b57858181548110611ab557fe5b9060005260206000200160000160019054906101000a90046001600160401b0316848281518110611ae257fe5b60200260200101906001600160401b031690816001600160401b031681525050858181548110611b0e57fe5b9060005260206000200160000160099054906101000a900460c01b838281518110611b3557fe5b60200260200101906001600160c01b03191690816001600160c01b03191681525050858181548110611b6357fe5b600091825260209091200154825160ff90911690839083908110611b8357fe5b91151560209283029190910190910152600101611aa1565b5091989097509095509350505050565b6000908152600160209081526040808320805460ff191690556002909152812055565b600080846002811115611bdd57fe5b1415611bef5750600282028101611055565b6001846002811115611bfd57fe5b1415611c0a575081611055565b6002846002811115611c1857fe5b1415610c10575081611055565b5080546000825590600052602060002090810190611c439190611c78565b50565b6040805160c081018252600080825260208201819052918101829052606080820183905260808201529060a082015290565b5b80821115611ca157805470ffffffffffffffffffffffffffffffffff19168155600101611c79565b509056fe43757272656e745374617465206973206e6f742057616974696e6750726f6f66732c2063616e6e6f742070726f766557726974654d65726b6c652070726f6f66206f6620777269746520646f6573206e6f74206d6174636843757272656e745374617465206973206e6f742057616974696e6750726f6f66732c2063616e6e6f742066696e69736850726f6f66506861736543757272656e745374617465206973206e6f742057616974696e6750726f6f66732c2063616e6e6f742070726f7665526561645374617465206f66204d4d2073686f756c642062652057616974696e675265706c6179496e646578206e6f7420696e7374616e74696174656400000000000000000000a26469706673582212200e152c5c9b29a883462b536d2a933e8c76afa224326da3e02ac522e51b3bc6bc64736f6c63430007040033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806384dfd44d116100c3578063ac448b161161007c578063ac448b161461049e578063ade5f41714610567578063c526656c14610584578063d53b22e914610649578063db1de4191461066c578063f154f91d146106955761014d565b806384dfd44d146103135780638a05e47814610336578063906458401461036c578063965ff5bc1461038957806396f429ba146103af578063a9c7a1e6146103cc5761014d565b806343d4b78b1161011557806343d4b78b1461020557806352cc70c6146102225780635748c1301461025b57806373df1612146102785780637d036b0d146102d957806382afd23b146102f65761014d565b806301ff62ab146101525780631c5d3c601461019257806326987b60146101af5780633d46b819146101c95780633ed5d456146101e6575b600080fd5b61017e6004803603604081101561016857600080fd5b50803590602001356001600160a01b0316610790565b604080519115158252519081900360200190f35b61017e600480360360208110156101a857600080fd5b50356107b4565b6101b7610828565b60408051918252519081900360200190f35b6101b7600480360360208110156101df57600080fd5b503561082e565b610203600480360360208110156101fc57600080fd5b50356108d4565b005b61017e6004803603602081101561021b57600080fd5b5035610a55565b61023f6004803603602081101561023857600080fd5b5035610aa3565b604080516001600160a01b039092168252519081900360200190f35b6101b76004803603602081101561027157600080fd5b5035610b0a565b6102a46004803603604081101561028e57600080fd5b50803590602001356001600160a01b0316610c52565b604080516001600160a01b03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b610203600480360360208110156102ef57600080fd5b5035610dd5565b61017e6004803603602081101561030c57600080fd5b5035610f4e565b6101b76004803603604081101561032957600080fd5b5080359060200135610f63565b6101b76004803603606081101561034c57600080fd5b506001600160a01b03813581169160208101359091169060400135610f9f565b6101b76004803603602081101561038257600080fd5b503561105c565b6102036004803603604081101561039f57600080fd5b508035906020013560ff166110bb565b61017e600480360360208110156103c557600080fd5b50356110ec565b610203600480360360a08110156103e257600080fd5b8135916001600160401b03602082013516916001600160c01b0319604083013581169260608101359091169181019060a08101608082013564010000000081111561042c57600080fd5b82018360208201111561043e57600080fd5b8035906020019184602083028401116401000000008311171561046057600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061113a945050505050565b610203600480360360808110156104b457600080fd5b8135916001600160401b03602082013516916001600160c01b031960408301351691908101906080810160608201356401000000008111156104f557600080fd5b82018360208201111561050757600080fd5b8035906020019184602083028401116401000000008311171561052957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061155d945050505050565b6101b76004803603602081101561057d57600080fd5b50356118b5565b6105b06004803603604081101561059a57600080fd5b50803590602001356001600160a01b0316611913565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156105f45781810151838201526020016105dc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561063357818101518382015260200161061b565b5050505090500194505050505060405180910390f35b6102036004803603604081101561065f57600080fd5b508035906020013561192e565b6101b76004803603606081101561068257600080fd5b5080359060208101359060400135611945565b6106b2600480360360208110156106ab57600080fd5b50356119b5565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156106fa5781810151838201526020016106e2565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610739578181015183820152602001610721565b50505050905001848103825285818151815260200191508051906020019060200280838360005b83811015610778578181015183820152602001610760565b50505050905001965050505050505060405180910390f35b600091825260036020526040909120600101546001600160a01b0391821691161490565b60008180600054116107fb576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b60005b60008481526003602052604090206005015460ff16600281111561081e57fe5b1491505b50919050565b60005481565b6000818060005411610875576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b61087e81610f4e565b6108c0576040805162461bcd60e51b815260206004820152600e60248201526d496e64657820696e61637469766560901b604482015290519081900360640190fd5b505060009081526002602052604090205490565b808060005411610919576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000828152600360205260409020546001600160a01b0316338114610980576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b6000838152600260205260409020805460010190558261099f81610a55565b6109da5760405162461bcd60e51b8152600401808060200182810382526023815260200180611d6b6023913960400191505060405180910390fd5b60008481526003602052604081206109f791600490910190611c25565b6000848152600360205260409020600501805460ff19166002179055610a1c84611bab565b6040805185815290517feac25e5c6b8f91fcaaec2cbaed6317b8403630d1f793fc32c10fa4731a464e879181900360200190a150505050565b6000818060005411610a9c576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b60016107fe565b6000818060005411610aea576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b50506000908152600360205260409020600101546001600160a01b031690565b6000818060005411610b51576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b60008381526003602052604081206005015460ff166002811115610b7157fe5b1415610b8f576c57616974696e6750726f6f667360981b9150610822565b600160008481526003602052604090206005015460ff166002811115610bb157fe5b1415610bcf576c57616974696e675265706c617960981b9150610822565b600260008481526003602052604090206005015460ff166002811115610bf157fe5b1415610c10576d46696e69736865645265706c617960901b9150610822565b6040805162461bcd60e51b8152602060048201526012602482015271556e7265636f676e697a656420737461746560701b604482015290519081900360640190fd5b6000806000806000868060005411610c9f576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b610ca7611c46565b6000898152600360208181526040808420815160c08101835281546001600160a01b039081168252600183015416818501526002820154818401529381015460608501526004810180548351818602810186019094528084529495919460808701949192909184015b82821015610d71576000848152602090819020604080516060810182529185015460ff81161515835261010081046001600160401b031683850152600160481b900460c01b6001600160c01b03191690820152825260019092019101610d10565b50505090825250600582015460209091019060ff166002811115610d9157fe5b6002811115610d9c57fe5b815250509050806020015181604001518260600151836080015151610dc08d610b0a565b939d929c50909a509850909650945050505050565b808060005411610e1a576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000828152600360205260409020600101546001600160a01b0316338114610e84576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600083815260026020526040812080546001019055839060008581526003602052604090206005015460ff166002811115610ebb57fe5b14610ef75760405162461bcd60e51b815260040180806020018281038252603a815260200180611cfe603a913960400191505060405180910390fd5b600084815260036020908152604091829020600501805460ff19166001179055815186815291517f0b1229d47b7ccd1dde07b4148a6c9336fd9d5fb57cca980e709576e96ae600ed9281900390910190a150505050565b60009081526001602052604090205460ff1690565b600080610f7260008585611bce565b90506000610f8260018686611bce565b90506000610f9260008787611bce565b9190920101949350505050565b60008054815260036020818152604080842080546001600160a01b038981166001600160a01b0319928316178355600183018054918a16919092161790556002810186905592830185905560058301805460ff191690558354815190815291820185905280517f9d7a7145d65060279d0bc06f7f03a791000bbaa9b8a8e75c3c10e2d24348791b9281900390910190a150506000805481526001602081905260408220805460ff19168217905581549081019091555b9392505050565b60008180600054116110a3576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b50506000908152600360208190526040909120015490565b6000828152600360205260409020600501805482919060ff191660018360028111156110e357fe5b02179055505050565b6000818060005411611133576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b60026107fe565b84806000541161117f576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000868152600360205260409020600101546001600160a01b03163381146111e9576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600087815260026020526040812080546001019055879060008981526003602052604090206005015460ff16600281111561122057fe5b1461125c5760405162461bcd60e51b8152600401808060200182810382526034815260200180611ca66034913960400191505060405180910390fd5b600360008981526020019081526020016000206003015473__$c7dbd794b8c7b5c2028db781007df1176e$__638492d93b8989886040518463ffffffff1660e01b815260040180846001600160401b03168152602001836001600160c01b031916815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156112fe5781810151838201526020016112e6565b5050505090500194505050505060206040518083038186803b15801561132357600080fd5b505af4158015611337573d6000803e3d6000fd5b505050506040513d602081101561134d57600080fd5b50511461138b5760405162461bcd60e51b8152600401808060200182810382526024815260200180611cda6024913960400191505060405180910390fd5b604051638492d93b60e01b81526001600160401b038816600482019081526001600160c01b03198716602483015260606044830190815286516064840152865173__$c7dbd794b8c7b5c2028db781007df1176e$__93638492d93b938c938b938b93608401906020808601910280838360005b838110156114165781810151838201526020016113fe565b5050505090500194505050505060206040518083038186803b15801561143b57600080fd5b505af415801561144f573d6000803e3d6000fd5b505050506040513d602081101561146557600080fd5b50516000898152600360208181526040808420928301949094558351606080820186528482526001600160401b03808e168385018181526001600160c01b03198e16858a0181815260049098018054600181018255908a52878a209651960180549251985160c01c600160481b0267ffffffffffffffff60481b19999095166101000268ffffffffffffffff001997151560ff19909416939093179690961691909117969096169190911790925585518e815292830194909452818501529182015290517f912a59309f29407977c171115122b2599e36be67312d6366767f7dbeb3d831ce9181900360800190a15050505050505050565b8380600054116115a2576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000858152600360205260409020600101546001600160a01b031633811461160c576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600086815260026020526040812080546001019055869060008881526003602052604090206005015460ff16600281111561164357fe5b1461167f5760405162461bcd60e51b8152600401808060200182810382526033815260200180611d386033913960400191505060405180910390fd5b600360008881526020019081526020016000206003015473__$c7dbd794b8c7b5c2028db781007df1176e$__638492d93b8888886040518463ffffffff1660e01b815260040180846001600160401b03168152602001836001600160c01b031916815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015611721578181015183820152602001611709565b5050505090500194505050505060206040518083038186803b15801561174657600080fd5b505af415801561175a573d6000803e3d6000fd5b505050506040513d602081101561177057600080fd5b5051146117c4576040805162461bcd60e51b815260206004820152601b60248201527f4d65726b6c652070726f6f6620646f6573206e6f74206d617463680000000000604482015290519081900360640190fd5b600087815260036020908152604080832081516060808201845260018083526001600160401b03808e168488018181526001600160c01b03198f16868901818152600490980180548087018255908c529a8a9020965196909a0180549151975160c01c600160481b0267ffffffffffffffff60481b19989094166101000268ffffffffffffffff001997151560ff19909316929092179690961617959095161790925583518d8152948501919091528383019190915282019290925290517f912a59309f29407977c171115122b2599e36be67312d6366767f7dbeb3d831ce9181900360800190a150505050505050565b60008180600054116118fc576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b505060009081526003602052604090206002015490565b50506040805160008082526020820190815281830190925291565b600091825260036020819052604090922090910155565b600083806000541161198c576040805162461bcd60e51b81526020600482015260166024820152600080516020611d8e833981519152604482015290519081900360640190fd5b6000858152600360205260409020600501546119ac9060ff168585611bce565b95945050505050565b60008181526003602052604090206004018054606091829182919082816001600160401b03811180156119e757600080fd5b50604051908082528060200260200182016040528015611a11578160200160208202803683370190505b5090506060826001600160401b0381118015611a2c57600080fd5b50604051908082528060200260200182016040528015611a56578160200160208202803683370190505b5090506060836001600160401b0381118015611a7157600080fd5b50604051908082528060200260200182016040528015611a9b578160200160208202803683370190505b50905060005b84811015611b9b57858181548110611ab557fe5b9060005260206000200160000160019054906101000a90046001600160401b0316848281518110611ae257fe5b60200260200101906001600160401b031690816001600160401b031681525050858181548110611b0e57fe5b9060005260206000200160000160099054906101000a900460c01b838281518110611b3557fe5b60200260200101906001600160c01b03191690816001600160c01b03191681525050858181548110611b6357fe5b600091825260209091200154825160ff90911690839083908110611b8357fe5b91151560209283029190910190910152600101611aa1565b5091989097509095509350505050565b6000908152600160209081526040808320805460ff191690556002909152812055565b600080846002811115611bdd57fe5b1415611bef5750600282028101611055565b6001846002811115611bfd57fe5b1415611c0a575081611055565b6002846002811115611c1857fe5b1415610c10575081611055565b5080546000825590600052602060002090810190611c439190611c78565b50565b6040805160c081018252600080825260208201819052918101829052606080820183905260808201529060a082015290565b5b80821115611ca157805470ffffffffffffffffffffffffffffffffff19168155600101611c79565b509056fe43757272656e745374617465206973206e6f742057616974696e6750726f6f66732c2063616e6e6f742070726f766557726974654d65726b6c652070726f6f66206f6620777269746520646f6573206e6f74206d6174636843757272656e745374617465206973206e6f742057616974696e6750726f6f66732c2063616e6e6f742066696e69736850726f6f66506861736543757272656e745374617465206973206e6f742057616974696e6750726f6f66732c2063616e6e6f742070726f7665526561645374617465206f66204d4d2073686f756c642062652057616974696e675265706c6179496e646578206e6f7420696e7374616e74696174656400000000000000000000a26469706673582212200e152c5c9b29a883462b536d2a933e8c76afa224326da3e02ac522e51b3bc6bc64736f6c63430007040033", "linkReferences": { "@cartesi/util/contracts/Merkle.sol": { "Merkle": [ { "length": 20, "start": 4761 }, { "length": 20, "start": 5105 }, { "length": 20, "start": 5820 } ] } }, "deployedLinkReferences": { "@cartesi/util/contracts/Merkle.sol": { "Merkle": [ { "length": 20, "start": 4725 }, { "length": 20, "start": 5069 }, { "length": 20, "start": 5784 } ] } }, "devdoc": { "kind": "dev", "methods": { "getMaxInstanceDuration(uint256,uint256)": { "params": { "_timeToStartMachine": "time to build the machine for the first time" } }, "instantiate(address,address,bytes32)": { "params": { "_initialHash": "hash before divergence, in which both client and provider agree.", "_provider": "address that will provide memory values/proofs." }, "returns": { "_0": "MemoryManager index." } }, "proveWrite(uint256,uint64,bytes8,bytes8,bytes32[])": { "params": { "_newValue": "to be written", "_oldValue": "before write", "_position": "to be written", "proof": "The proof that the old value was correct" } } }, "version": 1 }, "evm": { "bytecode": { "generatedSources": [], "linkReferences": { "@cartesi/util/contracts/Merkle.sol": { "Merkle": [ { "length": 20, "start": 4761 }, { "length": 20, "start": 5105 }, { "length": 20, "start": 5820 } ] } }, "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DE3 DUP1 PUSH2 0x24 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84DFD44D GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xAC448B16 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xAC448B16 EQ PUSH2 0x49E JUMPI DUP1 PUSH4 0xADE5F417 EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0xC526656C EQ PUSH2 0x584 JUMPI DUP1 PUSH4 0xD53B22E9 EQ PUSH2 0x649 JUMPI DUP1 PUSH4 0xDB1DE419 EQ PUSH2 0x66C JUMPI DUP1 PUSH4 0xF154F91D EQ PUSH2 0x695 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x84DFD44D EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0x8A05E478 EQ PUSH2 0x336 JUMPI DUP1 PUSH4 0x90645840 EQ PUSH2 0x36C JUMPI DUP1 PUSH4 0x965FF5BC EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0x96F429BA EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0xA9C7A1E6 EQ PUSH2 0x3CC JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x43D4B78B GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x43D4B78B EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x52CC70C6 EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0x5748C130 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0x73DF1612 EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0x7D036B0D EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x82AFD23B EQ PUSH2 0x2F6 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FF62AB EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x1C5D3C60 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x26987B60 EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x3D46B819 EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x3ED5D456 EQ PUSH2 0x1E6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x17E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x7B4 JUMP JUMPDEST PUSH2 0x1B7 PUSH2 0x828 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x82E JUMP JUMPDEST PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x8D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x21B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0xA55 JUMP JUMPDEST PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0xAA3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0xB0A JUMP JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xC52 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP5 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST PUSH2 0x203 PUSH1