{
  "_format": "hh-sol-artifact-1",
  "contractName": "ATokenMock",
  "sourceName": "contracts/mocks/ATokenMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IRewardsController",
          "name": "aic",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "decimals",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "asset",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "assetIndex",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "userIndex",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "rewardsAccrued",
          "type": "uint256"
        }
      ],
      "name": "Accrued",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "asset",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "reward",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "emission",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "distributionEnd",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "assetIndex",
          "type": "uint256"
        }
      ],
      "name": "AssetConfigUpdated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "_aic",
      "outputs": [
        {
          "internalType": "contract IRewardsController",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cleanUserState",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "totalSupply",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "userBalance",
          "type": "uint256"
        }
      ],
      "name": "doubleHandleActionOnAic",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "getScaledUserBalanceAndSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "totalSupply",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "userBalance",
          "type": "uint256"
        }
      ],
      "name": "handleActionOnAic",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "scaledTotalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "userBalance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalSupply",
          "type": "uint256"
        }
      ],
      "name": "setUserBalanceAndSupply",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b506040516104bc3803806104bc83398101604081905261002f91610058565b600080546001600160a01b0319166001600160a01b039390931692909217909155608052610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b6080516104106100ac600039600060ef01526104106000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80638d27929411610076578063b39944ba1161005b578063b39944ba1461013b578063b41c6f981461014a578063f794ca511461018f57600080fd5b80638d27929414610128578063b1bf962d146100db57600080fd5b80630afbcdc9146100a857806318160ddd146100db578063313ce567146100ed57806334743e7c14610113575b600080fd5b6100c16100b6366004610363565b506001546002549091565b604080519283526020830191909152015b60405180910390f35b6002545b6040519081526020016100d2565b7f00000000000000000000000000000000000000000000000000000000000000006100df565b610126610121366004610385565b6101a8565b005b610126610136366004610385565b610241565b61012660006001819055600255565b60005461016a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d2565b61012661019d3660046103b8565b600191909155600255565b6000546040517f31873e2e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905260448201849052909116906331873e2e906064015b600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b50505050505050565b6000546040517f31873e2e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905260448201849052909116906331873e2e90606401600060405180830381600087803b1580156102bc57600080fd5b505af11580156102d0573d6000803e3d6000fd5b50506000546040517f31873e2e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482018790526044820186905290911692506331873e2e915060640161020a565b803573ffffffffffffffffffffffffffffffffffffffff8116811461035e57600080fd5b919050565b60006020828403121561037557600080fd5b61037e8261033a565b9392505050565b60008060006060848603121561039a57600080fd5b6103a38461033a565b95602085013595506040909401359392505050565b600080604083850312156103cb57600080fd5b5050803592602090910135915056fea2646970667358221220568cc87562834dd13f727cc8c3d34ae5968f7035b0141d186834c0fa59f1aa1c64736f6c634300080a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80638d27929411610076578063b39944ba1161005b578063b39944ba1461013b578063b41c6f981461014a578063f794ca511461018f57600080fd5b80638d27929414610128578063b1bf962d146100db57600080fd5b80630afbcdc9146100a857806318160ddd146100db578063313ce567146100ed57806334743e7c14610113575b600080fd5b6100c16100b6366004610363565b506001546002549091565b604080519283526020830191909152015b60405180910390f35b6002545b6040519081526020016100d2565b7f00000000000000000000000000000000000000000000000000000000000000006100df565b610126610121366004610385565b6101a8565b005b610126610136366004610385565b610241565b61012660006001819055600255565b60005461016a9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d2565b61012661019d3660046103b8565b600191909155600255565b6000546040517f31873e2e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905260448201849052909116906331873e2e906064015b600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b50505050505050565b6000546040517f31873e2e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905260448201849052909116906331873e2e90606401600060405180830381600087803b1580156102bc57600080fd5b505af11580156102d0573d6000803e3d6000fd5b50506000546040517f31873e2e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482018790526044820186905290911692506331873e2e915060640161020a565b803573ffffffffffffffffffffffffffffffffffffffff8116811461035e57600080fd5b919050565b60006020828403121561037557600080fd5b61037e8261033a565b9392505050565b60008060006060848603121561039a57600080fd5b6103a38461033a565b95602085013595506040909401359392505050565b600080604083850312156103cb57600080fd5b5050803592602090910135915056fea2646970667358221220568cc87562834dd13f727cc8c3d34ae5968f7035b0141d186834c0fa59f1aa1c64736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
