{
  "_format": "hh-sol-artifact-1",
  "contractName": "CustomMeterUser",
  "sourceName": "contracts/test/ResourceMetering.t.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "_prevBaseFee",
          "type": "uint128"
        },
        {
          "internalType": "uint64",
          "name": "_prevBoughtGas",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "_prevBlockNum",
          "type": "uint64"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "endGas",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "params",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "prevBaseFee",
          "type": "uint128"
        },
        {
          "internalType": "uint64",
          "name": "prevBoughtGas",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "prevBlockNum",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "startGas",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_amount",
          "type": "uint64"
        }
      ],
      "name": "use",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060405161100d38038061100d83398101604081905261002f916100b5565b604080516060810182526001600160801b03949094168085526001600160401b0393841660208601819052929093169301839052600180546001600160c01b031916909217600160801b909102176001600160c01b0316600160c01b909202919091179055610106565b80516001600160401b03811681146100b057600080fd5b919050565b6000806000606084860312156100ca57600080fd5b83516001600160801b03811681146100e157600080fd5b92506100ef60208501610099565b91506100fd60408501610099565b90509250925092565b610ef8806101156000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80633c62892914610051578063b4b64fbb1461006d578063cff0ab9614610080578063de893e6a14610114575b600080fd5b61005a60335481565b6040519081526020015b60405180910390f35b61005a61007b366004610b8b565b61011d565b6001546100db906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff9283166020850152911690820152606001610064565b61005a60325481565b6000805a905061012d838261013f565b5a6101389082610be4565b9392505050565b600154600090610175907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643610be4565b90506000610181610471565b90506000816020015160ff16826000015163ffffffff166101a29190610c2a565b905082156102d9576001546000906101d9908390700100000000000000000000000000000000900467ffffffffffffffff16610c92565b90506000836040015160ff16836101f09190610d06565b6001546102109084906fffffffffffffffffffffffffffffffff16610d06565b61021a9190610c2a565b60015490915060009061026b906102449084906fffffffffffffffffffffffffffffffff16610dc2565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff1661052b565b9050600186111561029a5761029761024482876040015160ff1660018a6102929190610be4565b610548565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b6001805486919060109061030c908490700100000000000000000000000000000000900467ffffffffffffffff16610e36565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1613156103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d6974000060648201526084015b60405180910390fd5b600154600090610420906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816610e62565b9050600061043248633b9aca0061059d565b61043c9083610e9f565b905060005a61044b9088610be4565b905080821115610467576104676104628284610be4565b6105b4565b5050505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526105266040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526301312d008152600a6020820152600891810191909152633b9aca006060820152620f424060808201526fffffffffffffffffffffffffffffffff60a082015290565b905090565b600061054061053a85856105e2565b836105f2565b949350505050565b6000670de0b6b3a76400006105896105608583610c2a565b61057290670de0b6b3a7640000610c92565b61058485670de0b6b3a7640000610d06565b610601565b6105939086610d06565b6105409190610c2a565b6000818310156105ad5781610138565b5090919050565b6000805a90505b825a6105c79083610be4565b10156105dd576105d682610eb3565b91506105bb565b505050565b6000818312156105ad5781610138565b60008183126105ad5781610138565b6000610138670de0b6b3a76400008361061986610632565b6106239190610d06565b61062d9190610c2a565b610876565b600080821361069d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016103eb565b600060606106aa84610ab5565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136108a757506000919050565b680755bf798b4a1bf1e58212610919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f57000000000000000000000000000000000000000060448201526064016103eb565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000808211610b20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016103eb565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b600060208284031215610b9d57600080fd5b813567ffffffffffffffff8116811461013857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610bf657610bf6610bb5565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610c3957610c39610bfb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615610c8d57610c8d610bb5565b500590565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615610ccc57610ccc610bb5565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615610d0057610d00610bb5565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615610d4757610d47610bb5565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615610d8257610d82610bb5565b60008712925087820587128484161615610d9e57610d9e610bb5565b87850587128184161615610db457610db4610bb5565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615610dfc57610dfc610bb5565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615610e3057610e30610bb5565b50500190565b600067ffffffffffffffff808316818516808303821115610e5957610e59610bb5565b01949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610e9a57610e9a610bb5565b500290565b600082610eae57610eae610bfb565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ee457610ee4610bb5565b506001019056fea164736f6c634300080f000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80633c62892914610051578063b4b64fbb1461006d578063cff0ab9614610080578063de893e6a14610114575b600080fd5b61005a60335481565b6040519081526020015b60405180910390f35b61005a61007b366004610b8b565b61011d565b6001546100db906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff9283166020850152911690820152606001610064565b61005a60325481565b6000805a905061012d838261013f565b5a6101389082610be4565b9392505050565b600154600090610175907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643610be4565b90506000610181610471565b90506000816020015160ff16826000015163ffffffff166101a29190610c2a565b905082156102d9576001546000906101d9908390700100000000000000000000000000000000900467ffffffffffffffff16610c92565b90506000836040015160ff16836101f09190610d06565b6001546102109084906fffffffffffffffffffffffffffffffff16610d06565b61021a9190610c2a565b60015490915060009061026b906102449084906fffffffffffffffffffffffffffffffff16610dc2565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff1661052b565b9050600186111561029a5761029761024482876040015160ff1660018a6102929190610be4565b610548565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b6001805486919060109061030c908490700100000000000000000000000000000000900467ffffffffffffffff16610e36565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1613156103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d6974000060648201526084015b60405180910390fd5b600154600090610420906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816610e62565b9050600061043248633b9aca0061059d565b61043c9083610e9f565b905060005a61044b9088610be4565b905080821115610467576104676104628284610be4565b6105b4565b5050505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526105266040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526301312d008152600a6020820152600891810191909152633b9aca006060820152620f424060808201526fffffffffffffffffffffffffffffffff60a082015290565b905090565b600061054061053a85856105e2565b836105f2565b949350505050565b6000670de0b6b3a76400006105896105608583610c2a565b61057290670de0b6b3a7640000610c92565b61058485670de0b6b3a7640000610d06565b610601565b6105939086610d06565b6105409190610c2a565b6000818310156105ad5781610138565b5090919050565b6000805a90505b825a6105c79083610be4565b10156105dd576105d682610eb3565b91506105bb565b505050565b6000818312156105ad5781610138565b60008183126105ad5781610138565b6000610138670de0b6b3a76400008361061986610632565b6106239190610d06565b61062d9190610c2a565b610876565b600080821361069d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016103eb565b600060606106aa84610ab5565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c182136108a757506000919050565b680755bf798b4a1bf1e58212610919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f57000000000000000000000000000000000000000060448201526064016103eb565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000808211610b20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e4544000000000000000000000000000000000000000000000060448201526064016103eb565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b600060208284031215610b9d57600080fd5b813567ffffffffffffffff8116811461013857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015610bf657610bf6610bb5565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610c3957610c39610bfb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f800000000000000000000000000000000000000000000000000000000000000083141615610c8d57610c8d610bb5565b500590565b6000808312837f800000000000000000000000000000000000000000000000000000000000000001831281151615610ccc57610ccc610bb5565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615610d0057610d00610bb5565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615610d4757610d47610bb5565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615610d8257610d82610bb5565b60008712925087820587128484161615610d9e57610d9e610bb5565b87850587128184161615610db457610db4610bb5565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615610dfc57610dfc610bb5565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615610e3057610e30610bb5565b50500190565b600067ffffffffffffffff808316818516808303821115610e5957610e59610bb5565b01949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610e9a57610e9a610bb5565b500290565b600082610eae57610eae610bfb565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ee457610ee4610bb5565b506001019056fea164736f6c634300080f000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
