@cartesi/devnet 1.8.0 → 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/build/anvil_state.json +1 -1
  2. package/deployments/localhost/ApplicationFactory.json +227 -0
  3. package/deployments/localhost/AuthorityFactory.json +55 -44
  4. package/deployments/localhost/ERC1155BatchPortal.json +26 -26
  5. package/deployments/localhost/ERC1155SinglePortal.json +25 -25
  6. package/deployments/localhost/ERC20Portal.json +35 -23
  7. package/deployments/localhost/ERC721Portal.json +23 -23
  8. package/deployments/localhost/EtherPortal.json +21 -21
  9. package/deployments/localhost/InputBox.json +64 -58
  10. package/deployments/localhost/QuorumFactory.json +188 -0
  11. package/deployments/localhost/SafeERC20Transfer.json +118 -0
  12. package/deployments/localhost/SelfHostedApplicationFactory.json +71 -70
  13. package/deployments/localhost/TestMultiToken.json +18 -18
  14. package/deployments/localhost/TestNFT.json +24 -24
  15. package/deployments/localhost/TestToken.json +28 -28
  16. package/export/abi/localhost.json +234 -602
  17. package/export/artifacts/@openzeppelin/contracts/access/manager/IAccessManager.sol/IAccessManager.json +11 -22
  18. package/export/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json +4 -4
  19. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json +1 -1
  20. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json +1 -1
  21. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json +2 -2
  22. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.json +1 -1
  23. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.json +4 -4
  24. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.json +3 -3
  25. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +4 -4
  26. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol/ERC1155Utils.json +34 -0
  27. package/export/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
  28. package/export/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +1 -1
  29. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json +1 -1
  30. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol/ERC20Pausable.json +2 -2
  31. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol/ERC20Permit.json +3 -3
  32. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +1 -1
  33. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json +1 -1
  34. package/export/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +2 -2
  35. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +4 -4
  36. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +2 -2
  37. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json +2 -2
  38. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +3 -3
  39. package/export/artifacts/@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol/ERC721Utils.json +33 -0
  40. package/export/artifacts/@openzeppelin/contracts/utils/Arrays.sol/Arrays.json +26 -3
  41. package/export/artifacts/@openzeppelin/contracts/utils/Comparators.sol/Comparators.json +34 -0
  42. package/export/artifacts/@openzeppelin/contracts/utils/Panic.sol/Panic.json +65 -0
  43. package/export/artifacts/@openzeppelin/contracts/utils/ShortStrings.sol/ShortStrings.json +2 -2
  44. package/export/artifacts/@openzeppelin/contracts/utils/SlotDerivation.sol/SlotDerivation.json +42 -0
  45. package/export/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +4 -3
  46. package/export/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +3 -2
  47. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +2 -2
  48. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/EIP712.sol/EIP712.json +2 -2
  49. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json +3 -3
  50. package/export/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +1 -1
  51. package/export/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +2 -2
  52. package/export/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +11 -16
  53. package/export/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.json +4 -3
  54. package/export/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +4 -3
  55. package/export/artifacts/@openzeppelin/contracts/utils/types/Time.sol/Time.json +2 -2
  56. package/export/artifacts/contracts/TestMultiToken.sol/TestMultiToken.json +3 -3
  57. package/export/artifacts/contracts/TestNFT.sol/TestNFT.json +4 -4
  58. package/export/artifacts/contracts/TestToken.sol/TestToken.json +3 -3
  59. package/package.json +11 -11
  60. package/deployments/localhost/AuthorityHistoryPairFactory.json +0 -276
  61. package/deployments/localhost/Bitmask.json +0 -44
  62. package/deployments/localhost/CartesiDAppFactory.json +0 -231
  63. package/deployments/localhost/CartesiMathV2.json +0 -213
  64. package/deployments/localhost/DAppAddressRelay.json +0 -102
  65. package/deployments/localhost/HistoryFactory.json +0 -177
  66. package/deployments/localhost/MerkleV2.json +0 -217
  67. package/deployments/localhost/UnrolledCordic.json +0 -54
@@ -0,0 +1,227 @@
1
+ {
2
+ "address": "0xd7d4d184b82b1a4e08f304DDaB0A2A7a301C2620",
3
+ "abi": [
4
+ {
5
+ "anonymous": false,
6
+ "inputs": [
7
+ {
8
+ "indexed": true,
9
+ "internalType": "contract IConsensus",
10
+ "name": "consensus",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "indexed": false,
15
+ "internalType": "address",
16
+ "name": "appOwner",
17
+ "type": "address"
18
+ },
19
+ {
20
+ "indexed": false,
21
+ "internalType": "bytes32",
22
+ "name": "templateHash",
23
+ "type": "bytes32"
24
+ },
25
+ {
26
+ "indexed": false,
27
+ "internalType": "contract IApplication",
28
+ "name": "appContract",
29
+ "type": "address"
30
+ }
31
+ ],
32
+ "name": "ApplicationCreated",
33
+ "type": "event"
34
+ },
35
+ {
36
+ "inputs": [
37
+ {
38
+ "internalType": "contract IConsensus",
39
+ "name": "consensus",
40
+ "type": "address"
41
+ },
42
+ {
43
+ "internalType": "address",
44
+ "name": "appOwner",
45
+ "type": "address"
46
+ },
47
+ {
48
+ "internalType": "bytes32",
49
+ "name": "templateHash",
50
+ "type": "bytes32"
51
+ },
52
+ {
53
+ "internalType": "bytes32",
54
+ "name": "salt",
55
+ "type": "bytes32"
56
+ }
57
+ ],
58
+ "name": "calculateApplicationAddress",
59
+ "outputs": [
60
+ {
61
+ "internalType": "address",
62
+ "name": "",
63
+ "type": "address"
64
+ }
65
+ ],
66
+ "stateMutability": "view",
67
+ "type": "function"
68
+ },
69
+ {
70
+ "inputs": [
71
+ {
72
+ "internalType": "contract IConsensus",
73
+ "name": "consensus",
74
+ "type": "address"
75
+ },
76
+ {
77
+ "internalType": "address",
78
+ "name": "appOwner",
79
+ "type": "address"
80
+ },
81
+ {
82
+ "internalType": "bytes32",
83
+ "name": "templateHash",
84
+ "type": "bytes32"
85
+ },
86
+ {
87
+ "internalType": "bytes32",
88
+ "name": "salt",
89
+ "type": "bytes32"
90
+ }
91
+ ],
92
+ "name": "newApplication",
93
+ "outputs": [
94
+ {
95
+ "internalType": "contract IApplication",
96
+ "name": "",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "stateMutability": "nonpayable",
101
+ "type": "function"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "contract IConsensus",
107
+ "name": "consensus",
108
+ "type": "address"
109
+ },
110
+ {
111
+ "internalType": "address",
112
+ "name": "appOwner",
113
+ "type": "address"
114
+ },
115
+ {
116
+ "internalType": "bytes32",
117
+ "name": "templateHash",
118
+ "type": "bytes32"
119
+ }
120
+ ],
121
+ "name": "newApplication",
122
+ "outputs": [
123
+ {
124
+ "internalType": "contract IApplication",
125
+ "name": "",
126
+ "type": "address"
127
+ }
128
+ ],
129
+ "stateMutability": "nonpayable",
130
+ "type": "function"
131
+ }
132
+ ],
133
+ "transactionHash": "0x1b3fc3ba6f2a7529c210ef0df6f6def366bd9d88ffa444bd90d974f822d47529",
134
+ "receipt": {
135
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
136
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
137
+ "contractAddress": null,
138
+ "transactionIndex": 0,
139
+ "gasUsed": "1288391",
140
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
141
+ "blockHash": "0xb58cc6d30301048cc4fbe36676937fda6418d37fa00cf62eae694fa46a270e88",
142
+ "transactionHash": "0x1b3fc3ba6f2a7529c210ef0df6f6def366bd9d88ffa444bd90d974f822d47529",
143
+ "logs": [],
144
+ "blockNumber": 11,
145
+ "cumulativeGasUsed": "1288391",
146
+ "status": 1,
147
+ "byzantium": true
148
+ },
149
+ "args": [],
150
+ "numDeployments": 1,
151
+ "bytecode": "0x608060405234801561001057600080fd5b50611650806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630e1a07f5146100465780633648bfb514610075578063bd4f121914610088575b600080fd5b6100596100543660046102df565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b610059610083366004610325565b610148565b6100596100963660046102df565b6101ef565b600080828686866040516100ae906102ba565b6001600160a01b03938416815292909116602083015260408201526060018190604051809103906000f59050801580156100ec573d6000803e3d6000fd5b50604080516001600160a01b03888116825260208201889052838116828401529151929350908816917fe73165c2d277daf8713fd08b40845cb6bb7a20b2b543f3d35324a475660fcebd9181900360600190a295945050505050565b60008084848460405161015a906102ba565b6001600160a01b0393841681529290911660208301526040820152606001604051809103906000f080158015610194573d6000803e3d6000fd5b50604080516001600160a01b03878116825260208201879052838116828401529151929350908716917fe73165c2d277daf8713fd08b40845cb6bb7a20b2b543f3d35324a475660fcebd9181900360600190a2949350505050565b60006102738260405180602001610205906102ba565b601f1982820381018352601f9091011660408181526001600160a01b038a811660208401528916908201526060810187905260800160408051601f19818403018152908290526102589291602001610396565b6040516020818303038152906040528051906020012061027c565b95945050505050565b6000610289838330610290565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b611267806103b483390190565b6001600160a01b03811681146102dc57600080fd5b50565b600080600080608085870312156102f557600080fd5b8435610300816102c7565b93506020850135610310816102c7565b93969395505050506040820135916060013590565b60008060006060848603121561033a57600080fd5b8335610345816102c7565b92506020840135610355816102c7565b929592945050506040919091013590565b6000815160005b81811015610387576020818501810151868301520161036d565b50600093019283525090919050565b60006103ab6103a58386610366565b84610366565b94935050505056fe60a060405234801561001057600080fd5b5060405161126738038061126783398101604081905261002f916100fd565b816001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006781610095565b506001805560805250600380546001600160a01b0319166001600160a01b0392909216919091179055610140565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146100fa57600080fd5b50565b60008060006060848603121561011257600080fd5b835161011d816100e5565b602085015190935061012e816100e5565b80925050604084015190509250925092565b60805161110c61015b60003960006101ec015261110c6000f3fe6080604052600436106100e15760003560e01c806371891db01161007f578063e88d39c011610059578063e88d39c014610294578063f23a6e61146102b4578063f2fde38b146102e0578063fc4116831461030057600080fd5b806371891db01461022a5780638da5cb5b1461024a578063bc197c811461026857600080fd5b8063179e740b116100bb578063179e740b1461018857806333137b76146101ba57806361b12c66146101da578063715018a61461021557600080fd5b806301ffc9a7146100ed57806308eb89ab14610122578063150b7a021461014457600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610a6e565b610320565b60405190151581526020015b60405180910390f35b34801561012e57600080fd5b5061014261013d366004610ab0565b610357565b005b34801561015057600080fd5b5061016f61015f366004610bc0565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610119565b34801561019457600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610119565b3480156101c657600080fd5b506101426101d5366004610c2b565b6103be565b3480156101e657600080fd5b506040517f00000000000000000000000000000000000000000000000000000000000000008152602001610119565b34801561022157600080fd5b5061014261059b565b34801561023657600080fd5b5061010d610245366004610cbe565b6105a5565b34801561025657600080fd5b506000546001600160a01b03166101a2565b34801561027457600080fd5b5061016f610283366004610d56565b63bc197c8160e01b95945050505050565b3480156102a057600080fd5b506101426102af366004610c2b565b6105c8565b3480156102c057600080fd5b5061016f6102cf366004610e03565b63f23a6e6160e01b95945050505050565b3480156102ec57600080fd5b506101426102fb366004610e6b565b6105e9565b34801561030c57600080fd5b5061014261031b366004610e6b565b6105f5565b60006001600160e01b03198216630271189760e51b148061035157506301ffc9a760e01b6001600160e01b03198316145b92915050565b61036081610651565b61037d57604051635d2c5e9b60e11b815260040160405180910390fd5b6000610389828461066c565b9050610394816106a5565b6103b95760405163506b919d60e11b8152600481018290526024015b60405180910390fd5b505050565b6103c6610719565b6103d18383836105c8565b60006103e06020830183610e88565b90506004831015610408578383604051636942600f60e11b81526004016103b0929190610eda565b60006104176004828688610ef6565b61042091610f20565b9050366000610432866004818a610ef6565b909250905063dc857e9160e01b6001600160e01b03198416016104a55766ffffffffffffff600885901c16600090815260026020526040902054600160ff86161b1615610496578686604051637b97a6bb60e01b81526004016103b0929190610eda565b6104a08282610743565b61052b565b63efcde17560e01b6001600160e01b031984160161050e5766ffffffffffffff600885901c16600090815260026020526040902054600160ff86161b1615610504578686604051637b97a6bb60e01b81526004016103b0929190610eda565b6104a08282610776565b8686604051636942600f60e11b81526004016103b0929190610eda565b66ffffffffffffff600885901c1660009081526002602052604090208054600160ff87161b1790557fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367684888860405161058693929190610f50565b60405180910390a1505050506103b960018055565b6105a36107a4565b565b600881901c600090815260026020526040812054600160ff84161b161515610351565b6103b983836040516105db929190610f7c565b604051809103902082610357565b6105f2816107b6565b50565b6105fd6107f1565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f4991c6f37185659e276ff918a96f3e20e6c5abcd8c9aab450dc19c2f7ad35cb59060200160405180910390a150565b6000603f6106626020840184610f8c565b9050149050919050565b600061069e61067e6020850185610e88565b6001600160401b0316836106956020870187610f8c565b9092909161081e565b9392505050565b600354604051639618f35b60e01b8152306004820152602481018390526000916001600160a01b031690639618f35b90604401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190610fdc565b60026001540361073c57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b600080606061075484860186610ffe565b9194509250905061076f6001600160a01b03841683836108df565b5050505050565b600060606107868385018561104c565b909250905061079e6001600160a01b03831682610998565b50505050565b6107ac6107f1565b6105a36000610a08565b6107be6107f1565b6001600160a01b0381166107e857604051631e4fbdf760e01b8152600060048201526024016103b0565b6105f281610a08565b6000546001600160a01b031633146105a35760405163118cdaa760e01b81523360048201526024016103b0565b600083815b8181101561088657600087878381811061083f5761083f611091565b905060200201359050856001166000036108685760008581526020829052604090209450610879565b600081815260208690526040902094505b50600194851c9401610823565b5083156108d55760405162461bcd60e51b815260206004820181905260248201527f4c69624d65726b6c6533323a20696e646578206f7574206f6620626f756e647360448201526064016103b0565b5090949350505050565b3080318084111561091c57604051632e2a182f60e11b81526001600160a01b038316600482015260248101859052604481018290526064016103b0565b60006060866001600160a01b0316868660405161093991906110a7565b60006040518083038185875af1925050503d8060008114610976576040519150601f19603f3d011682016040523d82523d6000602084013e61097b565b606091505b5090925090508161098f5761098f81610a58565b50505050505050565b60006060836001600160a01b0316836040516109b491906110a7565b600060405180830381855af49150503d80600081146109ef576040519150601f19603f3d011682016040523d82523d6000602084013e6109f4565b606091505b5090925090508161079e5761079e81610a58565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8051600003610a6657600080fd5b805181602001fd5b600060208284031215610a8057600080fd5b81356001600160e01b03198116811461069e57600080fd5b600060408284031215610aaa57600080fd5b50919050565b60008060408385031215610ac357600080fd5b8235915060208301356001600160401b03811115610ae057600080fd5b610aec85828601610a98565b9150509250929050565b6001600160a01b03811681146105f257600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610b4957610b49610b0b565b604052919050565b600082601f830112610b6257600080fd5b81356001600160401b03811115610b7b57610b7b610b0b565b610b8e601f8201601f1916602001610b21565b818152846020838601011115610ba357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215610bd657600080fd5b8435610be181610af6565b93506020850135610bf181610af6565b92506040850135915060608501356001600160401b03811115610c1357600080fd5b610c1f87828801610b51565b91505092959194509250565b600080600060408486031215610c4057600080fd5b83356001600160401b0380821115610c5757600080fd5b818601915086601f830112610c6b57600080fd5b813581811115610c7a57600080fd5b876020828501011115610c8c57600080fd5b602092830195509350908501359080821115610ca757600080fd5b50610cb486828701610a98565b9150509250925092565b600060208284031215610cd057600080fd5b5035919050565b600082601f830112610ce857600080fd5b813560206001600160401b03821115610d0357610d03610b0b565b8160051b610d12828201610b21565b9283528481018201928281019087851115610d2c57600080fd5b83870192505b84831015610d4b57823582529183019190830190610d32565b979650505050505050565b600080600080600060a08688031215610d6e57600080fd5b8535610d7981610af6565b94506020860135610d8981610af6565b935060408601356001600160401b0380821115610da557600080fd5b610db189838a01610cd7565b94506060880135915080821115610dc757600080fd5b610dd389838a01610cd7565b93506080880135915080821115610de957600080fd5b50610df688828901610b51565b9150509295509295909350565b600080600080600060a08688031215610e1b57600080fd5b8535610e2681610af6565b94506020860135610e3681610af6565b9350604086013592506060860135915060808601356001600160401b03811115610e5f57600080fd5b610df688828901610b51565b600060208284031215610e7d57600080fd5b813561069e81610af6565b600060208284031215610e9a57600080fd5b81356001600160401b038116811461069e57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610eee602083018486610eb1565b949350505050565b60008085851115610f0657600080fd5b83861115610f1357600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610f485780818660040360031b1b83161692505b505092915050565b6001600160401b0384168152604060208201526000610f73604083018486610eb1565b95945050505050565b8183823760009101908152919050565b6000808335601e19843603018112610fa357600080fd5b8301803591506001600160401b03821115610fbd57600080fd5b6020019150600581901b3603821315610fd557600080fd5b9250929050565b600060208284031215610fee57600080fd5b8151801515811461069e57600080fd5b60008060006060848603121561101357600080fd5b833561101e81610af6565b92506020840135915060408401356001600160401b0381111561104057600080fd5b610cb486828701610b51565b6000806040838503121561105f57600080fd5b823561106a81610af6565b915060208301356001600160401b0381111561108557600080fd5b610aec85828601610b51565b634e487b7160e01b600052603260045260246000fd5b6000825160005b818110156110c857602081860181015185830152016110ae565b50600092019182525091905056fea2646970667358221220511351160ca0ea931ac619b1a233d854eabd4c9abf821498d398fbf46225689364736f6c63430008170033a2646970667358221220af45d63b54c4d98ae958a5967f7d22c0e93b62c30ab491bf6f60cf8ed5ff738c64736f6c63430008170033",
152
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630e1a07f5146100465780633648bfb514610075578063bd4f121914610088575b600080fd5b6100596100543660046102df565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b610059610083366004610325565b610148565b6100596100963660046102df565b6101ef565b600080828686866040516100ae906102ba565b6001600160a01b03938416815292909116602083015260408201526060018190604051809103906000f59050801580156100ec573d6000803e3d6000fd5b50604080516001600160a01b03888116825260208201889052838116828401529151929350908816917fe73165c2d277daf8713fd08b40845cb6bb7a20b2b543f3d35324a475660fcebd9181900360600190a295945050505050565b60008084848460405161015a906102ba565b6001600160a01b0393841681529290911660208301526040820152606001604051809103906000f080158015610194573d6000803e3d6000fd5b50604080516001600160a01b03878116825260208201879052838116828401529151929350908716917fe73165c2d277daf8713fd08b40845cb6bb7a20b2b543f3d35324a475660fcebd9181900360600190a2949350505050565b60006102738260405180602001610205906102ba565b601f1982820381018352601f9091011660408181526001600160a01b038a811660208401528916908201526060810187905260800160408051601f19818403018152908290526102589291602001610396565b6040516020818303038152906040528051906020012061027c565b95945050505050565b6000610289838330610290565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b611267806103b483390190565b6001600160a01b03811681146102dc57600080fd5b50565b600080600080608085870312156102f557600080fd5b8435610300816102c7565b93506020850135610310816102c7565b93969395505050506040820135916060013590565b60008060006060848603121561033a57600080fd5b8335610345816102c7565b92506020840135610355816102c7565b929592945050506040919091013590565b6000815160005b81811015610387576020818501810151868301520161036d565b50600093019283525090919050565b60006103ab6103a58386610366565b84610366565b94935050505056fe60a060405234801561001057600080fd5b5060405161126738038061126783398101604081905261002f916100fd565b816001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006781610095565b506001805560805250600380546001600160a01b0319166001600160a01b0392909216919091179055610140565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146100fa57600080fd5b50565b60008060006060848603121561011257600080fd5b835161011d816100e5565b602085015190935061012e816100e5565b80925050604084015190509250925092565b60805161110c61015b60003960006101ec015261110c6000f3fe6080604052600436106100e15760003560e01c806371891db01161007f578063e88d39c011610059578063e88d39c014610294578063f23a6e61146102b4578063f2fde38b146102e0578063fc4116831461030057600080fd5b806371891db01461022a5780638da5cb5b1461024a578063bc197c811461026857600080fd5b8063179e740b116100bb578063179e740b1461018857806333137b76146101ba57806361b12c66146101da578063715018a61461021557600080fd5b806301ffc9a7146100ed57806308eb89ab14610122578063150b7a021461014457600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610a6e565b610320565b60405190151581526020015b60405180910390f35b34801561012e57600080fd5b5061014261013d366004610ab0565b610357565b005b34801561015057600080fd5b5061016f61015f366004610bc0565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610119565b34801561019457600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610119565b3480156101c657600080fd5b506101426101d5366004610c2b565b6103be565b3480156101e657600080fd5b506040517f00000000000000000000000000000000000000000000000000000000000000008152602001610119565b34801561022157600080fd5b5061014261059b565b34801561023657600080fd5b5061010d610245366004610cbe565b6105a5565b34801561025657600080fd5b506000546001600160a01b03166101a2565b34801561027457600080fd5b5061016f610283366004610d56565b63bc197c8160e01b95945050505050565b3480156102a057600080fd5b506101426102af366004610c2b565b6105c8565b3480156102c057600080fd5b5061016f6102cf366004610e03565b63f23a6e6160e01b95945050505050565b3480156102ec57600080fd5b506101426102fb366004610e6b565b6105e9565b34801561030c57600080fd5b5061014261031b366004610e6b565b6105f5565b60006001600160e01b03198216630271189760e51b148061035157506301ffc9a760e01b6001600160e01b03198316145b92915050565b61036081610651565b61037d57604051635d2c5e9b60e11b815260040160405180910390fd5b6000610389828461066c565b9050610394816106a5565b6103b95760405163506b919d60e11b8152600481018290526024015b60405180910390fd5b505050565b6103c6610719565b6103d18383836105c8565b60006103e06020830183610e88565b90506004831015610408578383604051636942600f60e11b81526004016103b0929190610eda565b60006104176004828688610ef6565b61042091610f20565b9050366000610432866004818a610ef6565b909250905063dc857e9160e01b6001600160e01b03198416016104a55766ffffffffffffff600885901c16600090815260026020526040902054600160ff86161b1615610496578686604051637b97a6bb60e01b81526004016103b0929190610eda565b6104a08282610743565b61052b565b63efcde17560e01b6001600160e01b031984160161050e5766ffffffffffffff600885901c16600090815260026020526040902054600160ff86161b1615610504578686604051637b97a6bb60e01b81526004016103b0929190610eda565b6104a08282610776565b8686604051636942600f60e11b81526004016103b0929190610eda565b66ffffffffffffff600885901c1660009081526002602052604090208054600160ff87161b1790557fcad1f361c6e84664e892230291c8e8eb9555683e0a6a5ce8ea7b204ac0ac367684888860405161058693929190610f50565b60405180910390a1505050506103b960018055565b6105a36107a4565b565b600881901c600090815260026020526040812054600160ff84161b161515610351565b6103b983836040516105db929190610f7c565b604051809103902082610357565b6105f2816107b6565b50565b6105fd6107f1565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f4991c6f37185659e276ff918a96f3e20e6c5abcd8c9aab450dc19c2f7ad35cb59060200160405180910390a150565b6000603f6106626020840184610f8c565b9050149050919050565b600061069e61067e6020850185610e88565b6001600160401b0316836106956020870187610f8c565b9092909161081e565b9392505050565b600354604051639618f35b60e01b8152306004820152602481018390526000916001600160a01b031690639618f35b90604401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190610fdc565b60026001540361073c57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b600080606061075484860186610ffe565b9194509250905061076f6001600160a01b03841683836108df565b5050505050565b600060606107868385018561104c565b909250905061079e6001600160a01b03831682610998565b50505050565b6107ac6107f1565b6105a36000610a08565b6107be6107f1565b6001600160a01b0381166107e857604051631e4fbdf760e01b8152600060048201526024016103b0565b6105f281610a08565b6000546001600160a01b031633146105a35760405163118cdaa760e01b81523360048201526024016103b0565b600083815b8181101561088657600087878381811061083f5761083f611091565b905060200201359050856001166000036108685760008581526020829052604090209450610879565b600081815260208690526040902094505b50600194851c9401610823565b5083156108d55760405162461bcd60e51b815260206004820181905260248201527f4c69624d65726b6c6533323a20696e646578206f7574206f6620626f756e647360448201526064016103b0565b5090949350505050565b3080318084111561091c57604051632e2a182f60e11b81526001600160a01b038316600482015260248101859052604481018290526064016103b0565b60006060866001600160a01b0316868660405161093991906110a7565b60006040518083038185875af1925050503d8060008114610976576040519150601f19603f3d011682016040523d82523d6000602084013e61097b565b606091505b5090925090508161098f5761098f81610a58565b50505050505050565b60006060836001600160a01b0316836040516109b491906110a7565b600060405180830381855af49150503d80600081146109ef576040519150601f19603f3d011682016040523d82523d6000602084013e6109f4565b606091505b5090925090508161079e5761079e81610a58565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8051600003610a6657600080fd5b805181602001fd5b600060208284031215610a8057600080fd5b81356001600160e01b03198116811461069e57600080fd5b600060408284031215610aaa57600080fd5b50919050565b60008060408385031215610ac357600080fd5b8235915060208301356001600160401b03811115610ae057600080fd5b610aec85828601610a98565b9150509250929050565b6001600160a01b03811681146105f257600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610b4957610b49610b0b565b604052919050565b600082601f830112610b6257600080fd5b81356001600160401b03811115610b7b57610b7b610b0b565b610b8e601f8201601f1916602001610b21565b818152846020838601011115610ba357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215610bd657600080fd5b8435610be181610af6565b93506020850135610bf181610af6565b92506040850135915060608501356001600160401b03811115610c1357600080fd5b610c1f87828801610b51565b91505092959194509250565b600080600060408486031215610c4057600080fd5b83356001600160401b0380821115610c5757600080fd5b818601915086601f830112610c6b57600080fd5b813581811115610c7a57600080fd5b876020828501011115610c8c57600080fd5b602092830195509350908501359080821115610ca757600080fd5b50610cb486828701610a98565b9150509250925092565b600060208284031215610cd057600080fd5b5035919050565b600082601f830112610ce857600080fd5b813560206001600160401b03821115610d0357610d03610b0b565b8160051b610d12828201610b21565b9283528481018201928281019087851115610d2c57600080fd5b83870192505b84831015610d4b57823582529183019190830190610d32565b979650505050505050565b600080600080600060a08688031215610d6e57600080fd5b8535610d7981610af6565b94506020860135610d8981610af6565b935060408601356001600160401b0380821115610da557600080fd5b610db189838a01610cd7565b94506060880135915080821115610dc757600080fd5b610dd389838a01610cd7565b93506080880135915080821115610de957600080fd5b50610df688828901610b51565b9150509295509295909350565b600080600080600060a08688031215610e1b57600080fd5b8535610e2681610af6565b94506020860135610e3681610af6565b9350604086013592506060860135915060808601356001600160401b03811115610e5f57600080fd5b610df688828901610b51565b600060208284031215610e7d57600080fd5b813561069e81610af6565b600060208284031215610e9a57600080fd5b81356001600160401b038116811461069e57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610eee602083018486610eb1565b949350505050565b60008085851115610f0657600080fd5b83861115610f1357600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610f485780818660040360031b1b83161692505b505092915050565b6001600160401b0384168152604060208201526000610f73604083018486610eb1565b95945050505050565b8183823760009101908152919050565b6000808335601e19843603018112610fa357600080fd5b8301803591506001600160401b03821115610fbd57600080fd5b6020019150600581901b3603821315610fd557600080fd5b9250929050565b600060208284031215610fee57600080fd5b8151801515811461069e57600080fd5b60008060006060848603121561101357600080fd5b833561101e81610af6565b92506020840135915060408401356001600160401b0381111561104057600080fd5b610cb486828701610b51565b6000806040838503121561105f57600080fd5b823561106a81610af6565b915060208301356001600160401b0381111561108557600080fd5b610aec85828601610b51565b634e487b7160e01b600052603260045260246000fd5b6000825160005b818110156110c857602081860181015185830152016110ae565b50600092019182525091905056fea2646970667358221220511351160ca0ea931ac619b1a233d854eabd4c9abf821498d398fbf46225689364736f6c63430008170033a2646970667358221220af45d63b54c4d98ae958a5967f7d22c0e93b62c30ab491bf6f60cf8ed5ff738c64736f6c63430008170033",
153
+ "devdoc": {
154
+ "events": {
155
+ "ApplicationCreated(address,address,bytes32,address)": {
156
+ "details": "MUST be triggered on a successful call to `newApplication`.",
157
+ "params": {
158
+ "appContract": "The application contract",
159
+ "appOwner": "The initial application owner",
160
+ "consensus": "The initial consensus contract",
161
+ "templateHash": "The initial machine state hash"
162
+ }
163
+ }
164
+ },
165
+ "kind": "dev",
166
+ "methods": {
167
+ "calculateApplicationAddress(address,address,bytes32,bytes32)": {
168
+ "details": "Beware that only the `newApplication` function with the `salt` parameter is able to deterministically deploy an application.",
169
+ "params": {
170
+ "appOwner": "The initial application owner",
171
+ "consensus": "The initial consensus contract",
172
+ "salt": "The salt used to deterministically generate the application contract address",
173
+ "templateHash": "The initial machine state hash"
174
+ },
175
+ "returns": {
176
+ "_0": "The deterministic application contract address"
177
+ }
178
+ },
179
+ "newApplication(address,address,bytes32)": {
180
+ "details": "On success, MUST emit an `ApplicationCreated` event.Reverts if the application owner address is zero.",
181
+ "params": {
182
+ "appOwner": "The initial application owner",
183
+ "consensus": "The initial consensus contract",
184
+ "templateHash": "The initial machine state hash"
185
+ },
186
+ "returns": {
187
+ "_0": "The application"
188
+ }
189
+ },
190
+ "newApplication(address,address,bytes32,bytes32)": {
191
+ "details": "On success, MUST emit an `ApplicationCreated` event.Reverts if the application owner address is zero.",
192
+ "params": {
193
+ "appOwner": "The initial application owner",
194
+ "consensus": "The initial consensus contract",
195
+ "salt": "The salt used to deterministically generate the application contract address",
196
+ "templateHash": "The initial machine state hash"
197
+ },
198
+ "returns": {
199
+ "_0": "The application"
200
+ }
201
+ }
202
+ },
203
+ "title": "Application Factory",
204
+ "version": 1
205
+ },
206
+ "userdoc": {
207
+ "events": {
208
+ "ApplicationCreated(address,address,bytes32,address)": {
209
+ "notice": "A new application was deployed."
210
+ }
211
+ },
212
+ "kind": "user",
213
+ "methods": {
214
+ "calculateApplicationAddress(address,address,bytes32,bytes32)": {
215
+ "notice": "Calculate the address of an application contract to be deployed deterministically."
216
+ },
217
+ "newApplication(address,address,bytes32)": {
218
+ "notice": "Deploy a new application."
219
+ },
220
+ "newApplication(address,address,bytes32,bytes32)": {
221
+ "notice": "Deploy a new application deterministically."
222
+ }
223
+ },
224
+ "notice": "Allows anyone to reliably deploy a new `IApplication` contract.",
225
+ "version": 1
226
+ }
227
+ }
@@ -1,18 +1,12 @@
1
1
  {
2
- "address": "0xf26a5b278C25D8D41A136d22Ad719EACEd9c3e63",
2
+ "address": "0xB897F7Fe78f220aE34B7FA9493092701a873Ed45",
3
3
  "abi": [
4
4
  {
5
5
  "anonymous": false,
6
6
  "inputs": [
7
7
  {
8
8
  "indexed": false,
9
- "internalType": "address",
10
- "name": "authorityOwner",
11
- "type": "address"
12
- },
13
- {
14
- "indexed": false,
15
- "internalType": "contract Authority",
9
+ "internalType": "contract IAuthority",
16
10
  "name": "authority",
17
11
  "type": "address"
18
12
  }
@@ -24,12 +18,17 @@
24
18
  "inputs": [
25
19
  {
26
20
  "internalType": "address",
27
- "name": "_authorityOwner",
21
+ "name": "authorityOwner",
28
22
  "type": "address"
29
23
  },
24
+ {
25
+ "internalType": "uint256",
26
+ "name": "epochLength",
27
+ "type": "uint256"
28
+ },
30
29
  {
31
30
  "internalType": "bytes32",
32
- "name": "_salt",
31
+ "name": "salt",
33
32
  "type": "bytes32"
34
33
  }
35
34
  ],
@@ -48,19 +47,19 @@
48
47
  "inputs": [
49
48
  {
50
49
  "internalType": "address",
51
- "name": "_authorityOwner",
50
+ "name": "authorityOwner",
52
51
  "type": "address"
53
52
  },
54
53
  {
55
- "internalType": "bytes32",
56
- "name": "_salt",
57
- "type": "bytes32"
54
+ "internalType": "uint256",
55
+ "name": "epochLength",
56
+ "type": "uint256"
58
57
  }
59
58
  ],
60
59
  "name": "newAuthority",
61
60
  "outputs": [
62
61
  {
63
- "internalType": "contract Authority",
62
+ "internalType": "contract IAuthority",
64
63
  "name": "",
65
64
  "type": "address"
66
65
  }
@@ -72,14 +71,24 @@
72
71
  "inputs": [
73
72
  {
74
73
  "internalType": "address",
75
- "name": "_authorityOwner",
74
+ "name": "authorityOwner",
76
75
  "type": "address"
76
+ },
77
+ {
78
+ "internalType": "uint256",
79
+ "name": "epochLength",
80
+ "type": "uint256"
81
+ },
82
+ {
83
+ "internalType": "bytes32",
84
+ "name": "salt",
85
+ "type": "bytes32"
77
86
  }
78
87
  ],
79
88
  "name": "newAuthority",
80
89
  "outputs": [
81
90
  {
82
- "internalType": "contract Authority",
91
+ "internalType": "contract IAuthority",
83
92
  "name": "",
84
93
  "type": "address"
85
94
  }
@@ -88,62 +97,64 @@
88
97
  "type": "function"
89
98
  }
90
99
  ],
91
- "transactionHash": "0x3f07891bb9d2726e0531ef5c44ef5e7ac08a462a33eb4a8e9d3bf55b373dc87c",
100
+ "transactionHash": "0x27cbbca3d8b18e593214fb29bd00a9608b8c8558cabedf6f0ed1c46108e0834c",
92
101
  "receipt": {
93
102
  "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
94
103
  "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
95
104
  "contractAddress": null,
96
105
  "transactionIndex": 0,
97
- "gasUsed": "756894",
106
+ "gasUsed": "532228",
98
107
  "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
99
- "blockHash": "0x7a20ba3da18d9e81622b72eac79ba98895e8bfb4f5053e311da159095484c49c",
100
- "transactionHash": "0x3f07891bb9d2726e0531ef5c44ef5e7ac08a462a33eb4a8e9d3bf55b373dc87c",
108
+ "blockHash": "0xaaa55ae6abdfac09cb990eefd52cd041fe28caa7ee143fc52ec39cec89a98b38",
109
+ "transactionHash": "0x27cbbca3d8b18e593214fb29bd00a9608b8c8558cabedf6f0ed1c46108e0834c",
101
110
  "logs": [],
102
- "blockNumber": 14,
103
- "cumulativeGasUsed": "756894",
111
+ "blockNumber": 9,
112
+ "cumulativeGasUsed": "532228",
104
113
  "status": 1,
105
114
  "byzantium": true
106
115
  },
107
116
  "args": [],
108
117
  "numDeployments": 1,
109
- "bytecode": "0x608060405234801561001057600080fd5b50610cb5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100405760003560e01c80629c5784146100455780635a3f27d314610074578063b3a51b8414610087575b600080fd5b610058610053366004610288565b61009a565b6040516001600160a01b03909116815260200160405180910390f35b610058610082366004610288565b610115565b6100586100953660046102b2565b6101a4565b600061010e82604051806020016100b09061025f565b601f1982820381018352601f9091011660408181526001600160a01b03881660208301520160408051601f19818403018152908290526100f392916020016102fd565b6040516020818303038152906040528051906020012061022d565b9392505050565b60008082846040516101269061025f565b6001600160a01b0390911681526020018190604051809103906000f5905080158015610156573d6000803e3d6000fd5b50604080516001600160a01b038088168252831660208201529192507f0fb2d916aa6a78060ff9e89d89d62797c6668818dec04969013c5098754380ec910160405180910390a19392505050565b600080826040516101b49061025f565b6001600160a01b039091168152602001604051809103906000f0801580156101e0573d6000803e3d6000fd5b50604080516001600160a01b038087168252831660208201529192507f0fb2d916aa6a78060ff9e89d89d62797c6668818dec04969013c5098754380ec910160405180910390a192915050565b600061010e8383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6109658061031b83390190565b80356001600160a01b038116811461028357600080fd5b919050565b6000806040838503121561029b57600080fd5b6102a48361026c565b946020939093013593505050565b6000602082840312156102c457600080fd5b61010e8261026c565b6000815160005b818110156102ee57602081850181015186830152016102d4565b50600093019283525090919050565b600061031261030c83866102cd565b846102cd565b94935050505056fe608060405234801561001057600080fd5b5060405161096538038061096583398101604081905261002f91610181565b61003833610057565b336001600160a01b0382161461005157610051816100a7565b506101b1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100af610125565b6001600160a01b0381166101195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61012281610057565b50565b6000546001600160a01b0316331461017f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610110565b565b60006020828403121561019357600080fd5b81516001600160a01b03811681146101aa57600080fd5b9392505050565b6107a5806101c06000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063b688a36311610066578063b688a3631461010e578063bcdd1e1314610116578063d79a824014610129578063ddfdfbb014610157578063f2fde38b1461016a57600080fd5b8063159c5ea1146100a3578063715018a6146100b85780638da5cb5b146100c05780639368a3d3146100ea578063aa15efc8146100fd575b600080fd5b6100b66100b1366004610567565b61017d565b005b6100b66101d9565b6000546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6100b66100f8366004610567565b6101ed565b6001546001600160a01b03166100cd565b6100b6610257565b6100b661012436600461058b565b61028c565b61013c610137366004610615565b610331565b604080519384526020840192909252908201526060016100e1565b6100b661016536600461066a565b6103ba565b6100b6610178366004610567565b61042a565b6101856104a8565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f2bcd43869347a1d42f97ac6042f3d129817abd05a6125f9750fe3724e321d23e9060200160405180910390a150565b6101e16104a8565b6101eb6000610502565b565b6101f56104a8565b60015460405163fc41168360e01b81526001600160a01b0383811660048301529091169063fc41168390602401600060405180830381600087803b15801561023c57600080fd5b505af1158015610250573d6000803e3d6000fd5b5050505050565b6040513381527f27c2b702d3bff195a18baca2daf00b20a986177c5f1449af4e2d46a3c3e02ce59060200160405180910390a1565b6102946104a8565b60405163a9059cbb60e01b81526001600160a01b038381166004830152602482018390526000919085169063a9059cbb906044016020604051808303816000875af11580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b91906106ac565b90508061032b5760405163099e1ca760e11b815260040160405180910390fd5b50505050565b60015460405163035e6a0960e61b8152600091829182916001600160a01b03169063d79a82409061036a908990899089906004016106f7565b606060405180830381865afa158015610387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ab9190610725565b92509250925093509350939050565b6103c26104a8565b600154604051630ddfdfbb60e41b81526001600160a01b039091169063ddfdfbb0906103f49085908590600401610753565b600060405180830381600087803b15801561040e57600080fd5b505af1158015610422573d6000803e3d6000fd5b505050505050565b6104326104a8565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6104a581610502565b50565b6000546001600160a01b031633146101eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610493565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146104a557600080fd5b60006020828403121561057957600080fd5b813561058481610552565b9392505050565b6000806000606084860312156105a057600080fd5b83356105ab81610552565b925060208401356105bb81610552565b929592945050506040919091013590565b60008083601f8401126105de57600080fd5b50813567ffffffffffffffff8111156105f657600080fd5b60208301915083602082850101111561060e57600080fd5b9250929050565b60008060006040848603121561062a57600080fd5b833561063581610552565b9250602084013567ffffffffffffffff81111561065157600080fd5b61065d868287016105cc565b9497909650939450505050565b6000806020838503121561067d57600080fd5b823567ffffffffffffffff81111561069457600080fd5b6106a0858286016105cc565b90969095509350505050565b6000602082840312156106be57600080fd5b8151801515811461058457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061071c90830184866106ce565b95945050505050565b60008060006060848603121561073a57600080fd5b8351925060208401519150604084015190509250925092565b6020815260006107676020830184866106ce565b94935050505056fea2646970667358221220c0785a1cc37ffa8f096145bce62f62d9cae719c200dba5e33a279c7f0894965164736f6c63430008130033a26469706673582212202de7e9a1b007ca2f3a7a6c53b2972dc3f889e83efde5ce289389b45306e1fe7864736f6c63430008130033",
110
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100405760003560e01c80629c5784146100455780635a3f27d314610074578063b3a51b8414610087575b600080fd5b610058610053366004610288565b61009a565b6040516001600160a01b03909116815260200160405180910390f35b610058610082366004610288565b610115565b6100586100953660046102b2565b6101a4565b600061010e82604051806020016100b09061025f565b601f1982820381018352601f9091011660408181526001600160a01b03881660208301520160408051601f19818403018152908290526100f392916020016102fd565b6040516020818303038152906040528051906020012061022d565b9392505050565b60008082846040516101269061025f565b6001600160a01b0390911681526020018190604051809103906000f5905080158015610156573d6000803e3d6000fd5b50604080516001600160a01b038088168252831660208201529192507f0fb2d916aa6a78060ff9e89d89d62797c6668818dec04969013c5098754380ec910160405180910390a19392505050565b600080826040516101b49061025f565b6001600160a01b039091168152602001604051809103906000f0801580156101e0573d6000803e3d6000fd5b50604080516001600160a01b038087168252831660208201529192507f0fb2d916aa6a78060ff9e89d89d62797c6668818dec04969013c5098754380ec910160405180910390a192915050565b600061010e8383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6109658061031b83390190565b80356001600160a01b038116811461028357600080fd5b919050565b6000806040838503121561029b57600080fd5b6102a48361026c565b946020939093013593505050565b6000602082840312156102c457600080fd5b61010e8261026c565b6000815160005b818110156102ee57602081850181015186830152016102d4565b50600093019283525090919050565b600061031261030c83866102cd565b846102cd565b94935050505056fe608060405234801561001057600080fd5b5060405161096538038061096583398101604081905261002f91610181565b61003833610057565b336001600160a01b0382161461005157610051816100a7565b506101b1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100af610125565b6001600160a01b0381166101195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61012281610057565b50565b6000546001600160a01b0316331461017f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610110565b565b60006020828403121561019357600080fd5b81516001600160a01b03811681146101aa57600080fd5b9392505050565b6107a5806101c06000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063b688a36311610066578063b688a3631461010e578063bcdd1e1314610116578063d79a824014610129578063ddfdfbb014610157578063f2fde38b1461016a57600080fd5b8063159c5ea1146100a3578063715018a6146100b85780638da5cb5b146100c05780639368a3d3146100ea578063aa15efc8146100fd575b600080fd5b6100b66100b1366004610567565b61017d565b005b6100b66101d9565b6000546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6100b66100f8366004610567565b6101ed565b6001546001600160a01b03166100cd565b6100b6610257565b6100b661012436600461058b565b61028c565b61013c610137366004610615565b610331565b604080519384526020840192909252908201526060016100e1565b6100b661016536600461066a565b6103ba565b6100b6610178366004610567565b61042a565b6101856104a8565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f2bcd43869347a1d42f97ac6042f3d129817abd05a6125f9750fe3724e321d23e9060200160405180910390a150565b6101e16104a8565b6101eb6000610502565b565b6101f56104a8565b60015460405163fc41168360e01b81526001600160a01b0383811660048301529091169063fc41168390602401600060405180830381600087803b15801561023c57600080fd5b505af1158015610250573d6000803e3d6000fd5b5050505050565b6040513381527f27c2b702d3bff195a18baca2daf00b20a986177c5f1449af4e2d46a3c3e02ce59060200160405180910390a1565b6102946104a8565b60405163a9059cbb60e01b81526001600160a01b038381166004830152602482018390526000919085169063a9059cbb906044016020604051808303816000875af11580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b91906106ac565b90508061032b5760405163099e1ca760e11b815260040160405180910390fd5b50505050565b60015460405163035e6a0960e61b8152600091829182916001600160a01b03169063d79a82409061036a908990899089906004016106f7565b606060405180830381865afa158015610387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ab9190610725565b92509250925093509350939050565b6103c26104a8565b600154604051630ddfdfbb60e41b81526001600160a01b039091169063ddfdfbb0906103f49085908590600401610753565b600060405180830381600087803b15801561040e57600080fd5b505af1158015610422573d6000803e3d6000fd5b505050505050565b6104326104a8565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6104a581610502565b50565b6000546001600160a01b031633146101eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610493565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146104a557600080fd5b60006020828403121561057957600080fd5b813561058481610552565b9392505050565b6000806000606084860312156105a057600080fd5b83356105ab81610552565b925060208401356105bb81610552565b929592945050506040919091013590565b60008083601f8401126105de57600080fd5b50813567ffffffffffffffff8111156105f657600080fd5b60208301915083602082850101111561060e57600080fd5b9250929050565b60008060006040848603121561062a57600080fd5b833561063581610552565b9250602084013567ffffffffffffffff81111561065157600080fd5b61065d868287016105cc565b9497909650939450505050565b6000806020838503121561067d57600080fd5b823567ffffffffffffffff81111561069457600080fd5b6106a0858286016105cc565b90969095509350505050565b6000602082840312156106be57600080fd5b8151801515811461058457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061071c90830184866106ce565b95945050505050565b60008060006060848603121561073a57600080fd5b8351925060208401519150604084015190509250925092565b6020815260006107676020830184866106ce565b94935050505056fea2646970667358221220c0785a1cc37ffa8f096145bce62f62d9cae719c200dba5e33a279c7f0894965164736f6c63430008130033a26469706673582212202de7e9a1b007ca2f3a7a6c53b2972dc3f889e83efde5ce289389b45306e1fe7864736f6c63430008130033",
118
+ "bytecode": "0x608060405234801561001057600080fd5b506108a8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631442f7bb1461004657806393d7217c14610075578063ec99266814610088575b600080fd5b61005961005436600461029d565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b6100596100833660046102d0565b61011e565b61005961009636600461029d565b6101a7565b600061011682604051806020016100b190610274565b601f1982820381018352601f9091011660408181526001600160a01b0389166020830152810187905260600160408051601f19818403018152908290526100fb929160200161032a565b60405160208183030381529060405280519060200120610236565b949350505050565b600080838360405161012f90610274565b6001600160a01b0390921682526020820152604001604051809103906000f080158015610160573d6000803e3d6000fd5b506040516001600160a01b03821681529091507fdca1fad70bee4ba7a4e17a1c6e99e657d2251af7a279124758bc01588abe2d2f9060200160405180910390a19392505050565b6000808285856040516101b990610274565b6001600160a01b03909216825260208201526040018190604051809103906000f59050801580156101ee573d6000803e3d6000fd5b506040516001600160a01b03821681529091507fdca1fad70bee4ba7a4e17a1c6e99e657d2251af7a279124758bc01588abe2d2f9060200160405180910390a1949350505050565b600061024383833061024a565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6105338061034083390190565b80356001600160a01b038116811461029857600080fd5b919050565b6000806000606084860312156102b257600080fd5b6102bb84610281565b95602085013595506040909401359392505050565b600080604083850312156102e357600080fd5b6102ec83610281565b946020939093013593505050565b6000815160005b8181101561031b5760208185018101518683015201610301565b50600093019283525090919050565b600061011661033983866102fa565b846102fa56fe60a060405234801561001057600080fd5b5060405161053338038061053383398101604081905261002f91610116565b8181600081116100865760405162461bcd60e51b815260206004820152601d60248201527f65706f6368206c656e677468206d757374206e6f74206265207a65726f00000060448201526064015b60405180910390fd5b6080526001600160a01b0381166100b357604051631e4fbdf760e01b81526000600482015260240161007d565b6100bc816100c4565b505050610150565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806040838503121561012957600080fd5b82516001600160a01b038116811461014057600080fd5b6020939093015192949293505050565b6080516103c961016a600039600060f501526103c96000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80636470af0014610067578063715018a61461007c5780638da5cb5b146100845780639618f35b146100a9578063cfe8a73b146100f0578063f2fde38b1461011e575b600080fd5b61007a610075366004610314565b610131565b005b61007a61018f565b61008c610199565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e06100b7366004610347565b6001600160a01b0391909116600090815260208181526040808320938352929052205460ff1690565b60405190151581526020016100a0565b6040517f000000000000000000000000000000000000000000000000000000000000000081526020016100a0565b61007a61012c366004610371565b6101b2565b6101396101be565b60408051838152602081018390526001600160a01b0385169133917ff5a28e07a1b89d1ca3f9a2a7ef16bd650503a4791baf2e70dc401c21ee505f0a910160405180910390a361018a8383836101f5565b505050565b61019761025d565b565b60006101ad6001546001600160a01b031690565b905090565b6101bb8161026f565b50565b336101c7610199565b6001600160a01b0316146101975760405163118cdaa760e01b81523360048201526024015b60405180910390fd5b6001600160a01b038316600081815260208181526040808320858452825291829020805460ff1916600117905581518581529081018490527fd3e4892959c6ddb27e02bcaaebc0c1898d0f677b7360bf80339f10a8717957d3910160405180910390a2505050565b6102656101be565b61019760006102a6565b6102776101be565b6001600160a01b0381166102a157604051631e4fbdf760e01b8152600060048201526024016101ec565b6101bb815b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b038116811461030f57600080fd5b919050565b60008060006060848603121561032957600080fd5b610332846102f8565b95602085013595506040909401359392505050565b6000806040838503121561035a57600080fd5b610363836102f8565b946020939093013593505050565b60006020828403121561038357600080fd5b61038c826102f8565b939250505056fea2646970667358221220fdfd7afacb990763bde79c74a424d800d5b6d84b9946a046eab3844941271e9864736f6c63430008170033a2646970667358221220cea85fc9e89ea5b4ed137a747c8c035c923896b73e090001968db6647ef1226864736f6c63430008170033",
119
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80631442f7bb1461004657806393d7217c14610075578063ec99266814610088575b600080fd5b61005961005436600461029d565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b6100596100833660046102d0565b61011e565b61005961009636600461029d565b6101a7565b600061011682604051806020016100b190610274565b601f1982820381018352601f9091011660408181526001600160a01b0389166020830152810187905260600160408051601f19818403018152908290526100fb929160200161032a565b60405160208183030381529060405280519060200120610236565b949350505050565b600080838360405161012f90610274565b6001600160a01b0390921682526020820152604001604051809103906000f080158015610160573d6000803e3d6000fd5b506040516001600160a01b03821681529091507fdca1fad70bee4ba7a4e17a1c6e99e657d2251af7a279124758bc01588abe2d2f9060200160405180910390a19392505050565b6000808285856040516101b990610274565b6001600160a01b03909216825260208201526040018190604051809103906000f59050801580156101ee573d6000803e3d6000fd5b506040516001600160a01b03821681529091507fdca1fad70bee4ba7a4e17a1c6e99e657d2251af7a279124758bc01588abe2d2f9060200160405180910390a1949350505050565b600061024383833061024a565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6105338061034083390190565b80356001600160a01b038116811461029857600080fd5b919050565b6000806000606084860312156102b257600080fd5b6102bb84610281565b95602085013595506040909401359392505050565b600080604083850312156102e357600080fd5b6102ec83610281565b946020939093013593505050565b6000815160005b8181101561031b5760208185018101518683015201610301565b50600093019283525090919050565b600061011661033983866102fa565b846102fa56fe60a060405234801561001057600080fd5b5060405161053338038061053383398101604081905261002f91610116565b8181600081116100865760405162461bcd60e51b815260206004820152601d60248201527f65706f6368206c656e677468206d757374206e6f74206265207a65726f00000060448201526064015b60405180910390fd5b6080526001600160a01b0381166100b357604051631e4fbdf760e01b81526000600482015260240161007d565b6100bc816100c4565b505050610150565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806040838503121561012957600080fd5b82516001600160a01b038116811461014057600080fd5b6020939093015192949293505050565b6080516103c961016a600039600060f501526103c96000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80636470af0014610067578063715018a61461007c5780638da5cb5b146100845780639618f35b146100a9578063cfe8a73b146100f0578063f2fde38b1461011e575b600080fd5b61007a610075366004610314565b610131565b005b61007a61018f565b61008c610199565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e06100b7366004610347565b6001600160a01b0391909116600090815260208181526040808320938352929052205460ff1690565b60405190151581526020016100a0565b6040517f000000000000000000000000000000000000000000000000000000000000000081526020016100a0565b61007a61012c366004610371565b6101b2565b6101396101be565b60408051838152602081018390526001600160a01b0385169133917ff5a28e07a1b89d1ca3f9a2a7ef16bd650503a4791baf2e70dc401c21ee505f0a910160405180910390a361018a8383836101f5565b505050565b61019761025d565b565b60006101ad6001546001600160a01b031690565b905090565b6101bb8161026f565b50565b336101c7610199565b6001600160a01b0316146101975760405163118cdaa760e01b81523360048201526024015b60405180910390fd5b6001600160a01b038316600081815260208181526040808320858452825291829020805460ff1916600117905581518581529081018490527fd3e4892959c6ddb27e02bcaaebc0c1898d0f677b7360bf80339f10a8717957d3910160405180910390a2505050565b6102656101be565b61019760006102a6565b6102776101be565b6001600160a01b0381166102a157604051631e4fbdf760e01b8152600060048201526024016101ec565b6101bb815b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b038116811461030f57600080fd5b919050565b60008060006060848603121561032957600080fd5b610332846102f8565b95602085013595506040909401359392505050565b6000806040838503121561035a57600080fd5b610363836102f8565b946020939093013593505050565b60006020828403121561038357600080fd5b61038c826102f8565b939250505056fea2646970667358221220fdfd7afacb990763bde79c74a424d800d5b6d84b9946a046eab3844941271e9864736f6c63430008170033a2646970667358221220cea85fc9e89ea5b4ed137a747c8c035c923896b73e090001968db6647ef1226864736f6c63430008170033",
111
120
  "devdoc": {
112
121
  "events": {
113
- "AuthorityCreated(address,address)": {
122
+ "AuthorityCreated(address)": {
114
123
  "details": "MUST be triggered on a successful call to `newAuthority`.",
115
124
  "params": {
116
- "authority": "The authority",
117
- "authorityOwner": "The initial authority owner"
125
+ "authority": "The authority"
118
126
  }
119
127
  }
120
128
  },
121
129
  "kind": "dev",
122
130
  "methods": {
123
- "calculateAuthorityAddress(address,bytes32)": {
124
- "details": "Beware that only the `newAuthority` function with the `_salt` parameter is able to deterministically deploy an authority.",
131
+ "calculateAuthorityAddress(address,uint256,bytes32)": {
132
+ "details": "Beware that only the `newAuthority` function with the `salt` parameter is able to deterministically deploy an authority.",
125
133
  "params": {
126
- "_authorityOwner": "The initial authority owner",
127
- "_salt": "The salt used to deterministically generate the authority address"
134
+ "authorityOwner": "The initial authority owner",
135
+ "epochLength": "The epoch length",
136
+ "salt": "The salt used to deterministically generate the authority address"
128
137
  },
129
138
  "returns": {
130
139
  "_0": "The deterministic authority address"
131
140
  }
132
141
  },
133
- "newAuthority(address)": {
134
- "details": "On success, MUST emit an `AuthorityCreated` event.",
142
+ "newAuthority(address,uint256)": {
143
+ "details": "On success, MUST emit an `AuthorityCreated` event.Reverts if the authority owner address is zero.Reverts if the epoch length is zero.",
135
144
  "params": {
136
- "_authorityOwner": "The initial authority owner"
145
+ "authorityOwner": "The initial authority owner",
146
+ "epochLength": "The epoch length"
137
147
  },
138
148
  "returns": {
139
149
  "_0": "The authority"
140
150
  }
141
151
  },
142
- "newAuthority(address,bytes32)": {
143
- "details": "On success, MUST emit an `AuthorityCreated` event.",
152
+ "newAuthority(address,uint256,bytes32)": {
153
+ "details": "On success, MUST emit an `AuthorityCreated` event.Reverts if the authority owner address is zero.Reverts if the epoch length is zero.",
144
154
  "params": {
145
- "_authorityOwner": "The initial authority owner",
146
- "_salt": "The salt used to deterministically generate the authority address"
155
+ "authorityOwner": "The initial authority owner",
156
+ "epochLength": "The epoch length",
157
+ "salt": "The salt used to deterministically generate the authority address"
147
158
  },
148
159
  "returns": {
149
160
  "_0": "The authority"
@@ -155,23 +166,23 @@
155
166
  },
156
167
  "userdoc": {
157
168
  "events": {
158
- "AuthorityCreated(address,address)": {
169
+ "AuthorityCreated(address)": {
159
170
  "notice": "A new authority was deployed."
160
171
  }
161
172
  },
162
173
  "kind": "user",
163
174
  "methods": {
164
- "calculateAuthorityAddress(address,bytes32)": {
175
+ "calculateAuthorityAddress(address,uint256,bytes32)": {
165
176
  "notice": "Calculate the address of an authority to be deployed deterministically."
166
177
  },
167
- "newAuthority(address)": {
178
+ "newAuthority(address,uint256)": {
168
179
  "notice": "Deploy a new authority."
169
180
  },
170
- "newAuthority(address,bytes32)": {
181
+ "newAuthority(address,uint256,bytes32)": {
171
182
  "notice": "Deploy a new authority deterministically."
172
183
  }
173
184
  },
174
- "notice": "Allows anyone to reliably deploy a new `Authority` contract.",
185
+ "notice": "Allows anyone to reliably deploy a new `IAuthority` contract.",
175
186
  "version": 1
176
187
  }
177
188
  }