{
	"compiler": {
		"version": "0.8.0+commit.c7dfd78e"
	},
	"language": "Solidity",
	"output": {
		"abi": [
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": false,
						"internalType": "uint256",
						"name": "position",
						"type": "uint256"
					},
					{
						"indexed": true,
						"internalType": "address",
						"name": "oldAddress",
						"type": "address"
					},
					{
						"indexed": true,
						"internalType": "address",
						"name": "newAddress",
						"type": "address"
					}
				],
				"name": "DelegateChanged",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "string",
						"name": "key",
						"type": "string"
					},
					{
						"indexed": true,
						"internalType": "bytes32",
						"name": "firstIndex",
						"type": "bytes32"
					},
					{
						"indexed": true,
						"internalType": "bytes32",
						"name": "secondIndex",
						"type": "bytes32"
					},
					{
						"indexed": false,
						"internalType": "bytes",
						"name": "data",
						"type": "bytes"
					}
				],
				"name": "Event",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": false,
						"internalType": "string",
						"name": "codeName",
						"type": "string"
					},
					{
						"indexed": true,
						"internalType": "address",
						"name": "proposal",
						"type": "address"
					},
					{
						"indexed": false,
						"internalType": "string",
						"name": "replaced",
						"type": "string"
					},
					{
						"indexed": false,
						"internalType": "address",
						"name": "replacedSourceLocation",
						"type": "address"
					},
					{
						"indexed": false,
						"internalType": "uint256",
						"name": "replacedSourceLocationId",
						"type": "uint256"
					},
					{
						"indexed": true,
						"internalType": "address",
						"name": "replacedLocation",
						"type": "address"
					},
					{
						"indexed": false,
						"internalType": "bool",
						"name": "replacedWasSubmitable",
						"type": "bool"
					},
					{
						"indexed": false,
						"internalType": "string",
						"name": "replacedMethodSignature",
						"type": "string"
					},
					{
						"indexed": false,
						"internalType": "bool",
						"name": "replacedWasInternal",
						"type": "bool"
					},
					{
						"indexed": false,
						"internalType": "bool",
						"name": "replacedNeededSender",
						"type": "bool"
					},
					{
						"indexed": true,
						"internalType": "address",
						"name": "replacedProposal",
						"type": "address"
					}
				],
				"name": "FunctionalitySet",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": false,
						"internalType": "address",
						"name": "proposal",
						"type": "address"
					}
				],
				"name": "Proposal",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "proposal",
						"type": "address"
					}
				],
				"name": "ProposalCheck",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "proposal",
						"type": "address"
					},
					{
						"indexed": false,
						"internalType": "bool",
						"name": "success",
						"type": "bool"
					}
				],
				"name": "ProposalSet",
				"type": "event"
			},
			{
				"anonymous": false,
				"inputs": [
					{
						"indexed": true,
						"internalType": "address",
						"name": "newAddress",
						"type": "address"
					}
				],
				"name": "ProxyChanged",
				"type": "event"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "location",
						"type": "address"
					},
					{
						"internalType": "bytes",
						"name": "payload",
						"type": "bytes"
					}
				],
				"name": "callFromManager",
				"outputs": [
					{
						"internalType": "bool",
						"name": "",
						"type": "bool"
					},
					{
						"internalType": "bytes",
						"name": "",
						"type": "bytes"
					}
				],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "newAddress",
						"type": "address"
					},
					{
						"internalType": "bytes",
						"name": "initPayload",
						"type": "bytes"
					}
				],
				"name": "changeProxy",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "proposalAddress",
						"type": "address"
					}
				],
				"name": "disableProposal",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "string",
						"name": "eventSignature",
						"type": "string"
					},
					{
						"internalType": "bytes",
						"name": "firstIndex",
						"type": "bytes"
					},
					{
						"internalType": "bytes",
						"name": "secondIndex",
						"type": "bytes"
					},
					{
						"internalType": "bytes",
						"name": "data",
						"type": "bytes"
					}
				],
				"name": "emitEvent",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "string",
						"name": "codeName",
						"type": "string"
					},
					{
						"internalType": "address",
						"name": "proposal",
						"type": "address"
					},
					{
						"internalType": "string",
						"name": "replaced",
						"type": "string"
					},
					{
						"internalType": "address",
						"name": "replacedSourceLocation",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "replacedSourceLocationId",
						"type": "uint256"
					},
					{
						"internalType": "address",
						"name": "location",
						"type": "address"
					},
					{
						"internalType": "bool",
						"name": "submitable",
						"type": "bool"
					},
					{
						"internalType": "string",
						"name": "methodSignature",
						"type": "string"
					},
					{
						"internalType": "bool",
						"name": "isInternal",
						"type": "bool"
					},
					{
						"internalType": "bool",
						"name": "needsSender",
						"type": "bool"
					},
					{
						"internalType": "address",
						"name": "proposalAddress",
						"type": "address"
					}
				],
				"name": "emitFromManager",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "tokenAddress",
						"type": "address"
					},
					{
						"internalType": "bool",
						"name": "is721",
						"type": "bool"
					},
					{
						"internalType": "uint256",
						"name": "tokenId",
						"type": "uint256"
					}
				],
				"name": "flushToWallet",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getDelegates",
				"outputs": [
					{
						"internalType": "address[]",
						"name": "",
						"type": "address[]"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getDoubleProxyAddress",
				"outputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getMVDFunctionalitiesManagerAddress",
				"outputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getMVDFunctionalityModelsManagerAddress",
				"outputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getMVDFunctionalityProposalManagerAddress",
				"outputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getMVDWalletAddress",
				"outputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getStateHolderAddress",
				"outputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "getToken",
				"outputs": [
					{
						"internalType": "address",
						"name": "",
						"type": "address"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "votingTokenAddress",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "functionalityProposalManagerAddress",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "stateHolderAddress",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "functionalityModelsManagerAddress",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "functionalitiesManagerAddress",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "walletAddress",
						"type": "address"
					},
					{
						"internalType": "address",
						"name": "doubleProxyAddress",
						"type": "address"
					}
				],
				"name": "init",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "functionality",
						"type": "address"
					}
				],
				"name": "isAuthorizedFunctionality",
				"outputs": [
					{
						"internalType": "bool",
						"name": "",
						"type": "bool"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "proposal",
						"type": "address"
					}
				],
				"name": "isValidProposal",
				"outputs": [
					{
						"internalType": "bool",
						"name": "",
						"type": "bool"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "string",
						"name": "codeName",
						"type": "string"
					},
					{
						"internalType": "bool",
						"name": "emergency",
						"type": "bool"
					},
					{
						"internalType": "address",
						"name": "sourceLocation",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "sourceLocationId",
						"type": "uint256"
					},
					{
						"internalType": "address",
						"name": "location",
						"type": "address"
					},
					{
						"internalType": "bool",
						"name": "submitable",
						"type": "bool"
					},
					{
						"internalType": "string",
						"name": "methodSignature",
						"type": "string"
					},
					{
						"internalType": "string",
						"name": "returnParametersJSONArray",
						"type": "string"
					},
					{
						"internalType": "bool",
						"name": "isInternal",
						"type": "bool"
					},
					{
						"internalType": "bool",
						"name": "needsSender",
						"type": "bool"
					},
					{
						"internalType": "string",
						"name": "replaces",
						"type": "string"
					}
				],
				"name": "newProposal",
				"outputs": [
					{
						"internalType": "address",
						"name": "proposalAddress",
						"type": "address"
					}
				],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "string",
						"name": "codeName",
						"type": "string"
					},
					{
						"internalType": "bytes",
						"name": "data",
						"type": "bytes"
					}
				],
				"name": "read",
				"outputs": [
					{
						"internalType": "bytes",
						"name": "returnData",
						"type": "bytes"
					}
				],
				"stateMutability": "view",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "uint256",
						"name": "position",
						"type": "uint256"
					},
					{
						"internalType": "address",
						"name": "newAddress",
						"type": "address"
					}
				],
				"name": "setDelegate",
				"outputs": [
					{
						"internalType": "address",
						"name": "oldAddress",
						"type": "address"
					}
				],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [],
				"name": "setProposal",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "proposalAddress",
						"type": "address"
					}
				],
				"name": "startProposal",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "string",
						"name": "codeName",
						"type": "string"
					},
					{
						"internalType": "bytes",
						"name": "data",
						"type": "bytes"
					}
				],
				"name": "submit",
				"outputs": [
					{
						"internalType": "bytes",
						"name": "returnData",
						"type": "bytes"
					}
				],
				"stateMutability": "payable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "receiver",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "value",
						"type": "uint256"
					},
					{
						"internalType": "address",
						"name": "token",
						"type": "address"
					}
				],
				"name": "transfer",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			},
			{
				"inputs": [
					{
						"internalType": "address",
						"name": "receiver",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "tokenId",
						"type": "uint256"
					},
					{
						"internalType": "bytes",
						"name": "data",
						"type": "bytes"
					},
					{
						"internalType": "bool",
						"name": "safe",
						"type": "bool"
					},
					{
						"internalType": "address",
						"name": "token",
						"type": "address"
					}
				],
				"name": "transfer721",
				"outputs": [],
				"stateMutability": "nonpayable",
				"type": "function"
			}
		],
		"devdoc": {
			"kind": "dev",
			"methods": {},
			"version": 1
		},
		"userdoc": {
			"kind": "user",
			"methods": {},
			"version": 1
		}
	},
	"settings": {
		"compilationTarget": {
			"localhost/proxy/contracts/interfaces/IMVDProxy.sol": "IMVDProxy"
		},
		"evmVersion": "istanbul",
		"libraries": {},
		"metadata": {
			"bytecodeHash": "ipfs"
		},
		"optimizer": {
			"enabled": true,
			"runs": 9999
		},
		"remappings": []
	},
	"sources": {
		"localhost/proxy/contracts/interfaces/IMVDProxy.sol": {
			"keccak256": "0xad02dc5db4db66698c3754a4d96fa4bf72ddc878e8be909c8dae836813fb9440",
			"license": "UNLICENSED",
			"urls": [
				"bzz-raw://8b0194d4dd25edeb828bbf7d58cabf56390b17e9d681de136f7c1798924faff6",
				"dweb:/ipfs/QmRL6wKXHGNzU99k1gV7QW7DcVtyC4yGtM1UASE8YA9YTM"
			]
		}
	},
	"version": 1
}