@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,121 @@
1
+ {
2
+ "address": "0xFfdbe43d4c855BF7e0f105c400A50857f53AB044",
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": "EtherTransferFailed",
18
+ "type": "error"
19
+ },
20
+ {
21
+ "inputs": [
22
+ {
23
+ "internalType": "address",
24
+ "name": "_dapp",
25
+ "type": "address"
26
+ },
27
+ {
28
+ "internalType": "bytes",
29
+ "name": "_execLayerData",
30
+ "type": "bytes"
31
+ }
32
+ ],
33
+ "name": "depositEther",
34
+ "outputs": [],
35
+ "stateMutability": "payable",
36
+ "type": "function"
37
+ },
38
+ {
39
+ "inputs": [],
40
+ "name": "getInputBox",
41
+ "outputs": [
42
+ {
43
+ "internalType": "contract IInputBox",
44
+ "name": "",
45
+ "type": "address"
46
+ }
47
+ ],
48
+ "stateMutability": "view",
49
+ "type": "function"
50
+ }
51
+ ],
52
+ "transactionHash": "0x3a50ae44dc0a5621ce92af867c89446d87762733a15def7659217681e289299e",
53
+ "receipt": {
54
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
55
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
56
+ "contractAddress": null,
57
+ "transactionIndex": 0,
58
+ "gasUsed": "237926",
59
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
60
+ "blockHash": "0xc1fceb165bf0962c7f54f26d4204d3eba14df48d9133394b757c7433aaa747a3",
61
+ "transactionHash": "0x3a50ae44dc0a5621ce92af867c89446d87762733a15def7659217681e289299e",
62
+ "logs": [],
63
+ "blockNumber": 8,
64
+ "cumulativeGasUsed": "237926",
65
+ "status": 1,
66
+ "byzantium": true
67
+ },
68
+ "args": [
69
+ "0x59b22D57D4f067708AB0c00552767405926dc768"
70
+ ],
71
+ "numDeployments": 1,
72
+ "bytecode": "0x60a060405234801561001057600080fd5b506040516103de3803806103de83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161034d61009160003960008181603c0152610128015261034d6000f3fe6080604052600436106100285760003560e01c8062aace9a1461002d578063938c054f14610077575b600080fd5b34801561003957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006040516001600160a01b03909116815260200160405180910390f35b61008a6100853660046101dc565b61008c565b005b6000836001600160a01b03163460405160006040518083038185875af1925050503d80600081146100d9576040519150601f19603f3d011682016040523d82523d6000602084013e6100de565b606091505b505090508061010057604051630ce8f45160e31b815260040160405180910390fd5b600061010e333486866101aa565b604051631789cd6360e01b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631789cd639061015f908890859060040161026d565b6020604051808303816000875af115801561017e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a291906102cb565b505050505050565b6060848484846040516020016101c394939291906102e4565b6040516020818303038152906040529050949350505050565b6000806000604084860312156101f157600080fd5b83356001600160a01b038116811461020857600080fd5b9250602084013567ffffffffffffffff8082111561022557600080fd5b818601915086601f83011261023957600080fd5b81358181111561024857600080fd5b87602082850101111561025a57600080fd5b6020830194508093505050509250925092565b60018060a01b038316815260006020604081840152835180604085015260005b818110156102a95785810183015185820160600152820161028d565b506000606082860101526060601f19601f830116850101925050509392505050565b6000602082840312156102dd57600080fd5b5051919050565b6bffffffffffffffffffffffff198560601b1681528360148201528183603483013760009101603401908152939250505056fea26469706673582212203555bb6cf9b2020729bb19c561673a225f367cd3219906075930d8b9f3fb219864736f6c63430008130033",
73
+ "deployedBytecode": "0x6080604052600436106100285760003560e01c8062aace9a1461002d578063938c054f14610077575b600080fd5b34801561003957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006040516001600160a01b03909116815260200160405180910390f35b61008a6100853660046101dc565b61008c565b005b6000836001600160a01b03163460405160006040518083038185875af1925050503d80600081146100d9576040519150601f19603f3d011682016040523d82523d6000602084013e6100de565b606091505b505090508061010057604051630ce8f45160e31b815260040160405180910390fd5b600061010e333486866101aa565b604051631789cd6360e01b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631789cd639061015f908890859060040161026d565b6020604051808303816000875af115801561017e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a291906102cb565b505050505050565b6060848484846040516020016101c394939291906102e4565b6040516020818303038152906040529050949350505050565b6000806000604084860312156101f157600080fd5b83356001600160a01b038116811461020857600080fd5b9250602084013567ffffffffffffffff8082111561022557600080fd5b818601915086601f83011261023957600080fd5b81358181111561024857600080fd5b87602082850101111561025a57600080fd5b6020830194508093505050509250925092565b60018060a01b038316815260006020604081840152835180604085015260005b818110156102a95785810183015185820160600152820161028d565b506000606082860101526060601f19601f830116850101925050509392505050565b6000602082840312156102dd57600080fd5b5051919050565b6bffffffffffffffffffffffff198560601b1681528360148201528183603483013760009101603401908152939250505056fea26469706673582212203555bb6cf9b2020729bb19c561673a225f367cd3219906075930d8b9f3fb219864736f6c63430008130033",
74
+ "devdoc": {
75
+ "kind": "dev",
76
+ "methods": {
77
+ "constructor": {
78
+ "params": {
79
+ "_inputBox": "The input box used by the portal"
80
+ }
81
+ },
82
+ "depositEther(address,bytes)": {
83
+ "details": "All the value sent through this function is forwarded to the DApp. If the transfer fails, `EtherTransferFailed` error is raised.",
84
+ "params": {
85
+ "_dapp": "The address of the DApp",
86
+ "_execLayerData": "Additional data to be interpreted by the execution layer"
87
+ }
88
+ },
89
+ "getInputBox()": {
90
+ "returns": {
91
+ "_0": "The input box"
92
+ }
93
+ }
94
+ },
95
+ "title": "Ether Portal",
96
+ "version": 1
97
+ },
98
+ "userdoc": {
99
+ "errors": {
100
+ "EtherTransferFailed()": [
101
+ {
102
+ "notice": "Raised when the Ether transfer fails."
103
+ }
104
+ ]
105
+ },
106
+ "kind": "user",
107
+ "methods": {
108
+ "constructor": {
109
+ "notice": "Constructs the portal."
110
+ },
111
+ "depositEther(address,bytes)": {
112
+ "notice": "Transfer Ether to a DApp and add an input to the DApp's input box to signal such operation. All the value sent through this function is forwarded to the DApp."
113
+ },
114
+ "getInputBox()": {
115
+ "notice": "Get the input box used by this input relay."
116
+ }
117
+ },
118
+ "notice": "This contract allows anyone to perform transfers of Ether to a DApp while informing the off-chain machine.",
119
+ "version": 1
120
+ }
121
+ }
@@ -0,0 +1,177 @@
1
+ {
2
+ "address": "0x1f158b5320BBf677FdA89F9a438df99BbE560A26",
3
+ "abi": [
4
+ {
5
+ "anonymous": false,
6
+ "inputs": [
7
+ {
8
+ "indexed": false,
9
+ "internalType": "address",
10
+ "name": "historyOwner",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "indexed": false,
15
+ "internalType": "contract History",
16
+ "name": "history",
17
+ "type": "address"
18
+ }
19
+ ],
20
+ "name": "HistoryCreated",
21
+ "type": "event"
22
+ },
23
+ {
24
+ "inputs": [
25
+ {
26
+ "internalType": "address",
27
+ "name": "_historyOwner",
28
+ "type": "address"
29
+ },
30
+ {
31
+ "internalType": "bytes32",
32
+ "name": "_salt",
33
+ "type": "bytes32"
34
+ }
35
+ ],
36
+ "name": "calculateHistoryAddress",
37
+ "outputs": [
38
+ {
39
+ "internalType": "address",
40
+ "name": "",
41
+ "type": "address"
42
+ }
43
+ ],
44
+ "stateMutability": "view",
45
+ "type": "function"
46
+ },
47
+ {
48
+ "inputs": [
49
+ {
50
+ "internalType": "address",
51
+ "name": "_historyOwner",
52
+ "type": "address"
53
+ },
54
+ {
55
+ "internalType": "bytes32",
56
+ "name": "_salt",
57
+ "type": "bytes32"
58
+ }
59
+ ],
60
+ "name": "newHistory",
61
+ "outputs": [
62
+ {
63
+ "internalType": "contract History",
64
+ "name": "",
65
+ "type": "address"
66
+ }
67
+ ],
68
+ "stateMutability": "nonpayable",
69
+ "type": "function"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "_historyOwner",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "newHistory",
80
+ "outputs": [
81
+ {
82
+ "internalType": "contract History",
83
+ "name": "",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "stateMutability": "nonpayable",
88
+ "type": "function"
89
+ }
90
+ ],
91
+ "transactionHash": "0x187fe2625daa01b954c1f2dd77128e0b49a65ac58af554ef398a2de64764d49a",
92
+ "receipt": {
93
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
94
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
95
+ "contractAddress": null,
96
+ "transactionIndex": 0,
97
+ "gasUsed": "741828",
98
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
99
+ "blockHash": "0xfd98f016f4d9e80f6d3f187ec736d3eaa71f3041f960218b6005bb7173d901cf",
100
+ "transactionHash": "0x187fe2625daa01b954c1f2dd77128e0b49a65ac58af554ef398a2de64764d49a",
101
+ "logs": [],
102
+ "blockNumber": 15,
103
+ "cumulativeGasUsed": "741828",
104
+ "status": 1,
105
+ "byzantium": true
106
+ },
107
+ "args": [],
108
+ "numDeployments": 1,
109
+ "bytecode": "0x608060405234801561001057600080fd5b50610c6f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632ab8b1151461004657806350f9c5ba1461007557806388d49a6214610088575b600080fd5b610059610054366004610289565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b610059610083366004610289565b61012a565b6100596100963660046102b3565b6101a5565b60008082846040516100ac90610260565b6001600160a01b0390911681526020018190604051809103906000f59050801580156100dc573d6000803e3d6000fd5b50604080516001600160a01b038088168252831660208201529192507f5b0ee1fb14fdb4a34ba9f0dda6790b059be11d8b3a954905dbad3c025c05c9c6910160405180910390a19392505050565b600061019e826040518060200161014090610260565b601f1982820381018352601f9091011660408181526001600160a01b03881660208301520160408051601f198184030181529082905261018392916020016102fe565b6040516020818303038152906040528051906020012061022e565b9392505050565b600080826040516101b590610260565b6001600160a01b039091168152602001604051809103906000f0801580156101e1573d6000803e3d6000fd5b50604080516001600160a01b038087168252831660208201529192507f5b0ee1fb14fdb4a34ba9f0dda6790b059be11d8b3a954905dbad3c025c05c9c6910160405180910390a192915050565b600061019e8383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b61091e8061031c83390190565b80356001600160a01b038116811461028457600080fd5b919050565b6000806040838503121561029c57600080fd5b6102a58361026d565b946020939093013593505050565b6000602082840312156102c557600080fd5b61019e8261026d565b6000815160005b818110156102ef57602081850181015186830152016102d5565b50600093019283525090919050565b600061031361030d83866102ce565b846102ce565b94935050505056fe608060405234801561001057600080fd5b5060405161091e38038061091e83398101604081905261002f91610181565b61003833610057565b6001600160a01b038116331461005157610051816100a7565b506101b1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100af610125565b6001600160a01b0381166101195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61012281610057565b50565b6000546001600160a01b0316331461017f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610110565b565b60006020828403121561019357600080fd5b81516001600160a01b03811681146101aa57600080fd5b9392505050565b61075e806101c06000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063715018a6146100675780638da5cb5b14610071578063d79a824014610091578063ddfdfbb0146100bf578063f2fde38b146100d2578063fc411683146100e5575b600080fd5b61006f6100f8565b005b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100a461009f366004610531565b61010c565b60408051938452602084019290925290820152606001610088565b61006f6100cd366004610586565b6101bf565b61006f6100e03660046105c8565b61039a565b61006f6100f33660046105c8565b610418565b610100610429565b61010a6000610483565b565b600080808061011d858701876105ec565b6001600160a01b038816600090815260016020526040902054909150808210610159576040516387332c0160e01b815260040160405180910390fd5b506001600160a01b0396909616600090815260026020908152604080832098835297815290879020875160608101895281548082526001909201546001600160801b03808216948301859052600160801b90910416980188905297909695509350505050565b6101c7610429565b6000806101d683850185610621565b9150915080604001516001600160801b031681602001516001600160801b031611156102155760405163123974fd60e01b815260040160405180910390fd5b6001600160a01b038216600090815260016020526040902054801561028e576001600160a01b0383166000908152600260205260408120906102586001846106d5565b815260200190815260200160002060010160109054906101000a90046001600160801b0316600161028991906106ee565b610291565b60005b6001600160801b031682602001516001600160801b0316146102c65760405163118b891b60e01b815260040160405180910390fd5b6001600160a01b03831660009081526002602090815260408083208484528252918290208451815590840151918401516001600160801b03908116600160801b0292169190911760019182015561031e908290610715565b6001600160a01b03841660008181526001602090815260409182902093909355805185518152858401516001600160801b03908116948201949094528582015190931690830152907fb71880d7a0c514d48c0296b2721b0a4f9641a45117960f2ca86b5b7873c4ab2f9060600160405180910390a25050505050565b6103a2610429565b6001600160a01b03811661040c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61041581610483565b50565b610420610429565b6104158161039a565b6000546001600160a01b0316331461010a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610403565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461041557600080fd5b60008083601f8401126104fa57600080fd5b50813567ffffffffffffffff81111561051257600080fd5b60208301915083602082850101111561052a57600080fd5b9250929050565b60008060006040848603121561054657600080fd5b8335610551816104d3565b9250602084013567ffffffffffffffff81111561056d57600080fd5b610579868287016104e8565b9497909650939450505050565b6000806020838503121561059957600080fd5b823567ffffffffffffffff8111156105b057600080fd5b6105bc858286016104e8565b90969095509350505050565b6000602082840312156105da57600080fd5b81356105e5816104d3565b9392505050565b6000602082840312156105fe57600080fd5b5035919050565b80356001600160801b038116811461061c57600080fd5b919050565b600080828403608081121561063557600080fd5b8335610640816104d3565b92506060601f198201121561065457600080fd5b506040516060810181811067ffffffffffffffff8211171561068657634e487b7160e01b600052604160045260246000fd5b80604052506020840135815261069e60408501610605565b60208201526106af60608501610605565b6040820152809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106e8576106e86106bf565b92915050565b6001600160801b0381811683821601908082111561070e5761070e6106bf565b5092915050565b808201808211156106e8576106e86106bf56fea2646970667358221220af04065c5d35d3460abc2711367000a2134970c84818233d66386f35794dfb5b64736f6c63430008130033a2646970667358221220022e94d4ec2e139486be793ccd0a8adc660dbcb526c820d52e52c49b3ca0a2c064736f6c63430008130033",
110
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632ab8b1151461004657806350f9c5ba1461007557806388d49a6214610088575b600080fd5b610059610054366004610289565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b610059610083366004610289565b61012a565b6100596100963660046102b3565b6101a5565b60008082846040516100ac90610260565b6001600160a01b0390911681526020018190604051809103906000f59050801580156100dc573d6000803e3d6000fd5b50604080516001600160a01b038088168252831660208201529192507f5b0ee1fb14fdb4a34ba9f0dda6790b059be11d8b3a954905dbad3c025c05c9c6910160405180910390a19392505050565b600061019e826040518060200161014090610260565b601f1982820381018352601f9091011660408181526001600160a01b03881660208301520160408051601f198184030181529082905261018392916020016102fe565b6040516020818303038152906040528051906020012061022e565b9392505050565b600080826040516101b590610260565b6001600160a01b039091168152602001604051809103906000f0801580156101e1573d6000803e3d6000fd5b50604080516001600160a01b038087168252831660208201529192507f5b0ee1fb14fdb4a34ba9f0dda6790b059be11d8b3a954905dbad3c025c05c9c6910160405180910390a192915050565b600061019e8383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b61091e8061031c83390190565b80356001600160a01b038116811461028457600080fd5b919050565b6000806040838503121561029c57600080fd5b6102a58361026d565b946020939093013593505050565b6000602082840312156102c557600080fd5b61019e8261026d565b6000815160005b818110156102ef57602081850181015186830152016102d5565b50600093019283525090919050565b600061031361030d83866102ce565b846102ce565b94935050505056fe608060405234801561001057600080fd5b5060405161091e38038061091e83398101604081905261002f91610181565b61003833610057565b6001600160a01b038116331461005157610051816100a7565b506101b1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100af610125565b6001600160a01b0381166101195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61012281610057565b50565b6000546001600160a01b0316331461017f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610110565b565b60006020828403121561019357600080fd5b81516001600160a01b03811681146101aa57600080fd5b9392505050565b61075e806101c06000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063715018a6146100675780638da5cb5b14610071578063d79a824014610091578063ddfdfbb0146100bf578063f2fde38b146100d2578063fc411683146100e5575b600080fd5b61006f6100f8565b005b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100a461009f366004610531565b61010c565b60408051938452602084019290925290820152606001610088565b61006f6100cd366004610586565b6101bf565b61006f6100e03660046105c8565b61039a565b61006f6100f33660046105c8565b610418565b610100610429565b61010a6000610483565b565b600080808061011d858701876105ec565b6001600160a01b038816600090815260016020526040902054909150808210610159576040516387332c0160e01b815260040160405180910390fd5b506001600160a01b0396909616600090815260026020908152604080832098835297815290879020875160608101895281548082526001909201546001600160801b03808216948301859052600160801b90910416980188905297909695509350505050565b6101c7610429565b6000806101d683850185610621565b9150915080604001516001600160801b031681602001516001600160801b031611156102155760405163123974fd60e01b815260040160405180910390fd5b6001600160a01b038216600090815260016020526040902054801561028e576001600160a01b0383166000908152600260205260408120906102586001846106d5565b815260200190815260200160002060010160109054906101000a90046001600160801b0316600161028991906106ee565b610291565b60005b6001600160801b031682602001516001600160801b0316146102c65760405163118b891b60e01b815260040160405180910390fd5b6001600160a01b03831660009081526002602090815260408083208484528252918290208451815590840151918401516001600160801b03908116600160801b0292169190911760019182015561031e908290610715565b6001600160a01b03841660008181526001602090815260409182902093909355805185518152858401516001600160801b03908116948201949094528582015190931690830152907fb71880d7a0c514d48c0296b2721b0a4f9641a45117960f2ca86b5b7873c4ab2f9060600160405180910390a25050505050565b6103a2610429565b6001600160a01b03811661040c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61041581610483565b50565b610420610429565b6104158161039a565b6000546001600160a01b0316331461010a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610403565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461041557600080fd5b60008083601f8401126104fa57600080fd5b50813567ffffffffffffffff81111561051257600080fd5b60208301915083602082850101111561052a57600080fd5b9250929050565b60008060006040848603121561054657600080fd5b8335610551816104d3565b9250602084013567ffffffffffffffff81111561056d57600080fd5b610579868287016104e8565b9497909650939450505050565b6000806020838503121561059957600080fd5b823567ffffffffffffffff8111156105b057600080fd5b6105bc858286016104e8565b90969095509350505050565b6000602082840312156105da57600080fd5b81356105e5816104d3565b9392505050565b6000602082840312156105fe57600080fd5b5035919050565b80356001600160801b038116811461061c57600080fd5b919050565b600080828403608081121561063557600080fd5b8335610640816104d3565b92506060601f198201121561065457600080fd5b506040516060810181811067ffffffffffffffff8211171561068657634e487b7160e01b600052604160045260246000fd5b80604052506020840135815261069e60408501610605565b60208201526106af60608501610605565b6040820152809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106e8576106e86106bf565b92915050565b6001600160801b0381811683821601908082111561070e5761070e6106bf565b5092915050565b808201808211156106e8576106e86106bf56fea2646970667358221220af04065c5d35d3460abc2711367000a2134970c84818233d66386f35794dfb5b64736f6c63430008130033a2646970667358221220022e94d4ec2e139486be793ccd0a8adc660dbcb526c820d52e52c49b3ca0a2c064736f6c63430008130033",
111
+ "devdoc": {
112
+ "events": {
113
+ "HistoryCreated(address,address)": {
114
+ "details": "MUST be triggered on a successful call to `newHistory`.",
115
+ "params": {
116
+ "history": "The history",
117
+ "historyOwner": "The initial history owner"
118
+ }
119
+ }
120
+ },
121
+ "kind": "dev",
122
+ "methods": {
123
+ "calculateHistoryAddress(address,bytes32)": {
124
+ "details": "Beware that only the `newHistory` function with the `_salt` parameter is able to deterministically deploy a history.",
125
+ "params": {
126
+ "_historyOwner": "The initial history owner",
127
+ "_salt": "The salt used to deterministically generate the history address"
128
+ },
129
+ "returns": {
130
+ "_0": "The deterministic history address"
131
+ }
132
+ },
133
+ "newHistory(address)": {
134
+ "details": "On success, MUST emit a `HistoryCreated` event.",
135
+ "params": {
136
+ "_historyOwner": "The initial history owner"
137
+ },
138
+ "returns": {
139
+ "_0": "The history"
140
+ }
141
+ },
142
+ "newHistory(address,bytes32)": {
143
+ "details": "On success, MUST emit a `HistoryCreated` event.",
144
+ "params": {
145
+ "_historyOwner": "The initial history owner",
146
+ "_salt": "The salt used to deterministically generate the history address"
147
+ },
148
+ "returns": {
149
+ "_0": "The history"
150
+ }
151
+ }
152
+ },
153
+ "title": "History Factory",
154
+ "version": 1
155
+ },
156
+ "userdoc": {
157
+ "events": {
158
+ "HistoryCreated(address,address)": {
159
+ "notice": "A new history was deployed."
160
+ }
161
+ },
162
+ "kind": "user",
163
+ "methods": {
164
+ "calculateHistoryAddress(address,bytes32)": {
165
+ "notice": "Calculate the address of a history to be deployed deterministically."
166
+ },
167
+ "newHistory(address)": {
168
+ "notice": "Deploy a new history."
169
+ },
170
+ "newHistory(address,bytes32)": {
171
+ "notice": "Deploy a new history deterministically."
172
+ }
173
+ },
174
+ "notice": "Allows anyone to reliably deploy a new `History` contract.",
175
+ "version": 1
176
+ }
177
+ }
@@ -0,0 +1,207 @@
1
+ {
2
+ "address": "0x59b22D57D4f067708AB0c00552767405926dc768",
3
+ "abi": [
4
+ {
5
+ "inputs": [],
6
+ "name": "InputSizeExceedsLimit",
7
+ "type": "error"
8
+ },
9
+ {
10
+ "anonymous": false,
11
+ "inputs": [
12
+ {
13
+ "indexed": true,
14
+ "internalType": "address",
15
+ "name": "dapp",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "indexed": true,
20
+ "internalType": "uint256",
21
+ "name": "inputIndex",
22
+ "type": "uint256"
23
+ },
24
+ {
25
+ "indexed": false,
26
+ "internalType": "address",
27
+ "name": "sender",
28
+ "type": "address"
29
+ },
30
+ {
31
+ "indexed": false,
32
+ "internalType": "bytes",
33
+ "name": "input",
34
+ "type": "bytes"
35
+ }
36
+ ],
37
+ "name": "InputAdded",
38
+ "type": "event"
39
+ },
40
+ {
41
+ "inputs": [
42
+ {
43
+ "internalType": "address",
44
+ "name": "_dapp",
45
+ "type": "address"
46
+ },
47
+ {
48
+ "internalType": "bytes",
49
+ "name": "_input",
50
+ "type": "bytes"
51
+ }
52
+ ],
53
+ "name": "addInput",
54
+ "outputs": [
55
+ {
56
+ "internalType": "bytes32",
57
+ "name": "",
58
+ "type": "bytes32"
59
+ }
60
+ ],
61
+ "stateMutability": "nonpayable",
62
+ "type": "function"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "address",
68
+ "name": "_dapp",
69
+ "type": "address"
70
+ },
71
+ {
72
+ "internalType": "uint256",
73
+ "name": "_index",
74
+ "type": "uint256"
75
+ }
76
+ ],
77
+ "name": "getInputHash",
78
+ "outputs": [
79
+ {
80
+ "internalType": "bytes32",
81
+ "name": "",
82
+ "type": "bytes32"
83
+ }
84
+ ],
85
+ "stateMutability": "view",
86
+ "type": "function"
87
+ },
88
+ {
89
+ "inputs": [
90
+ {
91
+ "internalType": "address",
92
+ "name": "_dapp",
93
+ "type": "address"
94
+ }
95
+ ],
96
+ "name": "getNumberOfInputs",
97
+ "outputs": [
98
+ {
99
+ "internalType": "uint256",
100
+ "name": "",
101
+ "type": "uint256"
102
+ }
103
+ ],
104
+ "stateMutability": "view",
105
+ "type": "function"
106
+ }
107
+ ],
108
+ "transactionHash": "0x2bede5a07ad7341838ed6007eb5436a5386c8c1c00de9d0e8be7865c623c6843",
109
+ "receipt": {
110
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
111
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
112
+ "contractAddress": null,
113
+ "transactionIndex": 0,
114
+ "gasUsed": "260728",
115
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
116
+ "blockHash": "0x20c03348e399eebdb9f4b93627e7c1f2bd647043873be433c407d0447b3ad235",
117
+ "transactionHash": "0x2bede5a07ad7341838ed6007eb5436a5386c8c1c00de9d0e8be7865c623c6843",
118
+ "logs": [],
119
+ "blockNumber": 7,
120
+ "cumulativeGasUsed": "260728",
121
+ "status": 1,
122
+ "byzantium": true
123
+ },
124
+ "args": [],
125
+ "numDeployments": 1,
126
+ "bytecode": "0x608060405234801561001057600080fd5b506103be806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631789cd631461004657806361a93c871461006b578063677087c914610094575b600080fd5b610059610054366004610253565b6100a7565b60405190815260200160405180910390f35b6100596100793660046102d6565b6001600160a01b031660009081526020819052604090205490565b6100596100a23660046102f8565b61013b565b6001600160a01b03831660009081526020819052604081208054826100d0334342898987610178565b83546001810185556000858152602090200181905560405190915082906001600160a01b038916907f6aaa400068bf4ca337265e2a1e1e841f66b8597fd5b452fdc52a44bed28a0784906101299033908b908b90610322565b60405180910390a39695505050505050565b6001600160a01b038216600090815260208190526040812080548390811061016557610165610362565b9060005260206000200154905092915050565b6000621fffc083111561019e57604051634273a49560e11b815260040160405180910390fd5b604080516001600160a01b03891660208201529081018790526060810186905260006080820181905260a082018490529060c001604051602081830303815290604052805190602001209050600085856040516101fc929190610378565b604080519182900382206020808401959095528282015280518083038201815260609092019052805192019190912098975050505050505050565b80356001600160a01b038116811461024e57600080fd5b919050565b60008060006040848603121561026857600080fd5b61027184610237565b9250602084013567ffffffffffffffff8082111561028e57600080fd5b818601915086601f8301126102a257600080fd5b8135818111156102b157600080fd5b8760208285010111156102c357600080fd5b6020830194508093505050509250925092565b6000602082840312156102e857600080fd5b6102f182610237565b9392505050565b6000806040838503121561030b57600080fd5b61031483610237565b946020939093013593505050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052603260045260246000fd5b818382376000910190815291905056fea264697066735822122043b0a58952371efb5f75573ec65e82305da7154e6338f4e9c00f5cc07f92c4af64736f6c63430008130033",
127
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80631789cd631461004657806361a93c871461006b578063677087c914610094575b600080fd5b610059610054366004610253565b6100a7565b60405190815260200160405180910390f35b6100596100793660046102d6565b6001600160a01b031660009081526020819052604090205490565b6100596100a23660046102f8565b61013b565b6001600160a01b03831660009081526020819052604081208054826100d0334342898987610178565b83546001810185556000858152602090200181905560405190915082906001600160a01b038916907f6aaa400068bf4ca337265e2a1e1e841f66b8597fd5b452fdc52a44bed28a0784906101299033908b908b90610322565b60405180910390a39695505050505050565b6001600160a01b038216600090815260208190526040812080548390811061016557610165610362565b9060005260206000200154905092915050565b6000621fffc083111561019e57604051634273a49560e11b815260040160405180910390fd5b604080516001600160a01b03891660208201529081018790526060810186905260006080820181905260a082018490529060c001604051602081830303815290604052805190602001209050600085856040516101fc929190610378565b604080519182900382206020808401959095528282015280518083038201815260609092019052805192019190912098975050505050505050565b80356001600160a01b038116811461024e57600080fd5b919050565b60008060006040848603121561026857600080fd5b61027184610237565b9250602084013567ffffffffffffffff8082111561028e57600080fd5b818601915086601f8301126102a257600080fd5b8135818111156102b157600080fd5b8760208285010111156102c357600080fd5b6020830194508093505050509250925092565b6000602082840312156102e857600080fd5b6102f182610237565b9392505050565b6000806040838503121561030b57600080fd5b61031483610237565b946020939093013593505050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b600052603260045260246000fd5b818382376000910190815291905056fea264697066735822122043b0a58952371efb5f75573ec65e82305da7154e6338f4e9c00f5cc07f92c4af64736f6c63430008130033",
128
+ "devdoc": {
129
+ "events": {
130
+ "InputAdded(address,uint256,address,bytes)": {
131
+ "details": "MUST be triggered on a successful call to `addInput`.",
132
+ "params": {
133
+ "dapp": "The address of the DApp",
134
+ "input": "The contents of the input",
135
+ "inputIndex": "The index of the input in the input box",
136
+ "sender": "The address that sent the input"
137
+ }
138
+ }
139
+ },
140
+ "kind": "dev",
141
+ "methods": {
142
+ "addInput(address,bytes)": {
143
+ "details": "MUST fire an `InputAdded` event accordingly. Input larger than machine limit will raise `InputSizeExceedsLimit` error.",
144
+ "params": {
145
+ "_dapp": "The address of the DApp",
146
+ "_input": "The contents of the input"
147
+ },
148
+ "returns": {
149
+ "_0": "The hash of the input plus some extra metadata"
150
+ }
151
+ },
152
+ "getInputHash(address,uint256)": {
153
+ "details": "`_index` MUST be in the interval `[0,n)` where `n` is the number of inputs in the DApp's input box. See the `getNumberOfInputs` function.",
154
+ "params": {
155
+ "_dapp": "The address of the DApp",
156
+ "_index": "The index of the input in the DApp's input box"
157
+ },
158
+ "returns": {
159
+ "_0": "The hash of the input at the provided index in the DApp's input box"
160
+ }
161
+ },
162
+ "getNumberOfInputs(address)": {
163
+ "params": {
164
+ "_dapp": "The address of the DApp"
165
+ },
166
+ "returns": {
167
+ "_0": "Number of inputs in the DApp's input box"
168
+ }
169
+ }
170
+ },
171
+ "stateVariables": {
172
+ "inputBoxes": {
173
+ "details": "See the `getNumberOfInputs`, `getInputHash` and `addInput` functions."
174
+ }
175
+ },
176
+ "title": "Input Box",
177
+ "version": 1
178
+ },
179
+ "userdoc": {
180
+ "errors": {
181
+ "InputSizeExceedsLimit()": [
182
+ {
183
+ "notice": "Raised when input is larger than the machine limit."
184
+ }
185
+ ]
186
+ },
187
+ "events": {
188
+ "InputAdded(address,uint256,address,bytes)": {
189
+ "notice": "Emitted when an input is added to a DApp's input box."
190
+ }
191
+ },
192
+ "kind": "user",
193
+ "methods": {
194
+ "addInput(address,bytes)": {
195
+ "notice": "Add an input to a DApp's input box."
196
+ },
197
+ "getInputHash(address,uint256)": {
198
+ "notice": "Get the hash of an input in a DApp's input box."
199
+ },
200
+ "getNumberOfInputs(address)": {
201
+ "notice": "Get the number of inputs in a DApp's input box."
202
+ }
203
+ },
204
+ "notice": "Trustless and permissionless contract that receives arbitrary blobs (called \"inputs\") from anyone and adds a compound hash to an append-only list (called \"input box\"). Each DApp has its own input box. The hash that is stored on-chain is composed by the hash of the input blob, the block number and timestamp, the input sender address, and the input index. Data availability is guaranteed by the emission of `InputAdded` events on every successful call to `addInput`. This ensures that inputs can be retrieved by anyone at any time, without having to rely on centralized data providers. From the perspective of this contract, inputs are encoding-agnostic byte arrays. It is up to the DApp to interpret, validate and act upon inputs.",
205
+ "version": 1
206
+ }
207
+ }