{
  "contractName": "ContributionReward",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "parameters",
      "outputs": [
        {
          "name": "orgNativeTokenFee",
          "type": "uint256"
        },
        {
          "name": "voteApproveParams",
          "type": "bytes32"
        },
        {
          "name": "intVote",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "organizationsProposals",
      "outputs": [
        {
          "name": "contributionDescriptionHash",
          "type": "bytes32"
        },
        {
          "name": "nativeTokenReward",
          "type": "uint256"
        },
        {
          "name": "reputationReward",
          "type": "uint256"
        },
        {
          "name": "ethReward",
          "type": "uint256"
        },
        {
          "name": "externalToken",
          "type": "address"
        },
        {
          "name": "externalTokenReward",
          "type": "uint256"
        },
        {
          "name": "beneficiary",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hashedParameters",
          "type": "bytes32"
        }
      ],
      "name": "updateParameters",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_param",
          "type": "int256"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_orgNativeTokenFee",
          "type": "uint256"
        },
        {
          "name": "_voteApproveParams",
          "type": "bytes32"
        },
        {
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "setParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_contributionDescriptionHash",
          "type": "bytes32"
        },
        {
          "name": "_rewards",
          "type": "uint256[4]"
        },
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "proposeContributionReward",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_orgNativeTokenFee",
          "type": "uint256"
        },
        {
          "name": "_voteApproveParams",
          "type": "bytes32"
        },
        {
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "getParametersHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hashedParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "_intVoteInterface",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_contributionDescription",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_rewards",
          "type": "uint256[4]"
        },
        {
          "indexed": false,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "NewContributionProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "ProposalExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "ProposalDeleted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "proposalId",
          "type": "bytes32"
        }
      ],
      "name": "NewProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a0319909116179055610f4a8061003b6000396000f30060606040526004361061008a5763ffffffff60e060020a60003504166302506804811461008f57806306e3a978146100d25780632ac2af5314610140578063310ce4e214610158578063465ff7d7146101915780637cb37d8a146101c85780638da5cb5b14610223578063b74fd44f14610252578063f2fde38b14610277578063f98e87ba14610296575b600080fd5b341561009a57600080fd5b6100a56004356102a9565b6040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390f35b34156100dd57600080fd5b6100f4600160a060020a03600435166024356102d3565b60405196875260208701959095526040808701949094526060860192909252600160a060020a03908116608086015260a085019190915290911660c083015260e0909101905180910390f35b341561014b57600080fd5b610156600435610325565b005b341561016357600080fd5b61017d600435600160a060020a0360243516604435610345565b604051901515815260200160405180910390f35b341561019c57600080fd5b6101b6600435602435600160a060020a036044351661082f565b60405190815260200160405180910390f35b34156101d357600080fd5b6101b660048035600160a060020a0316906024359060c46044826080604051908101604052919082826080808284375093955050600160a060020a0384358116946020013516925061088c915050565b341561022e57600080fd5b610236610ce8565b604051600160a060020a03909116815260200160405180910390f35b341561025d57600080fd5b6101b6600435602435600160a060020a0360443516610cf7565b341561028257600080fd5b610156600160a060020a0360043516610d40565b34156102a157600080fd5b6101b6610ddb565b600360205260009081526040902080546001820154600290920154909190600160a060020a031683565b60026020818152600093845260408085209091529183529120805460018201549282015460038301546004840154600585015460069095015493959492939192600160a060020a039182169290911687565b60005433600160a060020a0390811691161461034057600080fd5b600155565b600061034f610ec2565b600033600160a060020a03166003600061036888610de1565b8152602081019190915260400160002060020154600160a060020a03161461038f57600080fd5b600160a060020a0385166000908152600260209081526040808320898452909152908190209060e0905190810160405290816000820154600019166000191681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600582015481526020016006820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152505091506002600086600160a060020a0316600160a060020a03168152602001908152602001600020600087600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905560038201600090556004820160006101000a815490600160a060020a03021916905560058201600090556006820160006101000a815490600160a060020a030219169055505083600114156107ec5784600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561054657600080fd5b6102c65a03f1151561055757600080fd5b5050506040518051915050600160a060020a038116636cfc658260408401518460c001518860006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b15156105d157600080fd5b6102c65a03f115156105e257600080fd5b5050506040518051905015156105f757600080fd5b80600160a060020a0316636407e43283602001518460c001518860006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b151561066657600080fd5b6102c65a03f1151561067757600080fd5b50505060405180519050151561068c57600080fd5b80600160a060020a031663634965da83606001518460c001518860006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b15156106fb57600080fd5b6102c65a03f1151561070c57600080fd5b50505060405180519050151561072157600080fd5b60006080830151600160a060020a031614158015610743575060008260a00151115b156107ec5780600160a060020a031663b9a04cdd83608001518460c001518560a001518960006040516020015260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401602060405180830381600087803b15156107c657600080fd5b6102c65a03f115156107d757600080fd5b5050506040518051905015156107ec57600080fd5b85600160a060020a0386167f253ad9614c337848bbe7dc3b18b439d139ef5787282b5a517ba7296513d1f53360405160405180910390a350600195945050505050565b60008061083d858585610cf7565b6000818152600360205260409020958655600186019490945550506002909201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03939093169290921790915590565b6000610896610efe565b6000806108a1610ec2565b600360006108ae8c610de1565b815260208101919091526040908101600020906060905190810160409081528254825260018301546020830152600290920154600160a060020a03169181019190915293506000845111156109e45789600160a060020a031663e1758bd86000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561094357600080fd5b6102c65a03f1151561095457600080fd5b5050506040518051600160a060020a031690506323b872dd338c875160006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156109c857600080fd5b6102c65a03f115156109d957600080fd5b505050604051805150505b8360400151600160a060020a0316630905c9f9600286602001518d303360006040516020015260405160e060020a63ffffffff881602815260048101959095526024850193909352600160a060020a0391821660448501528116606484015216608482015260a401602060405180830381600087803b1515610a6557600080fd5b6102c65a03f11515610a7657600080fd5b5050506040518051935086925050600160a060020a0382161515610a98573391505b60e060405190810160405289815260208101895181526020018960016020020151815260200160408a01518152600160a060020a038916602082015260400160608a01518152600160a060020a038085166020928301528c16600090815260028252604080822087835290925220909150819081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560a0820151816005015560c0820151600691909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055506040840151600160a060020a031683600019168b600160a060020a03167fc395c16729dc6887d309a39677c04bb0ae42d468123f37ab0eaeb38b65191bd68c8c8c886040518481526020810184608080838360005b83811015610c0e578082015183820152602001610bf6565b5050505090500183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a0316815260200194505050505060405180910390a48360400151600160a060020a031663339e23d18460013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610cbf57600080fd5b6102c65a03f11515610cd057600080fd5b505050604051805150929a9950505050505050505050565b600054600160a060020a031681565b60008284836040519283526020830191909152600160a060020a03166c010000000000000000000000000260408083019190915260549091019051809103902090509392505050565b60005433600160a060020a03908116911614610d5b57600080fd5b600160a060020a0381161515610d7057600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e2957600080fd5b6102c65a03f11515610e3a57600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610ea257600080fd5b6102c65a03f11515610eb357600080fd5b50505060405180519392505050565b60e06040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a0820181905260c082015290565b6060604051908101604090815260008083526020830181905290820152905600a165627a7a723058201d7d61b38ab5f2b7acc5cc98a5ccf9f8cb64c2d583247a879ebd9a0d51149a150029",
  "deployedBytecode": "0x60606040526004361061008a5763ffffffff60e060020a60003504166302506804811461008f57806306e3a978146100d25780632ac2af5314610140578063310ce4e214610158578063465ff7d7146101915780637cb37d8a146101c85780638da5cb5b14610223578063b74fd44f14610252578063f2fde38b14610277578063f98e87ba14610296575b600080fd5b341561009a57600080fd5b6100a56004356102a9565b6040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390f35b34156100dd57600080fd5b6100f4600160a060020a03600435166024356102d3565b60405196875260208701959095526040808701949094526060860192909252600160a060020a03908116608086015260a085019190915290911660c083015260e0909101905180910390f35b341561014b57600080fd5b610156600435610325565b005b341561016357600080fd5b61017d600435600160a060020a0360243516604435610345565b604051901515815260200160405180910390f35b341561019c57600080fd5b6101b6600435602435600160a060020a036044351661082f565b60405190815260200160405180910390f35b34156101d357600080fd5b6101b660048035600160a060020a0316906024359060c46044826080604051908101604052919082826080808284375093955050600160a060020a0384358116946020013516925061088c915050565b341561022e57600080fd5b610236610ce8565b604051600160a060020a03909116815260200160405180910390f35b341561025d57600080fd5b6101b6600435602435600160a060020a0360443516610cf7565b341561028257600080fd5b610156600160a060020a0360043516610d40565b34156102a157600080fd5b6101b6610ddb565b600360205260009081526040902080546001820154600290920154909190600160a060020a031683565b60026020818152600093845260408085209091529183529120805460018201549282015460038301546004840154600585015460069095015493959492939192600160a060020a039182169290911687565b60005433600160a060020a0390811691161461034057600080fd5b600155565b600061034f610ec2565b600033600160a060020a03166003600061036888610de1565b8152602081019190915260400160002060020154600160a060020a03161461038f57600080fd5b600160a060020a0385166000908152600260209081526040808320898452909152908190209060e0905190810160405290816000820154600019166000191681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600582015481526020016006820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152505091506002600086600160a060020a0316600160a060020a03168152602001908152602001600020600087600019166000191681526020019081526020016000206000808201600090556001820160009055600282016000905560038201600090556004820160006101000a815490600160a060020a03021916905560058201600090556006820160006101000a815490600160a060020a030219169055505083600114156107ec5784600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561054657600080fd5b6102c65a03f1151561055757600080fd5b5050506040518051915050600160a060020a038116636cfc658260408401518460c001518860006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b15156105d157600080fd5b6102c65a03f115156105e257600080fd5b5050506040518051905015156105f757600080fd5b80600160a060020a0316636407e43283602001518460c001518860006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b151561066657600080fd5b6102c65a03f1151561067757600080fd5b50505060405180519050151561068c57600080fd5b80600160a060020a031663634965da83606001518460c001518860006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b15156106fb57600080fd5b6102c65a03f1151561070c57600080fd5b50505060405180519050151561072157600080fd5b60006080830151600160a060020a031614158015610743575060008260a00151115b156107ec5780600160a060020a031663b9a04cdd83608001518460c001518560a001518960006040516020015260405160e060020a63ffffffff8716028152600160a060020a039485166004820152928416602484015260448301919091529091166064820152608401602060405180830381600087803b15156107c657600080fd5b6102c65a03f115156107d757600080fd5b5050506040518051905015156107ec57600080fd5b85600160a060020a0386167f253ad9614c337848bbe7dc3b18b439d139ef5787282b5a517ba7296513d1f53360405160405180910390a350600195945050505050565b60008061083d858585610cf7565b6000818152600360205260409020958655600186019490945550506002909201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03939093169290921790915590565b6000610896610efe565b6000806108a1610ec2565b600360006108ae8c610de1565b815260208101919091526040908101600020906060905190810160409081528254825260018301546020830152600290920154600160a060020a03169181019190915293506000845111156109e45789600160a060020a031663e1758bd86000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561094357600080fd5b6102c65a03f1151561095457600080fd5b5050506040518051600160a060020a031690506323b872dd338c875160006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156109c857600080fd5b6102c65a03f115156109d957600080fd5b505050604051805150505b8360400151600160a060020a0316630905c9f9600286602001518d303360006040516020015260405160e060020a63ffffffff881602815260048101959095526024850193909352600160a060020a0391821660448501528116606484015216608482015260a401602060405180830381600087803b1515610a6557600080fd5b6102c65a03f11515610a7657600080fd5b5050506040518051935086925050600160a060020a0382161515610a98573391505b60e060405190810160405289815260208101895181526020018960016020020151815260200160408a01518152600160a060020a038916602082015260400160608a01518152600160a060020a038085166020928301528c16600090815260028252604080822087835290925220909150819081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560a0820151816005015560c0820151600691909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055506040840151600160a060020a031683600019168b600160a060020a03167fc395c16729dc6887d309a39677c04bb0ae42d468123f37ab0eaeb38b65191bd68c8c8c886040518481526020810184608080838360005b83811015610c0e578082015183820152602001610bf6565b5050505090500183600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a0316815260200194505050505060405180910390a48360400151600160a060020a031663339e23d18460013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610cbf57600080fd5b6102c65a03f11515610cd057600080fd5b505050604051805150929a9950505050505050505050565b600054600160a060020a031681565b60008284836040519283526020830191909152600160a060020a03166c010000000000000000000000000260408083019190915260549091019051809103902090509392505050565b60005433600160a060020a03908116911614610d5b57600080fd5b600160a060020a0381161515610d7057600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e2957600080fd5b6102c65a03f11515610e3a57600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610ea257600080fd5b6102c65a03f11515610eb357600080fd5b50505060405180519392505050565b60e06040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a0820181905260c082015290565b6060604051908101604090815260008083526020830181905290820152905600a165627a7a723058201d7d61b38ab5f2b7acc5cc98a5ccf9f8cb64c2d583247a879ebd9a0d51149a150029",
  "sourceMap": "335:7460:20:-;;;2113:39;;;;;;;;501:5:35;:18;;-1:-1:-1;;;;;509:10:35;501:18;-1:-1:-1;;;;;;501:18:35;;;;;;335:7460:20;;;;;;",
  "deployedSourceMap": "335:7460:20:-;;;;;;;;;-1:-1:-1;;;335:7460:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:46;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2022:46:20;;;;;;;;;;;;;;;;;;;;1408:86;;;;;;;;;;-1:-1:-1;;;;;1408:86:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1408:86:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;452:157:27;;;;;;;;;;;;;;;;6358:1435:20;;;;;;;;;;;;-1:-1:-1;;;;;6358:1435:20;;;;;;;;;;;;;;;;;;;;;;;;2255:532;;;;;;;;;;;;;;-1:-1:-1;;;;;2255:532:20;;;;;;;;;;;;;;;;;;;;4207:1836;;;;;;;;;;;;;-1:-1:-1;;;;;4207:1836:20;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4207:1836:20;;-1:-1:-1;;;;;;;4207:1836:20;;;;;;;;;;-1:-1:-1;4207:1836:20;;-1:-1:-1;;4207:1836:20;238:20:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:35;;;;;;;;;;;;;;3309:255:20;;;;;;;;;;;;;;-1:-1:-1;;;;;3309:255:20;;;;;834:169:35;;;;;;;;;;-1:-1:-1;;;;;834:169:35;;;;;345:31:27;;;;;;;;;;;;2022:46:20;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2022:46:20;;:::o;1408:86::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1408:86:20;;;;;;;;:::o;452:157:27:-;654:5:35;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;566:16:27;:36;452:157::o;6358:1435:20:-;6440:4;6611:36;;:::i;:::-;6871:30;6590:10;-1:-1:-1;;;;;6522:78:20;:10;:56;6533:44;6568:7;6533:27;:44::i;:::-;6522:56;;;;;;;;;;;;;:64;;;-1:-1:-1;;;;;6522:64:20;:78;6514:87;;;;;;-1:-1:-1;;;;;6650:31:20;;;;;;:22;:31;;;;;;;;:44;;;;;;;;;;;6611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6611:83:20;-1:-1:-1;;;;;6611:83:20;-1:-1:-1;;;;;6611:83:20;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6611:83:20;-1:-1:-1;;;;;6611:83:20;-1:-1:-1;;;;;6611:83:20;;;;;;;6711:22;:31;6734:7;-1:-1:-1;;;;;6711:31:20;-1:-1:-1;;;;;6711:31:20;;;;;;;;;;;;:44;6743:11;6711:44;;;;;;;;;;;;;;;;;;6704:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6704:51:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6704:51:20;;;;;;;6810:6;6820:1;6810:11;6806:911;;;6931:7;-1:-1:-1;;;;;6924:21:20;;:23;;;;;;;;;;;-1:-1:-1;;;6924:23:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;6997:25:20;;;7027;;;;7055:8;:20;;;7076:7;6997:87;;;;;;;;-1:-1:-1;;;6997:87:20;;;;;;;;;;;;;-1:-1:-1;;;;;6997:87:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6996:88;6992:137;;;7104:8;;;6992:137;7147:10;-1:-1:-1;;;;;7147:21:20;;7169:8;:26;;;7197:8;:20;;;7218:7;7147:79;;;;;;;;-1:-1:-1;;;7147:79:20;;;;;;;;;;;;;-1:-1:-1;;;;;7147:79:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7146:80;7142:129;;;7246:8;;;7142:129;7289:10;-1:-1:-1;;;;;7289:20:20;;7310:8;:18;;;7330:8;:20;;;7351:7;7289:70;;;;;;;;-1:-1:-1;;;7289:70:20;;;;;;;;;;;;;-1:-1:-1;;;;;7289:70:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7288:71;7284:120;;;7379:8;;;7284:120;7455:1;7421:22;;;;-1:-1:-1;;;;;7421:36:20;;;:72;;;;;7492:1;7461:8;:28;;;:32;7421:72;7417:288;;;7518:10;-1:-1:-1;;;;;7518:32:20;;7551:8;:22;;;7575:8;:20;;;7597:8;:28;;;7626:7;7518:116;;;;;;;;-1:-1:-1;;;7518:116:20;;;;;;-1:-1:-1;;;;;7518:116:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7517:117;7513:174;;;7658:8;;;7513:174;7753:11;-1:-1:-1;;;;;7727:38:20;;;;;;;;;;;;-1:-1:-1;7782:4:20;;6358:1435;-1:-1:-1;;;;;6358:1435:20:o;2255:532::-;2403:7;2426:18;2447:113;2478:18;2510;2542:8;2447:17;:113::i;:::-;2570:22;;;;:10;:22;;;;;:61;;;2641:40;;;:61;;;;-1:-1:-1;;2712:30:20;;;;:41;;-1:-1:-1;;2712:41:20;-1:-1:-1;;;;;2712:41:20;;;;;;;;;;;2570:22;2255:532::o;4207:1836::-;4433:7;4456:34;;:::i;:::-;4774:22;4970:19;5131:36;;:::i;:::-;4493:10;:48;4504:36;4532:7;4504:27;:36::i;:::-;4493:48;;;;;;;;;;;;;;;;4456:85;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4456:85:20;;;;;;;;;-1:-1:-1;4456:85:20;;4608:34;:38;4604:160;;;4662:7;-1:-1:-1;;;;;4662:19:20;;:21;;;;;;;;;;;-1:-1:-1;;;4662:21:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4662:34:20;;-1:-1:-1;4662:34:20;4697:10;4709:7;4718:16;:34;4662:91;;;;;;;;-1:-1:-1;;;4662:91:20;;;;;;-1:-1:-1;;;;;4662:91:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4604:160:20;4799:16;:24;;;-1:-1:-1;;;;;4799:32:20;;4832:1;4835:16;:34;;;4871:7;4900:4;4906:10;4799:118;;;;;;;;-1:-1:-1;;;4799:118:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4799:118:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4992:12:20;;-1:-1:-1;;;;;;;5018:25:20;;;5014:80;;;5073:10;5059:24;;5014:80;5170:353;;;;;;;;;;;;;;5295:8;:11;5170:353;;;;5338:8;5347:1;5338:11;;;;5170:353;;;;5374:11;;;;5170:353;;-1:-1:-1;;;;;5170:353:20;;;;;;;;5463:11;;;;5170:353;;-1:-1:-1;;;;;5170:353:20;;;;;;;;5533:31;;-1:-1:-1;5533:31:20;;;:22;:31;;;;;;:47;;;;;;;5131:392;;-1:-1:-1;5131:392:20;;;5533:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5533:58:20;-1:-1:-1;;;;;5533:58:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5533:58:20;-1:-1:-1;;;;;5533:58:20;;;;;;;;;-1:-1:-1;5688:24:20;;;;-1:-1:-1;;;;;5602:237:20;5660:14;5602:237;;;5639:7;-1:-1:-1;;;;;5602:237:20;;5726:28;5768:8;5790:14;5818:11;5602:237;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;-1:-1;;;;;3:109;-1:-1;;;;;3:109;;;;;;-1:-1;;;;;3:109;-1:-1;;;;;3:109;;;;;;;;;;;;;;;;;;5884:16:20;:24;;;-1:-1:-1;;;;;5884:34:20;;5919:14;5935:1;5938:10;5884:65;;;;;;;;-1:-1:-1;;;5884:65:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5884:65:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6022:14:20;;4207:1836;-1:-1:-1;;;;;;;;;;4207:1836:20:o;238:20:35:-;;;-1:-1:-1;;;;;238:20:35;;:::o;3309:255:20:-;3466:7;3507:18;3527;3547:8;3497:59;;;;;;;;;;;;-1:-1:-1;;;;;3497:59:20;;;;;;;;;;;;;;;;;;;;;;3489:68;;3309:255;;;;;:::o;834:169:35:-;654:5;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:35;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:35;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:35;-1:-1:-1;;;;;982:16:35;;;;;;;;;;834:169::o;345:31:27:-;;;;:::o;704:191::-;783:7;829;-1:-1:-1;;;;;829:13:27;;:15;;;;;;;;;;;-1:-1:-1;;;829:15:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;809:56:27;;866:4;879:7;809:79;;;;;;;;-1:-1:-1;;;809:79:27;;;;;;-1:-1:-1;;;;;809:79:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;704:191;-1:-1:-1;;;704:191:27:o;335:7460:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"../VotingMachines/IntVoteInterface.sol\";\nimport \"./UniversalScheme.sol\";\n\n\n/**\n * @title A scheme for proposing and rewarding contributions to an organization\n * @dev An agent can ask an organization to recognize a contribution and reward\n * him with token, reputation, ether or any combination.\n */\n\ncontract ContributionReward is UniversalScheme {\n    event NewContributionProposal(\n        address indexed _avatar,\n        bytes32 indexed _proposalId,\n        address indexed _intVoteInterface,\n        bytes32 _contributionDescription,\n        uint[4]  _rewards,\n        StandardToken _externalToken,\n        address _beneficiary\n    );\n    event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId);\n    event ProposalDeleted(address indexed _avatar, bytes32 indexed _proposalId);\n\n    // A struct holding the data for a contribution proposal\n    struct ContributionProposal {\n        bytes32 contributionDescriptionHash; // Hash of contribution document.\n        uint nativeTokenReward; // Reward asked in the native token of the organization.\n        uint reputationReward; // Organization reputation reward requested.\n        uint ethReward;\n        StandardToken externalToken;\n        uint externalTokenReward;\n        address beneficiary;\n    }\n\n    // A mapping from the organization (Avatar) address to the saved data of the organization:\n    mapping(address=>mapping(bytes32=>ContributionProposal)) public organizationsProposals;\n\n    // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n    // A contribution fee can be in the organization token or the scheme token or a combination\n    struct Parameters {\n        uint orgNativeTokenFee; // a fee (in the organization's token) that is to be paid for submitting a contribution\n        bytes32 voteApproveParams;\n        IntVoteInterface intVote;\n    }\n    // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n    mapping(bytes32=>Parameters) public parameters;\n\n    /**\n    * @dev constructor\n    */\n    function ContributionReward() public {}\n\n    /**\n    * @dev hash the parameters, save them if necessary, and return the hash value\n    */\n    function setParameters(\n        uint _orgNativeTokenFee,\n        bytes32 _voteApproveParams,\n        IntVoteInterface _intVote\n    ) public returns(bytes32)\n    {\n        bytes32 paramsHash = getParametersHash(\n            _orgNativeTokenFee,\n            _voteApproveParams,\n            _intVote\n        );\n        parameters[paramsHash].orgNativeTokenFee = _orgNativeTokenFee;\n        parameters[paramsHash].voteApproveParams = _voteApproveParams;\n        parameters[paramsHash].intVote = _intVote;\n        return paramsHash;\n    }\n\n    /**\n    * @dev return a hash of the given parameters\n    * @param _orgNativeTokenFee the fee for submitting a contribution in organizations native token\n    * @param _voteApproveParams parameters for the voting machine used to approve a contribution\n    * @param _intVote the voting machine used to approve a contribution\n    * @return a hash of the parameters\n    */\n    // TODO: These fees are messy. Better to have a _fee and _feeToken pair, just as in some other contract (which one?) with some sane default\n    function getParametersHash(\n        uint _orgNativeTokenFee,\n        bytes32 _voteApproveParams,\n        IntVoteInterface _intVote\n    ) public pure returns(bytes32)\n    {\n        return (keccak256(_voteApproveParams, _orgNativeTokenFee, _intVote));\n    }\n\n    /**\n    * @dev Submit a proposal for a reward for a contribution:\n    * @param _avatar Avatar of the organization that the contribution was made for\n    * @param _contributionDescriptionHash A hash of the contribution's description\n    * @param _rewards rewards array:\n    *         rewards[0] - Amount of tokens requested\n    *         rewards[1] - Amount of reputation requested\n    *         rewards[2] - Amount of ETH requested\n    *         rewards[3] - Amount of external tokens requested\n    * @param _externalToken Address of external token, if reward is requested there\n    * @param _beneficiary Who gets the rewards\n    */\n    function proposeContributionReward(\n        Avatar _avatar,\n        bytes32 _contributionDescriptionHash,\n        uint[4] _rewards,\n        StandardToken _externalToken,\n        address _beneficiary\n    ) public\n      returns(bytes32)\n    {\n        Parameters memory controllerParams = parameters[getParametersFromController(_avatar)];\n        // Pay fees for submitting the contribution:\n        if (controllerParams.orgNativeTokenFee > 0) {\n            _avatar.nativeToken().transferFrom(msg.sender, _avatar, controllerParams.orgNativeTokenFee);\n        }\n\n        bytes32 contributionId = controllerParams.intVote.propose(2, controllerParams.voteApproveParams, _avatar, ExecutableInterface(this),msg.sender);\n\n        // Check beneficiary is not null:\n        address beneficiary = _beneficiary;\n        if (beneficiary == address(0)) {\n            beneficiary = msg.sender;\n        }\n\n        // Set the struct:\n        ContributionProposal memory proposal = ContributionProposal({\n            contributionDescriptionHash: _contributionDescriptionHash,\n            nativeTokenReward: _rewards[0],\n            reputationReward: _rewards[1],\n            ethReward: _rewards[2],\n            externalToken: _externalToken,\n            externalTokenReward: _rewards[3],\n            beneficiary: beneficiary\n        });\n        organizationsProposals[_avatar][contributionId] = proposal;\n\n        NewContributionProposal(\n            _avatar,\n            contributionId,\n            controllerParams.intVote,\n            _contributionDescriptionHash,\n            _rewards,\n            _externalToken,\n            beneficiary\n        );\n\n        // vote for this proposal\n        controllerParams.intVote.ownerVote(contributionId, 1, msg.sender); // Automatically votes `yes` in the name of the opener.\n        return contributionId;\n    }\n\n    /**\n    * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n    * @param _proposalId the ID of the voting in the voting machine\n    * @param _avatar address of the controller\n    * @param _param a parameter of the voting result, 0 is no and 1 is yes.\n    */\n    function execute(bytes32 _proposalId, address _avatar, int _param) public returns(bool) {\n        // Check the caller is indeed the voting machine:\n        require(parameters[getParametersFromController(Avatar(_avatar))].intVote == msg.sender);\n        ContributionProposal memory proposal = organizationsProposals[_avatar][_proposalId];\n        delete organizationsProposals[_avatar][_proposalId];\n        // Check if vote was successful:\n        if (_param == 1) {\n\n            // Define controller\n            ControllerInterface controller = ControllerInterface(Avatar(_avatar).owner());\n            // pay the funds:\n            if (!controller.mintReputation(int(proposal.reputationReward), proposal.beneficiary,_avatar)) {\n                revert();\n              }\n            if (!controller.mintTokens(proposal.nativeTokenReward, proposal.beneficiary,_avatar)) {\n                revert();\n              }\n            if (!controller.sendEther(proposal.ethReward, proposal.beneficiary,_avatar)) {\n                revert();\n              }\n            if (proposal.externalToken != address(0) && proposal.externalTokenReward > 0) {\n                if (!controller.externalTokenTransfer(proposal.externalToken, proposal.beneficiary, proposal.externalTokenReward,_avatar)) {\n                    revert();\n                  }\n                }\n          }\n\n        ProposalExecuted(_avatar, _proposalId);\n        return true;\n    }\n}\n",
  "sourcePath": "/Users/oren/daostack/daostack2/daostack/contracts/universalSchemes/ContributionReward.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/universalSchemes/ContributionReward.sol",
      "exportedSymbols": {
        "ContributionReward": [
          7714
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 7317,
        "name": "PragmaDirective",
        "src": "0:24:20"
      },
      {
        "attributes": {
          "SourceUnit": 3460,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/VotingMachines/IntVoteInterface.sol",
          "file": "../VotingMachines/IntVoteInterface.sol",
          "scope": 7715,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7318,
        "name": "ImportDirective",
        "src": "26:48:20"
      },
      {
        "attributes": {
          "SourceUnit": 9586,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/universalSchemes/UniversalScheme.sol",
          "file": "./UniversalScheme.sol",
          "scope": 7715,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7319,
        "name": "ImportDirective",
        "src": "75:31:20"
      },
      {
        "attributes": {
          "contractDependencies": [
            9585,
            9604,
            11445
          ],
          "contractKind": "contract",
          "documentation": "@title A scheme for proposing and rewarding contributions to an organization\n@dev An agent can ask an organization to recognize a contribution and reward\nhim with token, reputation, ether or any combination.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            7714,
            9585,
            9604,
            11445
          ],
          "name": "ContributionReward",
          "scope": 7715
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "UniversalScheme",
                  "referencedDeclaration": 9585,
                  "type": "contract UniversalScheme"
                },
                "id": 7320,
                "name": "UserDefinedTypeName",
                "src": "366:15:20"
              }
            ],
            "id": 7321,
            "name": "InheritanceSpecifier",
            "src": "366:15:20"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "NewContributionProposal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 7339,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7322,
                        "name": "ElementaryTypeName",
                        "src": "427:7:20"
                      }
                    ],
                    "id": 7323,
                    "name": "VariableDeclaration",
                    "src": "427:23:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 7339,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7324,
                        "name": "ElementaryTypeName",
                        "src": "460:7:20"
                      }
                    ],
                    "id": 7325,
                    "name": "VariableDeclaration",
                    "src": "460:27:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_intVoteInterface",
                      "scope": 7339,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7326,
                        "name": "ElementaryTypeName",
                        "src": "497:7:20"
                      }
                    ],
                    "id": 7327,
                    "name": "VariableDeclaration",
                    "src": "497:33:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_contributionDescription",
                      "scope": 7339,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7328,
                        "name": "ElementaryTypeName",
                        "src": "540:7:20"
                      }
                    ],
                    "id": 7329,
                    "name": "VariableDeclaration",
                    "src": "540:32:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_rewards",
                      "scope": 7339,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256[4] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "type": "uint256[4] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 7330,
                            "name": "ElementaryTypeName",
                            "src": "582:4:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "34",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 4",
                              "value": "4"
                            },
                            "id": 7331,
                            "name": "Literal",
                            "src": "587:1:20"
                          }
                        ],
                        "id": 7332,
                        "name": "ArrayTypeName",
                        "src": "582:7:20"
                      }
                    ],
                    "id": 7333,
                    "name": "VariableDeclaration",
                    "src": "582:17:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_externalToken",
                      "scope": 7339,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 7334,
                        "name": "UserDefinedTypeName",
                        "src": "609:13:20"
                      }
                    ],
                    "id": 7335,
                    "name": "VariableDeclaration",
                    "src": "609:28:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_beneficiary",
                      "scope": 7339,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7336,
                        "name": "ElementaryTypeName",
                        "src": "647:7:20"
                      }
                    ],
                    "id": 7337,
                    "name": "VariableDeclaration",
                    "src": "647:20:20"
                  }
                ],
                "id": 7338,
                "name": "ParameterList",
                "src": "417:256:20"
              }
            ],
            "id": 7339,
            "name": "EventDefinition",
            "src": "388:286:20"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ProposalExecuted"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 7345,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7340,
                        "name": "ElementaryTypeName",
                        "src": "702:7:20"
                      }
                    ],
                    "id": 7341,
                    "name": "VariableDeclaration",
                    "src": "702:23:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 7345,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7342,
                        "name": "ElementaryTypeName",
                        "src": "727:7:20"
                      }
                    ],
                    "id": 7343,
                    "name": "VariableDeclaration",
                    "src": "727:27:20"
                  }
                ],
                "id": 7344,
                "name": "ParameterList",
                "src": "701:54:20"
              }
            ],
            "id": 7345,
            "name": "EventDefinition",
            "src": "679:77:20"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ProposalDeleted"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 7351,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7346,
                        "name": "ElementaryTypeName",
                        "src": "783:7:20"
                      }
                    ],
                    "id": 7347,
                    "name": "VariableDeclaration",
                    "src": "783:23:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 7351,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7348,
                        "name": "ElementaryTypeName",
                        "src": "808:7:20"
                      }
                    ],
                    "id": 7349,
                    "name": "VariableDeclaration",
                    "src": "808:27:20"
                  }
                ],
                "id": 7350,
                "name": "ParameterList",
                "src": "782:54:20"
              }
            ],
            "id": 7351,
            "name": "EventDefinition",
            "src": "761:76:20"
          },
          {
            "attributes": {
              "canonicalName": "ContributionReward.ContributionProposal",
              "name": "ContributionProposal",
              "scope": 7714,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "contributionDescriptionHash",
                  "scope": 7366,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 7352,
                    "name": "ElementaryTypeName",
                    "src": "942:7:20"
                  }
                ],
                "id": 7353,
                "name": "VariableDeclaration",
                "src": "942:35:20"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "nativeTokenReward",
                  "scope": 7366,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7354,
                    "name": "ElementaryTypeName",
                    "src": "1021:4:20"
                  }
                ],
                "id": 7355,
                "name": "VariableDeclaration",
                "src": "1021:22:20"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "reputationReward",
                  "scope": 7366,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7356,
                    "name": "ElementaryTypeName",
                    "src": "1110:4:20"
                  }
                ],
                "id": 7357,
                "name": "VariableDeclaration",
                "src": "1110:21:20"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "ethReward",
                  "scope": 7366,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7358,
                    "name": "ElementaryTypeName",
                    "src": "1186:4:20"
                  }
                ],
                "id": 7359,
                "name": "VariableDeclaration",
                "src": "1186:14:20"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "externalToken",
                  "scope": 7366,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract StandardToken",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "StandardToken",
                      "referencedDeclaration": 11999,
                      "type": "contract StandardToken"
                    },
                    "id": 7360,
                    "name": "UserDefinedTypeName",
                    "src": "1210:13:20"
                  }
                ],
                "id": 7361,
                "name": "VariableDeclaration",
                "src": "1210:27:20"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "externalTokenReward",
                  "scope": 7366,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7362,
                    "name": "ElementaryTypeName",
                    "src": "1247:4:20"
                  }
                ],
                "id": 7363,
                "name": "VariableDeclaration",
                "src": "1247:24:20"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "beneficiary",
                  "scope": 7366,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 7364,
                    "name": "ElementaryTypeName",
                    "src": "1281:7:20"
                  }
                ],
                "id": 7365,
                "name": "VariableDeclaration",
                "src": "1281:19:20"
              }
            ],
            "id": 7366,
            "name": "StructDefinition",
            "src": "904:403:20"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organizationsProposals",
              "scope": 7714,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 7367,
                    "name": "ElementaryTypeName",
                    "src": "1416:7:20"
                  },
                  {
                    "attributes": {
                      "type": "mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7368,
                        "name": "ElementaryTypeName",
                        "src": "1433:7:20"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "ContributionProposal",
                          "referencedDeclaration": 7366,
                          "type": "struct ContributionReward.ContributionProposal storage pointer"
                        },
                        "id": 7369,
                        "name": "UserDefinedTypeName",
                        "src": "1442:20:20"
                      }
                    ],
                    "id": 7370,
                    "name": "Mapping",
                    "src": "1425:38:20"
                  }
                ],
                "id": 7371,
                "name": "Mapping",
                "src": "1408:56:20"
              }
            ],
            "id": 7372,
            "name": "VariableDeclaration",
            "src": "1408:86:20"
          },
          {
            "attributes": {
              "canonicalName": "ContributionReward.Parameters",
              "name": "Parameters",
              "scope": 7714,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "orgNativeTokenFee",
                  "scope": 7379,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7373,
                    "name": "ElementaryTypeName",
                    "src": "1728:4:20"
                  }
                ],
                "id": 7374,
                "name": "VariableDeclaration",
                "src": "1728:22:20"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "voteApproveParams",
                  "scope": 7379,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 7375,
                    "name": "ElementaryTypeName",
                    "src": "1848:7:20"
                  }
                ],
                "id": 7376,
                "name": "VariableDeclaration",
                "src": "1848:25:20"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "intVote",
                  "scope": 7379,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract IntVoteInterface",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "IntVoteInterface",
                      "referencedDeclaration": 3459,
                      "type": "contract IntVoteInterface"
                    },
                    "id": 7377,
                    "name": "UserDefinedTypeName",
                    "src": "1883:16:20"
                  }
                ],
                "id": 7378,
                "name": "VariableDeclaration",
                "src": "1883:24:20"
              }
            ],
            "id": 7379,
            "name": "StructDefinition",
            "src": "1700:214:20"
          },
          {
            "attributes": {
              "constant": false,
              "name": "parameters",
              "scope": 7714,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(bytes32 => struct ContributionReward.Parameters storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(bytes32 => struct ContributionReward.Parameters storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 7380,
                    "name": "ElementaryTypeName",
                    "src": "2030:7:20"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Parameters",
                      "referencedDeclaration": 7379,
                      "type": "struct ContributionReward.Parameters storage pointer"
                    },
                    "id": 7381,
                    "name": "UserDefinedTypeName",
                    "src": "2039:10:20"
                  }
                ],
                "id": 7382,
                "name": "Mapping",
                "src": "2022:28:20"
              }
            ],
            "id": 7383,
            "name": "VariableDeclaration",
            "src": "2022:46:20"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "ContributionReward",
              "payable": false,
              "scope": 7714,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7384,
                "name": "ParameterList",
                "src": "2140:2:20"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7385,
                "name": "ParameterList",
                "src": "2150:0:20"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 7386,
                "name": "Block",
                "src": "2150:2:20"
              }
            ],
            "id": 7387,
            "name": "FunctionDefinition",
            "src": "2113:39:20"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "setParameters",
              "payable": false,
              "scope": 7714,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_orgNativeTokenFee",
                      "scope": 7430,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 7388,
                        "name": "ElementaryTypeName",
                        "src": "2287:4:20"
                      }
                    ],
                    "id": 7389,
                    "name": "VariableDeclaration",
                    "src": "2287:23:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteApproveParams",
                      "scope": 7430,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7390,
                        "name": "ElementaryTypeName",
                        "src": "2320:7:20"
                      }
                    ],
                    "id": 7391,
                    "name": "VariableDeclaration",
                    "src": "2320:26:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 7430,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 3459,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 7392,
                        "name": "UserDefinedTypeName",
                        "src": "2356:16:20"
                      }
                    ],
                    "id": 7393,
                    "name": "VariableDeclaration",
                    "src": "2356:25:20"
                  }
                ],
                "id": 7394,
                "name": "ParameterList",
                "src": "2277:110:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 7430,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7395,
                        "name": "ElementaryTypeName",
                        "src": "2403:7:20"
                      }
                    ],
                    "id": 7396,
                    "name": "VariableDeclaration",
                    "src": "2403:7:20"
                  }
                ],
                "id": 7397,
                "name": "ParameterList",
                "src": "2402:9:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7399
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "paramsHash",
                          "scope": 7430,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 7398,
                            "name": "ElementaryTypeName",
                            "src": "2426:7:20"
                          }
                        ],
                        "id": 7399,
                        "name": "VariableDeclaration",
                        "src": "2426:18:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_IntVoteInterface_$3459",
                                  "typeString": "contract IntVoteInterface"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7449,
                              "type": "function (uint256,bytes32,contract IntVoteInterface) pure returns (bytes32)",
                              "value": "getParametersHash"
                            },
                            "id": 7400,
                            "name": "Identifier",
                            "src": "2447:17:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7389,
                              "type": "uint256",
                              "value": "_orgNativeTokenFee"
                            },
                            "id": 7401,
                            "name": "Identifier",
                            "src": "2478:18:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7391,
                              "type": "bytes32",
                              "value": "_voteApproveParams"
                            },
                            "id": 7402,
                            "name": "Identifier",
                            "src": "2510:18:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7393,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 7403,
                            "name": "Identifier",
                            "src": "2542:8:20"
                          }
                        ],
                        "id": 7404,
                        "name": "FunctionCall",
                        "src": "2447:113:20"
                      }
                    ],
                    "id": 7405,
                    "name": "VariableDeclarationStatement",
                    "src": "2426:134:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "orgNativeTokenFee",
                              "referencedDeclaration": 7374,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct ContributionReward.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7383,
                                      "type": "mapping(bytes32 => struct ContributionReward.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 7406,
                                    "name": "Identifier",
                                    "src": "2570:10:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7399,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 7407,
                                    "name": "Identifier",
                                    "src": "2581:10:20"
                                  }
                                ],
                                "id": 7408,
                                "name": "IndexAccess",
                                "src": "2570:22:20"
                              }
                            ],
                            "id": 7409,
                            "name": "MemberAccess",
                            "src": "2570:40:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7389,
                              "type": "uint256",
                              "value": "_orgNativeTokenFee"
                            },
                            "id": 7410,
                            "name": "Identifier",
                            "src": "2613:18:20"
                          }
                        ],
                        "id": 7411,
                        "name": "Assignment",
                        "src": "2570:61:20"
                      }
                    ],
                    "id": 7412,
                    "name": "ExpressionStatement",
                    "src": "2570:61:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "voteApproveParams",
                              "referencedDeclaration": 7376,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct ContributionReward.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7383,
                                      "type": "mapping(bytes32 => struct ContributionReward.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 7413,
                                    "name": "Identifier",
                                    "src": "2641:10:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7399,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 7414,
                                    "name": "Identifier",
                                    "src": "2652:10:20"
                                  }
                                ],
                                "id": 7415,
                                "name": "IndexAccess",
                                "src": "2641:22:20"
                              }
                            ],
                            "id": 7416,
                            "name": "MemberAccess",
                            "src": "2641:40:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7391,
                              "type": "bytes32",
                              "value": "_voteApproveParams"
                            },
                            "id": 7417,
                            "name": "Identifier",
                            "src": "2684:18:20"
                          }
                        ],
                        "id": 7418,
                        "name": "Assignment",
                        "src": "2641:61:20"
                      }
                    ],
                    "id": 7419,
                    "name": "ExpressionStatement",
                    "src": "2641:61:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract IntVoteInterface"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "intVote",
                              "referencedDeclaration": 7378,
                              "type": "contract IntVoteInterface"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct ContributionReward.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7383,
                                      "type": "mapping(bytes32 => struct ContributionReward.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 7420,
                                    "name": "Identifier",
                                    "src": "2712:10:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7399,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 7421,
                                    "name": "Identifier",
                                    "src": "2723:10:20"
                                  }
                                ],
                                "id": 7422,
                                "name": "IndexAccess",
                                "src": "2712:22:20"
                              }
                            ],
                            "id": 7423,
                            "name": "MemberAccess",
                            "src": "2712:30:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7393,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 7424,
                            "name": "Identifier",
                            "src": "2745:8:20"
                          }
                        ],
                        "id": 7425,
                        "name": "Assignment",
                        "src": "2712:41:20"
                      }
                    ],
                    "id": 7426,
                    "name": "ExpressionStatement",
                    "src": "2712:41:20"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7397
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 7399,
                          "type": "bytes32",
                          "value": "paramsHash"
                        },
                        "id": 7427,
                        "name": "Identifier",
                        "src": "2770:10:20"
                      }
                    ],
                    "id": 7428,
                    "name": "Return",
                    "src": "2763:17:20"
                  }
                ],
                "id": 7429,
                "name": "Block",
                "src": "2416:371:20"
              }
            ],
            "id": 7430,
            "name": "FunctionDefinition",
            "src": "2255:532:20"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getParametersHash",
              "payable": false,
              "scope": 7714,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_orgNativeTokenFee",
                      "scope": 7449,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 7431,
                        "name": "ElementaryTypeName",
                        "src": "3345:4:20"
                      }
                    ],
                    "id": 7432,
                    "name": "VariableDeclaration",
                    "src": "3345:23:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteApproveParams",
                      "scope": 7449,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7433,
                        "name": "ElementaryTypeName",
                        "src": "3378:7:20"
                      }
                    ],
                    "id": 7434,
                    "name": "VariableDeclaration",
                    "src": "3378:26:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 7449,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 3459,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 7435,
                        "name": "UserDefinedTypeName",
                        "src": "3414:16:20"
                      }
                    ],
                    "id": 7436,
                    "name": "VariableDeclaration",
                    "src": "3414:25:20"
                  }
                ],
                "id": 7437,
                "name": "ParameterList",
                "src": "3335:110:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 7449,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7438,
                        "name": "ElementaryTypeName",
                        "src": "3466:7:20"
                      }
                    ],
                    "id": 7439,
                    "name": "VariableDeclaration",
                    "src": "3466:7:20"
                  }
                ],
                "id": 7440,
                "name": "ParameterList",
                "src": "3465:9:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7440
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_contract$_IntVoteInterface_$3459",
                                      "typeString": "contract IntVoteInterface"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12005,
                                  "type": "function () pure returns (bytes32)",
                                  "value": "keccak256"
                                },
                                "id": 7441,
                                "name": "Identifier",
                                "src": "3497:9:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7434,
                                  "type": "bytes32",
                                  "value": "_voteApproveParams"
                                },
                                "id": 7442,
                                "name": "Identifier",
                                "src": "3507:18:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7432,
                                  "type": "uint256",
                                  "value": "_orgNativeTokenFee"
                                },
                                "id": 7443,
                                "name": "Identifier",
                                "src": "3527:18:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7436,
                                  "type": "contract IntVoteInterface",
                                  "value": "_intVote"
                                },
                                "id": 7444,
                                "name": "Identifier",
                                "src": "3547:8:20"
                              }
                            ],
                            "id": 7445,
                            "name": "FunctionCall",
                            "src": "3497:59:20"
                          }
                        ],
                        "id": 7446,
                        "name": "TupleExpression",
                        "src": "3496:61:20"
                      }
                    ],
                    "id": 7447,
                    "name": "Return",
                    "src": "3489:68:20"
                  }
                ],
                "id": 7448,
                "name": "Block",
                "src": "3479:85:20"
              }
            ],
            "id": 7449,
            "name": "FunctionDefinition",
            "src": "3309:255:20"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "proposeContributionReward",
              "payable": false,
              "scope": 7714,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 7577,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3873,
                          "type": "contract Avatar"
                        },
                        "id": 7450,
                        "name": "UserDefinedTypeName",
                        "src": "4251:6:20"
                      }
                    ],
                    "id": 7451,
                    "name": "VariableDeclaration",
                    "src": "4251:14:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_contributionDescriptionHash",
                      "scope": 7577,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7452,
                        "name": "ElementaryTypeName",
                        "src": "4275:7:20"
                      }
                    ],
                    "id": 7453,
                    "name": "VariableDeclaration",
                    "src": "4275:36:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_rewards",
                      "scope": 7577,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256[4] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "type": "uint256[4] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 7454,
                            "name": "ElementaryTypeName",
                            "src": "4321:4:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "34",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 4",
                              "value": "4"
                            },
                            "id": 7455,
                            "name": "Literal",
                            "src": "4326:1:20"
                          }
                        ],
                        "id": 7456,
                        "name": "ArrayTypeName",
                        "src": "4321:7:20"
                      }
                    ],
                    "id": 7457,
                    "name": "VariableDeclaration",
                    "src": "4321:16:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 7577,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 11999,
                          "type": "contract StandardToken"
                        },
                        "id": 7458,
                        "name": "UserDefinedTypeName",
                        "src": "4347:13:20"
                      }
                    ],
                    "id": 7459,
                    "name": "VariableDeclaration",
                    "src": "4347:28:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 7577,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7460,
                        "name": "ElementaryTypeName",
                        "src": "4385:7:20"
                      }
                    ],
                    "id": 7461,
                    "name": "VariableDeclaration",
                    "src": "4385:20:20"
                  }
                ],
                "id": 7462,
                "name": "ParameterList",
                "src": "4241:170:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 7577,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7463,
                        "name": "ElementaryTypeName",
                        "src": "4433:7:20"
                      }
                    ],
                    "id": 7464,
                    "name": "VariableDeclaration",
                    "src": "4433:7:20"
                  }
                ],
                "id": 7465,
                "name": "ParameterList",
                "src": "4432:9:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7467
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "controllerParams",
                          "scope": 7577,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct ContributionReward.Parameters memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Parameters",
                              "referencedDeclaration": 7379,
                              "type": "struct ContributionReward.Parameters storage pointer"
                            },
                            "id": 7466,
                            "name": "UserDefinedTypeName",
                            "src": "4456:10:20"
                          }
                        ],
                        "id": 7467,
                        "name": "VariableDeclaration",
                        "src": "4456:34:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct ContributionReward.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7383,
                              "type": "mapping(bytes32 => struct ContributionReward.Parameters storage ref)",
                              "value": "parameters"
                            },
                            "id": 7468,
                            "name": "Identifier",
                            "src": "4493:10:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3873",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    9584
                                  ],
                                  "referencedDeclaration": 9584,
                                  "type": "function (contract Avatar) view returns (bytes32)",
                                  "value": "getParametersFromController"
                                },
                                "id": 7469,
                                "name": "Identifier",
                                "src": "4504:27:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7451,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 7470,
                                "name": "Identifier",
                                "src": "4532:7:20"
                              }
                            ],
                            "id": 7471,
                            "name": "FunctionCall",
                            "src": "4504:36:20"
                          }
                        ],
                        "id": 7472,
                        "name": "IndexAccess",
                        "src": "4493:48:20"
                      }
                    ],
                    "id": 7473,
                    "name": "VariableDeclarationStatement",
                    "src": "4456:85:20"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "orgNativeTokenFee",
                              "referencedDeclaration": 7374,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7467,
                                  "type": "struct ContributionReward.Parameters memory",
                                  "value": "controllerParams"
                                },
                                "id": 7474,
                                "name": "Identifier",
                                "src": "4608:16:20"
                              }
                            ],
                            "id": 7475,
                            "name": "MemberAccess",
                            "src": "4608:34:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 7476,
                            "name": "Literal",
                            "src": "4645:1:20"
                          }
                        ],
                        "id": 7477,
                        "name": "BinaryOperation",
                        "src": "4608:38:20"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bool",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_contract$_Avatar_$3873",
                                          "typeString": "contract Avatar"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "transferFrom",
                                      "referencedDeclaration": 11853,
                                      "type": "function (address,address,uint256) external returns (bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "arguments": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "contract DAOToken",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                null
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "nativeToken",
                                              "referencedDeclaration": 3604,
                                              "type": "function () view external returns (contract DAOToken)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7451,
                                                  "type": "contract Avatar",
                                                  "value": "_avatar"
                                                },
                                                "id": 7478,
                                                "name": "Identifier",
                                                "src": "4662:7:20"
                                              }
                                            ],
                                            "id": 7480,
                                            "name": "MemberAccess",
                                            "src": "4662:19:20"
                                          }
                                        ],
                                        "id": 7481,
                                        "name": "FunctionCall",
                                        "src": "4662:21:20"
                                      }
                                    ],
                                    "id": 7482,
                                    "name": "MemberAccess",
                                    "src": "4662:34:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 12011,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 7483,
                                        "name": "Identifier",
                                        "src": "4697:3:20"
                                      }
                                    ],
                                    "id": 7484,
                                    "name": "MemberAccess",
                                    "src": "4697:10:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7451,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 7485,
                                    "name": "Identifier",
                                    "src": "4709:7:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "orgNativeTokenFee",
                                      "referencedDeclaration": 7374,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7467,
                                          "type": "struct ContributionReward.Parameters memory",
                                          "value": "controllerParams"
                                        },
                                        "id": 7486,
                                        "name": "Identifier",
                                        "src": "4718:16:20"
                                      }
                                    ],
                                    "id": 7487,
                                    "name": "MemberAccess",
                                    "src": "4718:34:20"
                                  }
                                ],
                                "id": 7488,
                                "name": "FunctionCall",
                                "src": "4662:91:20"
                              }
                            ],
                            "id": 7489,
                            "name": "ExpressionStatement",
                            "src": "4662:91:20"
                          }
                        ],
                        "id": 7490,
                        "name": "Block",
                        "src": "4648:116:20"
                      }
                    ],
                    "id": 7491,
                    "name": "IfStatement",
                    "src": "4604:160:20"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7493
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "contributionId",
                          "scope": 7577,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 7492,
                            "name": "ElementaryTypeName",
                            "src": "4774:7:20"
                          }
                        ],
                        "id": 7493,
                        "name": "VariableDeclaration",
                        "src": "4774:22:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3873",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ExecutableInterface_$8021",
                                  "typeString": "contract ExecutableInterface"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "propose",
                              "referencedDeclaration": 3371,
                              "type": "function (uint256,bytes32,address,contract ExecutableInterface,address) external returns (bytes32)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 7378,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7467,
                                      "type": "struct ContributionReward.Parameters memory",
                                      "value": "controllerParams"
                                    },
                                    "id": 7494,
                                    "name": "Identifier",
                                    "src": "4799:16:20"
                                  }
                                ],
                                "id": 7495,
                                "name": "MemberAccess",
                                "src": "4799:24:20"
                              }
                            ],
                            "id": 7496,
                            "name": "MemberAccess",
                            "src": "4799:32:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "32",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "2"
                            },
                            "id": 7497,
                            "name": "Literal",
                            "src": "4832:1:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "voteApproveParams",
                              "referencedDeclaration": 7376,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7467,
                                  "type": "struct ContributionReward.Parameters memory",
                                  "value": "controllerParams"
                                },
                                "id": 7498,
                                "name": "Identifier",
                                "src": "4835:16:20"
                              }
                            ],
                            "id": 7499,
                            "name": "MemberAccess",
                            "src": "4835:34:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7451,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 7500,
                            "name": "Identifier",
                            "src": "4871:7:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract ExecutableInterface",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_ContributionReward_$7714",
                                      "typeString": "contract ContributionReward"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8021,
                                  "type": "type(contract ExecutableInterface)",
                                  "value": "ExecutableInterface"
                                },
                                "id": 7501,
                                "name": "Identifier",
                                "src": "4880:19:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12090,
                                  "type": "contract ContributionReward",
                                  "value": "this"
                                },
                                "id": 7502,
                                "name": "Identifier",
                                "src": "4900:4:20"
                              }
                            ],
                            "id": 7503,
                            "name": "FunctionCall",
                            "src": "4880:25:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 7504,
                                "name": "Identifier",
                                "src": "4906:3:20"
                              }
                            ],
                            "id": 7505,
                            "name": "MemberAccess",
                            "src": "4906:10:20"
                          }
                        ],
                        "id": 7506,
                        "name": "FunctionCall",
                        "src": "4799:118:20"
                      }
                    ],
                    "id": 7507,
                    "name": "VariableDeclarationStatement",
                    "src": "4774:143:20"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7509
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "beneficiary",
                          "scope": 7577,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "address",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 7508,
                            "name": "ElementaryTypeName",
                            "src": "4970:7:20"
                          }
                        ],
                        "id": 7509,
                        "name": "VariableDeclaration",
                        "src": "4970:19:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 7461,
                          "type": "address",
                          "value": "_beneficiary"
                        },
                        "id": 7510,
                        "name": "Identifier",
                        "src": "4992:12:20"
                      }
                    ],
                    "id": 7511,
                    "name": "VariableDeclarationStatement",
                    "src": "4970:34:20"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7509,
                              "type": "address",
                              "value": "beneficiary"
                            },
                            "id": 7512,
                            "name": "Identifier",
                            "src": "5018:11:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 7513,
                                "name": "ElementaryTypeNameExpression",
                                "src": "5033:7:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 7514,
                                "name": "Literal",
                                "src": "5041:1:20"
                              }
                            ],
                            "id": 7515,
                            "name": "FunctionCall",
                            "src": "5033:10:20"
                          }
                        ],
                        "id": 7516,
                        "name": "BinaryOperation",
                        "src": "5018:25:20"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7509,
                                      "type": "address",
                                      "value": "beneficiary"
                                    },
                                    "id": 7517,
                                    "name": "Identifier",
                                    "src": "5059:11:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 12011,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 7518,
                                        "name": "Identifier",
                                        "src": "5073:3:20"
                                      }
                                    ],
                                    "id": 7519,
                                    "name": "MemberAccess",
                                    "src": "5073:10:20"
                                  }
                                ],
                                "id": 7520,
                                "name": "Assignment",
                                "src": "5059:24:20"
                              }
                            ],
                            "id": 7521,
                            "name": "ExpressionStatement",
                            "src": "5059:24:20"
                          }
                        ],
                        "id": 7522,
                        "name": "Block",
                        "src": "5045:49:20"
                      }
                    ],
                    "id": 7523,
                    "name": "IfStatement",
                    "src": "5014:80:20"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7525
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposal",
                          "scope": 7577,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct ContributionReward.ContributionProposal memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "ContributionProposal",
                              "referencedDeclaration": 7366,
                              "type": "struct ContributionReward.ContributionProposal storage pointer"
                            },
                            "id": 7524,
                            "name": "UserDefinedTypeName",
                            "src": "5131:20:20"
                          }
                        ],
                        "id": 7525,
                        "name": "VariableDeclaration",
                        "src": "5131:36:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": true,
                          "lValueRequested": false,
                          "names": [
                            "contributionDescriptionHash",
                            "nativeTokenReward",
                            "reputationReward",
                            "ethReward",
                            "externalToken",
                            "externalTokenReward",
                            "beneficiary"
                          ],
                          "type": "struct ContributionReward.ContributionProposal memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7366,
                              "type": "type(struct ContributionReward.ContributionProposal storage pointer)",
                              "value": "ContributionProposal"
                            },
                            "id": 7526,
                            "name": "Identifier",
                            "src": "5170:20:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7453,
                              "type": "bytes32",
                              "value": "_contributionDescriptionHash"
                            },
                            "id": 7527,
                            "name": "Identifier",
                            "src": "5234:28:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7457,
                                  "type": "uint256[4] memory",
                                  "value": "_rewards"
                                },
                                "id": 7528,
                                "name": "Identifier",
                                "src": "5295:8:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 7529,
                                "name": "Literal",
                                "src": "5304:1:20"
                              }
                            ],
                            "id": 7530,
                            "name": "IndexAccess",
                            "src": "5295:11:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7457,
                                  "type": "uint256[4] memory",
                                  "value": "_rewards"
                                },
                                "id": 7531,
                                "name": "Identifier",
                                "src": "5338:8:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 7532,
                                "name": "Literal",
                                "src": "5347:1:20"
                              }
                            ],
                            "id": 7533,
                            "name": "IndexAccess",
                            "src": "5338:11:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7457,
                                  "type": "uint256[4] memory",
                                  "value": "_rewards"
                                },
                                "id": 7534,
                                "name": "Identifier",
                                "src": "5374:8:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "32",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 2",
                                  "value": "2"
                                },
                                "id": 7535,
                                "name": "Literal",
                                "src": "5383:1:20"
                              }
                            ],
                            "id": 7536,
                            "name": "IndexAccess",
                            "src": "5374:11:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7459,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 7537,
                            "name": "Identifier",
                            "src": "5414:14:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7457,
                                  "type": "uint256[4] memory",
                                  "value": "_rewards"
                                },
                                "id": 7538,
                                "name": "Identifier",
                                "src": "5463:8:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "33",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 3",
                                  "value": "3"
                                },
                                "id": 7539,
                                "name": "Literal",
                                "src": "5472:1:20"
                              }
                            ],
                            "id": 7540,
                            "name": "IndexAccess",
                            "src": "5463:11:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7509,
                              "type": "address",
                              "value": "beneficiary"
                            },
                            "id": 7541,
                            "name": "Identifier",
                            "src": "5501:11:20"
                          }
                        ],
                        "id": 7542,
                        "name": "FunctionCall",
                        "src": "5170:353:20"
                      }
                    ],
                    "id": 7543,
                    "name": "VariableDeclarationStatement",
                    "src": "5131:392:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct ContributionReward.ContributionProposal storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct ContributionReward.ContributionProposal storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7372,
                                      "type": "mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))",
                                      "value": "organizationsProposals"
                                    },
                                    "id": 7544,
                                    "name": "Identifier",
                                    "src": "5533:22:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7451,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 7545,
                                    "name": "Identifier",
                                    "src": "5556:7:20"
                                  }
                                ],
                                "id": 7547,
                                "name": "IndexAccess",
                                "src": "5533:31:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7493,
                                  "type": "bytes32",
                                  "value": "contributionId"
                                },
                                "id": 7546,
                                "name": "Identifier",
                                "src": "5565:14:20"
                              }
                            ],
                            "id": 7548,
                            "name": "IndexAccess",
                            "src": "5533:47:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7525,
                              "type": "struct ContributionReward.ContributionProposal memory",
                              "value": "proposal"
                            },
                            "id": 7549,
                            "name": "Identifier",
                            "src": "5583:8:20"
                          }
                        ],
                        "id": 7550,
                        "name": "Assignment",
                        "src": "5533:58:20"
                      }
                    ],
                    "id": 7551,
                    "name": "ExpressionStatement",
                    "src": "5533:58:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3873",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_IntVoteInterface_$3459",
                                  "typeString": "contract IntVoteInterface"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr",
                                  "typeString": "uint256[4] memory"
                                },
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$11999",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7339,
                              "type": "function (address,bytes32,address,bytes32,uint256[4] memory,contract StandardToken,address)",
                              "value": "NewContributionProposal"
                            },
                            "id": 7552,
                            "name": "Identifier",
                            "src": "5602:23:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7451,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 7553,
                            "name": "Identifier",
                            "src": "5639:7:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7493,
                              "type": "bytes32",
                              "value": "contributionId"
                            },
                            "id": 7554,
                            "name": "Identifier",
                            "src": "5660:14:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "intVote",
                              "referencedDeclaration": 7378,
                              "type": "contract IntVoteInterface"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7467,
                                  "type": "struct ContributionReward.Parameters memory",
                                  "value": "controllerParams"
                                },
                                "id": 7555,
                                "name": "Identifier",
                                "src": "5688:16:20"
                              }
                            ],
                            "id": 7556,
                            "name": "MemberAccess",
                            "src": "5688:24:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7453,
                              "type": "bytes32",
                              "value": "_contributionDescriptionHash"
                            },
                            "id": 7557,
                            "name": "Identifier",
                            "src": "5726:28:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7457,
                              "type": "uint256[4] memory",
                              "value": "_rewards"
                            },
                            "id": 7558,
                            "name": "Identifier",
                            "src": "5768:8:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7459,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 7559,
                            "name": "Identifier",
                            "src": "5790:14:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7509,
                              "type": "address",
                              "value": "beneficiary"
                            },
                            "id": 7560,
                            "name": "Identifier",
                            "src": "5818:11:20"
                          }
                        ],
                        "id": 7561,
                        "name": "FunctionCall",
                        "src": "5602:237:20"
                      }
                    ],
                    "id": 7562,
                    "name": "ExpressionStatement",
                    "src": "5602:237:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "ownerVote",
                              "referencedDeclaration": 3398,
                              "type": "function (bytes32,uint256,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 7378,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7467,
                                      "type": "struct ContributionReward.Parameters memory",
                                      "value": "controllerParams"
                                    },
                                    "id": 7563,
                                    "name": "Identifier",
                                    "src": "5884:16:20"
                                  }
                                ],
                                "id": 7566,
                                "name": "MemberAccess",
                                "src": "5884:24:20"
                              }
                            ],
                            "id": 7567,
                            "name": "MemberAccess",
                            "src": "5884:34:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7493,
                              "type": "bytes32",
                              "value": "contributionId"
                            },
                            "id": 7568,
                            "name": "Identifier",
                            "src": "5919:14:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 7569,
                            "name": "Literal",
                            "src": "5935:1:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 7570,
                                "name": "Identifier",
                                "src": "5938:3:20"
                              }
                            ],
                            "id": 7571,
                            "name": "MemberAccess",
                            "src": "5938:10:20"
                          }
                        ],
                        "id": 7572,
                        "name": "FunctionCall",
                        "src": "5884:65:20"
                      }
                    ],
                    "id": 7573,
                    "name": "ExpressionStatement",
                    "src": "5884:65:20"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7465
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 7493,
                          "type": "bytes32",
                          "value": "contributionId"
                        },
                        "id": 7574,
                        "name": "Identifier",
                        "src": "6022:14:20"
                      }
                    ],
                    "id": 7575,
                    "name": "Return",
                    "src": "6015:21:20"
                  }
                ],
                "id": 7576,
                "name": "Block",
                "src": "4446:1597:20"
              }
            ],
            "id": 7577,
            "name": "FunctionDefinition",
            "src": "4207:1836:20"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "execute",
              "payable": false,
              "scope": 7714,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_proposalId",
                      "scope": 7713,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7578,
                        "name": "ElementaryTypeName",
                        "src": "6375:7:20"
                      }
                    ],
                    "id": 7579,
                    "name": "VariableDeclaration",
                    "src": "6375:19:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 7713,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7580,
                        "name": "ElementaryTypeName",
                        "src": "6396:7:20"
                      }
                    ],
                    "id": 7581,
                    "name": "VariableDeclaration",
                    "src": "6396:15:20"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_param",
                      "scope": 7713,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int",
                          "type": "int256"
                        },
                        "id": 7582,
                        "name": "ElementaryTypeName",
                        "src": "6413:3:20"
                      }
                    ],
                    "id": 7583,
                    "name": "VariableDeclaration",
                    "src": "6413:10:20"
                  }
                ],
                "id": 7584,
                "name": "ParameterList",
                "src": "6374:50:20"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 7713,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7585,
                        "name": "ElementaryTypeName",
                        "src": "6440:4:20"
                      }
                    ],
                    "id": 7586,
                    "name": "VariableDeclaration",
                    "src": "6440:4:20"
                  }
                ],
                "id": 7587,
                "name": "ParameterList",
                "src": "6439:6:20"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 7588,
                            "name": "Identifier",
                            "src": "6514:7:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 7378,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct ContributionReward.Parameters storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7383,
                                          "type": "mapping(bytes32 => struct ContributionReward.Parameters storage ref)",
                                          "value": "parameters"
                                        },
                                        "id": 7589,
                                        "name": "Identifier",
                                        "src": "6522:10:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "bytes32",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_Avatar_$3873",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                9584
                                              ],
                                              "referencedDeclaration": 9584,
                                              "type": "function (contract Avatar) view returns (bytes32)",
                                              "value": "getParametersFromController"
                                            },
                                            "id": 7590,
                                            "name": "Identifier",
                                            "src": "6533:27:20"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "contract Avatar",
                                              "type_conversion": true
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 3873,
                                                  "type": "type(contract Avatar)",
                                                  "value": "Avatar"
                                                },
                                                "id": 7591,
                                                "name": "Identifier",
                                                "src": "6561:6:20"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7581,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 7592,
                                                "name": "Identifier",
                                                "src": "6568:7:20"
                                              }
                                            ],
                                            "id": 7593,
                                            "name": "FunctionCall",
                                            "src": "6561:15:20"
                                          }
                                        ],
                                        "id": 7594,
                                        "name": "FunctionCall",
                                        "src": "6533:44:20"
                                      }
                                    ],
                                    "id": 7595,
                                    "name": "IndexAccess",
                                    "src": "6522:56:20"
                                  }
                                ],
                                "id": 7596,
                                "name": "MemberAccess",
                                "src": "6522:64:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12011,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 7597,
                                    "name": "Identifier",
                                    "src": "6590:3:20"
                                  }
                                ],
                                "id": 7598,
                                "name": "MemberAccess",
                                "src": "6590:10:20"
                              }
                            ],
                            "id": 7599,
                            "name": "BinaryOperation",
                            "src": "6522:78:20"
                          }
                        ],
                        "id": 7600,
                        "name": "FunctionCall",
                        "src": "6514:87:20"
                      }
                    ],
                    "id": 7601,
                    "name": "ExpressionStatement",
                    "src": "6514:87:20"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7603
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposal",
                          "scope": 7713,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct ContributionReward.ContributionProposal memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "ContributionProposal",
                              "referencedDeclaration": 7366,
                              "type": "struct ContributionReward.ContributionProposal storage pointer"
                            },
                            "id": 7602,
                            "name": "UserDefinedTypeName",
                            "src": "6611:20:20"
                          }
                        ],
                        "id": 7603,
                        "name": "VariableDeclaration",
                        "src": "6611:36:20"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct ContributionReward.ContributionProposal storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7372,
                                  "type": "mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))",
                                  "value": "organizationsProposals"
                                },
                                "id": 7604,
                                "name": "Identifier",
                                "src": "6650:22:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7581,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 7605,
                                "name": "Identifier",
                                "src": "6673:7:20"
                              }
                            ],
                            "id": 7606,
                            "name": "IndexAccess",
                            "src": "6650:31:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7579,
                              "type": "bytes32",
                              "value": "_proposalId"
                            },
                            "id": 7607,
                            "name": "Identifier",
                            "src": "6682:11:20"
                          }
                        ],
                        "id": 7608,
                        "name": "IndexAccess",
                        "src": "6650:44:20"
                      }
                    ],
                    "id": 7609,
                    "name": "VariableDeclarationStatement",
                    "src": "6611:83:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct ContributionReward.ContributionProposal storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7372,
                                      "type": "mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))",
                                      "value": "organizationsProposals"
                                    },
                                    "id": 7610,
                                    "name": "Identifier",
                                    "src": "6711:22:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7581,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 7611,
                                    "name": "Identifier",
                                    "src": "6734:7:20"
                                  }
                                ],
                                "id": 7612,
                                "name": "IndexAccess",
                                "src": "6711:31:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7579,
                                  "type": "bytes32",
                                  "value": "_proposalId"
                                },
                                "id": 7613,
                                "name": "Identifier",
                                "src": "6743:11:20"
                              }
                            ],
                            "id": 7614,
                            "name": "IndexAccess",
                            "src": "6711:44:20"
                          }
                        ],
                        "id": 7615,
                        "name": "UnaryOperation",
                        "src": "6704:51:20"
                      }
                    ],
                    "id": 7616,
                    "name": "ExpressionStatement",
                    "src": "6704:51:20"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7583,
                              "type": "int256",
                              "value": "_param"
                            },
                            "id": 7617,
                            "name": "Identifier",
                            "src": "6810:6:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 7618,
                            "name": "Literal",
                            "src": "6820:1:20"
                          }
                        ],
                        "id": 7619,
                        "name": "BinaryOperation",
                        "src": "6810:11:20"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                7621
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "name": "controller",
                                  "scope": 7713,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "contract ControllerInterface",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "ControllerInterface",
                                      "referencedDeclaration": 5172,
                                      "type": "contract ControllerInterface"
                                    },
                                    "id": 7620,
                                    "name": "UserDefinedTypeName",
                                    "src": "6871:19:20"
                                  }
                                ],
                                "id": 7621,
                                "name": "VariableDeclaration",
                                "src": "6871:30:20"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract ControllerInterface",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5172,
                                      "type": "type(contract ControllerInterface)",
                                      "value": "ControllerInterface"
                                    },
                                    "id": 7622,
                                    "name": "Identifier",
                                    "src": "6904:19:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "owner",
                                          "referencedDeclaration": 11393,
                                          "type": "function () view external returns (address)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "contract Avatar",
                                              "type_conversion": true
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 3873,
                                                  "type": "type(contract Avatar)",
                                                  "value": "Avatar"
                                                },
                                                "id": 7623,
                                                "name": "Identifier",
                                                "src": "6924:6:20"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7581,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 7624,
                                                "name": "Identifier",
                                                "src": "6931:7:20"
                                              }
                                            ],
                                            "id": 7625,
                                            "name": "FunctionCall",
                                            "src": "6924:15:20"
                                          }
                                        ],
                                        "id": 7626,
                                        "name": "MemberAccess",
                                        "src": "6924:21:20"
                                      }
                                    ],
                                    "id": 7627,
                                    "name": "FunctionCall",
                                    "src": "6924:23:20"
                                  }
                                ],
                                "id": 7628,
                                "name": "FunctionCall",
                                "src": "6904:44:20"
                              }
                            ],
                            "id": 7629,
                            "name": "VariableDeclarationStatement",
                            "src": "6871:77:20"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "!",
                                  "prefix": true,
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bool",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            },
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "mintReputation",
                                          "referencedDeclaration": 4984,
                                          "type": "function (int256,address,address) external returns (bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7621,
                                              "type": "contract ControllerInterface",
                                              "value": "controller"
                                            },
                                            "id": 7630,
                                            "name": "Identifier",
                                            "src": "6997:10:20"
                                          }
                                        ],
                                        "id": 7631,
                                        "name": "MemberAccess",
                                        "src": "6997:25:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "int256",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(int256)",
                                              "value": "int"
                                            },
                                            "id": 7632,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "7023:3:20"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "reputationReward",
                                              "referencedDeclaration": 7357,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7603,
                                                  "type": "struct ContributionReward.ContributionProposal memory",
                                                  "value": "proposal"
                                                },
                                                "id": 7633,
                                                "name": "Identifier",
                                                "src": "7027:8:20"
                                              }
                                            ],
                                            "id": 7634,
                                            "name": "MemberAccess",
                                            "src": "7027:25:20"
                                          }
                                        ],
                                        "id": 7635,
                                        "name": "FunctionCall",
                                        "src": "7023:30:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "beneficiary",
                                          "referencedDeclaration": 7365,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7603,
                                              "type": "struct ContributionReward.ContributionProposal memory",
                                              "value": "proposal"
                                            },
                                            "id": 7636,
                                            "name": "Identifier",
                                            "src": "7055:8:20"
                                          }
                                        ],
                                        "id": 7637,
                                        "name": "MemberAccess",
                                        "src": "7055:20:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7581,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 7638,
                                        "name": "Identifier",
                                        "src": "7076:7:20"
                                      }
                                    ],
                                    "id": 7639,
                                    "name": "FunctionCall",
                                    "src": "6997:87:20"
                                  }
                                ],
                                "id": 7640,
                                "name": "UnaryOperation",
                                "src": "6996:88:20"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "arguments": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "tuple()",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                null
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 12015,
                                              "type": "function () pure",
                                              "value": "revert"
                                            },
                                            "id": 7641,
                                            "name": "Identifier",
                                            "src": "7104:6:20"
                                          }
                                        ],
                                        "id": 7642,
                                        "name": "FunctionCall",
                                        "src": "7104:8:20"
                                      }
                                    ],
                                    "id": 7643,
                                    "name": "ExpressionStatement",
                                    "src": "7104:8:20"
                                  }
                                ],
                                "id": 7644,
                                "name": "Block",
                                "src": "7086:43:20"
                              }
                            ],
                            "id": 7645,
                            "name": "IfStatement",
                            "src": "6992:137:20"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "!",
                                  "prefix": true,
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bool",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "mintTokens",
                                          "referencedDeclaration": 4995,
                                          "type": "function (uint256,address,address) external returns (bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7621,
                                              "type": "contract ControllerInterface",
                                              "value": "controller"
                                            },
                                            "id": 7646,
                                            "name": "Identifier",
                                            "src": "7147:10:20"
                                          }
                                        ],
                                        "id": 7647,
                                        "name": "MemberAccess",
                                        "src": "7147:21:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "nativeTokenReward",
                                          "referencedDeclaration": 7355,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7603,
                                              "type": "struct ContributionReward.ContributionProposal memory",
                                              "value": "proposal"
                                            },
                                            "id": 7648,
                                            "name": "Identifier",
                                            "src": "7169:8:20"
                                          }
                                        ],
                                        "id": 7649,
                                        "name": "MemberAccess",
                                        "src": "7169:26:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "beneficiary",
                                          "referencedDeclaration": 7365,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7603,
                                              "type": "struct ContributionReward.ContributionProposal memory",
                                              "value": "proposal"
                                            },
                                            "id": 7650,
                                            "name": "Identifier",
                                            "src": "7197:8:20"
                                          }
                                        ],
                                        "id": 7651,
                                        "name": "MemberAccess",
                                        "src": "7197:20:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7581,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 7652,
                                        "name": "Identifier",
                                        "src": "7218:7:20"
                                      }
                                    ],
                                    "id": 7653,
                                    "name": "FunctionCall",
                                    "src": "7147:79:20"
                                  }
                                ],
                                "id": 7654,
                                "name": "UnaryOperation",
                                "src": "7146:80:20"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "arguments": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "tuple()",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                null
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 12015,
                                              "type": "function () pure",
                                              "value": "revert"
                                            },
                                            "id": 7655,
                                            "name": "Identifier",
                                            "src": "7246:6:20"
                                          }
                                        ],
                                        "id": 7656,
                                        "name": "FunctionCall",
                                        "src": "7246:8:20"
                                      }
                                    ],
                                    "id": 7657,
                                    "name": "ExpressionStatement",
                                    "src": "7246:8:20"
                                  }
                                ],
                                "id": 7658,
                                "name": "Block",
                                "src": "7228:43:20"
                              }
                            ],
                            "id": 7659,
                            "name": "IfStatement",
                            "src": "7142:129:20"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "!",
                                  "prefix": true,
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bool",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sendEther",
                                          "referencedDeclaration": 5117,
                                          "type": "function (uint256,address,address) external returns (bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7621,
                                              "type": "contract ControllerInterface",
                                              "value": "controller"
                                            },
                                            "id": 7660,
                                            "name": "Identifier",
                                            "src": "7289:10:20"
                                          }
                                        ],
                                        "id": 7661,
                                        "name": "MemberAccess",
                                        "src": "7289:20:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "ethReward",
                                          "referencedDeclaration": 7359,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7603,
                                              "type": "struct ContributionReward.ContributionProposal memory",
                                              "value": "proposal"
                                            },
                                            "id": 7662,
                                            "name": "Identifier",
                                            "src": "7310:8:20"
                                          }
                                        ],
                                        "id": 7663,
                                        "name": "MemberAccess",
                                        "src": "7310:18:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "beneficiary",
                                          "referencedDeclaration": 7365,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7603,
                                              "type": "struct ContributionReward.ContributionProposal memory",
                                              "value": "proposal"
                                            },
                                            "id": 7664,
                                            "name": "Identifier",
                                            "src": "7330:8:20"
                                          }
                                        ],
                                        "id": 7665,
                                        "name": "MemberAccess",
                                        "src": "7330:20:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7581,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 7666,
                                        "name": "Identifier",
                                        "src": "7351:7:20"
                                      }
                                    ],
                                    "id": 7667,
                                    "name": "FunctionCall",
                                    "src": "7289:70:20"
                                  }
                                ],
                                "id": 7668,
                                "name": "UnaryOperation",
                                "src": "7288:71:20"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "arguments": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "tuple()",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                null
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 12015,
                                              "type": "function () pure",
                                              "value": "revert"
                                            },
                                            "id": 7669,
                                            "name": "Identifier",
                                            "src": "7379:6:20"
                                          }
                                        ],
                                        "id": 7670,
                                        "name": "FunctionCall",
                                        "src": "7379:8:20"
                                      }
                                    ],
                                    "id": 7671,
                                    "name": "ExpressionStatement",
                                    "src": "7379:8:20"
                                  }
                                ],
                                "id": 7672,
                                "name": "Block",
                                "src": "7361:43:20"
                              }
                            ],
                            "id": 7673,
                            "name": "IfStatement",
                            "src": "7284:120:20"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&&",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "!=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "externalToken",
                                          "referencedDeclaration": 7361,
                                          "type": "contract StandardToken"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7603,
                                              "type": "struct ContributionReward.ContributionProposal memory",
                                              "value": "proposal"
                                            },
                                            "id": 7674,
                                            "name": "Identifier",
                                            "src": "7421:8:20"
                                          }
                                        ],
                                        "id": 7675,
                                        "name": "MemberAccess",
                                        "src": "7421:22:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "address",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_rational_0_by_1",
                                                  "typeString": "int_const 0"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(address)",
                                              "value": "address"
                                            },
                                            "id": 7676,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "7447:7:20"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "30",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 0",
                                              "value": "0"
                                            },
                                            "id": 7677,
                                            "name": "Literal",
                                            "src": "7455:1:20"
                                          }
                                        ],
                                        "id": 7678,
                                        "name": "FunctionCall",
                                        "src": "7447:10:20"
                                      }
                                    ],
                                    "id": 7679,
                                    "name": "BinaryOperation",
                                    "src": "7421:36:20"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "externalTokenReward",
                                          "referencedDeclaration": 7363,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7603,
                                              "type": "struct ContributionReward.ContributionProposal memory",
                                              "value": "proposal"
                                            },
                                            "id": 7680,
                                            "name": "Identifier",
                                            "src": "7461:8:20"
                                          }
                                        ],
                                        "id": 7681,
                                        "name": "MemberAccess",
                                        "src": "7461:28:20"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "30",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 0",
                                          "value": "0"
                                        },
                                        "id": 7682,
                                        "name": "Literal",
                                        "src": "7492:1:20"
                                      }
                                    ],
                                    "id": 7683,
                                    "name": "BinaryOperation",
                                    "src": "7461:32:20"
                                  }
                                ],
                                "id": 7684,
                                "name": "BinaryOperation",
                                "src": "7421:72:20"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "falseBody": null
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "!",
                                          "prefix": true,
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "bool",
                                              "type_conversion": false
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_contract$_StandardToken_$11999",
                                                      "typeString": "contract StandardToken"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_uint256",
                                                      "typeString": "uint256"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "externalTokenTransfer",
                                                  "referencedDeclaration": 5130,
                                                  "type": "function (contract StandardToken,address,uint256,address) external returns (bool)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 7621,
                                                      "type": "contract ControllerInterface",
                                                      "value": "controller"
                                                    },
                                                    "id": 7685,
                                                    "name": "Identifier",
                                                    "src": "7518:10:20"
                                                  }
                                                ],
                                                "id": 7686,
                                                "name": "MemberAccess",
                                                "src": "7518:32:20"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "externalToken",
                                                  "referencedDeclaration": 7361,
                                                  "type": "contract StandardToken"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 7603,
                                                      "type": "struct ContributionReward.ContributionProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 7687,
                                                    "name": "Identifier",
                                                    "src": "7551:8:20"
                                                  }
                                                ],
                                                "id": 7688,
                                                "name": "MemberAccess",
                                                "src": "7551:22:20"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "beneficiary",
                                                  "referencedDeclaration": 7365,
                                                  "type": "address"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 7603,
                                                      "type": "struct ContributionReward.ContributionProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 7689,
                                                    "name": "Identifier",
                                                    "src": "7575:8:20"
                                                  }
                                                ],
                                                "id": 7690,
                                                "name": "MemberAccess",
                                                "src": "7575:20:20"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "externalTokenReward",
                                                  "referencedDeclaration": 7363,
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 7603,
                                                      "type": "struct ContributionReward.ContributionProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 7691,
                                                    "name": "Identifier",
                                                    "src": "7597:8:20"
                                                  }
                                                ],
                                                "id": 7692,
                                                "name": "MemberAccess",
                                                "src": "7597:28:20"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7581,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 7693,
                                                "name": "Identifier",
                                                "src": "7626:7:20"
                                              }
                                            ],
                                            "id": 7694,
                                            "name": "FunctionCall",
                                            "src": "7518:116:20"
                                          }
                                        ],
                                        "id": 7695,
                                        "name": "UnaryOperation",
                                        "src": "7517:117:20"
                                      },
                                      {
                                        "children": [
                                          {
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "arguments": [
                                                    null
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "isStructConstructorCall": false,
                                                  "lValueRequested": false,
                                                  "names": [
                                                    null
                                                  ],
                                                  "type": "tuple()",
                                                  "type_conversion": false
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": [
                                                        null
                                                      ],
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 12015,
                                                      "type": "function () pure",
                                                      "value": "revert"
                                                    },
                                                    "id": 7696,
                                                    "name": "Identifier",
                                                    "src": "7658:6:20"
                                                  }
                                                ],
                                                "id": 7697,
                                                "name": "FunctionCall",
                                                "src": "7658:8:20"
                                              }
                                            ],
                                            "id": 7698,
                                            "name": "ExpressionStatement",
                                            "src": "7658:8:20"
                                          }
                                        ],
                                        "id": 7699,
                                        "name": "Block",
                                        "src": "7636:51:20"
                                      }
                                    ],
                                    "id": 7700,
                                    "name": "IfStatement",
                                    "src": "7513:174:20"
                                  }
                                ],
                                "id": 7701,
                                "name": "Block",
                                "src": "7495:210:20"
                              }
                            ],
                            "id": 7702,
                            "name": "IfStatement",
                            "src": "7417:288:20"
                          }
                        ],
                        "id": 7703,
                        "name": "Block",
                        "src": "6823:894:20"
                      }
                    ],
                    "id": 7704,
                    "name": "IfStatement",
                    "src": "6806:911:20"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7345,
                              "type": "function (address,bytes32)",
                              "value": "ProposalExecuted"
                            },
                            "id": 7705,
                            "name": "Identifier",
                            "src": "7727:16:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7581,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 7706,
                            "name": "Identifier",
                            "src": "7744:7:20"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7579,
                              "type": "bytes32",
                              "value": "_proposalId"
                            },
                            "id": 7707,
                            "name": "Identifier",
                            "src": "7753:11:20"
                          }
                        ],
                        "id": 7708,
                        "name": "FunctionCall",
                        "src": "7727:38:20"
                      }
                    ],
                    "id": 7709,
                    "name": "ExpressionStatement",
                    "src": "7727:38:20"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7587
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 7710,
                        "name": "Literal",
                        "src": "7782:4:20"
                      }
                    ],
                    "id": 7711,
                    "name": "Return",
                    "src": "7775:11:20"
                  }
                ],
                "id": 7712,
                "name": "Block",
                "src": "6446:1347:20"
              }
            ],
            "id": 7713,
            "name": "FunctionDefinition",
            "src": "6358:1435:20"
          }
        ],
        "id": 7714,
        "name": "ContractDefinition",
        "src": "335:7460:20"
      }
    ],
    "id": 7715,
    "name": "SourceUnit",
    "src": "0:7796:20"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-02-04T21:57:39.060Z"
}