circlefin / stablecoin-evm

Source repository for smart contracts used by Circle's stablecoins on EVM-compatible blockchains
Apache License 2.0
539 stars 328 forks source link

fail to deploy according to document #446

Open gzliudan opened 5 months ago

gzliudan commented 5 months ago

I'm fresh to this project. It seems the deploy guide is not very clear. I failed to deploy according to the document. It seems that my PROXY_ADMIN_ADDRESS is wrong. The below text is my settings in .env except private key:

TOKEN_NAME=USDC
TOKEN_SYMBOL=USDC
TOKEN_CURRENCY=USD
TOKEN_DECIMALS=6
PROXY_ADMIN_ADDRESS="0xD4CE02705041F04135f1949Bc835c1Fe0885513c"
OWNER_ADDRESS="0xD4CE02705041F04135f1949Bc835c1Fe0885513c"
MASTER_MINTER_OWNER_ADDRESS="0xD4CE02705041F04135f1949Bc835c1Fe0885513c"
GAS_MULTIPLIER=110
BLACKLIST_FILE_NAME=blacklist.remote.json

My deploy command is:

forge script -vv --broadcast scripts/deploy/deploy-fiat-token.s.sol --rpc-url <MY_RPC_URL>

Got error:

[⠒] Compiling...
No files changed, compilation skipped
Traces:
  [348611] → new SignatureChecker@0x518Fc3A0F2Ef69A267669BA09E7b56188E6C04FE
    └─ ← [Return] 1741 bytes of code

  [8161444] → new DeployFiatToken@0x5b73C5498c1E3b4dbA84de0F1833c4a029d90519
    └─ ← [Return] 40642 bytes of code

  [270378] DeployFiatToken::setUp()
    ├─ [0] VM::envString("TOKEN_NAME") [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envString("TOKEN_SYMBOL") [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envString("TOKEN_CURRENCY") [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envUint("TOKEN_DECIMALS") [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envOr("FIAT_TOKEN_IMPLEMENTATION_ADDRESS", 0x0000000000000000000000000000000000000000) [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envAddress("PROXY_ADMIN_ADDRESS") [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envAddress("MASTER_MINTER_OWNER_ADDRESS") [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envAddress("OWNER_ADDRESS") [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envOr("PAUSER_ADDRESS", 0xD4CE02705041F04135f1949Bc835c1Fe0885513c) [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envOr("BLACKLISTER_ADDRESS", 0xD4CE02705041F04135f1949Bc835c1Fe0885513c) [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envOr("LOST_AND_FOUND_ADDRESS", 0xD4CE02705041F04135f1949Bc835c1Fe0885513c) [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::envUint("DEPLOYER_PRIVATE_KEY") [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] console::log("TOKEN_NAME: '%s'", "USDC") [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("TOKEN_SYMBOL: '%s'", "USDC") [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("TOKEN_CURRENCY: '%s'", "USD") [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("TOKEN_DECIMALS: '%s'", 6) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("FIAT_TOKEN_IMPLEMENTATION_ADDRESS: '%s'", 0x0000000000000000000000000000000000000000) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("PROXY_ADMIN_ADDRESS: '%s'", 0xD4CE02705041F04135f1949Bc835c1Fe0885513c) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("MASTER_MINTER_OWNER_ADDRESS: '%s'", 0xD4CE02705041F04135f1949Bc835c1Fe0885513c) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("OWNER_ADDRESS: '%s'", 0xD4CE02705041F04135f1949Bc835c1Fe0885513c) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("PAUSER_ADDRESS: '%s'", 0xD4CE02705041F04135f1949Bc835c1Fe0885513c) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("BLACKLISTER_ADDRESS: '%s'", 0xD4CE02705041F04135f1949Bc835c1Fe0885513c) [staticcall]
    │   └─ ← [Stop]
    ├─ [0] console::log("LOST_AND_FOUND_ADDRESS: '%s'", 0xD4CE02705041F04135f1949Bc835c1Fe0885513c) [staticcall]
    │   └─ ← [Stop]
    └─ ← [Stop]

  [6551512] DeployFiatToken::run()
    ├─ [0] VM::startBroadcast(<pk>)
    │   └─ ← [Return]
    ├─ [4724944] → new FiatTokenV2_2@0x6F9d086cEFC1dB0836FEd3a53A703b6Dac89e87F
    │   └─ ← [Return] 23464 bytes of code
    ├─ [76219] FiatTokenV2_2::initialize("", "", "", 0, 0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000001)
    │   └─ ← [Stop]
    ├─ [65980] FiatTokenV2_2::initializeV2("")
    │   └─ ← [Stop]
    ├─ [23205] FiatTokenV2_2::initializeV2_1(0x0000000000000000000000000000000000000001)
    │   └─ ← [Stop]
    ├─ [4275] FiatTokenV2_2::initializeV2_2([], "")
    │   └─ ← [Stop]
    ├─ [404525] → new FiatTokenProxy@0xC6004B9aa8AD300D917DE8aB6879D91CA93dAdF4
    │   └─ ← [Return] 1798 bytes of code
    ├─ [1114770] → new MasterMinter@0xC52422EF3e3A84e58F93A530e304Ed69363b5E8F
    │   └─ ← [Return] 5346 bytes of code
    ├─ [2113] MasterMinter::transferOwnership(0xD4CE02705041F04135f1949Bc835c1Fe0885513c)
    │   ├─ emit OwnershipTransferred(previousOwner: 0xD4CE02705041F04135f1949Bc835c1Fe0885513c, newOwner: 0xD4CE02705041F04135f1949Bc835c1Fe0885513c)
    │   └─ ← [Stop]
    ├─ [2020] FiatTokenProxy::changeAdmin(0xD4CE02705041F04135f1949Bc835c1Fe0885513c)
    │   ├─ emit AdminChanged(previousAdmin: 0xD4CE02705041F04135f1949Bc835c1Fe0885513c, newAdmin: 0xD4CE02705041F04135f1949Bc835c1Fe0885513c)
    │   └─ ← [Stop]
    ├─ [445] FiatTokenProxy::initialize("USDC", "USDC", "USD", 6, MasterMinter: [0xC52422EF3e3A84e58F93A530e304Ed69363b5E8F], 0xD4CE02705041F04135f1949Bc835c1Fe0885513c, 0xD4CE02705041F04135f1949Bc835c1Fe0885513c, 0xD4CE02705041F04135f1949Bc835c1Fe0885513c)
    │   └─ ← [Revert] revert: Cannot call fallback function from the proxy admin
    └─ ← [Revert] revert: Cannot call fallback function from the proxy admin

== Logs ==
  TOKEN_NAME: 'USDC'
  TOKEN_SYMBOL: 'USDC'
  TOKEN_CURRENCY: 'USD'
  TOKEN_DECIMALS: '6'
  FIAT_TOKEN_IMPLEMENTATION_ADDRESS: '0x0000000000000000000000000000000000000000'
  PROXY_ADMIN_ADDRESS: '0xD4CE02705041F04135f1949Bc835c1Fe0885513c'
  MASTER_MINTER_OWNER_ADDRESS: '0xD4CE02705041F04135f1949Bc835c1Fe0885513c'
  OWNER_ADDRESS: '0xD4CE02705041F04135f1949Bc835c1Fe0885513c'
  PAUSER_ADDRESS: '0xD4CE02705041F04135f1949Bc835c1Fe0885513c'
  BLACKLISTER_ADDRESS: '0xD4CE02705041F04135f1949Bc835c1Fe0885513c'
  LOST_AND_FOUND_ADDRESS: '0xD4CE02705041F04135f1949Bc835c1Fe0885513c'
Error:
script failed: revert: Cannot call fallback function from the proxy admin
gzliudan commented 5 months ago

Update: this error was gone after I changed PROXY_ADMIN_ADDRESS to another address. What does this variable mean?

lyfsn commented 1 month ago

I guess this error occurs because the DEPLOYER_PRIVATE_KEY's address is the same as the PROXY_ADMIN_ADDRESS. Just use another PROXY_ADMIN_ADDRESS.