@gooddollar/goodprotocol 2.0.10 → 2.0.12
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/artifacts/abis/BuyGDClone.min.json +1 -1
- package/artifacts/abis/BuyGDCloneFactory.min.json +1 -1
- package/artifacts/abis/FuseStakingV3.min.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
- package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
- package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +66 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
- package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
- package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
- package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
- package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +1 -1
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
- package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.json +27 -2
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.json +52 -2
- package/artifacts/contracts/utils/BuyGDClone.sol/ISwapRouter.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
- package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
- package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
- package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
- package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
- package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
- package/contracts/staking/FuseStakingV3.sol +79 -67
- package/contracts/utils/BuyGDClone.sol +59 -58
- package/package.json +3 -1
- package/releases/deployment.json +3 -1
- package/types/BuyGDClone.ts +42 -12
- package/types/BuyGDCloneFactory.ts +68 -0
- package/types/FuseStakingV3.ts +111 -0
- package/types/IStaticOracle.ts +507 -0
- package/types/IUniswapV3Factory.ts +333 -0
- package/types/factories/BuyGDCloneFactory__factory.ts +51 -1
- package/types/factories/BuyGDClone__factory.ts +26 -1
- package/types/factories/FuseStakingV3__factory.ts +65 -1
- package/types/factories/IStaticOracle__factory.ts +316 -0
- package/types/factories/IUniswapV3Factory__factory.ts +222 -0
- package/types/hardhat.d.ts +18 -9
- package/types/index.ts +4 -2
- package/yarn.lock +116 -2
- package/artifacts/abis/IStaticOracle.min.json +0 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/IStaticOracle.dbg.json +0 -4
- package/artifacts/contracts/utils/BuyGDClone.sol/IStaticOracle.json +0 -79
|
@@ -279,6 +279,19 @@ const _abi = [
|
|
|
279
279
|
stateMutability: "nonpayable",
|
|
280
280
|
type: "function",
|
|
281
281
|
},
|
|
282
|
+
{
|
|
283
|
+
inputs: [],
|
|
284
|
+
name: "communityPool",
|
|
285
|
+
outputs: [
|
|
286
|
+
{
|
|
287
|
+
internalType: "address payable",
|
|
288
|
+
name: "",
|
|
289
|
+
type: "address",
|
|
290
|
+
},
|
|
291
|
+
],
|
|
292
|
+
stateMutability: "view",
|
|
293
|
+
type: "function",
|
|
294
|
+
},
|
|
282
295
|
{
|
|
283
296
|
inputs: [],
|
|
284
297
|
name: "communityPoolBalance",
|
|
@@ -331,6 +344,19 @@ const _abi = [
|
|
|
331
344
|
stateMutability: "view",
|
|
332
345
|
type: "function",
|
|
333
346
|
},
|
|
347
|
+
{
|
|
348
|
+
inputs: [],
|
|
349
|
+
name: "gasFaucet",
|
|
350
|
+
outputs: [
|
|
351
|
+
{
|
|
352
|
+
internalType: "address payable",
|
|
353
|
+
name: "",
|
|
354
|
+
type: "address",
|
|
355
|
+
},
|
|
356
|
+
],
|
|
357
|
+
stateMutability: "view",
|
|
358
|
+
type: "function",
|
|
359
|
+
},
|
|
334
360
|
{
|
|
335
361
|
inputs: [],
|
|
336
362
|
name: "guardian",
|
|
@@ -388,6 +414,19 @@ const _abi = [
|
|
|
388
414
|
stateMutability: "view",
|
|
389
415
|
type: "function",
|
|
390
416
|
},
|
|
417
|
+
{
|
|
418
|
+
inputs: [],
|
|
419
|
+
name: "lastFaucetBalance",
|
|
420
|
+
outputs: [
|
|
421
|
+
{
|
|
422
|
+
internalType: "uint256",
|
|
423
|
+
name: "",
|
|
424
|
+
type: "uint256",
|
|
425
|
+
},
|
|
426
|
+
],
|
|
427
|
+
stateMutability: "view",
|
|
428
|
+
type: "function",
|
|
429
|
+
},
|
|
391
430
|
{
|
|
392
431
|
inputs: [],
|
|
393
432
|
name: "maxSlippageRatio",
|
|
@@ -641,6 +680,31 @@ const _abi = [
|
|
|
641
680
|
stateMutability: "view",
|
|
642
681
|
type: "function",
|
|
643
682
|
},
|
|
683
|
+
{
|
|
684
|
+
inputs: [
|
|
685
|
+
{
|
|
686
|
+
internalType: "uint256",
|
|
687
|
+
name: "_stakeBackRatio",
|
|
688
|
+
type: "uint256",
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
internalType: "uint256",
|
|
692
|
+
name: "_communityPoolRatio",
|
|
693
|
+
type: "uint256",
|
|
694
|
+
},
|
|
695
|
+
],
|
|
696
|
+
name: "updateSettings",
|
|
697
|
+
outputs: [],
|
|
698
|
+
stateMutability: "nonpayable",
|
|
699
|
+
type: "function",
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
inputs: [],
|
|
703
|
+
name: "upgrade",
|
|
704
|
+
outputs: [],
|
|
705
|
+
stateMutability: "nonpayable",
|
|
706
|
+
type: "function",
|
|
707
|
+
},
|
|
644
708
|
{
|
|
645
709
|
inputs: [
|
|
646
710
|
{
|
|
@@ -693,7 +757,7 @@ const _abi = [
|
|
|
693
757
|
];
|
|
694
758
|
|
|
695
759
|
const _bytecode =
|
|
696
|
-
"0x608060405234801561001057600080fd5b50613153806100206000396000f3fe6080604052600436106101da5760003560e01c806304d26ebf146101e6578063094e23f91461020f57806312424e3f1461023c578063150d7e471461025357806316c38b3c1461026957806317dfb94d1461028957806326476204146102be5780632681f7e4146102e15780632c336822146103015780632e1a7d4d1461032157806335aa2e44146103415780633a4b66f1146103615780633fb1ccf11461036957806340a141ff14610389578063452a9320146103a9578063485cc955146103c95780634d238c8e146103e95780635c975abb146104095780636021a9d51461042a57806370a0823114610440578063715018a61461047657806374a7262e1461048b5780637c557046146104a157806380d04de8146104c157806381028f67146104d6578063853828b6146104f65780638918c4a21461050b57806389a30271146105215780638a0dac4a146105415780638bdb2afa146105615780638da5cb5b146105815780638ef3f761146105965780639168ae72146105b6578063a5a90636146105e3578063bc8d9580146105f8578063bf79c67f1461060e578063c11a56301461062e578063c816841b14610644578063d22e9b0614610664578063d3a8c5f61461067a578063f2fde38b1461069a57600080fd5b366101e157005b600080fd5b3480156101f257600080fd5b506101fc606f5481565b6040519081526020015b60405180910390f35b34801561021b57600080fd5b5060765461022f906001600160a01b031681565b6040516102069190612b9a565b34801561024857600080fd5b506102516106ba565b005b34801561025f57600080fd5b506101fc60705481565b34801561027557600080fd5b50610251610284366004612bbc565b6107b4565b34801561029557600080fd5b506102a96102a4366004612bd9565b610805565b60408051928352602083019190915201610206565b6102d16102cc366004612c07565b610983565b6040519015158152602001610206565b3480156102ed57600080fd5b5060685461022f906001600160a01b031681565b34801561030d57600080fd5b5061025161031c366004612c07565b610b4f565b34801561032d57600080fd5b506101fc61033c366004612bd9565b610b79565b34801561034d57600080fd5b5061022f61035c366004612bd9565b610e1f565b6102d1610e49565b34801561037557600080fd5b5060695461022f906001600160a01b031681565b34801561039557600080fd5b506102516103a4366004612c07565b610e5a565b3480156103b557600080fd5b5060775461022f906001600160a01b031681565b3480156103d557600080fd5b506102516103e4366004612c24565b61101e565b3480156103f557600080fd5b50610251610404366004612c07565b6113d4565b34801561041557600080fd5b506076546102d190600160a01b900460ff1681565b34801561043657600080fd5b506101fc606e5481565b34801561044c57600080fd5b506101fc61045b366004612c07565b6001600160a01b031660009081526065602052604090205490565b34801561048257600080fd5b5061025161141c565b34801561049757600080fd5b506101fc60745481565b3480156104ad57600080fd5b506102a96104bc366004612bd9565b611430565b3480156104cd57600080fd5b506101fc61171b565b3480156104e257600080fd5b50606a5461022f906001600160a01b031681565b34801561050257600080fd5b506102516117f7565b34801561051757600080fd5b506101fc606d5481565b34801561052d57600080fd5b5060755461022f906001600160a01b031681565b34801561054d57600080fd5b5061025161055c366004612c07565b6119aa565b34801561056d57600080fd5b50606b5461022f906001600160a01b031681565b34801561058d57600080fd5b5061022f6119f6565b3480156105a257600080fd5b5060675461022f906001600160a01b031681565b3480156105c257600080fd5b506101fc6105d1366004612c07565b60656020526000908152604090205481565b3480156105ef57600080fd5b50610251611a05565b34801561060457600080fd5b506101fc60735481565b34801561061a57600080fd5b506102a9610629366004612c5d565b611e28565b34801561063a57600080fd5b506101fc60715481565b34801561065057600080fd5b50606c5461022f906001600160a01b031681565b34801561067057600080fd5b506101fc60725481565b34801561068657600080fd5b50610251610695366004612c89565b611e6e565b3480156106a657600080fd5b506102516106b5366004612c07565b611f24565b60765460785460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926106f29291169060001990600401612cb5565b6020604051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190612cce565b5060755460685460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261076e9291169060001990600401612cb5565b6020604051808303816000875af115801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b19190612cce565b50565b6077546001600160a01b031633146107e75760405162461bcd60e51b81526004016107de90612ceb565b60405180910390fd5b60768054911515600160a01b0260ff60a01b19909216919091179055565b606b54606854604080516315ab88c960e31b815290516000938493849384936001600160a01b039384169363e6a4390593169163ad5c46489160048083019260209291908290030181865afa158015610862573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108869190612d11565b6069546040516001600160e01b031960e085901b1681526108b492916001600160a01b031690600401612d2e565b602060405180830381865afa1580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f59190612d11565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610932573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109569190612d5f565b506001600160701b031691506001600160701b03169150610978828287611e28565b935093505050915091565b6077546000906001600160a01b031633146109b05760405162461bcd60e51b81526004016107de90612ceb565b600034116109f45760405162461bcd60e51b815260206004820152601160248201527007374616b65206d757374206265203e203607c1b60448201526064016107de565b606654610a3c5760405162461bcd60e51b81526020600482015260166024820152756e6f20617070726f7665642076616c696461746f727360501b60448201526064016107de565b6000805b6001600160a01b03841615801590610a59575060665481105b15610ab057836001600160a01b031660668281548110610a7b57610a7b612daf565b6000918252602090912001546001600160a01b031614610a9e5760019150610ab0565b80610aa881612ddb565b915050610a40565b506001600160a01b0383161580610ac45750805b610b105760405162461bcd60e51b815260206004820152601e60248201527f76616c696461746f72206e6f7420696e20617070726f766564206c697374000060448201526064016107de565b6000610b1c3485611f9a565b33600090815260656020526040812080549293503492909190610b40908490612df4565b9091555090925050505b919050565b610b57612203565b606a80546001600160a01b0319166001600160a01b0392909216919091179055565b60003031818315610b8a5783610b9b565b336000908152606560205260409020545b9050808015801590610bbc5750336000908152606560205260409020548211155b610c025760405162461bcd60e51b81526020600482015260176024820152761a5b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016107de565b606654600090610c13908790612262565b905060005b606654811015610d8257606754606680546000926001600160a01b0316916321429e609130919086908110610c4f57610c4f612daf565b6000918252602090912001546040516001600160e01b031960e085901b168152610c8692916001600160a01b031690600401612d2e565b602060405180830381865afa158015610ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc79190612e07565b905080600003610cd75750610d70565b828111610d2157610d0f60668381548110610cf457610cf4612daf565b6000918252602090912001546001600160a01b031682612275565b50610d1a848261234c565b9350610d60565b610d5260668381548110610d3757610d37612daf565b6000918252602090912001546001600160a01b031684612275565b50610d5d848461234c565b93505b83600003610d6e5750610d82565b505b80610d7a81612ddb565b915050610c18565b50610d8e30318561234c565b935083831115610d9c578392505b33600090815260656020526040902054610db6908461234c565b336000908152606560205260409020558215610e155760405133908490600081818185875af1925050503d8060008114610e0c576040519150601f19603f3d011682016040523d82523d6000602084013e610e11565b606091505b5050505b5090949350505050565b60668181548110610e2f57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000610e556000610983565b905090565b610e62612203565b60675460405163010a14f360e51b81526000916001600160a01b0316906321429e6090610e959030908690600401612d2e565b602060405180830381865afa158015610eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed69190612e07565b90508015610efa573031610eea8383612275565b5080303103610ef857505050565b505b60005b60665481101561101957826001600160a01b031660668281548110610f2457610f24612daf565b6000918252602090912001546001600160a01b03160361100757606654610f4d90600190612e20565b811015610fcf5760668054610f6490600190612e20565b81548110610f7457610f74612daf565b600091825260209091200154606680546001600160a01b039092169183908110610fa057610fa0612daf565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b6066805480610fe057610fe0612e33565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b8061101181612ddb565b915050610efd565b505050565b600054610100900460ff161580801561103e5750600054600160ff909116105b806110585750303b158015611058575060005460ff166001145b6110bb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107de565b6000805460ff1916600117905580156110de576000805461ff0019166101001790555b6110e6612358565b606780546001600160a01b0319908116733014ca10b91cb3d0ad85fef7a3cb95bcac9c0f7917909155606680546001810182556000919091526000805160206130fe83398151915201805490911673cb876a393f05a6677a8a029f1c6d7603b416c0a6179055618235606e819055607255610bb8606f55601e607055620186a06071556001600160a01b0383161561117e5782611194565b73e3f85aad0c8dd7337427b9df5d0fb741d65eeeb55b606880546001600160a01b039283166001600160a01b031991821681179092556069805493861693909116929092179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611201573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112259190612d11565b606b80546001600160a01b0319166001600160a01b03928316908117909155606854604080516315ab88c960e31b81529051929363e6a439059392169163ad5c4648916004808201926020929091908290030181865afa15801561128d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b19190612d11565b846040518363ffffffff1660e01b81526004016112cf929190612d2e565b602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190612d11565b606c80546001600160a01b03929092166001600160a01b031992831617905560788054821673dfe016328e7bcd6fa06614fe3af3877e931f7e0a17905560758054821673620fd5fa44be6af63715ef4e65ddfa0387ad13f51790556076805490911673249be57637d8b013ad64785404b24aebae9b098b1790558015611019576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6113dc612203565b606680546001810182556000919091526000805160206130fe8339815191520180546001600160a01b0319166001600160a01b0392909216919091179055565b611424612203565b61142e60006123c8565b565b606b54606854604080516315ab88c960e31b81529051600093849384936001600160a01b039283169363e6a43905939092169163ad5c4648916004808201926020929091908290030181865afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612d11565b6076546040516001600160e01b031960e085901b1681526114e092916001600160a01b031690600401612d2e565b602060405180830381865afa1580156114fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115219190612d11565b606b5460695460755460405163e6a4390560e01b81529394506000936001600160a01b039384169363e6a43905936115629390821692911690600401612d2e565b602060405180830381865afa15801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a39190612d11565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156115e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160a9190612d5f565b506001600160701b031691506001600160701b03169150600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116869190612d5f565b506001600160701b03918216935016905060006116b5826116af85670de0b6b3a764000061241a565b90612262565b905060006116cf826116af8d670de0b6b3a764000061241a565b90506000806116ed6116e68864e8d4a51000612e49565b8985611e28565b9b5091508a905061170a670de0b6b3a76400006116af848761241a565b9b5050505050505050505050915091565b600080805b6066548110156117f157606754606680546000926001600160a01b0316916321429e60913091908690811061175757611757612daf565b6000918252602090912001546040516001600160e01b031960e085901b16815261178e92916001600160a01b031690600401612d2e565b602060405180830381865afa1580156117ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cf9190612e07565b90506117db8184612df4565b92505080806117e990612ddb565b915050611720565b50919050565b6077546001600160a01b031633146118215760405162461bcd60e51b81526004016107de90612ceb565b60005b60665481101561190e57606754606680546000926001600160a01b0316916321429e60913091908690811061185b5761185b612daf565b6000918252602090912001546040516001600160e01b031960e085901b16815261189292916001600160a01b031690600401612d2e565b602060405180830381865afa1580156118af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d39190612e07565b9050806000036118e357506118fc565b6118f960668381548110610cf457610cf4612daf565b50505b8061190681612ddb565b915050611824565b506000607455303180156107b157604051600090339083908381818185875af1925050503d806000811461195e576040519150601f19603f3d011682016040523d82523d6000602084013e611963565b606091505b50509050806119a65760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b60448201526064016107de565b5050565b6077546001600160a01b031633146119d45760405162461bcd60e51b81526004016107de90612ceb565b607780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031690565b607654600160a01b900460ff1615611a5b5760405162461bcd60e51b81526020600482015260196024820152781d589a4818dbdb1b1958dd1a5bdb881a5cc81c185d585cd959603a1b60448201526064016107de565b606a5460408051635c9302c960e01b815290516000926001600160a01b031691635c9302c99160048083019260209291908290030181865afa158015611aa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac99190612e07565b9050606d548103611b285760405162461bcd60e51b8152602060048201526024808201527f63616e20636f6c6c656374206f6e6c79206f6e636520696e206120756269206360448201526379636c6560e01b60648201526084016107de565b6000607454611b35303190565b611b3f9190612e20565b9050600081607454611b519190612df4565b11611b975760405162461bcd60e51b81526020600482015260166024820152751b9bc819585c9b9a5b99dcc81d1bc818dbdb1b1958dd60521b60448201526064016107de565b606d829055607154606e54600091611bbe916116af90611bb79083612e20565b859061241a565b90506000611bcc8284612e20565b90506000611be660745484611be19190612df4565b612426565b905080600081518110611bfb57611bfb612daf565b602002602001015160745484611c119190612df4565b611c1b9190612e20565b607455611c29826000611f9a565b5060008160018351611c3b9190612e20565b81518110611c4b57611c4b612daf565b602002602001015190506000611c726071546116af6070548561241a90919063ffffffff16565b90508015611cf15760695460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90611cac9033908590600401612cb5565b6020604051808303816000875af1158015611ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cef9190612cce565b505b611cfb8183612e20565b91506000611d1a6071546116af6072548661241a90919063ffffffff16565b90506000611d28848361234c565b606954606a5460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb92611d609216908590600401612cb5565b6020604051808303816000875af1158015611d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da39190612cce565b508160736000828254611db69190612df4565b90915550506074546040805183815260208101859052908101869052606081018a905260808101919091523360a082015260c0810184905289907f49a079c90e07ed02ae8283e86eaeb643c637381d30aa7ba06d155e5b744a85439060e00160405180910390a2505050505050505050565b600080607154606f5486611e3c9190612e49565b611e469190612e68565b9150828210611e555782611e57565b815b9150611e64828686612745565b9050935093915050565b6077546001600160a01b03163314611e985760405162461bcd60e51b81526004016107de90612ceb565b8060736000828254611eaa9190612e20565b909155505060695460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90611ee19085908590600401612cb5565b6020604051808303816000875af1158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190612cce565b611f2c612203565b6001600160a01b038116611f915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107de565b6107b1816123c8565b6066546000908103611fae575060006121fd565b6001600160a01b0382161561202a576067546040516317066a5760e21b81526001600160a01b0390911690635c19a95c908590611fef908690600401612b9a565b6000604051808303818588803b15801561200857600080fd5b505af115801561201c573d6000803e3d6000fd5b5050505050600190506121fd565b6066546000908461203961171b565b6120439190612df4565b61204d9190612e68565b90508360005b606654811080156120645750600082115b156121f557606754606680546000926001600160a01b0316916321429e60913091908690811061209657612096612daf565b6000918252602090912001546040516001600160e01b031960e085901b1681526120cd92916001600160a01b031690600401612d2e565b602060405180830381865afa1580156120ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210e9190612e07565b9050838110156121e2576000612124858361234c565b90508381106121335783612135565b805b606754606680549293506001600160a01b0390911691635c19a95c9184918790811061216357612163612daf565b6000918252602090912001546040516001600160e01b031960e085901b168152612199916001600160a01b031690600401612b9a565b6000604051808303818588803b1580156121b257600080fd5b505af11580156121c6573d6000803e3d6000fd5b50505050506121de818561234c90919063ffffffff16565b9350505b50806121ed81612ddb565b915050612053565b506001925050505b92915050565b3361220c6119f6565b6001600160a01b03161461142e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107de565b600061226e8284612e68565b9392505050565b60675460405163f3fef3a360e01b81526000916001600160a01b03169063f3fef3a3906122a89086908690600401612cb5565b600060405180830381600087803b1580156122c257600080fd5b505af19250505080156122d3575060015b612344576122df612e8a565b806308c379a00361230857506122f3612ee8565b806122fe575061230a565b60009150506121fd565b505b3d808015612334576040519150601f19603f3d011682016040523d82523d6000602084013e612339565b606091505b5060009150506121fd565b5060016121fd565b600061226e8284612e20565b600054610100900460ff166123c35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016107de565b61142e335b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061226e8284612e49565b6060600082116124485760405162461bcd60e51b81526004016107de90612f71565b60008061245484610805565b9150915060008061246486611430565b9150915060608285106125ee576040805160028082526060820183529091602083019080368337505060695482519293506001600160a01b03169183915060019081106124b3576124b3612daf565b6001600160a01b03928316602091820292909201810191909152606854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561250c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125309190612d11565b8160008151811061254357612543612daf565b6001600160a01b03928316602091820292909201015260685416637ff36ab586606461257088605f612e49565b61257a9190612e68565b8430426040518663ffffffff1660e01b815260040161259c9493929190612fe6565b60006040518083038185885af11580156125ba573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526125e3919081019061301b565b979650505050505050565b6000806125fa85612789565b60408051600280825260608201909252929450909250816020016020820280368337505060695482519295506001600160a01b031691859150600190811061264457612644612daf565b6001600160a01b0392831660209182029290920101526075548451911690849060009061267357612673612daf565b6001600160a01b039283166020918202929092010152606854600091166338ed17398460646126a389605f612e49565b6126ad9190612e68565b8730426040518663ffffffff1660e01b81526004016126d09594939291906130c1565b6000604051808303816000875af11580156126ef573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612717919081019061301b565b9050818160008151811061272d5761272d612daf565b60209081029190910101529998505050505050505050565b600080612754856103e5612e49565b905060006127628483612e49565b9050600082612773876103e8612e49565b61277d9190612df4565b90506125e38183612e68565b600080600083116127ac5760405162461bcd60e51b81526004016107de90612f71565b606b54606854604080516315ab88c960e31b815290516000936001600160a01b039081169363e6a439059391169163ad5c4648916004808201926020929091908290030181865afa158015612805573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128299190612d11565b6076546040516001600160e01b031960e085901b16815261285792916001600160a01b031690600401612d2e565b602060405180830381865afa158015612874573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128989190612d11565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156128db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ff9190612d5f565b506001600160701b031691506001600160701b0316915060008061292484848a611e28565b60408051600280825260608201835293955091935060009290602083019080368337505060765482519293506001600160a01b031691839150600190811061296e5761296e612daf565b6001600160a01b03928316602091820292909201810191909152606854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156129c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129eb9190612d11565b816000815181106129fe576129fe612daf565b6001600160a01b03928316602091820292909201015260685460009116637ff36ab5856064612a2e87605f612e49565b612a389190612e68565b8530426040518663ffffffff1660e01b8152600401612a5a9493929190612fe6565b60006040518083038185885af1158015612a78573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612aa1919081019061301b565b60785481519192506001600160a01b031690632b7f09239083906001908110612acc57612acc612daf565b602090810291909101015160765460755460405160e085901b6001600160e01b031916815260048101939093526001600160a01b039182166024840152166044820152606401600060405180830381600087803b158015612b2c57600080fd5b505af1158015612b40573d6000803e3d6000fd5b5050505080600081518110612b5757612b57612daf565b6020026020010151975064e8d4a5100081600181518110612b7a57612b7a612daf565b6020026020010151612b8c9190612e68565b985050505050505050915091565b6001600160a01b0391909116815260200190565b80151581146107b157600080fd5b600060208284031215612bce57600080fd5b813561226e81612bae565b600060208284031215612beb57600080fd5b5035919050565b6001600160a01b03811681146107b157600080fd5b600060208284031215612c1957600080fd5b813561226e81612bf2565b60008060408385031215612c3757600080fd5b8235612c4281612bf2565b91506020830135612c5281612bf2565b809150509250929050565b600080600060608486031215612c7257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612c9c57600080fd5b8235612ca781612bf2565b946020939093013593505050565b6001600160a01b03929092168252602082015260400190565b600060208284031215612ce057600080fd5b815161226e81612bae565b6020808252600c908201526b3737ba1033bab0b93234b0b760a11b604082015260600190565b600060208284031215612d2357600080fd5b815161226e81612bf2565b6001600160a01b0392831681529116602082015260400190565b80516001600160701b0381168114610b4a57600080fd5b600080600060608486031215612d7457600080fd5b612d7d84612d48565b9250612d8b60208501612d48565b9150604084015163ffffffff81168114612da457600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612ded57612ded612dc5565b5060010190565b808201808211156121fd576121fd612dc5565b600060208284031215612e1957600080fd5b5051919050565b818103818111156121fd576121fd612dc5565b634e487b7160e01b600052603160045260246000fd5b6000816000190483118215151615612e6357612e63612dc5565b500290565b600082612e8557634e487b7160e01b600052601260045260246000fd5b500490565b600060033d1115612ea35760046000803e5060005160e01c5b90565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715612ee157612ee1612ea6565b6040525050565b600060443d1015612ef65790565b6040516003193d81016004833e81513d6001600160401b038083116024840183101715612f2557505050505090565b8285019150815181811115612f3d5750505050505090565b843d8701016020828501011115612f575750505050505090565b612f6660208286010187612ebc565b509095945050505050565b60208082526017908201527606275792076616c75652073686f756c64206265203e203604c1b604082015260600190565b600081518084526020808501945080840160005b83811015612fdb5781516001600160a01b031687529582019590820190600101612fb6565b509495945050505050565b848152608060208201526000612fff6080830186612fa2565b6001600160a01b03949094166040830152506060015292915050565b6000602080838503121561302e57600080fd5b82516001600160401b038082111561304557600080fd5b818501915085601f83011261305957600080fd5b81518181111561306b5761306b612ea6565b8060051b915060405161308085840182612ebc565b8181529183018401918481018884111561309957600080fd5b938501935b838510156130b5578451815293850193850161309e565b50979650505050505050565b85815284602082015260a0604082015260006130e060a0830186612fa2565b6001600160a01b039490941660608301525060800152939250505056fe46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354a264697066735822122057842d7114bf054d91230666d3530d6d91edfd6949b9f4517422c07c71bf3f4664736f6c63430008100033";
|
|
760
|
+
"0x608060405234801561001057600080fd5b5061341d806100206000396000f3fe6080604052600436106102115760003560e01c8063015af8ee1461021d57806304d26ebf1461023f578063094e23f91461026857806312424e3f1461029557806314d140b0146102aa578063150d7e47146102ca57806316c38b3c146102e057806317dfb94d1461030057806326476204146103355780632681f7e4146103585780632c336822146103785780632e1a7d4d1461039857806335aa2e44146103b85780633a4b66f1146103d85780633fb1ccf1146103e057806340a141ff14610400578063452a932014610420578063485cc955146104405780634d238c8e146104605780635c975abb146104805780636021a9d5146104a157806370a08231146104b7578063715018a6146104ed57806374a7262e146105025780637c5570461461051857806380d04de81461053857806381028f671461054d57806381213f1a1461056d578063853828b6146105835780638918c4a21461059857806389a30271146105ae5780638a0dac4a146105ce5780638bdb2afa146105ee5780638da5cb5b1461060e5780638ef3f761146106235780639168ae7214610643578063a5a9063614610670578063bc8d958014610685578063bf79c67f1461069b578063c11a5630146106bb578063c816841b146106d1578063d22e9b06146106f1578063d3a8c5f614610707578063d55ec69714610727578063dd8f19101461073c578063f2fde38b1461075c57600080fd5b3661021857005b600080fd5b34801561022957600080fd5b5061023d610238366004612e42565b61077c565b005b34801561024b57600080fd5b50610255606f5481565b6040519081526020015b60405180910390f35b34801561027457600080fd5b50607654610288906001600160a01b031681565b60405161025f9190612e64565b3480156102a157600080fd5b5061023d6107b7565b3480156102b657600080fd5b50607a54610288906001600160a01b031681565b3480156102d657600080fd5b5061025560705481565b3480156102ec57600080fd5b5061023d6102fb366004612e86565b6108b1565b34801561030c57600080fd5b5061032061031b366004612ea3565b6108f9565b6040805192835260208301919091520161025f565b610348610343366004612ed1565b610a77565b604051901515815260200161025f565b34801561036457600080fd5b50606854610288906001600160a01b031681565b34801561038457600080fd5b5061023d610393366004612ed1565b610c43565b3480156103a457600080fd5b506102556103b3366004612ea3565b610c6d565b3480156103c457600080fd5b506102886103d3366004612ea3565b610f13565b610348610f3d565b3480156103ec57600080fd5b50606954610288906001600160a01b031681565b34801561040c57600080fd5b5061023d61041b366004612ed1565b610f4e565b34801561042c57600080fd5b50607754610288906001600160a01b031681565b34801561044c57600080fd5b5061023d61045b366004612eee565b611112565b34801561046c57600080fd5b5061023d61047b366004612ed1565b6114c8565b34801561048c57600080fd5b5060765461034890600160a01b900460ff1681565b3480156104ad57600080fd5b50610255606e5481565b3480156104c357600080fd5b506102556104d2366004612ed1565b6001600160a01b031660009081526065602052604090205490565b3480156104f957600080fd5b5061023d611510565b34801561050e57600080fd5b5061025560745481565b34801561052457600080fd5b50610320610533366004612ea3565b611524565b34801561054457600080fd5b5061025561180f565b34801561055957600080fd5b50606a54610288906001600160a01b031681565b34801561057957600080fd5b50610255607b5481565b34801561058f57600080fd5b5061023d6118eb565b3480156105a457600080fd5b50610255606d5481565b3480156105ba57600080fd5b50607554610288906001600160a01b031681565b3480156105da57600080fd5b5061023d6105e9366004612ed1565b611a9e565b3480156105fa57600080fd5b50606b54610288906001600160a01b031681565b34801561061a57600080fd5b50610288611aea565b34801561062f57600080fd5b50606754610288906001600160a01b031681565b34801561064f57600080fd5b5061025561065e366004612ed1565b60656020526000908152604090205481565b34801561067c57600080fd5b5061023d611af9565b34801561069157600080fd5b5061025560735481565b3480156106a757600080fd5b506103206106b6366004612f27565b611f99565b3480156106c757600080fd5b5061025560715481565b3480156106dd57600080fd5b50606c54610288906001600160a01b031681565b3480156106fd57600080fd5b5061025560725481565b34801561071357600080fd5b5061023d610722366004612f53565b611fdf565b34801561073357600080fd5b5061023d612095565b34801561074857600080fd5b50607954610288906001600160a01b031681565b34801561076857600080fd5b5061023d610777366004612ed1565b612109565b6077546001600160a01b031633146107af5760405162461bcd60e51b81526004016107a690612f7f565b60405180910390fd5b607255606e55565b60765460785460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926107ef9291169060001990600401612fa5565b6020604051808303816000875af115801561080e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108329190612fbe565b5060755460685460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261086b9291169060001990600401612fa5565b6020604051808303816000875af115801561088a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ae9190612fbe565b50565b6077546001600160a01b031633146108db5760405162461bcd60e51b81526004016107a690612f7f565b60768054911515600160a01b0260ff60a01b19909216919091179055565b606b54606854604080516315ab88c960e31b815290516000938493849384936001600160a01b039384169363e6a4390593169163ad5c46489160048083019260209291908290030181865afa158015610956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097a9190612fdb565b6069546040516001600160e01b031960e085901b1681526109a892916001600160a01b031690600401612ff8565b602060405180830381865afa1580156109c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e99190612fdb565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a9190613029565b506001600160701b031691506001600160701b03169150610a6c828287611f99565b935093505050915091565b6077546000906001600160a01b03163314610aa45760405162461bcd60e51b81526004016107a690612f7f565b60003411610ae85760405162461bcd60e51b815260206004820152601160248201527007374616b65206d757374206265203e203607c1b60448201526064016107a6565b606654610b305760405162461bcd60e51b81526020600482015260166024820152756e6f20617070726f7665642076616c696461746f727360501b60448201526064016107a6565b6000805b6001600160a01b03841615801590610b4d575060665481105b15610ba457836001600160a01b031660668281548110610b6f57610b6f613079565b6000918252602090912001546001600160a01b031614610b925760019150610ba4565b80610b9c816130a5565b915050610b34565b506001600160a01b0383161580610bb85750805b610c045760405162461bcd60e51b815260206004820152601e60248201527f76616c696461746f72206e6f7420696e20617070726f766564206c697374000060448201526064016107a6565b6000610c10348561217f565b33600090815260656020526040812080549293503492909190610c349084906130be565b9091555090925050505b919050565b610c4b6123e8565b606a80546001600160a01b0319166001600160a01b0392909216919091179055565b60003031818315610c7e5783610c8f565b336000908152606560205260409020545b9050808015801590610cb05750336000908152606560205260409020548211155b610cf65760405162461bcd60e51b81526020600482015260176024820152761a5b9d985b1a59081dda5d1a191c985dc8185b5bdd5b9d604a1b60448201526064016107a6565b606654600090610d07908790612447565b905060005b606654811015610e7657606754606680546000926001600160a01b0316916321429e609130919086908110610d4357610d43613079565b6000918252602090912001546040516001600160e01b031960e085901b168152610d7a92916001600160a01b031690600401612ff8565b602060405180830381865afa158015610d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbb91906130d1565b905080600003610dcb5750610e64565b828111610e1557610e0360668381548110610de857610de8613079565b6000918252602090912001546001600160a01b03168261245a565b50610e0e8482612531565b9350610e54565b610e4660668381548110610e2b57610e2b613079565b6000918252602090912001546001600160a01b03168461245a565b50610e518484612531565b93505b83600003610e625750610e76565b505b80610e6e816130a5565b915050610d0c565b50610e82303185612531565b935083831115610e90578392505b33600090815260656020526040902054610eaa9084612531565b336000908152606560205260409020558215610f095760405133908490600081818185875af1925050503d8060008114610f00576040519150601f19603f3d011682016040523d82523d6000602084013e610f05565b606091505b5050505b5090949350505050565b60668181548110610f2357600080fd5b6000918252602090912001546001600160a01b0316905081565b6000610f496000610a77565b905090565b610f566123e8565b60675460405163010a14f360e51b81526000916001600160a01b0316906321429e6090610f899030908690600401612ff8565b602060405180830381865afa158015610fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fca91906130d1565b90508015610fee573031610fde838361245a565b5080303103610fec57505050565b505b60005b60665481101561110d57826001600160a01b03166066828154811061101857611018613079565b6000918252602090912001546001600160a01b0316036110fb57606654611041906001906130ea565b8110156110c35760668054611058906001906130ea565b8154811061106857611068613079565b600091825260209091200154606680546001600160a01b03909216918390811061109457611094613079565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b60668054806110d4576110d46130fd565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b80611105816130a5565b915050610ff1565b505050565b600054610100900460ff16158080156111325750600054600160ff909116105b8061114c5750303b15801561114c575060005460ff166001145b6111af5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107a6565b6000805460ff1916600117905580156111d2576000805461ff0019166101001790555b6111da61253d565b606780546001600160a01b0319908116733014ca10b91cb3d0ad85fef7a3cb95bcac9c0f7917909155606680546001810182556000919091526000805160206133c883398151915201805490911673cb876a393f05a6677a8a029f1c6d7603b416c0a6179055618235606e819055607255610bb8606f55601e607055620186a06071556001600160a01b038316156112725782611288565b73e3f85aad0c8dd7337427b9df5d0fb741d65eeeb55b606880546001600160a01b039283166001600160a01b031991821681179092556069805493861693909116929092179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156112f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113199190612fdb565b606b80546001600160a01b0319166001600160a01b03928316908117909155606854604080516315ab88c960e31b81529051929363e6a439059392169163ad5c4648916004808201926020929091908290030181865afa158015611381573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a59190612fdb565b846040518363ffffffff1660e01b81526004016113c3929190612ff8565b602060405180830381865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190612fdb565b606c80546001600160a01b03929092166001600160a01b031992831617905560788054821673dfe016328e7bcd6fa06614fe3af3877e931f7e0a17905560758054821673620fd5fa44be6af63715ef4e65ddfa0387ad13f51790556076805490911673249be57637d8b013ad64785404b24aebae9b098b179055801561110d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6114d06123e8565b606680546001810182556000919091526000805160206133c88339815191520180546001600160a01b0319166001600160a01b0392909216919091179055565b6115186123e8565b61152260006125ad565b565b606b54606854604080516315ab88c960e31b81529051600093849384936001600160a01b039283169363e6a43905939092169163ad5c4648916004808201926020929091908290030181865afa158015611582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a69190612fdb565b6076546040516001600160e01b031960e085901b1681526115d492916001600160a01b031690600401612ff8565b602060405180830381865afa1580156115f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116159190612fdb565b606b5460695460755460405163e6a4390560e01b81529394506000936001600160a01b039384169363e6a43905936116569390821692911690600401612ff8565b602060405180830381865afa158015611673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116979190612fdb565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156116da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fe9190613029565b506001600160701b031691506001600160701b03169150600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177a9190613029565b506001600160701b03918216935016905060006117a9826117a385670de0b6b3a76400006125ff565b90612447565b905060006117c3826117a38d670de0b6b3a76400006125ff565b90506000806117e16117da8864e8d4a51000613113565b8985611f99565b9b5091508a90506117fe670de0b6b3a76400006117a384876125ff565b9b5050505050505050505050915091565b600080805b6066548110156118e557606754606680546000926001600160a01b0316916321429e60913091908690811061184b5761184b613079565b6000918252602090912001546040516001600160e01b031960e085901b16815261188292916001600160a01b031690600401612ff8565b602060405180830381865afa15801561189f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c391906130d1565b90506118cf81846130be565b92505080806118dd906130a5565b915050611814565b50919050565b6077546001600160a01b031633146119155760405162461bcd60e51b81526004016107a690612f7f565b60005b606654811015611a0257606754606680546000926001600160a01b0316916321429e60913091908690811061194f5761194f613079565b6000918252602090912001546040516001600160e01b031960e085901b16815261198692916001600160a01b031690600401612ff8565b602060405180830381865afa1580156119a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c791906130d1565b9050806000036119d757506119f0565b6119ed60668381548110610de857610de8613079565b50505b806119fa816130a5565b915050611918565b506000607455303180156108ae57604051600090339083908381818185875af1925050503d8060008114611a52576040519150601f19603f3d011682016040523d82523d6000602084013e611a57565b606091505b5050905080611a9a5760405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b60448201526064016107a6565b5050565b6077546001600160a01b03163314611ac85760405162461bcd60e51b81526004016107a690612f7f565b607780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031690565b607654600160a01b900460ff1615611b4f5760405162461bcd60e51b81526020600482015260196024820152781d589a4818dbdb1b1958dd1a5bdb881a5cc81c185d585cd959603a1b60448201526064016107a6565b606a5460408051635c9302c960e01b815290516000926001600160a01b031691635c9302c99160048083019260209291908290030181865afa158015611b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbd91906130d1565b9050606d548103611c1c5760405162461bcd60e51b8152602060048201526024808201527f63616e20636f6c6c656374206f6e6c79206f6e636520696e206120756269206360448201526379636c6560e01b60648201526084016107a6565b6000607454611c29303190565b611c3391906130ea565b9050600081607454611c4591906130be565b11611c8b5760405162461bcd60e51b81526020600482015260166024820152751b9bc819585c9b9a5b99dcc81d1bc818dbdb1b1958dd60521b60448201526064016107a6565b606d829055607154606e54600091611cb2916117a390611cab90836130ea565b85906125ff565b90506000611cc082846130ea565b90506000611ccd8261260b565b9050611cd981836130ea565b91506000611cf360745485611cee91906130be565b6126ce565b905080600081518110611d0857611d08613079565b602002602001015160745485611d1e91906130be565b611d2891906130ea565b607455611d3683600061217f565b5060008160018351611d4891906130ea565b81518110611d5857611d58613079565b602002602001015190506000611d7f6071546117a3607054856125ff90919063ffffffff16565b90508015611dfe5760695460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90611db99033908590600401612fa5565b6020604051808303816000875af1158015611dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfc9190612fbe565b505b611e0881836130ea565b91506000611e276071546117a3607254866125ff90919063ffffffff16565b90506000611e358483612531565b606954606a5460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb92611e6d9216908590600401612fa5565b6020604051808303816000875af1158015611e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb09190612fbe565b50606954607a5460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92611ee7929116908690600401612fa5565b6020604051808303816000875af1158015611f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2a9190612fbe565b506074546040805183815260208101859052908101869052606081018b905260808101919091523360a082015260c081018490528a907f49a079c90e07ed02ae8283e86eaeb643c637381d30aa7ba06d155e5b744a85439060e00160405180910390a250505050505050505050565b600080607154606f5486611fad9190613113565b611fb79190613132565b9150828210611fc65782611fc8565b815b9150611fd58286866129ed565b9050935093915050565b6077546001600160a01b031633146120095760405162461bcd60e51b81526004016107a690612f7f565b806073600082825461201b91906130ea565b909155505060695460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906120529085908590600401612fa5565b6020604051808303816000875af1158015612071573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110d9190612fbe565b6077546001600160a01b031633146120bf5760405162461bcd60e51b81526004016107a690612f7f565b607980546001600160a01b03199081167301ab5966c1d742ae0cff7f14cc0f4d85156e83d917909155607a805490911673ce69892cbda078bbfaa3e5ae7a4b4d2bf3e5c412179055565b6121116123e8565b6001600160a01b0381166121765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107a6565b6108ae816125ad565b6066546000908103612193575060006123e2565b6001600160a01b0382161561220f576067546040516317066a5760e21b81526001600160a01b0390911690635c19a95c9085906121d4908690600401612e64565b6000604051808303818588803b1580156121ed57600080fd5b505af1158015612201573d6000803e3d6000fd5b5050505050600190506123e2565b6066546000908461221e61180f565b61222891906130be565b6122329190613132565b90508360005b606654811080156122495750600082115b156123da57606754606680546000926001600160a01b0316916321429e60913091908690811061227b5761227b613079565b6000918252602090912001546040516001600160e01b031960e085901b1681526122b292916001600160a01b031690600401612ff8565b602060405180830381865afa1580156122cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f391906130d1565b9050838110156123c75760006123098583612531565b9050838110612318578361231a565b805b606754606680549293506001600160a01b0390911691635c19a95c9184918790811061234857612348613079565b6000918252602090912001546040516001600160e01b031960e085901b16815261237e916001600160a01b031690600401612e64565b6000604051808303818588803b15801561239757600080fd5b505af11580156123ab573d6000803e3d6000fd5b50505050506123c3818561253190919063ffffffff16565b9350505b50806123d2816130a5565b915050612238565b506001925050505b92915050565b336123f1611aea565b6001600160a01b0316146115225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a6565b60006124538284613132565b9392505050565b60675460405163f3fef3a360e01b81526000916001600160a01b03169063f3fef3a39061248d9086908690600401612fa5565b600060405180830381600087803b1580156124a757600080fd5b505af19250505080156124b8575060015b612529576124c4613154565b806308c379a0036124ed57506124d86131b2565b806124e357506124ef565b60009150506123e2565b505b3d808015612519576040519150601f19603f3d011682016040523d82523d6000602084013e61251e565b606091505b5060009150506123e2565b5060016123e2565b600061245382846130ea565b600054610100900460ff166125a85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016107a6565b611522335b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006124538284613113565b6079546000906001600160a01b0316158015906126375750607954607b546001600160a01b0390911631105b156126b957607954607b54612656916001600160a01b031631906130ea565b9050818111156126635750805b6079546040516001600160a01b03909116908290600081818185875af1925050503d80600081146126b0576040519150601f19603f3d011682016040523d82523d6000602084013e6126b5565b606091505b5050505b6079546001600160a01b031631607b55919050565b6060600082116126f05760405162461bcd60e51b81526004016107a69061323b565b6000806126fc846108f9565b9150915060008061270c86611524565b915091506060828510612896576040805160028082526060820183529091602083019080368337505060695482519293506001600160a01b031691839150600190811061275b5761275b613079565b6001600160a01b03928316602091820292909201810191909152606854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156127b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d89190612fdb565b816000815181106127eb576127eb613079565b6001600160a01b03928316602091820292909201015260685416637ff36ab586606461281888605f613113565b6128229190613132565b8430426040518663ffffffff1660e01b815260040161284494939291906132b0565b60006040518083038185885af1158015612862573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261288b91908101906132e5565b979650505050505050565b6000806128a285612a31565b60408051600280825260608201909252929450909250816020016020820280368337505060695482519295506001600160a01b03169185915060019081106128ec576128ec613079565b6001600160a01b0392831660209182029290920101526075548451911690849060009061291b5761291b613079565b6001600160a01b039283166020918202929092010152606854600091166338ed173984606461294b89605f613113565b6129559190613132565b8730426040518663ffffffff1660e01b815260040161297895949392919061338b565b6000604051808303816000875af1158015612997573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129bf91908101906132e5565b905081816000815181106129d5576129d5613079565b60209081029190910101529998505050505050505050565b6000806129fc856103e5613113565b90506000612a0a8483613113565b9050600082612a1b876103e8613113565b612a2591906130be565b905061288b8183613132565b60008060008311612a545760405162461bcd60e51b81526004016107a69061323b565b606b54606854604080516315ab88c960e31b815290516000936001600160a01b039081169363e6a439059391169163ad5c4648916004808201926020929091908290030181865afa158015612aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad19190612fdb565b6076546040516001600160e01b031960e085901b168152612aff92916001600160a01b031690600401612ff8565b602060405180830381865afa158015612b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b409190612fdb565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612b83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba79190613029565b506001600160701b031691506001600160701b03169150600080612bcc84848a611f99565b60408051600280825260608201835293955091935060009290602083019080368337505060765482519293506001600160a01b0316918391506001908110612c1657612c16613079565b6001600160a01b03928316602091820292909201810191909152606854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c939190612fdb565b81600081518110612ca657612ca6613079565b6001600160a01b03928316602091820292909201015260685460009116637ff36ab5856064612cd687605f613113565b612ce09190613132565b8530426040518663ffffffff1660e01b8152600401612d0294939291906132b0565b60006040518083038185885af1158015612d20573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052612d4991908101906132e5565b60785481519192506001600160a01b031690632b7f09239083906001908110612d7457612d74613079565b602090810291909101015160765460755460405160e085901b6001600160e01b031916815260048101939093526001600160a01b039182166024840152166044820152606401600060405180830381600087803b158015612dd457600080fd5b505af1158015612de8573d6000803e3d6000fd5b5050505080600081518110612dff57612dff613079565b6020026020010151975064e8d4a5100081600181518110612e2257612e22613079565b6020026020010151612e349190613132565b985050505050505050915091565b60008060408385031215612e5557600080fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b80151581146108ae57600080fd5b600060208284031215612e9857600080fd5b813561245381612e78565b600060208284031215612eb557600080fd5b5035919050565b6001600160a01b03811681146108ae57600080fd5b600060208284031215612ee357600080fd5b813561245381612ebc565b60008060408385031215612f0157600080fd5b8235612f0c81612ebc565b91506020830135612f1c81612ebc565b809150509250929050565b600080600060608486031215612f3c57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612f6657600080fd5b8235612f7181612ebc565b946020939093013593505050565b6020808252600c908201526b3737ba1033bab0b93234b0b760a11b604082015260600190565b6001600160a01b03929092168252602082015260400190565b600060208284031215612fd057600080fd5b815161245381612e78565b600060208284031215612fed57600080fd5b815161245381612ebc565b6001600160a01b0392831681529116602082015260400190565b80516001600160701b0381168114610c3e57600080fd5b60008060006060848603121561303e57600080fd5b61304784613012565b925061305560208501613012565b9150604084015163ffffffff8116811461306e57600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016130b7576130b761308f565b5060010190565b808201808211156123e2576123e261308f565b6000602082840312156130e357600080fd5b5051919050565b818103818111156123e2576123e261308f565b634e487b7160e01b600052603160045260246000fd5b600081600019048311821515161561312d5761312d61308f565b500290565b60008261314f57634e487b7160e01b600052601260045260246000fd5b500490565b600060033d111561316d5760046000803e5060005160e01c5b90565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156131ab576131ab613170565b6040525050565b600060443d10156131c05790565b6040516003193d81016004833e81513d6001600160401b0380831160248401831017156131ef57505050505090565b82850191508151818111156132075750505050505090565b843d87010160208285010111156132215750505050505090565b61323060208286010187613186565b509095945050505050565b60208082526017908201527606275792076616c75652073686f756c64206265203e203604c1b604082015260600190565b600081518084526020808501945080840160005b838110156132a55781516001600160a01b031687529582019590820190600101613280565b509495945050505050565b8481526080602082015260006132c9608083018661326c565b6001600160a01b03949094166040830152506060015292915050565b600060208083850312156132f857600080fd5b82516001600160401b038082111561330f57600080fd5b818501915085601f83011261332357600080fd5b81518181111561333557613335613170565b8060051b915060405161334a85840182613186565b8181529183018401918481018884111561336357600080fd5b938501935b8385101561337f5784518152938501938501613368565b50979650505050505050565b85815284602082015260a0604082015260006133aa60a083018661326c565b6001600160a01b039490941660608301525060800152939250505056fe46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354a2646970667358221220c9e43b53647c889a52c1a02a9b3efa36c568d106a40e2a66f52431b6ab43c81f64736f6c63430008100033";
|
|
697
761
|
|
|
698
762
|
type FuseStakingV3ConstructorParams =
|
|
699
763
|
| [signer?: Signer]
|
|
@@ -7,6 +7,93 @@ import { Provider } from "@ethersproject/providers";
|
|
|
7
7
|
import type { IStaticOracle, IStaticOracleInterface } from "../IStaticOracle";
|
|
8
8
|
|
|
9
9
|
const _abi = [
|
|
10
|
+
{
|
|
11
|
+
inputs: [],
|
|
12
|
+
name: "CARDINALITY_PER_MINUTE",
|
|
13
|
+
outputs: [
|
|
14
|
+
{
|
|
15
|
+
internalType: "uint8",
|
|
16
|
+
name: "",
|
|
17
|
+
type: "uint8",
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
stateMutability: "view",
|
|
21
|
+
type: "function",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
inputs: [],
|
|
25
|
+
name: "UNISWAP_V3_FACTORY",
|
|
26
|
+
outputs: [
|
|
27
|
+
{
|
|
28
|
+
internalType: "contract IUniswapV3Factory",
|
|
29
|
+
name: "",
|
|
30
|
+
type: "address",
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
stateMutability: "view",
|
|
34
|
+
type: "function",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
inputs: [
|
|
38
|
+
{
|
|
39
|
+
internalType: "uint24",
|
|
40
|
+
name: "feeTier",
|
|
41
|
+
type: "uint24",
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
name: "addNewFeeTier",
|
|
45
|
+
outputs: [],
|
|
46
|
+
stateMutability: "nonpayable",
|
|
47
|
+
type: "function",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
inputs: [
|
|
51
|
+
{
|
|
52
|
+
internalType: "address",
|
|
53
|
+
name: "tokenA",
|
|
54
|
+
type: "address",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
internalType: "address",
|
|
58
|
+
name: "tokenB",
|
|
59
|
+
type: "address",
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
name: "getAllPoolsForPair",
|
|
63
|
+
outputs: [
|
|
64
|
+
{
|
|
65
|
+
internalType: "address[]",
|
|
66
|
+
name: "",
|
|
67
|
+
type: "address[]",
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
stateMutability: "view",
|
|
71
|
+
type: "function",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
inputs: [
|
|
75
|
+
{
|
|
76
|
+
internalType: "address",
|
|
77
|
+
name: "tokenA",
|
|
78
|
+
type: "address",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
internalType: "address",
|
|
82
|
+
name: "tokenB",
|
|
83
|
+
type: "address",
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
name: "isPairSupported",
|
|
87
|
+
outputs: [
|
|
88
|
+
{
|
|
89
|
+
internalType: "bool",
|
|
90
|
+
name: "",
|
|
91
|
+
type: "bool",
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
stateMutability: "view",
|
|
95
|
+
type: "function",
|
|
96
|
+
},
|
|
10
97
|
{
|
|
11
98
|
inputs: [
|
|
12
99
|
{
|
|
@@ -36,6 +123,139 @@ const _abi = [
|
|
|
36
123
|
stateMutability: "nonpayable",
|
|
37
124
|
type: "function",
|
|
38
125
|
},
|
|
126
|
+
{
|
|
127
|
+
inputs: [
|
|
128
|
+
{
|
|
129
|
+
internalType: "address",
|
|
130
|
+
name: "tokenA",
|
|
131
|
+
type: "address",
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
internalType: "address",
|
|
135
|
+
name: "tokenB",
|
|
136
|
+
type: "address",
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
internalType: "uint32",
|
|
140
|
+
name: "period",
|
|
141
|
+
type: "uint32",
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
name: "prepareAllAvailablePoolsWithTimePeriod",
|
|
145
|
+
outputs: [
|
|
146
|
+
{
|
|
147
|
+
internalType: "address[]",
|
|
148
|
+
name: "preparedPools",
|
|
149
|
+
type: "address[]",
|
|
150
|
+
},
|
|
151
|
+
],
|
|
152
|
+
stateMutability: "nonpayable",
|
|
153
|
+
type: "function",
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
inputs: [
|
|
157
|
+
{
|
|
158
|
+
internalType: "address",
|
|
159
|
+
name: "tokenA",
|
|
160
|
+
type: "address",
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
internalType: "address",
|
|
164
|
+
name: "tokenB",
|
|
165
|
+
type: "address",
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
internalType: "uint24[]",
|
|
169
|
+
name: "feeTiers",
|
|
170
|
+
type: "uint24[]",
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
internalType: "uint16",
|
|
174
|
+
name: "cardinality",
|
|
175
|
+
type: "uint16",
|
|
176
|
+
},
|
|
177
|
+
],
|
|
178
|
+
name: "prepareSpecificFeeTiersWithCardinality",
|
|
179
|
+
outputs: [
|
|
180
|
+
{
|
|
181
|
+
internalType: "address[]",
|
|
182
|
+
name: "preparedPools",
|
|
183
|
+
type: "address[]",
|
|
184
|
+
},
|
|
185
|
+
],
|
|
186
|
+
stateMutability: "nonpayable",
|
|
187
|
+
type: "function",
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
inputs: [
|
|
191
|
+
{
|
|
192
|
+
internalType: "address",
|
|
193
|
+
name: "tokenA",
|
|
194
|
+
type: "address",
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
internalType: "address",
|
|
198
|
+
name: "tokenB",
|
|
199
|
+
type: "address",
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
internalType: "uint24[]",
|
|
203
|
+
name: "feeTiers",
|
|
204
|
+
type: "uint24[]",
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
internalType: "uint32",
|
|
208
|
+
name: "period",
|
|
209
|
+
type: "uint32",
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
name: "prepareSpecificFeeTiersWithTimePeriod",
|
|
213
|
+
outputs: [
|
|
214
|
+
{
|
|
215
|
+
internalType: "address[]",
|
|
216
|
+
name: "preparedPools",
|
|
217
|
+
type: "address[]",
|
|
218
|
+
},
|
|
219
|
+
],
|
|
220
|
+
stateMutability: "nonpayable",
|
|
221
|
+
type: "function",
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
inputs: [
|
|
225
|
+
{
|
|
226
|
+
internalType: "address[]",
|
|
227
|
+
name: "pools",
|
|
228
|
+
type: "address[]",
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
internalType: "uint16",
|
|
232
|
+
name: "cardinality",
|
|
233
|
+
type: "uint16",
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
name: "prepareSpecificPoolsWithCardinality",
|
|
237
|
+
outputs: [],
|
|
238
|
+
stateMutability: "nonpayable",
|
|
239
|
+
type: "function",
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
inputs: [
|
|
243
|
+
{
|
|
244
|
+
internalType: "address[]",
|
|
245
|
+
name: "pools",
|
|
246
|
+
type: "address[]",
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
internalType: "uint32",
|
|
250
|
+
name: "period",
|
|
251
|
+
type: "uint32",
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
name: "prepareSpecificPoolsWithTimePeriod",
|
|
255
|
+
outputs: [],
|
|
256
|
+
stateMutability: "nonpayable",
|
|
257
|
+
type: "function",
|
|
258
|
+
},
|
|
39
259
|
{
|
|
40
260
|
inputs: [
|
|
41
261
|
{
|
|
@@ -75,6 +295,102 @@ const _abi = [
|
|
|
75
295
|
stateMutability: "view",
|
|
76
296
|
type: "function",
|
|
77
297
|
},
|
|
298
|
+
{
|
|
299
|
+
inputs: [
|
|
300
|
+
{
|
|
301
|
+
internalType: "uint128",
|
|
302
|
+
name: "baseAmount",
|
|
303
|
+
type: "uint128",
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
internalType: "address",
|
|
307
|
+
name: "baseToken",
|
|
308
|
+
type: "address",
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
internalType: "address",
|
|
312
|
+
name: "quoteToken",
|
|
313
|
+
type: "address",
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
internalType: "uint24[]",
|
|
317
|
+
name: "feeTiers",
|
|
318
|
+
type: "uint24[]",
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
internalType: "uint32",
|
|
322
|
+
name: "period",
|
|
323
|
+
type: "uint32",
|
|
324
|
+
},
|
|
325
|
+
],
|
|
326
|
+
name: "quoteSpecificFeeTiersWithTimePeriod",
|
|
327
|
+
outputs: [
|
|
328
|
+
{
|
|
329
|
+
internalType: "uint256",
|
|
330
|
+
name: "quoteAmount",
|
|
331
|
+
type: "uint256",
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
internalType: "address[]",
|
|
335
|
+
name: "queriedPools",
|
|
336
|
+
type: "address[]",
|
|
337
|
+
},
|
|
338
|
+
],
|
|
339
|
+
stateMutability: "view",
|
|
340
|
+
type: "function",
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
inputs: [
|
|
344
|
+
{
|
|
345
|
+
internalType: "uint128",
|
|
346
|
+
name: "baseAmount",
|
|
347
|
+
type: "uint128",
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
internalType: "address",
|
|
351
|
+
name: "baseToken",
|
|
352
|
+
type: "address",
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
internalType: "address",
|
|
356
|
+
name: "quoteToken",
|
|
357
|
+
type: "address",
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
internalType: "address[]",
|
|
361
|
+
name: "pools",
|
|
362
|
+
type: "address[]",
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
internalType: "uint32",
|
|
366
|
+
name: "period",
|
|
367
|
+
type: "uint32",
|
|
368
|
+
},
|
|
369
|
+
],
|
|
370
|
+
name: "quoteSpecificPoolsWithTimePeriod",
|
|
371
|
+
outputs: [
|
|
372
|
+
{
|
|
373
|
+
internalType: "uint256",
|
|
374
|
+
name: "quoteAmount",
|
|
375
|
+
type: "uint256",
|
|
376
|
+
},
|
|
377
|
+
],
|
|
378
|
+
stateMutability: "view",
|
|
379
|
+
type: "function",
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
inputs: [],
|
|
383
|
+
name: "supportedFeeTiers",
|
|
384
|
+
outputs: [
|
|
385
|
+
{
|
|
386
|
+
internalType: "uint24[]",
|
|
387
|
+
name: "",
|
|
388
|
+
type: "uint24[]",
|
|
389
|
+
},
|
|
390
|
+
],
|
|
391
|
+
stateMutability: "view",
|
|
392
|
+
type: "function",
|
|
393
|
+
},
|
|
78
394
|
];
|
|
79
395
|
|
|
80
396
|
export class IStaticOracle__factory {
|