{
  "address": "0xb02973F4d3C237B4CC913109f0D580818347Eb5C",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousAdmin",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "ProxyAdminTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousImplementation",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        }
      ],
      "name": "ProxyImplementationUpdated",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "proxyAdmin",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "id",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "transferProxyAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        }
      ],
      "name": "upgradeTo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "FundsDeposited",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "initiator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "FundsWithdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "executor",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fees",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "service",
          "type": "address"
        }
      ],
      "name": "LogDeductFees",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "maxFee",
          "type": "uint256"
        }
      ],
      "name": "UpdatedMaxFee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "service",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "add",
          "type": "bool"
        }
      ],
      "name": "UpdatedService",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "MIN_SHARES_IN_TREASURY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_receiver",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "depositFunds",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getCreditTokensByUser",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getTotalCreditTokensByUser",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getWhitelistedServices",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_maxFee",
          "type": "uint256"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maxFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oldTreasury",
      "outputs": [
        {
          "internalType": "contract ITaskTreasury",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "shares",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "totalShares",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "totalUserTokenBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_newMaxFee",
          "type": "uint256"
        }
      ],
      "name": "updateMaxFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_service",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "_add",
          "type": "bool"
        }
      ],
      "name": "updateWhitelistedService",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "useFunds",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "userTokenBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "_receiver",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "withdrawFunds",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "implementationAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "ownerAddress",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "stateMutability": "payable",
      "type": "constructor"
    }
  ],
  "transactionHash": "0xb2e82a41c6e720fe6d53709dfc64c6a907ff7015a7541d4062667d6b874f6370",
  "receipt": {
    "to": "0x0000000000000000000000000000000000008006",
    "from": "0xF1108379d71ff2A785899F4C36010f841F1Fea04",
    "contractAddress": "0xb02973F4d3C237B4CC913109f0D580818347Eb5C",
    "transactionIndex": 11,
    "gasUsed": "8916434",
    "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "blockHash": "0x3315ec5747ae866112c8fc956105d06114388cd39229cb896174fb87d420bd73",
    "transactionHash": "0xb2e82a41c6e720fe6d53709dfc64c6a907ff7015a7541d4062667d6b874f6370",
    "logs": [
      {
        "transactionIndex": 11,
        "blockNumber": 5924331,
        "transactionHash": "0xb2e82a41c6e720fe6d53709dfc64c6a907ff7015a7541d4062667d6b874f6370",
        "address": "0x000000000000000000000000000000000000800A",
        "topics": [
          "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
          "0x000000000000000000000000f1108379d71ff2a785899f4c36010f841f1fea04",
          "0x0000000000000000000000000000000000000000000000000000000000008001"
        ],
        "data": "0x000000000000000000000000000000000000000000000000000c680a60970700",
        "logIndex": 57,
        "blockHash": "0x3315ec5747ae866112c8fc956105d06114388cd39229cb896174fb87d420bd73"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5924331,
        "transactionHash": "0xb2e82a41c6e720fe6d53709dfc64c6a907ff7015a7541d4062667d6b874f6370",
        "address": "0x0000000000000000000000000000000000008008",
        "topics": [
          "0x3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241",
          "0x000000000000000000000000000000000000000000000000000000000000800e",
          "0x8824d6f4f99ec79d56f809100677561d4f28e108c3d5f8ce5627fcf6a19bccab"
        ],
        "data": "[encoded data, 14978 characters]",
        "logIndex": 58,
        "blockHash": "0x3315ec5747ae866112c8fc956105d06114388cd39229cb896174fb87d420bd73"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5924331,
        "transactionHash": "0xb2e82a41c6e720fe6d53709dfc64c6a907ff7015a7541d4062667d6b874f6370",
        "address": "0x0000000000000000000000000000000000008004",
        "topics": [
          "0xc94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287",
          "0x0100013d4ab513ca8fee73600e522d8b35050af46a0f64f5eb16a7a878e8e6da",
          "0x0000000000000000000000000000000000000000000000000000000000000000"
        ],
        "data": "0x",
        "logIndex": 59,
        "blockHash": "0x3315ec5747ae866112c8fc956105d06114388cd39229cb896174fb87d420bd73"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5924331,
        "transactionHash": "0xb2e82a41c6e720fe6d53709dfc64c6a907ff7015a7541d4062667d6b874f6370",
        "address": "0xb02973F4d3C237B4CC913109f0D580818347Eb5C",
        "topics": [
          "0x5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b7379068296",
          "0x0000000000000000000000000000000000000000000000000000000000000000",
          "0x000000000000000000000000843bd81da1609569a0cc43da3c30ba4e52a0d0e4"
        ],
        "data": "0x",
        "logIndex": 60,
        "blockHash": "0x3315ec5747ae866112c8fc956105d06114388cd39229cb896174fb87d420bd73"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5924331,
        "transactionHash": "0xb2e82a41c6e720fe6d53709dfc64c6a907ff7015a7541d4062667d6b874f6370",
        "address": "0xb02973F4d3C237B4CC913109f0D580818347Eb5C",
        "topics": [
          "0xdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec29",
          "0x0000000000000000000000000000000000000000000000000000000000000000",
          "0x000000000000000000000000f1108379d71ff2a785899f4c36010f841f1fea04"
        ],
        "data": "0x",
        "logIndex": 61,
        "blockHash": "0x3315ec5747ae866112c8fc956105d06114388cd39229cb896174fb87d420bd73"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5924331,
        "transactionHash": "0xb2e82a41c6e720fe6d53709dfc64c6a907ff7015a7541d4062667d6b874f6370",
        "address": "0x0000000000000000000000000000000000008006",
        "topics": [
          "0x290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5",
          "0x000000000000000000000000f1108379d71ff2a785899f4c36010f841f1fea04",
          "0x0100013d4ab513ca8fee73600e522d8b35050af46a0f64f5eb16a7a878e8e6da",
          "0x000000000000000000000000b02973f4d3c237b4cc913109f0d580818347eb5c"
        ],
        "data": "0x",
        "logIndex": 62,
        "blockHash": "0x3315ec5747ae866112c8fc956105d06114388cd39229cb896174fb87d420bd73"
      },
      {
        "transactionIndex": 11,
        "blockNumber": 5924331,
        "transactionHash": "0xb2e82a41c6e720fe6d53709dfc64c6a907ff7015a7541d4062667d6b874f6370",
        "address": "0x000000000000000000000000000000000000800A",
        "topics": [
          "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
          "0x0000000000000000000000000000000000000000000000000000000000008001",
          "0x000000000000000000000000f1108379d71ff2a785899f4c36010f841f1fea04"
        ],
        "data": "0x00000000000000000000000000000000000000000000000000047cad9c481a00",
        "logIndex": 63,
        "blockHash": "0x3315ec5747ae866112c8fc956105d06114388cd39229cb896174fb87d420bd73"
      }
    ],
    "blockNumber": 5924331,
    "cumulativeGasUsed": "0",
    "status": 1,
    "byzantium": true
  },
  "args": [
    "0x843bD81dA1609569a0cC43DA3c30Ba4E52a0d0E4",
    "0xF1108379d71ff2A785899F4C36010f841F1Fea04",
    "0xfe4b84df0000000000000000000000000000000000000000000000000000000000000000"
  ],
  "numDeployments": 1,
  "solcInputHash": "a55a0720c0d0238808136c5effb03d4d",
  "metadata": {
    "optimizer_settings": "M3B3",
    "solc_metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementationAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ownerAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"ProxyAdminTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousImplementation\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"ProxyImplementationUpdated\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"proxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"id\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Proxy implementing EIP173 for ownership management that accept ETH via receive\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/vendor/proxy/EIP173/EIP173ProxyWithCustomReceive.sol\":\"EIP173ProxyWithCustomReceive\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/vendor/proxy/EIP173/EIP173Proxy.sol\":{\"keccak256\":\"0x09fe40909bb79ccee2a7a2aa7b23ec9447efb70b1716bc13027dd239f9d438c0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://04399ede2fcbdd25e469fbdfb1d43bef67d65fa38c48c57192bd295a5c5db477\",\"dweb:/ipfs/QmV4BNn59jgC9f4u1JiXMU26sXeKfy9sDmwrExEvhJQZqD\"]},\"contracts/vendor/proxy/EIP173/EIP173ProxyWithCustomReceive.sol\":{\"keccak256\":\"0xc9b83d1648483977267dfaf47a2bdc84f245e2197646120533c001f4d4c2f976\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9b858b2ba7234f235e100bfa8d97330aea0fb63a02f6b383b72a83dc34aaabe3\",\"dweb:/ipfs/QmQEisB99WUAZdMLMhpPY2xxCgt6vvLVCXZCxdncTDDnsH\"]},\"contracts/vendor/proxy/EIP173/Proxy.sol\":{\"keccak256\":\"0xb5e3e1c4cab8a5e3bd968f51c201a11e651f62b47aa78a4e3e0b7508be268d35\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ae4f4936cc5632e31da04307746a3eafbb6179008958c8f6c578942fccbc969\",\"dweb:/ipfs/QmZZL2yrZBHVjPEtG6c3Su7XCA5jPkGkw38hbfB6Eegunz\"]}},\"version\":1}",
    "zk_version": "1.3.7"
  },
  "bytecode": "[encoded data, 20290 characters]",
  "deployedBytecode": "[encoded data, 20290 characters]",
  "execute": {
    "methodName": "initialize",
    "args": [0]
  },
  "implementation": "0x843bD81dA1609569a0cC43DA3c30Ba4E52a0d0E4",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "notice": "Proxy implementing EIP173 for ownership management that accept ETH via receive",
    "version": 1
  },
  "storageLayout": {
    "storage": [],
    "types": null
  }
}
