dequanto 0.0.1 → 0.1.3
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/.circleci/config.yml +51 -0
- package/.github/workflows/npm-publish.yml +32 -0
- package/.vscode/settings.json +42 -11
- package/actions/chains.act.ts +136 -0
- package/actions/contracts.act.ts +178 -0
- package/actions/gen.act.ts +38 -38
- package/actions/logs.act.ts +7 -0
- package/actions/rpc.act.ts +918 -0
- package/actions/safe.act.ts +7 -0
- package/actions/tokens.act.ts +41 -12
- package/configs/defi.yml +28 -0
- package/configs/dequanto.yml +377 -51
- package/data/cex/eth.csv +356 -356
- package/data/chainlink/feeds.json +3674 -0
- package/data/chains/chains.json +972 -0
- package/data/evm/eventHashes.json +19314 -0
- package/data/evm/events.json +19314 -0
- package/data/evm/functionHashes.json +121138 -0
- package/data/evm/functions.json +121140 -0
- package/data/rpc/coregeth.json +1786 -0
- package/data/rpc/eth.json +5873 -0
- package/data/rpc/flashbots.json +662 -0
- package/data/rpc/metamask.json +3673 -0
- package/data/rpc/overrides.json +104 -0
- package/data/tokens/1inch.json +11107 -4733
- package/data/tokens/arbitrum.json +1 -1
- package/data/tokens/coingecko.json +118642 -0
- package/data/tokens/sushi.json +6067 -48632
- package/exports/core.lib.ts +103 -0
- package/hardhat.config.js +41 -1
- package/importmap.json +27 -0
- package/package-bundler.json +181 -0
- package/package.json +121 -49
- package/readme.md +22 -4
- package/src/ChainAccountService.ts +216 -0
- package/src/abi/$abiCoder.ts +62 -0
- package/src/abi/$rlp.ts +126 -0
- package/src/abi/Logger.ts +24 -0
- package/src/abi/_version.ts +1 -0
- package/src/abi/abi-coder-packed.ts +90 -0
- package/src/abi/abi-coder.ts +163 -0
- package/src/abi/coders/abstract-coder.ts +455 -0
- package/src/abi/coders/address.ts +39 -0
- package/src/abi/coders/anonymous.ts +29 -0
- package/src/abi/coders/array.ts +190 -0
- package/src/abi/coders/boolean.ts +25 -0
- package/src/abi/coders/bytes.ts +41 -0
- package/src/abi/coders/fixed-bytes.ts +36 -0
- package/src/abi/coders/null.ts +28 -0
- package/src/abi/coders/number.ts +59 -0
- package/src/abi/coders/string.ts +23 -0
- package/src/abi/coders/tuple.ts +61 -0
- package/src/abi/fragments.ts +1632 -0
- package/src/blocks/BlockDateResolver.ts +159 -149
- package/src/bridges/BridgeFactory.ts +16 -16
- package/src/bridges/hop/HopAddresses.ts +1 -1
- package/src/bridges/hop/HopBridge.ts +437 -430
- package/src/bridges/hop/contracts/gen.act.ts +51 -50
- package/src/bridges/models/IBridge.ts +44 -43
- package/src/chains/PlatformFactory.ts +46 -45
- package/src/chains/arbitrum/ArbTokenProvider.ts +39 -39
- package/src/chains/arbitrum/ArbWeb3Client.ts +21 -39
- package/src/chains/arbitrum/Arbiscan.ts +21 -24
- package/src/chains/arbitrum/TokensServiceArbitrum.ts +19 -0
- package/src/chains/boba/BobaWeb3Client.ts +21 -49
- package/src/chains/boba/Bobascan.ts +22 -25
- package/src/chains/xdai/XDaiWeb3Client.ts +56 -82
- package/src/chains/xdai/XDaiscan.ts +21 -24
- package/src/class/PackedRanges.ts +213 -0
- package/src/class/PromiseEvent.ts +21 -0
- package/src/class/SubjectKind.ts +5 -0
- package/src/class/SubjectStream.ts +137 -0
- package/src/class/Subscription.ts +7 -0
- package/src/clients/BscWeb3Client.ts +21 -38
- package/src/clients/ClientEventsStream.ts +95 -33
- package/src/clients/ClientPool.ts +616 -207
- package/src/clients/ClientPoolStats.ts +70 -64
- package/src/clients/EthWeb3Client.ts +23 -36
- package/src/clients/EvmWeb3Client.ts +26 -0
- package/src/clients/PolyWeb3Client.ts +42 -91
- package/src/clients/Web3BatchRequests.ts +119 -0
- package/src/clients/Web3Client.ts +700 -134
- package/src/clients/Web3ClientFactory.ts +31 -1
- package/src/clients/compatibility/Web3.ts +186 -0
- package/src/clients/debug/ClientDebugMethods.ts +100 -0
- package/src/clients/handlers/RateLimitGuard.ts +353 -0
- package/src/clients/interfaces/IWeb3Client.ts +63 -14
- package/src/clients/interfaces/IWeb3ClientStatus.ts +21 -23
- package/src/clients/interfaces/IWeb3EndpointOptions.ts +16 -9
- package/src/clients/model/ClientStatus.ts +6 -5
- package/src/clients/model/PromiEventWrap.ts +62 -61
- package/src/clients/model/SubscriptionWrap.ts +53 -53
- package/src/clients/utils/$web3Abi.ts +29 -0
- package/src/clients/utils/ClientEndpoints.ts +32 -26
- package/src/clients/utils/ClientErrorUtil.ts +29 -26
- package/src/clients/utils/TxFactory.ts +5 -17
- package/src/config/AConfigBase.ts +35 -0
- package/src/config/Config.ts +45 -0
- package/src/config/ConfigProvider.ts +4 -0
- package/src/config/ConfigProviderBrowser.ts +21 -0
- package/src/config/ConfigProviderIsoPlatform.ts +90 -0
- package/src/config/dequanto.d.ts +5 -0
- package/src/config/interface/IConfigData.ts +63 -0
- package/src/contracts/BscContract.ts +28 -28
- package/src/contracts/Contract.ts +120 -126
- package/src/contracts/ContractAbiProvider.ts +69 -0
- package/src/contracts/ContractBase.ts +496 -60
- package/src/contracts/ContractClassFactory.ts +114 -0
- package/src/contracts/ContractCreationResolver.ts +85 -0
- package/src/contracts/ContractProvider.ts +55 -55
- package/src/contracts/ContractReader.ts +339 -87
- package/src/contracts/ContractStorageReaderBase.ts +29 -0
- package/src/contracts/ContractStream.ts +34 -18
- package/src/contracts/ContractWriter.ts +139 -97
- package/src/contracts/EthContract.ts +29 -29
- package/src/contracts/TxContract.ts +39 -43
- package/src/contracts/deploy/ContractDeployer.ts +155 -0
- package/src/contracts/deploy/ContractDeployment.ts +53 -0
- package/src/contracts/deploy/ContractSource.ts +3 -0
- package/src/contracts/deploy/Deployments.ts +672 -0
- package/src/contracts/deploy/proxy/$proxyDeploy.ts +302 -0
- package/src/contracts/deploy/proxy/ProxyDeployment.ts +401 -0
- package/src/contracts/deploy/storage/DeploymentsStorage.ts +368 -0
- package/src/contracts/utils/AbiDeserializer.ts +111 -98
- package/src/contracts/utils/ContractBaseUtils.ts +105 -0
- package/src/contracts/utils/ConvertUtils.ts +16 -16
- package/src/contracts/utils/InputDataUtils.ts +32 -93
- package/src/contracts/utils/TypeUtils.ts +21 -21
- package/src/contracts/wrappers/FnRequestWrapper.ts +15 -0
- package/src/contracts/wrappers/FnSignedWrapper.ts +42 -0
- package/src/env/BigIntSerializer.ts +19 -18
- package/src/erc4337/Erc4337Factory.ts +54 -0
- package/src/erc4337/Erc4337Service.ts +219 -0
- package/src/erc4337/Erc4337TxWriter.ts +169 -0
- package/src/erc4337/models/Erc4337Abi.ts +7 -0
- package/src/erc4337/models/IErc4337Info.ts +8 -0
- package/src/erc4337/models/UserOperation.ts +18 -0
- package/src/erc4337/utils/$erc4337.ts +31 -0
- package/src/evm/EvmBytecode.ts +298 -0
- package/src/evm/OpcodesInfo.ts +211 -0
- package/src/evm/OpcodesWalker.ts +156 -0
- package/src/evm/Stack.ts +58 -0
- package/src/evm/functions/$opcodes.ts +122 -0
- package/src/evm/functions/opcodes.spec.ts +47 -0
- package/src/evm/interfaces/IJumps.ts +3 -0
- package/src/evm/interfaces/IMemory.ts +3 -0
- package/src/evm/interfaces/IOpcode.ts +11 -0
- package/src/evm/interfaces/IStorage.ts +3 -0
- package/src/evm/opcodes/add.ts +49 -0
- package/src/evm/opcodes/addmod.ts +19 -0
- package/src/evm/opcodes/address.ts +22 -0
- package/src/evm/opcodes/and.ts +58 -0
- package/src/evm/opcodes/balance.ts +25 -0
- package/src/evm/opcodes/blockhash.ts +25 -0
- package/src/evm/opcodes/byte.ts +34 -0
- package/src/evm/opcodes/call.ts +69 -0
- package/src/evm/opcodes/callcode.ts +69 -0
- package/src/evm/opcodes/calldatacopy.ts +36 -0
- package/src/evm/opcodes/calldataload.ts +40 -0
- package/src/evm/opcodes/calldatasize.ts +21 -0
- package/src/evm/opcodes/caller.ts +22 -0
- package/src/evm/opcodes/callvalue.ts +21 -0
- package/src/evm/opcodes/codecopy.ts +37 -0
- package/src/evm/opcodes/codesize.ts +21 -0
- package/src/evm/opcodes/coinbase.ts +21 -0
- package/src/evm/opcodes/create.ts +42 -0
- package/src/evm/opcodes/create2.ts +41 -0
- package/src/evm/opcodes/delegatecall.ts +63 -0
- package/src/evm/opcodes/difficulty.ts +21 -0
- package/src/evm/opcodes/div.ts +35 -0
- package/src/evm/opcodes/dup.ts +7 -0
- package/src/evm/opcodes/eq.ts +92 -0
- package/src/evm/opcodes/exp.ts +34 -0
- package/src/evm/opcodes/extcodecopy.ts +42 -0
- package/src/evm/opcodes/extcodehash.ts +25 -0
- package/src/evm/opcodes/extcodesize.ts +25 -0
- package/src/evm/opcodes/gas.ts +21 -0
- package/src/evm/opcodes/gaslimit.ts +21 -0
- package/src/evm/opcodes/gasprice.ts +21 -0
- package/src/evm/opcodes/gt.ts +39 -0
- package/src/evm/opcodes/invalid.ts +24 -0
- package/src/evm/opcodes/iszero.ts +48 -0
- package/src/evm/opcodes/jump.ts +66 -0
- package/src/evm/opcodes/jumpdest.ts +6 -0
- package/src/evm/opcodes/jumpi.ts +367 -0
- package/src/evm/opcodes/log.ts +89 -0
- package/src/evm/opcodes/lt.ts +39 -0
- package/src/evm/opcodes/mload.ts +30 -0
- package/src/evm/opcodes/mod.ts +33 -0
- package/src/evm/opcodes/msize.ts +21 -0
- package/src/evm/opcodes/mstore.ts +33 -0
- package/src/evm/opcodes/mul.ts +38 -0
- package/src/evm/opcodes/mulmod.ts +19 -0
- package/src/evm/opcodes/not.ts +30 -0
- package/src/evm/opcodes/number.ts +21 -0
- package/src/evm/opcodes/or.ts +33 -0
- package/src/evm/opcodes/origin.ts +21 -0
- package/src/evm/opcodes/pc.ts +7 -0
- package/src/evm/opcodes/pop.ts +6 -0
- package/src/evm/opcodes/push.ts +8 -0
- package/src/evm/opcodes/return.ts +78 -0
- package/src/evm/opcodes/returndatacopy.ts +37 -0
- package/src/evm/opcodes/returndatasize.ts +21 -0
- package/src/evm/opcodes/revert.ts +64 -0
- package/src/evm/opcodes/sar.ts +33 -0
- package/src/evm/opcodes/selfdestruct.ts +26 -0
- package/src/evm/opcodes/sha3.ts +63 -0
- package/src/evm/opcodes/shl.ts +42 -0
- package/src/evm/opcodes/shr.ts +33 -0
- package/src/evm/opcodes/signextend.ts +25 -0
- package/src/evm/opcodes/sload.ts +190 -0
- package/src/evm/opcodes/sstore.ts +259 -0
- package/src/evm/opcodes/staticcall.ts +63 -0
- package/src/evm/opcodes/stop.ts +22 -0
- package/src/evm/opcodes/sub.ts +33 -0
- package/src/evm/opcodes/swap.ts +7 -0
- package/src/evm/opcodes/timestamp.ts +21 -0
- package/src/evm/opcodes/xor.ts +33 -0
- package/src/evm/utils/$bytecode.ts +76 -0
- package/src/evm/utils/BigNumber.ts +9 -0
- package/src/evm/utils/hex.ts +37 -0
- package/src/evm/utils/opcodes.ts +213 -0
- package/src/evm/utils/stringify.ts +12 -0
- package/src/evm/utils/stringifyEvents.ts +37 -0
- package/src/evm/utils/stringifyFunctions.ts +41 -0
- package/src/evm/utils/stringifyInstructions.ts +38 -0
- package/src/evm/utils/stringifyMappings.ts +65 -0
- package/src/evm/utils/stringifyStructs.ts +16 -0
- package/src/evm/utils/stringifyVariables.ts +32 -0
- package/src/explorer/BlockChainExplorerFactory.ts +644 -0
- package/src/explorer/BlockChainExplorerProvider.ts +57 -0
- package/src/explorer/BlockChainExplorerStorage.ts +124 -0
- package/src/explorer/BlockNumberCache.ts +47 -0
- package/src/explorer/Bscscan.ts +24 -0
- package/src/explorer/ContractVerifier.ts +289 -0
- package/src/explorer/ContractVerifierHtml.ts +207 -0
- package/src/explorer/Etherscan.ts +37 -0
- package/src/explorer/Evmscan.ts +8 -0
- package/src/explorer/IAbiProvider.ts +5 -0
- package/src/explorer/IBlockChainExplorer.ts +69 -0
- package/src/explorer/Polyscan.ts +24 -0
- package/src/explorer/verifiers/FsHtmlVerifier.ts +195 -0
- package/src/explorer/verifiers/IVerifier.ts +14 -0
- package/src/flashbots/FlashbotWeb3Client.ts +24 -0
- package/src/flashbots/FlashbotsProvider.ts +163 -0
- package/src/gen/Ast.ts +12 -12
- package/src/gen/ContractStorageReaderTemplate.ts +18 -0
- package/src/gen/ContractTemplate.ts +134 -36
- package/src/gen/Generator.ts +414 -227
- package/src/gen/GeneratorFromAbi.ts +451 -128
- package/src/gen/GeneratorStorageReader.ts +114 -0
- package/src/gen/utils/$gen.ts +11 -0
- package/src/gen/utils/Str.ts +40 -0
- package/src/handlers/TokenHandler.ts +77 -78
- package/src/hardhat/HardhatProvider.ts +469 -0
- package/src/hardhat/HardhatWeb3Client.ts +66 -0
- package/src/indexer/BlocksTxIndexer.ts +116 -69
- package/src/indexer/EventsIndexer.ts +379 -0
- package/src/indexer/PendingTxIndexer.ts +123 -124
- package/src/indexer/handlers/BlocksWalker.ts +420 -390
- package/src/indexer/handlers/TxQueueLoader.ts +144 -143
- package/src/indexer/storage/FsEventsIndexerStore.ts +182 -0
- package/src/indexer/storage/FsEventsMetaStore.ts +65 -0
- package/src/indexer/storage/FsEventsStoreUtils.ts +43 -0
- package/src/indexer/storage/interfaces.ts +25 -0
- package/src/json/JsonArrayMultiStore.ts +219 -0
- package/src/json/JsonArrayStore.ts +193 -310
- package/src/json/JsonObjectStore.ts +78 -239
- package/src/json/JsonStoreFs.ts +187 -0
- package/src/loggers/ILogger.ts +6 -3
- package/src/loggers/LoggerService.ts +83 -39
- package/src/loggers/TxLoggerService.ts +144 -146
- package/src/models/IContractDetails.ts +10 -8
- package/src/models/IToken.ts +35 -11
- package/src/models/ITokenGlob.ts +14 -14
- package/src/models/ITransactionDetails.ts +10 -11
- package/src/models/TAccount.ts +53 -0
- package/src/models/TAddress.ts +2 -1
- package/src/models/TBufferLike.ts +2 -2
- package/src/models/TError.ts +4 -0
- package/src/models/TEth.ts +223 -0
- package/src/models/THex.ts +1 -1
- package/src/models/TPlatform.ts +16 -1
- package/src/models/TResult.ts +6 -6
- package/src/models/TTx.ts +42 -0
- package/src/ns/NameService.ts +54 -21
- package/src/ns/providers/ANsProvider.ts +110 -0
- package/src/ns/providers/EnsProvider.ts +109 -45
- package/src/ns/providers/INsProvider.ts +31 -6
- package/src/ns/providers/SpaceIdProvider.ts +17 -0
- package/src/ns/providers/UDProvider.ts +77 -49
- package/src/ns/utils/$ns.ts +27 -15
- package/src/prebuilt/1inch/OneInchRouterContract/OneInchRouterContract.ts +313 -0
- package/src/prebuilt/amm/AmmFactoryV2Contract/AmmFactoryV2Contract.ts +298 -0
- package/src/prebuilt/amm/AmmMasterChefV2Contract/AmmMasterChefV2Contract.ts +642 -0
- package/src/prebuilt/amm/AmmPairV2Contract/AmmPairV2Contract.ts +700 -0
- package/src/prebuilt/amm/AmmPairV3Contract/AmmPairV3Contract.ts +686 -0
- package/src/prebuilt/amm/AmmRouterV2Contract/AmmRouterV2Contract.ts +404 -0
- package/src/prebuilt/amm/AmmVaultV2Contract/AmmVaultV2Contract.ts +818 -0
- package/src/prebuilt/ens/EnsBaseRegistrar/EnsBaseRegistrar.ts +711 -0
- package/src/prebuilt/ens/EnsDnsRegistrar/EnsDnsRegistrar.ts +333 -0
- package/src/prebuilt/ens/EnsEthRegistrarController/EnsEthRegistrarController.ts +477 -0
- package/src/prebuilt/ens/EnsNameWrapper/EnsNameWrapper.ts +1003 -0
- package/src/prebuilt/ens/EnsPublicResolver/EnsPublicResolver.ts +873 -0
- package/src/prebuilt/ens/EnsRegistry/EnsRegistry.ts +415 -0
- package/src/prebuilt/ens/EnsReverseRegistrar/EnsReverseRegistrar.ts +407 -0
- package/src/prebuilt/erc4337/EntryPoint/EntryPoint.ts +640 -0
- package/src/prebuilt/erc4337/SimpleAccount/SimpleAccount.ts +501 -0
- package/src/prebuilt/erc4337/SimpleAccountFactory/SimpleAccountFactory.ts +184 -0
- package/src/prebuilt/openzeppelin/AccessControl.json +206 -0
- package/src/prebuilt/openzeppelin/AccessControl.ts +257 -0
- package/src/prebuilt/openzeppelin/AccessControlCrossChain.json +219 -0
- package/src/prebuilt/openzeppelin/AccessControlCrossChain.ts +266 -0
- package/src/prebuilt/openzeppelin/AccessControlDefaultAdminRules.json +391 -0
- package/src/prebuilt/openzeppelin/AccessControlDefaultAdminRules.ts +450 -0
- package/src/prebuilt/openzeppelin/AccessControlEnumerable.json +249 -0
- package/src/prebuilt/openzeppelin/AccessControlEnumerable.ts +275 -0
- package/src/prebuilt/openzeppelin/ConditionalEscrow.json +156 -0
- package/src/prebuilt/openzeppelin/ConditionalEscrow.ts +259 -0
- package/src/prebuilt/openzeppelin/CrossChainEnabledPolygonChild.json +30 -0
- package/src/prebuilt/openzeppelin/CrossChainEnabledPolygonChild.ts +150 -0
- package/src/prebuilt/openzeppelin/EIP712.json +67 -0
- package/src/prebuilt/openzeppelin/EIP712.ts +170 -0
- package/src/prebuilt/openzeppelin/ERC1155.json +325 -0
- package/src/prebuilt/openzeppelin/ERC1155.ts +291 -0
- package/src/prebuilt/openzeppelin/ERC1155Burnable.json +360 -0
- package/src/prebuilt/openzeppelin/ERC1155Burnable.ts +309 -0
- package/src/prebuilt/openzeppelin/ERC1155Holder.json +99 -0
- package/src/prebuilt/openzeppelin/ERC1155Holder.ts +163 -0
- package/src/prebuilt/openzeppelin/ERC1155Pausable.json +353 -0
- package/src/prebuilt/openzeppelin/ERC1155Pausable.ts +338 -0
- package/src/prebuilt/openzeppelin/ERC1155PresetMinterPauser.json +734 -0
- package/src/prebuilt/openzeppelin/ERC1155PresetMinterPauser.ts +567 -0
- package/src/prebuilt/openzeppelin/ERC1155Receiver.json +99 -0
- package/src/prebuilt/openzeppelin/ERC1155Receiver.ts +163 -0
- package/src/prebuilt/openzeppelin/ERC1155Supply.json +352 -0
- package/src/prebuilt/openzeppelin/ERC1155Supply.ts +305 -0
- package/src/prebuilt/openzeppelin/ERC1155URIStorage.json +314 -0
- package/src/prebuilt/openzeppelin/ERC1155URIStorage.ts +287 -0
- package/src/prebuilt/openzeppelin/ERC165.json +21 -0
- package/src/prebuilt/openzeppelin/ERC165.ts +143 -0
- package/src/prebuilt/openzeppelin/ERC165Storage.json +21 -0
- package/src/prebuilt/openzeppelin/ERC165Storage.ts +143 -0
- package/src/prebuilt/openzeppelin/ERC1820Implementer.json +26 -0
- package/src/prebuilt/openzeppelin/ERC1820Implementer.ts +143 -0
- package/src/prebuilt/openzeppelin/ERC20.json +288 -0
- package/src/prebuilt/openzeppelin/ERC20.ts +280 -0
- package/src/prebuilt/openzeppelin/ERC20Burnable.json +303 -0
- package/src/prebuilt/openzeppelin/ERC20Burnable.ts +298 -0
- package/src/prebuilt/openzeppelin/ERC20Capped.json +285 -0
- package/src/prebuilt/openzeppelin/ERC20Capped.ts +285 -0
- package/src/prebuilt/openzeppelin/ERC20FlashMint.json +349 -0
- package/src/prebuilt/openzeppelin/ERC20FlashMint.ts +305 -0
- package/src/prebuilt/openzeppelin/ERC20Pausable.json +311 -0
- package/src/prebuilt/openzeppelin/ERC20Pausable.ts +327 -0
- package/src/prebuilt/openzeppelin/ERC20Permit.json +412 -0
- package/src/prebuilt/openzeppelin/ERC20Permit.ts +348 -0
- package/src/prebuilt/openzeppelin/ERC20PresetFixedSupply.json +329 -0
- package/src/prebuilt/openzeppelin/ERC20PresetFixedSupply.ts +302 -0
- package/src/prebuilt/openzeppelin/ERC20PresetMinterPauser.json +663 -0
- package/src/prebuilt/openzeppelin/ERC20PresetMinterPauser.ts +554 -0
- package/src/prebuilt/openzeppelin/ERC20Snapshot.json +328 -0
- package/src/prebuilt/openzeppelin/ERC20Snapshot.ts +315 -0
- package/src/prebuilt/openzeppelin/ERC20Votes.json +675 -0
- package/src/prebuilt/openzeppelin/ERC20Votes.ts +484 -0
- package/src/prebuilt/openzeppelin/ERC20VotesComp.json +718 -0
- package/src/prebuilt/openzeppelin/ERC20VotesComp.ts +502 -0
- package/src/prebuilt/openzeppelin/ERC20Wrapper.json +333 -0
- package/src/prebuilt/openzeppelin/ERC20Wrapper.ts +307 -0
- package/src/prebuilt/openzeppelin/ERC2771Context.json +21 -0
- package/src/prebuilt/openzeppelin/ERC2771Context.ts +143 -0
- package/src/prebuilt/openzeppelin/ERC2981.json +50 -0
- package/src/prebuilt/openzeppelin/ERC2981.ts +152 -0
- package/src/prebuilt/openzeppelin/ERC4626.json +662 -0
- package/src/prebuilt/openzeppelin/ERC4626.ts +470 -0
- package/src/prebuilt/openzeppelin/ERC721.json +348 -0
- package/src/prebuilt/openzeppelin/ERC721.ts +314 -0
- package/src/prebuilt/openzeppelin/ERC721Burnable.json +345 -0
- package/src/prebuilt/openzeppelin/ERC721Burnable.ts +321 -0
- package/src/prebuilt/openzeppelin/ERC721Consecutive.json +363 -0
- package/src/prebuilt/openzeppelin/ERC721Consecutive.ts +331 -0
- package/src/prebuilt/openzeppelin/ERC721Enumerable.json +388 -0
- package/src/prebuilt/openzeppelin/ERC721Enumerable.ts +337 -0
- package/src/prebuilt/openzeppelin/ERC721Holder.json +36 -0
- package/src/prebuilt/openzeppelin/ERC721Holder.ts +143 -0
- package/src/prebuilt/openzeppelin/ERC721Pausable.json +371 -0
- package/src/prebuilt/openzeppelin/ERC721Pausable.ts +361 -0
- package/src/prebuilt/openzeppelin/ERC721PresetMinterPauserAutoId.json +742 -0
- package/src/prebuilt/openzeppelin/ERC721PresetMinterPauserAutoId.ts +595 -0
- package/src/prebuilt/openzeppelin/ERC721Royalty.json +361 -0
- package/src/prebuilt/openzeppelin/ERC721Royalty.ts +319 -0
- package/src/prebuilt/openzeppelin/ERC721URIStorage.json +364 -0
- package/src/prebuilt/openzeppelin/ERC721URIStorage.ts +352 -0
- package/src/prebuilt/openzeppelin/ERC721Votes.json +637 -0
- package/src/prebuilt/openzeppelin/ERC721Votes.ts +489 -0
- package/src/prebuilt/openzeppelin/ERC721Wrapper.json +427 -0
- package/src/prebuilt/openzeppelin/ERC721Wrapper.ts +352 -0
- package/src/prebuilt/openzeppelin/ERC777.json +578 -0
- package/src/prebuilt/openzeppelin/ERC777.ts +456 -0
- package/src/prebuilt/openzeppelin/ERC777PresetFixedSupply.json +588 -0
- package/src/prebuilt/openzeppelin/ERC777PresetFixedSupply.ts +456 -0
- package/src/prebuilt/openzeppelin/Escrow.json +137 -0
- package/src/prebuilt/openzeppelin/Escrow.ts +250 -0
- package/src/prebuilt/openzeppelin/Governor.json +1010 -0
- package/src/prebuilt/openzeppelin/Governor.ts +590 -0
- package/src/prebuilt/openzeppelin/GovernorCompatibilityBravo.json +1325 -0
- package/src/prebuilt/openzeppelin/GovernorCompatibilityBravo.ts +700 -0
- package/src/prebuilt/openzeppelin/GovernorCountingSimple.json +1039 -0
- package/src/prebuilt/openzeppelin/GovernorCountingSimple.ts +599 -0
- package/src/prebuilt/openzeppelin/GovernorPreventLateQuorum.json +1074 -0
- package/src/prebuilt/openzeppelin/GovernorPreventLateQuorum.ts +652 -0
- package/src/prebuilt/openzeppelin/GovernorProposalThreshold.json +1010 -0
- package/src/prebuilt/openzeppelin/GovernorProposalThreshold.ts +590 -0
- package/src/prebuilt/openzeppelin/GovernorSettings.json +1106 -0
- package/src/prebuilt/openzeppelin/GovernorSettings.ts +686 -0
- package/src/prebuilt/openzeppelin/GovernorTimelockCompound.json +1134 -0
- package/src/prebuilt/openzeppelin/GovernorTimelockCompound.ts +683 -0
- package/src/prebuilt/openzeppelin/GovernorTimelockControl.json +1127 -0
- package/src/prebuilt/openzeppelin/GovernorTimelockControl.ts +672 -0
- package/src/prebuilt/openzeppelin/GovernorVotes.json +1023 -0
- package/src/prebuilt/openzeppelin/GovernorVotes.ts +599 -0
- package/src/prebuilt/openzeppelin/GovernorVotesComp.json +1023 -0
- package/src/prebuilt/openzeppelin/GovernorVotesComp.ts +599 -0
- package/src/prebuilt/openzeppelin/GovernorVotesQuorumFraction.json +1100 -0
- package/src/prebuilt/openzeppelin/GovernorVotesQuorumFraction.ts +653 -0
- package/src/prebuilt/openzeppelin/IAMB.json +327 -0
- package/src/prebuilt/openzeppelin/IAMB.ts +330 -0
- package/src/prebuilt/openzeppelin/IAccessControl.json +174 -0
- package/src/prebuilt/openzeppelin/IAccessControl.ts +239 -0
- package/src/prebuilt/openzeppelin/IAccessControlDefaultAdminRules.json +346 -0
- package/src/prebuilt/openzeppelin/IAccessControlDefaultAdminRules.ts +423 -0
- package/src/prebuilt/openzeppelin/IAccessControlEnumerable.json +217 -0
- package/src/prebuilt/openzeppelin/IAccessControlEnumerable.ts +257 -0
- package/src/prebuilt/openzeppelin/IArbSys.json +355 -0
- package/src/prebuilt/openzeppelin/IArbSys.ts +300 -0
- package/src/prebuilt/openzeppelin/IBeacon.json +15 -0
- package/src/prebuilt/openzeppelin/IBeacon.ts +143 -0
- package/src/prebuilt/openzeppelin/IBridge.json +529 -0
- package/src/prebuilt/openzeppelin/IBridge.ts +430 -0
- package/src/prebuilt/openzeppelin/ICompoundTimelock.json +415 -0
- package/src/prebuilt/openzeppelin/ICompoundTimelock.ts +380 -0
- package/src/prebuilt/openzeppelin/ICrossDomainMessenger.json +101 -0
- package/src/prebuilt/openzeppelin/ICrossDomainMessenger.ts +208 -0
- package/src/prebuilt/openzeppelin/IERC1155.json +295 -0
- package/src/prebuilt/openzeppelin/IERC1155.ts +278 -0
- package/src/prebuilt/openzeppelin/IERC1155MetadataURI.json +314 -0
- package/src/prebuilt/openzeppelin/IERC1155MetadataURI.ts +287 -0
- package/src/prebuilt/openzeppelin/IERC1155Receiver.json +99 -0
- package/src/prebuilt/openzeppelin/IERC1155Receiver.ts +163 -0
- package/src/prebuilt/openzeppelin/IERC1271.json +26 -0
- package/src/prebuilt/openzeppelin/IERC1271.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC1363.json +373 -0
- package/src/prebuilt/openzeppelin/IERC1363.ts +287 -0
- package/src/prebuilt/openzeppelin/IERC1363Receiver.json +36 -0
- package/src/prebuilt/openzeppelin/IERC1363Receiver.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC1363Spender.json +31 -0
- package/src/prebuilt/openzeppelin/IERC1363Spender.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC165.json +21 -0
- package/src/prebuilt/openzeppelin/IERC165.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC1820Implementer.json +26 -0
- package/src/prebuilt/openzeppelin/IERC1820Implementer.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC1820Registry.json +215 -0
- package/src/prebuilt/openzeppelin/IERC1820Registry.ts +245 -0
- package/src/prebuilt/openzeppelin/IERC1822Proxiable.json +15 -0
- package/src/prebuilt/openzeppelin/IERC1822Proxiable.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC20.json +185 -0
- package/src/prebuilt/openzeppelin/IERC20.ts +227 -0
- package/src/prebuilt/openzeppelin/IERC20Metadata.json +224 -0
- package/src/prebuilt/openzeppelin/IERC20Metadata.ts +254 -0
- package/src/prebuilt/openzeppelin/IERC20Permit.json +77 -0
- package/src/prebuilt/openzeppelin/IERC20Permit.ts +161 -0
- package/src/prebuilt/openzeppelin/IERC2612.json +77 -0
- package/src/prebuilt/openzeppelin/IERC2612.ts +161 -0
- package/src/prebuilt/openzeppelin/IERC2981.json +50 -0
- package/src/prebuilt/openzeppelin/IERC2981.ts +152 -0
- package/src/prebuilt/openzeppelin/IERC3156FlashBorrower.json +41 -0
- package/src/prebuilt/openzeppelin/IERC3156FlashBorrower.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC3156FlashLender.json +79 -0
- package/src/prebuilt/openzeppelin/IERC3156FlashLender.ts +161 -0
- package/src/prebuilt/openzeppelin/IERC4626.json +614 -0
- package/src/prebuilt/openzeppelin/IERC4626.ts +448 -0
- package/src/prebuilt/openzeppelin/IERC4906.json +319 -0
- package/src/prebuilt/openzeppelin/IERC4906.ts +325 -0
- package/src/prebuilt/openzeppelin/IERC5267.json +51 -0
- package/src/prebuilt/openzeppelin/IERC5267.ts +157 -0
- package/src/prebuilt/openzeppelin/IERC5313.json +15 -0
- package/src/prebuilt/openzeppelin/IERC5313.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC5805.json +210 -0
- package/src/prebuilt/openzeppelin/IERC5805.ts +243 -0
- package/src/prebuilt/openzeppelin/IERC6372.json +28 -0
- package/src/prebuilt/openzeppelin/IERC6372.ts +152 -0
- package/src/prebuilt/openzeppelin/IERC721.json +287 -0
- package/src/prebuilt/openzeppelin/IERC721.ts +283 -0
- package/src/prebuilt/openzeppelin/IERC721Enumerable.json +343 -0
- package/src/prebuilt/openzeppelin/IERC721Enumerable.ts +310 -0
- package/src/prebuilt/openzeppelin/IERC721Metadata.json +332 -0
- package/src/prebuilt/openzeppelin/IERC721Metadata.ts +310 -0
- package/src/prebuilt/openzeppelin/IERC721Receiver.json +36 -0
- package/src/prebuilt/openzeppelin/IERC721Receiver.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC777.json +393 -0
- package/src/prebuilt/openzeppelin/IERC777.ts +359 -0
- package/src/prebuilt/openzeppelin/IERC777Recipient.json +40 -0
- package/src/prebuilt/openzeppelin/IERC777Recipient.ts +143 -0
- package/src/prebuilt/openzeppelin/IERC777Sender.json +40 -0
- package/src/prebuilt/openzeppelin/IERC777Sender.ts +143 -0
- package/src/prebuilt/openzeppelin/IFxMessageProcessor.json +25 -0
- package/src/prebuilt/openzeppelin/IFxMessageProcessor.ts +143 -0
- package/src/prebuilt/openzeppelin/IGovernor.json +762 -0
- package/src/prebuilt/openzeppelin/IGovernor.ts +471 -0
- package/src/prebuilt/openzeppelin/IGovernorCompatibilityBravo.json +992 -0
- package/src/prebuilt/openzeppelin/IGovernorCompatibilityBravo.ts +536 -0
- package/src/prebuilt/openzeppelin/IGovernorTimelock.json +847 -0
- package/src/prebuilt/openzeppelin/IGovernorTimelock.ts +521 -0
- package/src/prebuilt/openzeppelin/IInbox.json +444 -0
- package/src/prebuilt/openzeppelin/IInbox.ts +337 -0
- package/src/prebuilt/openzeppelin/IOutbox.json +410 -0
- package/src/prebuilt/openzeppelin/IOutbox.ts +317 -0
- package/src/prebuilt/openzeppelin/ITransparentUpgradeableProxy.json +117 -0
- package/src/prebuilt/openzeppelin/ITransparentUpgradeableProxy.ts +239 -0
- package/src/prebuilt/openzeppelin/IVotes.json +184 -0
- package/src/prebuilt/openzeppelin/IVotes.ts +225 -0
- package/src/prebuilt/openzeppelin/LibArbitrumL2.json +15 -0
- package/src/prebuilt/openzeppelin/LibArbitrumL2.ts +143 -0
- package/src/prebuilt/openzeppelin/MinimalForwarder.json +208 -0
- package/src/prebuilt/openzeppelin/MinimalForwarder.ts +201 -0
- package/src/prebuilt/openzeppelin/Multicall.json +21 -0
- package/src/prebuilt/openzeppelin/Multicall.ts +143 -0
- package/src/prebuilt/openzeppelin/Ownable.json +54 -0
- package/src/prebuilt/openzeppelin/Ownable.ts +177 -0
- package/src/prebuilt/openzeppelin/Ownable2Step.json +93 -0
- package/src/prebuilt/openzeppelin/Ownable2Step.ts +218 -0
- package/src/prebuilt/openzeppelin/Pausable.json +41 -0
- package/src/prebuilt/openzeppelin/Pausable.ts +178 -0
- package/src/prebuilt/openzeppelin/PaymentSplitter.json +304 -0
- package/src/prebuilt/openzeppelin/PaymentSplitter.ts +296 -0
- package/src/prebuilt/openzeppelin/ProxyAdmin.json +151 -0
- package/src/prebuilt/openzeppelin/ProxyAdmin.ts +228 -0
- package/src/prebuilt/openzeppelin/PullPayment.json +34 -0
- package/src/prebuilt/openzeppelin/PullPayment.ts +152 -0
- package/src/prebuilt/openzeppelin/RefundEscrow.json +226 -0
- package/src/prebuilt/openzeppelin/RefundEscrow.ts +356 -0
- package/src/prebuilt/openzeppelin/TimelockController.json +891 -0
- package/src/prebuilt/openzeppelin/TimelockController.ts +573 -0
- package/src/prebuilt/openzeppelin/TokenTimelock.json +69 -0
- package/src/prebuilt/openzeppelin/TokenTimelock.ts +174 -0
- package/src/prebuilt/openzeppelin/UUPSUpgradeable.json +91 -0
- package/src/prebuilt/openzeppelin/UUPSUpgradeable.ts +219 -0
- package/src/prebuilt/openzeppelin/UpgradeableBeacon.json +104 -0
- package/src/prebuilt/openzeppelin/UpgradeableBeacon.ts +222 -0
- package/src/prebuilt/openzeppelin/VestingWallet.json +225 -0
- package/src/prebuilt/openzeppelin/VestingWallet.ts +254 -0
- package/src/prebuilt/openzeppelin/Votes.json +307 -0
- package/src/prebuilt/openzeppelin/Votes.ts +304 -0
- package/src/prebuilt/openzeppelin/compiled/TransparentUpgradeableProxy/TransparentUpgradeableProxy.ts +214 -0
- package/src/prebuilt/safe/CreateCall.ts +168 -0
- package/src/prebuilt/safe/GnosisSafe.ts +683 -0
- package/src/prebuilt/safe/MultiSend.ts +147 -0
- package/src/prebuilt/safe/Safe.ts +742 -0
- package/src/prebuilt/safe/SafeL2.ts +780 -0
- package/src/prebuilt/safe/SafeProxyFactory.ts +197 -0
- package/src/prebuilt/weth/WETH/WETH.ts +390 -0
- package/src/rpc/$rpc.ts +124 -0
- package/src/rpc/Rpc.ts +3010 -0
- package/src/rpc/RpcBase.ts +154 -0
- package/src/rpc/RpcContract.ts +179 -0
- package/src/rpc/RpcError.ts +41 -0
- package/src/rpc/RpcFunction.ts +42 -0
- package/src/rpc/RpcHandler.ts +3 -0
- package/src/rpc/RpcModelMiddleware.ts +110 -0
- package/src/rpc/RpcSubscription.ts +46 -0
- package/src/rpc/transports/HttpTransport.ts +54 -0
- package/src/rpc/transports/ITransport.ts +87 -0
- package/src/rpc/transports/MessageBasedTransport.ts +133 -0
- package/src/rpc/transports/RpcTransport.ts +66 -0
- package/src/rpc/transports/WsTransport.ts +87 -0
- package/src/rpc/transports/WsTransportIsomorphic.ts +26 -0
- package/src/rpc/transports/compatibility/EIP1193Transport.ts +38 -0
- package/src/rpc/transports/compatibility/Web3Transport.ts +35 -0
- package/src/safe/$gnosis.ts +7 -0
- package/src/safe/GnosisSafeFactory.ts +104 -0
- package/src/safe/GnosisSafeHandler.ts +472 -0
- package/src/safe/GnosisSafeService.ts +86 -0
- package/src/safe/SafeTx.ts +93 -0
- package/src/safe/abi/GnosisSafe.json +979 -0
- package/src/safe/abi/v1_4_1/CreateCall.json +68 -0
- package/src/safe/abi/v1_4_1/MultiSend.json +20 -0
- package/src/safe/abi/v1_4_1/Safe.json +999 -0
- package/src/safe/abi/v1_4_1/SafeL2.json +1104 -0
- package/src/safe/abi/v1_4_1/SafeProxyFactory.json +139 -0
- package/src/safe/transport/FileServiceTransport.ts +109 -0
- package/src/safe/transport/ISafeServiceTransport.ts +20 -0
- package/src/safe/transport/InMemoryServiceTransport.ts +84 -0
- package/src/safe/transport/SafeServiceTransport.ts +148 -0
- package/src/safe/types/SafeServiceTypes.ts +326 -0
- package/src/services/TimelockService.ts +666 -0
- package/src/solidity/SlotsDump.ts +245 -0
- package/src/solidity/SlotsParser/Ast.ts +601 -0
- package/src/solidity/SlotsParser/MappingSettersResolver.ts +681 -0
- package/src/solidity/SlotsParser/SourceFile.ts +240 -0
- package/src/solidity/SlotsParser/models.ts +32 -0
- package/src/solidity/SlotsParser.ts +497 -0
- package/src/solidity/SlotsStorage.ts +209 -0
- package/src/solidity/SolidityParser.ts +108 -0
- package/src/solidity/SourceCodeProvider.ts +83 -0
- package/src/solidity/storage/Accessor.spec.ts +45 -0
- package/src/solidity/storage/Accessor.ts +136 -0
- package/src/solidity/storage/MappingKeysLoader.ts +112 -0
- package/src/solidity/storage/SlotDynamicArray.ts +46 -0
- package/src/solidity/storage/SlotFixedArray.ts +31 -0
- package/src/solidity/storage/SlotsStorageHandler.ts +18 -0
- package/src/solidity/storage/SlotsStorageTransport.ts +215 -0
- package/src/solidity/storage/handlers/SlotBytesHandler.ts +135 -0
- package/src/solidity/storage/handlers/SlotDynamicArrayHandler.ts +58 -0
- package/src/solidity/storage/handlers/SlotFixedArrayHandler.ts +58 -0
- package/src/solidity/storage/handlers/SlotMappingHandler.ts +75 -0
- package/src/solidity/storage/handlers/SlotStringHandler.ts +27 -0
- package/src/solidity/storage/handlers/SlotStructHandler.ts +47 -0
- package/src/solidity/storage/handlers/SlotValueConstantHandler.ts +30 -0
- package/src/solidity/storage/handlers/SlotValueHandler.ts +36 -0
- package/src/solidity/storage/handlers/SlotValueImmutableHandler.ts +49 -0
- package/src/solidity/utils/$str.ts +73 -0
- package/src/solidity/utils/$types.ts +61 -0
- package/src/tokens/TokenDataProvider.ts +284 -0
- package/src/tokens/TokenExchangeService.ts +129 -126
- package/src/tokens/TokenExchanges/AmmBase/AmmUtilts.ts +16 -16
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmPairV2Service.ts +228 -208
- package/src/tokens/TokenExchanges/AmmV2ExchangeBase.ts +242 -242
- package/src/tokens/TokenExchanges/AmmV2PriceQuote.ts +433 -0
- package/src/tokens/TokenExchanges/OneInchExchange.ts +114 -111
- package/src/tokens/TokenExchanges/PancakeswapExchange.ts +25 -30
- package/src/tokens/TokenExchanges/SushiswapPolygonExchange.ts +33 -30
- package/src/tokens/TokenExchanges/UniswapV2Exchange.ts +28 -0
- package/src/tokens/TokenOracles/IOracle.ts +36 -0
- package/src/tokens/TokenOracles/TokenPriceStore.ts +130 -129
- package/src/tokens/TokenOracles/amm/AmmV1Oracle.ts +219 -0
- package/src/tokens/TokenOracles/amm/AmmV2Oracle.ts +57 -0
- package/src/tokens/TokenOracles/chainlink/ChainlinkFeedProvider.ts +133 -0
- package/src/tokens/TokenOracles/chainlink/ChainlinkOracle.ts +135 -0
- package/src/tokens/TokenOracles/coingecko/CoingeckoOracle.ts +121 -0
- package/src/tokens/TokenOracles/coingecko/CoingeckoTokenProvider.ts +51 -0
- package/src/tokens/TokenPriceService.ts +273 -276
- package/src/tokens/TokenPriceServiceProvider.ts +36 -36
- package/src/tokens/TokenProviders/ITokenProvider.ts +9 -9
- package/src/tokens/TokenProviders/TPChain.ts +53 -41
- package/src/tokens/TokenProviders/TPCoingecko.ts +177 -0
- package/src/tokens/TokenProviders/TPCoinmarketcap.ts +82 -82
- package/src/tokens/TokenProviders/TPConfig.ts +53 -0
- package/src/tokens/TokenProviders/TPExplorer.ts +41 -0
- package/src/tokens/TokenProviders/TPOneInch.ts +71 -71
- package/src/tokens/TokenProviders/TPSushiswap.ts +88 -96
- package/src/tokens/TokenProviders/TPUniswap.ts +87 -85
- package/src/tokens/TokenService.ts +142 -128
- package/src/tokens/TokenSwapService.ts +44 -47
- package/src/tokens/TokenTransferService.ts +233 -216
- package/src/tokens/TokensService.ts +42 -186
- package/src/tokens/TokensServiceBsc.ts +17 -17
- package/src/tokens/TokensServiceEth.ts +9 -9
- package/src/tokens/TokensServiceFactory.ts +15 -1
- package/src/tokens/TokensServicePolygon.ts +17 -17
- package/src/tokens/TokensServiceXDai.ts +26 -26
- package/src/tokens/defi/ISwapService.ts +12 -12
- package/src/tokens/defi/paraswap/Paraswap.ts +242 -244
- package/src/tokens/utils/TokenUtils.ts +63 -63
- package/src/txs/ITxBuilderOptions.ts +41 -0
- package/src/txs/TxDataBuilder.ts +308 -207
- package/src/txs/TxLogger.ts +120 -121
- package/src/txs/TxNonceManager.ts +86 -0
- package/src/txs/TxProvider.ts +70 -68
- package/src/txs/TxService.ts +20 -19
- package/src/txs/TxWriter.ts +342 -78
- package/src/txs/agents/Erc4337Agent.ts +32 -0
- package/src/txs/agents/SafeAgent.ts +20 -0
- package/src/txs/agents/TxWriterAccountAgents.ts +27 -0
- package/src/txs/conditional/GasWatcherLogger.ts +57 -57
- package/src/txs/conditional/GasWatcherService.ts +116 -117
- package/src/txs/conditional/GasWatcherStore.ts +41 -40
- package/src/txs/conditional/GasWatcherTx.ts +142 -143
- package/src/txs/receipt/ITxLogItem.ts +31 -25
- package/src/txs/receipt/TxLogParser.ts +56 -29
- package/src/txs/receipt/TxLogsTransfer.ts +61 -61
- package/src/txs/receipt/TxTopicInMemoryProvider.ts +45 -45
- package/src/txs/receipt/TxTopicProvider.ts +29 -29
- package/src/txs/sig-transports/SigFileTransport.ts +49 -0
- package/src/types/TAbi.ts +32 -0
- package/src/utils/$abiParser.ts +245 -179
- package/src/utils/$abiType.ts +277 -85
- package/src/utils/$abiUtils.ts +332 -38
- package/src/utils/$account.ts +48 -0
- package/src/utils/$address.ts +71 -37
- package/src/utils/$array.ts +113 -57
- package/src/utils/$base.ts +67 -0
- package/src/utils/$bigfloat.ts +562 -0
- package/src/utils/$bigint.ts +238 -127
- package/src/utils/$block.ts +20 -7
- package/src/utils/$bloom.ts +43 -0
- package/src/utils/$buffer.ts +196 -0
- package/src/utils/$cache.ts +7 -0
- package/src/utils/$class.ts +8 -8
- package/src/utils/$cli.ts +42 -0
- package/src/utils/$color.ts +213 -0
- package/src/utils/$config.ts +80 -17
- package/src/utils/$const.ts +1 -0
- package/src/utils/$contract.ts +309 -67
- package/src/utils/$crypto.ts +223 -0
- package/src/utils/$csv.ts +70 -54
- package/src/utils/$date.ts +697 -473
- package/src/utils/$error.ts +16 -0
- package/src/utils/$fn.ts +134 -134
- package/src/utils/$gas.ts +26 -0
- package/src/utils/$hex.ts +133 -0
- package/src/utils/$http.ts +219 -0
- package/src/utils/$is.ts +73 -37
- package/src/utils/$logger.ts +216 -10
- package/src/utils/$machine.ts +85 -0
- package/src/utils/$number.ts +135 -89
- package/src/utils/$object.ts +95 -95
- package/src/utils/$path.ts +76 -32
- package/src/utils/$perf.ts +20 -0
- package/src/utils/$platform.ts +5 -0
- package/src/utils/$promise.ts +154 -7
- package/src/utils/$regexp.ts +16 -0
- package/src/utils/$require.ts +212 -118
- package/src/utils/$secret.ts +27 -0
- package/src/utils/$semver.ts +27 -0
- package/src/utils/$sig.ts +722 -0
- package/src/utils/$sign.ts +136 -36
- package/src/utils/$signRaw.ts +50 -0
- package/src/utils/$signRawNative.ts +105 -0
- package/src/utils/$signSerializer.ts +27 -21
- package/src/utils/$txData.ts +23 -0
- package/src/utils/$wallet.ts +3 -10
- package/src/utils/types.ts +58 -29
- package/src/wallets/Wallet.ts +33 -33
- package/src/wallets/WalletBsc.ts +13 -13
- package/src/wallets/WalletService.ts +43 -43
- package/test/Batch.spec.ts +89 -0
- package/test/BlockChainExplorer.spec.ts +24 -0
- package/test/ChainAccount.spec.ts +52 -9
- package/test/Fixtures.ts +36 -0
- package/test/Web3Client.spec.ts +81 -0
- package/test/browser/block.spec.ts +9 -0
- package/test/client/block.spec.ts +19 -0
- package/test/config.js +68 -0
- package/test/config.spec.ts +31 -0
- package/test/config.yml +4 -0
- package/test/contracts/ContractCreationResolver.spec.ts +26 -0
- package/test/ecrecover.spec.ts +63 -0
- package/test/erc2612/PermitToken.sol +10 -0
- package/test/erc4337/erc4337.spec.ts +407 -0
- package/test/fixtures/DaiTokenContract.ts +13 -13
- package/test/fixtures/abi/deployments.json +105 -0
- package/test/fixtures/abi/encode.json +23798 -0
- package/test/fixtures/abi/encodePacked.json +34586 -0
- package/test/fixtures/artifacts/AnyERC20/AnyERC20.json +340 -0
- package/test/fixtures/artifacts/AnyERC20/AnyERC20.sol +15 -0
- package/test/fixtures/contracts/AlphaKlimaSimple.sol +36 -0
- package/test/fixtures/contracts/Counter.sol +25 -0
- package/test/fixtures/contracts/Ecrecover.sol +33 -0
- package/test/fixtures/contracts/Foo.sol +49 -0
- package/test/fixtures/contracts/FooErc20.sol +7 -0
- package/test/fixtures/contracts/FooNestedModel.sol +6 -0
- package/test/fixtures/contracts/FreeToken.sol +263 -0
- package/test/fixtures/deployments/DeploymentsFoo.sol +14 -0
- package/test/fixtures/deployments/DeploymentsFooV2.sol +11 -0
- package/test/fixtures/deployments/DeploymentsFooV3.sol +12 -0
- package/test/fixtures/erc4337/core/BaseAccount.sol +107 -0
- package/test/fixtures/erc4337/core/BasePaymaster.sol +112 -0
- package/test/fixtures/erc4337/core/EntryPoint.sol +631 -0
- package/test/fixtures/erc4337/core/Helpers.sol +81 -0
- package/test/fixtures/erc4337/core/NonceManager.sol +40 -0
- package/test/fixtures/erc4337/core/SenderCreator.sol +28 -0
- package/test/fixtures/erc4337/core/StakeManager.sol +124 -0
- package/test/fixtures/erc4337/interfaces/IAccount.sol +34 -0
- package/test/fixtures/erc4337/interfaces/IAggregator.sol +36 -0
- package/test/fixtures/erc4337/interfaces/IEntryPoint.sol +205 -0
- package/test/fixtures/erc4337/interfaces/INonceManager.sol +27 -0
- package/test/fixtures/erc4337/interfaces/IPaymaster.sol +51 -0
- package/test/fixtures/erc4337/interfaces/IStakeManager.sol +104 -0
- package/test/fixtures/erc4337/interfaces/UserOperation.sol +91 -0
- package/test/fixtures/erc4337/samples/DepositPaymaster.sol +167 -0
- package/test/fixtures/erc4337/samples/IOracle.sol +11 -0
- package/test/fixtures/erc4337/samples/SimpleAccount.sol +138 -0
- package/test/fixtures/erc4337/samples/SimpleAccountFactory.sol +52 -0
- package/test/fixtures/erc4337/samples/TokenPaymaster.sol +113 -0
- package/test/fixtures/erc4337/samples/VerifyingPaymaster.sol +104 -0
- package/test/fixtures/erc4337/samples/bls/BLSAccount.sol +64 -0
- package/test/fixtures/erc4337/samples/bls/BLSAccountFactory.sol +61 -0
- package/test/fixtures/erc4337/samples/bls/BLSHelper.sol +232 -0
- package/test/fixtures/erc4337/samples/bls/BLSSignatureAggregator.sol +164 -0
- package/test/fixtures/erc4337/samples/bls/IBLSAccount.sol +16 -0
- package/test/fixtures/erc4337/samples/bls/lib/BLSOpen.sol +64 -0
- package/test/fixtures/erc4337/samples/bls/lib/hubble-contracts/contracts/libs/BLS.sol +440 -0
- package/test/fixtures/erc4337/samples/bls/lib/hubble-contracts/contracts/libs/BNPairingPrecompileCostEstimator.sol +108 -0
- package/test/fixtures/erc4337/samples/bls/lib/hubble-contracts/contracts/libs/ModExp.sol +652 -0
- package/test/fixtures/erc4337/samples/callback/TokenCallbackHandler.sol +61 -0
- package/test/fixtures/erc4337/utils/Exec.sol +70 -0
- package/test/fixtures/explorer/0xfbD2aa7efA2B46Ce3c58D7ab0D92C176c71499C0.html +2788 -0
- package/test/fixtures/gnosis/GnosisSafe.sol +422 -0
- package/test/fixtures/gnosis/GnosisSafeL2.sol +86 -0
- package/test/fixtures/gnosis/accessors/SimulateTxAccessor.sol +52 -0
- package/test/fixtures/gnosis/base/Executor.sol +27 -0
- package/test/fixtures/gnosis/base/FallbackManager.sol +53 -0
- package/test/fixtures/gnosis/base/GuardManager.sol +62 -0
- package/test/fixtures/gnosis/base/ModuleManager.sol +133 -0
- package/test/fixtures/gnosis/base/OwnerManager.sol +149 -0
- package/test/fixtures/gnosis/common/Enum.sol +8 -0
- package/test/fixtures/gnosis/common/EtherPaymentFallback.sol +13 -0
- package/test/fixtures/gnosis/common/SecuredTokenTransfer.sol +35 -0
- package/test/fixtures/gnosis/common/SelfAuthorized.sol +16 -0
- package/test/fixtures/gnosis/common/SignatureDecoder.sol +36 -0
- package/test/fixtures/gnosis/common/Singleton.sol +11 -0
- package/test/fixtures/gnosis/common/StorageAccessible.sol +47 -0
- package/test/fixtures/gnosis/external/GnosisSafeMath.sol +54 -0
- package/test/fixtures/gnosis/interfaces/ERC1155TokenReceiver.sol +49 -0
- package/test/fixtures/gnosis/interfaces/ERC721TokenReceiver.sol +24 -0
- package/test/fixtures/gnosis/interfaces/ERC777TokensRecipient.sol +13 -0
- package/test/fixtures/gnosis/interfaces/IERC165.sol +15 -0
- package/test/fixtures/gnosis/interfaces/ISignatureValidator.sol +20 -0
- package/test/fixtures/gnosis/interfaces/ViewStorageAccessible.sol +11 -0
- package/test/fixtures/gnosis/libraries/CreateCall.sol +30 -0
- package/test/fixtures/gnosis/libraries/GnosisSafeStorage.sol +21 -0
- package/test/fixtures/gnosis/libraries/MultiSend.sol +66 -0
- package/test/fixtures/gnosis/libraries/MultiSendCallOnly.sol +61 -0
- package/test/fixtures/gnosis/libraries/SignMessageLib.sol +34 -0
- package/test/fixtures/gnosis/proxies/GnosisSafeProxy.sol +44 -0
- package/test/fixtures/gnosis/proxies/GnosisSafeProxyFactory.sol +107 -0
- package/test/fixtures/gnosis/proxies/IProxyCreationCallback.sol +12 -0
- package/test/fixtures/mapping-setters/GTC.sol +611 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/Address.sol +189 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/FullMath.sol +124 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IERC165.sol +24 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IERC20.sol +77 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IERC20Minimal.sol +52 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IERC721.sol +129 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IERC721Enumerable.sol +29 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IERC721Metadata.sol +27 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IERC721Permit.sol +32 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IERC721Receiver.sol +21 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IMulticall.sol +13 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/INonfungiblePositionManager.sol +180 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IPeripheryImmutableState.sol +12 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IPeripheryPayments.sol +28 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IPoolInitializer.sol +22 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IUniswapV3Factory.sol +78 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IUniswapV3Pool.sol +24 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IUniswapV3PoolActions.sol +103 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IUniswapV3PoolDerivedState.sol +40 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IUniswapV3PoolEvents.sol +121 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IUniswapV3PoolImmutables.sol +35 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IUniswapV3PoolOwnerActions.sol +23 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IUniswapV3PoolState.sol +116 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IUniswapV3Staker.sol +183 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/IncentiveId.sol +14 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/Math.sol +31 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/Multicall.sol +28 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/NFTPositionInfo.sol +47 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/PoolAddress.sol +48 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/RewardMath.sol +42 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/TransferHelper.sol +60 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/TransferHelperExtended.sol +39 -0
- package/test/fixtures/mapping-setters/UniswapV3Staker/UniswapV3Staker.sol +350 -0
- package/test/fixtures/openzeppelin/Proxy.sol +11 -0
- package/test/fixtures/openzeppelin/ProxyAdmin.sol +11 -0
- package/test/fixtures/openzeppelin/beacon/BeaconProxy.sol +11 -0
- package/test/fixtures/openzeppelin/beacon/UpgradeableBeacon.sol +11 -0
- package/test/fixtures/parser/AlphaKlima.sol +36 -0
- package/test/fixtures/parser/CToken/CErc20.sol +228 -0
- package/test/fixtures/parser/CToken/CErc20Delegate.sol +44 -0
- package/test/fixtures/parser/CToken/CErc20Delegator.sol +476 -0
- package/test/fixtures/parser/CToken/CToken.sol +1156 -0
- package/test/fixtures/parser/CToken/CTokenInterfaces.sol +293 -0
- package/test/fixtures/parser/CToken/ComptrollerInterface.sol +72 -0
- package/test/fixtures/parser/CToken/EIP20Interface.sol +63 -0
- package/test/fixtures/parser/CToken/EIP20NonStandardInterface.sol +71 -0
- package/test/fixtures/parser/CToken/ErrorReporter.sol +127 -0
- package/test/fixtures/parser/CToken/ExponentialNoError.sol +171 -0
- package/test/fixtures/parser/CToken/InterestRateModel.sol +30 -0
- package/test/fixtures/parser/DAI.sol +194 -0
- package/test/fixtures/parser/PriceOracle.sol +1964 -0
- package/test/fixtures/parser/SAFE/Context.sol +24 -0
- package/test/fixtures/parser/SAFE/ERC20.sol +383 -0
- package/test/fixtures/parser/SAFE/IERC20.sol +82 -0
- package/test/fixtures/parser/SAFE/IERC20Metadata.sol +28 -0
- package/test/fixtures/parser/SAFE/Ownable.sol +76 -0
- package/test/fixtures/parser/SAFE/Pausable.sol +91 -0
- package/test/fixtures/parser/SAFE/SafeToken.sol +48 -0
- package/test/fixtures/parser/SAFE/TokenRescuer.sol +29 -0
- package/test/fixtures/parser/SomeERC20/Context.sol +24 -0
- package/test/fixtures/parser/SomeERC20/ERC20.sol +389 -0
- package/test/fixtures/parser/SomeERC20/IERC20.sol +82 -0
- package/test/fixtures/parser/SomeERC20/IERC20Metadata.sol +28 -0
- package/test/fixtures/parser/SomeERC20/Ownable.sol +83 -0
- package/test/fixtures/parser/SomeERC20/SomeToken.sol +210 -0
- package/test/fixtures/parser/TetherToken.sol +447 -0
- package/test/fixtures/parser/USDC.sol +2231 -0
- package/test/fixtures/parser/v04/ENJToken.sol +493 -0
- package/test/fixtures/parser/v04/MultiSigWallet.sol +371 -0
- package/test/fixtures/receipts/swap.json +93 -93
- package/test/fixtures/scan/WETH.sol +1533 -0
- package/test/fixtures/slots/FooStorage.sol +8 -0
- package/test/fixtures/slots/FooStorageBase.sol +6 -0
- package/test/fixtures/slots/Vault.sol +85 -0
- package/test/flashbots/flashbots.spec.ts +79 -0
- package/test/generate/class.spec.ts +293 -5
- package/test/generate/evm.spec.ts +71 -0
- package/test/generate/gen.spec.ts +69 -0
- package/test/generate/openzeppelin.spec.ts +22 -0
- package/test/generate/slotreader.spec.ts +34 -0
- package/test/hardhat/TestNode.ts +76 -61
- package/test/hardhat/compile.spec.ts +22 -0
- package/test/hardhat/deploy.spec.ts +579 -0
- package/test/hardhat/deployments/deployments.spec.ts +233 -0
- package/test/hardhat/deployments/proxy-layout.spec.ts +296 -0
- package/test/hardhat/forked.spec.ts +56 -0
- package/test/hardhat/gas.spec.ts +40 -0
- package/test/hardhat/permit.ts +33 -0
- package/test/hardhat/revert.spec.ts +30 -0
- package/test/indexer/BlocksWalker.spec.ts +51 -0
- package/test/indexer/EventsIndexer.spec.ts +170 -0
- package/test/json/JsonStore.spec.ts +170 -0
- package/test/node/block.spec.ts +11 -0
- package/test/ns.spec.ts +67 -30
- package/test/perf/calldata.spec.ts +93 -0
- package/test/receipt.spec.ts +52 -27
- package/test/rpc/rpc.spec.ts +353 -0
- package/test/rpc/rpcUtil.spec.ts +31 -0
- package/test/safe/safe.spec.ts +352 -0
- package/test/services/timelock.spec.ts +97 -0
- package/test/solidity/AbiExtractor.spec.ts +468 -0
- package/test/solidity/MappingSettersResolver.spec.ts +516 -0
- package/test/solidity/SlotsDump.spec.ts +154 -0
- package/test/solidity/SlotsParser.spec.ts +536 -0
- package/test/solidity/SlotsReader.spec.ts +388 -0
- package/test/solidity/Storage.spec.ts +404 -0
- package/test/structs/PackedRanges.spec.ts +56 -0
- package/test/subscriptions.spec.ts +127 -0
- package/test/token.spec.ts +17 -0
- package/test/tokens/oracles.spec.ts +51 -0
- package/test/utils/abi-parser-args.spec.ts +143 -0
- package/test/utils/abi-parser.spec.ts +141 -117
- package/test/utils/abi-types.spec.ts +31 -0
- package/test/utils/abi-utils.spec.ts +23 -0
- package/test/utils/abi.spec.ts +178 -0
- package/test/utils/address.spec.ts +66 -0
- package/test/utils/bigfloat/div.spec.ts +1919 -0
- package/test/utils/bigfloat/mod.spec.ts +1745 -0
- package/test/utils/bigfloat/mul.spec.ts +2085 -0
- package/test/utils/bigfloat/round.spec.ts +174 -0
- package/test/utils/bigfloat/sqrt.spec.ts +420 -0
- package/test/utils/bigint.spec.ts +39 -40
- package/test/utils/bytecode.spec.ts +107 -0
- package/test/utils/crypto.spec.ts +37 -0
- package/test/utils/date.spec.ts +9 -8
- package/test/utils/fn.spec.ts +39 -39
- package/test/utils/logbloom.spec.ts +17 -0
- package/test/utils/number.spec.ts +52 -41
- package/test/utils/rlp.spec.ts +142 -0
- package/test/utils/sign.spec.ts +327 -22
- package/tools/build-dts.ts +111 -0
- package/tools/copy-dts.ts +48 -0
- package/tsconfig-build.json +24 -24
- package/tsconfig-src.json +44 -36
- package/tsconfig.esm.json +12 -0
- package/tsconfig.json +34 -27
- package/tsconfig.umd.json +28 -0
- package/typings/globals/axios/index.d.ts +6 -6
- package/typings.json +6 -6
- package/contracts/abi/erc20.abi.json +0 -222
- package/contracts/gen/amm/AmmFactoryV2ContractBase.ts +0 -66
- package/contracts/gen/amm/AmmMasterChefV2ContractBase.ts +0 -158
- package/contracts/gen/amm/AmmPairContractV2Base.ts +0 -158
- package/contracts/gen/amm/AmmPairContractV3Base.ts +0 -125
- package/contracts/gen/amm/AmmRouterV2ContractBase.ts +0 -124
- package/contracts/gen/amm/AmmVaultV2ContractBase.ts +0 -214
- package/contracts/gen/base/ERC20Base.ts +0 -90
- package/contracts/gen/bsc/OneInchRouterV3Base.ts +0 -57
- package/contracts/gen/eth/WETHBase/WETHBase.sol +0 -756
- package/contracts/gen/eth/WETHBase.ts +0 -136
- package/contracts/gen/polygon/ERC20PolygonBase.ts +0 -305
- package/contracts/gen/polygon/WormholeBridgeContractBase/Address.sol +0 -216
- package/contracts/gen/polygon/WormholeBridgeContractBase/BeaconProxy.sol +0 -61
- package/contracts/gen/polygon/WormholeBridgeContractBase/Bridge.sol +0 -437
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeGetters.sol +0 -70
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeGovernance.sol +0 -142
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeImplementation.sol +0 -34
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeSetters.sol +0 -57
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeState.sol +0 -52
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeStructs.sol +0 -66
- package/contracts/gen/polygon/WormholeBridgeContractBase/BytesLib.sol +0 -510
- package/contracts/gen/polygon/WormholeBridgeContractBase/Context.sol +0 -23
- package/contracts/gen/polygon/WormholeBridgeContractBase/ERC1967Proxy.sol +0 -32
- package/contracts/gen/polygon/WormholeBridgeContractBase/ERC1967Upgrade.sol +0 -193
- package/contracts/gen/polygon/WormholeBridgeContractBase/IBeacon.sol +0 -15
- package/contracts/gen/polygon/WormholeBridgeContractBase/IERC20.sol +0 -81
- package/contracts/gen/polygon/WormholeBridgeContractBase/IWormhole.sol +0 -42
- package/contracts/gen/polygon/WormholeBridgeContractBase/Ownable.sol +0 -71
- package/contracts/gen/polygon/WormholeBridgeContractBase/Proxy.sol +0 -85
- package/contracts/gen/polygon/WormholeBridgeContractBase/SafeERC20.sol +0 -98
- package/contracts/gen/polygon/WormholeBridgeContractBase/StorageSlot.sol +0 -83
- package/contracts/gen/polygon/WormholeBridgeContractBase/Structs.sol +0 -40
- package/contracts/gen/polygon/WormholeBridgeContractBase/Token.sol +0 -12
- package/contracts/gen/polygon/WormholeBridgeContractBase/TokenBridge.sol +0 -15
- package/contracts/gen/polygon/WormholeBridgeContractBase/TokenImplementation.sol +0 -177
- package/contracts/gen/polygon/WormholeBridgeContractBase/TokenState.sol +0 -31
- package/contracts/gen/polygon/WormholeBridgeContractBase.ts +0 -231
- package/contracts/gen/xdai/WXDaiTokenContractBase.ts +0 -136
- package/dist/contracts/gen/amm/AmmFactoryV2ContractBase.js +0 -53
- package/dist/contracts/gen/amm/AmmMasterChefV2ContractBase.js +0 -122
- package/dist/contracts/gen/amm/AmmPairContractV2Base.js +0 -122
- package/dist/contracts/gen/amm/AmmPairContractV3Base.js +0 -98
- package/dist/contracts/gen/amm/AmmRouterV2ContractBase.js +0 -95
- package/dist/contracts/gen/amm/AmmVaultV2ContractBase.js +0 -164
- package/dist/contracts/gen/base/ERC20Base.js +0 -64
- package/dist/contracts/gen/bsc/OneInchRouterV3Base.js +0 -47
- package/dist/contracts/gen/eth/WETHBase.js +0 -96
- package/dist/contracts/gen/polygon/ERC20PolygonBase.js +0 -233
- package/dist/contracts/gen/polygon/WormholeBridgeContractBase.js +0 -172
- package/dist/contracts/gen/xdai/WXDaiTokenContractBase.js +0 -96
- package/dist/src/BlockchainExplorer/BlockChainExplorerFactory.js +0 -227
- package/dist/src/BlockchainExplorer/BlockChainExplorerProvider.js +0 -32
- package/dist/src/BlockchainExplorer/BlockNumberCache.js +0 -33
- package/dist/src/BlockchainExplorer/Bscscan.js +0 -27
- package/dist/src/BlockchainExplorer/Etherscan.js +0 -27
- package/dist/src/BlockchainExplorer/IAbiProvider.js +0 -2
- package/dist/src/BlockchainExplorer/IBlockChainExplorer.js +0 -2
- package/dist/src/BlockchainExplorer/Polyscan.js +0 -27
- package/dist/src/ChainAccounts.js +0 -69
- package/dist/src/ChainAccountsService.js +0 -75
- package/dist/src/Config.js +0 -7
- package/dist/src/blocks/BlockDateResolver.js +0 -125
- package/dist/src/bridges/BridgeFactory.js +0 -19
- package/dist/src/bridges/hop/HopAddresses.js +0 -520
- package/dist/src/bridges/hop/HopBridge.js +0 -327
- package/dist/src/bridges/hop/contracts/gen.act.js +0 -43
- package/dist/src/bridges/hop/contracts/polygon/Dai_l2AmmWrapperContract.js +0 -52
- package/dist/src/bridges/hop/contracts/polygon/Dai_l2BridgeContract.js +0 -319
- package/dist/src/bridges/hop/contracts/polygon/Dai_l2SaddleSwapContract.js +0 -178
- package/dist/src/bridges/hop/contracts/polygon/Eth_l2AmmWrapperContract.js +0 -52
- package/dist/src/bridges/hop/contracts/polygon/Eth_l2BridgeContract.js +0 -319
- package/dist/src/bridges/hop/contracts/polygon/Eth_l2SaddleSwapContract.js +0 -178
- package/dist/src/bridges/hop/contracts/polygon/Matic_l2AmmWrapperContract.js +0 -52
- package/dist/src/bridges/hop/contracts/polygon/Matic_l2BridgeContract.js +0 -319
- package/dist/src/bridges/hop/contracts/polygon/Matic_l2SaddleSwapContract.js +0 -178
- package/dist/src/bridges/hop/contracts/polygon/Usdc_l2AmmWrapperContract.js +0 -52
- package/dist/src/bridges/hop/contracts/polygon/Usdc_l2BridgeContract.js +0 -319
- package/dist/src/bridges/hop/contracts/polygon/Usdc_l2SaddleSwapContract.js +0 -178
- package/dist/src/bridges/hop/contracts/polygon/Usdt_l2AmmWrapperContract.js +0 -52
- package/dist/src/bridges/hop/contracts/polygon/Usdt_l2BridgeContract.js +0 -319
- package/dist/src/bridges/hop/contracts/polygon/Usdt_l2SaddleSwapContract.js +0 -178
- package/dist/src/bridges/hop/contracts/polygon/Wbtc_l2AmmWrapperContract.js +0 -52
- package/dist/src/bridges/hop/contracts/polygon/Wbtc_l2BridgeContract.js +0 -319
- package/dist/src/bridges/hop/contracts/polygon/Wbtc_l2SaddleSwapContract.js +0 -178
- package/dist/src/bridges/models/IBridge.js +0 -2
- package/dist/src/bridges/wormhole/contracts/WormholeBridgeContract.js +0 -15
- package/dist/src/chains/PlatformFactory.js +0 -42
- package/dist/src/chains/arbitrum/ArbTokenProvider.js +0 -40
- package/dist/src/chains/arbitrum/ArbWeb3Client.js +0 -39
- package/dist/src/chains/arbitrum/Arbiscan.js +0 -27
- package/dist/src/chains/boba/BobaWeb3Client.js +0 -47
- package/dist/src/chains/boba/Bobascan.js +0 -28
- package/dist/src/chains/xdai/XDaiWeb3Client.js +0 -87
- package/dist/src/chains/xdai/XDaiscan.js +0 -27
- package/dist/src/chains/xdai/tokens/WXDaiTokenContract.js +0 -15
- package/dist/src/clients/BscWeb3Client.js +0 -38
- package/dist/src/clients/ClientEventsStream.js +0 -34
- package/dist/src/clients/ClientPool.js +0 -560
- package/dist/src/clients/ClientPoolStats.js +0 -52
- package/dist/src/clients/EthWeb3Client.js +0 -35
- package/dist/src/clients/HardhatWeb3Client.js +0 -56
- package/dist/src/clients/PolyWeb3Client.js +0 -77
- package/dist/src/clients/Web3Client.js +0 -186
- package/dist/src/clients/Web3ClientFactory.js +0 -32
- package/dist/src/clients/interfaces/IWeb3Client.js +0 -2
- package/dist/src/clients/interfaces/IWeb3ClientStatus.js +0 -2
- package/dist/src/clients/interfaces/IWeb3EndpointOptions.js +0 -2
- package/dist/src/clients/model/ClientStatus.js +0 -9
- package/dist/src/clients/model/PromiEventWrap.js +0 -52
- package/dist/src/clients/model/SubscriptionWrap.js +0 -42
- package/dist/src/clients/utils/ClientEndpoints.js +0 -27
- package/dist/src/clients/utils/ClientErrorUtil.js +0 -30
- package/dist/src/clients/utils/TxFactory.js +0 -14
- package/dist/src/contracts/BscContract.js +0 -30
- package/dist/src/contracts/Contract.js +0 -90
- package/dist/src/contracts/ContractBase.js +0 -139
- package/dist/src/contracts/ContractFactory.js +0 -17
- package/dist/src/contracts/ContractProvider.js +0 -40
- package/dist/src/contracts/ContractReader.js +0 -76
- package/dist/src/contracts/ContractStream.js +0 -20
- package/dist/src/contracts/ContractWriter.js +0 -62
- package/dist/src/contracts/EthContract.js +0 -31
- package/dist/src/contracts/TxContract.js +0 -37
- package/dist/src/contracts/common/ERC20.js +0 -14
- package/dist/src/contracts/common/ERC20Polygon.js +0 -14
- package/dist/src/contracts/common/PoolPair.js +0 -23
- package/dist/src/contracts/utils/AbiDeserializer.js +0 -89
- package/dist/src/contracts/utils/ConvertUtils.js +0 -21
- package/dist/src/contracts/utils/InputDataUtils.js +0 -87
- package/dist/src/contracts/utils/TypeUtils.js +0 -24
- package/dist/src/defi/OneInch/OneInchRouter.js +0 -14
- package/dist/src/env/BigIntSerializer.js +0 -19
- package/dist/src/gen/Ast.js +0 -12
- package/dist/src/gen/ContractTemplate.js +0 -27
- package/dist/src/gen/Generator.js +0 -180
- package/dist/src/gen/GeneratorFromAbi.js +0 -361
- package/dist/src/handlers/TokenHandler.js +0 -69
- package/dist/src/indexer/BlocksTxIndexer.js +0 -52
- package/dist/src/indexer/PendingTxIndexer.js +0 -96
- package/dist/src/indexer/handlers/BlocksWalker.js +0 -306
- package/dist/src/indexer/handlers/TxQueueLoader.js +0 -117
- package/dist/src/json/JsonArrayStore.js +0 -296
- package/dist/src/json/JsonObjectStore.js +0 -214
- package/dist/src/json/JsonStore.spec.js +0 -83
- package/dist/src/loggers/ILogger.js +0 -2
- package/dist/src/loggers/LoggerService.js +0 -34
- package/dist/src/loggers/TxLoggerService.js +0 -122
- package/dist/src/models/IContractDetails.js +0 -2
- package/dist/src/models/IToken.js +0 -2
- package/dist/src/models/ITokenGlob.js +0 -6
- package/dist/src/models/ITransactionDetails.js +0 -2
- package/dist/src/models/TAddress.js +0 -2
- package/dist/src/models/TBufferLike.js +0 -2
- package/dist/src/models/THex.js +0 -2
- package/dist/src/models/TPlatform.js +0 -2
- package/dist/src/models/TResult.js +0 -2
- package/dist/src/ns/NameService.js +0 -19
- package/dist/src/ns/providers/EnsProvider.js +0 -41
- package/dist/src/ns/providers/INsProvider.js +0 -2
- package/dist/src/ns/providers/UDProvider.js +0 -39
- package/dist/src/ns/utils/$ns.js +0 -17
- package/dist/src/structs/PackedRanges.js +0 -186
- package/dist/src/structs/PackedRanges.spec.js +0 -30
- package/dist/src/tokens/TokenExchangeService.js +0 -110
- package/dist/src/tokens/TokenExchanges/AmmBase/AmmUtilts.js +0 -17
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmFactoryV2Contract.js +0 -15
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmMasterChefV2Contract.js +0 -15
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmPairV2Contract.js +0 -16
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmPairV2Service.js +0 -144
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmRouterV2Contract.js +0 -15
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmVaultV2Contract.js +0 -15
- package/dist/src/tokens/TokenExchanges/AmmBase/V3/AmmPairV3Contract.js +0 -22
- package/dist/src/tokens/TokenExchanges/AmmV2ExchangeBase.js +0 -194
- package/dist/src/tokens/TokenExchanges/OneInchExchange.js +0 -92
- package/dist/src/tokens/TokenExchanges/PancakeswapExchange.js +0 -28
- package/dist/src/tokens/TokenExchanges/SushiswapPolygonExchange.js +0 -28
- package/dist/src/tokens/TokenExchanges/UniswapExchange.js +0 -28
- package/dist/src/tokens/TokenOracles/AmmPriceV2Oracle.js +0 -319
- package/dist/src/tokens/TokenOracles/TokenPriceStore.js +0 -108
- package/dist/src/tokens/TokenPriceService.js +0 -196
- package/dist/src/tokens/TokenPriceServiceProvider.js +0 -31
- package/dist/src/tokens/TokenProviders/ATokenProvider.js +0 -38
- package/dist/src/tokens/TokenProviders/ITokenProvider.js +0 -2
- package/dist/src/tokens/TokenProviders/TPChain.js +0 -35
- package/dist/src/tokens/TokenProviders/TPCoinmarketcap.js +0 -63
- package/dist/src/tokens/TokenProviders/TPOneInch.js +0 -65
- package/dist/src/tokens/TokenProviders/TPSushiswap.js +0 -89
- package/dist/src/tokens/TokenProviders/TPUniswap.js +0 -84
- package/dist/src/tokens/TokenService.js +0 -115
- package/dist/src/tokens/TokenSwapService.js +0 -37
- package/dist/src/tokens/TokenTransferService.js +0 -189
- package/dist/src/tokens/TokensService.js +0 -236
- package/dist/src/tokens/TokensServiceBsc.js +0 -18
- package/dist/src/tokens/TokensServiceEth.js +0 -15
- package/dist/src/tokens/TokensServiceFactory.js +0 -29
- package/dist/src/tokens/TokensServicePolygon.js +0 -18
- package/dist/src/tokens/TokensServiceXDai.js +0 -24
- package/dist/src/tokens/defi/ISwapService.js +0 -2
- package/dist/src/tokens/defi/paraswap/Paraswap.js +0 -135
- package/dist/src/tokens/erc20/eth/WETH.js +0 -14
- package/dist/src/tokens/utils/TokenUtils.js +0 -66
- package/dist/src/txs/ITxConfig.js +0 -2
- package/dist/src/txs/TxDataBuilder.js +0 -159
- package/dist/src/txs/TxLogger.js +0 -119
- package/dist/src/txs/TxProvider.js +0 -73
- package/dist/src/txs/TxService.js +0 -19
- package/dist/src/txs/TxWriter.js +0 -287
- package/dist/src/txs/conditional/GasWatcherLogger.js +0 -61
- package/dist/src/txs/conditional/GasWatcherService.js +0 -103
- package/dist/src/txs/conditional/GasWatcherStore.js +0 -25
- package/dist/src/txs/conditional/GasWatcherTx.js +0 -126
- package/dist/src/txs/receipt/ITxLogItem.js +0 -2
- package/dist/src/txs/receipt/TxLogParser.js +0 -27
- package/dist/src/txs/receipt/TxLogsTransfer.js +0 -50
- package/dist/src/txs/receipt/TxTopicInMemoryProvider.js +0 -41
- package/dist/src/txs/receipt/TxTopicProvider.js +0 -25
- package/dist/src/utils/$abiParser.js +0 -159
- package/dist/src/utils/$abiType.js +0 -77
- package/dist/src/utils/$abiUtils.js +0 -43
- package/dist/src/utils/$address.js +0 -41
- package/dist/src/utils/$array.js +0 -60
- package/dist/src/utils/$bigint.js +0 -130
- package/dist/src/utils/$block.js +0 -10
- package/dist/src/utils/$class.js +0 -13
- package/dist/src/utils/$config.js +0 -18
- package/dist/src/utils/$contract.js +0 -67
- package/dist/src/utils/$csv.js +0 -79
- package/dist/src/utils/$date.js +0 -496
- package/dist/src/utils/$fn.js +0 -117
- package/dist/src/utils/$is.js +0 -40
- package/dist/src/utils/$logger.js +0 -15
- package/dist/src/utils/$number.js +0 -95
- package/dist/src/utils/$object.js +0 -82
- package/dist/src/utils/$path.js +0 -33
- package/dist/src/utils/$promise.js +0 -13
- package/dist/src/utils/$require.js +0 -127
- package/dist/src/utils/$sign.js +0 -35
- package/dist/src/utils/$signSerializer.js +0 -264
- package/dist/src/utils/$wallet.js +0 -13
- package/dist/src/utils/types.js +0 -2
- package/dist/src/wallets/Wallet.js +0 -26
- package/dist/src/wallets/WalletBsc.js +0 -17
- package/dist/src/wallets/WalletService.js +0 -35
- package/dist/src/www/utils/BlockChainExplorerFormatter.js +0 -15
- package/src/BlockchainExplorer/BlockChainExplorerFactory.ts +0 -273
- package/src/BlockchainExplorer/BlockChainExplorerProvider.ts +0 -26
- package/src/BlockchainExplorer/BlockNumberCache.ts +0 -46
- package/src/BlockchainExplorer/Bscscan.ts +0 -23
- package/src/BlockchainExplorer/Etherscan.ts +0 -25
- package/src/BlockchainExplorer/IAbiProvider.ts +0 -5
- package/src/BlockchainExplorer/IBlockChainExplorer.ts +0 -37
- package/src/BlockchainExplorer/Polyscan.ts +0 -23
- package/src/ChainAccounts.ts +0 -72
- package/src/ChainAccountsService.ts +0 -74
- package/src/Config.ts +0 -34
- package/src/bridges/hop/contracts/polygon/Dai_l2AmmWrapperContract.ts +0 -69
- package/src/bridges/hop/contracts/polygon/Dai_l2BridgeContract.ts +0 -453
- package/src/bridges/hop/contracts/polygon/Dai_l2SaddleSwapContract.ts +0 -264
- package/src/bridges/hop/contracts/polygon/Eth_l2AmmWrapperContract.ts +0 -69
- package/src/bridges/hop/contracts/polygon/Eth_l2BridgeContract.ts +0 -453
- package/src/bridges/hop/contracts/polygon/Eth_l2SaddleSwapContract.ts +0 -264
- package/src/bridges/hop/contracts/polygon/Matic_l2AmmWrapperContract.ts +0 -69
- package/src/bridges/hop/contracts/polygon/Matic_l2BridgeContract.ts +0 -453
- package/src/bridges/hop/contracts/polygon/Matic_l2SaddleSwapContract.ts +0 -264
- package/src/bridges/hop/contracts/polygon/Usdc_l2AmmWrapperContract.ts +0 -69
- package/src/bridges/hop/contracts/polygon/Usdc_l2BridgeContract.ts +0 -453
- package/src/bridges/hop/contracts/polygon/Usdc_l2SaddleSwapContract.ts +0 -264
- package/src/bridges/hop/contracts/polygon/Usdt_l2AmmWrapperContract.ts +0 -69
- package/src/bridges/hop/contracts/polygon/Usdt_l2BridgeContract.ts +0 -453
- package/src/bridges/hop/contracts/polygon/Usdt_l2SaddleSwapContract.ts +0 -264
- package/src/bridges/hop/contracts/polygon/Wbtc_l2AmmWrapperContract.ts +0 -69
- package/src/bridges/hop/contracts/polygon/Wbtc_l2BridgeContract.ts +0 -453
- package/src/bridges/hop/contracts/polygon/Wbtc_l2SaddleSwapContract.ts +0 -264
- package/src/bridges/wormhole/contracts/WormholeBridgeContract.ts +0 -14
- package/src/chains/xdai/tokens/WXDaiTokenContract.json +0 -279
- package/src/chains/xdai/tokens/WXDaiTokenContract.ts +0 -14
- package/src/clients/HardhatWeb3Client.ts +0 -60
- package/src/contracts/ContractFactory.ts +0 -19
- package/src/contracts/common/ERC20.ts +0 -13
- package/src/contracts/common/ERC20Polygon.ts +0 -13
- package/src/contracts/common/PoolPair.ts +0 -22
- package/src/defi/OneInch/OneInchRouter.ts +0 -13
- package/src/json/JsonStore.spec.ts +0 -98
- package/src/structs/PackedRanges.spec.ts +0 -38
- package/src/structs/PackedRanges.ts +0 -207
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmFactoryV2Contract.ts +0 -15
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmMasterChefV2Contract.ts +0 -15
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmPairV2Contract.ts +0 -17
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmRouterV2Contract.ts +0 -15
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmVaultV2Contract.ts +0 -15
- package/src/tokens/TokenExchanges/AmmBase/V3/AmmPairV3Contract.ts +0 -24
- package/src/tokens/TokenExchanges/UniswapExchange.ts +0 -31
- package/src/tokens/TokenOracles/AmmPriceV2Oracle.ts +0 -440
- package/src/tokens/erc20/eth/WETH.ts +0 -13
- package/src/txs/ITxConfig.ts +0 -27
- package/src/www/utils/BlockChainExplorerFormatter.ts +0 -13
- package/test/client.spec.ts +0 -59
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
2
|
+
pragma solidity =0.7.6;
|
|
3
|
+
|
|
4
|
+
import '@uniswap/v3-core/contracts/libraries/FullMath.sol';
|
|
5
|
+
import '@openzeppelin/contracts/math/Math.sol';
|
|
6
|
+
|
|
7
|
+
/// @title Math for computing rewards
|
|
8
|
+
/// @notice Allows computing rewards given some parameters of stakes and incentives
|
|
9
|
+
library RewardMath {
|
|
10
|
+
/// @notice Compute the amount of rewards owed given parameters of the incentive and stake
|
|
11
|
+
/// @param totalRewardUnclaimed The total amount of unclaimed rewards left for an incentive
|
|
12
|
+
/// @param totalSecondsClaimedX128 How many full liquidity-seconds have been already claimed for the incentive
|
|
13
|
+
/// @param startTime When the incentive rewards began in epoch seconds
|
|
14
|
+
/// @param endTime When rewards are no longer being dripped out in epoch seconds
|
|
15
|
+
/// @param liquidity The amount of liquidity, assumed to be constant over the period over which the snapshots are measured
|
|
16
|
+
/// @param secondsPerLiquidityInsideInitialX128 The seconds per liquidity of the liquidity tick range as of the beginning of the period
|
|
17
|
+
/// @param secondsPerLiquidityInsideX128 The seconds per liquidity of the liquidity tick range as of the current block timestamp
|
|
18
|
+
/// @param currentTime The current block timestamp, which must be greater than or equal to the start time
|
|
19
|
+
/// @return reward The amount of rewards owed
|
|
20
|
+
/// @return secondsInsideX128 The total liquidity seconds inside the position's range for the duration of the stake
|
|
21
|
+
function computeRewardAmount(
|
|
22
|
+
uint256 totalRewardUnclaimed,
|
|
23
|
+
uint160 totalSecondsClaimedX128,
|
|
24
|
+
uint256 startTime,
|
|
25
|
+
uint256 endTime,
|
|
26
|
+
uint128 liquidity,
|
|
27
|
+
uint160 secondsPerLiquidityInsideInitialX128,
|
|
28
|
+
uint160 secondsPerLiquidityInsideX128,
|
|
29
|
+
uint256 currentTime
|
|
30
|
+
) internal pure returns (uint256 reward, uint160 secondsInsideX128) {
|
|
31
|
+
// this should never be called before the start time
|
|
32
|
+
assert(currentTime >= startTime);
|
|
33
|
+
|
|
34
|
+
// this operation is safe, as the difference cannot be greater than 1/stake.liquidity
|
|
35
|
+
secondsInsideX128 = (secondsPerLiquidityInsideX128 - secondsPerLiquidityInsideInitialX128) * liquidity;
|
|
36
|
+
|
|
37
|
+
uint256 totalSecondsUnclaimedX128 =
|
|
38
|
+
((Math.max(endTime, currentTime) - startTime) << 128) - totalSecondsClaimedX128;
|
|
39
|
+
|
|
40
|
+
reward = FullMath.mulDiv(totalRewardUnclaimed, secondsInsideX128, totalSecondsUnclaimedX128);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
2
|
+
pragma solidity >=0.6.0;
|
|
3
|
+
|
|
4
|
+
import '@openzeppelin/contracts/token/ERC20/IERC20.sol';
|
|
5
|
+
|
|
6
|
+
library TransferHelper {
|
|
7
|
+
/// @notice Transfers tokens from the targeted address to the given destination
|
|
8
|
+
/// @notice Errors with 'STF' if transfer fails
|
|
9
|
+
/// @param token The contract address of the token to be transferred
|
|
10
|
+
/// @param from The originating address from which the tokens will be transferred
|
|
11
|
+
/// @param to The destination address of the transfer
|
|
12
|
+
/// @param value The amount to be transferred
|
|
13
|
+
function safeTransferFrom(
|
|
14
|
+
address token,
|
|
15
|
+
address from,
|
|
16
|
+
address to,
|
|
17
|
+
uint256 value
|
|
18
|
+
) internal {
|
|
19
|
+
(bool success, bytes memory data) =
|
|
20
|
+
token.call(abi.encodeWithSelector(IERC20.transferFrom.selector, from, to, value));
|
|
21
|
+
require(success && (data.length == 0 || abi.decode(data, (bool))), 'STF');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/// @notice Transfers tokens from msg.sender to a recipient
|
|
25
|
+
/// @dev Errors with ST if transfer fails
|
|
26
|
+
/// @param token The contract address of the token which will be transferred
|
|
27
|
+
/// @param to The recipient of the transfer
|
|
28
|
+
/// @param value The value of the transfer
|
|
29
|
+
function safeTransfer(
|
|
30
|
+
address token,
|
|
31
|
+
address to,
|
|
32
|
+
uint256 value
|
|
33
|
+
) internal {
|
|
34
|
+
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
|
|
35
|
+
require(success && (data.length == 0 || abi.decode(data, (bool))), 'ST');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/// @notice Approves the stipulated contract to spend the given allowance in the given token
|
|
39
|
+
/// @dev Errors with 'SA' if transfer fails
|
|
40
|
+
/// @param token The contract address of the token to be approved
|
|
41
|
+
/// @param to The target of the approval
|
|
42
|
+
/// @param value The amount of the given token the target will be allowed to spend
|
|
43
|
+
function safeApprove(
|
|
44
|
+
address token,
|
|
45
|
+
address to,
|
|
46
|
+
uint256 value
|
|
47
|
+
) internal {
|
|
48
|
+
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.approve.selector, to, value));
|
|
49
|
+
require(success && (data.length == 0 || abi.decode(data, (bool))), 'SA');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/// @notice Transfers ETH to the recipient address
|
|
53
|
+
/// @dev Fails with `STE`
|
|
54
|
+
/// @param to The destination of the transfer
|
|
55
|
+
/// @param value The value to be transferred
|
|
56
|
+
function safeTransferETH(address to, uint256 value) internal {
|
|
57
|
+
(bool success, ) = to.call{value: value}(new bytes(0));
|
|
58
|
+
require(success, 'STE');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
2
|
+
pragma solidity >=0.6.0;
|
|
3
|
+
|
|
4
|
+
import '@uniswap/v3-periphery/contracts/libraries/TransferHelper.sol';
|
|
5
|
+
import '@openzeppelin/contracts/utils/Address.sol';
|
|
6
|
+
|
|
7
|
+
library TransferHelperExtended {
|
|
8
|
+
using Address for address;
|
|
9
|
+
|
|
10
|
+
/// @notice Transfers tokens from the targeted address to the given destination
|
|
11
|
+
/// @notice Errors with 'STF' if transfer fails
|
|
12
|
+
/// @param token The contract address of the token to be transferred
|
|
13
|
+
/// @param from The originating address from which the tokens will be transferred
|
|
14
|
+
/// @param to The destination address of the transfer
|
|
15
|
+
/// @param value The amount to be transferred
|
|
16
|
+
function safeTransferFrom(
|
|
17
|
+
address token,
|
|
18
|
+
address from,
|
|
19
|
+
address to,
|
|
20
|
+
uint256 value
|
|
21
|
+
) internal {
|
|
22
|
+
require(token.isContract(), 'TransferHelperExtended::safeTransferFrom: call to non-contract');
|
|
23
|
+
TransferHelper.safeTransferFrom(token, from, to, value);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/// @notice Transfers tokens from msg.sender to a recipient
|
|
27
|
+
/// @dev Errors with ST if transfer fails
|
|
28
|
+
/// @param token The contract address of the token which will be transferred
|
|
29
|
+
/// @param to The recipient of the transfer
|
|
30
|
+
/// @param value The value of the transfer
|
|
31
|
+
function safeTransfer(
|
|
32
|
+
address token,
|
|
33
|
+
address to,
|
|
34
|
+
uint256 value
|
|
35
|
+
) internal {
|
|
36
|
+
require(token.isContract(), 'TransferHelperExtended::safeTransfer: call to non-contract');
|
|
37
|
+
TransferHelper.safeTransfer(token, to, value);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
2
|
+
pragma solidity =0.7.6;
|
|
3
|
+
pragma abicoder v2;
|
|
4
|
+
|
|
5
|
+
import './interfaces/IUniswapV3Staker.sol';
|
|
6
|
+
import './libraries/IncentiveId.sol';
|
|
7
|
+
import './libraries/RewardMath.sol';
|
|
8
|
+
import './libraries/NFTPositionInfo.sol';
|
|
9
|
+
import './libraries/TransferHelperExtended.sol';
|
|
10
|
+
|
|
11
|
+
import '@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol';
|
|
12
|
+
import '@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol';
|
|
13
|
+
import '@uniswap/v3-core/contracts/interfaces/IERC20Minimal.sol';
|
|
14
|
+
|
|
15
|
+
import '@uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol';
|
|
16
|
+
import '@uniswap/v3-periphery/contracts/base/Multicall.sol';
|
|
17
|
+
|
|
18
|
+
/// @title Uniswap V3 canonical staking interface
|
|
19
|
+
contract UniswapV3Staker is IUniswapV3Staker, Multicall {
|
|
20
|
+
/// @notice Represents a staking incentive
|
|
21
|
+
struct Incentive {
|
|
22
|
+
uint256 totalRewardUnclaimed;
|
|
23
|
+
uint160 totalSecondsClaimedX128;
|
|
24
|
+
uint96 numberOfStakes;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/// @notice Represents the deposit of a liquidity NFT
|
|
28
|
+
struct Deposit {
|
|
29
|
+
address owner;
|
|
30
|
+
uint48 numberOfStakes;
|
|
31
|
+
int24 tickLower;
|
|
32
|
+
int24 tickUpper;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/// @notice Represents a staked liquidity NFT
|
|
36
|
+
struct Stake {
|
|
37
|
+
uint160 secondsPerLiquidityInsideInitialX128;
|
|
38
|
+
uint96 liquidityNoOverflow;
|
|
39
|
+
uint128 liquidityIfOverflow;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/// @inheritdoc IUniswapV3Staker
|
|
43
|
+
IUniswapV3Factory public immutable override factory;
|
|
44
|
+
/// @inheritdoc IUniswapV3Staker
|
|
45
|
+
INonfungiblePositionManager public immutable override nonfungiblePositionManager;
|
|
46
|
+
|
|
47
|
+
/// @inheritdoc IUniswapV3Staker
|
|
48
|
+
uint256 public immutable override maxIncentiveStartLeadTime;
|
|
49
|
+
/// @inheritdoc IUniswapV3Staker
|
|
50
|
+
uint256 public immutable override maxIncentiveDuration;
|
|
51
|
+
|
|
52
|
+
/// @dev bytes32 refers to the return value of IncentiveId.compute
|
|
53
|
+
mapping(bytes32 => Incentive) public override incentives;
|
|
54
|
+
|
|
55
|
+
/// @dev deposits[tokenId] => Deposit
|
|
56
|
+
mapping(uint256 => Deposit) public override deposits;
|
|
57
|
+
|
|
58
|
+
/// @dev stakes[tokenId][incentiveHash] => Stake
|
|
59
|
+
mapping(uint256 => mapping(bytes32 => Stake)) private _stakes;
|
|
60
|
+
|
|
61
|
+
/// @inheritdoc IUniswapV3Staker
|
|
62
|
+
function stakes(uint256 tokenId, bytes32 incentiveId)
|
|
63
|
+
public
|
|
64
|
+
view
|
|
65
|
+
override
|
|
66
|
+
returns (uint160 secondsPerLiquidityInsideInitialX128, uint128 liquidity)
|
|
67
|
+
{
|
|
68
|
+
Stake storage stake = _stakes[tokenId][incentiveId];
|
|
69
|
+
secondsPerLiquidityInsideInitialX128 = stake.secondsPerLiquidityInsideInitialX128;
|
|
70
|
+
liquidity = stake.liquidityNoOverflow;
|
|
71
|
+
if (liquidity == type(uint96).max) {
|
|
72
|
+
liquidity = stake.liquidityIfOverflow;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/// @dev rewards[rewardToken][owner] => uint256
|
|
77
|
+
/// @inheritdoc IUniswapV3Staker
|
|
78
|
+
mapping(IERC20Minimal => mapping(address => uint256)) public override rewards;
|
|
79
|
+
|
|
80
|
+
/// @param _factory the Uniswap V3 factory
|
|
81
|
+
/// @param _nonfungiblePositionManager the NFT position manager contract address
|
|
82
|
+
/// @param _maxIncentiveStartLeadTime the max duration of an incentive in seconds
|
|
83
|
+
/// @param _maxIncentiveDuration the max amount of seconds into the future the incentive startTime can be set
|
|
84
|
+
constructor(
|
|
85
|
+
IUniswapV3Factory _factory,
|
|
86
|
+
INonfungiblePositionManager _nonfungiblePositionManager,
|
|
87
|
+
uint256 _maxIncentiveStartLeadTime,
|
|
88
|
+
uint256 _maxIncentiveDuration
|
|
89
|
+
) {
|
|
90
|
+
factory = _factory;
|
|
91
|
+
nonfungiblePositionManager = _nonfungiblePositionManager;
|
|
92
|
+
maxIncentiveStartLeadTime = _maxIncentiveStartLeadTime;
|
|
93
|
+
maxIncentiveDuration = _maxIncentiveDuration;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/// @inheritdoc IUniswapV3Staker
|
|
97
|
+
function createIncentive(IncentiveKey memory key, uint256 reward) external override {
|
|
98
|
+
require(reward > 0, 'UniswapV3Staker::createIncentive: reward must be positive');
|
|
99
|
+
require(
|
|
100
|
+
block.timestamp <= key.startTime,
|
|
101
|
+
'UniswapV3Staker::createIncentive: start time must be now or in the future'
|
|
102
|
+
);
|
|
103
|
+
require(
|
|
104
|
+
key.startTime - block.timestamp <= maxIncentiveStartLeadTime,
|
|
105
|
+
'UniswapV3Staker::createIncentive: start time too far into future'
|
|
106
|
+
);
|
|
107
|
+
require(key.startTime < key.endTime, 'UniswapV3Staker::createIncentive: start time must be before end time');
|
|
108
|
+
require(
|
|
109
|
+
key.endTime - key.startTime <= maxIncentiveDuration,
|
|
110
|
+
'UniswapV3Staker::createIncentive: incentive duration is too long'
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
bytes32 incentiveId = IncentiveId.compute(key);
|
|
114
|
+
|
|
115
|
+
incentives[incentiveId].totalRewardUnclaimed += reward;
|
|
116
|
+
|
|
117
|
+
TransferHelperExtended.safeTransferFrom(address(key.rewardToken), msg.sender, address(this), reward);
|
|
118
|
+
|
|
119
|
+
emit IncentiveCreated(key.rewardToken, key.pool, key.startTime, key.endTime, key.refundee, reward);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/// @inheritdoc IUniswapV3Staker
|
|
123
|
+
function endIncentive(IncentiveKey memory key) external override returns (uint256 refund) {
|
|
124
|
+
require(block.timestamp >= key.endTime, 'UniswapV3Staker::endIncentive: cannot end incentive before end time');
|
|
125
|
+
|
|
126
|
+
bytes32 incentiveId = IncentiveId.compute(key);
|
|
127
|
+
Incentive storage incentive = incentives[incentiveId];
|
|
128
|
+
|
|
129
|
+
refund = incentive.totalRewardUnclaimed;
|
|
130
|
+
|
|
131
|
+
require(refund > 0, 'UniswapV3Staker::endIncentive: no refund available');
|
|
132
|
+
require(
|
|
133
|
+
incentive.numberOfStakes == 0,
|
|
134
|
+
'UniswapV3Staker::endIncentive: cannot end incentive while deposits are staked'
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
// issue the refund
|
|
138
|
+
incentive.totalRewardUnclaimed = 0;
|
|
139
|
+
TransferHelperExtended.safeTransfer(address(key.rewardToken), key.refundee, refund);
|
|
140
|
+
|
|
141
|
+
// note we never clear totalSecondsClaimedX128
|
|
142
|
+
|
|
143
|
+
emit IncentiveEnded(incentiveId, refund);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/// @notice Upon receiving a Uniswap V3 ERC721, creates the token deposit setting owner to `from`. Also stakes token
|
|
147
|
+
/// in one or more incentives if properly formatted `data` has a length > 0.
|
|
148
|
+
/// @inheritdoc IERC721Receiver
|
|
149
|
+
function onERC721Received(
|
|
150
|
+
address,
|
|
151
|
+
address from,
|
|
152
|
+
uint256 tokenId,
|
|
153
|
+
bytes calldata data
|
|
154
|
+
) external override returns (bytes4) {
|
|
155
|
+
require(
|
|
156
|
+
msg.sender == address(nonfungiblePositionManager),
|
|
157
|
+
'UniswapV3Staker::onERC721Received: not a univ3 nft'
|
|
158
|
+
);
|
|
159
|
+
|
|
160
|
+
(, , , , , int24 tickLower, int24 tickUpper, , , , , ) = nonfungiblePositionManager.positions(tokenId);
|
|
161
|
+
|
|
162
|
+
deposits[tokenId] = Deposit({owner: from, numberOfStakes: 0, tickLower: tickLower, tickUpper: tickUpper});
|
|
163
|
+
emit DepositTransferred(tokenId, address(0), from);
|
|
164
|
+
|
|
165
|
+
if (data.length > 0) {
|
|
166
|
+
if (data.length == 160) {
|
|
167
|
+
_stakeToken(abi.decode(data, (IncentiveKey)), tokenId);
|
|
168
|
+
} else {
|
|
169
|
+
IncentiveKey[] memory keys = abi.decode(data, (IncentiveKey[]));
|
|
170
|
+
for (uint256 i = 0; i < keys.length; i++) {
|
|
171
|
+
_stakeToken(keys[i], tokenId);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return this.onERC721Received.selector;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/// @inheritdoc IUniswapV3Staker
|
|
179
|
+
function transferDeposit(uint256 tokenId, address to) external override {
|
|
180
|
+
require(to != address(0), 'UniswapV3Staker::transferDeposit: invalid transfer recipient');
|
|
181
|
+
address owner = deposits[tokenId].owner;
|
|
182
|
+
require(owner == msg.sender, 'UniswapV3Staker::transferDeposit: can only be called by deposit owner');
|
|
183
|
+
deposits[tokenId].owner = to;
|
|
184
|
+
emit DepositTransferred(tokenId, owner, to);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/// @inheritdoc IUniswapV3Staker
|
|
188
|
+
function withdrawToken(
|
|
189
|
+
uint256 tokenId,
|
|
190
|
+
address to,
|
|
191
|
+
bytes memory data
|
|
192
|
+
) external override {
|
|
193
|
+
require(to != address(this), 'UniswapV3Staker::withdrawToken: cannot withdraw to staker');
|
|
194
|
+
Deposit memory deposit = deposits[tokenId];
|
|
195
|
+
require(deposit.numberOfStakes == 0, 'UniswapV3Staker::withdrawToken: cannot withdraw token while staked');
|
|
196
|
+
require(deposit.owner == msg.sender, 'UniswapV3Staker::withdrawToken: only owner can withdraw token');
|
|
197
|
+
|
|
198
|
+
delete deposits[tokenId];
|
|
199
|
+
emit DepositTransferred(tokenId, deposit.owner, address(0));
|
|
200
|
+
|
|
201
|
+
nonfungiblePositionManager.safeTransferFrom(address(this), to, tokenId, data);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/// @inheritdoc IUniswapV3Staker
|
|
205
|
+
function stakeToken(IncentiveKey memory key, uint256 tokenId) external override {
|
|
206
|
+
require(deposits[tokenId].owner == msg.sender, 'UniswapV3Staker::stakeToken: only owner can stake token');
|
|
207
|
+
|
|
208
|
+
_stakeToken(key, tokenId);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/// @inheritdoc IUniswapV3Staker
|
|
212
|
+
function unstakeToken(IncentiveKey memory key, uint256 tokenId) external override {
|
|
213
|
+
Deposit memory deposit = deposits[tokenId];
|
|
214
|
+
// anyone can call unstakeToken if the block time is after the end time of the incentive
|
|
215
|
+
if (block.timestamp < key.endTime) {
|
|
216
|
+
require(
|
|
217
|
+
deposit.owner == msg.sender,
|
|
218
|
+
'UniswapV3Staker::unstakeToken: only owner can withdraw token before incentive end time'
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
bytes32 incentiveId = IncentiveId.compute(key);
|
|
223
|
+
|
|
224
|
+
(uint160 secondsPerLiquidityInsideInitialX128, uint128 liquidity) = stakes(tokenId, incentiveId);
|
|
225
|
+
|
|
226
|
+
require(liquidity != 0, 'UniswapV3Staker::unstakeToken: stake does not exist');
|
|
227
|
+
|
|
228
|
+
Incentive storage incentive = incentives[incentiveId];
|
|
229
|
+
|
|
230
|
+
deposits[tokenId].numberOfStakes--;
|
|
231
|
+
incentive.numberOfStakes--;
|
|
232
|
+
|
|
233
|
+
(, uint160 secondsPerLiquidityInsideX128, ) =
|
|
234
|
+
key.pool.snapshotCumulativesInside(deposit.tickLower, deposit.tickUpper);
|
|
235
|
+
(uint256 reward, uint160 secondsInsideX128) =
|
|
236
|
+
RewardMath.computeRewardAmount(
|
|
237
|
+
incentive.totalRewardUnclaimed,
|
|
238
|
+
incentive.totalSecondsClaimedX128,
|
|
239
|
+
key.startTime,
|
|
240
|
+
key.endTime,
|
|
241
|
+
liquidity,
|
|
242
|
+
secondsPerLiquidityInsideInitialX128,
|
|
243
|
+
secondsPerLiquidityInsideX128,
|
|
244
|
+
block.timestamp
|
|
245
|
+
);
|
|
246
|
+
|
|
247
|
+
// if this overflows, e.g. after 2^32-1 full liquidity seconds have been claimed,
|
|
248
|
+
// reward rate will fall drastically so it's safe
|
|
249
|
+
incentive.totalSecondsClaimedX128 += secondsInsideX128;
|
|
250
|
+
// reward is never greater than total reward unclaimed
|
|
251
|
+
incentive.totalRewardUnclaimed -= reward;
|
|
252
|
+
// this only overflows if a token has a total supply greater than type(uint256).max
|
|
253
|
+
rewards[key.rewardToken][deposit.owner] += reward;
|
|
254
|
+
|
|
255
|
+
Stake storage stake = _stakes[tokenId][incentiveId];
|
|
256
|
+
delete stake.secondsPerLiquidityInsideInitialX128;
|
|
257
|
+
delete stake.liquidityNoOverflow;
|
|
258
|
+
if (liquidity >= type(uint96).max) delete stake.liquidityIfOverflow;
|
|
259
|
+
emit TokenUnstaked(tokenId, incentiveId);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/// @inheritdoc IUniswapV3Staker
|
|
263
|
+
function claimReward(
|
|
264
|
+
IERC20Minimal rewardToken,
|
|
265
|
+
address to,
|
|
266
|
+
uint256 amountRequested
|
|
267
|
+
) external override returns (uint256 reward) {
|
|
268
|
+
reward = rewards[rewardToken][msg.sender];
|
|
269
|
+
if (amountRequested != 0 && amountRequested < reward) {
|
|
270
|
+
reward = amountRequested;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
rewards[rewardToken][msg.sender] -= reward;
|
|
274
|
+
TransferHelperExtended.safeTransfer(address(rewardToken), to, reward);
|
|
275
|
+
|
|
276
|
+
emit RewardClaimed(to, reward);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/// @inheritdoc IUniswapV3Staker
|
|
280
|
+
function getRewardInfo(IncentiveKey memory key, uint256 tokenId)
|
|
281
|
+
external
|
|
282
|
+
view
|
|
283
|
+
override
|
|
284
|
+
returns (uint256 reward, uint160 secondsInsideX128)
|
|
285
|
+
{
|
|
286
|
+
bytes32 incentiveId = IncentiveId.compute(key);
|
|
287
|
+
|
|
288
|
+
(uint160 secondsPerLiquidityInsideInitialX128, uint128 liquidity) = stakes(tokenId, incentiveId);
|
|
289
|
+
require(liquidity > 0, 'UniswapV3Staker::getRewardInfo: stake does not exist');
|
|
290
|
+
|
|
291
|
+
Deposit memory deposit = deposits[tokenId];
|
|
292
|
+
Incentive memory incentive = incentives[incentiveId];
|
|
293
|
+
|
|
294
|
+
(, uint160 secondsPerLiquidityInsideX128, ) =
|
|
295
|
+
key.pool.snapshotCumulativesInside(deposit.tickLower, deposit.tickUpper);
|
|
296
|
+
|
|
297
|
+
(reward, secondsInsideX128) = RewardMath.computeRewardAmount(
|
|
298
|
+
incentive.totalRewardUnclaimed,
|
|
299
|
+
incentive.totalSecondsClaimedX128,
|
|
300
|
+
key.startTime,
|
|
301
|
+
key.endTime,
|
|
302
|
+
liquidity,
|
|
303
|
+
secondsPerLiquidityInsideInitialX128,
|
|
304
|
+
secondsPerLiquidityInsideX128,
|
|
305
|
+
block.timestamp
|
|
306
|
+
);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/// @dev Stakes a deposited token without doing an ownership check
|
|
310
|
+
function _stakeToken(IncentiveKey memory key, uint256 tokenId) private {
|
|
311
|
+
require(block.timestamp >= key.startTime, 'UniswapV3Staker::stakeToken: incentive not started');
|
|
312
|
+
require(block.timestamp < key.endTime, 'UniswapV3Staker::stakeToken: incentive ended');
|
|
313
|
+
|
|
314
|
+
bytes32 incentiveId = IncentiveId.compute(key);
|
|
315
|
+
|
|
316
|
+
require(
|
|
317
|
+
incentives[incentiveId].totalRewardUnclaimed > 0,
|
|
318
|
+
'UniswapV3Staker::stakeToken: non-existent incentive'
|
|
319
|
+
);
|
|
320
|
+
require(
|
|
321
|
+
_stakes[tokenId][incentiveId].liquidityNoOverflow == 0,
|
|
322
|
+
'UniswapV3Staker::stakeToken: token already staked'
|
|
323
|
+
);
|
|
324
|
+
|
|
325
|
+
(IUniswapV3Pool pool, int24 tickLower, int24 tickUpper, uint128 liquidity) =
|
|
326
|
+
NFTPositionInfo.getPositionInfo(factory, nonfungiblePositionManager, tokenId);
|
|
327
|
+
|
|
328
|
+
require(pool == key.pool, 'UniswapV3Staker::stakeToken: token pool is not the incentive pool');
|
|
329
|
+
require(liquidity > 0, 'UniswapV3Staker::stakeToken: cannot stake token with 0 liquidity');
|
|
330
|
+
|
|
331
|
+
deposits[tokenId].numberOfStakes++;
|
|
332
|
+
incentives[incentiveId].numberOfStakes++;
|
|
333
|
+
|
|
334
|
+
(, uint160 secondsPerLiquidityInsideX128, ) = pool.snapshotCumulativesInside(tickLower, tickUpper);
|
|
335
|
+
|
|
336
|
+
if (liquidity >= type(uint96).max) {
|
|
337
|
+
_stakes[tokenId][incentiveId] = Stake({
|
|
338
|
+
secondsPerLiquidityInsideInitialX128: secondsPerLiquidityInsideX128,
|
|
339
|
+
liquidityNoOverflow: type(uint96).max,
|
|
340
|
+
liquidityIfOverflow: liquidity
|
|
341
|
+
});
|
|
342
|
+
} else {
|
|
343
|
+
Stake storage stake = _stakes[tokenId][incentiveId];
|
|
344
|
+
stake.secondsPerLiquidityInsideInitialX128 = secondsPerLiquidityInsideX128;
|
|
345
|
+
stake.liquidityNoOverflow = uint96(liquidity);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
emit TokenStaked(tokenId, incentiveId, liquidity);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
pragma solidity ^0.8.2;
|
|
2
|
+
|
|
3
|
+
import { TransparentUpgradeableProxy } from '@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
contract Proxy is TransparentUpgradeableProxy {
|
|
7
|
+
|
|
8
|
+
constructor(address _logic, address initialOwner, bytes memory _data) TransparentUpgradeableProxy(_logic, initialOwner, _data) {
|
|
9
|
+
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
pragma solidity ^0.8.20;
|
|
2
|
+
|
|
3
|
+
import { UpgradeableBeacon } from '@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
contract Beacon is UpgradeableBeacon {
|
|
7
|
+
|
|
8
|
+
constructor(address implementation_) UpgradeableBeacon(implementation_) {
|
|
9
|
+
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
abstract contract Initializable {
|
|
3
|
+
bool private _initialized;
|
|
4
|
+
bool private _initializing;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
abstract contract ContextUpgradeable is Initializable {
|
|
8
|
+
uint256[50] private __gap;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
contract ERC20Upgradeable is Initializable, ContextUpgradeable {
|
|
12
|
+
mapping(address => uint256) private _balances;
|
|
13
|
+
mapping(address => mapping(address => uint256)) private _allowances;
|
|
14
|
+
uint256 private _totalSupply;
|
|
15
|
+
string private _name;
|
|
16
|
+
string private _symbol;
|
|
17
|
+
uint256[45] private __gap;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
abstract contract ERC20BurnableUpgradeable is Initializable, ContextUpgradeable, ERC20Upgradeable {
|
|
21
|
+
uint256[50] private __gap;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
contract ERC20PresetFixedSupplyUpgradeable is Initializable, ERC20BurnableUpgradeable {
|
|
25
|
+
uint256[50] private __gap;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
abstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {
|
|
29
|
+
address private _owner;
|
|
30
|
+
uint256[49] private __gap;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
contract AlphaKlimaUpgradeable is ERC20PresetFixedSupplyUpgradeable, OwnableUpgradeable {
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
}
|