def METHOD_NAME(self):
    bytecode_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), CONTRACT_PATH)
    assert (os.path.isfile(bytecode_file))
    bytecode = open(bytecode_file).read()
    # deploy contract
    tx = self.new_contract_tx(receiver="", data_hex=bytecode, storage_limit=20000)
    assert_equal(self.send_tx(tx, True), tx.hash_hex())
    receipt = self.get_transaction_receipt(tx.hash_hex())
    assert_equal(receipt['outcomeStatus'], '0x0')
    contract = receipt['contractCreated']
    assert_equal(receipt['storageCollateralized'], '0x280')
    assert_equal(receipt['storageReleased'], [])
    # call increment()
    data_hex = encode_hex_0x(keccak(b"increment()"))
    tx = self.new_contract_tx(receiver=contract, data_hex=data_hex, storage_limit=20000)
    assert_equal(self.send_tx(tx, True), tx.hash_hex())
    receipt = self.get_transaction_receipt(tx.hash_hex())
    assert_equal(receipt['storageCollateralized'], '0x0')
    assert_equal(receipt['storageReleased'], [])
    # call destroy()
    data_hex = encode_hex_0x(keccak(b"destroy()"))
    tx = self.new_contract_tx(receiver=contract, data_hex=data_hex, storage_limit=20000)
    assert_equal(self.send_tx(tx, True), tx.hash_hex())
    receipt = self.get_transaction_receipt(tx.hash_hex())
    assert_equal(receipt['storageCollateralized'], '0x0')
    assert_equal(len(receipt['storageReleased']), 1)
    assert_equal(receipt['storageReleased'][0]['collaterals'], '0x280')
    assert_equal(b32_address_to_hex(receipt['storageReleased'][0]['address']), self.GENESIS_ADDR)