I have the following code in my remix.ethereum.org project:

pragma solidity ^0.6.10;

// SPDX-License-Identifier: Unlicensed

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/proxy/UpgradeableProxy.sol";

contract ImplementationContract {
    function returnTen() public pure returns(uint) {
        return 10;

contract ProxyContract is UpgradeableProxy {
    constructor(address _logic, bytes memory _data) 
        UpgradeableProxy(_logic, _data)

I've used Remix to deploy both contracts to the JavaScript VM.

Now what is the easiest way to call returnTen() from the ProxyContract deployment?


The easiest way is to select your implementation in the Contract drop down, then put your proxy address in the field At Address and validate. This way remix will load the abi of your implementation and call the proxy.

  • @ tclairet nice :) – Tarek Oct 14 '20 at 18:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.