@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,177 @@
1
+ {
2
+ "address": "0xf26a5b278C25D8D41A136d22Ad719EACEd9c3e63",
3
+ "abi": [
4
+ {
5
+ "anonymous": false,
6
+ "inputs": [
7
+ {
8
+ "indexed": false,
9
+ "internalType": "address",
10
+ "name": "authorityOwner",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "indexed": false,
15
+ "internalType": "contract Authority",
16
+ "name": "authority",
17
+ "type": "address"
18
+ }
19
+ ],
20
+ "name": "AuthorityCreated",
21
+ "type": "event"
22
+ },
23
+ {
24
+ "inputs": [
25
+ {
26
+ "internalType": "address",
27
+ "name": "_authorityOwner",
28
+ "type": "address"
29
+ },
30
+ {
31
+ "internalType": "bytes32",
32
+ "name": "_salt",
33
+ "type": "bytes32"
34
+ }
35
+ ],
36
+ "name": "calculateAuthorityAddress",
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": "_authorityOwner",
52
+ "type": "address"
53
+ },
54
+ {
55
+ "internalType": "bytes32",
56
+ "name": "_salt",
57
+ "type": "bytes32"
58
+ }
59
+ ],
60
+ "name": "newAuthority",
61
+ "outputs": [
62
+ {
63
+ "internalType": "contract Authority",
64
+ "name": "",
65
+ "type": "address"
66
+ }
67
+ ],
68
+ "stateMutability": "nonpayable",
69
+ "type": "function"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "_authorityOwner",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "newAuthority",
80
+ "outputs": [
81
+ {
82
+ "internalType": "contract Authority",
83
+ "name": "",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "stateMutability": "nonpayable",
88
+ "type": "function"
89
+ }
90
+ ],
91
+ "transactionHash": "0xc79e80f307c9b9d09306c30bea1ebe339304df306560d7bf95c955ee8d3ebee4",
92
+ "receipt": {
93
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
94
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
95
+ "contractAddress": null,
96
+ "transactionIndex": 0,
97
+ "gasUsed": "756894",
98
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
99
+ "blockHash": "0xec7077349d3ce2e160544d084c4a0781e7cd04db515e43a00f2f95ef7a73cab6",
100
+ "transactionHash": "0xc79e80f307c9b9d09306c30bea1ebe339304df306560d7bf95c955ee8d3ebee4",
101
+ "logs": [],
102
+ "blockNumber": 14,
103
+ "cumulativeGasUsed": "756894",
104
+ "status": 1,
105
+ "byzantium": true
106
+ },
107
+ "args": [],
108
+ "numDeployments": 1,
109
+ "bytecode": "0x608060405234801561001057600080fd5b50610cb5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100405760003560e01c80629c5784146100455780635a3f27d314610074578063b3a51b8414610087575b600080fd5b610058610053366004610288565b61009a565b6040516001600160a01b03909116815260200160405180910390f35b610058610082366004610288565b610115565b6100586100953660046102b2565b6101a4565b600061010e82604051806020016100b09061025f565b601f1982820381018352601f9091011660408181526001600160a01b03881660208301520160408051601f19818403018152908290526100f392916020016102fd565b6040516020818303038152906040528051906020012061022d565b9392505050565b60008082846040516101269061025f565b6001600160a01b0390911681526020018190604051809103906000f5905080158015610156573d6000803e3d6000fd5b50604080516001600160a01b038088168252831660208201529192507f0fb2d916aa6a78060ff9e89d89d62797c6668818dec04969013c5098754380ec910160405180910390a19392505050565b600080826040516101b49061025f565b6001600160a01b039091168152602001604051809103906000f0801580156101e0573d6000803e3d6000fd5b50604080516001600160a01b038087168252831660208201529192507f0fb2d916aa6a78060ff9e89d89d62797c6668818dec04969013c5098754380ec910160405180910390a192915050565b600061010e8383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6109658061031b83390190565b80356001600160a01b038116811461028357600080fd5b919050565b6000806040838503121561029b57600080fd5b6102a48361026c565b946020939093013593505050565b6000602082840312156102c457600080fd5b61010e8261026c565b6000815160005b818110156102ee57602081850181015186830152016102d4565b50600093019283525090919050565b600061031261030c83866102cd565b846102cd565b94935050505056fe608060405234801561001057600080fd5b5060405161096538038061096583398101604081905261002f91610181565b61003833610057565b336001600160a01b0382161461005157610051816100a7565b506101b1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100af610125565b6001600160a01b0381166101195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61012281610057565b50565b6000546001600160a01b0316331461017f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610110565b565b60006020828403121561019357600080fd5b81516001600160a01b03811681146101aa57600080fd5b9392505050565b6107a5806101c06000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063b688a36311610066578063b688a3631461010e578063bcdd1e1314610116578063d79a824014610129578063ddfdfbb014610157578063f2fde38b1461016a57600080fd5b8063159c5ea1146100a3578063715018a6146100b85780638da5cb5b146100c05780639368a3d3146100ea578063aa15efc8146100fd575b600080fd5b6100b66100b1366004610567565b61017d565b005b6100b66101d9565b6000546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6100b66100f8366004610567565b6101ed565b6001546001600160a01b03166100cd565b6100b6610257565b6100b661012436600461058b565b61028c565b61013c610137366004610615565b610331565b604080519384526020840192909252908201526060016100e1565b6100b661016536600461066a565b6103ba565b6100b6610178366004610567565b61042a565b6101856104a8565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f2bcd43869347a1d42f97ac6042f3d129817abd05a6125f9750fe3724e321d23e9060200160405180910390a150565b6101e16104a8565b6101eb6000610502565b565b6101f56104a8565b60015460405163fc41168360e01b81526001600160a01b0383811660048301529091169063fc41168390602401600060405180830381600087803b15801561023c57600080fd5b505af1158015610250573d6000803e3d6000fd5b5050505050565b6040513381527f27c2b702d3bff195a18baca2daf00b20a986177c5f1449af4e2d46a3c3e02ce59060200160405180910390a1565b6102946104a8565b60405163a9059cbb60e01b81526001600160a01b038381166004830152602482018390526000919085169063a9059cbb906044016020604051808303816000875af11580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b91906106ac565b90508061032b5760405163099e1ca760e11b815260040160405180910390fd5b50505050565b60015460405163035e6a0960e61b8152600091829182916001600160a01b03169063d79a82409061036a908990899089906004016106f7565b606060405180830381865afa158015610387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ab9190610725565b92509250925093509350939050565b6103c26104a8565b600154604051630ddfdfbb60e41b81526001600160a01b039091169063ddfdfbb0906103f49085908590600401610753565b600060405180830381600087803b15801561040e57600080fd5b505af1158015610422573d6000803e3d6000fd5b505050505050565b6104326104a8565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6104a581610502565b50565b6000546001600160a01b031633146101eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610493565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146104a557600080fd5b60006020828403121561057957600080fd5b813561058481610552565b9392505050565b6000806000606084860312156105a057600080fd5b83356105ab81610552565b925060208401356105bb81610552565b929592945050506040919091013590565b60008083601f8401126105de57600080fd5b50813567ffffffffffffffff8111156105f657600080fd5b60208301915083602082850101111561060e57600080fd5b9250929050565b60008060006040848603121561062a57600080fd5b833561063581610552565b9250602084013567ffffffffffffffff81111561065157600080fd5b61065d868287016105cc565b9497909650939450505050565b6000806020838503121561067d57600080fd5b823567ffffffffffffffff81111561069457600080fd5b6106a0858286016105cc565b90969095509350505050565b6000602082840312156106be57600080fd5b8151801515811461058457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061071c90830184866106ce565b95945050505050565b60008060006060848603121561073a57600080fd5b8351925060208401519150604084015190509250925092565b6020815260006107676020830184866106ce565b94935050505056fea2646970667358221220c0785a1cc37ffa8f096145bce62f62d9cae719c200dba5e33a279c7f0894965164736f6c63430008130033a26469706673582212202de7e9a1b007ca2f3a7a6c53b2972dc3f889e83efde5ce289389b45306e1fe7864736f6c63430008130033",
110
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100405760003560e01c80629c5784146100455780635a3f27d314610074578063b3a51b8414610087575b600080fd5b610058610053366004610288565b61009a565b6040516001600160a01b03909116815260200160405180910390f35b610058610082366004610288565b610115565b6100586100953660046102b2565b6101a4565b600061010e82604051806020016100b09061025f565b601f1982820381018352601f9091011660408181526001600160a01b03881660208301520160408051601f19818403018152908290526100f392916020016102fd565b6040516020818303038152906040528051906020012061022d565b9392505050565b60008082846040516101269061025f565b6001600160a01b0390911681526020018190604051809103906000f5905080158015610156573d6000803e3d6000fd5b50604080516001600160a01b038088168252831660208201529192507f0fb2d916aa6a78060ff9e89d89d62797c6668818dec04969013c5098754380ec910160405180910390a19392505050565b600080826040516101b49061025f565b6001600160a01b039091168152602001604051809103906000f0801580156101e0573d6000803e3d6000fd5b50604080516001600160a01b038087168252831660208201529192507f0fb2d916aa6a78060ff9e89d89d62797c6668818dec04969013c5098754380ec910160405180910390a192915050565b600061010e8383306000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6109658061031b83390190565b80356001600160a01b038116811461028357600080fd5b919050565b6000806040838503121561029b57600080fd5b6102a48361026c565b946020939093013593505050565b6000602082840312156102c457600080fd5b61010e8261026c565b6000815160005b818110156102ee57602081850181015186830152016102d4565b50600093019283525090919050565b600061031261030c83866102cd565b846102cd565b94935050505056fe608060405234801561001057600080fd5b5060405161096538038061096583398101604081905261002f91610181565b61003833610057565b336001600160a01b0382161461005157610051816100a7565b506101b1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100af610125565b6001600160a01b0381166101195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61012281610057565b50565b6000546001600160a01b0316331461017f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610110565b565b60006020828403121561019357600080fd5b81516001600160a01b03811681146101aa57600080fd5b9392505050565b6107a5806101c06000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063b688a36311610066578063b688a3631461010e578063bcdd1e1314610116578063d79a824014610129578063ddfdfbb014610157578063f2fde38b1461016a57600080fd5b8063159c5ea1146100a3578063715018a6146100b85780638da5cb5b146100c05780639368a3d3146100ea578063aa15efc8146100fd575b600080fd5b6100b66100b1366004610567565b61017d565b005b6100b66101d9565b6000546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b6100b66100f8366004610567565b6101ed565b6001546001600160a01b03166100cd565b6100b6610257565b6100b661012436600461058b565b61028c565b61013c610137366004610615565b610331565b604080519384526020840192909252908201526060016100e1565b6100b661016536600461066a565b6103ba565b6100b6610178366004610567565b61042a565b6101856104a8565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f2bcd43869347a1d42f97ac6042f3d129817abd05a6125f9750fe3724e321d23e9060200160405180910390a150565b6101e16104a8565b6101eb6000610502565b565b6101f56104a8565b60015460405163fc41168360e01b81526001600160a01b0383811660048301529091169063fc41168390602401600060405180830381600087803b15801561023c57600080fd5b505af1158015610250573d6000803e3d6000fd5b5050505050565b6040513381527f27c2b702d3bff195a18baca2daf00b20a986177c5f1449af4e2d46a3c3e02ce59060200160405180910390a1565b6102946104a8565b60405163a9059cbb60e01b81526001600160a01b038381166004830152602482018390526000919085169063a9059cbb906044016020604051808303816000875af11580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b91906106ac565b90508061032b5760405163099e1ca760e11b815260040160405180910390fd5b50505050565b60015460405163035e6a0960e61b8152600091829182916001600160a01b03169063d79a82409061036a908990899089906004016106f7565b606060405180830381865afa158015610387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ab9190610725565b92509250925093509350939050565b6103c26104a8565b600154604051630ddfdfbb60e41b81526001600160a01b039091169063ddfdfbb0906103f49085908590600401610753565b600060405180830381600087803b15801561040e57600080fd5b505af1158015610422573d6000803e3d6000fd5b505050505050565b6104326104a8565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6104a581610502565b50565b6000546001600160a01b031633146101eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610493565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146104a557600080fd5b60006020828403121561057957600080fd5b813561058481610552565b9392505050565b6000806000606084860312156105a057600080fd5b83356105ab81610552565b925060208401356105bb81610552565b929592945050506040919091013590565b60008083601f8401126105de57600080fd5b50813567ffffffffffffffff8111156105f657600080fd5b60208301915083602082850101111561060e57600080fd5b9250929050565b60008060006040848603121561062a57600080fd5b833561063581610552565b9250602084013567ffffffffffffffff81111561065157600080fd5b61065d868287016105cc565b9497909650939450505050565b6000806020838503121561067d57600080fd5b823567ffffffffffffffff81111561069457600080fd5b6106a0858286016105cc565b90969095509350505050565b6000602082840312156106be57600080fd5b8151801515811461058457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061071c90830184866106ce565b95945050505050565b60008060006060848603121561073a57600080fd5b8351925060208401519150604084015190509250925092565b6020815260006107676020830184866106ce565b94935050505056fea2646970667358221220c0785a1cc37ffa8f096145bce62f62d9cae719c200dba5e33a279c7f0894965164736f6c63430008130033a26469706673582212202de7e9a1b007ca2f3a7a6c53b2972dc3f889e83efde5ce289389b45306e1fe7864736f6c63430008130033",
111
+ "devdoc": {
112
+ "events": {
113
+ "AuthorityCreated(address,address)": {
114
+ "details": "MUST be triggered on a successful call to `newAuthority`.",
115
+ "params": {
116
+ "authority": "The authority",
117
+ "authorityOwner": "The initial authority owner"
118
+ }
119
+ }
120
+ },
121
+ "kind": "dev",
122
+ "methods": {
123
+ "calculateAuthorityAddress(address,bytes32)": {
124
+ "details": "Beware that only the `newAuthority` function with the `_salt` parameter is able to deterministically deploy an authority.",
125
+ "params": {
126
+ "_authorityOwner": "The initial authority owner",
127
+ "_salt": "The salt used to deterministically generate the authority address"
128
+ },
129
+ "returns": {
130
+ "_0": "The deterministic authority address"
131
+ }
132
+ },
133
+ "newAuthority(address)": {
134
+ "details": "On success, MUST emit an `AuthorityCreated` event.",
135
+ "params": {
136
+ "_authorityOwner": "The initial authority owner"
137
+ },
138
+ "returns": {
139
+ "_0": "The authority"
140
+ }
141
+ },
142
+ "newAuthority(address,bytes32)": {
143
+ "details": "On success, MUST emit an `AuthorityCreated` event.",
144
+ "params": {
145
+ "_authorityOwner": "The initial authority owner",
146
+ "_salt": "The salt used to deterministically generate the authority address"
147
+ },
148
+ "returns": {
149
+ "_0": "The authority"
150
+ }
151
+ }
152
+ },
153
+ "title": "Authority Factory",
154
+ "version": 1
155
+ },
156
+ "userdoc": {
157
+ "events": {
158
+ "AuthorityCreated(address,address)": {
159
+ "notice": "A new authority was deployed."
160
+ }
161
+ },
162
+ "kind": "user",
163
+ "methods": {
164
+ "calculateAuthorityAddress(address,bytes32)": {
165
+ "notice": "Calculate the address of an authority to be deployed deterministically."
166
+ },
167
+ "newAuthority(address)": {
168
+ "notice": "Deploy a new authority."
169
+ },
170
+ "newAuthority(address,bytes32)": {
171
+ "notice": "Deploy a new authority deterministically."
172
+ }
173
+ },
174
+ "notice": "Allows anyone to reliably deploy a new `Authority` contract.",
175
+ "version": 1
176
+ }
177
+ }
@@ -0,0 +1,276 @@
1
+ {
2
+ "address": "0x3890A047Cf9Af60731E80B2105362BbDCD70142D",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "contract IAuthorityFactory",
8
+ "name": "_authorityFactory",
9
+ "type": "address"
10
+ },
11
+ {
12
+ "internalType": "contract IHistoryFactory",
13
+ "name": "_historyFactory",
14
+ "type": "address"
15
+ }
16
+ ],
17
+ "stateMutability": "nonpayable",
18
+ "type": "constructor"
19
+ },
20
+ {
21
+ "anonymous": false,
22
+ "inputs": [
23
+ {
24
+ "indexed": false,
25
+ "internalType": "contract IAuthorityFactory",
26
+ "name": "authorityFactory",
27
+ "type": "address"
28
+ },
29
+ {
30
+ "indexed": false,
31
+ "internalType": "contract IHistoryFactory",
32
+ "name": "historyFactory",
33
+ "type": "address"
34
+ }
35
+ ],
36
+ "name": "AuthorityHistoryPairFactoryCreated",
37
+ "type": "event"
38
+ },
39
+ {
40
+ "inputs": [
41
+ {
42
+ "internalType": "address",
43
+ "name": "_authorityOwner",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "internalType": "bytes32",
48
+ "name": "_salt",
49
+ "type": "bytes32"
50
+ }
51
+ ],
52
+ "name": "calculateAuthorityHistoryAddressPair",
53
+ "outputs": [
54
+ {
55
+ "internalType": "address",
56
+ "name": "authorityAddress_",
57
+ "type": "address"
58
+ },
59
+ {
60
+ "internalType": "address",
61
+ "name": "historyAddress_",
62
+ "type": "address"
63
+ }
64
+ ],
65
+ "stateMutability": "view",
66
+ "type": "function"
67
+ },
68
+ {
69
+ "inputs": [],
70
+ "name": "getAuthorityFactory",
71
+ "outputs": [
72
+ {
73
+ "internalType": "contract IAuthorityFactory",
74
+ "name": "",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "stateMutability": "view",
79
+ "type": "function"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "getHistoryFactory",
84
+ "outputs": [
85
+ {
86
+ "internalType": "contract IHistoryFactory",
87
+ "name": "",
88
+ "type": "address"
89
+ }
90
+ ],
91
+ "stateMutability": "view",
92
+ "type": "function"
93
+ },
94
+ {
95
+ "inputs": [
96
+ {
97
+ "internalType": "address",
98
+ "name": "_authorityOwner",
99
+ "type": "address"
100
+ }
101
+ ],
102
+ "name": "newAuthorityHistoryPair",
103
+ "outputs": [
104
+ {
105
+ "internalType": "contract Authority",
106
+ "name": "authority_",
107
+ "type": "address"
108
+ },
109
+ {
110
+ "internalType": "contract History",
111
+ "name": "history_",
112
+ "type": "address"
113
+ }
114
+ ],
115
+ "stateMutability": "nonpayable",
116
+ "type": "function"
117
+ },
118
+ {
119
+ "inputs": [
120
+ {
121
+ "internalType": "address",
122
+ "name": "_authorityOwner",
123
+ "type": "address"
124
+ },
125
+ {
126
+ "internalType": "bytes32",
127
+ "name": "_salt",
128
+ "type": "bytes32"
129
+ }
130
+ ],
131
+ "name": "newAuthorityHistoryPair",
132
+ "outputs": [
133
+ {
134
+ "internalType": "contract Authority",
135
+ "name": "authority_",
136
+ "type": "address"
137
+ },
138
+ {
139
+ "internalType": "contract History",
140
+ "name": "history_",
141
+ "type": "address"
142
+ }
143
+ ],
144
+ "stateMutability": "nonpayable",
145
+ "type": "function"
146
+ }
147
+ ],
148
+ "transactionHash": "0xa3ed028d4443a3d8c352e0f28fe6dddcacdb93fb32077405bfb2746b88d4f5c2",
149
+ "receipt": {
150
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
151
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
152
+ "contractAddress": null,
153
+ "transactionIndex": 0,
154
+ "gasUsed": "460428",
155
+ "logsBloom": "0x00000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000004000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
156
+ "blockHash": "0x8e454fc68f1cc5c9ef774c5fe266cc6df43e81374c500841a04411d394c43fe3",
157
+ "transactionHash": "0xa3ed028d4443a3d8c352e0f28fe6dddcacdb93fb32077405bfb2746b88d4f5c2",
158
+ "logs": [
159
+ {
160
+ "transactionIndex": 0,
161
+ "blockNumber": 16,
162
+ "transactionHash": "0xa3ed028d4443a3d8c352e0f28fe6dddcacdb93fb32077405bfb2746b88d4f5c2",
163
+ "address": "0x3890A047Cf9Af60731E80B2105362BbDCD70142D",
164
+ "topics": [
165
+ "0x030bcdc35fc24f8a53829b016647c842a9d981d1fed3783a7e282b6e6c9ea4a9"
166
+ ],
167
+ "data": "0x000000000000000000000000f26a5b278c25d8d41a136d22ad719eaced9c3e630000000000000000000000001f158b5320bbf677fda89f9a438df99bbe560a26",
168
+ "logIndex": 0,
169
+ "blockHash": "0x8e454fc68f1cc5c9ef774c5fe266cc6df43e81374c500841a04411d394c43fe3"
170
+ }
171
+ ],
172
+ "blockNumber": 16,
173
+ "cumulativeGasUsed": "460428",
174
+ "status": 1,
175
+ "byzantium": true
176
+ },
177
+ "args": [
178
+ "0xf26a5b278C25D8D41A136d22Ad719EACEd9c3e63",
179
+ "0x1f158b5320BBf677FdA89F9a438df99BbE560A26"
180
+ ],
181
+ "numDeployments": 1,
182
+ "bytecode": "0x60c060405234801561001057600080fd5b5060405161086f38038061086f83398101604081905261002f916100a0565b6001600160a01b03828116608081905290821660a08190526040805192835260208301919091527f030bcdc35fc24f8a53829b016647c842a9d981d1fed3783a7e282b6e6c9ea4a9910160405180910390a150506100da565b6001600160a01b038116811461009d57600080fd5b50565b600080604083850312156100b357600080fd5b82516100be81610088565b60208401519092506100cf81610088565b809150509250929050565b60805160a0516107486101276000396000818160f6015281816101ec01528181610313015261051601526000818160960152818161011f01528181610284015261044601526107486000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806339dcd4571461005c57806375689f8314610094578063b05cd1dc146100ce578063d73f347a146100e1578063f16b1a5c146100f4575b600080fd5b61006f61006a3660046106a5565b61011a565b604080516001600160a01b039384168152929091166020830152015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161008b565b61006f6100dc3660046106d1565b610262565b61006f6100ef3660046106a5565b610441565b7f00000000000000000000000000000000000000000000000000000000000000006100b6565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316629c5784306101568787610646565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906106f5565b60405163287ce2dd60e11b81526001600160a01b038083166004830152602482018690529193507f0000000000000000000000000000000000000000000000000000000000000000909116906350f9c5ba90604401602060405180830381865afa158015610235573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025991906106f5565b90509250929050565b604051632ce946e160e21b815230600482015260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b3a51b84906024016020604051808303816000875af11580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f191906106f5565b60405163446a4d3160e11b81526001600160a01b0380831660048301529193507f0000000000000000000000000000000000000000000000000000000000000000909116906388d49a62906024016020604051808303816000875af115801561035e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038291906106f5565b60405163159c5ea160e01b81526001600160a01b0380831660048301529192509083169063159c5ea190602401600060405180830381600087803b1580156103c957600080fd5b505af11580156103dd573d6000803e3d6000fd5b505060405163f2fde38b60e01b81526001600160a01b0386811660048301528516925063f2fde38b9150602401600060405180830381600087803b15801561042457600080fd5b505af1158015610438573d6000803e3d6000fd5b50505050915091565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635a3f27d33061047e8787610646565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156104c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ed91906106f5565b604051632ab8b11560e01b81526001600160a01b038083166004830152602482018690529193507f000000000000000000000000000000000000000000000000000000000000000090911690632ab8b115906044016020604051808303816000875af1158015610561573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058591906106f5565b60405163159c5ea160e01b81526001600160a01b0380831660048301529192509083169063159c5ea190602401600060405180830381600087803b1580156105cc57600080fd5b505af11580156105e0573d6000803e3d6000fd5b505060405163f2fde38b60e01b81526001600160a01b0387811660048301528516925063f2fde38b9150602401600060405180830381600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505050509250929050565b6040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b6001600160a01b03811681146106a257600080fd5b50565b600080604083850312156106b857600080fd5b82356106c38161068d565b946020939093013593505050565b6000602082840312156106e357600080fd5b81356106ee8161068d565b9392505050565b60006020828403121561070757600080fd5b81516106ee8161068d56fea2646970667358221220c9ff4c136426d9ba4f5c3e496e98c529a164caa845ab19e63e0cbefb6f48838664736f6c63430008130033",
183
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806339dcd4571461005c57806375689f8314610094578063b05cd1dc146100ce578063d73f347a146100e1578063f16b1a5c146100f4575b600080fd5b61006f61006a3660046106a5565b61011a565b604080516001600160a01b039384168152929091166020830152015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161008b565b61006f6100dc3660046106d1565b610262565b61006f6100ef3660046106a5565b610441565b7f00000000000000000000000000000000000000000000000000000000000000006100b6565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316629c5784306101568787610646565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906106f5565b60405163287ce2dd60e11b81526001600160a01b038083166004830152602482018690529193507f0000000000000000000000000000000000000000000000000000000000000000909116906350f9c5ba90604401602060405180830381865afa158015610235573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025991906106f5565b90509250929050565b604051632ce946e160e21b815230600482015260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b3a51b84906024016020604051808303816000875af11580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f191906106f5565b60405163446a4d3160e11b81526001600160a01b0380831660048301529193507f0000000000000000000000000000000000000000000000000000000000000000909116906388d49a62906024016020604051808303816000875af115801561035e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038291906106f5565b60405163159c5ea160e01b81526001600160a01b0380831660048301529192509083169063159c5ea190602401600060405180830381600087803b1580156103c957600080fd5b505af11580156103dd573d6000803e3d6000fd5b505060405163f2fde38b60e01b81526001600160a01b0386811660048301528516925063f2fde38b9150602401600060405180830381600087803b15801561042457600080fd5b505af1158015610438573d6000803e3d6000fd5b50505050915091565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635a3f27d33061047e8787610646565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156104c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ed91906106f5565b604051632ab8b11560e01b81526001600160a01b038083166004830152602482018690529193507f000000000000000000000000000000000000000000000000000000000000000090911690632ab8b115906044016020604051808303816000875af1158015610561573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058591906106f5565b60405163159c5ea160e01b81526001600160a01b0380831660048301529192509083169063159c5ea190602401600060405180830381600087803b1580156105cc57600080fd5b505af11580156105e0573d6000803e3d6000fd5b505060405163f2fde38b60e01b81526001600160a01b0387811660048301528516925063f2fde38b9150602401600060405180830381600087803b15801561062757600080fd5b505af115801561063b573d6000803e3d6000fd5b505050509250929050565b6040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b6001600160a01b03811681146106a257600080fd5b50565b600080604083850312156106b857600080fd5b82356106c38161068d565b946020939093013593505050565b6000602082840312156106e357600080fd5b81356106ee8161068d565b9392505050565b60006020828403121561070757600080fd5b81516106ee8161068d56fea2646970667358221220c9ff4c136426d9ba4f5c3e496e98c529a164caa845ab19e63e0cbefb6f48838664736f6c63430008130033",
184
+ "devdoc": {
185
+ "events": {
186
+ "AuthorityHistoryPairFactoryCreated(address,address)": {
187
+ "details": "MUST be emitted on construction.",
188
+ "params": {
189
+ "authorityFactory": "The underlying `Authority` factory",
190
+ "historyFactory": "The underlying `History` factory"
191
+ }
192
+ }
193
+ },
194
+ "kind": "dev",
195
+ "methods": {
196
+ "calculateAuthorityHistoryAddressPair(address,bytes32)": {
197
+ "details": "Beware that only the `newAuthorityHistoryPair` function with the `_salt` parameter is able to deterministically deploy an authority-history pair.",
198
+ "params": {
199
+ "_authorityOwner": "The initial authority owner",
200
+ "_salt": "The salt used to deterministically generate the authority-history address pair"
201
+ },
202
+ "returns": {
203
+ "authorityAddress_": "The deterministic authority address",
204
+ "historyAddress_": "The deterministic history address"
205
+ }
206
+ },
207
+ "constructor": {
208
+ "params": {
209
+ "_authorityFactory": "The `Authority` factory",
210
+ "_historyFactory": "The `History` factory"
211
+ }
212
+ },
213
+ "getAuthorityFactory()": {
214
+ "returns": {
215
+ "_0": "The `Authority` factory"
216
+ }
217
+ },
218
+ "getHistoryFactory()": {
219
+ "returns": {
220
+ "_0": "The `History` factory"
221
+ }
222
+ },
223
+ "newAuthorityHistoryPair(address)": {
224
+ "params": {
225
+ "_authorityOwner": "The initial authority owner"
226
+ },
227
+ "returns": {
228
+ "authority_": "The authority",
229
+ "history_": "The history"
230
+ }
231
+ },
232
+ "newAuthorityHistoryPair(address,bytes32)": {
233
+ "params": {
234
+ "_authorityOwner": "The initial authority owner",
235
+ "_salt": "The salt used to deterministically generate the authority-history pair address"
236
+ },
237
+ "returns": {
238
+ "authority_": "The authority",
239
+ "history_": "The history"
240
+ }
241
+ }
242
+ },
243
+ "title": "Authority-History Pair Factory",
244
+ "version": 1
245
+ },
246
+ "userdoc": {
247
+ "events": {
248
+ "AuthorityHistoryPairFactoryCreated(address,address)": {
249
+ "notice": "The factory was created."
250
+ }
251
+ },
252
+ "kind": "user",
253
+ "methods": {
254
+ "calculateAuthorityHistoryAddressPair(address,bytes32)": {
255
+ "notice": "Calculate the address of an authority-history pair to be deployed deterministically."
256
+ },
257
+ "constructor": {
258
+ "notice": "Constructs the factory."
259
+ },
260
+ "getAuthorityFactory()": {
261
+ "notice": "Get the factory used to deploy `Authority` contracts"
262
+ },
263
+ "getHistoryFactory()": {
264
+ "notice": "Get the factory used to deploy `History` contracts"
265
+ },
266
+ "newAuthorityHistoryPair(address)": {
267
+ "notice": "Deploy a new authority-history pair."
268
+ },
269
+ "newAuthorityHistoryPair(address,bytes32)": {
270
+ "notice": "Deploy a new authority-history pair deterministically."
271
+ }
272
+ },
273
+ "notice": "Allows anyone to reliably deploy a new Authority-History pair.",
274
+ "version": 1
275
+ }
276
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "address": "0xF5B2d8c81cDE4D6238bBf20D3D77DB37df13f735",
3
+ "abi": [],
4
+ "transactionHash": "0x6f41ee843f545edb2142d1de268e3e872fafdb52dbc8e5fa9fa1d8c213594f34",
5
+ "receipt": {
6
+ "to": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
7
+ "from": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
8
+ "contractAddress": null,
9
+ "transactionIndex": 0,
10
+ "gasUsed": "165207",
11
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
12
+ "blockHash": "0x8bc7c952c0e128d004c874dfb4e0e8ad200bb7f645cda7f9958d8c66053aa853",
13
+ "transactionHash": "0x6f41ee843f545edb2142d1de268e3e872fafdb52dbc8e5fa9fa1d8c213594f34",
14
+ "logs": [],
15
+ "blockNumber": 3,
16
+ "cumulativeGasUsed": "165207",
17
+ "status": 1,
18
+ "byzantium": true
19
+ },
20
+ "args": [],
21
+ "numDeployments": 1,
22
+ "bytecode": "0x61020461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c806303fbaf73146100455780636449da101461006c575b600080fd5b610058610053366004610130565b61008e565b604051901515815260200160405180910390f35b81801561007857600080fd5b5061008c610087366004610152565b6100ce565b005b60008061009d610100846101a6565b905060006100ad610100856101ba565b6000928352602095909552506040902054600190931b909216151592915050565b60006100dc610100846101a6565b905060006100ec610100856101ba565b9050821561011057600082815260208690526040902080546001831b179055610129565b600082815260208690526040902080546001831b191690555b5050505050565b6000806040838503121561014357600080fd5b50508035926020909101359150565b60008060006060848603121561016757600080fd5b83359250602084013591506040840135801515811461018557600080fd5b809150509250925092565b634e487b7160e01b600052601260045260246000fd5b6000826101b5576101b5610190565b500490565b6000826101c9576101c9610190565b50069056fea26469706673582212205733658d60667e5a9dc993e1c9ccf5fec105a4cfb880312e0e59e783894e9f8664736f6c63430008140033",
23
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c806303fbaf73146100455780636449da101461006c575b600080fd5b610058610053366004610130565b61008e565b604051901515815260200160405180910390f35b81801561007857600080fd5b5061008c610087366004610152565b6100ce565b005b60008061009d610100846101a6565b905060006100ad610100856101ba565b6000928352602095909552506040902054600190931b909216151592915050565b60006100dc610100846101a6565b905060006100ec610100856101ba565b9050821561011057600082815260208690526040902080546001831b179055610129565b600082815260208690526040902080546001831b191690555b5050505050565b6000806040838503121561014357600080fd5b50508035926020909101359150565b60008060006060848603121561016757600080fd5b83359250602084013591506040840135801515811461018557600080fd5b809150509250925092565b634e487b7160e01b600052601260045260246000fd5b6000826101b5576101b5610190565b500490565b6000826101c9576101c9610190565b50069056fea26469706673582212205733658d60667e5a9dc993e1c9ccf5fec105a4cfb880312e0e59e783894e9f8664736f6c63430008140033",
24
+ "devdoc": {
25
+ "author": "Stephen Chen",
26
+ "kind": "dev",
27
+ "methods": {},
28
+ "title": "Bit Mask Library",
29
+ "version": 1
30
+ },
31
+ "userdoc": {
32
+ "kind": "user",
33
+ "methods": {
34
+ "getBit(mapping(uint256 => uint256) storage,uint256)": {
35
+ "notice": "Get a bit in the bit mask"
36
+ },
37
+ "setBit(mapping(uint256 => uint256) storage,uint256,bool)": {
38
+ "notice": "Set a bit in the bit mask"
39
+ }
40
+ },
41
+ "notice": "Implements bit mask with dynamic array",
42
+ "version": 1
43
+ }
44
+ }