{
	"compiler": {
		"version": "0.8.4+commit.c7e474f2"
	},
	"language": "Solidity",
	"output": {
		"abi": [
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": false,
						"internalType": "address",
						"name": "owner",
						"type": "address"
					}
				],
				"name": "AddedOwner",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "sender",
						"type": "address"
					},
					{
						"indexed": true,
						"internalType": "uint256",
						"name": "transactionId",
						"type": "uint256"
					}
				],
				"name": "ApprovalRevoked",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": false,
						"internalType": "uint8",
						"name": "threshold",
						"type": "uint8"
					}
				],
				"name": "ChangedThreshold",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "uint256",
						"name": "transactionId",
						"type": "uint256"
					}
				],
				"name": "ExecutionFailed",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "sender",
						"type": "address"
					},
					{
						"indexed": false,
						"internalType": "uint256",
						"name": "value",
						"type": "uint256"
					}
				],
				"name": "Received",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": false,
						"internalType": "address",
						"name": "owner",
						"type": "address"
					}
				],
				"name": "RemovedOwner",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "sender",
						"type": "address"
					},
					{
						"indexed": true,
						"internalType": "uint256",
						"name": "transactionId",
						"type": "uint256"
					}
				],
				"name": "TransactionApproved",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "uint256",
						"name": "transactionId",
						"type": "uint256"
					}
				],
				"name": "TransactionExecuted",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "uint256",
						"name": "transactionId",
						"type": "uint256"
					}
				],
				"name": "TransactionSubmitted",
				"type": "event"
			},
			{
				"inputs": [],
				"name": "MAX_OWNER",
				"outputs": [
					{
						"internalType": "uint8",
						"name": "",
						"type": "uint8"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "owner",
						"type": "address"
					},
					{
						"internalType": "uint8",
						"name": "_threshold",
						"type": "uint8"
					}
				],
				"name": "addOwnerWithThreshold",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					},
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"name": "approvals",
				"outputs": [
					{
						"internalType": "bool",
						"name": "",
						"type": "bool"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "_txnId",
						"type": "uint256"
					}
				],
				"name": "approve",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint8",
						"name": "_threshold",
						"type": "uint8"
					}
				],
				"name": "changeThreshold",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "owner",
						"type": "address"
					}
				],
				"name": "checkOwner",
				"outputs": [
					{
						"internalType": "bool",
						"name": "",
						"type": "bool"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "_txnId",
						"type": "uint256"
					}
				],
				"name": "executeTransaction",
				"outputs": [
					{
						"internalType": "bool",
						"name": "success",
						"type": "bool"
					}
				],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "_txnId",
						"type": "uint256"
					}
				],
				"name": "getApprovalCount",
				"outputs": [
					{
						"internalType": "uint8",
						"name": "count",
						"type": "uint8"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getOwners",
				"outputs": [
					{
						"internalType": "address[]",
						"name": "",
						"type": "address[]"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getThreshold",
				"outputs": [
					{
						"internalType": "uint8",
						"name": "",
						"type": "uint8"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "bool",
						"name": "_pending",
						"type": "bool"
					},
					{
						"internalType": "bool",
						"name": "_executed",
						"type": "bool"
					}
				],
				"name": "getTransactionCount",
				"outputs": [
					{
						"internalType": "uint256",
						"name": "count",
						"type": "uint256"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address[]",
						"name": "_owners",
						"type": "address[]"
					},
					{
						"internalType": "uint8",
						"name": "_required",
						"type": "uint8"
					}
				],
				"name": "initialize",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "_txnId",
						"type": "uint256"
					}
				],
				"name": "isConfirmed",
				"outputs": [
					{
						"internalType": "bool",
						"name": "status",
						"type": "bool"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					},
					{
						"internalType": "uint256[]",
						"name": "",
						"type": "uint256[]"
					},
					{
						"internalType": "uint256[]",
						"name": "",
						"type": "uint256[]"
					},
					{
						"internalType": "bytes",
						"name": "",
						"type": "bytes"
					}
				],
				"name": "onERC1155BatchReceived",
				"outputs": [
					{
						"internalType": "bytes4",
						"name": "",
						"type": "bytes4"
					}
				],
				"stateMutability": "pure",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					},
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					},
					{
						"internalType": "bytes",
						"name": "",
						"type": "bytes"
					}
				],
				"name": "onERC1155Received",
				"outputs": [
					{
						"internalType": "bytes4",
						"name": "",
						"type": "bytes4"
					}
				],
				"stateMutability": "pure",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					},
					{
						"internalType": "bytes",
						"name": "",
						"type": "bytes"
					}
				],
				"name": "onERC721Received",
				"outputs": [
					{
						"internalType": "bytes4",
						"name": "",
						"type": "bytes4"
					}
				],
				"stateMutability": "pure",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "enum Types.Operation",
						"name": "operation",
						"type": "uint8"
					},
					{
						"internalType": "address",
						"name": "to",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "value",
						"type": "uint256"
					},
					{
						"internalType": "bytes",
						"name": "data",
						"type": "bytes"
					}
				],
				"name": "requiredTxGas",
				"outputs": [
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					}
				],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "_txnId",
						"type": "uint256"
					}
				],
				"name": "revokeApproval",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "enum Types.Operation",
						"name": "operation",
						"type": "uint8"
					},
					{
						"internalType": "address",
						"name": "target",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "value",
						"type": "uint256"
					},
					{
						"internalType": "bytes",
						"name": "data",
						"type": "bytes"
					}
				],
				"name": "submitTransaction",
				"outputs": [
					{
						"internalType": "uint256",
						"name": "txnId",
						"type": "uint256"
					}
				],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "bytes4",
						"name": "interfaceId",
						"type": "bytes4"
					}
				],
				"name": "supportsInterface",
				"outputs": [
					{
						"internalType": "bool",
						"name": "",
						"type": "bool"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "prevOwner",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "oldOwner",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "newOwner",
						"type": "address"
					}
				],
				"name": "swapOwner",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					},
					{
						"internalType": "bytes",
						"name": "",
						"type": "bytes"
					},
					{
						"internalType": "bytes",
						"name": "",
						"type": "bytes"
					}
				],
				"name": "tokensReceived",
				"outputs": [],
				"stateMutability": "pure",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "transactionCount",
				"outputs": [
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "",
						"type": "uint256"
					}
				],
				"name": "transactions",
				"outputs": [
					{
						"internalType": "enum Types.Operation",
						"name": "operation",
						"type": "uint8"
					},
					{
						"internalType": "address",
						"name": "target",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "value",
						"type": "uint256"
					},
					{
						"internalType": "bytes",
						"name": "data",
						"type": "bytes"
					},
					{
						"internalType": "uint8",
						"name": "approval",
						"type": "uint8"
					},
					{
						"internalType": "bool",
						"name": "executed",
						"type": "bool"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"stateMutability": "payable",
				"type": "receive"
			}
		],
		"devdoc": {
			"kind": "dev",
			"methods": {
				"approve(uint256)": {
					"details": "Allows an owner to approve a transaction.",
					"params": {
						"_txnId": "transaction ID."
					}
				},
				"executeTransaction(uint256)": {
					"details": "Allows anyone to execute a approved transaction.",
					"params": {
						"_txnId": "transaction ID."
					},
					"returns": {
						"success": "wether it's success"
					}
				},
				"getApprovalCount(uint256)": {
					"details": "Returns number of approvals of a transaction.",
					"params": {
						"_txnId": "transaction ID."
					},
					"returns": {
						"count": "Number of approvals."
					}
				},
				"getTransactionCount(bool,bool)": {
					"details": "Returns total number of transactions which filers are applied.",
					"params": {
						"_executed": "Include executed transactions.",
						"_pending": "Include pending transactions."
					},
					"returns": {
						"count": "Total number of transactions after filters are applied."
					}
				},
				"initialize(address[],uint8)": {
					"details": "sets initial owners and required number of confirmations.",
					"params": {
						"_owners": "List of initial owners.",
						"_required": "Number of required confirmations."
					}
				},
				"isConfirmed(uint256)": {
					"details": "Returns the confirmation status of a transaction.",
					"params": {
						"_txnId": "transaction ID."
					},
					"returns": {
						"status": "confirmation status."
					}
				},
				"revokeApproval(uint256)": {
					"details": "Allows an owner to revoke a approval for a transaction.",
					"params": {
						"_txnId": "transaction ID."
					}
				},
				"submitTransaction(uint8,address,uint256,bytes)": {
					"details": "Allows an owner to submit and approve a transaction.",
					"params": {
						"data": "transaction data payload.",
						"operation": "external call operation",
						"target": "transaction destination address",
						"value": "transaction value in Wei."
					},
					"returns": {
						"txnId": "returns transaction ID."
					}
				},
				"supportsInterface(bytes4)": {
					"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
				}
			},
			"title": "Multisignature wallet - Allows multiple parties to agree on transactions before execution.",
			"version": 1
		},
		"userdoc": {
			"kind": "user",
			"methods": {},
			"version": 1
		}
	},
	"settings": {
		"compilationTarget": {
			"contracts/MultiSigWallet.sol": "MultiSigWallet"
		},
		"evmVersion": "istanbul",
		"libraries": {},
		"metadata": {
			"bytecodeHash": "ipfs"
		},
		"optimizer": {
			"enabled": false,
			"runs": 200
		},
		"remappings": []
	},
	"sources": {
		"@openzeppelin/contracts/proxy/utils/Initializable.sol": {
			"keccak256": "0x94dd781aa290742d990ccb720b3cab52a3865d1ba004e35c1dc757aa3ee788e0",
			"license": "MIT",
			"urls": [
				"bzz-raw://1d762e5eb6f74a6228a744b0261fb2dda4e2c8a214206ca67a443c06feb16ce2",
				"dweb:/ipfs/QmU85d56LUBCQ5j24hVf3WJ2uwjNoyLJr8ZYyDXWKmJGpU"
			]
		},
		"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": {
			"keccak256": "0xc743d2235b8854045c308d2f8f1ed88efed6c2bebf2b7a4a51ea42480c82e566",
			"license": "MIT",
			"urls": [
				"bzz-raw://05e54e397a053f319187999ef4d65446a7f15f693ddd66dfaed4d856f67dac4e",
				"dweb:/ipfs/QmbGTFVdZxShg76UPcuLAXm6HBjZx3Vn6CL1eaBhV9rST1"
			]
		},
		"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": {
			"keccak256": "0xd5fa74b4fb323776fa4a8158800fec9d5ac0fec0d6dd046dd93798632ada265f",
			"license": "MIT",
			"urls": [
				"bzz-raw://33017a30a99cc5411a9e376622c31fc4a55cfc6a335e2f57f00cbf24a817ff3f",
				"dweb:/ipfs/QmWNQtWTPhA7Lo8nbxbc8KFMvZwbFYB8fSeEQ3vuapSV4a"
			]
		},
		"@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol": {
			"keccak256": "0x1a5d61db2733202ba361e6d6741cd2e662380e22b80e987eacfc91973f2267dc",
			"license": "MIT",
			"urls": [
				"bzz-raw://04c0cd697050a6516b7779aa2343ad2d0e5217d8915ac2382681dfdf4e445be3",
				"dweb:/ipfs/QmPCBCZgm7pHBwwogE2F9NCN3UfTdLNhqc8UDEvw8kDzyA"
			]
		},
		"@openzeppelin/contracts/utils/Address.sol": {
			"keccak256": "0x51b758a8815ecc9596c66c37d56b1d33883a444631a3f916b9fe65cb863ef7c4",
			"license": "MIT",
			"urls": [
				"bzz-raw://997ca03557985b3c6f9143a18b6c3a710b3bc1c7f189ee956d305a966ecfb922",
				"dweb:/ipfs/QmQaD3Wb62F88SHqmpLttvF6wKuPDQep2LLUcKPekeRzvz"
			]
		},
		"@openzeppelin/contracts/utils/introspection/IERC165.sol": {
			"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
			"license": "MIT",
			"urls": [
				"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
				"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
			]
		},
		"contracts/MultiSigWallet.sol": {
			"keccak256": "0xcfaeae969ec09c5be825d701d460bef3b850886874bb0ac47a307f2ebec7535f",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://735a870c2e67beeb79499f0bc801dab7602827cb83b3e448fb412f4dad001bdd",
				"dweb:/ipfs/QmYZuPoZpMkCiWvnuW73syhRDRk6zmcudEYMuhb98h9HVf"
			]
		},
		"contracts/base/Executor.sol": {
			"keccak256": "0xc384ab01550a10f345b7146e7a37190a6150687db1672c22fc6de74df3d26391",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://6e64b03590ef916b03e7e81acf3730edf9993c2a096b867307b16802b4dd26b3",
				"dweb:/ipfs/QmeET3UEATZ2B2zf2uxyrhMQhNxrUNDDqwWfWF7pxBdPtk"
			]
		},
		"contracts/base/OwnerManager.sol": {
			"keccak256": "0x9e02bfb39486bdb9a4cc3fa8c506a69d0ed090d84669d2ad8e2360b348483154",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://f01274211a2266c246a3311dccf7696ac3c6f7e0c170f9c6f5dcf65d799965ec",
				"dweb:/ipfs/QmWa9ksMHAzzBsHP71QQWt7VxW3sSAxV4UYEPZpG3uBrjU"
			]
		},
		"contracts/handler/TokensHandler.sol": {
			"keccak256": "0xd5c884d83811e412ace040f85d4830a8bb83c57c8b16aa3adc5d294ae2f79b58",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://e2751809f5dc30204b232d201811e97073ea6013e6024d04cc826aa8d576ec12",
				"dweb:/ipfs/QmcpgUT9UcGoYk36fhygiyYcyawPtqiXfrxU7vwetzSkbn"
			]
		},
		"contracts/utils/SelfAuthorized.sol": {
			"keccak256": "0xf429759512facbb8bf895cb570afcc6560dc170276c9dee6774d818d738c0461",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://0b39944e5f57801849eb43bdbae28cb743dc5fcfcf69165d48dd1e8fe199c381",
				"dweb:/ipfs/QmWriNEDkGCErRQRMbxyRNoZWMXK7J3JgD4HhgvVviLTkx"
			]
		},
		"contracts/utils/Types.sol": {
			"keccak256": "0x154da3b303402876d1ebcaba13ed8593cdfad00b89e4327036bcd37e92111cfe",
			"license": "GPL-3.0",
			"urls": [
				"bzz-raw://25c6fe0fa27d562b03dbb4453cd9e737b53b1d09de292afec6e3a615346df290",
				"dweb:/ipfs/Qmcdz7yWdM1XKBoLT1iCnrqtih3myWPodtAjNgnZZ7enfi"
			]
		}
	},
	"version": 1
}