uups-checker 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitmodules +6 -0
- package/AIFI_AUDIT.md +220 -0
- package/ALL_AUDITS_SUMMARY.md +366 -0
- package/ALPHA_PROXY_CRITICAL_FINDING.md +136 -0
- package/ALPHA_PROXY_FINAL_ANALYSIS.md +213 -0
- package/ALPHA_PROXY_FINAL_VERDICT.md +233 -0
- package/ALPHA_PROXY_SELFDESTRUCT_EXPLOIT.md +161 -0
- package/ARIA-foundry-test.txt +9 -0
- package/ARIA-mythril-analysis.txt +20 -0
- package/ARIA-slither-analysis.txt +38 -0
- package/ARIA_AI_SECURITY_AUDIT.md +290 -0
- package/ARIA_VERIFIED_AUDIT.md +259 -0
- package/ARIA_VERIFIED_slither.txt +76 -0
- package/ARIVA_source.txt +1 -0
- package/ARK_AUDIT.md +349 -0
- package/BANANA_AUDIT.md +365 -0
- package/BAS_AUDIT.md +451 -0
- package/BAS_TOKEN_AUDIT.md +235 -0
- package/BCE_EXPLOIT_ANALYSIS.md +165 -0
- package/BEEFY_BNB_CHAIN_ANALYSIS.md +488 -0
- package/BEEFY_MONAD_ANALYSIS.md +239 -0
- package/BEEFY_STAKING_ANALYSIS.md +136 -0
- package/BEEFY_XVS_WBNB_ACTUAL_FINDINGS.md +223 -0
- package/BEEFY_XVS_WBNB_CRITICAL_FINDINGS.md +269 -0
- package/BLOCKSEC_ATTACK_KNOWLEDGE_BASE.md +771 -0
- package/BRISE_ANALYSIS.txt +31 -0
- package/BRISE_BSC_DAPPS.txt +68 -0
- package/BRISE_EXPLOITS_FOUND.md +98 -0
- package/BRISE_REAL_EXPLOITS.md +115 -0
- package/BRISE_WHITEHAT_REPORT.md +162 -0
- package/BRISEstake_Analysis.txt +95 -0
- package/BSCSLOCKTOKEN_CRITICAL_FINDING.md +240 -0
- package/BSW_BISWAP_SECURITY_AUDIT.md +330 -0
- package/BTCST_FINAL_VERDICT.md +319 -0
- package/BTCST_MINING_REBASE_ANALYSIS.md +229 -0
- package/BTCST_ROUNDING_DEEP_DIVE.md +293 -0
- package/BTCST_ROUNDING_FINAL_VERDICT.md +9 -0
- package/BTCST_SECURITY_ANALYSIS.md +391 -0
- package/BTR_AUDIT.md +210 -0
- package/BeamBridge-analysis.md +226 -0
- package/BeamToken-analysis.md +201 -0
- package/BitgertSwap_Investigation.txt +107 -0
- package/CEEK_STAKING_ANALYSIS.md +0 -0
- package/CHAINBASE_AUDIT.md +422 -0
- package/COMPLETE_AUDIT_SUMMARY.md +342 -0
- package/CORRECTED_ANALYSIS.txt +115 -0
- package/DBXEN_COMPARISON_SUMMARY.md +232 -0
- package/DBXEN_EXPLOIT_ANALYSIS.md +530 -0
- package/DOPFairLaunch_raw.json +29 -0
- package/DOPFairLaunch_source.txt +0 -0
- package/DOP_BRIDGE_FINAL_ANALYSIS.txt +86 -0
- package/DOP_BUSD_LP_ANALYSIS.txt +44 -0
- package/DOP_FAIRLAUNCH_ANALYSIS.txt +61 -0
- package/DOP_FAIRLAUNCH_FINAL_VERDICT.txt +113 -0
- package/DOP_STAKING_CONTRACT_ANALYSIS.txt +67 -0
- package/DSYNC_ECOSYSTEM_ANALYSIS.md +221 -0
- package/DSyncStaking-exploit-analysis.md +153 -0
- package/DSyncVault-analysis.md +120 -0
- package/DUSD_PROXY_AUDIT.md +407 -0
- package/DXSALE_LOCK_AUDIT.md +0 -0
- package/DXSaleLock_bytecode.txt +1 -0
- package/ECHIDNA_QUICK_START.md +101 -0
- package/ELEPHANT_ECOSYSTEM_AUDIT_PLAN.md +159 -0
- package/ELEPHANT_ECOSYSTEM_COMPREHENSIVE_AUDIT.md +427 -0
- package/ELEPHANT_SECURITY_ANALYSIS.md +209 -0
- package/ELEPHANT_VULNERABILITIES_EXPLAINED.md +455 -0
- package/EXPLOIT_FIX.md +300 -0
- package/EXPLOIT_INSTRUCTIONS.md +273 -0
- package/EXPLOIT_SUMMARY.md +285 -0
- package/EXPLOIT_SUMMARY.txt +175 -0
- package/FALCON_FINANCE_AUDIT.md +258 -0
- package/FANDOM_AUDIT.md +359 -0
- package/FEE_ON_TRANSFER_ANALYSIS.md +228 -0
- package/FINAL_AUDIT_REPORT.md +0 -0
- package/FOLIO_PROXY_AUDIT.md +299 -0
- package/FOT_EXPLOIT_RESULTS.txt +110 -0
- package/FOT_TOKENS_AUDITED.md +103 -0
- package/HEGIC-mythril-analysis.txt +39 -0
- package/HEGIC_COMPLETE_ANALYSIS.md +343 -0
- package/HOTCROSS_SWAP_EXPLOIT_ANALYSIS.md +123 -0
- package/ICECREAMSWAP_EXPLOITS.md +259 -0
- package/IMMUNEFI_REPORT.md +314 -0
- package/KCCPAD_EXPLOIT_GUIDE.md +285 -0
- package/KEL_CEL_EXPLOIT_ANALYSIS.md +0 -0
- package/KOGE_AUDIT.md +328 -0
- package/LENDFLARE_ANALYSIS.md +239 -0
- package/LENDFLARE_ECHIDNA_GUIDE.md +356 -0
- package/LENDFLARE_EXPLOIT_INSTRUCTIONS.md +297 -0
- package/LENDFLARE_EXPLOIT_SUMMARY.md +292 -0
- package/LENDFLARE_FLASHLOAN_GUIDE.md +383 -0
- package/LENDFLARE_FUZZING_RESULTS.md +252 -0
- package/LENDFLARE_HONEYPOT_BYPASS_ANALYSIS.md +420 -0
- package/LENDFLARE_MANUAL_FUZZING.md +324 -0
- package/LENDFLARE_MYTHRIL_ANALYSIS.md +339 -0
- package/LENDFLARE_V3_BYPASS.md +296 -0
- package/LFTDECOMPILE.txt +14478 -0
- package/LFT_ACCOUNTING_ANALYSIS.md +0 -0
- package/LFT_ACCOUNTING_BUG_ANALYSIS.md +426 -0
- package/LFT_BACKDOOR_DEEP_DIVE.md +0 -0
- package/LFT_CRITICAL_EXPLOIT_CONFIRMED.md +428 -0
- package/LFT_EXPLOIT_VISUAL.md +253 -0
- package/LFT_QUICK_SUMMARY.md +124 -0
- package/LFT_REVERSE_EXPLOIT_ANALYSIS.md +521 -0
- package/MGO_AUDIT_REPORT.md +420 -0
- package/MYTHRIL_FINAL_REPORT.md +306 -0
- package/MYTHRIL_SLITHER_SUMMARY.md +244 -0
- package/NETX_MIGRATION_AUDIT.md +0 -0
- package/NPM_PUBLISH_GUIDE.md +0 -0
- package/NRV_CRITICAL_EXPLOIT.txt +143 -0
- package/NetX_Analysis.txt +76 -0
- package/NetX_Migration_bytecode.txt +1 -0
- package/NetX_Migration_source.txt +0 -0
- package/NetX_Token_source.txt +0 -0
- package/NetxWhitehatRescue +22 -0
- package/OILER_ATTACK_VISUAL.md +351 -0
- package/OILER_BLOCKSEC_TEST_RESULTS.md +421 -0
- package/OILER_DEEP_ANALYSIS.md +212 -0
- package/OILER_FINAL_EXPLOIT_REPORT.md +241 -0
- package/OILER_FINAL_VERDICT.md +339 -0
- package/OILER_REENTRANCY_EXPLAINED.md +638 -0
- package/OILER_REENTRANCY_FINAL_SUMMARY.md +391 -0
- package/OILER_REENTRANCY_REALITY_CHECK.md +393 -0
- package/OILER_REENTRANCY_STEP_BY_STEP.md +597 -0
- package/OILER_STAKING_MAINNET_ANALYSIS.md +366 -0
- package/OILER_STAKING_SECURITY_ANALYSIS.md +409 -0
- package/PANCAKESWAP_UNDERFLOW_HUNTING.md +317 -0
- package/POLS_MULTICHAIN_AUDIT.md +0 -0
- package/POSI_STAKING_AUDIT.md +0 -0
- package/PROXY2_SECURITY_ANALYSIS.md +0 -0
- package/Proxy2TACS +29748 -0
- package/QUICK_START.md +240 -0
- package/RAMP_SECURITY_ANALYSIS.md +0 -0
- package/README.md +238 -0
- package/REAUDIT_MASTER_LIST.txt +15 -0
- package/RING_analysis.txt +212 -0
- package/RPC +4 -0
- package/RULES.txt +20 -0
- package/SIREN_AUDIT.md +186 -0
- package/SYNC_EXPLOIT_README.md +0 -0
- package/SYNC_TOKEN_EXPLOIT_REPORT.md +224 -0
- package/TLM_raw.html +0 -0
- package/TLM_raw.txt +0 -0
- package/TLM_response.json +1 -0
- package/TRADOOR_AUDIT.md +253 -0
- package/TRUNK_AUDIT.md +285 -0
- package/UNIBASE_AUDIT.md +241 -0
- package/UNLOCK_ANALYSIS.md +0 -0
- package/UNLOCK_EXPLOIT.md +49 -0
- package/UNLOCK_EXPLOIT_ANALYSIS.md +0 -0
- package/UPS +232 -0
- package/UUPSCHECKER +208 -0
- package/VAULT_PROXY_AUDIT.md +457 -0
- package/VAULT_PROXY_FINAL_VERDICT.md +0 -0
- package/VERIFIED_EXPLOITS_FINAL.txt +146 -0
- package/WKEYDAO2_AUDIT.md +245 -0
- package/WSG_AUDIT.md +0 -0
- package/XFI_DEEP_ANALYSIS.md +327 -0
- package/YOOSHI_EXPLOIT_GUIDE.md +119 -0
- package/YSDAO_EXPLOIT_GUIDE.md +0 -0
- package/agent-4-bundle.md +22490 -0
- package/alpha-proxy-echidna.txt +1 -0
- package/alpha-proxy-fuzz-results.txt +81 -0
- package/alpha-proxy-mythril.txt +2 -0
- package/analyze-btcst-farm.js +54 -0
- package/analyze-dxsale-lock.js +75 -0
- package/analyze-elephant.js +69 -0
- package/analyze-fara-rewards.js +109 -0
- package/analyze-fara-storage.js +83 -0
- package/analyze-lft-transaction.js +158 -0
- package/analyze-lock-bytecode.js +59 -0
- package/analyze-shegic.js +0 -0
- package/analyze-staking-abi.js +0 -0
- package/analyze-sxp.js +57 -0
- package/analyze-tlm.js +76 -0
- package/analyze-trumpet.js +98 -0
- package/analyze-unlimited-nft.js +108 -0
- package/analyze_elephant.sh +27 -0
- package/analyze_vault.sh +32 -0
- package/aria-bytecode.txt +1 -0
- package/aria_response.json +1 -0
- package/ark_temp/README.md +66 -0
- package/ark_temp/lib/forge-std/.gitattributes +1 -0
- package/ark_temp/lib/forge-std/.github/CODEOWNERS +1 -0
- package/ark_temp/lib/forge-std/.github/dependabot.yml +6 -0
- package/ark_temp/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/ark_temp/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/ark_temp/lib/forge-std/CONTRIBUTING.md +193 -0
- package/ark_temp/lib/forge-std/LICENSE-APACHE +203 -0
- package/ark_temp/lib/forge-std/LICENSE-MIT +25 -0
- package/ark_temp/lib/forge-std/README.md +314 -0
- package/ark_temp/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/ark_temp/lib/forge-std/package.json +16 -0
- package/ark_temp/lib/forge-std/scripts/vm.py +636 -0
- package/audits/AiFi-security-audit-20260326.md +499 -0
- package/audits/BasedAI-Brains-security-audit-20260324.md +651 -0
- package/audits/BinanceAlphaWallet-pashov-ai-audit-report-20260324-170000.md +362 -0
- package/audits/DGToken-security-audit-20260324.md +376 -0
- package/audits/DSyncStaking-audit-part1.md +161 -0
- package/audits/DSyncStaking-security-audit-20260324.md +547 -0
- package/audits/DecompiledERC20-security-audit-20260325.md +397 -0
- package/audits/DegenVC-security-audit-20260324.md +585 -0
- package/audits/DelreyInu-security-audit-20260324.md +463 -0
- package/audits/DestraNetwork-security-audit-20260324.md +705 -0
- package/audits/DomiToken-security-audit-20260324.md +514 -0
- package/audits/LendFlareToken-security-audit-20260325.md +197 -0
- package/audits/LockReleaseTokenPool-security-audit-20260324.md +482 -0
- package/audits/MOG-pashov-ai-audit-report-20260324-164900.md +229 -0
- package/audits/PAALAI-security-audit-20260324.md +475 -0
- package/audits/PAR-security-audit-20260325.md +311 -0
- package/audits/PepeCoinStaking-security-audit-20260324.md +358 -0
- package/audits/StakingPool-security-audit-20260324.md +517 -0
- package/audits/SyncToken-security-audit-20260324.md +778 -0
- package/audits/UndeadToken-decompiled-security-audit-20260324.md +485 -0
- package/audits/UnknownToken-decompiled-security-audit-20260324.md +647 -0
- package/audits/XFIStaking-security-audit-20260324.md +682 -0
- package/audits/Xfinance-security-audit-20260324.md +463 -0
- package/audits/basedAIFarm-security-audit-20260324.md +330 -0
- package/audits/pepeCoin-security-audit-20260324.md +462 -0
- package/bin/ups +232 -0
- package/binance-wallet-exploit/.env.example +2 -0
- package/binance-wallet-exploit/EXECUTIVE_SUMMARY.md +272 -0
- package/binance-wallet-exploit/EXPLOIT_SUMMARY.md +104 -0
- package/binance-wallet-exploit/FINAL_ANALYSIS.md +326 -0
- package/binance-wallet-exploit/FLASHLOAN_ATTACK.md +292 -0
- package/binance-wallet-exploit/HONEYPOT_REPORT.md +526 -0
- package/binance-wallet-exploit/INVESTIGATION_COMPLETE.md +362 -0
- package/binance-wallet-exploit/LENDFLARE_EXPLOIT.md +219 -0
- package/binance-wallet-exploit/LENDFLARE_FINAL_ATTACK.md +307 -0
- package/binance-wallet-exploit/LENDFLARE_REAL_EXPLOIT.md +286 -0
- package/binance-wallet-exploit/LENDFLARE_RUGPULL.md +269 -0
- package/binance-wallet-exploit/LFT_ANALYSIS.md +206 -0
- package/binance-wallet-exploit/QUICK_START.md +75 -0
- package/binance-wallet-exploit/README.md +195 -0
- package/binance-wallet-exploit/REAL_TX_EXPLOIT_ANALYSIS.md +271 -0
- package/binance-wallet-exploit/REMIX_INSTRUCTIONS.md +223 -0
- package/binance-wallet-exploit/TEST_RESULTS.md +203 -0
- package/binance-wallet-exploit/cache/solidity-files-cache.json +1 -0
- package/binance-wallet-exploit/cache/test-failures +1 -0
- package/binance-wallet-exploit/lib/forge-std/.gitattributes +1 -0
- package/binance-wallet-exploit/lib/forge-std/.github/CODEOWNERS +1 -0
- package/binance-wallet-exploit/lib/forge-std/.github/dependabot.yml +6 -0
- package/binance-wallet-exploit/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/binance-wallet-exploit/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/binance-wallet-exploit/lib/forge-std/CONTRIBUTING.md +193 -0
- package/binance-wallet-exploit/lib/forge-std/LICENSE-APACHE +203 -0
- package/binance-wallet-exploit/lib/forge-std/LICENSE-MIT +25 -0
- package/binance-wallet-exploit/lib/forge-std/README.md +314 -0
- package/binance-wallet-exploit/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/binance-wallet-exploit/lib/forge-std/package.json +16 -0
- package/binance-wallet-exploit/lib/forge-std/scripts/vm.py +636 -0
- package/binance-wallet-exploit/out/build-info/1e9aa7e86cf56962.json +1 -0
- package/binance-wallet-exploit/out/build-info/6f56f10e9d7b56eb.json +1 -0
- package/binance-wallet-exploit/out/build-info/7edba961ff697a24.json +1 -0
- package/binance-wallet-exploit/out/build-info/8c27fe3efea2f2e7.json +1 -0
- package/binance-wallet-exploit/out/build-info/978b680daffec63a.json +1 -0
- package/binance-wallet-exploit/out/build-info/9806b900b5672d0c.json +1 -0
- package/binance-wallet-exploit/out/build-info/b4b9ff36e9b3fc27.json +1 -0
- package/binance-wallet-exploit/out/build-info/b6f4df9ae05c0812.json +1 -0
- package/binance-wallet-exploit/out/build-info/c88dbc86551f7b5c.json +1 -0
- package/binance-wallet-exploit/out/build-info/e9657504010623db.json +1 -0
- package/cache/fuzz/failures/ARIAVerifiedFuzzTest/testFuzz_ApprovalRaceCondition +1 -0
- package/cache/fuzz/failures/HotCrossSwapFuzzTest/testFuzz_DirectTransferExploit +1 -0
- package/cache/fuzz/failures/HotCrossSwapFuzzTest/testFuzz_LargeSwapDrain +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_ApprovalExploit +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_BalanceManipulation +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_RateManipulation +1 -0
- package/cache/fuzz/failures/LendFlareFuzz/testFuzz_StorageManipulation +1 -0
- package/cache/fuzz/failures/PARFuzzTest/testFuzz_OverflowTransfer +1 -0
- package/cache/fuzz/failures/PARFuzzTest/testFuzz_Transfer +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_FrontrunAddfunds +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_RewardOverflow +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_RoundingExploit +1 -0
- package/cache/fuzz/failures/XFIDeepFuzz/testFuzz_WithdrawLimit +1 -0
- package/cache/solidity-files-cache.json +1 -0
- package/cache/test-failures +1 -0
- package/calculate-elephant-flashloan.js +195 -0
- package/check-address-approval.js +112 -0
- package/check-alpha-proxy.js +42 -0
- package/check-arbitrage.js +155 -0
- package/check-aria-token.js +47 -0
- package/check-ark.sh +20 -0
- package/check-btcst-mining.js +75 -0
- package/check-btcst-pools.js +163 -0
- package/check-btcst.js +88 -0
- package/check-caller.js +26 -0
- package/check-ceek-lp.js +73 -0
- package/check-ceek.js +47 -0
- package/check-dxsale-address.js +35 -0
- package/check-fara-exploit-timing.js +56 -0
- package/check-fara-real-exploit.js +73 -0
- package/check-flashloan-limits.js +129 -0
- package/check-kel-cel-pool.js +91 -0
- package/check-lax-staking.js +41 -0
- package/check-lendflare.js +165 -0
- package/check-lft-accounting.js +109 -0
- package/check-lft-roles.js +165 -0
- package/check-lock-time.js +47 -0
- package/check-min-stake.js +73 -0
- package/check-mystery-contract.js +52 -0
- package/check-next-token.js +50 -0
- package/check-nora-lock.js +67 -0
- package/check-oiler-approvals.js +116 -0
- package/check-oiler-proxy.js +73 -0
- package/check-oiler-staking.js +117 -0
- package/check-proxy-simple.js +71 -0
- package/check-recent-stakes.js +54 -0
- package/check-shegic-holdings.js +67 -0
- package/check-snowcrash-ecosystem.js +83 -0
- package/check-sync-lp.js +97 -0
- package/check-sync-stake.js +42 -0
- package/check-tlm.js +37 -0
- package/check-token-pools.js +146 -0
- package/check-trunk-depeg.js +181 -0
- package/check-tusd-decimals.js +58 -0
- package/check-user-storage-deep.js +81 -0
- package/check-welephant-pools.js +130 -0
- package/check-xfi-pool.js +75 -0
- package/check-zypher.js +32 -0
- package/check_proxy.sh +36 -0
- package/compare-tlm-chains.js +90 -0
- package/contract_0x05f2.html +6025 -0
- package/contract_0x3720.html +6361 -0
- package/contract_0x928e.html +5606 -0
- package/contract_0xc42d.html +5304 -0
- package/contract_page.html +5789 -0
- package/decode-stake-tx.js +50 -0
- package/deep-analyze-lock.js +82 -0
- package/dune_uups_proxy_query.sql +42 -0
- package/dune_uups_vulnerable_query.sql +0 -0
- package/echidna/alpha-proxy.yaml +14 -0
- package/echidna/elephant.yaml +7 -0
- package/echidna/lendflare.yaml +42 -0
- package/echidna.config.yaml +12 -0
- package/elephant_raw.json +1 -0
- package/eps_raw.json +1 -0
- package/exploit/.github/workflows/test.yml +38 -0
- package/exploit/.gitmodules +3 -0
- package/exploit/README.md +66 -0
- package/exploit/foundry.lock +8 -0
- package/exploit/lib/forge-std/.gitattributes +1 -0
- package/exploit/lib/forge-std/.github/CODEOWNERS +1 -0
- package/exploit/lib/forge-std/.github/dependabot.yml +6 -0
- package/exploit/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/exploit/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/exploit/lib/forge-std/CONTRIBUTING.md +193 -0
- package/exploit/lib/forge-std/LICENSE-APACHE +203 -0
- package/exploit/lib/forge-std/LICENSE-MIT +25 -0
- package/exploit/lib/forge-std/README.md +314 -0
- package/exploit/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/exploit/lib/forge-std/package.json +16 -0
- package/exploit/lib/forge-std/scripts/vm.py +636 -0
- package/exploit_analysis.txt +51 -0
- package/extract_contract.py +21 -0
- package/extract_elephant_contracts.py +24 -0
- package/fara-staking-bytecode.txt +1 -0
- package/fara-staking-raw.txt +1 -0
- package/fetch-aria.js +46 -0
- package/fetch-contract.js +50 -0
- package/fetch-shegic-source.js +86 -0
- package/fetch-snowcrash.js +44 -0
- package/fetch-staking-source.js +53 -0
- package/fetch-tlm.js +60 -0
- package/fetch_elephant_source.py +32 -0
- package/find-ceek-staking.js +21 -0
- package/find-exploit-tx.js +88 -0
- package/find-oiler-holders.js +100 -0
- package/find-tlm-holder.js +36 -0
- package/find-vulnerable-fund.js +94 -0
- package/foundry.lock +8 -0
- package/fuzz-all.sh +53 -0
- package/get-aria-contract.py +40 -0
- package/get-lft-holders.js +89 -0
- package/get-tlm-source.sh +8 -0
- package/harvest_txs.json +1 -0
- package/lft-bytecode-raw.txt +1 -0
- package/lft-bytecode.json +1 -0
- package/lft-impl.bin +1 -0
- package/lft-implementation-bytecode.txt +1 -0
- package/lib/forge-std/.gitattributes +1 -0
- package/lib/forge-std/.github/CODEOWNERS +1 -0
- package/lib/forge-std/.github/dependabot.yml +6 -0
- package/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/lib/forge-std/CONTRIBUTING.md +193 -0
- package/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/forge-std/README.md +314 -0
- package/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/lib/forge-std/package.json +16 -0
- package/lib/forge-std/scripts/vm.py +636 -0
- package/lib/openzeppelin-contracts/.changeset/config.json +12 -0
- package/lib/openzeppelin-contracts/.codecov.yml +12 -0
- package/lib/openzeppelin-contracts/.editorconfig +21 -0
- package/lib/openzeppelin-contracts/.eslintrc +20 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
- package/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
- package/lib/openzeppelin-contracts/.github/actions/setup/action.yml +21 -0
- package/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
- package/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
- package/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
- package/lib/openzeppelin-contracts/.github/workflows/checks.yml +118 -0
- package/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
- package/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
- package/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +214 -0
- package/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +34 -0
- package/lib/openzeppelin-contracts/.gitmodules +7 -0
- package/lib/openzeppelin-contracts/.mocharc.js +4 -0
- package/lib/openzeppelin-contracts/.prettierrc +15 -0
- package/lib/openzeppelin-contracts/.solcover.js +13 -0
- package/lib/openzeppelin-contracts/CHANGELOG.md +972 -0
- package/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
- package/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
- package/lib/openzeppelin-contracts/GUIDELINES.md +148 -0
- package/lib/openzeppelin-contracts/LICENSE +22 -0
- package/lib/openzeppelin-contracts/README.md +107 -0
- package/lib/openzeppelin-contracts/RELEASING.md +45 -0
- package/lib/openzeppelin-contracts/SECURITY.md +42 -0
- package/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
- package/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/README.md +17 -0
- package/lib/openzeppelin-contracts/certora/Makefile +54 -0
- package/lib/openzeppelin-contracts/certora/README.md +60 -0
- package/lib/openzeppelin-contracts/certora/diff/access_manager_AccessManager.sol.patch +97 -0
- package/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/run.js +160 -0
- package/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +119 -0
- package/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +464 -0
- package/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +300 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20.spec +352 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +55 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC721.spec +679 -0
- package/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +333 -0
- package/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +246 -0
- package/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
- package/lib/openzeppelin-contracts/certora/specs/Ownable.spec +77 -0
- package/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
- package/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
- package/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +274 -0
- package/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +7 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +8 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashBorrower.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashLender.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +17 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC721Receiver.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
- package/lib/openzeppelin-contracts/certora/specs.json +86 -0
- package/lib/openzeppelin-contracts/contracts/access/README.adoc +43 -0
- package/lib/openzeppelin-contracts/contracts/finance/README.adoc +14 -0
- package/lib/openzeppelin-contracts/contracts/governance/README.adoc +167 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +82 -0
- package/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
- package/lib/openzeppelin-contracts/contracts/package.json +32 -0
- package/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +41 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +67 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +67 -0
- package/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
- package/lib/openzeppelin-contracts/contracts/utils/README.adoc +88 -0
- package/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
- package/lib/openzeppelin-contracts/docs/README.md +16 -0
- package/lib/openzeppelin-contracts/docs/antora.yml +7 -0
- package/lib/openzeppelin-contracts/docs/config.js +21 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +204 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc +48 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +145 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +71 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +79 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc +13 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +240 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +79 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +31 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +185 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc +15 -0
- package/lib/openzeppelin-contracts/docs/templates/contract.hbs +111 -0
- package/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
- package/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
- package/lib/openzeppelin-contracts/docs/templates/properties.js +64 -0
- package/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
- package/lib/openzeppelin-contracts/hardhat/env-contract.js +25 -0
- package/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
- package/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
- package/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
- package/lib/openzeppelin-contracts/hardhat.config.js +131 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
- package/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
- package/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
- package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
- package/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
- package/lib/openzeppelin-contracts/logo.svg +15 -0
- package/lib/openzeppelin-contracts/netlify.toml +3 -0
- package/lib/openzeppelin-contracts/package-lock.json +16544 -0
- package/lib/openzeppelin-contracts/package.json +96 -0
- package/lib/openzeppelin-contracts/remappings.txt +1 -0
- package/lib/openzeppelin-contracts/renovate.json +4 -0
- package/lib/openzeppelin-contracts/requirements.txt +1 -0
- package/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +20 -0
- package/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
- package/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +38 -0
- package/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
- package/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
- package/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
- package/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
- package/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +247 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +17 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +146 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +283 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +126 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +78 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
- package/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
- package/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
- package/lib/openzeppelin-contracts/scripts/prepack.sh +23 -0
- package/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
- package/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
- package/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
- package/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +48 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
- package/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
- package/lib/openzeppelin-contracts/scripts/solhint-custom/index.js +84 -0
- package/lib/openzeppelin-contracts/scripts/solhint-custom/package.json +5 -0
- package/lib/openzeppelin-contracts/scripts/update-docs-branch.js +65 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +54 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +47 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +360 -0
- package/lib/openzeppelin-contracts/slither.config.json +5 -0
- package/lib/openzeppelin-contracts/solhint.config.js +20 -0
- package/mythril-lft-output.txt +1 -0
- package/mythril-lft-symbolic.txt +18 -0
- package/mythril-lft.sh +20 -0
- package/mythril-symbolic-output.txt +1 -0
- package/mythril-symbolic.sh +42 -0
- package/out/build-info/0026b78428192979.json +1 -0
- package/out/build-info/03c4fc3b88486eba.json +1 -0
- package/out/build-info/0540afa9b9a5c5a6.json +1 -0
- package/out/build-info/081932f505bc08b9.json +1 -0
- package/out/build-info/0da104ba0d6642d5.json +1 -0
- package/out/build-info/197281971dbb5f23.json +1 -0
- package/out/build-info/197e7e332832a232.json +1 -0
- package/out/build-info/1a1cab9136eb5f94.json +1 -0
- package/out/build-info/1b320204eb162aa2.json +1 -0
- package/out/build-info/1e03f94398052674.json +1 -0
- package/out/build-info/22ac085949602937.json +1 -0
- package/out/build-info/234ef37453a9fa64.json +1 -0
- package/out/build-info/2447db7b1878fa8e.json +1 -0
- package/out/build-info/25568daeb484f5ff.json +1 -0
- package/out/build-info/27465853244c49ce.json +1 -0
- package/out/build-info/2c57a9e0f087453b.json +1 -0
- package/out/build-info/3c62ae7de8da68c4.json +1 -0
- package/out/build-info/3e771ae109e97bb3.json +1 -0
- package/out/build-info/460499bc0a3465c4.json +1 -0
- package/out/build-info/47ce37e50a4f115e.json +1 -0
- package/out/build-info/4fcce5c63cf427d6.json +1 -0
- package/out/build-info/4fd0a53fe63fddbb.json +1 -0
- package/out/build-info/50f1247db9d769cc.json +1 -0
- package/out/build-info/5317d0181a7a5e02.json +1 -0
- package/out/build-info/594df509275ceb5b.json +1 -0
- package/out/build-info/61983ac3f6141719.json +1 -0
- package/out/build-info/638c4548307122fe.json +1 -0
- package/out/build-info/67c2c43bdb7c0ded.json +1 -0
- package/out/build-info/777f42643aad37b7.json +1 -0
- package/out/build-info/7d7856f19e845354.json +1 -0
- package/out/build-info/83976260b6f71e94.json +1 -0
- package/out/build-info/83c23882000b963d.json +1 -0
- package/out/build-info/84b2cce8f70b36be.json +1 -0
- package/out/build-info/8bc13d31d7c3206a.json +1 -0
- package/out/build-info/8e183bd4d9d8cf88.json +1 -0
- package/out/build-info/94bfe1e7cafa8ff5.json +1 -0
- package/out/build-info/99ec7d5e8d8ff360.json +1 -0
- package/out/build-info/9ac044b29daa7d5e.json +1 -0
- package/out/build-info/9b203227ff5d2e63.json +1 -0
- package/out/build-info/9d18c5872c4282dd.json +1 -0
- package/out/build-info/9f77f04f33baf9a3.json +1 -0
- package/out/build-info/a6e1caf974787982.json +1 -0
- package/out/build-info/a94b6348867a62d6.json +1 -0
- package/out/build-info/ad93721947a8b195.json +1 -0
- package/out/build-info/b42daddb5aa4b19f.json +1 -0
- package/out/build-info/bf13512ae899f7e8.json +1 -0
- package/out/build-info/c39f86c20a548c4a.json +1 -0
- package/out/build-info/cb12bb975a2f4e65.json +1 -0
- package/out/build-info/d0c6788fadc2aa60.json +1 -0
- package/out/build-info/d2726bf94ed5b845.json +1 -0
- package/out/build-info/d4eb00da50cce5cb.json +1 -0
- package/out/build-info/db931924a3bc8bdd.json +1 -0
- package/out/build-info/e1a503d49bc77401.json +1 -0
- package/out/build-info/efe5396f8892ce77.json +1 -0
- package/out/build-info/f536d90ced745969.json +1 -0
- package/out/build-info/fed38823c7019b82.json +1 -0
- package/package.json +51 -0
- package/page.html +5384 -0
- package/pancakeswap-simple-tvl.sql +15 -0
- package/pancakeswap-top-pools.sql +29 -0
- package/pancakeswap-tvl-optimized.sql +57 -0
- package/pancakeswap-tvl-query.sql +60 -0
- package/pancakeswap-underflow-hunting.sql +51 -0
- package/pancakeswap-vulnerability-queries.sql +200 -0
- package/posi_page.html +6369 -0
- package/posi_response.json +29 -0
- package/proxy_page.html +500 -0
- package/run_mythril_elephant.sh +18 -0
- package/sHEGIC-bytecode.bin +6 -0
- package/sHEGIC-mythril-analysis.txt +1 -0
- package/sHEGIC-mythril-full.txt +134 -0
- package/sHEGIC_ANALYSIS.md +135 -0
- package/sHEGIC_EXPLOIT_ANALYSIS.md +317 -0
- package/sHEGIC_MYTHRIL_ANALYSIS.md +361 -0
- package/scrape-snowcrash.js +28 -0
- package/scripts/yooshi_drain.sh +154 -0
- package/shi_raw.json +1 -0
- package/temp.json +1 -0
- package/temp_harvest.json +1 -0
- package/temp_pika.json +1 -0
- package/temp_posi.json +1 -0
- package/temp_response.json +1 -0
- package/test-lft-hidden-balance.js +108 -0
- package/test-xfi-exploit.js +140 -0
- package/trunk-liquidity-rescue.js +164 -0
- package/vBABY_page.html +6153 -0
- package/vBABY_response.json +29 -0
- package/wsg_response.json +1 -0
- package/yooldo_page.html +10371 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
3
|
+
<head>
|
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
|
|
5
|
+
<title>404 - File or directory not found.</title>
|
|
6
|
+
<style type="text/css">
|
|
7
|
+
<!--
|
|
8
|
+
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
|
|
9
|
+
fieldset{padding:0 15px 10px 15px;}
|
|
10
|
+
h1{font-size:2.4em;margin:0;color:#FFF;}
|
|
11
|
+
h2{font-size:1.7em;margin:0;color:#CC0000;}
|
|
12
|
+
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
|
|
13
|
+
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
|
|
14
|
+
background-color:#555555;}
|
|
15
|
+
#content{margin:0 0 0 2%;position:relative;}
|
|
16
|
+
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
|
|
17
|
+
-->
|
|
18
|
+
</style>
|
|
19
|
+
</head>
|
|
20
|
+
<body>
|
|
21
|
+
<div id="header"><h1>Server Error</h1></div>
|
|
22
|
+
<div id="content">
|
|
23
|
+
<div class="content-container"><fieldset>
|
|
24
|
+
<h2>404 - File or directory not found.</h2>
|
|
25
|
+
<h3>The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.</h3>
|
|
26
|
+
</fieldset></div>
|
|
27
|
+
</div>
|
|
28
|
+
</body>
|
|
29
|
+
</html>
|
package/proxy_page.html
ADDED
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
<div class="mb-4"><div class="d-md-flex justify-content-between align-items-center bg-white py-2"><h4 class="card-header-title"><i class='far fa-file-code text-secondary me-1'></i>Contract Source Code <span class='fw-normal text-muted'>(Solidity <a rel='nofollow noopener' href='https://docs.soliditylang.org/en/latest/using-the-compiler.html#compiler-input-and-output-json-description' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Click to learn more' target='blank' class='text-primary'>Standard Json-Input</a> format)</span></h4><div class="mt-1 mt-md-0"> <div class='ms-1 btn-group me-1'><button class='btn btn-sm btn-secondary dropdown-toggle' type='button' data-bs-toggle='dropdown' aria-expanded='false' title='Open In'>Open In</button><ul style='max-height: 300px; position:absolute;' class='dropdown-menu dropdown-menu-end'><li><a class='dropdown-item d-flex align-items-center group gap-1' href='/code-reader?a=0x8BDbB58b0d758aae6bAE904F20689f3aDF3cf039' rel='noopener' target='_blank'><div class='d-flex align-items-center'><span class='hash-tag text-truncate flex-grow-1'>🤖 Code Reader</span><span class="badge border bg-light text-dark ms-1">Beta</span></div><i class="far fa-arrow-up-right-from-square text-muted group-hover ms-2"></i></a></li></ul></div><div class='btn-group'><button class='btn btn-sm btn-secondary dropdown-toggle' type='button' id='dropdownSecondaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' title='Select for more contract options'>More Options</button><ul id='dropdownSecondary' style='height:200px; max-height: 300px; position:absolute;' class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownSecondaryInvoker'><li><a class='dropdown-item d-flex' href='/proxyContractChecker?a=0xa10bfbdf1b2124d8789f0cf5dc8eccfb9ca5ef2a'><span class='w-25'><i class="far fa-file-search"></i></span><span class='w-75'><span data-bs-toggle='tooltip' data-bs-trigger='hover' title='Is this a proxy?'>Is this a proxy?</span></span></a></li><li><a class='dropdown-item d-flex' href='/find-similar-contracts?m=exact&a=0xa10bfbdf1b2124d8789f0cf5dc8eccfb9ca5ef2a'><span class='w-25'><i class="far fa-file-alt me-1"></i></span><span class='w-75'><span data-bs-toggle='tooltip' data-bs-trigger='hover' title='Find other contracts with Similar Contract Codes.'>Similar</span></span></a></li><li><a class='dropdown-item d-flex' href='/viewsvg?t=1&a=0xa10bfbdf1b2124d8789f0cf5dc8eccfb9ca5ef2a' target='_blank'><span class='w-25'><i class='far fa-project-diagram me-1'></i></span><span class='w-75'><span data-bs-toggle='tooltip' data-bs-trigger='hover' title='View UML class diagram for contract'>Sol2Uml</span></span></a></li><li><a class='dropdown-item d-flex' href='/contactus?id=8&a=0xa10bfbdf1b2124d8789f0cf5dc8eccfb9ca5ef2a' target='_blank'><span class='w-25'><i class='far fa-file-alt me-1'></i></span><span class='w-75'><span data-bs-toggle='tooltip' data-bs-trigger='hover' title='Submit Audit Report for Contract'>Submit Audit</span></span></a></li><li><a href='/contractdiffchecker?a1=0xa10bfbdf1b2124d8789f0cf5dc8eccfb9ca5ef2a' class='dropdown-item d-flex' target='_blank'><span class='w-25'><i class='far fa-file-alt me-1'></i></span><span class='w-75'><span data-bs-toggle='tooltip' data-bs-trigger='hover' title='Contract Diff Checker'>Compare</span></span></a></li></ul></div></div></div><script src='/jss/ace/ace.js' type='text/javascript' charset='utf-8'></script><div class='d-flex justify-content-between'><span class='text-muted'>File 1 of 14 : TransparentUpgradeableProxy.sol</span><span><div class="btn-group"><button class='btn btn-sm btn-secondary dropdown-toggle me-1' type='button' id='dropdownPrimaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' data-bs-toggle='tooltip' title='View and Navigate Contract Outline'>Outline</button><ul class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownPrimaryInvoker' style='height: 300px; max-height: 300px; overflow-y: scroll; position:absolute;'><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('interface ITransparentUpgradeableProxy is IERC1967', '1');"><i class="far fa-book-open"></i> <b>interface ITransparentUpgradeableProx ...</b></a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function admin()', '1');"> - function admin()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function implementation()', '1');"> - function implementation()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function changeAdmin(address)', '1');"> - function changeAdmin(address)</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function upgradeTo(address)', '1');"> - function upgradeTo(address)</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function upgradeToAndCall(address, bytes memory)', '1');"> - function upgradeToAndCall(address, by ...</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('contract TransparentUpgradeableProxy is ERC1967Proxy', '1');"><i class="far fa-file-alt text-secondary"></i> <b>contract TransparentUpgradeablePro ...</b></a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _fallback()', '1');"> - function _fallback()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _dispatchAdmin()', '1');"> - function _dispatchAdmin()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _dispatchImplementation()', '1');"> - function _dispatchImplementation()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _dispatchChangeAdmin()', '1');"> - function _dispatchChangeAdmin()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _dispatchUpgradeTo()', '1');"> - function _dispatchUpgradeTo()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _dispatchUpgradeToAndCall()', '1');"> - function _dispatchUpgradeToAndCall()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _admin()', '1');"> - function _admin()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _requireZeroValue()', '1');"> - function _requireZeroValue()</a></li></ul></div><a class="js-clipboard btn btn-sm btn-icon btn-secondary me-1" href='javascript:;' onclick='copySourceCodeBtn(this);' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy source code to clipboard'><i class='far fa-copy btn-icon__inner'></i></a><a class='btn btn-sm btn-icon btn-secondary me-1' href='javascript:;' onclick='generatePermalink(this)' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy Permalink'><i class='far fa-link btn-icon__inner'></i></a><a href='javascript:;' id='panel-sourcecode_1' class='btn btn-sm btn-secondary togglefullscreen' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Toggle Fullscreen'><i class='fa fa-expand'></i></a></span></div><pre class='js-sourcecopyarea editor' id='editor1' style='margin-top: 5px;'>// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v4.8.3) (proxy/transparent/TransparentUpgradeableProxy.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "../ERC1967/ERC1967Proxy.sol";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}
|
|
10
|
+
* does not implement this interface directly, and some of its functions are implemented by an internal dispatch
|
|
11
|
+
* mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not
|
|
12
|
+
* include them in the ABI so this interface must be used to interact with it.
|
|
13
|
+
*/
|
|
14
|
+
interface ITransparentUpgradeableProxy is IERC1967 {
|
|
15
|
+
function admin() external view returns (address);
|
|
16
|
+
|
|
17
|
+
function implementation() external view returns (address);
|
|
18
|
+
|
|
19
|
+
function changeAdmin(address) external;
|
|
20
|
+
|
|
21
|
+
function upgradeTo(address) external;
|
|
22
|
+
|
|
23
|
+
function upgradeToAndCall(address, bytes memory) external payable;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @dev This contract implements a proxy that is upgradeable by an admin.
|
|
28
|
+
*
|
|
29
|
+
* To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
|
|
30
|
+
* clashing], which can potentially be used in an attack, this contract uses the
|
|
31
|
+
* https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
|
|
32
|
+
* things that go hand in hand:
|
|
33
|
+
*
|
|
34
|
+
* 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
|
|
35
|
+
* that call matches one of the admin functions exposed by the proxy itself.
|
|
36
|
+
* 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
|
|
37
|
+
* implementation. If the admin tries to call a function on the implementation it will fail with an error that says
|
|
38
|
+
* "admin cannot fallback to proxy target".
|
|
39
|
+
*
|
|
40
|
+
* These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing
|
|
41
|
+
* the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due
|
|
42
|
+
* to sudden errors when trying to call a function from the proxy implementation.
|
|
43
|
+
*
|
|
44
|
+
* Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,
|
|
45
|
+
* you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.
|
|
46
|
+
*
|
|
47
|
+
* NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not
|
|
48
|
+
* inherit from that interface, and instead the admin functions are implicitly implemented using a custom dispatch
|
|
49
|
+
* mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to
|
|
50
|
+
* fully implement transparency without decoding reverts caused by selector clashes between the proxy and the
|
|
51
|
+
* implementation.
|
|
52
|
+
*
|
|
53
|
+
* WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler
|
|
54
|
+
* will not check that there are no selector conflicts, due to the note above. A selector clash between any new function
|
|
55
|
+
* and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could
|
|
56
|
+
* render the admin operations inaccessible, which could prevent upgradeability. Transparency may also be compromised.
|
|
57
|
+
*/
|
|
58
|
+
contract TransparentUpgradeableProxy is ERC1967Proxy {
|
|
59
|
+
/**
|
|
60
|
+
* @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and
|
|
61
|
+
* optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.
|
|
62
|
+
*/
|
|
63
|
+
constructor(
|
|
64
|
+
address _logic,
|
|
65
|
+
address admin_,
|
|
66
|
+
bytes memory _data
|
|
67
|
+
) payable ERC1967Proxy(_logic, _data) {
|
|
68
|
+
_changeAdmin(admin_);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.
|
|
73
|
+
*
|
|
74
|
+
* CAUTION: This modifier is deprecated, as it could cause issues if the modified function has arguments, and the
|
|
75
|
+
* implementation provides a function with the same selector.
|
|
76
|
+
*/
|
|
77
|
+
modifier ifAdmin() {
|
|
78
|
+
if (msg.sender == _getAdmin()) {
|
|
79
|
+
_;
|
|
80
|
+
} else {
|
|
81
|
+
_fallback();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior
|
|
87
|
+
*/
|
|
88
|
+
function _fallback() internal virtual override {
|
|
89
|
+
if (msg.sender == _getAdmin()) {
|
|
90
|
+
bytes memory ret;
|
|
91
|
+
bytes4 selector = msg.sig;
|
|
92
|
+
if (selector == ITransparentUpgradeableProxy.upgradeTo.selector) {
|
|
93
|
+
ret = _dispatchUpgradeTo();
|
|
94
|
+
} else if (selector == ITransparentUpgradeableProxy.upgradeToAndCall.selector) {
|
|
95
|
+
ret = _dispatchUpgradeToAndCall();
|
|
96
|
+
} else if (selector == ITransparentUpgradeableProxy.changeAdmin.selector) {
|
|
97
|
+
ret = _dispatchChangeAdmin();
|
|
98
|
+
} else if (selector == ITransparentUpgradeableProxy.admin.selector) {
|
|
99
|
+
ret = _dispatchAdmin();
|
|
100
|
+
} else if (selector == ITransparentUpgradeableProxy.implementation.selector) {
|
|
101
|
+
ret = _dispatchImplementation();
|
|
102
|
+
} else {
|
|
103
|
+
revert("TransparentUpgradeableProxy: admin cannot fallback to proxy target");
|
|
104
|
+
}
|
|
105
|
+
assembly {
|
|
106
|
+
return(add(ret, 0x20), mload(ret))
|
|
107
|
+
}
|
|
108
|
+
} else {
|
|
109
|
+
super._fallback();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* @dev Returns the current admin.
|
|
115
|
+
*
|
|
116
|
+
* TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
|
|
117
|
+
* https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
|
|
118
|
+
* `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`
|
|
119
|
+
*/
|
|
120
|
+
function _dispatchAdmin() private returns (bytes memory) {
|
|
121
|
+
_requireZeroValue();
|
|
122
|
+
|
|
123
|
+
address admin = _getAdmin();
|
|
124
|
+
return abi.encode(admin);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* @dev Returns the current implementation.
|
|
129
|
+
*
|
|
130
|
+
* TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
|
|
131
|
+
* https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
|
|
132
|
+
* `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
|
|
133
|
+
*/
|
|
134
|
+
function _dispatchImplementation() private returns (bytes memory) {
|
|
135
|
+
_requireZeroValue();
|
|
136
|
+
|
|
137
|
+
address implementation = _implementation();
|
|
138
|
+
return abi.encode(implementation);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* @dev Changes the admin of the proxy.
|
|
143
|
+
*
|
|
144
|
+
* Emits an {AdminChanged} event.
|
|
145
|
+
*/
|
|
146
|
+
function _dispatchChangeAdmin() private returns (bytes memory) {
|
|
147
|
+
_requireZeroValue();
|
|
148
|
+
|
|
149
|
+
address newAdmin = abi.decode(msg.data[4:], (address));
|
|
150
|
+
_changeAdmin(newAdmin);
|
|
151
|
+
|
|
152
|
+
return "";
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @dev Upgrade the implementation of the proxy.
|
|
157
|
+
*/
|
|
158
|
+
function _dispatchUpgradeTo() private returns (bytes memory) {
|
|
159
|
+
_requireZeroValue();
|
|
160
|
+
|
|
161
|
+
address newImplementation = abi.decode(msg.data[4:], (address));
|
|
162
|
+
_upgradeToAndCall(newImplementation, bytes(""), false);
|
|
163
|
+
|
|
164
|
+
return "";
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified
|
|
169
|
+
* by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the
|
|
170
|
+
* proxied contract.
|
|
171
|
+
*/
|
|
172
|
+
function _dispatchUpgradeToAndCall() private returns (bytes memory) {
|
|
173
|
+
(address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes));
|
|
174
|
+
_upgradeToAndCall(newImplementation, data, true);
|
|
175
|
+
|
|
176
|
+
return "";
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* @dev Returns the current admin.
|
|
181
|
+
*/
|
|
182
|
+
function _admin() internal view virtual returns (address) {
|
|
183
|
+
return _getAdmin();
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* @dev To keep this contract fully transparent, all `ifAdmin` functions must be payable. This helper is here to
|
|
188
|
+
* emulate some proxy functions being non-payable while still allowing value to pass through.
|
|
189
|
+
*/
|
|
190
|
+
function _requireZeroValue() private {
|
|
191
|
+
require(msg.value == 0);
|
|
192
|
+
}
|
|
193
|
+
}</pre><br><div class='d-flex justify-content-between'><span class='text-muted'>File 2 of 14 : Ownable.sol</span><span><div class="btn-group"><button class='btn btn-sm btn-secondary dropdown-toggle me-1' type='button' id='dropdownPrimaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' data-bs-toggle='tooltip' title='View and Navigate Contract Outline'>Outline</button><ul class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownPrimaryInvoker' style='height: 200px; max-height: 300px; overflow-y: scroll; position:absolute;'><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function owner()', '2');"> - function owner()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _checkOwner()', '2');"> - function _checkOwner()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function renounceOwnership()', '2');"> - function renounceOwnership()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function transferOwnership(address newOwner)', '2');"> - function transferOwnership(address ne ...</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _transferOwnership(address newOwner)', '2');"> - function _transferOwnership(address n ...</a></li></ul></div><a class="js-clipboard btn btn-sm btn-icon btn-secondary me-1" href='javascript:;' onclick='copySourceCodeBtn(this);' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy source code to clipboard'><i class='far fa-copy btn-icon__inner'></i></a><a class='btn btn-sm btn-icon btn-secondary me-1' href='javascript:;' onclick='generatePermalink(this)' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy Permalink'><i class='far fa-link btn-icon__inner'></i></a><a href='javascript:;' id='panel-sourcecode_2' class='btn btn-sm btn-secondary togglefullscreen' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Toggle Fullscreen'><i class='fa fa-expand'></i></a></span></div><pre class='js-sourcecopyarea editor' id='editor2' style='margin-top: 5px;'>// SPDX-License-Identifier: MIT
|
|
194
|
+
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
|
|
195
|
+
|
|
196
|
+
pragma solidity ^0.8.0;
|
|
197
|
+
|
|
198
|
+
import "../utils/Context.sol";
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* @dev Contract module which provides a basic access control mechanism, where
|
|
202
|
+
* there is an account (an owner) that can be granted exclusive access to
|
|
203
|
+
* specific functions.
|
|
204
|
+
*
|
|
205
|
+
* By default, the owner account will be the one that deploys the contract. This
|
|
206
|
+
* can later be changed with {transferOwnership}.
|
|
207
|
+
*
|
|
208
|
+
* This module is used through inheritance. It will make available the modifier
|
|
209
|
+
* `onlyOwner`, which can be applied to your functions to restrict their use to
|
|
210
|
+
* the owner.
|
|
211
|
+
*/
|
|
212
|
+
abstract contract Ownable is Context {
|
|
213
|
+
address private _owner;
|
|
214
|
+
|
|
215
|
+
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* @dev Initializes the contract setting the deployer as the initial owner.
|
|
219
|
+
*/
|
|
220
|
+
constructor() {
|
|
221
|
+
_transferOwnership(_msgSender());
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* @dev Throws if called by any account other than the owner.
|
|
226
|
+
*/
|
|
227
|
+
modifier onlyOwner() {
|
|
228
|
+
_checkOwner();
|
|
229
|
+
_;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* @dev Returns the address of the current owner.
|
|
234
|
+
*/
|
|
235
|
+
function owner() public view virtual returns (address) {
|
|
236
|
+
return _owner;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* @dev Throws if the sender is not the owner.
|
|
241
|
+
*/
|
|
242
|
+
function _checkOwner() internal view virtual {
|
|
243
|
+
require(owner() == _msgSender(), "Ownable: caller is not the owner");
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* @dev Leaves the contract without owner. It will not be possible to call
|
|
248
|
+
* `onlyOwner` functions anymore. Can only be called by the current owner.
|
|
249
|
+
*
|
|
250
|
+
* NOTE: Renouncing ownership will leave the contract without an owner,
|
|
251
|
+
* thereby removing any functionality that is only available to the owner.
|
|
252
|
+
*/
|
|
253
|
+
function renounceOwnership() public virtual onlyOwner {
|
|
254
|
+
_transferOwnership(address(0));
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* @dev Transfers ownership of the contract to a new account (`newOwner`).
|
|
259
|
+
* Can only be called by the current owner.
|
|
260
|
+
*/
|
|
261
|
+
function transferOwnership(address newOwner) public virtual onlyOwner {
|
|
262
|
+
require(newOwner != address(0), "Ownable: new owner is the zero address");
|
|
263
|
+
_transferOwnership(newOwner);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* @dev Transfers ownership of the contract to a new account (`newOwner`).
|
|
268
|
+
* Internal function without access restriction.
|
|
269
|
+
*/
|
|
270
|
+
function _transferOwnership(address newOwner) internal virtual {
|
|
271
|
+
address oldOwner = _owner;
|
|
272
|
+
_owner = newOwner;
|
|
273
|
+
emit OwnershipTransferred(oldOwner, newOwner);
|
|
274
|
+
}
|
|
275
|
+
}</pre><br><div class='d-flex justify-content-between'><span class='text-muted'>File 3 of 14 : draft-IERC1822.sol</span><span><div class="btn-group"><button class='btn btn-sm btn-secondary dropdown-toggle me-1' type='button' id='dropdownPrimaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' data-bs-toggle='tooltip' title='View and Navigate Contract Outline'>Outline</button><ul class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownPrimaryInvoker' style='height: 105px; max-height: 300px; overflow-y: scroll; position:absolute;'><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('interface IERC1822Proxiable', '3');"><i class="far fa-book-open"></i> <b>interface IERC1822Proxiable</b></a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function proxiableUUID()', '3');"> - function proxiableUUID()</a></li></ul></div><a class="js-clipboard btn btn-sm btn-icon btn-secondary me-1" href='javascript:;' onclick='copySourceCodeBtn(this);' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy source code to clipboard'><i class='far fa-copy btn-icon__inner'></i></a><a class='btn btn-sm btn-icon btn-secondary me-1' href='javascript:;' onclick='generatePermalink(this)' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy Permalink'><i class='far fa-link btn-icon__inner'></i></a><a href='javascript:;' id='panel-sourcecode_3' class='btn btn-sm btn-secondary togglefullscreen' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Toggle Fullscreen'><i class='fa fa-expand'></i></a></span></div><pre class='js-sourcecopyarea editor' id='editor3' style='margin-top: 5px;'>// SPDX-License-Identifier: MIT
|
|
276
|
+
// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)
|
|
277
|
+
|
|
278
|
+
pragma solidity ^0.8.0;
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
|
|
282
|
+
* proxy whose upgrades are fully controlled by the current implementation.
|
|
283
|
+
*/
|
|
284
|
+
interface IERC1822Proxiable {
|
|
285
|
+
/**
|
|
286
|
+
* @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
|
|
287
|
+
* address.
|
|
288
|
+
*
|
|
289
|
+
* IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
|
|
290
|
+
* bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
|
|
291
|
+
* function revert if invoked through a proxy.
|
|
292
|
+
*/
|
|
293
|
+
function proxiableUUID() external view returns (bytes32);
|
|
294
|
+
}</pre><br><div class='d-flex justify-content-between'><span class='text-muted'>File 4 of 14 : IERC1967.sol</span><span><div class="btn-group"><button class='btn btn-sm btn-secondary dropdown-toggle me-1' type='button' id='dropdownPrimaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' data-bs-toggle='tooltip' title='View and Navigate Contract Outline'>Outline</button><ul class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownPrimaryInvoker' style='height: 65px; max-height: 300px; overflow-y: scroll; position:absolute;'><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('interface IERC1967', '4');"><i class="far fa-book-open"></i> <b>interface IERC1967</b></a></li></ul></div><a class="js-clipboard btn btn-sm btn-icon btn-secondary me-1" href='javascript:;' onclick='copySourceCodeBtn(this);' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy source code to clipboard'><i class='far fa-copy btn-icon__inner'></i></a><a class='btn btn-sm btn-icon btn-secondary me-1' href='javascript:;' onclick='generatePermalink(this)' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy Permalink'><i class='far fa-link btn-icon__inner'></i></a><a href='javascript:;' id='panel-sourcecode_4' class='btn btn-sm btn-secondary togglefullscreen' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Toggle Fullscreen'><i class='fa fa-expand'></i></a></span></div><pre class='js-sourcecopyarea editor' id='editor4' style='margin-top: 5px;'>// SPDX-License-Identifier: MIT
|
|
295
|
+
// OpenZeppelin Contracts (last updated v4.8.3) (interfaces/IERC1967.sol)
|
|
296
|
+
|
|
297
|
+
pragma solidity ^0.8.0;
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.
|
|
301
|
+
*
|
|
302
|
+
* _Available since v4.9._
|
|
303
|
+
*/
|
|
304
|
+
interface IERC1967 {
|
|
305
|
+
/**
|
|
306
|
+
* @dev Emitted when the implementation is upgraded.
|
|
307
|
+
*/
|
|
308
|
+
event Upgraded(address indexed implementation);
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* @dev Emitted when the admin account has changed.
|
|
312
|
+
*/
|
|
313
|
+
event AdminChanged(address previousAdmin, address newAdmin);
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* @dev Emitted when the beacon is changed.
|
|
317
|
+
*/
|
|
318
|
+
event BeaconUpgraded(address indexed beacon);
|
|
319
|
+
}</pre><br><div class='d-flex justify-content-between'><span class='text-muted'>File 5 of 14 : BeaconProxy.sol</span><span><div class="btn-group"><button class='btn btn-sm btn-secondary dropdown-toggle me-1' type='button' id='dropdownPrimaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' data-bs-toggle='tooltip' title='View and Navigate Contract Outline'>Outline</button><ul class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownPrimaryInvoker' style='height: 160px; max-height: 300px; overflow-y: scroll; position:absolute;'><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('contract BeaconProxy is Proxy, ERC1967Upgrade', '5');"><i class="far fa-file-alt text-secondary"></i> <b>contract BeaconProxy is Proxy, ERC ...</b></a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _beacon()', '5');"> - function _beacon()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _implementation()', '5');"> - function _implementation()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _setBeacon(address beacon, bytes memory data)', '5');"> - function _setBeacon(address beacon, b ...</a></li></ul></div><a class="js-clipboard btn btn-sm btn-icon btn-secondary me-1" href='javascript:;' onclick='copySourceCodeBtn(this);' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy source code to clipboard'><i class='far fa-copy btn-icon__inner'></i></a><a class='btn btn-sm btn-icon btn-secondary me-1' href='javascript:;' onclick='generatePermalink(this)' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy Permalink'><i class='far fa-link btn-icon__inner'></i></a><a href='javascript:;' id='panel-sourcecode_5' class='btn btn-sm btn-secondary togglefullscreen' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Toggle Fullscreen'><i class='fa fa-expand'></i></a></span></div><pre class='js-sourcecopyarea editor' id='editor5' style='margin-top: 5px;'>// SPDX-License-Identifier: MIT
|
|
320
|
+
// OpenZeppelin Contracts (last updated v4.7.0) (proxy/beacon/BeaconProxy.sol)
|
|
321
|
+
|
|
322
|
+
pragma solidity ^0.8.0;
|
|
323
|
+
|
|
324
|
+
import "./IBeacon.sol";
|
|
325
|
+
import "../Proxy.sol";
|
|
326
|
+
import "../ERC1967/ERC1967Upgrade.sol";
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* @dev This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}.
|
|
330
|
+
*
|
|
331
|
+
* The beacon address is stored in storage slot `uint256(keccak256('eip1967.proxy.beacon')) - 1`, so that it doesn't
|
|
332
|
+
* conflict with the storage layout of the implementation behind the proxy.
|
|
333
|
+
*
|
|
334
|
+
* _Available since v3.4._
|
|
335
|
+
*/
|
|
336
|
+
contract BeaconProxy is Proxy, ERC1967Upgrade {
|
|
337
|
+
/**
|
|
338
|
+
* @dev Initializes the proxy with `beacon`.
|
|
339
|
+
*
|
|
340
|
+
* If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This
|
|
341
|
+
* will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity
|
|
342
|
+
* constructor.
|
|
343
|
+
*
|
|
344
|
+
* Requirements:
|
|
345
|
+
*
|
|
346
|
+
* - `beacon` must be a contract with the interface {IBeacon}.
|
|
347
|
+
*/
|
|
348
|
+
constructor(address beacon, bytes memory data) payable {
|
|
349
|
+
_upgradeBeaconToAndCall(beacon, data, false);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* @dev Returns the current beacon address.
|
|
354
|
+
*/
|
|
355
|
+
function _beacon() internal view virtual returns (address) {
|
|
356
|
+
return _getBeacon();
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* @dev Returns the current implementation address of the associated beacon.
|
|
361
|
+
*/
|
|
362
|
+
function _implementation() internal view virtual override returns (address) {
|
|
363
|
+
return IBeacon(_getBeacon()).implementation();
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* @dev Changes the proxy to use a new beacon. Deprecated: see {_upgradeBeaconToAndCall}.
|
|
368
|
+
*
|
|
369
|
+
* If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon.
|
|
370
|
+
*
|
|
371
|
+
* Requirements:
|
|
372
|
+
*
|
|
373
|
+
* - `beacon` must be a contract.
|
|
374
|
+
* - The implementation returned by `beacon` must be a contract.
|
|
375
|
+
*/
|
|
376
|
+
function _setBeacon(address beacon, bytes memory data) internal virtual {
|
|
377
|
+
_upgradeBeaconToAndCall(beacon, data, false);
|
|
378
|
+
}
|
|
379
|
+
}</pre><br><div class='d-flex justify-content-between'><span class='text-muted'>File 6 of 14 : IBeacon.sol</span><span><div class="btn-group"><button class='btn btn-sm btn-secondary dropdown-toggle me-1' type='button' id='dropdownPrimaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' data-bs-toggle='tooltip' title='View and Navigate Contract Outline'>Outline</button><ul class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownPrimaryInvoker' style='height: 105px; max-height: 300px; overflow-y: scroll; position:absolute;'><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('interface IBeacon', '6');"><i class="far fa-book-open"></i> <b>interface IBeacon</b></a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function implementation()', '6');"> - function implementation()</a></li></ul></div><a class="js-clipboard btn btn-sm btn-icon btn-secondary me-1" href='javascript:;' onclick='copySourceCodeBtn(this);' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy source code to clipboard'><i class='far fa-copy btn-icon__inner'></i></a><a class='btn btn-sm btn-icon btn-secondary me-1' href='javascript:;' onclick='generatePermalink(this)' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy Permalink'><i class='far fa-link btn-icon__inner'></i></a><a href='javascript:;' id='panel-sourcecode_6' class='btn btn-sm btn-secondary togglefullscreen' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Toggle Fullscreen'><i class='fa fa-expand'></i></a></span></div><pre class='js-sourcecopyarea editor' id='editor6' style='margin-top: 5px;'>// SPDX-License-Identifier: MIT
|
|
380
|
+
// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)
|
|
381
|
+
|
|
382
|
+
pragma solidity ^0.8.0;
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* @dev This is the interface that {BeaconProxy} expects of its beacon.
|
|
386
|
+
*/
|
|
387
|
+
interface IBeacon {
|
|
388
|
+
/**
|
|
389
|
+
* @dev Must return an address that can be used as a delegate call target.
|
|
390
|
+
*
|
|
391
|
+
* {BeaconProxy} will check that this address is a contract.
|
|
392
|
+
*/
|
|
393
|
+
function implementation() external view returns (address);
|
|
394
|
+
}</pre><br><div class='d-flex justify-content-between'><span class='text-muted'>File 7 of 14 : UpgradeableBeacon.sol</span><span><div class="btn-group"><button class='btn btn-sm btn-secondary dropdown-toggle me-1' type='button' id='dropdownPrimaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' data-bs-toggle='tooltip' title='View and Navigate Contract Outline'>Outline</button><ul class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownPrimaryInvoker' style='height: 160px; max-height: 300px; overflow-y: scroll; position:absolute;'><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('contract UpgradeableBeacon is IBeacon, Ownable', '7');"><i class="far fa-file-alt text-secondary"></i> <b>contract UpgradeableBeacon is IBea ...</b></a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function implementation()', '7');"> - function implementation()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function upgradeTo(address newImplementation)', '7');"> - function upgradeTo(address newImpleme ...</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _setImplementation(address newImplementation)', '7');"> - function _setImplementation(address n ...</a></li></ul></div><a class="js-clipboard btn btn-sm btn-icon btn-secondary me-1" href='javascript:;' onclick='copySourceCodeBtn(this);' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy source code to clipboard'><i class='far fa-copy btn-icon__inner'></i></a><a class='btn btn-sm btn-icon btn-secondary me-1' href='javascript:;' onclick='generatePermalink(this)' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy Permalink'><i class='far fa-link btn-icon__inner'></i></a><a href='javascript:;' id='panel-sourcecode_7' class='btn btn-sm btn-secondary togglefullscreen' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Toggle Fullscreen'><i class='fa fa-expand'></i></a></span></div><pre class='js-sourcecopyarea editor' id='editor7' style='margin-top: 5px;'>// SPDX-License-Identifier: MIT
|
|
395
|
+
// OpenZeppelin Contracts v4.4.1 (proxy/beacon/UpgradeableBeacon.sol)
|
|
396
|
+
|
|
397
|
+
pragma solidity ^0.8.0;
|
|
398
|
+
|
|
399
|
+
import "./IBeacon.sol";
|
|
400
|
+
import "../../access/Ownable.sol";
|
|
401
|
+
import "../../utils/Address.sol";
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* @dev This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their
|
|
405
|
+
* implementation contract, which is where they will delegate all function calls.
|
|
406
|
+
*
|
|
407
|
+
* An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon.
|
|
408
|
+
*/
|
|
409
|
+
contract UpgradeableBeacon is IBeacon, Ownable {
|
|
410
|
+
address private _implementation;
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* @dev Emitted when the implementation returned by the beacon is changed.
|
|
414
|
+
*/
|
|
415
|
+
event Upgraded(address indexed implementation);
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* @dev Sets the address of the initial implementation, and the deployer account as the owner who can upgrade the
|
|
419
|
+
* beacon.
|
|
420
|
+
*/
|
|
421
|
+
constructor(address implementation_) {
|
|
422
|
+
_setImplementation(implementation_);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* @dev Returns the current implementation address.
|
|
427
|
+
*/
|
|
428
|
+
function implementation() public view virtual override returns (address) {
|
|
429
|
+
return _implementation;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* @dev Upgrades the beacon to a new implementation.
|
|
434
|
+
*
|
|
435
|
+
* Emits an {Upgraded} event.
|
|
436
|
+
*
|
|
437
|
+
* Requirements:
|
|
438
|
+
*
|
|
439
|
+
* - msg.sender must be the owner of the contract.
|
|
440
|
+
* - `newImplementation` must be a contract.
|
|
441
|
+
*/
|
|
442
|
+
function upgradeTo(address newImplementation) public virtual onlyOwner {
|
|
443
|
+
_setImplementation(newImplementation);
|
|
444
|
+
emit Upgraded(newImplementation);
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* @dev Sets the implementation contract address for this beacon
|
|
449
|
+
*
|
|
450
|
+
* Requirements:
|
|
451
|
+
*
|
|
452
|
+
* - `newImplementation` must be a contract.
|
|
453
|
+
*/
|
|
454
|
+
function _setImplementation(address newImplementation) private {
|
|
455
|
+
require(Address.isContract(newImplementation), "UpgradeableBeacon: implementation is not a contract");
|
|
456
|
+
_implementation = newImplementation;
|
|
457
|
+
}
|
|
458
|
+
}</pre><br><div class='d-flex justify-content-between'><span class='text-muted'>File 8 of 14 : ERC1967Proxy.sol</span><span><div class="btn-group"><button class='btn btn-sm btn-secondary dropdown-toggle me-1' type='button' id='dropdownPrimaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' data-bs-toggle='tooltip' title='View and Navigate Contract Outline'>Outline</button><ul class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownPrimaryInvoker' style='height: 105px; max-height: 300px; overflow-y: scroll; position:absolute;'><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('contract ERC1967Proxy is Proxy, ERC1967Upgrade', '8');"><i class="far fa-file-alt text-secondary"></i> <b>contract ERC1967Proxy is Proxy, ER ...</b></a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _implementation()', '8');"> - function _implementation()</a></li></ul></div><a class="js-clipboard btn btn-sm btn-icon btn-secondary me-1" href='javascript:;' onclick='copySourceCodeBtn(this);' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy source code to clipboard'><i class='far fa-copy btn-icon__inner'></i></a><a class='btn btn-sm btn-icon btn-secondary me-1' href='javascript:;' onclick='generatePermalink(this)' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy Permalink'><i class='far fa-link btn-icon__inner'></i></a><a href='javascript:;' id='panel-sourcecode_8' class='btn btn-sm btn-secondary togglefullscreen' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Toggle Fullscreen'><i class='fa fa-expand'></i></a></span></div><pre class='js-sourcecopyarea editor' id='editor8' style='margin-top: 5px;'>// SPDX-License-Identifier: MIT
|
|
459
|
+
// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)
|
|
460
|
+
|
|
461
|
+
pragma solidity ^0.8.0;
|
|
462
|
+
|
|
463
|
+
import "../Proxy.sol";
|
|
464
|
+
import "./ERC1967Upgrade.sol";
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
|
|
468
|
+
* implementation address that can be changed. This address is stored in storage in the location specified by
|
|
469
|
+
* https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
|
|
470
|
+
* implementation behind the proxy.
|
|
471
|
+
*/
|
|
472
|
+
contract ERC1967Proxy is Proxy, ERC1967Upgrade {
|
|
473
|
+
/**
|
|
474
|
+
* @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
|
|
475
|
+
*
|
|
476
|
+
* If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
|
|
477
|
+
* function call, and allows initializing the storage of the proxy like a Solidity constructor.
|
|
478
|
+
*/
|
|
479
|
+
constructor(address _logic, bytes memory _data) payable {
|
|
480
|
+
_upgradeToAndCall(_logic, _data, false);
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* @dev Returns the current implementation address.
|
|
485
|
+
*/
|
|
486
|
+
function _implementation() internal view virtual override returns (address impl) {
|
|
487
|
+
return ERC1967Upgrade._getImplementation();
|
|
488
|
+
}
|
|
489
|
+
}</pre><br><div class='d-flex justify-content-between'><span class='text-muted'>File 9 of 14 : ERC1967Upgrade.sol</span><span><div class="btn-group"><button class='btn btn-sm btn-secondary dropdown-toggle me-1' type='button' id='dropdownPrimaryInvoker' data-bs-toggle='dropdown' aria-expanded='false' data-bs-toggle='tooltip' title='View and Navigate Contract Outline'>Outline</button><ul class='dropdown-menu dropdown-menu-end' aria-labelledby='dropdownPrimaryInvoker' style='height: 300px; max-height: 300px; overflow-y: scroll; position:absolute;'><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _getImplementation()', '9');"> - function _getImplementation()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _setImplementation(address newImplementation)', '9');"> - function _setImplementation(address n ...</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _upgradeTo(address newImplementation)', '9');"> - function _upgradeTo(address newImplem ...</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _upgradeToAndCall(', '9');"> - function _upgradeToAndCall(</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _upgradeToAndCallUUPS(', '9');"> - function _upgradeToAndCallUUPS(</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _getAdmin()', '9');"> - function _getAdmin()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _setAdmin(address newAdmin)', '9');"> - function _setAdmin(address newAdmin)</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _changeAdmin(address newAdmin)', '9');"> - function _changeAdmin(address newAdmi ...</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _getBeacon()', '9');"> - function _getBeacon()</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _setBeacon(address newBeacon)', '9');"> - function _setBeacon(address newBeacon ...</a></li><li><a class="dropdown-item" href="javascript:;" onclick="myTocSelect('function _upgradeBeaconToAndCall(', '9');"> - function _upgradeBeaconToAndCall(</a></li></ul></div><a class="js-clipboard btn btn-sm btn-icon btn-secondary me-1" href='javascript:;' onclick='copySourceCodeBtn(this);' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy source code to clipboard'><i class='far fa-copy btn-icon__inner'></i></a><a class='btn btn-sm btn-icon btn-secondary me-1' href='javascript:;' onclick='generatePermalink(this)' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Copy Permalink'><i class='far fa-link btn-icon__inner'></i></a><a href='javascript:;' id='panel-sourcecode_9' class='btn btn-sm btn-secondary togglefullscreen' data-bs-toggle='tooltip' data-bs-trigger='hover' title='Toggle Fullscreen'><i class='fa fa-expand'></i></a></span></div><pre class='js-sourcecopyarea editor' id='editor9' style='margin-top: 5px;'>// SPDX-License-Identifier: MIT
|
|
490
|
+
// OpenZeppelin Contracts (last updated v4.8.3) (proxy/ERC1967/ERC1967Upgrade.sol)
|
|
491
|
+
|
|
492
|
+
pragma solidity ^0.8.2;
|
|
493
|
+
|
|
494
|
+
import "../beacon/IBeacon.sol";
|
|
495
|
+
import "../../interfaces/IERC1967.sol";
|
|
496
|
+
import "../../interfaces/draft-IERC1822.sol";
|
|
497
|
+
import "../../utils/Address.sol";
|
|
498
|
+
import "../../utils/StorageSlot.sol";
|
|
499
|
+
|
|
500
|
+
/**
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
echo "=== MYTHRIL ANALYSIS: ELEPHANT ECOSYSTEM ==="
|
|
4
|
+
echo ""
|
|
5
|
+
|
|
6
|
+
echo "Analyzing ELEPHANT Token (0xE283D0e3B8c102BAdF5E8166B73E02D96d92F688)..."
|
|
7
|
+
myth analyze -a 0xE283D0e3B8c102BAdF5E8166B73E02D96d92F688 --rpc https://bsc-dataseed.binance.org/ --execution-timeout 300 2>&1 | tee ELEPHANT_mythril.txt
|
|
8
|
+
|
|
9
|
+
echo ""
|
|
10
|
+
echo "Analyzing Graveyard (0xF7cC784BD260eafC1193D337fFcEA4D6ddA0dd71)..."
|
|
11
|
+
myth analyze -a 0xF7cC784BD260eafC1193D337fFcEA4D6ddA0dd71 --rpc https://bsc-dataseed.binance.org/ --execution-timeout 300 2>&1 | tee ELEPHANT_Graveyard_mythril.txt
|
|
12
|
+
|
|
13
|
+
echo ""
|
|
14
|
+
echo "Analyzing Wrapped ELEPHANT (0x241F21dF529C05289A00dAfeCEa10139A287cDCa)..."
|
|
15
|
+
myth analyze -a 0x241F21dF529C05289A00dAfeCEa10139A287cDCa --rpc https://bsc-dataseed.binance.org/ --execution-timeout 300 2>&1 | tee ELEPHANT_Wrapped_mythril.txt
|
|
16
|
+
|
|
17
|
+
echo ""
|
|
18
|
+
echo "Analysis complete. Results saved to *_mythril.txt files"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
mythril.interfaces.cli [ERROR]: Please check whether the Infura key is set or use a different RPC method.
|