@cartesi/devnet 1.6.0

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 (76) hide show
  1. package/LICENSE +202 -0
  2. package/build/anvil_state.json +1 -0
  3. package/deployments/localhost/.chainId +1 -0
  4. package/deployments/localhost/AuthorityFactory.json +177 -0
  5. package/deployments/localhost/AuthorityHistoryPairFactory.json +276 -0
  6. package/deployments/localhost/Bitmask.json +44 -0
  7. package/deployments/localhost/CartesiDAppFactory.json +231 -0
  8. package/deployments/localhost/CartesiMathV2.json +213 -0
  9. package/deployments/localhost/DAppAddressRelay.json +102 -0
  10. package/deployments/localhost/ERC1155BatchPortal.json +133 -0
  11. package/deployments/localhost/ERC1155SinglePortal.json +132 -0
  12. package/deployments/localhost/ERC20Portal.json +120 -0
  13. package/deployments/localhost/ERC721Portal.json +126 -0
  14. package/deployments/localhost/EtherPortal.json +121 -0
  15. package/deployments/localhost/HistoryFactory.json +177 -0
  16. package/deployments/localhost/InputBox.json +207 -0
  17. package/deployments/localhost/MerkleV2.json +217 -0
  18. package/deployments/localhost/SelfHostedApplicationFactory.json +226 -0
  19. package/deployments/localhost/TestMultiToken.json +829 -0
  20. package/deployments/localhost/TestNFT.json +891 -0
  21. package/deployments/localhost/TestToken.json +1079 -0
  22. package/deployments/localhost/UnrolledCordic.json +54 -0
  23. package/dist/deploy/01_token.js +15 -0
  24. package/dist/deploy/02_nft.js +15 -0
  25. package/dist/deploy/03_multitoken.js +15 -0
  26. package/dist/src/tasks/deploy-anvil.d.ts +6 -0
  27. package/dist/src/tasks/deploy-anvil.d.ts.map +1 -0
  28. package/dist/src/tasks/deploy-anvil.js +38 -0
  29. package/export/abi/localhost.json +3205 -0
  30. package/export/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +128 -0
  31. package/export/artifacts/@openzeppelin/contracts/access/manager/AccessManaged.sol/AccessManaged.json +137 -0
  32. package/export/artifacts/@openzeppelin/contracts/access/manager/AuthorityUtils.sol/AuthorityUtils.json +32 -0
  33. package/export/artifacts/@openzeppelin/contracts/access/manager/IAccessManaged.sol/IAccessManaged.json +133 -0
  34. package/export/artifacts/@openzeppelin/contracts/access/manager/IAccessManager.sol/IAccessManager.json +1251 -0
  35. package/export/artifacts/@openzeppelin/contracts/access/manager/IAuthority.sol/IAuthority.json +60 -0
  36. package/export/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json +401 -0
  37. package/export/artifacts/@openzeppelin/contracts/interfaces/IERC5267.sol/IERC5267.json +84 -0
  38. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json +190 -0
  39. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json +165 -0
  40. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json +197 -0
  41. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.json +553 -0
  42. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.json +362 -0
  43. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.json +156 -0
  44. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +385 -0
  45. package/export/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +436 -0
  46. package/export/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +242 -0
  47. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json +472 -0
  48. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol/ERC20Pausable.json +502 -0
  49. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol/ERC20Permit.json +695 -0
  50. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +293 -0
  51. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json +114 -0
  52. package/export/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +595 -0
  53. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +363 -0
  54. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +66 -0
  55. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json +630 -0
  56. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +421 -0
  57. package/export/artifacts/@openzeppelin/contracts/utils/Arrays.sol/Arrays.json +38 -0
  58. package/export/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +24 -0
  59. package/export/artifacts/@openzeppelin/contracts/utils/Nonces.sol/Nonces.json +73 -0
  60. package/export/artifacts/@openzeppelin/contracts/utils/Pausable.sol/Pausable.json +103 -0
  61. package/export/artifacts/@openzeppelin/contracts/utils/ShortStrings.sol/ShortStrings.json +55 -0
  62. package/export/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +40 -0
  63. package/export/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +62 -0
  64. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +84 -0
  65. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/EIP712.sol/EIP712.json +105 -0
  66. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json +36 -0
  67. package/export/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +50 -0
  68. package/export/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +50 -0
  69. package/export/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +65 -0
  70. package/export/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.json +173 -0
  71. package/export/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +36 -0
  72. package/export/artifacts/@openzeppelin/contracts/utils/types/Time.sol/Time.json +41 -0
  73. package/export/artifacts/contracts/TestMultiToken.sol/TestMultiToken.json +750 -0
  74. package/export/artifacts/contracts/TestNFT.sol/TestNFT.json +779 -0
  75. package/export/artifacts/contracts/TestToken.sol/TestToken.json +963 -0
  76. package/package.json +41 -0
@@ -0,0 +1,231 @@
1
+ {
2
+ "address": "0x7122cd1221C20892234186facfE8615e6743Ab02",
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": "dappOwner",
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 CartesiDApp",
28
+ "name": "application",
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": "_dappOwner",
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": "_dappOwner",
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 CartesiDApp",
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": "_dappOwner",
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 CartesiDApp",
125
+ "name": "",
126
+ "type": "address"
127
+ }
128
+ ],
129
+ "stateMutability": "nonpayable",
130
+ "type": "function"
131
+ }
132
+ ],
133
+ "transactionHash": "0xc6530dea50d7fdd0591d9f9d119fdf75efb85c9dd48107fd209bd02f95262b3b",
134
+ "receipt": {
135
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
136
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
137
+ "contractAddress": null,
138
+ "transactionIndex": 0,
139
+ "gasUsed": "1546312",
140
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
141
+ "blockHash": "0x1ce9ccf44b60f3680bdb1a3a4599af6254996a4f645284129d73a8336637a103",
142
+ "transactionHash": "0xc6530dea50d7fdd0591d9f9d119fdf75efb85c9dd48107fd209bd02f95262b3b",
143
+ "logs": [],
144
+ "blockNumber": 17,
145
+ "cumulativeGasUsed": "1546312",
146
+ "status": 1,
147
+ "byzantium": true
148
+ },
149
+ "args": [],
150
+ "numDeployments": 1,
151
+ "bytecode": "0x608060405234801561001057600080fd5b50611af9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630e1a07f5146100465780633648bfb514610075578063bd4f121914610088575b600080fd5b6100596100543660046102df565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b610059610083366004610325565b610148565b6100596100963660046102df565b6101ef565b600080828686866040516100ae906102ba565b6001600160a01b03938416815292909116602083015260408201526060018190604051809103906000f59050801580156100ec573d6000803e3d6000fd5b50604080516001600160a01b03888116825260208201889052838116828401529151929350908816917fe73165c2d277daf8713fd08b40845cb6bb7a20b2b543f3d35324a475660fcebd9181900360600190a295945050505050565b60008084848460405161015a906102ba565b6001600160a01b0393841681529290911660208301526040820152606001604051809103906000f080158015610194573d6000803e3d6000fd5b50604080516001600160a01b03878116825260208201879052838116828401529151929350908716917fe73165c2d277daf8713fd08b40845cb6bb7a20b2b543f3d35324a475660fcebd9181900360600190a2949350505050565b60006102738260405180602001610205906102ba565b601f1982820381018352601f9091011660408181526001600160a01b038a811660208401528916908201526060810187905260800160408051601f19818403018152908290526102589291602001610396565b6040516020818303038152906040528051906020012061027c565b95945050505050565b6000610289838330610290565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b611710806103b483390190565b6001600160a01b03811681146102dc57600080fd5b50565b600080600080608085870312156102f557600080fd5b8435610300816102c7565b93506020850135610310816102c7565b93969395505050506040820135916060013590565b60008060006060848603121561033a57600080fd5b8335610345816102c7565b92506020840135610355816102c7565b929592945050506040919091013590565b6000815160005b81811015610387576020818501810151868301520161036d565b50600093019283525090919050565b60006103ab6103a58386610366565b84610366565b94935050505056fe60a06040523480156200001157600080fd5b506040516200171038038062001710833981016040819052620000349162000212565b6200003f33620000cb565b600180556200004e826200011b565b6080819052600380546001600160a01b0319166001600160a01b0385169081179091556040805163b688a36360e01b8152905163b688a3639160048082019260009290919082900301818387803b158015620000a957600080fd5b505af1158015620000be573d6000803e3d6000fd5b505050505050506200025a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001256200019e565b6001600160a01b038116620001905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6200019b81620000cb565b50565b6000546001600160a01b03163314620001fa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000187565b565b6001600160a01b03811681146200019b57600080fd5b6000806000606084860312156200022857600080fd5b83516200023581620001fc565b60208501519093506200024881620001fc565b80925050604084015190509250925092565b60805161149a6200027660003960006101ec015261149a6000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063bc197c8111610059578063bc197c8114610288578063f23a6e61146102b4578063f2fde38b146102e0578063fc4116831461030057600080fd5b80638da5cb5b1461022a57806396487d46146102485780639d9b11451461026857600080fd5b8063179e740b116100bb578063179e740b14610186578063522f6815146101b857806361b12c66146101da578063715018a61461021557600080fd5b806301ffc9a7146100ed5780631250482f14610122578063150b7a021461014257600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610d2a565b610320565b60405190151581526020015b60405180910390f35b34801561012e57600080fd5b5061010d61013d366004610dd0565b610357565b34801561014e57600080fd5b5061016d61015d366004610f00565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610119565b34801561019257600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610119565b3480156101c457600080fd5b506101d86101d3366004610f5f565b61053c565b005b3480156101e657600080fd5b506040517f00000000000000000000000000000000000000000000000000000000000000008152602001610119565b34801561022157600080fd5b506101d86105d5565b34801561023657600080fd5b506000546001600160a01b03166101a0565b34801561025457600080fd5b5061010d610263366004610f8b565b6105e9565b34801561027457600080fd5b5061010d610283366004610ff3565b61063a565b34801561029457600080fd5b5061016d6102a3366004611094565b63bc197c8160e01b95945050505050565b3480156102c057600080fd5b5061016d6102cf366004611141565b63f23a6e6160e01b95945050505050565b3480156102ec57600080fd5b506101d86102fb3660046111a9565b61064c565b34801561030c57600080fd5b506101d861031b3660046111a9565b6106ca565b60006001600160e01b03198216630271189760e51b148061035157506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061036161077f565b600080808061037b61037660208801886111c6565b6107d8565b919550935091506103988383610391898061120c565b919061085f565b90506103b4898989876103ab8b8061120c565b939291906108a5565b60006103e86103c3888061120c565b6103d490604081019060200161122c565b6001600160401b03168360809190911b1790565b90506103f3816108da565b15610411576040516370de22b760e01b815260040160405180910390fd5b60008a6001600160a01b03168a8a60405161042d929190611255565b6000604051808303816000865af19150503d806000811461046a576040519150601f19603f3d011682016040523d82523d6000602084013e61046f565b606091505b505090508015610524576040516306449da160e41b815260026004820152602481018390526001604482015273F5B2d8c81cDE4D6238bBf20D3D77DB37df13f73590636449da109060640160006040518083038186803b1580156104d257600080fd5b505af41580156104e6573d6000803e3d6000fd5b505050507f0eb7ee080f865f1cadc4f54daf58cc3b8879e888832867d13351edcec0fbdc548260405161051b91815260200190565b60405180910390a15b9550505050505061053460018055565b949350505050565b33301461055c5760405163a08d601d60e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146105a9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ae565b606091505b50509050806105d057604051630ce8f45160e31b815260040160405180910390fd5b505050565b6105dd610958565b6105e760006109b2565b565b60008080806105fe61037660208701876111c6565b919450925090506106148282610391888061120c565b5061062d878785610625898061120c565b929190610a02565b5060019695505050505050565b6000608082901b8317610534816108da565b610654610958565b6001600160a01b0381166106be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6106c7816109b2565b50565b6106d2610958565b600380546001600160a01b0319166001600160a01b0383169081179091556040805163b688a36360e01b8152905163b688a3639160048082019260009290919082900301818387803b15801561072757600080fd5b505af115801561073b573d6000803e3d6000fd5b50506040516001600160a01b03841681527f4991c6f37185659e276ff918a96f3e20e6c5abcd8c9aab450dc19c2f7ad35cb59250602001905060405180910390a150565b6002600154036107d15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106b5565b6002600155565b60035460405163035e6a0960e61b8152600091829182916001600160a01b03169063d79a8240906108119030908990899060040161128e565b606060405180830381865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085291906112bc565b9250925092509250925092565b60008061086f602086018661122c565b610882906001600160401b0316856112ea565b9050828111156105345760405163fd9ae91f60e01b815260040160405180910390fd5b60006108b2858585610a29565b90506108d2868284606083013560255b6001600160401b03166015610a58565b505050505050565b6040516303fbaf7360e01b8152600260048201526024810182905260009073F5B2d8c81cDE4D6238bBf20D3D77DB37df13f735906303fbaf7390604401602060405180830381865af4158015610934573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610351919061130b565b6000546001600160a01b031633146105e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610a0e8484610cfe565b9050610a22858284608083013560256108c2565b5050505050565b6060838383604051602001610a409392919061128e565b60405160208183030381529060405290509392505050565b6040805160608089013560208301526080808a01359383019390935260a0890135908201528591016040516020818303038152906040528051906020012014610ab457604051636fbd3b7160e11b815260040160405180910390fd5b827333436035441927Df1a73FE3AAC5906854632e53d6379de4601610af0610adf60208b018b61122c565b60051b681fffffffffffffffe01690565b60058660408c0135610b0560e08e018e61132d565b6040518763ffffffff1660e01b8152600401610b2696959493929190611376565b602060405180830381865af4158015610b43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6791906113d9565b14610b8557604051634371daa160e11b815260040160405180910390fd5b60007333436035441927Df1a73FE3AAC5906854632e53d63c84583a18780519060200120604051602001610bbb91815260200190565b60408051601f19818403018152908290526001600160e01b031960e084901b168252610bec916005906004016113f2565b602060405180830381865af4158015610c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2d91906113d9565b905086604001357333436035441927Df1a73FE3AAC5906854632e53d6379de4601610c648a6020016020810190610adf919061122c565b60058686610c7560c08f018f61132d565b6040518763ffffffff1660e01b8152600401610c9696959493929190611376565b602060405180830381865af4158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd791906113d9565b14610cf55760405163017c689560e61b815260040160405180910390fd5b50505050505050565b60608282604051602001610d13929190611450565b604051602081830303815290604052905092915050565b600060208284031215610d3c57600080fd5b81356001600160e01b031981168114610d5457600080fd5b9392505050565b6001600160a01b03811681146106c757600080fd5b60008083601f840112610d8257600080fd5b5081356001600160401b03811115610d9957600080fd5b602083019150836020828501011115610db157600080fd5b9250929050565b600060408284031215610dca57600080fd5b50919050565b60008060008060608587031215610de657600080fd5b8435610df181610d5b565b935060208501356001600160401b0380821115610e0d57600080fd5b610e1988838901610d70565b90955093506040870135915080821115610e3257600080fd5b50610e3f87828801610db8565b91505092959194509250565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610e8957610e89610e4b565b604052919050565b600082601f830112610ea257600080fd5b81356001600160401b03811115610ebb57610ebb610e4b565b610ece601f8201601f1916602001610e61565b818152846020838601011115610ee357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215610f1657600080fd5b8435610f2181610d5b565b93506020850135610f3181610d5b565b92506040850135915060608501356001600160401b03811115610f5357600080fd5b610e3f87828801610e91565b60008060408385031215610f7257600080fd5b8235610f7d81610d5b565b946020939093013593505050565b600080600060408486031215610fa057600080fd5b83356001600160401b0380821115610fb757600080fd5b610fc387838801610d70565b90955093506020860135915080821115610fdc57600080fd5b50610fe986828701610db8565b9150509250925092565b6000806040838503121561100657600080fd5b50508035926020909101359150565b600082601f83011261102657600080fd5b813560206001600160401b0382111561104157611041610e4b565b8160051b611050828201610e61565b928352848101820192828101908785111561106a57600080fd5b83870192505b8483101561108957823582529183019190830190611070565b979650505050505050565b600080600080600060a086880312156110ac57600080fd5b85356110b781610d5b565b945060208601356110c781610d5b565b935060408601356001600160401b03808211156110e357600080fd5b6110ef89838a01611015565b9450606088013591508082111561110557600080fd5b61111189838a01611015565b9350608088013591508082111561112757600080fd5b5061113488828901610e91565b9150509295509295909350565b600080600080600060a0868803121561115957600080fd5b853561116481610d5b565b9450602086013561117481610d5b565b9350604086013592506060860135915060808601356001600160401b0381111561119d57600080fd5b61113488828901610e91565b6000602082840312156111bb57600080fd5b8135610d5481610d5b565b6000808335601e198436030181126111dd57600080fd5b8301803591506001600160401b038211156111f757600080fd5b602001915036819003821315610db157600080fd5b6000823560fe1983360301811261122257600080fd5b9190910192915050565b60006020828403121561123e57600080fd5b81356001600160401b0381168114610d5457600080fd5b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906112b39083018486611265565b95945050505050565b6000806000606084860312156112d157600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561035157634e487b7160e01b600052601160045260246000fd5b60006020828403121561131d57600080fd5b81518015158114610d5457600080fd5b6000808335601e1984360301811261134457600080fd5b8301803591506001600160401b0382111561135e57600080fd5b6020019150600581901b3603821315610db157600080fd5b6001600160401b03878116825286166020820152604081018590526060810184905260a060808201819052810182905260006001600160fb1b038311156113bc57600080fd5b8260051b808560c08501379190910160c001979650505050505050565b6000602082840312156113eb57600080fd5b5051919050565b604081526000835180604084015260005b818110156114205760208187018101516060868401015201611403565b506000606082850101526060601f19601f8301168401019150506001600160401b03831660208301529392505050565b60208152600061053460208301848661126556fea2646970667358221220981835fbbf44aedaeb41e0c0c9001ffe55187a0b5606db0cdbf7500fc7c5e30e64736f6c63430008130033a2646970667358221220a12c770ef21751c306949fd9ed57ed453446a67f2dfb1d63d08c918461eca99764736f6c63430008130033",
152
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630e1a07f5146100465780633648bfb514610075578063bd4f121914610088575b600080fd5b6100596100543660046102df565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b610059610083366004610325565b610148565b6100596100963660046102df565b6101ef565b600080828686866040516100ae906102ba565b6001600160a01b03938416815292909116602083015260408201526060018190604051809103906000f59050801580156100ec573d6000803e3d6000fd5b50604080516001600160a01b03888116825260208201889052838116828401529151929350908816917fe73165c2d277daf8713fd08b40845cb6bb7a20b2b543f3d35324a475660fcebd9181900360600190a295945050505050565b60008084848460405161015a906102ba565b6001600160a01b0393841681529290911660208301526040820152606001604051809103906000f080158015610194573d6000803e3d6000fd5b50604080516001600160a01b03878116825260208201879052838116828401529151929350908716917fe73165c2d277daf8713fd08b40845cb6bb7a20b2b543f3d35324a475660fcebd9181900360600190a2949350505050565b60006102738260405180602001610205906102ba565b601f1982820381018352601f9091011660408181526001600160a01b038a811660208401528916908201526060810187905260800160408051601f19818403018152908290526102589291602001610396565b6040516020818303038152906040528051906020012061027c565b95945050505050565b6000610289838330610290565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b611710806103b483390190565b6001600160a01b03811681146102dc57600080fd5b50565b600080600080608085870312156102f557600080fd5b8435610300816102c7565b93506020850135610310816102c7565b93969395505050506040820135916060013590565b60008060006060848603121561033a57600080fd5b8335610345816102c7565b92506020840135610355816102c7565b929592945050506040919091013590565b6000815160005b81811015610387576020818501810151868301520161036d565b50600093019283525090919050565b60006103ab6103a58386610366565b84610366565b94935050505056fe60a06040523480156200001157600080fd5b506040516200171038038062001710833981016040819052620000349162000212565b6200003f33620000cb565b600180556200004e826200011b565b6080819052600380546001600160a01b0319166001600160a01b0385169081179091556040805163b688a36360e01b8152905163b688a3639160048082019260009290919082900301818387803b158015620000a957600080fd5b505af1158015620000be573d6000803e3d6000fd5b505050505050506200025a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001256200019e565b6001600160a01b038116620001905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6200019b81620000cb565b50565b6000546001600160a01b03163314620001fa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000187565b565b6001600160a01b03811681146200019b57600080fd5b6000806000606084860312156200022857600080fd5b83516200023581620001fc565b60208501519093506200024881620001fc565b80925050604084015190509250925092565b60805161149a6200027660003960006101ec015261149a6000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063bc197c8111610059578063bc197c8114610288578063f23a6e61146102b4578063f2fde38b146102e0578063fc4116831461030057600080fd5b80638da5cb5b1461022a57806396487d46146102485780639d9b11451461026857600080fd5b8063179e740b116100bb578063179e740b14610186578063522f6815146101b857806361b12c66146101da578063715018a61461021557600080fd5b806301ffc9a7146100ed5780631250482f14610122578063150b7a021461014257600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610d2a565b610320565b60405190151581526020015b60405180910390f35b34801561012e57600080fd5b5061010d61013d366004610dd0565b610357565b34801561014e57600080fd5b5061016d61015d366004610f00565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610119565b34801561019257600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610119565b3480156101c457600080fd5b506101d86101d3366004610f5f565b61053c565b005b3480156101e657600080fd5b506040517f00000000000000000000000000000000000000000000000000000000000000008152602001610119565b34801561022157600080fd5b506101d86105d5565b34801561023657600080fd5b506000546001600160a01b03166101a0565b34801561025457600080fd5b5061010d610263366004610f8b565b6105e9565b34801561027457600080fd5b5061010d610283366004610ff3565b61063a565b34801561029457600080fd5b5061016d6102a3366004611094565b63bc197c8160e01b95945050505050565b3480156102c057600080fd5b5061016d6102cf366004611141565b63f23a6e6160e01b95945050505050565b3480156102ec57600080fd5b506101d86102fb3660046111a9565b61064c565b34801561030c57600080fd5b506101d861031b3660046111a9565b6106ca565b60006001600160e01b03198216630271189760e51b148061035157506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061036161077f565b600080808061037b61037660208801886111c6565b6107d8565b919550935091506103988383610391898061120c565b919061085f565b90506103b4898989876103ab8b8061120c565b939291906108a5565b60006103e86103c3888061120c565b6103d490604081019060200161122c565b6001600160401b03168360809190911b1790565b90506103f3816108da565b15610411576040516370de22b760e01b815260040160405180910390fd5b60008a6001600160a01b03168a8a60405161042d929190611255565b6000604051808303816000865af19150503d806000811461046a576040519150601f19603f3d011682016040523d82523d6000602084013e61046f565b606091505b505090508015610524576040516306449da160e41b815260026004820152602481018390526001604482015273__$f57eb21c11c6dae369da3ca36f4f48eb77$__90636449da109060640160006040518083038186803b1580156104d257600080fd5b505af41580156104e6573d6000803e3d6000fd5b505050507f0eb7ee080f865f1cadc4f54daf58cc3b8879e888832867d13351edcec0fbdc548260405161051b91815260200190565b60405180910390a15b9550505050505061053460018055565b949350505050565b33301461055c5760405163a08d601d60e01b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146105a9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ae565b606091505b50509050806105d057604051630ce8f45160e31b815260040160405180910390fd5b505050565b6105dd610958565b6105e760006109b2565b565b60008080806105fe61037660208701876111c6565b919450925090506106148282610391888061120c565b5061062d878785610625898061120c565b929190610a02565b5060019695505050505050565b6000608082901b8317610534816108da565b610654610958565b6001600160a01b0381166106be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6106c7816109b2565b50565b6106d2610958565b600380546001600160a01b0319166001600160a01b0383169081179091556040805163b688a36360e01b8152905163b688a3639160048082019260009290919082900301818387803b15801561072757600080fd5b505af115801561073b573d6000803e3d6000fd5b50506040516001600160a01b03841681527f4991c6f37185659e276ff918a96f3e20e6c5abcd8c9aab450dc19c2f7ad35cb59250602001905060405180910390a150565b6002600154036107d15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106b5565b6002600155565b60035460405163035e6a0960e61b8152600091829182916001600160a01b03169063d79a8240906108119030908990899060040161128e565b606060405180830381865afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085291906112bc565b9250925092509250925092565b60008061086f602086018661122c565b610882906001600160401b0316856112ea565b9050828111156105345760405163fd9ae91f60e01b815260040160405180910390fd5b60006108b2858585610a29565b90506108d2868284606083013560255b6001600160401b03166015610a58565b505050505050565b6040516303fbaf7360e01b8152600260048201526024810182905260009073__$f57eb21c11c6dae369da3ca36f4f48eb77$__906303fbaf7390604401602060405180830381865af4158015610934573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610351919061130b565b6000546001600160a01b031633146105e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610a0e8484610cfe565b9050610a22858284608083013560256108c2565b5050505050565b6060838383604051602001610a409392919061128e565b60405160208183030381529060405290509392505050565b6040805160608089013560208301526080808a01359383019390935260a0890135908201528591016040516020818303038152906040528051906020012014610ab457604051636fbd3b7160e11b815260040160405180910390fd5b8273__$2a7ef22e717e9afc55afc95d018bf1a85b$__6379de4601610af0610adf60208b018b61122c565b60051b681fffffffffffffffe01690565b60058660408c0135610b0560e08e018e61132d565b6040518763ffffffff1660e01b8152600401610b2696959493929190611376565b602060405180830381865af4158015610b43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6791906113d9565b14610b8557604051634371daa160e11b815260040160405180910390fd5b600073__$2a7ef22e717e9afc55afc95d018bf1a85b$__63c84583a18780519060200120604051602001610bbb91815260200190565b60408051601f19818403018152908290526001600160e01b031960e084901b168252610bec916005906004016113f2565b602060405180830381865af4158015610c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2d91906113d9565b9050866040013573__$2a7ef22e717e9afc55afc95d018bf1a85b$__6379de4601610c648a6020016020810190610adf919061122c565b60058686610c7560c08f018f61132d565b6040518763ffffffff1660e01b8152600401610c9696959493929190611376565b602060405180830381865af4158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd791906113d9565b14610cf55760405163017c689560e61b815260040160405180910390fd5b50505050505050565b60608282604051602001610d13929190611450565b604051602081830303815290604052905092915050565b600060208284031215610d3c57600080fd5b81356001600160e01b031981168114610d5457600080fd5b9392505050565b6001600160a01b03811681146106c757600080fd5b60008083601f840112610d8257600080fd5b5081356001600160401b03811115610d9957600080fd5b602083019150836020828501011115610db157600080fd5b9250929050565b600060408284031215610dca57600080fd5b50919050565b60008060008060608587031215610de657600080fd5b8435610df181610d5b565b935060208501356001600160401b0380821115610e0d57600080fd5b610e1988838901610d70565b90955093506040870135915080821115610e3257600080fd5b50610e3f87828801610db8565b91505092959194509250565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610e8957610e89610e4b565b604052919050565b600082601f830112610ea257600080fd5b81356001600160401b03811115610ebb57610ebb610e4b565b610ece601f8201601f1916602001610e61565b818152846020838601011115610ee357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215610f1657600080fd5b8435610f2181610d5b565b93506020850135610f3181610d5b565b92506040850135915060608501356001600160401b03811115610f5357600080fd5b610e3f87828801610e91565b60008060408385031215610f7257600080fd5b8235610f7d81610d5b565b946020939093013593505050565b600080600060408486031215610fa057600080fd5b83356001600160401b0380821115610fb757600080fd5b610fc387838801610d70565b90955093506020860135915080821115610fdc57600080fd5b50610fe986828701610db8565b9150509250925092565b6000806040838503121561100657600080fd5b50508035926020909101359150565b600082601f83011261102657600080fd5b813560206001600160401b0382111561104157611041610e4b565b8160051b611050828201610e61565b928352848101820192828101908785111561106a57600080fd5b83870192505b8483101561108957823582529183019190830190611070565b979650505050505050565b600080600080600060a086880312156110ac57600080fd5b85356110b781610d5b565b945060208601356110c781610d5b565b935060408601356001600160401b03808211156110e357600080fd5b6110ef89838a01611015565b9450606088013591508082111561110557600080fd5b61111189838a01611015565b9350608088013591508082111561112757600080fd5b5061113488828901610e91565b9150509295509295909350565b600080600080600060a0868803121561115957600080fd5b853561116481610d5b565b9450602086013561117481610d5b565b9350604086013592506060860135915060808601356001600160401b0381111561119d57600080fd5b61113488828901610e91565b6000602082840312156111bb57600080fd5b8135610d5481610d5b565b6000808335601e198436030181126111dd57600080fd5b8301803591506001600160401b038211156111f757600080fd5b602001915036819003821315610db157600080fd5b6000823560fe1983360301811261122257600080fd5b9190910192915050565b60006020828403121561123e57600080fd5b81356001600160401b0381168114610d5457600080fd5b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906112b39083018486611265565b95945050505050565b6000806000606084860312156112d157600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561035157634e487b7160e01b600052601160045260246000fd5b60006020828403121561131d57600080fd5b81518015158114610d5457600080fd5b6000808335601e1984360301811261134457600080fd5b8301803591506001600160401b0382111561135e57600080fd5b6020019150600581901b3603821315610db157600080fd5b6001600160401b03878116825286166020820152604081018590526060810184905260a060808201819052810182905260006001600160fb1b038311156113bc57600080fd5b8260051b808560c08501379190910160c001979650505050505050565b6000602082840312156113eb57600080fd5b5051919050565b604081526000835180604084015260005b818110156114205760208187018101516060868401015201611403565b506000606082850101526060601f19601f8301168401019150506001600160401b03831660208301529392505050565b60208152600061053460208301848661126556fea2646970667358221220981835fbbf44aedaeb41e0c0c9001ffe55187a0b5606db0cdbf7500fc7c5e30e64736f6c63430008130033a2646970667358221220a12c770ef21751c306949fd9ed57ed453446a67f2dfb1d63d08c918461eca99764736f6c63430008130033",
153
+ "libraries": {
154
+ "Bitmask": "0xF5B2d8c81cDE4D6238bBf20D3D77DB37df13f735",
155
+ "MerkleV2": "0x33436035441927Df1a73FE3AAC5906854632e53d"
156
+ },
157
+ "devdoc": {
158
+ "events": {
159
+ "ApplicationCreated(address,address,bytes32,address)": {
160
+ "details": "MUST be triggered on a successful call to `newApplication`.",
161
+ "params": {
162
+ "application": "The application",
163
+ "consensus": "The initial consensus contract",
164
+ "dappOwner": "The initial DApp owner",
165
+ "templateHash": "The initial machine state hash"
166
+ }
167
+ }
168
+ },
169
+ "kind": "dev",
170
+ "methods": {
171
+ "calculateApplicationAddress(address,address,bytes32,bytes32)": {
172
+ "details": "Beware that only the `newApplication` function with the `_salt` parameter is able to deterministically deploy an application.",
173
+ "params": {
174
+ "_consensus": "The initial consensus contract",
175
+ "_dappOwner": "The initial DApp owner",
176
+ "_salt": "The salt used to deterministically generate the DApp address",
177
+ "_templateHash": "The initial machine state hash"
178
+ },
179
+ "returns": {
180
+ "_0": "The deterministic application address"
181
+ }
182
+ },
183
+ "newApplication(address,address,bytes32)": {
184
+ "details": "On success, MUST emit an `ApplicationCreated` event.",
185
+ "params": {
186
+ "_consensus": "The initial consensus contract",
187
+ "_dappOwner": "The initial DApp owner",
188
+ "_templateHash": "The initial machine state hash"
189
+ },
190
+ "returns": {
191
+ "_0": "The application"
192
+ }
193
+ },
194
+ "newApplication(address,address,bytes32,bytes32)": {
195
+ "details": "On success, MUST emit an `ApplicationCreated` event.",
196
+ "params": {
197
+ "_consensus": "The initial consensus contract",
198
+ "_dappOwner": "The initial DApp owner",
199
+ "_salt": "The salt used to deterministically generate the DApp address",
200
+ "_templateHash": "The initial machine state hash"
201
+ },
202
+ "returns": {
203
+ "_0": "The application"
204
+ }
205
+ }
206
+ },
207
+ "title": "Cartesi DApp Factory",
208
+ "version": 1
209
+ },
210
+ "userdoc": {
211
+ "events": {
212
+ "ApplicationCreated(address,address,bytes32,address)": {
213
+ "notice": "A new application was deployed."
214
+ }
215
+ },
216
+ "kind": "user",
217
+ "methods": {
218
+ "calculateApplicationAddress(address,address,bytes32,bytes32)": {
219
+ "notice": "Calculate the address of an application to be deployed deterministically."
220
+ },
221
+ "newApplication(address,address,bytes32)": {
222
+ "notice": "Deploy a new application."
223
+ },
224
+ "newApplication(address,address,bytes32,bytes32)": {
225
+ "notice": "Deploy a new application deterministically."
226
+ }
227
+ },
228
+ "notice": "Allows anyone to reliably deploy a new `CartesiDApp` contract.",
229
+ "version": 1
230
+ }
231
+ }
@@ -0,0 +1,213 @@
1
+ {
2
+ "address": "0xB634F716BEd5Dd5A2b9a91C92474C499e50Cb27D",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "uint256",
8
+ "name": "_num",
9
+ "type": "uint256"
10
+ }
11
+ ],
12
+ "name": "clz",
13
+ "outputs": [
14
+ {
15
+ "internalType": "uint256",
16
+ "name": "",
17
+ "type": "uint256"
18
+ }
19
+ ],
20
+ "stateMutability": "pure",
21
+ "type": "function"
22
+ },
23
+ {
24
+ "inputs": [
25
+ {
26
+ "internalType": "uint256",
27
+ "name": "_num",
28
+ "type": "uint256"
29
+ }
30
+ ],
31
+ "name": "ctz",
32
+ "outputs": [
33
+ {
34
+ "internalType": "uint256",
35
+ "name": "",
36
+ "type": "uint256"
37
+ }
38
+ ],
39
+ "stateMutability": "pure",
40
+ "type": "function"
41
+ },
42
+ {
43
+ "inputs": [
44
+ {
45
+ "internalType": "uint256",
46
+ "name": "_num",
47
+ "type": "uint256"
48
+ }
49
+ ],
50
+ "name": "getLog2Floor",
51
+ "outputs": [
52
+ {
53
+ "internalType": "uint8",
54
+ "name": "",
55
+ "type": "uint8"
56
+ }
57
+ ],
58
+ "stateMutability": "pure",
59
+ "type": "function"
60
+ },
61
+ {
62
+ "inputs": [
63
+ {
64
+ "internalType": "uint256",
65
+ "name": "_num",
66
+ "type": "uint256"
67
+ }
68
+ ],
69
+ "name": "getLog2TableTimes1M",
70
+ "outputs": [
71
+ {
72
+ "internalType": "uint256",
73
+ "name": "",
74
+ "type": "uint256"
75
+ }
76
+ ],
77
+ "stateMutability": "pure",
78
+ "type": "function"
79
+ },
80
+ {
81
+ "inputs": [
82
+ {
83
+ "internalType": "uint256",
84
+ "name": "_num",
85
+ "type": "uint256"
86
+ }
87
+ ],
88
+ "name": "isPowerOf2",
89
+ "outputs": [
90
+ {
91
+ "internalType": "bool",
92
+ "name": "",
93
+ "type": "bool"
94
+ }
95
+ ],
96
+ "stateMutability": "pure",
97
+ "type": "function"
98
+ },
99
+ {
100
+ "inputs": [
101
+ {
102
+ "internalType": "uint256",
103
+ "name": "_num",
104
+ "type": "uint256"
105
+ }
106
+ ],
107
+ "name": "log2ApproxTimes1M",
108
+ "outputs": [
109
+ {
110
+ "internalType": "uint256",
111
+ "name": "",
112
+ "type": "uint256"
113
+ }
114
+ ],
115
+ "stateMutability": "pure",
116
+ "type": "function"
117
+ }
118
+ ],
119
+ "transactionHash": "0x578146478c4304a7312592950247f97f192f794ce199caafe69f37a9862af44b",
120
+ "receipt": {
121
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
122
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
123
+ "contractAddress": null,
124
+ "transactionIndex": 0,
125
+ "gasUsed": "490151",
126
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
127
+ "blockHash": "0x2754ccb12adf0162e5c312f0d00781063545fae784414dc52d3a04d1cdcc14c3",
128
+ "transactionHash": "0x578146478c4304a7312592950247f97f192f794ce199caafe69f37a9862af44b",
129
+ "logs": [],
130
+ "blockNumber": 4,
131
+ "cumulativeGasUsed": "490151",
132
+ "status": 1,
133
+ "byzantium": true
134
+ },
135
+ "args": [],
136
+ "numDeployments": 1,
137
+ "bytecode": "0x6107e261003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c806306c8e54b14610071578063296e7af81461009b57806330244f7a146100bc57806332ef283b146100cf578063d82ae4b1146100e2578063e3581b6814610105575b600080fd5b61008461007f366004610568565b610118565b60405160ff90911681526020015b60405180910390f35b6100ae6100a9366004610568565b610189565b604051908152602001610092565b6100ae6100ca366004610568565b6102b5565b6100ae6100dd366004610568565b6103f5565b6100f56100f0366004610568565b6104a6565b6040519015158152602001610092565b6100ae610113366004610568565b6104cc565b60008160000361016f5760405162461bcd60e51b815260206004820152601860248201527f6c6f67206f66207a65726f20697320756e646566696e6564000000000000000060448201526064015b60405180910390fd5b610178826102b5565b6101839060ff610597565b92915050565b60008160000361019c5750610100919050565b6000826fffffffffffffffffffffffffffffffff166000036101cd576101c38160806105aa565b9050608083901c92505b8267ffffffffffffffff166000036101f4576101ea8160406105aa565b9050604083901c92505b8263ffffffff166000036102175761020d8160206105aa565b9050602083901c92505b8261ffff166000036102385761022e8160106105aa565b9050601083901c92505b8260ff166000036102585761024e8160086105aa565b9050600883901c92505b82600f166000036102785761026e8160046105aa565b9050600483901c92505b826003166000036102985761028e8160026105aa565b9050600283901c92505b82600116600003610183576102ae8160016105aa565b9392505050565b6000816000036102c85750610100919050565b6000826fffffffffffffffffffffffffffffffff19166000036102fa576102f08160806105aa565b9050608083901b92505b826001600160c01b031916600003610321576103178160406105aa565b9050604083901b92505b826001600160e01b0319166000036103485761033e8160206105aa565b9050602083901b92505b826001600160f01b03191660000361036f576103658160106105aa565b9050601083901b92505b826001600160f81b0319166000036103965761038c8160086105aa565b9050600883901b92505b82600f60fc1b166000036103b9576103af8160046105aa565b9050600483901b92505b82600360fe1b166000036103dc576103d28160026105aa565b9050600283901b92505b82600160ff1b16600003610183576102ae8160016105aa565b600080805b60038160ff16101561049c576000604051806101a00160405280610180815260200161062d610180913960ff8316610433600188610597565b61043e9060036105bd565b61044891906105aa565b81518110610458576104586105d4565b01602001516001600160f81b03191690506104748260086105ea565b60ff16816001600160e81b031916901c831792505080806104949061060d565b9150506103fa565b5060e81c92915050565b6000816000036104b857506000919050565b6104c3600183610597565b90911615919050565b60008082116105155760405162461bcd60e51b81526020600482015260156024820152744e756d6265722063616e6e6f74206265207a65726f60581b6044820152606401610166565b6000826001036105285750600092915050565b608083111561054857600192831c9261054190826105aa565b9050610528565b610551836103f5565b61055e620f4240836105bd565b6102ae91906105aa565b60006020828403121561057a57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561018357610183610581565b8082018082111561018357610183610581565b808202811582820484141761018357610183610581565b634e487b7160e01b600052603260045260246000fd5b60ff818116838216029081169081811461060657610606610581565b5092915050565b600060ff821660ff810361062357610623610581565b6001019291505056fe0000000f4240182f421e8480236e082771822ad63a2dc6c0305e8532b04834c96736b3c23876d73a187a3b9d4a3d09003e5ea63fa0c540d17741f28843057d440ba745062945f60246dc1047b917488dc7495aba4a207c4adf8a4b98544c4b404cf8aa4da0e64e44434ee3054f7d6d5013b750a61a5134c851bff05247bd52cc58534de753cc8d54486954c19c55384255ac75561e50568de956fb575766b057d00758376f589cfa5900ba5962bc59c3135a21ca5a7ef15ada945b34bf5b8d805be4df5c3aea5c8fa95ce3265d356c5d86835dd6735e25455e73005ebfad5f0b525f55f75f9fa25fe85a60302460770860bd0a61023061467f6189fd61ccae620e98624fbf62902762cfd5630ecd634d12638aa963c7966403dc643f7f647a8264b4e864eeb56527ec6560906598a365d029660724663d9766738566a8f066ddda6712476746386779af67acaf67df3a6811526842fa68743268a4fc68d55c6905536934e169640a6992cf69c13169ef326a1cd46a4a186a76ff6aa38c6acfc0a26469706673582212201ecec337bf7d70d1c6fbf67bfe6ec479ae3ee824b29f7aae05f18fc4ddc31cfd64736f6c63430008140033",
138
+ "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c806306c8e54b14610071578063296e7af81461009b57806330244f7a146100bc57806332ef283b146100cf578063d82ae4b1146100e2578063e3581b6814610105575b600080fd5b61008461007f366004610568565b610118565b60405160ff90911681526020015b60405180910390f35b6100ae6100a9366004610568565b610189565b604051908152602001610092565b6100ae6100ca366004610568565b6102b5565b6100ae6100dd366004610568565b6103f5565b6100f56100f0366004610568565b6104a6565b6040519015158152602001610092565b6100ae610113366004610568565b6104cc565b60008160000361016f5760405162461bcd60e51b815260206004820152601860248201527f6c6f67206f66207a65726f20697320756e646566696e6564000000000000000060448201526064015b60405180910390fd5b610178826102b5565b6101839060ff610597565b92915050565b60008160000361019c5750610100919050565b6000826fffffffffffffffffffffffffffffffff166000036101cd576101c38160806105aa565b9050608083901c92505b8267ffffffffffffffff166000036101f4576101ea8160406105aa565b9050604083901c92505b8263ffffffff166000036102175761020d8160206105aa565b9050602083901c92505b8261ffff166000036102385761022e8160106105aa565b9050601083901c92505b8260ff166000036102585761024e8160086105aa565b9050600883901c92505b82600f166000036102785761026e8160046105aa565b9050600483901c92505b826003166000036102985761028e8160026105aa565b9050600283901c92505b82600116600003610183576102ae8160016105aa565b9392505050565b6000816000036102c85750610100919050565b6000826fffffffffffffffffffffffffffffffff19166000036102fa576102f08160806105aa565b9050608083901b92505b826001600160c01b031916600003610321576103178160406105aa565b9050604083901b92505b826001600160e01b0319166000036103485761033e8160206105aa565b9050602083901b92505b826001600160f01b03191660000361036f576103658160106105aa565b9050601083901b92505b826001600160f81b0319166000036103965761038c8160086105aa565b9050600883901b92505b82600f60fc1b166000036103b9576103af8160046105aa565b9050600483901b92505b82600360fe1b166000036103dc576103d28160026105aa565b9050600283901b92505b82600160ff1b16600003610183576102ae8160016105aa565b600080805b60038160ff16101561049c576000604051806101a00160405280610180815260200161062d610180913960ff8316610433600188610597565b61043e9060036105bd565b61044891906105aa565b81518110610458576104586105d4565b01602001516001600160f81b03191690506104748260086105ea565b60ff16816001600160e81b031916901c831792505080806104949061060d565b9150506103fa565b5060e81c92915050565b6000816000036104b857506000919050565b6104c3600183610597565b90911615919050565b60008082116105155760405162461bcd60e51b81526020600482015260156024820152744e756d6265722063616e6e6f74206265207a65726f60581b6044820152606401610166565b6000826001036105285750600092915050565b608083111561054857600192831c9261054190826105aa565b9050610528565b610551836103f5565b61055e620f4240836105bd565b6102ae91906105aa565b60006020828403121561057a57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561018357610183610581565b8082018082111561018357610183610581565b808202811582820484141761018357610183610581565b634e487b7160e01b600052603260045260246000fd5b60ff818116838216029081169081811461060657610606610581565b5092915050565b600060ff821660ff810361062357610623610581565b6001019291505056fe0000000f4240182f421e8480236e082771822ad63a2dc6c0305e8532b04834c96736b3c23876d73a187a3b9d4a3d09003e5ea63fa0c540d17741f28843057d440ba745062945f60246dc1047b917488dc7495aba4a207c4adf8a4b98544c4b404cf8aa4da0e64e44434ee3054f7d6d5013b750a61a5134c851bff05247bd52cc58534de753cc8d54486954c19c55384255ac75561e50568de956fb575766b057d00758376f589cfa5900ba5962bc59c3135a21ca5a7ef15ada945b34bf5b8d805be4df5c3aea5c8fa95ce3265d356c5d86835dd6735e25455e73005ebfad5f0b525f55f75f9fa25fe85a60302460770860bd0a61023061467f6189fd61ccae620e98624fbf62902762cfd5630ecd634d12638aa963c7966403dc643f7f647a8264b4e864eeb56527ec6560906598a365d029660724663d9766738566a8f066ddda6712476746386779af67acaf67df3a6811526842fa68743268a4fc68d55c6905536934e169640a6992cf69c13169ef326a1cd46a4a186a76ff6aa38c6acfc0a26469706673582212201ecec337bf7d70d1c6fbf67bfe6ec479ae3ee824b29f7aae05f18fc4ddc31cfd64736f6c63430008140033",
139
+ "devdoc": {
140
+ "kind": "dev",
141
+ "methods": {
142
+ "clz(uint256)": {
143
+ "details": "this a binary search implementation",
144
+ "params": {
145
+ "_num": "number you want the clz of"
146
+ }
147
+ },
148
+ "ctz(uint256)": {
149
+ "details": "this a binary search implementation",
150
+ "params": {
151
+ "_num": "number you want the ctz of"
152
+ }
153
+ },
154
+ "getLog2Floor(uint256)": {
155
+ "params": {
156
+ "_num": "number to take floor(log2) of"
157
+ },
158
+ "returns": {
159
+ "_0": "floor(log2) of _num"
160
+ }
161
+ },
162
+ "getLog2TableTimes1M(uint256)": {
163
+ "params": {
164
+ "_num": "number to take log2 of"
165
+ },
166
+ "returns": {
167
+ "_0": "result after table look-up"
168
+ }
169
+ },
170
+ "isPowerOf2(uint256)": {
171
+ "params": {
172
+ "_num": "number to check"
173
+ },
174
+ "returns": {
175
+ "_0": "true if number is power of 2, false if not"
176
+ }
177
+ },
178
+ "log2ApproxTimes1M(uint256)": {
179
+ "params": {
180
+ "_num": "number to take log2 * 1M of"
181
+ },
182
+ "returns": {
183
+ "_0": "approximate log2 times 1M"
184
+ }
185
+ }
186
+ },
187
+ "version": 1
188
+ },
189
+ "userdoc": {
190
+ "kind": "user",
191
+ "methods": {
192
+ "clz(uint256)": {
193
+ "notice": "count leading zeros"
194
+ },
195
+ "ctz(uint256)": {
196
+ "notice": "count trailing zeros"
197
+ },
198
+ "getLog2Floor(uint256)": {
199
+ "notice": "get floor of log2 of number"
200
+ },
201
+ "getLog2TableTimes1M(uint256)": {
202
+ "notice": "navigates log2tableTimes1M"
203
+ },
204
+ "isPowerOf2(uint256)": {
205
+ "notice": "checks if a number is Power of 2"
206
+ },
207
+ "log2ApproxTimes1M(uint256)": {
208
+ "notice": "Approximates log2 * 1M"
209
+ }
210
+ },
211
+ "version": 1
212
+ }
213
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "address": "0xF5DE34d6BbC0446E2a45719E718efEbaaE179daE",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "contract IInputBox",
8
+ "name": "_inputBox",
9
+ "type": "address"
10
+ }
11
+ ],
12
+ "stateMutability": "nonpayable",
13
+ "type": "constructor"
14
+ },
15
+ {
16
+ "inputs": [],
17
+ "name": "getInputBox",
18
+ "outputs": [
19
+ {
20
+ "internalType": "contract IInputBox",
21
+ "name": "",
22
+ "type": "address"
23
+ }
24
+ ],
25
+ "stateMutability": "view",
26
+ "type": "function"
27
+ },
28
+ {
29
+ "inputs": [
30
+ {
31
+ "internalType": "address",
32
+ "name": "_dapp",
33
+ "type": "address"
34
+ }
35
+ ],
36
+ "name": "relayDAppAddress",
37
+ "outputs": [],
38
+ "stateMutability": "nonpayable",
39
+ "type": "function"
40
+ }
41
+ ],
42
+ "transactionHash": "0xb3ae62fda4c8960326fca55dc517b1da354656516f09ad36f17f85beedf20df9",
43
+ "receipt": {
44
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
45
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
46
+ "contractAddress": null,
47
+ "transactionIndex": 0,
48
+ "gasUsed": "175472",
49
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
50
+ "blockHash": "0x149196c22e03d31faf6d8ecadf28fe0fa15d94f11c6f8dc95e0196a7cbd13105",
51
+ "transactionHash": "0xb3ae62fda4c8960326fca55dc517b1da354656516f09ad36f17f85beedf20df9",
52
+ "logs": [],
53
+ "blockNumber": 13,
54
+ "cumulativeGasUsed": "175472",
55
+ "status": 1,
56
+ "byzantium": true
57
+ },
58
+ "args": [
59
+ "0x59b22D57D4f067708AB0c00552767405926dc768"
60
+ ],
61
+ "numDeployments": 1,
62
+ "bytecode": "0x60a060405234801561001057600080fd5b506040516102bc3803806102bc83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161022c61009060003960008181603c015260c8015261022c6000f3fe608060405234801561001057600080fd5b50600436106100355760003560e01c8062aace9a1461003a5780633016f49e14610077575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006040516001600160a01b03909116815260200160405180910390f35b61008a61008536600461014f565b61008c565b005b60408051606083901b6bffffffffffffffffffffffff19166020820152815180820360140181526034820192839052631789cd6360e01b9092527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631789cd6390610107908590859060380161017f565b6020604051808303816000875af1158015610126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014a91906101dd565b505050565b60006020828403121561016157600080fd5b81356001600160a01b038116811461017857600080fd5b9392505050565b60018060a01b038316815260006020604081840152835180604085015260005b818110156101bb5785810183015185820160600152820161019f565b506000606082860101526060601f19601f830116850101925050509392505050565b6000602082840312156101ef57600080fd5b505191905056fea264697066735822122069e730f7a2a395fe8a69c595a0c196f1b1dfb520ea883a704bd8cac077623cce64736f6c63430008130033",
63
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100355760003560e01c8062aace9a1461003a5780633016f49e14610077575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006040516001600160a01b03909116815260200160405180910390f35b61008a61008536600461014f565b61008c565b005b60408051606083901b6bffffffffffffffffffffffff19166020820152815180820360140181526034820192839052631789cd6360e01b9092527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631789cd6390610107908590859060380161017f565b6020604051808303816000875af1158015610126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014a91906101dd565b505050565b60006020828403121561016157600080fd5b81356001600160a01b038116811461017857600080fd5b9392505050565b60018060a01b038316815260006020604081840152835180604085015260005b818110156101bb5785810183015185820160600152820161019f565b506000606082860101526060601f19601f830116850101925050509392505050565b6000602082840312156101ef57600080fd5b505191905056fea264697066735822122069e730f7a2a395fe8a69c595a0c196f1b1dfb520ea883a704bd8cac077623cce64736f6c63430008130033",
64
+ "devdoc": {
65
+ "kind": "dev",
66
+ "methods": {
67
+ "constructor": {
68
+ "params": {
69
+ "_inputBox": "The input box used by the relay"
70
+ }
71
+ },
72
+ "getInputBox()": {
73
+ "returns": {
74
+ "_0": "The input box"
75
+ }
76
+ },
77
+ "relayDAppAddress(address)": {
78
+ "params": {
79
+ "_dapp": "The address of the DApp"
80
+ }
81
+ }
82
+ },
83
+ "title": "DApp Address Relay",
84
+ "version": 1
85
+ },
86
+ "userdoc": {
87
+ "kind": "user",
88
+ "methods": {
89
+ "constructor": {
90
+ "notice": "Constructs the relay."
91
+ },
92
+ "getInputBox()": {
93
+ "notice": "Get the input box used by this input relay."
94
+ },
95
+ "relayDAppAddress(address)": {
96
+ "notice": "Add an input to a DApp's input box with its address."
97
+ }
98
+ },
99
+ "notice": "This contract allows anyone to inform the off-chain machine of the address of the DApp contract in a trustless and permissionless way.",
100
+ "version": 1
101
+ }
102
+ }