{
	"compiler": {
		"version": "0.8.4+commit.c7e474f2"
	},
	"language": "Solidity",
	"output": {
		"abi": [
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": false,
						"internalType": "address",
						"name": "previousAdmin",
						"type": "address"
					},
					{
						"indexed": false,
						"internalType": "address",
						"name": "newAdmin",
						"type": "address"
					}
				],
				"name": "AdminChanged",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "beacon",
						"type": "address"
					}
				],
				"name": "BeaconUpgraded",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "sender",
						"type": "address"
					},
					{
						"indexed": true,
						"internalType": "uint256",
						"name": "id",
						"type": "uint256"
					},
					{
						"indexed": false,
						"internalType": "uint256",
						"name": "amount",
						"type": "uint256"
					},
					{
						"indexed": false,
						"internalType": "uint256",
						"name": "lockOnBlock",
						"type": "uint256"
					},
					{
						"indexed": false,
						"internalType": "uint256",
						"name": "releaseOnBlock",
						"type": "uint256"
					}
				],
				"name": "LockTokens",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "previousOwner",
						"type": "address"
					},
					{
						"indexed": true,
						"internalType": "address",
						"name": "newOwner",
						"type": "address"
					}
				],
				"name": "OwnershipTransferred",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "receiver",
						"type": "address"
					},
					{
						"indexed": true,
						"internalType": "uint256",
						"name": "id",
						"type": "uint256"
					},
					{
						"indexed": false,
						"internalType": "uint256",
						"name": "amount",
						"type": "uint256"
					}
				],
				"name": "UnlockTokens",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "implementation",
						"type": "address"
					}
				],
				"name": "Upgraded",
				"type": "event"
			},
			{
				"inputs": [],
				"name": "LOCK_DURATION",
				"outputs": [
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"name": "balanceOf",
				"outputs": [
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "initialize",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "investor",
						"type": "address"
					}
				],
				"name": "investorOrderIds",
				"outputs": [
					{
						"internalType": "uint256[]",
						"name": "ids",
						"type": "uint256[]"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address payable",
						"name": "recipient",
						"type": "address"
					}
				],
				"name": "order",
				"outputs": [],
				"stateMutability": "payable",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "orderCount",
				"outputs": [
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					}
				],
				"name": "orders",
				"outputs": [
					{
						"internalType": "address payable",
						"name": "beneficiary",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "amount",
						"type": "uint256"
					},
					{
						"internalType": "uint256",
						"name": "releaseOnBlock",
						"type": "uint256"
					},
					{
						"internalType": "bool",
						"name": "claimed",
						"type": "bool"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "owner",
				"outputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "orderId",
						"type": "uint256"
					}
				],
				"name": "redeem",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "renounceOwnership",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "newOwner",
						"type": "address"
					}
				],
				"name": "transferOwnership",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "newImplementation",
						"type": "address"
					}
				],
				"name": "upgradeTo",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "newImplementation",
						"type": "address"
					},
					{
						"internalType": "bytes",
						"name": "data",
						"type": "bytes"
					}
				],
				"name": "upgradeToAndCall",
				"outputs": [],
				"stateMutability": "payable",
				"type": "function"
			},
			{
				"stateMutability": "payable",
				"type": "receive"
			}
		],
		"devdoc": {
			"kind": "dev",
			"methods": {
				"investorOrderIds(address)": {
					"params": {
						"investor": "The investor address to look up"
					},
					"returns": {
						"ids": "All order IDs that the `investor` has been order"
					}
				},
				"owner()": {
					"details": "Returns the address of the current owner."
				},
				"renounceOwnership()": {
					"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
				},
				"transferOwnership(address)": {
					"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
				},
				"upgradeTo(address)": {
					"details": "Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."
				},
				"upgradeToAndCall(address,bytes)": {
					"details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."
				}
			},
			"stateVariables": {
				"LOCK_DURATION": {
					"details": "the default lock duration for private sale"
				},
				"balanceOf": {
					"details": "balanceOf[investor] = balance"
				},
				"orderCount": {
					"details": "The latest order id for tracking order info"
				},
				"orderIds": {
					"details": "orderIds[investor] = array of order ids"
				},
				"orders": {
					"details": "orders[orderId] = OrderInfo"
				}
			},
			"version": 1
		},
		"userdoc": {
			"events": {
				"LockTokens(address,uint256,uint256,uint256,uint256)": {
					"notice": "Emitted when tokens is locked in the pre-IDO contract"
				},
				"UnlockTokens(address,uint256,uint256)": {
					"notice": "Emitted when tokens is unlocked or claimed by `receiver` from the time-locked contract"
				}
			},
			"kind": "user",
			"methods": {
				"investorOrderIds(address)": {
					"notice": "Look up all order IDs that a specific `investor` address has been order in the pre-IDO contract"
				}
			},
			"version": 1
		}
	},
	"settings": {
		"compilationTarget": {
			"contracts/PrivateSaleSEL.sol": "PrivateSaleSEL"
		},
		"evmVersion": "istanbul",
		"libraries": {},
		"metadata": {
			"bytecodeHash": "ipfs"
		},
		"optimizer": {
			"enabled": false,
			"runs": 200
		},
		"remappings": []
	},
	"sources": {
		"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": {
			"keccak256": "0x9ffedb33e192f8821cbaead72596c79ea87fb28a73f8d3a9f5004449799f8e1b",
			"license": "MIT",
			"urls": [
				"bzz-raw://a4d3a7c2729f266c54345044baf1080fb4a85208059cacea28c95622af4371db",
				"dweb:/ipfs/QmcHCX8reksSoQWjjYRcVoEHckz8AQ7CHKiKfzocpQq3Lg"
			]
		},
		"@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol": {
			"keccak256": "0xba3e051005a0b7f77c465dbcfe6366ce6a72e3845028277e1f794e5e8864e017",
			"license": "MIT",
			"urls": [
				"bzz-raw://bee8f99df2b2366851670f072b010a104be5168555d881a863bfa31e94bab0c2",
				"dweb:/ipfs/QmRE6UfrS9JoBtYk4cqnCmSoVT7xyu4a8SEZoHRLqRM4yn"
			]
		},
		"@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol": {
			"keccak256": "0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908",
			"license": "MIT",
			"urls": [
				"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1",
				"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"
			]
		},
		"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": {
			"keccak256": "0x68861bcc80cacbd498efde75aab6c74a486cc48262660d326c8d7530d9752097",
			"license": "MIT",
			"urls": [
				"bzz-raw://5beb2713aca05976562500789329e8c41320d00bd68ea9247856ec73894c3e3f",
				"dweb:/ipfs/QmQKwkpofsZYAzMZs7uNL7Qq58zVBuhoZCGpD6bJdUwyqy"
			]
		},
		"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol": {
			"keccak256": "0xed65883d4af8d00c76ff9f1b7758c5d8ac4ab82da60f9743c74d31b754b06bc0",
			"license": "MIT",
			"urls": [
				"bzz-raw://78aad9c6e29ac5fe4044a9550a20106ec6b4c3fc5a4a3ebda81efbba9261681f",
				"dweb:/ipfs/QmTP1Fe1jJGZLja2aRKy3MyqaZ8zYjjcujSC1DNPApDe5Q"
			]
		},
		"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol": {
			"keccak256": "0x3f0f878c796dfc7feba6d3c4e3e526c14c7deae8b7bfc71088e3f38fab0d77b3",
			"license": "MIT",
			"urls": [
				"bzz-raw://69bf7d357ce97852f4fb71045919b1bb2c0ad0c820e3f06b9dd4451b2dc5a343",
				"dweb:/ipfs/QmWt96ZviufDu2qqS7Ln6UCJjfLyoFKbo6YKn54ao3o94z"
			]
		},
		"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": {
			"keccak256": "0x0b0d548f6381370d394f7a434f994dc678b3ef3e755de106109d61343a685ea7",
			"license": "MIT",
			"urls": [
				"bzz-raw://d8a3d42f1333d4224b7e6b7914e7ef5ee6d86586a3529bd1da15cbeece0d25b3",
				"dweb:/ipfs/QmXmFqePuCWzBcz9KyBepE7joHMg8jSjcmd5iayyG7jm3y"
			]
		},
		"@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol": {
			"keccak256": "0x422c3d27d0d5681cea93acbb0dcb175fa5b461b5b7731da7ff77e51f0f0174c7",
			"license": "MIT",
			"urls": [
				"bzz-raw://feb47206935cf956f60ffd76b8bad047102c7acbf2aab10157a235b7af66fa39",
				"dweb:/ipfs/QmZQ39kpPhCdN9fyZ7BMwnK26tHjiP6QZDeL8tMSPDjxan"
			]
		},
		"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
			"keccak256": "0x61437cb513a887a1bbad006e7b1c8b414478427d33de47c5600af3c748f108da",
			"license": "MIT",
			"urls": [
				"bzz-raw://2c3d0973630ed74f2b5ce3944677a885dc70ec32fc83b35f55045a10224da32b",
				"dweb:/ipfs/QmbefZ5RoEZKNHXCALfh683PnaNYzKPcKMFjyY1DVAgq8A"
			]
		},
		"@openzeppelin/contracts/utils/math/SafeMath.sol": {
			"keccak256": "0xa2f576be637946f767aa56601c26d717f48a0aff44f82e46f13807eea1009a21",
			"license": "MIT",
			"urls": [
				"bzz-raw://973868f808e88e21a1a0a01d4839314515ee337ad096286c88e41b74dcc11fc2",
				"dweb:/ipfs/QmfYuZxRfx2J2xdk4EXN7jKg4bUYEMTaYk9BAw9Bqn4o2Y"
			]
		},
		"contracts/PrivateSaleSEL.sol": {
			"keccak256": "0xe692ccbd69fa2b6b7d20f087b84bd63a8d09ee9f38126b87f5806e91e68ef900",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://93ab50e4242749e6bb4912d79e50abde829084d9c89579ead62e8789c10fff53",
				"dweb:/ipfs/Qmc4qKagKPyisV4HtMtGr6zE2a1Ho79e37jq44isNwZGJ2"
			]
		},
		"contracts/interfaces/IERC20Metadata.sol": {
			"keccak256": "0x8447dfb4f14afba6a3f3cb72a02c8a5404b623caf0ad61aa88e010d1ca13ce0e",
			"license": "MIT",
			"urls": [
				"bzz-raw://39e54bec42b577b4c7738f3d2485d8766479f214a182dd193bbfd7e7d858ca6a",
				"dweb:/ipfs/QmVjsH7uR1LnwtRMRK1FcBXsJyzuk8JY9qjkCUnb9QM6ZV"
			]
		},
		"contracts/interfaces/IPreIDOBase.sol": {
			"keccak256": "0x7d593dae0e2908e4d0ab6f746f7e3e870a8f56f3083c4004c70f0af1e91d1bd8",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://cbd32a6f971b74acedf970d7b9b5c796597e039867e64421a05944fe4b162a57",
				"dweb:/ipfs/QmT19CV2TreGWZvoQdnD3R7PJQNsWWrQo67sNXrfhNSRca"
			]
		},
		"contracts/interfaces/pre_ido/IPreIDOEvents.sol": {
			"keccak256": "0xa40cf66433ac29a824059520608eff31ee60a2f2491c8198ce97ff7827b591d2",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://990cf1261aa1c5ca8808b3d9416dd330988fa33ea4123e9af8143f3fd57808f4",
				"dweb:/ipfs/QmVGkUKHSHnmaUUToMSNzi3qW1LXDXE5Qd8tyBv5gNyZ6R"
			]
		},
		"contracts/interfaces/pre_ido/IPreIDOState.sol": {
			"keccak256": "0xef3d38c12fd5c26d9f91023b157c3b93900d99c3a7c424eb174de4fa0cb1dd44",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://6a04912f6386eacbce6dadefdb116d00fa46bb832f6ef5302ed0a96cd36124b6",
				"dweb:/ipfs/QmPJ2yudGyEydhSmqo1AehQGW1tNPyUhtxNawX8ogpV5QJ"
			]
		}
	},
	"version": 1
}