@gooddollar/goodprotocol 2.0.25-beta.4 → 2.0.25-beta.6
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/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/invite/InvitesV2.sol/InvitesV2.json +2 -2
- 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/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/GoodDollar.sol/GoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
- package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.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/ISuperToken.sol/ISuperToken.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/BuyGDCloneFactory.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/IQuoterV2.dbg.json +1 -1
- 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/invite/InvitesV2.sol +14 -12
- package/package.json +1 -1
- package/scripts/fv.ts +24 -30
- package/scripts/utils.ts +6 -18
- package/test/invite/InvitesV2.test.ts +26 -0
- package/tsconfig.json +1 -1
- package/types/factories/contracts/invite/InvitesV2__factory.ts +1 -1
|
@@ -129,8 +129,7 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
129
129
|
require(
|
|
130
130
|
!user.bountyPaid &&
|
|
131
131
|
(user.inviteCode == 0x0 ||
|
|
132
|
-
(user.invitedBy == address(0) && inviter != address(0))
|
|
133
|
-
(campaignCode != 0x0 && campaignCode == _inviterCode)),
|
|
132
|
+
(user.invitedBy == address(0) && inviter != address(0))),
|
|
134
133
|
"user already joined"
|
|
135
134
|
);
|
|
136
135
|
if (user.inviteCode == 0x0) {
|
|
@@ -142,15 +141,15 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
142
141
|
if (inviter != address(0)) {
|
|
143
142
|
require(inviter != msg.sender, "self invite");
|
|
144
143
|
user.invitedBy = inviter;
|
|
145
|
-
users[inviter].invitees.push(msg.sender);
|
|
146
|
-
users[inviter].pending.push(msg.sender);
|
|
147
144
|
stats.totalInvited += 1;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
145
|
+
/** support special campaign code without inviter */
|
|
146
|
+
if (inviter == address(this)) {
|
|
147
|
+
user.bountyAtJoin = levels[0].bounty;
|
|
148
|
+
} else {
|
|
149
|
+
users[inviter].invitees.push(msg.sender);
|
|
150
|
+
users[inviter].pending.push(msg.sender);
|
|
151
|
+
user.bountyAtJoin = levels[users[inviter].level].bounty;
|
|
152
|
+
}
|
|
154
153
|
}
|
|
155
154
|
|
|
156
155
|
if (canCollectBountyFor(msg.sender)) {
|
|
@@ -179,7 +178,9 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
179
178
|
users[_invitee].bountyAtJoin > 0 &&
|
|
180
179
|
!users[_invitee].bountyPaid &&
|
|
181
180
|
getIdentity().isWhitelisted(_invitee) &&
|
|
182
|
-
(invitedBy == address(0) ||
|
|
181
|
+
(invitedBy == address(0) ||
|
|
182
|
+
invitedBy == address(this) ||
|
|
183
|
+
getIdentity().isWhitelisted(invitedBy)) &&
|
|
183
184
|
_whitelistedOnChainOrDefault(_invitee) == _chainId();
|
|
184
185
|
}
|
|
185
186
|
|
|
@@ -243,7 +244,7 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
243
244
|
uint256 bountyToPay = users[_invitee].bountyAtJoin;
|
|
244
245
|
bool earnedLevel = false;
|
|
245
246
|
|
|
246
|
-
if (invitedBy != address(0)) {
|
|
247
|
+
if (invitedBy != address(this) && invitedBy != address(0)) {
|
|
247
248
|
uint256 joinedAt = users[_invitee].joinedAt;
|
|
248
249
|
Level memory level = levels[users[invitedBy].level];
|
|
249
250
|
|
|
@@ -334,6 +335,7 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
334
335
|
|
|
335
336
|
function setCampaignCode(bytes32 _code) public ownerOrAvatar {
|
|
336
337
|
campaignCode = _code;
|
|
338
|
+
codeToUser[campaignCode] = address(this);
|
|
337
339
|
}
|
|
338
340
|
|
|
339
341
|
function end() public ownerOrAvatar isActive {
|
package/package.json
CHANGED
package/scripts/fv.ts
CHANGED
|
@@ -3,13 +3,15 @@ import fs from "fs";
|
|
|
3
3
|
import { chunk, uniqBy } from "lodash";
|
|
4
4
|
import { bulkIsWhitelisted, bulkLastAuth } from "./utils";
|
|
5
5
|
|
|
6
|
+
//create tunnel to fv server ssh -L 9090:server:8080 -N user@server -i sshkey
|
|
6
7
|
const main = async () => {
|
|
7
|
-
const data = JSON.parse(fs.readFileSync("
|
|
8
|
+
const data = JSON.parse(fs.readFileSync("fvtriplets2.txt").toString());
|
|
8
9
|
const triplets = uniqBy(chunk(data, 3), _ => _.join("_"));
|
|
9
10
|
|
|
10
11
|
const accounts = triplets.map(_ => _[0]);
|
|
11
12
|
const whitelisted = await bulkIsWhitelisted(accounts);
|
|
12
13
|
const failed = triplets.filter(_ => whitelisted.includes(_[0]) === false);
|
|
14
|
+
|
|
13
15
|
console.log("Total accounts:", accounts.length);
|
|
14
16
|
console.log("Total whitelisted:", whitelisted.length);
|
|
15
17
|
console.log("Total failed re-auth:", failed.length);
|
|
@@ -19,48 +21,39 @@ const main = async () => {
|
|
|
19
21
|
});
|
|
20
22
|
console.log({ notfetched });
|
|
21
23
|
const ps = notfetched.map(async a => {
|
|
22
|
-
const i1 = await fetch("http://localhost:9090/enrollment-3d/" + a[1]).then(
|
|
23
|
-
|
|
24
|
-
);
|
|
25
|
-
const i2 = await fetch("http://localhost:9090/enrollment-3d/" + a[2]).then(
|
|
26
|
-
_ => _.json()
|
|
27
|
-
);
|
|
24
|
+
const i1 = await fetch("http://localhost:9090/enrollment-3d/" + a[1]).then(_ => _.json());
|
|
25
|
+
const i2 = await fetch("http://localhost:9090/enrollment-3d/" + a[2]).then(_ => _.json());
|
|
28
26
|
if (i1.auditTrailBase64 && i2.auditTrailBase64) {
|
|
29
|
-
fs.writeFileSync(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
fs.writeFileSync(
|
|
37
|
-
"fvimages/" + a.join("_") + "-b.jpg",
|
|
38
|
-
i2.auditTrailBase64,
|
|
39
|
-
{
|
|
40
|
-
encoding: "base64"
|
|
41
|
-
}
|
|
42
|
-
);
|
|
43
|
-
} else
|
|
44
|
-
console.log("not found", a, !!i1.auditTrailBase64, !!i2.auditTrailBase64);
|
|
27
|
+
fs.writeFileSync("fvimages/" + a.join("_") + "-a.jpg", i1.auditTrailBase64, {
|
|
28
|
+
encoding: "base64"
|
|
29
|
+
});
|
|
30
|
+
fs.writeFileSync("fvimages/" + a.join("_") + "-b.jpg", i2.auditTrailBase64, {
|
|
31
|
+
encoding: "base64"
|
|
32
|
+
});
|
|
33
|
+
} else console.log("not found", a, !!i1.auditTrailBase64, !!i2.auditTrailBase64);
|
|
45
34
|
});
|
|
46
35
|
|
|
47
36
|
await Promise.all(ps);
|
|
48
37
|
};
|
|
49
38
|
|
|
50
|
-
const deleteIdentifiers = async
|
|
51
|
-
const data = JSON.parse(fs.readFileSync("
|
|
39
|
+
const deleteIdentifiers = async password => {
|
|
40
|
+
const data = JSON.parse(fs.readFileSync("fvtriplets2.txt").toString());
|
|
52
41
|
const triplets = uniqBy(chunk(data, 3), _ => _.join("_"));
|
|
53
42
|
const accounts = triplets.map(_ => _[0]);
|
|
54
43
|
const whitelisted = await bulkIsWhitelisted(accounts);
|
|
55
44
|
const lastAuth = await bulkLastAuth(accounts);
|
|
45
|
+
console.log(
|
|
46
|
+
"no last auth",
|
|
47
|
+
Object.entries(lastAuth).filter(_ => _[1] === 0)
|
|
48
|
+
);
|
|
49
|
+
const dateYearsAgo = new Date();
|
|
50
|
+
dateYearsAgo.setFullYear(dateYearsAgo.getFullYear() - 3);
|
|
56
51
|
const failed = triplets.filter(
|
|
57
|
-
_ =>
|
|
58
|
-
whitelisted.includes(_[0]) === false && lastAuth.includes(_[0]) === true
|
|
52
|
+
_ => whitelisted.includes(_[0]) === false && lastAuth[_[0]] > 0 && lastAuth[_[0]] < dateYearsAgo.getTime() / 1000
|
|
59
53
|
);
|
|
60
54
|
|
|
61
55
|
let ps = [];
|
|
62
|
-
console.log(
|
|
63
|
-
|
|
56
|
+
console.log("old lastauth:", failed.length, "out of:", triplets.length);
|
|
64
57
|
for (let record of failed) {
|
|
65
58
|
ps.push(
|
|
66
59
|
fetch("https://goodserver.gooddollar.org/admin/verify/face/delete", {
|
|
@@ -97,5 +90,6 @@ const deleteIdentifiers = async () => {
|
|
|
97
90
|
console.log(res);
|
|
98
91
|
};
|
|
99
92
|
|
|
100
|
-
deleteIdentifiers();
|
|
101
93
|
// main();
|
|
94
|
+
console.log(process.env.ADMIN_PASSWORD);
|
|
95
|
+
deleteIdentifiers(process.env.ADMIN_PASSWORD);
|
package/scripts/utils.ts
CHANGED
|
@@ -5,14 +5,9 @@ import { ethers } from "hardhat";
|
|
|
5
5
|
export const bulkIsWhitelisted = async (accounts: Array<String>) => {
|
|
6
6
|
setMulticallAddress(122, "0x3CE6158b7278Bf6792e014FA7B4f3c6c46fe9410");
|
|
7
7
|
setMulticallAddress(42220, "0x75F59534dd892c1f8a7B172D639FA854D529ada3");
|
|
8
|
-
const celoProvider = new ethers.providers.JsonRpcProvider(
|
|
9
|
-
"https://forno.celo.org"
|
|
10
|
-
);
|
|
8
|
+
const celoProvider = new ethers.providers.JsonRpcProvider("https://forno.celo.org");
|
|
11
9
|
const ethcallProvider = new Provider(celoProvider, 42220);
|
|
12
|
-
const identityContract = new Contract(
|
|
13
|
-
"0xC361A6E67822a0EDc17D899227dd9FC50BD62F42",
|
|
14
|
-
Identity.abi
|
|
15
|
-
);
|
|
10
|
+
const identityContract = new Contract("0xC361A6E67822a0EDc17D899227dd9FC50BD62F42", Identity.abi);
|
|
16
11
|
const calls = accounts.map(d => identityContract.isWhitelisted(d));
|
|
17
12
|
const result = await ethcallProvider.all(calls);
|
|
18
13
|
const whitelisted = accounts.filter((v, i) => result[i]);
|
|
@@ -22,17 +17,10 @@ export const bulkIsWhitelisted = async (accounts: Array<String>) => {
|
|
|
22
17
|
export const bulkLastAuth = async (accounts: Array<String>) => {
|
|
23
18
|
setMulticallAddress(122, "0x3CE6158b7278Bf6792e014FA7B4f3c6c46fe9410");
|
|
24
19
|
setMulticallAddress(42220, "0x75F59534dd892c1f8a7B172D639FA854D529ada3");
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
);
|
|
28
|
-
const ethcallProvider = new Provider(celoProvider, 42220);
|
|
29
|
-
const identityContract = new Contract(
|
|
30
|
-
"0xC361A6E67822a0EDc17D899227dd9FC50BD62F42",
|
|
31
|
-
Identity.abi
|
|
32
|
-
);
|
|
20
|
+
const fuseProvider = new ethers.providers.JsonRpcProvider("https://rpc.fuse.io");
|
|
21
|
+
const ethcallProvider = new Provider(fuseProvider, 122);
|
|
22
|
+
const identityContract = new Contract("0x2F9C28de9e6d44b71B91b8BA337A5D82e308E7BE", Identity.abi);
|
|
33
23
|
const calls = accounts.map(d => identityContract.lastAuthenticated(d));
|
|
34
24
|
const result = await ethcallProvider.all(calls);
|
|
35
|
-
|
|
36
|
-
const whitelisted = accounts.filter((v, i) => parseInt(result[i]));
|
|
37
|
-
return whitelisted;
|
|
25
|
+
return Object.fromEntries(accounts.map((v, i) => [v, parseInt(result[i])]));
|
|
38
26
|
};
|
|
@@ -354,7 +354,11 @@ describe("InvitesV2", () => {
|
|
|
354
354
|
.connect(invitee1)
|
|
355
355
|
.join(ethers.utils.hexZeroPad(invitee1.address, 32), ethers.utils.formatBytes32String("test"));
|
|
356
356
|
const { events } = await tx.wait();
|
|
357
|
+
|
|
357
358
|
const bountyEvent = events.find(_ => _.event === "InviterBounty");
|
|
359
|
+
const bounty = (await invites.levels(0)).bounty;
|
|
360
|
+
|
|
361
|
+
expect(await gd.balanceOf(invitee1.address)).eq(bounty.div(2));
|
|
358
362
|
expect(bountyEvent).not.empty;
|
|
359
363
|
});
|
|
360
364
|
|
|
@@ -377,6 +381,28 @@ describe("InvitesV2", () => {
|
|
|
377
381
|
const bountyEvent2 = events2.find(_ => _.event === "InviterBounty");
|
|
378
382
|
expect(bountyEvent2).not.undefined;
|
|
379
383
|
});
|
|
384
|
+
|
|
385
|
+
it("should collect bounty with campaignCode after first join without being whitelisted", async () => {
|
|
386
|
+
await loadFixture(initialState);
|
|
387
|
+
await invites.setCampaignCode(ethers.utils.formatBytes32String("test"));
|
|
388
|
+
|
|
389
|
+
const tx = await invites
|
|
390
|
+
.connect(invitee1)
|
|
391
|
+
.join(ethers.utils.hexZeroPad(invitee1.address, 32), ethers.utils.formatBytes32String("test"));
|
|
392
|
+
const { events } = await tx.wait();
|
|
393
|
+
const bountyEvent = events.find(_ => _.event === "InviterBounty");
|
|
394
|
+
expect(bountyEvent).undefined;
|
|
395
|
+
|
|
396
|
+
await id.addWhitelistedWithDID(invitee1.address, Math.random() + "").catch(e => e);
|
|
397
|
+
|
|
398
|
+
expect(await invites.canCollectBountyFor(invitee1.address)).to.be.true;
|
|
399
|
+
|
|
400
|
+
const tx2 = await invites.connect(invitee1).bountyFor(invitee1.address);
|
|
401
|
+
|
|
402
|
+
const { events: events2 } = await tx2.wait();
|
|
403
|
+
const bountyEvent2 = events2.find(_ => _.event === "InviterBounty");
|
|
404
|
+
expect(bountyEvent2).not.undefined;
|
|
405
|
+
});
|
|
380
406
|
});
|
|
381
407
|
|
|
382
408
|
it("should end contract by owner", async () => {
|
package/tsconfig.json
CHANGED
|
@@ -654,7 +654,7 @@ const _abi = [
|
|
|
654
654
|
] as const;
|
|
655
655
|
|
|
656
656
|
const _bytecode =
|
|
657
|
-
"0x60a06040523060805234801561001457600080fd5b50608051612a8861004c600039600081816107ca0152818161080a015281816109eb01528181610a2b0152610aa70152612a886000f3fe6080604052600436106101685760003560e01c806302fb0c5e1461016d578063119e5bf3146101a35780631b3c90a8146101d057806321132aad146101e75780633659cfe61461020757806336afc6fa146102275780633e6326fc1461023c57806341155d5e1461025c5780634162169f1461028a5780634f1ef286146102aa57806352d1902d146102bd57806354fd4d50146102d25780635aef7de6146103045780635b419a65146103245780636d619ef8146103445780638da5cb5b14610364578063a1df6fd314610384578063a87430ba1461039e578063acec338a14610466578063af6346b014610486578063b2596a671461049b578063b6567cd5146104f2578063b9fb2d1814610512578063ba6f568014610532578063c350a1b514610568578063d80528ae14610588578063e1758bd8146105a7578063e951a3aa146105bc578063e9881a5e146105e9578063efbe1c1c14610609578063f14b86491461061e575b600080fd5b34801561017957600080fd5b50609e5461018e90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156101af57600080fd5b50609e546101c3906001600160a01b031681565b60405161019a9190612392565b3480156101dc57600080fd5b506101e561063e565b005b3480156101f357600080fd5b506101e56102023660046123b4565b610765565b34801561021357600080fd5b506101e56102223660046123e6565b6107c0565b34801561023357600080fd5b506101c3610888565b34801561024857600080fd5b506067546101c3906001600160a01b031681565b34801561026857600080fd5b5061027c6102773660046123e6565b610914565b60405190815260200161019a565b34801561029657600080fd5b506065546101c3906001600160a01b031681565b6101e56102b8366004612419565b6109e1565b3480156102c957600080fd5b5061027c610a9a565b3480156102de57600080fd5b506040805180820182526003815262322e3360e81b6020820152905161019a9190612500565b34801561031057600080fd5b506066546101c3906001600160a01b031681565b34801561033057600080fd5b506101e561033f366004612533565b610b48565b34801561035057600080fd5b5061018e61035f3660046123e6565b610e9b565b34801561037057600080fd5b50609d546101c3906001600160a01b031681565b34801561039057600080fd5b5060a75461018e9060ff1681565b3480156103aa57600080fd5b506104126103b93660046123e6565b609b60205260009081526040902080546001820154600283015460058401546006850154600786015460088701546009880154600a909801546001600160a01b0390971697959660ff9095169593949293919290919089565b604080516001600160a01b03909a168a5260208a0198909852951515968801969096526060870193909352608086019190915260a085015260c084015260e08301919091526101008201526101200161019a565b34801561047257600080fd5b506101e56104813660046123b4565b61100b565b34801561049257600080fd5b506101e5611068565b3480156104a757600080fd5b506104d76104b6366004612555565b609c6020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161019a565b3480156104fe57600080fd5b5061027c61050d3660046123e6565b61126b565b34801561051e57600080fd5b506101e561052d36600461256e565b6112fd565b34801561053e57600080fd5b506101c361054d366004612555565b609a602052600090815260409020546001600160a01b031681565b34801561057457600080fd5b506101e56105833660046125a0565b61135c565b34801561059457600080fd5b50609f5460a05460a1546104d792919083565b3480156105b357600080fd5b506101c361147a565b3480156105c857600080fd5b506105dc6105d73660046123e6565b6114a9565b60405161019a91906125e2565b3480156105f557600080fd5b506105dc6106043660046123e6565b611694565b34801561061557600080fd5b506101e561170d565b34801561062a57600080fd5b506101e5610639366004612555565b61189b565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156106a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c5919061262f565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561071f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610743919061262f565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b609d546001600160a01b031633148061078857506066546001600160a01b031633145b6107ad5760405162461bcd60e51b81526004016107a49061264c565b60405180910390fd5b60a7805460ff1916911515919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108085760405162461bcd60e51b81526004016107a490612698565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661083a6118df565b6001600160a01b0316146108605760405162461bcd60e51b81526004016107a4906126d2565b610869816118fb565b604080516000808252602082019092526108859183919061193a565b50565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac1906064015b602060405180830381865afa1580156108eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090f919061262f565b905090565b6001600160a01b0381166000908152609b602090815260408083206004018054825181850281018501909352808352849383018282801561097e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610960575b505050505090506000805b82518110156109d9576109b48382815181106109a7576109a761270c565b6020026020010151610e9b565b156109c757816109c381612738565b9250505b806109d181612738565b915050610989565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a295760405162461bcd60e51b81526004016107a490612698565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a5b6118df565b6001600160a01b031614610a815760405162461bcd60e51b81526004016107a4906126d2565b610a8a826118fb565b610a968282600161193a565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b355760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016107a4565b50600080516020612a0c83398151915290565b609e54600160a01b900460ff16610b715760405162461bcd60e51b81526004016107a490612751565b6000828152609a60205260409020546001600160a01b03161580610bab57506000828152609a60205260409020546001600160a01b031633145b80610bbe57506001600160a01b03821633145b610c075760405162461bcd60e51b815260206004820152601a602482015279696e7669746520636f646520616c726561647920696e2075736560301b60448201526064016107a4565b808203610c265760405162461bcd60e51b81526004016107a490612775565b336000908152609b60209081526040808320848452609a9092529091205460028201546001600160a01b039091169060ff16158015610ca4575060018201541580610c8c575081546001600160a01b0316158015610c8c57506001600160a01b03811615155b80610ca4575060a85415801590610ca457508260a854145b610ce65760405162461bcd60e51b81526020600482015260136024820152721d5cd95c88185b1c9958591e481a9bda5b9959606a1b60448201526064016107a4565b6001820154600003610d255760018201849055426006830181905560098301556000848152609a6020526040902080546001600160a01b031916331790555b6001600160a01b03811615610e0e57336001600160a01b03821603610d5c5760405162461bcd60e51b81526004016107a490612775565b81546001600160a01b0382166001600160a01b0319918216811784556000908152609b6020908152604082206003810180546001818101835591855283852001805486163390811790915560049092018054808301825590855292842090920180549094161790925560a18054909190610dd790849061279a565b90915550506001600160a01b0381166000908152609b60209081526040808320600501548352609c909152902060010154600a8301555b60a85483148015610e20575060a85415155b15610e445760008052609c6020526000805160206129cc83398151915254600a8301555b610e4d33610e9b565b15610e5f57610e5d336001611aa5565b505b60405133906001600160a01b038316907fd8c638d8979e2ba5dba1f0d66246ee4b1c54b838f0e0a2b601365345eb23b05190600090a350505050565b6001600160a01b038082166000908152609b602052604081208054600a909101549192169015801590610eea57506001600160a01b0383166000908152609b602052604090206002015460ff16155b8015610f655750610ef9610888565b6001600160a01b0316633af32abf846040518263ffffffff1660e01b8152600401610f249190612392565b602060405180830381865afa158015610f41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6591906127ad565b8015610ff157506001600160a01b0381161580610ff15750610f85610888565b6001600160a01b0316633af32abf826040518263ffffffff1660e01b8152600401610fb09190612392565b602060405180830381865afa158015610fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff191906127ad565b801561100457504661100284611f54565b145b9392505050565b609d546001600160a01b031633148061102e57506066546001600160a01b031633145b61104a5760405162461bcd60e51b81526004016107a49061264c565b609e8054911515600160a01b0260ff60a01b19909216919091179055565b609e54600160a01b900460ff166110915760405162461bcd60e51b81526004016107a490612751565b336000908152609b6020526040812060040180549091905b80156111ea576202d2a85a106111ea576000836110c76001846127ca565b815481106110d7576110d761270c565b6000918252602090912001546001600160a01b031690506110f781610e9b565b156111d757620493e05a101561110d57506111ea565b611118816000611aa5565b611122908461279a565b84549093508490611135906001906127ca565b815481106111455761114561270c565b6000918252602090912001546001600160a01b0316846111666001856127ca565b815481106111765761117661270c565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550838054806111b4576111b46127dd565b600082815260209020810160001990810180546001600160a01b03191690550190555b50806111e2816127f3565b9150506110a9565b508015610a9657609e5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90611223903390859060040161280a565b6020604051808303816000875af1158015611242573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126691906127ad565b505050565b609e54600090600160a01b900460ff166112975760405162461bcd60e51b81526004016107a490612751565b6112a082610e9b565b6112ec5760405162461bcd60e51b815260206004820181905260248201527f75736572206e6f7420656c6c6967626c6520666f7220626f756e74792079657460448201526064016107a4565b6112f7826001611aa5565b92915050565b609d546001600160a01b031633148061132057506066546001600160a01b031633145b61133c5760405162461bcd60e51b81526004016107a49061264c565b6000938452609c6020526040909320918255600282019290925560010155565b600054610100900460ff161580801561137c5750600054600160ff909116105b8061139d575061138b3061201e565b15801561139d575060005460ff166001145b6114005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107a4565b6000805460ff191660011790558015611423576000805461ff0019166101001790555b61142e84848461202d565b8015611474576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906108ce90600401612823565b6001600160a01b0381166000908152609b6020908152604080832060040180548251818502810185019093528083526060949383018282801561151557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114f7575b5050505050905060008060005b835181101561158f57609b60008583815181106115415761154161270c565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff1661157d578161157981612738565b9250505b8061158781612738565b915050611522565b506000816001600160401b038111156115aa576115aa612403565b6040519080825280602002602001820160405280156115d3578160200160208202803683370190505b50905060005b845181101561168a57609b60008683815181106115f8576115f861270c565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff16611678578481815181106116385761163861270c565b60200260200101518285815181106116525761165261270c565b6001600160a01b03909216602092830291909101909101528361167481612738565b9450505b8061168281612738565b9150506115d9565b5095945050505050565b6001600160a01b0381166000908152609b602090815260409182902060030180548351818402810184019094528084526060939283018282801561170157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116e3575b50505050509050919050565b609d546001600160a01b031633148061173057506066546001600160a01b031633145b61174c5760405162461bcd60e51b81526004016107a49061264c565b609e54600160a01b900460ff166117755760405162461bcd60e51b81526004016107a490612751565b609e546040516370a0823160e01b81526000916001600160a01b0316906370a08231906117a6903090600401612392565b602060405180830381865afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190612847565b609e5460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb9061181a903390859060040161280a565b6020604051808303816000875af1158015611839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185d91906127ad565b5060405133904780156108fc02916000818181858888f1935050505015801561188a573d6000803e3d6000fd5b5050609e805460ff60a01b19169055565b609d546001600160a01b03163314806118be57506066546001600160a01b031633145b6118da5760405162461bcd60e51b81526004016107a49061264c565b60a855565b600080516020612a0c833981519152546001600160a01b031690565b609d546001600160a01b031633148061191e57506066546001600160a01b031633145b6108855760405162461bcd60e51b81526004016107a49061264c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561196d5761126683612140565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156119c7575060408051601f3d908101601f191682019092526119c491810190612847565b60015b611a2a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107a4565b600080516020612a0c8339815191528114611a995760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107a4565b506112668383836121da565b6001600160a01b038083166000908152609b602052604081208054600a9091015491921690828215611e11576001600160a01b038681166000908152609b602090815260408083206009015493871683528083206005908101548452609c8352818420825160808101845281548152600182015494810194909452600281015484840152825160a081019384905290926060850192600385019182845b815481526020019060010190808311611b4257505050505081525050905083600003611c0f57609e546040805163313ce56760e01b815290516000926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015611bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd69190612860565b611be190600a612967565b905063649afa808311611bff57611bfa816101f4612976565b611c0b565b611c0b816103e8612976565b9450505b83816020015111611c205783611c26565b80602001515b93506000808260400151118015611c5757506001600160a01b0386166000908152609b602052604090206006015483115b8015611c9a57506001600160a01b0386166000908152609b60205260409020600601546201518090611c8990856127ca565b611c93919061298d565b8260400151105b6001600160a01b0387166000908152609b602052604081206007018054929350600192909190611ccb90849061279a565b90915550506001600160a01b0386166000908152609b602052604081206008018054879290611cfb90849061279a565b9091555050815115801590611d2c575081516001600160a01b0387166000908152609b602052604090206007015410155b8015611d36575080155b15611d90576001600160a01b0386166000908152609b60205260408120600501805460019290611d6790849061279a565b90915550506001600160a01b0386166000908152609b6020526040902042600690910155600193505b8715611e0d57609e5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90611dc8908990899060040161280a565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906127ad565b505b5050505b6001600160a01b0386166000908152609b60205260408120600201805460ff19166001908117909155609f805491929091611e4d90849061279a565b909155505060a08054839190600090611e6790849061279a565b9091555050609e546001600160a01b031663a9059cbb87611e8960028661298d565b6040518363ffffffff1660e01b8152600401611ea692919061280a565b6020604051808303816000875af1158015611ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee991906127ad565b506001600160a01b038381166000818152609b602090815260409182902060050154825187815291820152841515818301529051928916927f6081787cd1bd02ab1576c52f03e8710d792d460e7881c3155d77d23893f3768b9181900360600190a350949350505050565b6000806000611f61610888565b6001600160a01b031684604051602401611f7b9190612392565b60408051601f198184030181529181526020820180516001600160e01b031663a061922d60e01b17905251611fb091906129af565b600060405180830381855afa9150503d8060008114611feb576040519150601f19603f3d011682016040523d82523d6000602084013e611ff0565b606091505b50909250905081151560000361200a57465b949350505050565b808060200190518101906120029190612847565b6001600160a01b03163b151590565b612036836121ff565b609d80546001600160a01b038084166001600160a01b031990921691909117909155609e805460ff60a01b1916600160a01b17905560008052609c6020526000805160206129cc83398151915283905560675460405163bf40fac160e01b81527f21d5695aeb71770b4b420e85352fe1a012fa06ae92de02f7ee513765e0afa02392919091169063bf40fac1906120cf90600401612823565b602060405180830381865afa1580156120ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612110919061262f565b609e80546001600160a01b0319166001600160a01b0392909216919091179055505060a7805460ff191690555050565b6121498161201e565b6121ab5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107a4565b600080516020612a0c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6121e383612222565b6000825111806121f05750805b15611266576114748383612262565b606780546001600160a01b0319166001600160a01b03831617905561088561063e565b61222b81612140565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061226d8361201e565b6122c85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107a4565b600080846001600160a01b0316846040516122e391906129af565b600060405180830381855af49150503d806000811461231e576040519150601f19603f3d011682016040523d82523d6000602084013e612323565b606091505b509150915061234b8282604051806060016040528060278152602001612a2c60279139612354565b95945050505050565b60608315612363575081611004565b61100483838151156123785781518083602001fd5b8060405162461bcd60e51b81526004016107a49190612500565b6001600160a01b0391909116815260200190565b801515811461088557600080fd5b6000602082840312156123c657600080fd5b8135611004816123a6565b6001600160a01b038116811461088557600080fd5b6000602082840312156123f857600080fd5b8135611004816123d1565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561242c57600080fd5b8235612437816123d1565b915060208301356001600160401b038082111561245357600080fd5b818501915085601f83011261246757600080fd5b81358181111561247957612479612403565b604051601f8201601f19908116603f011681019083821181831017156124a1576124a1612403565b816040528281528860208487010111156124ba57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156124f75781810151838201526020016124df565b50506000910152565b602081526000825180602084015261251f8160408501602087016124dc565b601f01601f19169190910160400192915050565b6000806040838503121561254657600080fd5b50508035926020909101359150565b60006020828403121561256757600080fd5b5035919050565b6000806000806080858703121561258457600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156125b557600080fd5b83356125c0816123d1565b92506020840135915060408401356125d7816123d1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b818110156126235783516001600160a01b0316835292840192918401916001016125fe565b50909695505050505050565b60006020828403121561264157600080fd5b8151611004816123d1565b6020808252602c908201527f4f6e6c79206f776e6572206f72206176617461722063616e20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b6020808252602c908201526000805160206129ec83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206129ec83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161274a5761274a612722565b5060010190565b6020808252600a90820152696e6f742061637469766560b01b604082015260600190565b6020808252600b908201526a73656c6620696e7669746560a81b604082015260600190565b808201808211156112f7576112f7612722565b6000602082840312156127bf57600080fd5b8151611004816123a6565b818103818111156112f7576112f7612722565b634e487b7160e01b600052603160045260246000fd5b60008161280257612802612722565b506000190190565b6001600160a01b03929092168252602082015260400190565b6020808252600a908201526923a7a7a22227a62620a960b11b604082015260600190565b60006020828403121561285957600080fd5b5051919050565b60006020828403121561287257600080fd5b815160ff8116811461100457600080fd5b600181815b808511156128be5781600019048211156128a4576128a4612722565b808516156128b157918102915b93841c9390800290612888565b509250929050565b6000826128d5575060016112f7565b816128e2575060006112f7565b81600181146128f857600281146129025761291e565b60019150506112f7565b60ff84111561291357612913612722565b50506001821b6112f7565b5060208310610133831016604e8410600b8410161715612941575081810a6112f7565b61294b8383612883565b806000190482111561295f5761295f612722565b029392505050565b600061100460ff8416836128c6565b80820281158282048414176112f7576112f7612722565b6000826129aa57634e487b7160e01b600052601260045260246000fd5b500490565b600082516129c18184602087016124dc565b919091019291505056fe21d5695aeb71770b4b420e85352fe1a012fa06ae92de02f7ee513765e0afa02446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200ed9395c099ea41a99a1a30b20eb5d7f8b33a85579b39856a1a559933bc378a264736f6c63430008130033";
|
|
657
|
+
"0x60a06040523060805234801561001457600080fd5b50608051612ab061004c600039600081816107ca0152818161080a015281816109eb01528181610a2b0152610aa70152612ab06000f3fe6080604052600436106101685760003560e01c806302fb0c5e1461016d578063119e5bf3146101a35780631b3c90a8146101d057806321132aad146101e75780633659cfe61461020757806336afc6fa146102275780633e6326fc1461023c57806341155d5e1461025c5780634162169f1461028a5780634f1ef286146102aa57806352d1902d146102bd57806354fd4d50146102d25780635aef7de6146103045780635b419a65146103245780636d619ef8146103445780638da5cb5b14610364578063a1df6fd314610384578063a87430ba1461039e578063acec338a14610466578063af6346b014610486578063b2596a671461049b578063b6567cd5146104f2578063b9fb2d1814610512578063ba6f568014610532578063c350a1b514610568578063d80528ae14610588578063e1758bd8146105a7578063e951a3aa146105bc578063e9881a5e146105e9578063efbe1c1c14610609578063f14b86491461061e575b600080fd5b34801561017957600080fd5b50609e5461018e90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156101af57600080fd5b50609e546101c3906001600160a01b031681565b60405161019a91906123ba565b3480156101dc57600080fd5b506101e561063e565b005b3480156101f357600080fd5b506101e56102023660046123dc565b610765565b34801561021357600080fd5b506101e561022236600461240e565b6107c0565b34801561023357600080fd5b506101c3610888565b34801561024857600080fd5b506067546101c3906001600160a01b031681565b34801561026857600080fd5b5061027c61027736600461240e565b610914565b60405190815260200161019a565b34801561029657600080fd5b506065546101c3906001600160a01b031681565b6101e56102b8366004612441565b6109e1565b3480156102c957600080fd5b5061027c610a9a565b3480156102de57600080fd5b506040805180820182526003815262322e3360e81b6020820152905161019a9190612528565b34801561031057600080fd5b506066546101c3906001600160a01b031681565b34801561033057600080fd5b506101e561033f36600461255b565b610b48565b34801561035057600080fd5b5061018e61035f36600461240e565b610e79565b34801561037057600080fd5b50609d546101c3906001600160a01b031681565b34801561039057600080fd5b5060a75461018e9060ff1681565b3480156103aa57600080fd5b506104126103b936600461240e565b609b60205260009081526040902080546001820154600283015460058401546006850154600786015460088701546009880154600a909801546001600160a01b0390971697959660ff9095169593949293919290919089565b604080516001600160a01b03909a168a5260208a0198909852951515968801969096526060870193909352608086019190915260a085015260c084015260e08301919091526101008201526101200161019a565b34801561047257600080fd5b506101e56104813660046123dc565b610ffc565b34801561049257600080fd5b506101e5611059565b3480156104a757600080fd5b506104d76104b636600461257d565b609c6020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161019a565b3480156104fe57600080fd5b5061027c61050d36600461240e565b61125c565b34801561051e57600080fd5b506101e561052d366004612596565b6112ee565b34801561053e57600080fd5b506101c361054d36600461257d565b609a602052600090815260409020546001600160a01b031681565b34801561057457600080fd5b506101e56105833660046125c8565b61134d565b34801561059457600080fd5b50609f5460a05460a1546104d792919083565b3480156105b357600080fd5b506101c361146b565b3480156105c857600080fd5b506105dc6105d736600461240e565b61149a565b60405161019a919061260a565b3480156105f557600080fd5b506105dc61060436600461240e565b611685565b34801561061557600080fd5b506101e56116fe565b34801561062a57600080fd5b506101e561063936600461257d565b61188c565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156106a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c59190612657565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561071f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107439190612657565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b609d546001600160a01b031633148061078857506066546001600160a01b031633145b6107ad5760405162461bcd60e51b81526004016107a490612674565b60405180910390fd5b60a7805460ff1916911515919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108085760405162461bcd60e51b81526004016107a4906126c0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661083a6118f0565b6001600160a01b0316146108605760405162461bcd60e51b81526004016107a4906126fa565b6108698161190c565b604080516000808252602082019092526108859183919061194b565b50565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526000916001600160a01b03169063bf40fac1906064015b602060405180830381865afa1580156108eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090f9190612657565b905090565b6001600160a01b0381166000908152609b602090815260408083206004018054825181850281018501909352808352849383018282801561097e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610960575b505050505090506000805b82518110156109d9576109b48382815181106109a7576109a7612734565b6020026020010151610e79565b156109c757816109c381612760565b9250505b806109d181612760565b915050610989565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a295760405162461bcd60e51b81526004016107a4906126c0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a5b6118f0565b6001600160a01b031614610a815760405162461bcd60e51b81526004016107a4906126fa565b610a8a8261190c565b610a968282600161194b565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b355760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016107a4565b50600080516020612a3483398151915290565b609e54600160a01b900460ff16610b715760405162461bcd60e51b81526004016107a490612779565b6000828152609a60205260409020546001600160a01b03161580610bab57506000828152609a60205260409020546001600160a01b031633145b80610bbe57506001600160a01b03821633145b610c075760405162461bcd60e51b815260206004820152601a602482015279696e7669746520636f646520616c726561647920696e2075736560301b60448201526064016107a4565b808203610c265760405162461bcd60e51b81526004016107a49061279d565b336000908152609b60209081526040808320848452609a9092529091205460028201546001600160a01b039091169060ff16158015610c8c575060018201541580610c8c575081546001600160a01b0316158015610c8c57506001600160a01b03811615155b610cce5760405162461bcd60e51b81526020600482015260136024820152721d5cd95c88185b1c9958591e481a9bda5b9959606a1b60448201526064016107a4565b6001820154600003610d0d5760018201849055426006830181905560098301556000848152609a6020526040902080546001600160a01b031916331790555b6001600160a01b03811615610e2257336001600160a01b03821603610d445760405162461bcd60e51b81526004016107a49061279d565b81546001600160a01b0319166001600160a01b03821617825560a1805460019190600090610d739084906127c2565b9091555050306001600160a01b03821603610dab5760008052609c6020526000805160206129f483398151915254600a830155610e22565b6001600160a01b0381166000908152609b6020908152604080832060038101805460018082018355918652848620018054336001600160a01b03199182168117909255600484018054808501825590885286882001805490911690911790556005909101548452609c9092529091200154600a8301555b610e2b33610e79565b15610e3d57610e3b336001611ab6565b505b60405133906001600160a01b038316907fd8c638d8979e2ba5dba1f0d66246ee4b1c54b838f0e0a2b601365345eb23b05190600090a350505050565b6001600160a01b038082166000908152609b602052604081208054600a909101549192169015801590610ec857506001600160a01b0383166000908152609b602052604090206002015460ff16155b8015610f435750610ed7610888565b6001600160a01b0316633af32abf846040518263ffffffff1660e01b8152600401610f0291906123ba565b602060405180830381865afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4391906127d5565b8015610fe257506001600160a01b0381161580610f6857506001600160a01b03811630145b80610fe25750610f76610888565b6001600160a01b0316633af32abf826040518263ffffffff1660e01b8152600401610fa191906123ba565b602060405180830381865afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe291906127d5565b8015610ff5575046610ff384611f7c565b145b9392505050565b609d546001600160a01b031633148061101f57506066546001600160a01b031633145b61103b5760405162461bcd60e51b81526004016107a490612674565b609e8054911515600160a01b0260ff60a01b19909216919091179055565b609e54600160a01b900460ff166110825760405162461bcd60e51b81526004016107a490612779565b336000908152609b6020526040812060040180549091905b80156111db576202d2a85a106111db576000836110b86001846127f2565b815481106110c8576110c8612734565b6000918252602090912001546001600160a01b031690506110e881610e79565b156111c857620493e05a10156110fe57506111db565b611109816000611ab6565b61111390846127c2565b84549093508490611126906001906127f2565b8154811061113657611136612734565b6000918252602090912001546001600160a01b0316846111576001856127f2565b8154811061116757611167612734565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550838054806111a5576111a5612805565b600082815260209020810160001990810180546001600160a01b03191690550190555b50806111d38161281b565b91505061109a565b508015610a9657609e5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906112149033908590600401612832565b6020604051808303816000875af1158015611233573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125791906127d5565b505050565b609e54600090600160a01b900460ff166112885760405162461bcd60e51b81526004016107a490612779565b61129182610e79565b6112dd5760405162461bcd60e51b815260206004820181905260248201527f75736572206e6f7420656c6c6967626c6520666f7220626f756e74792079657460448201526064016107a4565b6112e8826001611ab6565b92915050565b609d546001600160a01b031633148061131157506066546001600160a01b031633145b61132d5760405162461bcd60e51b81526004016107a490612674565b6000938452609c6020526040909320918255600282019290925560010155565b600054610100900460ff161580801561136d5750600054600160ff909116105b8061138e575061137c30612046565b15801561138e575060005460ff166001145b6113f15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016107a4565b6000805460ff191660011790558015611414576000805461ff0019166101001790555b61141f848484612055565b8015611465576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906108ce9060040161284b565b6001600160a01b0381166000908152609b6020908152604080832060040180548251818502810185019093528083526060949383018282801561150657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114e8575b5050505050905060008060005b835181101561158057609b600085838151811061153257611532612734565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff1661156e578161156a81612760565b9250505b8061157881612760565b915050611513565b506000816001600160401b0381111561159b5761159b61242b565b6040519080825280602002602001820160405280156115c4578160200160208202803683370190505b50905060005b845181101561167b57609b60008683815181106115e9576115e9612734565b6020908102919091018101516001600160a01b031682528101919091526040016000206002015460ff166116695784818151811061162957611629612734565b602002602001015182858151811061164357611643612734565b6001600160a01b03909216602092830291909101909101528361166581612760565b9450505b8061167381612760565b9150506115ca565b5095945050505050565b6001600160a01b0381166000908152609b60209081526040918290206003018054835181840281018401909452808452606093928301828280156116f257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116d4575b50505050509050919050565b609d546001600160a01b031633148061172157506066546001600160a01b031633145b61173d5760405162461bcd60e51b81526004016107a490612674565b609e54600160a01b900460ff166117665760405162461bcd60e51b81526004016107a490612779565b609e546040516370a0823160e01b81526000916001600160a01b0316906370a08231906117979030906004016123ba565b602060405180830381865afa1580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d8919061286f565b609e5460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb9061180b9033908590600401612832565b6020604051808303816000875af115801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e91906127d5565b5060405133904780156108fc02916000818181858888f1935050505015801561187b573d6000803e3d6000fd5b5050609e805460ff60a01b19169055565b609d546001600160a01b03163314806118af57506066546001600160a01b031633145b6118cb5760405162461bcd60e51b81526004016107a490612674565b60a88190556000908152609a6020526040902080546001600160a01b03191630179055565b600080516020612a34833981519152546001600160a01b031690565b609d546001600160a01b031633148061192f57506066546001600160a01b031633145b6108855760405162461bcd60e51b81526004016107a490612674565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561197e5761125783612168565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156119d8575060408051601f3d908101601f191682019092526119d59181019061286f565b60015b611a3b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016107a4565b600080516020612a348339815191528114611aaa5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016107a4565b50611257838383612202565b6001600160a01b038083166000908152609b602052604081208054600a909101549192169082308314801590611af457506001600160a01b03831615155b15611e39576001600160a01b038681166000908152609b602090815260408083206009015493871683528083206005908101548452609c8352818420825160808101845281548152600182015494810194909452600281015484840152825160a081019384905290926060850192600385019182845b815481526020019060010190808311611b6a57505050505081525050905083600003611c3757609e546040805163313ce56760e01b815290516000926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015611bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfe9190612888565b611c0990600a61298f565b905063649afa808311611c2757611c22816101f461299e565b611c33565b611c33816103e861299e565b9450505b83816020015111611c485783611c4e565b80602001515b93506000808260400151118015611c7f57506001600160a01b0386166000908152609b602052604090206006015483115b8015611cc257506001600160a01b0386166000908152609b60205260409020600601546201518090611cb190856127f2565b611cbb91906129b5565b8260400151105b6001600160a01b0387166000908152609b602052604081206007018054929350600192909190611cf39084906127c2565b90915550506001600160a01b0386166000908152609b602052604081206008018054879290611d239084906127c2565b9091555050815115801590611d54575081516001600160a01b0387166000908152609b602052604090206007015410155b8015611d5e575080155b15611db8576001600160a01b0386166000908152609b60205260408120600501805460019290611d8f9084906127c2565b90915550506001600160a01b0386166000908152609b6020526040902042600690910155600193505b8715611e3557609e5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90611df09089908990600401612832565b6020604051808303816000875af1158015611e0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3391906127d5565b505b5050505b6001600160a01b0386166000908152609b60205260408120600201805460ff19166001908117909155609f805491929091611e759084906127c2565b909155505060a08054839190600090611e8f9084906127c2565b9091555050609e546001600160a01b031663a9059cbb87611eb16002866129b5565b6040518363ffffffff1660e01b8152600401611ece929190612832565b6020604051808303816000875af1158015611eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1191906127d5565b506001600160a01b038381166000818152609b602090815260409182902060050154825187815291820152841515818301529051928916927f6081787cd1bd02ab1576c52f03e8710d792d460e7881c3155d77d23893f3768b9181900360600190a350949350505050565b6000806000611f89610888565b6001600160a01b031684604051602401611fa391906123ba565b60408051601f198184030181529181526020820180516001600160e01b031663a061922d60e01b17905251611fd891906129d7565b600060405180830381855afa9150503d8060008114612013576040519150601f19603f3d011682016040523d82523d6000602084013e612018565b606091505b50909250905081151560000361203257465b949350505050565b8080602001905181019061202a919061286f565b6001600160a01b03163b151590565b61205e83612227565b609d80546001600160a01b038084166001600160a01b031990921691909117909155609e805460ff60a01b1916600160a01b17905560008052609c6020526000805160206129f483398151915283905560675460405163bf40fac160e01b81527f21d5695aeb71770b4b420e85352fe1a012fa06ae92de02f7ee513765e0afa02392919091169063bf40fac1906120f79060040161284b565b602060405180830381865afa158015612114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121389190612657565b609e80546001600160a01b0319166001600160a01b0392909216919091179055505060a7805460ff191690555050565b61217181612046565b6121d35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107a4565b600080516020612a3483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61220b8361224a565b6000825111806122185750805b1561125757611465838361228a565b606780546001600160a01b0319166001600160a01b03831617905561088561063e565b61225381612168565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061229583612046565b6122f05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107a4565b600080846001600160a01b03168460405161230b91906129d7565b600060405180830381855af49150503d8060008114612346576040519150601f19603f3d011682016040523d82523d6000602084013e61234b565b606091505b50915091506123738282604051806060016040528060278152602001612a546027913961237c565b95945050505050565b6060831561238b575081610ff5565b610ff583838151156123a05781518083602001fd5b8060405162461bcd60e51b81526004016107a49190612528565b6001600160a01b0391909116815260200190565b801515811461088557600080fd5b6000602082840312156123ee57600080fd5b8135610ff5816123ce565b6001600160a01b038116811461088557600080fd5b60006020828403121561242057600080fd5b8135610ff5816123f9565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561245457600080fd5b823561245f816123f9565b915060208301356001600160401b038082111561247b57600080fd5b818501915085601f83011261248f57600080fd5b8135818111156124a1576124a161242b565b604051601f8201601f19908116603f011681019083821181831017156124c9576124c961242b565b816040528281528860208487010111156124e257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b8381101561251f578181015183820152602001612507565b50506000910152565b6020815260008251806020840152612547816040850160208701612504565b601f01601f19169190910160400192915050565b6000806040838503121561256e57600080fd5b50508035926020909101359150565b60006020828403121561258f57600080fd5b5035919050565b600080600080608085870312156125ac57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156125dd57600080fd5b83356125e8816123f9565b92506020840135915060408401356125ff816123f9565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561264b5783516001600160a01b031683529284019291840191600101612626565b50909695505050505050565b60006020828403121561266957600080fd5b8151610ff5816123f9565b6020808252602c908201527f4f6e6c79206f776e6572206f72206176617461722063616e20706572666f726d60408201526b103a3434b99030b1ba34b7b760a11b606082015260800190565b6020808252602c90820152600080516020612a1483398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020612a1483398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016127725761277261274a565b5060010190565b6020808252600a90820152696e6f742061637469766560b01b604082015260600190565b6020808252600b908201526a73656c6620696e7669746560a81b604082015260600190565b808201808211156112e8576112e861274a565b6000602082840312156127e757600080fd5b8151610ff5816123ce565b818103818111156112e8576112e861274a565b634e487b7160e01b600052603160045260246000fd5b60008161282a5761282a61274a565b506000190190565b6001600160a01b03929092168252602082015260400190565b6020808252600a908201526923a7a7a22227a62620a960b11b604082015260600190565b60006020828403121561288157600080fd5b5051919050565b60006020828403121561289a57600080fd5b815160ff81168114610ff557600080fd5b600181815b808511156128e65781600019048211156128cc576128cc61274a565b808516156128d957918102915b93841c93908002906128b0565b509250929050565b6000826128fd575060016112e8565b8161290a575060006112e8565b8160018114612920576002811461292a57612946565b60019150506112e8565b60ff84111561293b5761293b61274a565b50506001821b6112e8565b5060208310610133831016604e8410600b8410161715612969575081810a6112e8565b61297383836128ab565b80600019048211156129875761298761274a565b029392505050565b6000610ff560ff8416836128ee565b80820281158282048414176112e8576112e861274a565b6000826129d257634e487b7160e01b600052601260045260246000fd5b500490565b600082516129e9818460208701612504565b919091019291505056fe21d5695aeb71770b4b420e85352fe1a012fa06ae92de02f7ee513765e0afa02446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122066828ddc3f7acf70a05d9082663c93ac1058f7dc308bfa358c5afbb4396a1f8964736f6c63430008130033";
|
|
658
658
|
|
|
659
659
|
type InvitesV2ConstructorParams =
|
|
660
660
|
| [signer?: Signer]
|