@layerzerolabs/lz-evm-v1-0.7 1.5.76 → 1.5.78
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/contracts/Endpoint.sol +382 -0
- package/contracts/EndpointLite.sol +379 -0
- package/contracts/FeeHandler.sol +38 -0
- package/contracts/NonceContract.sol +23 -0
- package/contracts/NonceContractRadar.sol +31 -0
- package/contracts/PriceFeed.sol +193 -0
- package/contracts/Relayer.sol +217 -0
- package/contracts/RelayerV2.sol +364 -0
- package/contracts/RelayerV2Radar.sol +294 -0
- package/contracts/Treasury.sol +70 -0
- package/contracts/TreasuryV2.sol +76 -0
- package/contracts/TreasuryV2Radar.sol +68 -0
- package/contracts/UltraLightNode.sol +614 -0
- package/contracts/UltraLightNodeV2.sol +588 -0
- package/contracts/UltraLightNodeV2AltToken.sol +583 -0
- package/contracts/UltraLightNodeV2Radar.sol +671 -0
- package/contracts/arbitrum/interfaces/ArbSys.sol +99 -0
- package/contracts/example/AltTokenUA.sol +43 -0
- package/contracts/mocks/ContractOne.sol +11 -0
- package/contracts/mocks/ContractTwo.sol +17 -0
- package/contracts/mocks/GIN.sol +52 -0
- package/contracts/mocks/IsContract.sol +15 -0
- package/contracts/mocks/LayerZeroOracleBadMock.sol +93 -0
- package/contracts/mocks/LayerZeroOracleMock.sol +71 -0
- package/contracts/mocks/LayerZeroOracleMockV2.sol +76 -0
- package/contracts/mocks/LayerZeroTokenMock.sol +11 -0
- package/contracts/mocks/MockToken.sol +25 -0
- package/contracts/mocks/OmniCounter.sol +247 -0
- package/contracts/mocks/PacketData.sol +31 -0
- package/contracts/mocks/PingPong.sol +157 -0
- package/contracts/mocks/PriceFeedV2Mock.sol +188 -0
- package/contracts/mocks/Token.sol +26 -0
- package/contracts/mocks/UltraLightNodeV2Mock.sol +58 -0
- package/contracts/precrime/PreCrime.sol +90 -0
- package/contracts/precrime/example/inherit/CounterI.sol +74 -0
- package/contracts/precrime/example/inherit/CounterPrecrime.sol +182 -0
- package/contracts/precrime/example/view/CounterPrecrimeView.sol +177 -0
- package/contracts/precrime/example/view/CounterV.sol +46 -0
- package/contracts/precrime/example/view/CounterView.sol +61 -0
- package/contracts/proof/FPValidator.sol +177 -0
- package/contracts/proof/MPTValidator.sol +136 -0
- package/contracts/proof/MPTValidator01.sol +211 -0
- package/contracts/proof/MPTValidatorStgV3.sol +262 -0
- package/contracts/proof/MPTValidatorV2.sol +133 -0
- package/contracts/proof/MPTValidatorV4.sol +282 -0
- package/contracts/proof/MPTValidatorV5.sol +291 -0
- package/contracts/proof/utility/Buffer.sol +171 -0
- package/contracts/proof/utility/LayerZeroPacket.sol +178 -0
- package/contracts/proof/utility/RLPDecode.sol +382 -0
- package/contracts/proof/utility/UltraLightNodeEVMDecoder.sol +47 -0
- package/contracts/proxy/DefaultProxyAdmin.sol +84 -0
- package/contracts/proxy/TransparentUpgradeableProxy.sol +151 -0
- package/package.json +5 -89
- package/dist/index.cjs +0 -21990
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.mts +0 -30777
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -18
- package/dist/index.mjs +0 -21930
- package/dist/index.mjs.map +0 -1
- package/dist/ops.cjs +0 -698
- package/dist/ops.cjs.map +0 -1
- package/dist/ops.d.mts +0 -47
- package/dist/ops.d.ts +0 -47
- package/dist/ops.mjs +0 -687
- package/dist/ops.mjs.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/typechain-types/Endpoint.d.ts +0 -642
- package/dist/typechain-types/Endpoint.js +0 -2
- package/dist/typechain-types/EndpointLite.d.ts +0 -634
- package/dist/typechain-types/EndpointLite.js +0 -2
- package/dist/typechain-types/FeeHandler.d.ts +0 -153
- package/dist/typechain-types/FeeHandler.js +0 -2
- package/dist/typechain-types/NonceContract.d.ts +0 -66
- package/dist/typechain-types/NonceContract.js +0 -2
- package/dist/typechain-types/NonceContractRadar.d.ts +0 -90
- package/dist/typechain-types/NonceContractRadar.js +0 -2
- package/dist/typechain-types/PriceFeed.d.ts +0 -476
- package/dist/typechain-types/PriceFeed.js +0 -2
- package/dist/typechain-types/Relayer.d.ts +0 -436
- package/dist/typechain-types/Relayer.js +0 -2
- package/dist/typechain-types/RelayerV2.sol/IStargateComposer.d.ts +0 -42
- package/dist/typechain-types/RelayerV2.sol/IStargateComposer.js +0 -2
- package/dist/typechain-types/RelayerV2.sol/RelayerV2.d.ts +0 -713
- package/dist/typechain-types/RelayerV2.sol/RelayerV2.js +0 -2
- package/dist/typechain-types/RelayerV2.sol/index.d.ts +0 -2
- package/dist/typechain-types/RelayerV2.sol/index.js +0 -2
- package/dist/typechain-types/RelayerV2Radar.d.ts +0 -548
- package/dist/typechain-types/RelayerV2Radar.js +0 -2
- package/dist/typechain-types/Treasury.d.ts +0 -269
- package/dist/typechain-types/Treasury.js +0 -2
- package/dist/typechain-types/TreasuryV2.d.ts +0 -285
- package/dist/typechain-types/TreasuryV2.js +0 -2
- package/dist/typechain-types/TreasuryV2Radar.d.ts +0 -269
- package/dist/typechain-types/TreasuryV2Radar.js +0 -2
- package/dist/typechain-types/UltraLightNode.d.ts +0 -954
- package/dist/typechain-types/UltraLightNode.js +0 -2
- package/dist/typechain-types/UltraLightNodeV2.d.ts +0 -916
- package/dist/typechain-types/UltraLightNodeV2.js +0 -2
- package/dist/typechain-types/UltraLightNodeV2AltToken.d.ts +0 -924
- package/dist/typechain-types/UltraLightNodeV2AltToken.js +0 -2
- package/dist/typechain-types/UltraLightNodeV2Radar.d.ts +0 -996
- package/dist/typechain-types/UltraLightNodeV2Radar.js +0 -2
- package/dist/typechain-types/arbitrum/index.d.ts +0 -2
- package/dist/typechain-types/arbitrum/index.js +0 -2
- package/dist/typechain-types/arbitrum/interfaces/ArbSys.d.ts +0 -177
- package/dist/typechain-types/arbitrum/interfaces/ArbSys.js +0 -2
- package/dist/typechain-types/arbitrum/interfaces/index.d.ts +0 -1
- package/dist/typechain-types/arbitrum/interfaces/index.js +0 -2
- package/dist/typechain-types/common.d.ts +0 -21
- package/dist/typechain-types/common.js +0 -2
- package/dist/typechain-types/factories/EndpointLite__factory.d.ts +0 -732
- package/dist/typechain-types/factories/EndpointLite__factory.js +0 -988
- package/dist/typechain-types/factories/Endpoint__factory.d.ts +0 -750
- package/dist/typechain-types/factories/Endpoint__factory.js +0 -1012
- package/dist/typechain-types/factories/FeeHandler__factory.d.ts +0 -127
- package/dist/typechain-types/factories/FeeHandler__factory.js +0 -203
- package/dist/typechain-types/factories/NonceContractRadar__factory.d.ts +0 -110
- package/dist/typechain-types/factories/NonceContractRadar__factory.js +0 -183
- package/dist/typechain-types/factories/NonceContract__factory.d.ts +0 -78
- package/dist/typechain-types/factories/NonceContract__factory.js +0 -142
- package/dist/typechain-types/factories/PriceFeed__factory.d.ts +0 -419
- package/dist/typechain-types/factories/PriceFeed__factory.js +0 -585
- package/dist/typechain-types/factories/RelayerV2.sol/IStargateComposer__factory.d.ts +0 -18
- package/dist/typechain-types/factories/RelayerV2.sol/IStargateComposer__factory.js +0 -35
- package/dist/typechain-types/factories/RelayerV2.sol/RelayerV2__factory.d.ts +0 -780
- package/dist/typechain-types/factories/RelayerV2.sol/RelayerV2__factory.js +0 -1048
- package/dist/typechain-types/factories/RelayerV2.sol/index.d.ts +0 -2
- package/dist/typechain-types/factories/RelayerV2.sol/index.js +0 -21
- package/dist/typechain-types/factories/RelayerV2Radar__factory.d.ts +0 -630
- package/dist/typechain-types/factories/RelayerV2Radar__factory.js +0 -853
- package/dist/typechain-types/factories/Relayer__factory.d.ts +0 -469
- package/dist/typechain-types/factories/Relayer__factory.js +0 -642
- package/dist/typechain-types/factories/TreasuryV2Radar__factory.d.ts +0 -249
- package/dist/typechain-types/factories/TreasuryV2Radar__factory.js +0 -362
- package/dist/typechain-types/factories/TreasuryV2__factory.d.ts +0 -267
- package/dist/typechain-types/factories/TreasuryV2__factory.js +0 -385
- package/dist/typechain-types/factories/Treasury__factory.d.ts +0 -249
- package/dist/typechain-types/factories/Treasury__factory.js +0 -362
- package/dist/typechain-types/factories/UltraLightNodeV2AltToken__factory.d.ts +0 -1133
- package/dist/typechain-types/factories/UltraLightNodeV2AltToken__factory.js +0 -1495
- package/dist/typechain-types/factories/UltraLightNodeV2Radar__factory.d.ts +0 -1213
- package/dist/typechain-types/factories/UltraLightNodeV2Radar__factory.js +0 -1599
- package/dist/typechain-types/factories/UltraLightNodeV2__factory.d.ts +0 -1119
- package/dist/typechain-types/factories/UltraLightNodeV2__factory.js +0 -1477
- package/dist/typechain-types/factories/UltraLightNode__factory.d.ts +0 -1156
- package/dist/typechain-types/factories/UltraLightNode__factory.js +0 -1529
- package/dist/typechain-types/factories/arbitrum/index.d.ts +0 -1
- package/dist/typechain-types/factories/arbitrum/index.js +0 -30
- package/dist/typechain-types/factories/arbitrum/interfaces/ArbSys__factory.d.ts +0 -215
- package/dist/typechain-types/factories/arbitrum/interfaces/ArbSys__factory.js +0 -290
- package/dist/typechain-types/factories/arbitrum/interfaces/index.d.ts +0 -1
- package/dist/typechain-types/factories/arbitrum/interfaces/index.js +0 -19
- package/dist/typechain-types/factories/index.d.ts +0 -21
- package/dist/typechain-types/factories/index.js +0 -65
- package/dist/typechain-types/factories/interfaces/IContractOne__factory.d.ts +0 -18
- package/dist/typechain-types/factories/interfaces/IContractOne__factory.js +0 -35
- package/dist/typechain-types/factories/interfaces/ILayerZeroEndpoint__factory.d.ts +0 -342
- package/dist/typechain-types/factories/interfaces/ILayerZeroEndpoint__factory.js +0 -458
- package/dist/typechain-types/factories/interfaces/ILayerZeroMessagingLibraryV2__factory.d.ts +0 -142
- package/dist/typechain-types/factories/interfaces/ILayerZeroMessagingLibraryV2__factory.js +0 -195
- package/dist/typechain-types/factories/interfaces/ILayerZeroMessagingLibrary__factory.d.ts +0 -124
- package/dist/typechain-types/factories/interfaces/ILayerZeroMessagingLibrary__factory.js +0 -171
- package/dist/typechain-types/factories/interfaces/ILayerZeroOracleV2__factory.d.ts +0 -74
- package/dist/typechain-types/factories/interfaces/ILayerZeroOracleV2__factory.js +0 -108
- package/dist/typechain-types/factories/interfaces/ILayerZeroOracle__factory.d.ts +0 -58
- package/dist/typechain-types/factories/interfaces/ILayerZeroOracle__factory.js +0 -88
- package/dist/typechain-types/factories/interfaces/ILayerZeroPriceFeedV2__factory.d.ts +0 -79
- package/dist/typechain-types/factories/interfaces/ILayerZeroPriceFeedV2__factory.js +0 -115
- package/dist/typechain-types/factories/interfaces/ILayerZeroPriceFeed__factory.d.ts +0 -81
- package/dist/typechain-types/factories/interfaces/ILayerZeroPriceFeed__factory.js +0 -118
- package/dist/typechain-types/factories/interfaces/ILayerZeroReceiver__factory.d.ts +0 -30
- package/dist/typechain-types/factories/interfaces/ILayerZeroReceiver__factory.js +0 -50
- package/dist/typechain-types/factories/interfaces/ILayerZeroRelayerV2PriceData__factory.d.ts +0 -62
- package/dist/typechain-types/factories/interfaces/ILayerZeroRelayerV2PriceData__factory.js +0 -94
- package/dist/typechain-types/factories/interfaces/ILayerZeroRelayerV2__factory.d.ts +0 -82
- package/dist/typechain-types/factories/interfaces/ILayerZeroRelayerV2__factory.js +0 -118
- package/dist/typechain-types/factories/interfaces/ILayerZeroRelayer__factory.d.ts +0 -70
- package/dist/typechain-types/factories/interfaces/ILayerZeroRelayer__factory.js +0 -103
- package/dist/typechain-types/factories/interfaces/ILayerZeroTreasury__factory.d.ts +0 -30
- package/dist/typechain-types/factories/interfaces/ILayerZeroTreasury__factory.js +0 -51
- package/dist/typechain-types/factories/interfaces/ILayerZeroUltraLightNodeV1__factory.d.ts +0 -120
- package/dist/typechain-types/factories/interfaces/ILayerZeroUltraLightNodeV1__factory.js +0 -167
- package/dist/typechain-types/factories/interfaces/ILayerZeroUltraLightNodeV2__factory.d.ts +0 -460
- package/dist/typechain-types/factories/interfaces/ILayerZeroUltraLightNodeV2__factory.js +0 -593
- package/dist/typechain-types/factories/interfaces/ILayerZeroUserApplicationConfig__factory.d.ts +0 -64
- package/dist/typechain-types/factories/interfaces/ILayerZeroUserApplicationConfig__factory.js +0 -94
- package/dist/typechain-types/factories/interfaces/ILayerZeroValidationLibrary__factory.d.ts +0 -59
- package/dist/typechain-types/factories/interfaces/ILayerZeroValidationLibrary__factory.js +0 -88
- package/dist/typechain-types/factories/interfaces/IValidationLibraryHelperV2__factory.d.ts +0 -118
- package/dist/typechain-types/factories/interfaces/IValidationLibraryHelperV2__factory.js +0 -165
- package/dist/typechain-types/factories/interfaces/IValidationLibraryHelper__factory.d.ts +0 -112
- package/dist/typechain-types/factories/interfaces/IValidationLibraryHelper__factory.js +0 -157
- package/dist/typechain-types/factories/interfaces/index.d.ts +0 -19
- package/dist/typechain-types/factories/interfaces/index.js +0 -55
- package/dist/typechain-types/factories/precrime/PreCrimeBase__factory.d.ts +0 -198
- package/dist/typechain-types/factories/precrime/PreCrimeBase__factory.js +0 -270
- package/dist/typechain-types/factories/precrime/PreCrimeView__factory.d.ts +0 -243
- package/dist/typechain-types/factories/precrime/PreCrimeView__factory.js +0 -329
- package/dist/typechain-types/factories/precrime/PreCrime__factory.d.ts +0 -270
- package/dist/typechain-types/factories/precrime/PreCrime__factory.js +0 -364
- package/dist/typechain-types/factories/precrime/example/index.d.ts +0 -2
- package/dist/typechain-types/factories/precrime/example/index.js +0 -31
- package/dist/typechain-types/factories/precrime/example/inherit/CounterI__factory.d.ts +0 -486
- package/dist/typechain-types/factories/precrime/example/inherit/CounterI__factory.js +0 -677
- package/dist/typechain-types/factories/precrime/example/inherit/CounterPrecrime__factory.d.ts +0 -348
- package/dist/typechain-types/factories/precrime/example/inherit/CounterPrecrime__factory.js +0 -468
- package/dist/typechain-types/factories/precrime/example/inherit/index.d.ts +0 -2
- package/dist/typechain-types/factories/precrime/example/inherit/index.js +0 -21
- package/dist/typechain-types/factories/precrime/example/view/CounterPrecrimeView__factory.d.ts +0 -329
- package/dist/typechain-types/factories/precrime/example/view/CounterPrecrimeView__factory.js +0 -470
- package/dist/typechain-types/factories/precrime/example/view/CounterV__factory.d.ts +0 -146
- package/dist/typechain-types/factories/precrime/example/view/CounterV__factory.js +0 -231
- package/dist/typechain-types/factories/precrime/example/view/CounterView__factory.d.ts +0 -136
- package/dist/typechain-types/factories/precrime/example/view/CounterView__factory.js +0 -219
- package/dist/typechain-types/factories/precrime/example/view/index.d.ts +0 -3
- package/dist/typechain-types/factories/precrime/example/view/index.js +0 -23
- package/dist/typechain-types/factories/precrime/index.d.ts +0 -5
- package/dist/typechain-types/factories/precrime/index.js +0 -37
- package/dist/typechain-types/factories/precrime/interfaces/IPreCrimeBase__factory.d.ts +0 -88
- package/dist/typechain-types/factories/precrime/interfaces/IPreCrimeBase__factory.js +0 -127
- package/dist/typechain-types/factories/precrime/interfaces/IPreCrimeView__factory.d.ts +0 -123
- package/dist/typechain-types/factories/precrime/interfaces/IPreCrimeView__factory.js +0 -173
- package/dist/typechain-types/factories/precrime/interfaces/IPreCrime__factory.d.ts +0 -123
- package/dist/typechain-types/factories/precrime/interfaces/IPreCrime__factory.js +0 -173
- package/dist/typechain-types/factories/precrime/interfaces/index.d.ts +0 -3
- package/dist/typechain-types/factories/precrime/interfaces/index.js +0 -23
- package/dist/typechain-types/factories/proof/FPValidator__factory.d.ts +0 -261
- package/dist/typechain-types/factories/proof/FPValidator__factory.js +0 -380
- package/dist/typechain-types/factories/proof/MPTValidator01__factory.d.ts +0 -271
- package/dist/typechain-types/factories/proof/MPTValidator01__factory.js +0 -393
- package/dist/typechain-types/factories/proof/MPTValidatorStgV3__factory.d.ts +0 -249
- package/dist/typechain-types/factories/proof/MPTValidatorStgV3__factory.js +0 -364
- package/dist/typechain-types/factories/proof/MPTValidatorV2__factory.d.ts +0 -175
- package/dist/typechain-types/factories/proof/MPTValidatorV2__factory.js +0 -266
- package/dist/typechain-types/factories/proof/MPTValidatorV4.sol/IUltraLightNode__factory.d.ts +0 -82
- package/dist/typechain-types/factories/proof/MPTValidatorV4.sol/IUltraLightNode__factory.js +0 -119
- package/dist/typechain-types/factories/proof/MPTValidatorV4.sol/MPTValidatorV4__factory.d.ts +0 -330
- package/dist/typechain-types/factories/proof/MPTValidatorV4.sol/MPTValidatorV4__factory.js +0 -468
- package/dist/typechain-types/factories/proof/MPTValidatorV4.sol/index.d.ts +0 -2
- package/dist/typechain-types/factories/proof/MPTValidatorV4.sol/index.js +0 -21
- package/dist/typechain-types/factories/proof/MPTValidatorV5.sol/IUltraLightNode__factory.d.ts +0 -82
- package/dist/typechain-types/factories/proof/MPTValidatorV5.sol/IUltraLightNode__factory.js +0 -119
- package/dist/typechain-types/factories/proof/MPTValidatorV5.sol/MPTValidatorV5__factory.d.ts +0 -344
- package/dist/typechain-types/factories/proof/MPTValidatorV5.sol/MPTValidatorV5__factory.js +0 -486
- package/dist/typechain-types/factories/proof/MPTValidatorV5.sol/index.d.ts +0 -2
- package/dist/typechain-types/factories/proof/MPTValidatorV5.sol/index.js +0 -21
- package/dist/typechain-types/factories/proof/MPTValidator__factory.d.ts +0 -124
- package/dist/typechain-types/factories/proof/MPTValidator__factory.js +0 -200
- package/dist/typechain-types/factories/proof/index.d.ts +0 -7
- package/dist/typechain-types/factories/proof/index.js +0 -41
- package/dist/typechain-types/factories/proxy/DefaultProxyAdmin__factory.d.ts +0 -143
- package/dist/typechain-types/factories/proxy/DefaultProxyAdmin__factory.js +0 -225
- package/dist/typechain-types/factories/proxy/TransparentUpgradeableProxy__factory.d.ts +0 -121
- package/dist/typechain-types/factories/proxy/TransparentUpgradeableProxy__factory.js +0 -196
- package/dist/typechain-types/factories/proxy/index.d.ts +0 -2
- package/dist/typechain-types/factories/proxy/index.js +0 -21
- package/dist/typechain-types/index.d.ts +0 -129
- package/dist/typechain-types/index.js +0 -144
- package/dist/typechain-types/interfaces/IContractOne.d.ts +0 -50
- package/dist/typechain-types/interfaces/IContractOne.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroEndpoint.d.ts +0 -267
- package/dist/typechain-types/interfaces/ILayerZeroEndpoint.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroMessagingLibrary.d.ts +0 -109
- package/dist/typechain-types/interfaces/ILayerZeroMessagingLibrary.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroMessagingLibraryV2.d.ts +0 -117
- package/dist/typechain-types/interfaces/ILayerZeroMessagingLibraryV2.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroOracle.d.ts +0 -70
- package/dist/typechain-types/interfaces/ILayerZeroOracle.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroOracleV2.d.ts +0 -76
- package/dist/typechain-types/interfaces/ILayerZeroOracleV2.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroPriceFeed.d.ts +0 -96
- package/dist/typechain-types/interfaces/ILayerZeroPriceFeed.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroPriceFeedV2.d.ts +0 -100
- package/dist/typechain-types/interfaces/ILayerZeroPriceFeedV2.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroReceiver.d.ts +0 -50
- package/dist/typechain-types/interfaces/ILayerZeroReceiver.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroRelayer.d.ts +0 -70
- package/dist/typechain-types/interfaces/ILayerZeroRelayer.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroRelayerV2.d.ts +0 -76
- package/dist/typechain-types/interfaces/ILayerZeroRelayerV2.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroRelayerV2PriceData.d.ts +0 -70
- package/dist/typechain-types/interfaces/ILayerZeroRelayerV2PriceData.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroTreasury.d.ts +0 -42
- package/dist/typechain-types/interfaces/ILayerZeroTreasury.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroUltraLightNodeV1.d.ts +0 -114
- package/dist/typechain-types/interfaces/ILayerZeroUltraLightNodeV1.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroUltraLightNodeV2.d.ts +0 -384
- package/dist/typechain-types/interfaces/ILayerZeroUltraLightNodeV2.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroUserApplicationConfig.d.ts +0 -98
- package/dist/typechain-types/interfaces/ILayerZeroUserApplicationConfig.js +0 -2
- package/dist/typechain-types/interfaces/ILayerZeroValidationLibrary.d.ts +0 -78
- package/dist/typechain-types/interfaces/ILayerZeroValidationLibrary.js +0 -2
- package/dist/typechain-types/interfaces/IValidationLibraryHelper.d.ts +0 -98
- package/dist/typechain-types/interfaces/IValidationLibraryHelper.js +0 -2
- package/dist/typechain-types/interfaces/IValidationLibraryHelperV2.d.ts +0 -106
- package/dist/typechain-types/interfaces/IValidationLibraryHelperV2.js +0 -2
- package/dist/typechain-types/interfaces/index.d.ts +0 -19
- package/dist/typechain-types/interfaces/index.js +0 -2
- package/dist/typechain-types/precrime/PreCrime.d.ts +0 -228
- package/dist/typechain-types/precrime/PreCrime.js +0 -2
- package/dist/typechain-types/precrime/PreCrimeBase.d.ts +0 -185
- package/dist/typechain-types/precrime/PreCrimeBase.js +0 -2
- package/dist/typechain-types/precrime/PreCrimeView.d.ts +0 -210
- package/dist/typechain-types/precrime/PreCrimeView.js +0 -2
- package/dist/typechain-types/precrime/example/index.d.ts +0 -4
- package/dist/typechain-types/precrime/example/index.js +0 -2
- package/dist/typechain-types/precrime/example/inherit/CounterI.d.ts +0 -415
- package/dist/typechain-types/precrime/example/inherit/CounterI.js +0 -2
- package/dist/typechain-types/precrime/example/inherit/CounterPrecrime.d.ts +0 -291
- package/dist/typechain-types/precrime/example/inherit/CounterPrecrime.js +0 -2
- package/dist/typechain-types/precrime/example/inherit/index.d.ts +0 -2
- package/dist/typechain-types/precrime/example/inherit/index.js +0 -2
- package/dist/typechain-types/precrime/example/view/CounterPrecrimeView.d.ts +0 -266
- package/dist/typechain-types/precrime/example/view/CounterPrecrimeView.js +0 -2
- package/dist/typechain-types/precrime/example/view/CounterV.d.ts +0 -158
- package/dist/typechain-types/precrime/example/view/CounterV.js +0 -2
- package/dist/typechain-types/precrime/example/view/CounterView.d.ts +0 -81
- package/dist/typechain-types/precrime/example/view/CounterView.js +0 -2
- package/dist/typechain-types/precrime/example/view/index.d.ts +0 -3
- package/dist/typechain-types/precrime/example/view/index.js +0 -2
- package/dist/typechain-types/precrime/index.d.ts +0 -7
- package/dist/typechain-types/precrime/index.js +0 -2
- package/dist/typechain-types/precrime/interfaces/IPreCrime.d.ts +0 -100
- package/dist/typechain-types/precrime/interfaces/IPreCrime.js +0 -2
- package/dist/typechain-types/precrime/interfaces/IPreCrimeBase.d.ts +0 -81
- package/dist/typechain-types/precrime/interfaces/IPreCrimeBase.js +0 -2
- package/dist/typechain-types/precrime/interfaces/IPreCrimeView.d.ts +0 -98
- package/dist/typechain-types/precrime/interfaces/IPreCrimeView.js +0 -2
- package/dist/typechain-types/precrime/interfaces/index.d.ts +0 -3
- package/dist/typechain-types/precrime/interfaces/index.js +0 -2
- package/dist/typechain-types/proof/FPValidator.d.ts +0 -170
- package/dist/typechain-types/proof/FPValidator.js +0 -2
- package/dist/typechain-types/proof/MPTValidator.d.ts +0 -102
- package/dist/typechain-types/proof/MPTValidator.js +0 -2
- package/dist/typechain-types/proof/MPTValidator01.d.ts +0 -174
- package/dist/typechain-types/proof/MPTValidator01.js +0 -2
- package/dist/typechain-types/proof/MPTValidatorStgV3.d.ts +0 -146
- package/dist/typechain-types/proof/MPTValidatorStgV3.js +0 -2
- package/dist/typechain-types/proof/MPTValidatorV2.d.ts +0 -110
- package/dist/typechain-types/proof/MPTValidatorV2.js +0 -2
- package/dist/typechain-types/proof/MPTValidatorV4.sol/IUltraLightNode.d.ts +0 -87
- package/dist/typechain-types/proof/MPTValidatorV4.sol/IUltraLightNode.js +0 -2
- package/dist/typechain-types/proof/MPTValidatorV4.sol/MPTValidatorV4.d.ts +0 -178
- package/dist/typechain-types/proof/MPTValidatorV4.sol/MPTValidatorV4.js +0 -2
- package/dist/typechain-types/proof/MPTValidatorV4.sol/index.d.ts +0 -2
- package/dist/typechain-types/proof/MPTValidatorV4.sol/index.js +0 -2
- package/dist/typechain-types/proof/MPTValidatorV5.sol/IUltraLightNode.d.ts +0 -87
- package/dist/typechain-types/proof/MPTValidatorV5.sol/IUltraLightNode.js +0 -2
- package/dist/typechain-types/proof/MPTValidatorV5.sol/MPTValidatorV5.d.ts +0 -186
- package/dist/typechain-types/proof/MPTValidatorV5.sol/MPTValidatorV5.js +0 -2
- package/dist/typechain-types/proof/MPTValidatorV5.sol/index.d.ts +0 -2
- package/dist/typechain-types/proof/MPTValidatorV5.sol/index.js +0 -2
- package/dist/typechain-types/proof/index.d.ts +0 -9
- package/dist/typechain-types/proof/index.js +0 -2
- package/dist/typechain-types/proxy/DefaultProxyAdmin.d.ts +0 -153
- package/dist/typechain-types/proxy/DefaultProxyAdmin.js +0 -2
- package/dist/typechain-types/proxy/TransparentUpgradeableProxy.d.ts +0 -138
- package/dist/typechain-types/proxy/TransparentUpgradeableProxy.js +0 -2
- package/dist/typechain-types/proxy/index.d.ts +0 -2
- package/dist/typechain-types/proxy/index.js +0 -2
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
|
|
3
|
+
pragma solidity 0.7.6;
|
|
4
|
+
|
|
5
|
+
import "./interfaces/ILayerZeroReceiver.sol";
|
|
6
|
+
import "./interfaces/ILayerZeroEndpoint.sol";
|
|
7
|
+
import "./interfaces/ILayerZeroMessagingLibrary.sol";
|
|
8
|
+
|
|
9
|
+
import "@openzeppelin/contracts/access/Ownable.sol";
|
|
10
|
+
|
|
11
|
+
contract Endpoint is Ownable, ILayerZeroEndpoint {
|
|
12
|
+
uint16 public immutable chainId;
|
|
13
|
+
|
|
14
|
+
// installed libraries and reserved versions
|
|
15
|
+
uint16 public constant BLOCK_VERSION = 65535;
|
|
16
|
+
uint16 public constant DEFAULT_VERSION = 0;
|
|
17
|
+
uint16 public latestVersion;
|
|
18
|
+
mapping(uint16 => ILayerZeroMessagingLibrary) public libraryLookup; // version -> ILayerZeroEndpointLibrary
|
|
19
|
+
|
|
20
|
+
// default send/receive libraries
|
|
21
|
+
uint16 public defaultSendVersion;
|
|
22
|
+
uint16 public defaultReceiveVersion;
|
|
23
|
+
ILayerZeroMessagingLibrary public defaultSendLibrary;
|
|
24
|
+
address public defaultReceiveLibraryAddress;
|
|
25
|
+
|
|
26
|
+
struct LibraryConfig {
|
|
27
|
+
uint16 sendVersion;
|
|
28
|
+
uint16 receiveVersion;
|
|
29
|
+
address receiveLibraryAddress;
|
|
30
|
+
ILayerZeroMessagingLibrary sendLibrary;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
struct StoredPayload {
|
|
34
|
+
uint64 payloadLength;
|
|
35
|
+
address dstAddress;
|
|
36
|
+
bytes32 payloadHash;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// user app config = [uaAddress]
|
|
40
|
+
mapping(address => LibraryConfig) public uaConfigLookup;
|
|
41
|
+
// inboundNonce = [srcChainId][srcAddress].
|
|
42
|
+
mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;
|
|
43
|
+
// outboundNonce = [dstChainId][srcAddress].
|
|
44
|
+
mapping(uint16 => mapping(address => uint64)) public outboundNonce;
|
|
45
|
+
// storedPayload = [srcChainId][srcAddress]
|
|
46
|
+
mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;
|
|
47
|
+
|
|
48
|
+
// library versioning events
|
|
49
|
+
event NewLibraryVersionAdded(uint16 version);
|
|
50
|
+
event DefaultSendVersionSet(uint16 version);
|
|
51
|
+
event DefaultReceiveVersionSet(uint16 version);
|
|
52
|
+
event UaSendVersionSet(address ua, uint16 version);
|
|
53
|
+
event UaReceiveVersionSet(address ua, uint16 version);
|
|
54
|
+
event UaForceResumeReceive(uint16 chainId, bytes srcAddress);
|
|
55
|
+
// payload events
|
|
56
|
+
event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);
|
|
57
|
+
event PayloadStored(
|
|
58
|
+
uint16 srcChainId,
|
|
59
|
+
bytes srcAddress,
|
|
60
|
+
address dstAddress,
|
|
61
|
+
uint64 nonce,
|
|
62
|
+
bytes payload,
|
|
63
|
+
bytes reason
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
constructor(uint16 _chainId) {
|
|
67
|
+
chainId = _chainId;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//---------------------------------------------------------------------------
|
|
71
|
+
// send and receive nonreentrant lock
|
|
72
|
+
uint8 internal constant _NOT_ENTERED = 1;
|
|
73
|
+
uint8 internal constant _ENTERED = 2;
|
|
74
|
+
uint8 internal _send_entered_state = 1;
|
|
75
|
+
uint8 internal _receive_entered_state = 1;
|
|
76
|
+
|
|
77
|
+
modifier sendNonReentrant() {
|
|
78
|
+
require(_send_entered_state == _NOT_ENTERED, "LayerZero: no send reentrancy");
|
|
79
|
+
_send_entered_state = _ENTERED;
|
|
80
|
+
_;
|
|
81
|
+
_send_entered_state = _NOT_ENTERED;
|
|
82
|
+
}
|
|
83
|
+
modifier receiveNonReentrant() {
|
|
84
|
+
require(_receive_entered_state == _NOT_ENTERED, "LayerZero: no receive reentrancy");
|
|
85
|
+
_receive_entered_state = _ENTERED;
|
|
86
|
+
_;
|
|
87
|
+
_receive_entered_state = _NOT_ENTERED;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// BLOCK_VERSION is also a valid version
|
|
91
|
+
modifier validVersion(uint16 _version) {
|
|
92
|
+
require(_version <= latestVersion || _version == BLOCK_VERSION, "LayerZero: invalid messaging library version");
|
|
93
|
+
_;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
//---------------------------------------------------------------------------
|
|
97
|
+
// User Application Calls - Endpoint Interface
|
|
98
|
+
|
|
99
|
+
function send(
|
|
100
|
+
uint16 _dstChainId,
|
|
101
|
+
bytes calldata _destination,
|
|
102
|
+
bytes calldata _payload,
|
|
103
|
+
address payable _refundAddress,
|
|
104
|
+
address _zroPaymentAddress,
|
|
105
|
+
bytes calldata _adapterParams
|
|
106
|
+
) external payable override sendNonReentrant {
|
|
107
|
+
LibraryConfig storage uaConfig = uaConfigLookup[msg.sender];
|
|
108
|
+
uint64 nonce = ++outboundNonce[_dstChainId][msg.sender];
|
|
109
|
+
_getSendLibrary(uaConfig).send{value: msg.value}(
|
|
110
|
+
msg.sender,
|
|
111
|
+
nonce,
|
|
112
|
+
_dstChainId,
|
|
113
|
+
_destination,
|
|
114
|
+
_payload,
|
|
115
|
+
_refundAddress,
|
|
116
|
+
_zroPaymentAddress,
|
|
117
|
+
_adapterParams
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
//---------------------------------------------------------------------------
|
|
122
|
+
// authenticated Library (msg.sender) Calls to pass through Endpoint to UA (dstAddress)
|
|
123
|
+
function receivePayload(
|
|
124
|
+
uint16 _srcChainId,
|
|
125
|
+
bytes calldata _srcAddress,
|
|
126
|
+
address _dstAddress,
|
|
127
|
+
uint64 _nonce,
|
|
128
|
+
uint _gasLimit,
|
|
129
|
+
bytes calldata _payload
|
|
130
|
+
) external override receiveNonReentrant {
|
|
131
|
+
// assert and increment the nonce. no message shuffling
|
|
132
|
+
require(_nonce == ++inboundNonce[_srcChainId][_srcAddress], "LayerZero: wrong nonce");
|
|
133
|
+
|
|
134
|
+
LibraryConfig storage uaConfig = uaConfigLookup[_dstAddress];
|
|
135
|
+
|
|
136
|
+
// authentication to prevent cross-version message validation
|
|
137
|
+
// protects against a malicious library from passing arbitrary data
|
|
138
|
+
if (uaConfig.receiveVersion == DEFAULT_VERSION) {
|
|
139
|
+
require(defaultReceiveLibraryAddress == msg.sender, "LayerZero: invalid default library");
|
|
140
|
+
} else {
|
|
141
|
+
require(uaConfig.receiveLibraryAddress == msg.sender, "LayerZero: invalid library");
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// block if any message blocking
|
|
145
|
+
StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
|
|
146
|
+
require(sp.payloadHash == bytes32(0), "LayerZero: in message blocking");
|
|
147
|
+
|
|
148
|
+
try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _srcAddress, _nonce, _payload) {
|
|
149
|
+
// success, do nothing, end of the message delivery
|
|
150
|
+
} catch (bytes memory reason) {
|
|
151
|
+
// revert nonce if any uncaught errors/exceptions if the ua chooses the blocking mode
|
|
152
|
+
storedPayload[_srcChainId][_srcAddress] = StoredPayload(
|
|
153
|
+
uint64(_payload.length),
|
|
154
|
+
_dstAddress,
|
|
155
|
+
keccak256(_payload)
|
|
156
|
+
);
|
|
157
|
+
emit PayloadStored(_srcChainId, _srcAddress, _dstAddress, _nonce, _payload, reason);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function retryPayload(
|
|
162
|
+
uint16 _srcChainId,
|
|
163
|
+
bytes calldata _srcAddress,
|
|
164
|
+
bytes calldata _payload
|
|
165
|
+
) external override receiveNonReentrant {
|
|
166
|
+
StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
|
|
167
|
+
require(sp.payloadHash != bytes32(0), "LayerZero: no stored payload");
|
|
168
|
+
require(
|
|
169
|
+
_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash,
|
|
170
|
+
"LayerZero: invalid payload"
|
|
171
|
+
);
|
|
172
|
+
|
|
173
|
+
address dstAddress = sp.dstAddress;
|
|
174
|
+
// empty the storedPayload
|
|
175
|
+
sp.payloadLength = 0;
|
|
176
|
+
sp.dstAddress = address(0);
|
|
177
|
+
sp.payloadHash = bytes32(0);
|
|
178
|
+
|
|
179
|
+
uint64 nonce = inboundNonce[_srcChainId][_srcAddress];
|
|
180
|
+
|
|
181
|
+
ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _srcAddress, nonce, _payload);
|
|
182
|
+
emit PayloadCleared(_srcChainId, _srcAddress, nonce, dstAddress);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
//---------------------------------------------------------------------------
|
|
186
|
+
// Owner Calls, only new library version upgrade (3 steps)
|
|
187
|
+
|
|
188
|
+
// note libraryLookup[0] = 0x0, no library implementation
|
|
189
|
+
// LIBRARY UPGRADE step 1: set _newLayerZeroLibraryAddress be the new version
|
|
190
|
+
function newVersion(address _newLayerZeroLibraryAddress) external onlyOwner {
|
|
191
|
+
require(_newLayerZeroLibraryAddress != address(0x0), "LayerZero: new version cannot be zero address");
|
|
192
|
+
require(latestVersion < 65535, "LayerZero: can not add new messaging library");
|
|
193
|
+
latestVersion++;
|
|
194
|
+
libraryLookup[latestVersion] = ILayerZeroMessagingLibrary(_newLayerZeroLibraryAddress);
|
|
195
|
+
emit NewLibraryVersionAdded(latestVersion);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// LIBRARY UPGRADE step 2: stop sending messages from the old version
|
|
199
|
+
function setDefaultSendVersion(
|
|
200
|
+
uint16 _newDefaultSendVersion
|
|
201
|
+
) external onlyOwner validVersion(_newDefaultSendVersion) {
|
|
202
|
+
require(_newDefaultSendVersion != DEFAULT_VERSION, "LayerZero: default send version must > 0");
|
|
203
|
+
defaultSendVersion = _newDefaultSendVersion;
|
|
204
|
+
defaultSendLibrary = libraryLookup[defaultSendVersion];
|
|
205
|
+
emit DefaultSendVersionSet(_newDefaultSendVersion);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// LIBRARY UPGRADE step 3: stop receiving messages from the old version
|
|
209
|
+
function setDefaultReceiveVersion(
|
|
210
|
+
uint16 _newDefaultReceiveVersion
|
|
211
|
+
) external onlyOwner validVersion(_newDefaultReceiveVersion) {
|
|
212
|
+
require(_newDefaultReceiveVersion != DEFAULT_VERSION, "LayerZero: default receive version must > 0");
|
|
213
|
+
defaultReceiveVersion = _newDefaultReceiveVersion;
|
|
214
|
+
defaultReceiveLibraryAddress = address(libraryLookup[defaultReceiveVersion]);
|
|
215
|
+
emit DefaultReceiveVersionSet(_newDefaultReceiveVersion);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
//---------------------------------------------------------------------------
|
|
219
|
+
// User Application Calls - UA set/get Interface
|
|
220
|
+
|
|
221
|
+
function setConfig(
|
|
222
|
+
uint16 _version,
|
|
223
|
+
uint16 _chainId,
|
|
224
|
+
uint _configType,
|
|
225
|
+
bytes calldata _config
|
|
226
|
+
) external override validVersion(_version) {
|
|
227
|
+
if (_version == DEFAULT_VERSION) {
|
|
228
|
+
require(
|
|
229
|
+
defaultSendVersion == defaultReceiveVersion,
|
|
230
|
+
"LayerZero: can not set Config during DEFAULT migration"
|
|
231
|
+
);
|
|
232
|
+
_version = defaultSendVersion;
|
|
233
|
+
}
|
|
234
|
+
require(_version != BLOCK_VERSION, "LayerZero: can not set config for BLOCK_VERSION");
|
|
235
|
+
libraryLookup[_version].setConfig(_chainId, msg.sender, _configType, _config);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Migration step 1: set the send version
|
|
239
|
+
// Define what library the UA points too
|
|
240
|
+
function setSendVersion(uint16 _newVersion) external override validVersion(_newVersion) {
|
|
241
|
+
// write into config
|
|
242
|
+
LibraryConfig storage uaConfig = uaConfigLookup[msg.sender];
|
|
243
|
+
uaConfig.sendVersion = _newVersion;
|
|
244
|
+
// the libraryLookup[BLOCK_VERSION || DEFAULT_VERSION] = 0x0
|
|
245
|
+
uaConfig.sendLibrary = libraryLookup[_newVersion];
|
|
246
|
+
emit UaSendVersionSet(msg.sender, _newVersion);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// Migration step 2: set the receive version
|
|
250
|
+
// after all messages sent from the old version are received
|
|
251
|
+
// the UA can now safely switch to the new receive version
|
|
252
|
+
// it is the UA's responsibility make sure all messages from the old version are processed
|
|
253
|
+
function setReceiveVersion(uint16 _newVersion) external override validVersion(_newVersion) {
|
|
254
|
+
// write into config
|
|
255
|
+
LibraryConfig storage uaConfig = uaConfigLookup[msg.sender];
|
|
256
|
+
uaConfig.receiveVersion = _newVersion;
|
|
257
|
+
// the libraryLookup[BLOCK_VERSION || DEFAULT_VERSION] = 0x0
|
|
258
|
+
uaConfig.receiveLibraryAddress = address(libraryLookup[_newVersion]);
|
|
259
|
+
emit UaReceiveVersionSet(msg.sender, _newVersion);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override {
|
|
263
|
+
StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
|
|
264
|
+
// revert if no messages are cached. safeguard malicious UA behaviour
|
|
265
|
+
require(sp.payloadHash != bytes32(0), "LayerZero: no stored payload");
|
|
266
|
+
require(sp.dstAddress == msg.sender, "LayerZero: invalid caller");
|
|
267
|
+
|
|
268
|
+
// empty the storedPayload
|
|
269
|
+
sp.payloadLength = 0;
|
|
270
|
+
sp.dstAddress = address(0);
|
|
271
|
+
sp.payloadHash = bytes32(0);
|
|
272
|
+
|
|
273
|
+
// emit the event with the new nonce
|
|
274
|
+
emit UaForceResumeReceive(_srcChainId, _srcAddress);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
//---------------------------------------------------------------------------
|
|
278
|
+
// view helper function
|
|
279
|
+
|
|
280
|
+
function estimateFees(
|
|
281
|
+
uint16 _dstChainId,
|
|
282
|
+
address _userApplication,
|
|
283
|
+
bytes calldata _payload,
|
|
284
|
+
bool _payInZRO,
|
|
285
|
+
bytes calldata _adapterParams
|
|
286
|
+
) external view override returns (uint nativeFee, uint zroFee) {
|
|
287
|
+
LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
|
|
288
|
+
ILayerZeroMessagingLibrary lib = uaConfig.sendVersion == DEFAULT_VERSION
|
|
289
|
+
? defaultSendLibrary
|
|
290
|
+
: uaConfig.sendLibrary;
|
|
291
|
+
return lib.estimateFees(_dstChainId, _userApplication, _payload, _payInZRO, _adapterParams);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
function _getSendLibrary(LibraryConfig storage uaConfig) internal view returns (ILayerZeroMessagingLibrary) {
|
|
295
|
+
if (uaConfig.sendVersion == DEFAULT_VERSION) {
|
|
296
|
+
// check if the in send-blocking upgrade
|
|
297
|
+
require(defaultSendVersion != BLOCK_VERSION, "LayerZero: default in BLOCK_VERSION");
|
|
298
|
+
return defaultSendLibrary;
|
|
299
|
+
} else {
|
|
300
|
+
// check if the in send-blocking upgrade
|
|
301
|
+
require(uaConfig.sendVersion != BLOCK_VERSION, "LayerZero: in BLOCK_VERSION");
|
|
302
|
+
return uaConfig.sendLibrary;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
function getSendLibraryAddress(
|
|
307
|
+
address _userApplication
|
|
308
|
+
) external view override returns (address sendLibraryAddress) {
|
|
309
|
+
LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
|
|
310
|
+
uint16 sendVersion = uaConfig.sendVersion;
|
|
311
|
+
require(sendVersion != BLOCK_VERSION, "LayerZero: send version is BLOCK_VERSION");
|
|
312
|
+
if (sendVersion == DEFAULT_VERSION) {
|
|
313
|
+
require(defaultSendVersion != BLOCK_VERSION, "LayerZero: send version (default) is BLOCK_VERSION");
|
|
314
|
+
sendLibraryAddress = address(defaultSendLibrary);
|
|
315
|
+
} else {
|
|
316
|
+
sendLibraryAddress = address(uaConfig.sendLibrary);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
function getReceiveLibraryAddress(
|
|
321
|
+
address _userApplication
|
|
322
|
+
) external view override returns (address receiveLibraryAddress) {
|
|
323
|
+
LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
|
|
324
|
+
uint16 receiveVersion = uaConfig.receiveVersion;
|
|
325
|
+
require(receiveVersion != BLOCK_VERSION, "LayerZero: receive version is BLOCK_VERSION");
|
|
326
|
+
if (receiveVersion == DEFAULT_VERSION) {
|
|
327
|
+
require(defaultReceiveVersion != BLOCK_VERSION, "LayerZero: receive version (default) is BLOCK_VERSION");
|
|
328
|
+
receiveLibraryAddress = defaultReceiveLibraryAddress;
|
|
329
|
+
} else {
|
|
330
|
+
receiveLibraryAddress = uaConfig.receiveLibraryAddress;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
function isSendingPayload() external view override returns (bool) {
|
|
335
|
+
return _send_entered_state == _ENTERED;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
function isReceivingPayload() external view override returns (bool) {
|
|
339
|
+
return _receive_entered_state == _ENTERED;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view override returns (uint64) {
|
|
343
|
+
return inboundNonce[_srcChainId][_srcAddress];
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view override returns (uint64) {
|
|
347
|
+
return outboundNonce[_dstChainId][_srcAddress];
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
function getChainId() external view override returns (uint16) {
|
|
351
|
+
return chainId;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
function getSendVersion(address _userApplication) external view override returns (uint16) {
|
|
355
|
+
LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
|
|
356
|
+
return uaConfig.sendVersion == DEFAULT_VERSION ? defaultSendVersion : uaConfig.sendVersion;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
function getReceiveVersion(address _userApplication) external view override returns (uint16) {
|
|
360
|
+
LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
|
|
361
|
+
return uaConfig.receiveVersion == DEFAULT_VERSION ? defaultReceiveVersion : uaConfig.receiveVersion;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
function getConfig(
|
|
365
|
+
uint16 _version,
|
|
366
|
+
uint16 _chainId,
|
|
367
|
+
address _userApplication,
|
|
368
|
+
uint _configType
|
|
369
|
+
) external view override validVersion(_version) returns (bytes memory) {
|
|
370
|
+
if (_version == DEFAULT_VERSION) {
|
|
371
|
+
require(defaultSendVersion == defaultReceiveVersion, "LayerZero: no DEFAULT config while migration");
|
|
372
|
+
_version = defaultSendVersion;
|
|
373
|
+
}
|
|
374
|
+
require(_version != BLOCK_VERSION, "LayerZero: can not get config for BLOCK_VERSION");
|
|
375
|
+
return libraryLookup[_version].getConfig(_chainId, _userApplication, _configType);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view override returns (bool) {
|
|
379
|
+
StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
|
|
380
|
+
return sp.payloadHash != bytes32(0);
|
|
381
|
+
}
|
|
382
|
+
}
|