aiia-vault-sdk 1.3.0 → 1.3.2
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/dist/EthStaking.d.ts +26 -26
- package/dist/EthStaking.js +1 -1
- package/dist/FairLaunch.js +1 -1
- package/dist/MultiLevelReferralNFT.js +1 -1
- package/dist/SeedRoundFundraiser.js +1 -1
- package/dist/abis/EthStaking.json +34 -34
- package/dist/contracts/EthStaking.d.ts +34 -34
- package/dist/contracts.json +2 -2
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
package/dist/EthStaking.d.ts
CHANGED
@@ -58,25 +58,25 @@ export declare class EthStakingSDK {
|
|
58
58
|
*/
|
59
59
|
buildUnstakeTx(amount: number): Promise<ethers.ContractTransaction>;
|
60
60
|
/**
|
61
|
-
* Builds a transaction to
|
62
|
-
* @param amount Reward amount to
|
61
|
+
* Builds a transaction to harvest rewards
|
62
|
+
* @param amount Reward amount to harvest in wei (as bigint)
|
63
63
|
* @param nonce Unique nonce to prevent replay attacks
|
64
64
|
* @param deadline Timestamp after which signature is invalid
|
65
65
|
* @param signature Signature from authorized signer
|
66
66
|
* @returns Populated transaction
|
67
67
|
*/
|
68
|
-
|
68
|
+
buildHarvestRewardTxRaw(amount: bigint, nonce: bigint, deadline: bigint, signature: string): Promise<ethers.ContractTransaction>;
|
69
69
|
/**
|
70
|
-
* Builds a transaction to
|
71
|
-
* @param amount Reward amount to
|
70
|
+
* Builds a transaction to harvest rewards
|
71
|
+
* @param amount Reward amount to harvest in ether
|
72
72
|
* @param nonce Unique nonce to prevent replay attacks
|
73
73
|
* @param deadline Timestamp after which signature is invalid
|
74
74
|
* @param signature Signature from authorized signer
|
75
75
|
* @returns Populated transaction
|
76
76
|
*/
|
77
|
-
|
77
|
+
buildHarvestRewardTx(amount: number, nonce: number, deadline: number, signature: string): Promise<ethers.ContractTransaction>;
|
78
78
|
/**
|
79
|
-
* Builds a transaction to unstake and
|
79
|
+
* Builds a transaction to unstake and harvest in one transaction
|
80
80
|
* @param unstakeAmount Unstake amount in wei (as bigint)
|
81
81
|
* @param rewardAmount Reward amount in wei (as bigint)
|
82
82
|
* @param nonce Unique nonce to prevent replay attacks
|
@@ -84,9 +84,9 @@ export declare class EthStakingSDK {
|
|
84
84
|
* @param signature Signature from authorized signer
|
85
85
|
* @returns Populated transaction
|
86
86
|
*/
|
87
|
-
|
87
|
+
buildUnstakeAndHarvestTxRaw(unstakeAmount: bigint, rewardAmount: bigint, nonce: bigint, deadline: bigint, signature: string): Promise<ethers.ContractTransaction>;
|
88
88
|
/**
|
89
|
-
* Builds a transaction to unstake and
|
89
|
+
* Builds a transaction to unstake and harvest in one transaction
|
90
90
|
* @param unstakeAmount Unstake amount in ether
|
91
91
|
* @param rewardAmount Reward amount in ether
|
92
92
|
* @param nonce Unique nonce to prevent replay attacks
|
@@ -94,7 +94,7 @@ export declare class EthStakingSDK {
|
|
94
94
|
* @param signature Signature from authorized signer
|
95
95
|
* @returns Populated transaction
|
96
96
|
*/
|
97
|
-
|
97
|
+
buildUnstakeAndHarvestTx(unstakeAmount: number, rewardAmount: number, nonce: number, deadline: number, signature: string): Promise<ethers.ContractTransaction>;
|
98
98
|
/**
|
99
99
|
* Builds a transaction to add rewards to the contract
|
100
100
|
* @param amount Amount to add in wei (as bigint)
|
@@ -180,12 +180,12 @@ export declare class EthStakingSDK {
|
|
180
180
|
*/
|
181
181
|
getTotalRewards(): Promise<number>;
|
182
182
|
/**
|
183
|
-
* Gets maximum reward amount allowed in a single
|
183
|
+
* Gets maximum reward amount allowed in a single harvest in wei
|
184
184
|
* @returns Maximum reward amount as bigint
|
185
185
|
*/
|
186
186
|
getMaxRewardAmountRaw(): Promise<bigint>;
|
187
187
|
/**
|
188
|
-
* Gets maximum reward amount allowed in a single
|
188
|
+
* Gets maximum reward amount allowed in a single harvest in ether
|
189
189
|
* @returns Maximum reward amount as number
|
190
190
|
*/
|
191
191
|
getMaxRewardAmount(): Promise<number>;
|
@@ -200,22 +200,22 @@ export declare class EthStakingSDK {
|
|
200
200
|
*/
|
201
201
|
getMinStakeAmount(): Promise<number>;
|
202
202
|
/**
|
203
|
-
* Gets user's stake and total
|
203
|
+
* Gets user's stake and total harvested rewards in wei
|
204
204
|
* @param user Address of the user
|
205
|
-
* @returns Object containing stake and
|
205
|
+
* @returns Object containing stake and harvested rewards as bigint
|
206
206
|
*/
|
207
207
|
getUserInfoRaw(user: string): Promise<{
|
208
208
|
stake: bigint;
|
209
|
-
|
209
|
+
harvested: bigint;
|
210
210
|
}>;
|
211
211
|
/**
|
212
|
-
* Gets user's stake and total
|
212
|
+
* Gets user's stake and total harvested rewards in ether
|
213
213
|
* @param user Address of the user
|
214
|
-
* @returns Object containing stake and
|
214
|
+
* @returns Object containing stake and harvested rewards as number
|
215
215
|
*/
|
216
216
|
getUserInfo(user: string): Promise<{
|
217
217
|
stake: number;
|
218
|
-
|
218
|
+
harvested: number;
|
219
219
|
}>;
|
220
220
|
/**
|
221
221
|
* Gets user's stake in wei
|
@@ -230,17 +230,17 @@ export declare class EthStakingSDK {
|
|
230
230
|
*/
|
231
231
|
getUserStake(user: string): Promise<number>;
|
232
232
|
/**
|
233
|
-
* Gets user's total rewards
|
233
|
+
* Gets user's total rewards harvested in wei
|
234
234
|
* @param user Address of the user
|
235
|
-
* @returns User's total rewards
|
235
|
+
* @returns User's total rewards harvested as bigint
|
236
236
|
*/
|
237
|
-
|
237
|
+
getUserTotalRewardsHarvestedRaw(user: string): Promise<bigint>;
|
238
238
|
/**
|
239
|
-
* Gets user's total rewards
|
239
|
+
* Gets user's total rewards harvested in ether
|
240
240
|
* @param user Address of the user
|
241
|
-
* @returns User's total rewards
|
241
|
+
* @returns User's total rewards harvested as number
|
242
242
|
*/
|
243
|
-
|
243
|
+
getUserTotalRewardsHarvested(user: string): Promise<number>;
|
244
244
|
/**
|
245
245
|
* Checks if the contract is paused
|
246
246
|
* @returns Boolean indicating if contract is paused
|
@@ -280,9 +280,9 @@ export declare class EthStakingSDK {
|
|
280
280
|
*/
|
281
281
|
hasAdminRole(address: string): Promise<boolean>;
|
282
282
|
/**
|
283
|
-
* Creates a signature for
|
283
|
+
* Creates a signature for harvesting rewards
|
284
284
|
* @param contractAddress Address of the EthStaking contract
|
285
|
-
* @param userAddress Address of the user
|
285
|
+
* @param userAddress Address of the user harvesting rewards
|
286
286
|
* @param amount Reward amount in ether
|
287
287
|
* @param nonce Unique nonce to prevent replay attacks
|
288
288
|
* @param deadline Timestamp after which signature is invalid
|
package/dist/EthStaking.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";var t=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.EthStakingSDK=void 0;const
|
1
|
+
"use strict";var t=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.EthStakingSDK=void 0;const e=require("ethers"),a=t(require("./abis/EthStaking.json")),r=t(require("./contracts.json")),s=require("./utils");exports.EthStakingSDK=class{constructor(t,n){this.name="EthStaking",this.isBootstrapped=!1,this.formatEventArgs=t=>{const{eventName:a,args:r}=t;switch(a){case"Staked":case"Unstaked":return{...t,args:{...r,user:r.user.toLowerCase(),amount:Number(e.ethers.formatEther(r.amount)),timestamp:Number(r.timestamp)}};case"RewardHarvested":return{...t,args:{...r,user:r.user.toLowerCase(),amount:Number(e.ethers.formatEther(r.amount)),timestamp:Number(r.timestamp),signatureHash:r.signatureHash}};case"SignerUpdated":return{...t,args:{...r,newSigner:r.newSigner.toLowerCase()}};case"MinStakeUpdated":return{...t,args:{...r,oldAmount:Number(e.ethers.formatEther(r.oldAmount)),newAmount:Number(e.ethers.formatEther(r.newAmount))}};default:return t}};const i=Array.isArray(t)?t:[t];this.providers=i.map((t=>new e.ethers.JsonRpcProvider(t,void 0,{staticNetwork:!0})));const o=(0,s.getRandomProvider)(this.providers);this.contractAddress=(0,s.resolveContractAddress)(i[0],this.name,r.default,n),this.contract=new e.ethers.Contract(this.contractAddress,a.default.abi,o)}getRandomProvider(){return(0,s.getRandomProvider)(this.providers)}getContractWithRandomProvider(){return new e.ethers.Contract(this.contractAddress,a.default.abi,this.getRandomProvider())}async bootstrap(){if(this.isBootstrapped)return;const t=await Promise.all(this.providers.map(((t,e)=>(0,s.checkRpcHealth)(t,e))));if(this.providers=this.providers.filter(((e,a)=>t[a])),0===this.providers.length)throw new Error("No active RPC providers available");this.isBootstrapped=!0}async signAndSendTransaction(t,e,a={}){return(0,s.signAndSendTransaction)(t,e,(()=>this.getRandomProvider()),a,this.contract)}async buildStakeTxRaw(t){return await this.contract.stake.populateTransaction({value:t})}async buildStakeTx(t){return await this.buildStakeTxRaw(e.ethers.parseEther(t.toString()))}async buildUnstakeTxRaw(t){return await this.contract.unstake.populateTransaction(t)}async buildUnstakeTx(t){return await this.buildUnstakeTxRaw(e.ethers.parseEther(t.toString()))}async buildHarvestRewardTxRaw(t,e,a,r){return await this.contract.harvestReward.populateTransaction(t,e,a,r)}async buildHarvestRewardTx(t,a,r,s){return await this.buildHarvestRewardTxRaw(e.ethers.parseEther(t.toString()),BigInt(a),BigInt(r),s)}async buildUnstakeAndHarvestTxRaw(t,e,a,r,s){return await this.contract.unstakeAndHarvest.populateTransaction(t,e,a,r,s)}async buildUnstakeAndHarvestTx(t,a,r,s,n){return await this.buildUnstakeAndHarvestTxRaw(e.ethers.parseEther(t.toString()),e.ethers.parseEther(a.toString()),BigInt(r),BigInt(s),n)}async buildAddRewardsTxRaw(t){return await this.contract.addRewards.populateTransaction({value:t})}async buildAddRewardsTx(t){return await this.buildAddRewardsTxRaw(e.ethers.parseEther(t.toString()))}async buildUpdateMaxRewardAmountTxRaw(t){return await this.contract.updateMaxRewardAmount.populateTransaction(t)}async buildUpdateMaxRewardAmountTx(t){return await this.buildUpdateMaxRewardAmountTxRaw(e.ethers.parseEther(t.toString()))}async buildSetMinStakeAmountTxRaw(t){return await this.contract.setMinStakeAmount.populateTransaction(t)}async buildSetMinStakeAmountTx(t){return await this.buildSetMinStakeAmountTxRaw(e.ethers.parseEther(t.toString()))}async buildAddSignerTx(t){return await this.contract.addSigner.populateTransaction(t)}async buildRemoveSignerTx(t){return await this.contract.removeSigner.populateTransaction(t)}async buildPauseTx(){return await this.contract.pause.populateTransaction()}async buildUnpauseTx(){return await this.contract.unpause.populateTransaction()}async buildEmergencyUnstakeTx(t){return await this.contract.emergencyUnstake.populateTransaction(t)}async getTotalStakedRaw(){return await this.contract.totalStaked()}async getTotalStaked(){const t=await this.getTotalStakedRaw();return Number(e.ethers.formatEther(t))}async getTotalRewardsRaw(){return await this.contract.totalRewards()}async getTotalRewards(){const t=await this.getTotalRewardsRaw();return Number(e.ethers.formatEther(t))}async getMaxRewardAmountRaw(){return await this.contract.maxRewardAmount()}async getMaxRewardAmount(){const t=await this.getMaxRewardAmountRaw();return Number(e.ethers.formatEther(t))}async getMinStakeAmountRaw(){return await this.contract.minStakeAmount()}async getMinStakeAmount(){const t=await this.getMinStakeAmountRaw();return Number(e.ethers.formatEther(t))}async getUserInfoRaw(t){const[e,a]=await this.contract.getUserInfo(t);return{stake:e,harvested:a}}async getUserInfo(t){const{stake:a,harvested:r}=await this.getUserInfoRaw(t);return{stake:Number(e.ethers.formatEther(a)),harvested:Number(e.ethers.formatEther(r))}}async getUserStakeRaw(t){return await this.contract.userStakes(t)}async getUserStake(t){const a=await this.getUserStakeRaw(t);return Number(e.ethers.formatEther(a))}async getUserTotalRewardsHarvestedRaw(t){return await this.contract.userTotalRewardsHarvested(t)}async getUserTotalRewardsHarvested(t){const a=await this.getUserTotalRewardsHarvestedRaw(t);return Number(e.ethers.formatEther(a))}async isPaused(){return await this.contract.paused()}async getOperatorRoleHash(){return await this.contract.OPERATOR_ROLE()}async getSignerRoleHash(){return await this.contract.SIGNER_ROLE()}async getAdminRoleHash(){return await this.contract.DEFAULT_ADMIN_ROLE()}async hasOperatorRole(t){const e=await this.contract.OPERATOR_ROLE();return await this.contract.hasRole(e,t)}async hasSignerRole(t){const e=await this.contract.SIGNER_ROLE();return await this.contract.hasRole(e,t)}async hasAdminRole(t){const e=await this.contract.DEFAULT_ADMIN_ROLE();return await this.contract.hasRole(e,t)}async createRewardSignature(t,a,r,s,n,i){const o=e.ethers.parseEther(r.toString()),c=e.ethers.solidityPackedKeccak256(["address","address","uint256","uint256","uint256"],[t,a,o,s,n]),u=new e.ethers.Wallet(i);return{signature:await u.signMessage(e.ethers.getBytes(c)),messageHash:c.toString()}}getContractAddress(){return this.contractAddress}async getAllEvents(t,e,a){return await this.bootstrap(),(0,s.getAllEvents)(this.contract,(()=>this.getRandomProvider()),(()=>this.getContractWithRandomProvider()),t,e,a)}async streamEvents(t,e,a,r=1e3,n=5e3,i=0){const o=["Staked","Unstaked","RewardHarvested","SignerUpdated","MinStakeUpdated"];return await this.bootstrap(),(0,s.streamEvents)({getProvider:()=>this.getRandomProvider(),getAllEvents:(t,e)=>this.getAllEvents(t,e,o),formatEvent:t=>this.formatEventArgs(t),onEvent:e,saveLatestBlock:a,fromBlock:t,batchSize:r,sleepTime:n,blockGap:i})}};
|
package/dist/FairLaunch.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";var t=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FairLaunchSDK=void 0;const e=require("ethers"),i=t(require("./abis/FairLaunch.json")),a=t(require("./contracts.json")),n=require("./utils");exports.FairLaunchSDK=class{constructor(t,r){this.name="FairLaunch",this.isBootstrapped=!1,this._projectToken=null,this._fundingToken=null,this._projectTokenDecimals=null,this._fundingTokenDecimals=null,this.formatEventArgs=async t=>{await this.bootstrap();const{eventName:e,args:i}=t;switch(e){case"Contributed":return{...t,args:{...i,user:i.user.toLowerCase(),amount:Number(i.amount)/10**this._fundingTokenDecimals}};case"SaleEnded":return{...t,args:{...i,totalRaised:Number(i.totalRaised)/10**this._fundingTokenDecimals,tokenPrice:Number(i.tokenPrice)/10**this._fundingTokenDecimals}};case"InitialClaimed":case"VestedClaimed":return{...t,args:{...i,user:i.user.toLowerCase(),amount:Number(i.amount)/10**this._projectTokenDecimals}};case"TradingVaultPositionCreated":return{...t,args:{...i,user:i.user.toLowerCase(),positionId:Number(i.positionId),amount:Number(i.amount)/10**this._fundingTokenDecimals}};case"LiquidityAdded":return{...t,args:{...i,tokenAmount:Number(i.tokenAmount)/10**this._projectTokenDecimals,fundingTokenAmount:Number(i.fundingTokenAmount)/10**this._fundingTokenDecimals}};default:return t}};const o=Array.isArray(t)?t:[t];this.providers=o.map((t=>new e.ethers.JsonRpcProvider(t)));const s=(0,n.getRandomProvider)(this.providers);this.contractAddress=(0,n.resolveContractAddress)(o[0],this.name,a.default,r),this.contract=new e.ethers.Contract(this.contractAddress,i.default.abi,s)}getRandomProvider(){return(0,n.getRandomProvider)(this.providers)}getContractWithRandomProvider(){return new e.ethers.Contract(this.contractAddress,i.default.abi,this.getRandomProvider())}async bootstrap(){if(this.isBootstrapped)return;const t=await Promise.all(this.providers.map(((t,e)=>(0,n.checkRpcHealth)(t,e))));if(this.providers=this.providers.filter(((e,i)=>t[i])),0===this.providers.length)throw new Error("No active RPC providers available");this._projectToken=await this.contract.projectToken(),this._fundingToken=await this.contract.fundingToken();const[e,i]=await Promise.all([(0,n.getTokenDecimals)(this._projectToken,this.getRandomProvider()),(0,n.getTokenDecimals)(this._fundingToken,this.getRandomProvider())]);this._projectTokenDecimals=e,this._fundingTokenDecimals=i,this.isBootstrapped=!0}async signAndSendTransaction(t,e,i={}){return(0,n.signAndSendTransaction)(t,e,(()=>this.getRandomProvider()),i,this.contract)}async buildContributeTx(t,i){await this.bootstrap();const a=e.ethers.parseUnits(t.toString(),this._fundingTokenDecimals);return await this.contract.contribute.populateTransaction(a,i)}async buildEndSaleTx(){return await this.contract.endSale.populateTransaction()}async buildAddLiquidityTx(){return await this.contract.addLiquidity.populateTransaction()}async buildEnableClaimingTx(){return await this.contract.enableClaiming.populateTransaction()}async buildClaimInitialTx(){return await this.contract.claimInitial.populateTransaction()}async buildClaimVestedTx(){return await this.contract.claimVested.populateTransaction()}async buildUpdateLiquidityTokensTx(t){await this.bootstrap();const i=e.ethers.parseUnits(t.toString(),this._projectTokenDecimals);return await this.contract.updateLiquidityTokens.populateTransaction(i)}async buildUpdateLiquidityPercentTx(t){return await this.contract.updateLiquidityPercent.populateTransaction(t)}async buildUpdateInitialClaimPercentTx(t){return await this.contract.updateInitialClaimPercent.populateTransaction(t)}async buildUpdateVestingDurationTx(t){return await this.contract.updateVestingDuration.populateTransaction(t)}async buildUpdateEarlyParticipationWindowTx(t){return await this.contract.updateEarlyParticipationWindow.populateTransaction(t)}async buildWithdrawLPTokensTx(t,e){return await this.contract.withdrawLPTokens.populateTransaction(t,e)}async buildWithdrawERC20Tx(t,i){const a=new e.ethers.Contract(t,["function decimals() view returns (uint8)"],this.getRandomProvider()),n=await a.decimals(),r=e.ethers.parseUnits(i.toString(),n);return await this.contract.withdrawERC20.populateTransaction(t,r)}async buildApproveERC20Tx(t,i,a){const r=new e.ethers.Contract(t,["function decimals() view returns (uint8)"],this.getRandomProvider()),o=await r.decimals(),s=e.ethers.parseUnits(a.toString(),o);return(0,n.buildApproveERC20Tx)(t,i,s,this.getRandomProvider())}async getSaleInfo(){await this.bootstrap();const[t,e,i,a,n,r,o,s]=await Promise.all([this.contract.startTime(),this.contract.endTime(),this.contract.totalTokensForSale(),this.contract.totalRaised(),this.contract.tokenPrice(),this.contract.saleEnded(),this.contract.claimingEnabled(),this.contract.liquidityAdded()]);return{startTime:Number(t),endTime:Number(e),totalTokensForSale:Number(i)/10**this._projectTokenDecimals,totalRaised:Number(a)/10**this._fundingTokenDecimals,tokenPrice:Number(n)/10**this._fundingTokenDecimals,saleEnded:r,claimingEnabled:o,liquidityAdded:s}}async getUserContribution(t){await this.bootstrap();const e=await this.contract.userContributions(t);return{amount:Number(e.amount)/10**this._fundingTokenDecimals,tokenAllocation:Number(e.tokenAllocation)/10**this._projectTokenDecimals,hasClaimedInitial:e.hasClaimedInitial,vestedClaimed:Number(e.vestedClaimed)/10**this._projectTokenDecimals,tradingVaultId:Number(e.tradingVaultId)}}async getContributorsCount(){return Number(await this.contract.getContributorsCount())}async getContributorAt(t){return await this.contract.getContributorAt(t)}async getAllContributors(){const t=await this.getContributorsCount(),e=[];for(let i=0;i<t;i++)e.push(await this.getContributorAt(i));return e}async getProjectToken(){return this._projectToken||(this._projectToken=await this.contract.projectToken()),this._projectToken}async getFundingToken(){return this._fundingToken||(this._fundingToken=await this.contract.fundingToken()),this._fundingToken}async getTradingVault(){return await this.contract.tradingVault()}async getDexRouter(){return await this.contract.dexRouter()}async getLiquidityTokens(){await this.bootstrap();const t=await this.contract.liquidityTokens();return Number(t)/10**this._projectTokenDecimals}async getLiquidityPercent(){return Number(await this.contract.liquidityPercent())}async getInitialClaimPercent(){return Number(await this.contract.initialClaimPercent())}async getVestingDuration(){return Number(await this.contract.vestingDuration())}async getVestingStartTime(){return Number(await this.contract.vestingStartTime())}async getEarlyParticipationWindow(){return Number(await this.contract.earlyParticipationWindow())}async hasOperatorRole(t){const e=await this.contract.OPERATOR_ROLE();return await this.contract.hasRole(e,t)}async hasAdminRole(t){const e=await this.contract.DEFAULT_ADMIN_ROLE();return await this.contract.hasRole(e,t)}async buildGrantOperatorRoleTx(t){const e=await this.contract.OPERATOR_ROLE();return await this.contract.grantRole.populateTransaction(e,t)}async buildGrantAdminRoleTx(t){const e=await this.contract.DEFAULT_ADMIN_ROLE();return await this.contract.grantRole.populateTransaction(e,t)}async getAllowance(t,e,i){const[a,r]=await Promise.all([(0,n.getTokenAllowance)(t,e,i,this.getRandomProvider()),(0,n.getTokenDecimals)(t,this.getRandomProvider())]);return Number(a)/Math.pow(10,r)}getContractAddress(){return this.contractAddress}async getAllEvents(t,e,i){return await this.bootstrap(),(0,n.getAllEvents)(this.contract,(()=>this.getRandomProvider()),(()=>this.getContractWithRandomProvider()),t,e,i)}async streamEvents(t,e,i,a=1e3,r=5e3){const o=["Contributed","SaleEnded","InitialClaimed","VestedClaimed","ClaimingEnabled","LiquidityAdded","TradingVaultPositionCreated"];return await this.bootstrap(),(0,n.streamEvents)({getProvider:()=>this.getRandomProvider(),getAllEvents:(t,e)=>this.getAllEvents(t,e,o),formatEvent:t=>this.formatEventArgs(t),onEvent:e,saveLatestBlock:i,fromBlock:t,batchSize:a,sleepTime:r})}};
|
1
|
+
"use strict";var t=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FairLaunchSDK=void 0;const e=require("ethers"),i=t(require("./abis/FairLaunch.json")),a=t(require("./contracts.json")),n=require("./utils");exports.FairLaunchSDK=class{constructor(t,r){this.name="FairLaunch",this.isBootstrapped=!1,this._projectToken=null,this._fundingToken=null,this._projectTokenDecimals=null,this._fundingTokenDecimals=null,this.formatEventArgs=async t=>{await this.bootstrap();const{eventName:e,args:i}=t;switch(e){case"Contributed":return{...t,args:{...i,user:i.user.toLowerCase(),amount:Number(i.amount)/10**this._fundingTokenDecimals}};case"SaleEnded":return{...t,args:{...i,totalRaised:Number(i.totalRaised)/10**this._fundingTokenDecimals,tokenPrice:Number(i.tokenPrice)/10**this._fundingTokenDecimals}};case"InitialClaimed":case"VestedClaimed":return{...t,args:{...i,user:i.user.toLowerCase(),amount:Number(i.amount)/10**this._projectTokenDecimals}};case"TradingVaultPositionCreated":return{...t,args:{...i,user:i.user.toLowerCase(),positionId:Number(i.positionId),amount:Number(i.amount)/10**this._fundingTokenDecimals}};case"LiquidityAdded":return{...t,args:{...i,tokenAmount:Number(i.tokenAmount)/10**this._projectTokenDecimals,fundingTokenAmount:Number(i.fundingTokenAmount)/10**this._fundingTokenDecimals}};default:return t}};const o=Array.isArray(t)?t:[t];this.providers=o.map((t=>new e.ethers.JsonRpcProvider(t,void 0,{staticNetwork:!0})));const s=(0,n.getRandomProvider)(this.providers);this.contractAddress=(0,n.resolveContractAddress)(o[0],this.name,a.default,r),this.contract=new e.ethers.Contract(this.contractAddress,i.default.abi,s)}getRandomProvider(){return(0,n.getRandomProvider)(this.providers)}getContractWithRandomProvider(){return new e.ethers.Contract(this.contractAddress,i.default.abi,this.getRandomProvider())}async bootstrap(){if(this.isBootstrapped)return;const t=await Promise.all(this.providers.map(((t,e)=>(0,n.checkRpcHealth)(t,e))));if(this.providers=this.providers.filter(((e,i)=>t[i])),0===this.providers.length)throw new Error("No active RPC providers available");this._projectToken=await this.contract.projectToken(),this._fundingToken=await this.contract.fundingToken();const[e,i]=await Promise.all([(0,n.getTokenDecimals)(this._projectToken,this.getRandomProvider()),(0,n.getTokenDecimals)(this._fundingToken,this.getRandomProvider())]);this._projectTokenDecimals=e,this._fundingTokenDecimals=i,this.isBootstrapped=!0}async signAndSendTransaction(t,e,i={}){return(0,n.signAndSendTransaction)(t,e,(()=>this.getRandomProvider()),i,this.contract)}async buildContributeTx(t,i){await this.bootstrap();const a=e.ethers.parseUnits(t.toString(),this._fundingTokenDecimals);return await this.contract.contribute.populateTransaction(a,i)}async buildEndSaleTx(){return await this.contract.endSale.populateTransaction()}async buildAddLiquidityTx(){return await this.contract.addLiquidity.populateTransaction()}async buildEnableClaimingTx(){return await this.contract.enableClaiming.populateTransaction()}async buildClaimInitialTx(){return await this.contract.claimInitial.populateTransaction()}async buildClaimVestedTx(){return await this.contract.claimVested.populateTransaction()}async buildUpdateLiquidityTokensTx(t){await this.bootstrap();const i=e.ethers.parseUnits(t.toString(),this._projectTokenDecimals);return await this.contract.updateLiquidityTokens.populateTransaction(i)}async buildUpdateLiquidityPercentTx(t){return await this.contract.updateLiquidityPercent.populateTransaction(t)}async buildUpdateInitialClaimPercentTx(t){return await this.contract.updateInitialClaimPercent.populateTransaction(t)}async buildUpdateVestingDurationTx(t){return await this.contract.updateVestingDuration.populateTransaction(t)}async buildUpdateEarlyParticipationWindowTx(t){return await this.contract.updateEarlyParticipationWindow.populateTransaction(t)}async buildWithdrawLPTokensTx(t,e){return await this.contract.withdrawLPTokens.populateTransaction(t,e)}async buildWithdrawERC20Tx(t,i){const a=new e.ethers.Contract(t,["function decimals() view returns (uint8)"],this.getRandomProvider()),n=await a.decimals(),r=e.ethers.parseUnits(i.toString(),n);return await this.contract.withdrawERC20.populateTransaction(t,r)}async buildApproveERC20Tx(t,i,a){const r=new e.ethers.Contract(t,["function decimals() view returns (uint8)"],this.getRandomProvider()),o=await r.decimals(),s=e.ethers.parseUnits(a.toString(),o);return(0,n.buildApproveERC20Tx)(t,i,s,this.getRandomProvider())}async getSaleInfo(){await this.bootstrap();const[t,e,i,a,n,r,o,s]=await Promise.all([this.contract.startTime(),this.contract.endTime(),this.contract.totalTokensForSale(),this.contract.totalRaised(),this.contract.tokenPrice(),this.contract.saleEnded(),this.contract.claimingEnabled(),this.contract.liquidityAdded()]);return{startTime:Number(t),endTime:Number(e),totalTokensForSale:Number(i)/10**this._projectTokenDecimals,totalRaised:Number(a)/10**this._fundingTokenDecimals,tokenPrice:Number(n)/10**this._fundingTokenDecimals,saleEnded:r,claimingEnabled:o,liquidityAdded:s}}async getUserContribution(t){await this.bootstrap();const e=await this.contract.userContributions(t);return{amount:Number(e.amount)/10**this._fundingTokenDecimals,tokenAllocation:Number(e.tokenAllocation)/10**this._projectTokenDecimals,hasClaimedInitial:e.hasClaimedInitial,vestedClaimed:Number(e.vestedClaimed)/10**this._projectTokenDecimals,tradingVaultId:Number(e.tradingVaultId)}}async getContributorsCount(){return Number(await this.contract.getContributorsCount())}async getContributorAt(t){return await this.contract.getContributorAt(t)}async getAllContributors(){const t=await this.getContributorsCount(),e=[];for(let i=0;i<t;i++)e.push(await this.getContributorAt(i));return e}async getProjectToken(){return this._projectToken||(this._projectToken=await this.contract.projectToken()),this._projectToken}async getFundingToken(){return this._fundingToken||(this._fundingToken=await this.contract.fundingToken()),this._fundingToken}async getTradingVault(){return await this.contract.tradingVault()}async getDexRouter(){return await this.contract.dexRouter()}async getLiquidityTokens(){await this.bootstrap();const t=await this.contract.liquidityTokens();return Number(t)/10**this._projectTokenDecimals}async getLiquidityPercent(){return Number(await this.contract.liquidityPercent())}async getInitialClaimPercent(){return Number(await this.contract.initialClaimPercent())}async getVestingDuration(){return Number(await this.contract.vestingDuration())}async getVestingStartTime(){return Number(await this.contract.vestingStartTime())}async getEarlyParticipationWindow(){return Number(await this.contract.earlyParticipationWindow())}async hasOperatorRole(t){const e=await this.contract.OPERATOR_ROLE();return await this.contract.hasRole(e,t)}async hasAdminRole(t){const e=await this.contract.DEFAULT_ADMIN_ROLE();return await this.contract.hasRole(e,t)}async buildGrantOperatorRoleTx(t){const e=await this.contract.OPERATOR_ROLE();return await this.contract.grantRole.populateTransaction(e,t)}async buildGrantAdminRoleTx(t){const e=await this.contract.DEFAULT_ADMIN_ROLE();return await this.contract.grantRole.populateTransaction(e,t)}async getAllowance(t,e,i){const[a,r]=await Promise.all([(0,n.getTokenAllowance)(t,e,i,this.getRandomProvider()),(0,n.getTokenDecimals)(t,this.getRandomProvider())]);return Number(a)/Math.pow(10,r)}getContractAddress(){return this.contractAddress}async getAllEvents(t,e,i){return await this.bootstrap(),(0,n.getAllEvents)(this.contract,(()=>this.getRandomProvider()),(()=>this.getContractWithRandomProvider()),t,e,i)}async streamEvents(t,e,i,a=1e3,r=5e3){const o=["Contributed","SaleEnded","InitialClaimed","VestedClaimed","ClaimingEnabled","LiquidityAdded","TradingVaultPositionCreated"];return await this.bootstrap(),(0,n.streamEvents)({getProvider:()=>this.getRandomProvider(),getAllEvents:(t,e)=>this.getAllEvents(t,e,o),formatEvent:t=>this.formatEventArgs(t),onEvent:e,saveLatestBlock:i,fromBlock:t,batchSize:a,sleepTime:r})}};
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";var e=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MultiLevelReferralNFTSDK=void 0;const t=require("ethers"),r=e(require("./abis/NFTTicket.json")),a=e(require("./contracts.json")),s=require("./utils");exports.MultiLevelReferralNFTSDK=class{constructor(e,
|
1
|
+
"use strict";var e=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MultiLevelReferralNFTSDK=void 0;const t=require("ethers"),r=e(require("./abis/NFTTicket.json")),a=e(require("./contracts.json")),s=require("./utils");exports.MultiLevelReferralNFTSDK=class{constructor(e,o){this.name="NFTTicket",this.isBootstrapped=!1,this.formatEventArgs=e=>{const{eventName:r,args:a}=e;switch(r){case"NFTMinted":return{...e,args:{...a,owner:a.owner.toLowerCase(),tokenId:Number(a.tokenId)}};case"ReferrerSet":return{...e,args:{...a,referrer:a.referrer.toLowerCase(),referee:a.referee.toLowerCase()}};case"ReferralPaid":return{...e,args:{...a,receiver:a.receiver.toLowerCase(),buyer:a.buyer.toLowerCase(),amount:Number(t.ethers.formatEther(a.amount)),level:Number(a.level),originalAmount:Number(t.ethers.formatEther(a.originalAmount)),tokenId:Number(a.tokenId)}};case"ReferralCodeSet":return{...e,args:{...a,user:a.user.toLowerCase(),referralCode:a.referralCode}};case"MaxReferralLevelsUpdated":return{...e,args:{...a,oldValue:Number(a.oldValue),newValue:Number(a.newValue)}};case"Transfer":return{...e,args:{...a,from:a.from.toLowerCase(),to:a.to.toLowerCase(),tokenId:Number(a.tokenId)}};default:return e}};const n=Array.isArray(e)?e:[e];this.providers=n.map((e=>new t.ethers.JsonRpcProvider(e,void 0,{staticNetwork:!0})));const i=(0,s.getRandomProvider)(this.providers);this.contractAddress=(0,s.resolveContractAddress)(n[0],this.name,a.default,o),this.contract=new t.ethers.Contract(this.contractAddress,r.default.abi,i)}getRandomProvider(){return(0,s.getRandomProvider)(this.providers)}getContractWithRandomProvider(){return new t.ethers.Contract(this.contractAddress,r.default.abi,this.getRandomProvider())}async bootstrap(){if(this.isBootstrapped)return;const e=await Promise.all(this.providers.map(((e,t)=>(0,s.checkRpcHealth)(e,t))));if(this.providers=this.providers.filter(((t,r)=>e[r])),0===this.providers.length)throw new Error("No active RPC providers available");this.isBootstrapped=!0}async signAndSendTransaction(e,t,r={}){return(0,s.signAndSendTransaction)(e,t,(()=>this.getRandomProvider()),r,this.contract)}async getPrice(){const e=await this.contract.price();return Number(t.ethers.formatEther(e))}async getSharePercent(){const e=await this.contract.sharePercent();return Number(e)}async getMaxReferralLevels(){const e=await this.contract.maxReferralLevels();return Number(e)}async getReferrer(e){return await this.contract.referrers(e)}async getReferralCodeOwner(e){return await this.contract.referralCodes(e)}async getUserReferralCode(e){return await this.contract.userReferralCodes(e)}async buildGenerateReferralCodeTx(){return await this.contract.generateReferralCode.populateTransaction()}async buildGenerateReferralCodeForUserTx(e){return await this.contract.generateReferralCodeForUser.populateTransaction(e)}async buildSetPriceTx(e){const r=t.ethers.parseEther(e.toString());return await this.contract.setPrice.populateTransaction(r)}async buildSetMaxReferralLevelsTx(e){if(await this.bootstrap(),e<1||e>10)throw new Error("Maximum referral levels must be between 1 and 10");return await this.contract.setMaxReferralLevels.populateTransaction(e)}async buildSetSharePercentTx(e){if(await this.bootstrap(),e<0||e>100)throw new Error("Share percentage must be between 0 and 100");return await this.contract.setSharePercent.populateTransaction(e)}async buildBuyNFTTx(e){const r=await this.getPrice(),a=await this.contract.buy.populateTransaction(e);return a.value=t.ethers.parseEther(r.toString()),a}async buildBatchBuyNFTTx(e,r){if(await this.bootstrap(),r<=0)throw new Error("Amount must be greater than 0");const a=await this.getPrice()*r,s=await this.contract.batchBuy.populateTransaction(e,r);return s.value=t.ethers.parseEther(a.toString()),s}async buildWithdrawTx(e){const r=t.ethers.parseEther(e.toString());return await this.contract.withdraw.populateTransaction(r)}async buildMintToTx(e){return await this.bootstrap(),this.contract.mintTo.populateTransaction(e)}async buildBatchMintTx(e,t){return await this.bootstrap(),this.contract.batchMint.populateTransaction(e,t)}async getOwner(){return await this.contract.owner()}getContractAddress(){return this.contractAddress}async getAllEvents(e,t,r){return await this.bootstrap(),(0,s.getAllEvents)(this.contract,(()=>this.getRandomProvider()),(()=>this.getContractWithRandomProvider()),e,t,r)}async streamEvents(e,t,r,a=1e3,o=5e3,n=0,i){return await this.bootstrap(),(0,s.streamEvents)({getProvider:()=>this.getRandomProvider(),getAllEvents:(e,t)=>this.getAllEvents(e,t),formatEvent:e=>this.formatEventArgs(e),onEvent:t,saveLatestBlock:r,fromBlock:e,batchSize:a,sleepTime:o,whitelistEvents:void 0,shouldContinue:i,blockGap:n})}};
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";var t=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SeedRoundFundraiserSDK=void 0;const e=require("ethers"),n=t(require("./abis/SeedRoundFundraiser.json")),o=t(require("./contracts.json")),r=require("./utils"),i=t(require("./whitelist-tokens.json"));exports.SeedRoundFundraiserSDK=class{constructor(t,i){this.name="SeedRoundFundraiser",this.isBootstrapped=!1,this.PRICE_PRECISION=1e18,this.whitelistedTokensArray=[],this.projectToken="",this.projectTokenDecimals=0,this.formatEventArgs=t=>{const{eventName:e,args:n}=t;switch(e){case"TokenWhitelisted":return{...t,args:{...n,token:n.token.toLowerCase(),price:Number(n.price)/this.PRICE_PRECISION}};case"TokenPriceUpdated":return{...t,args:{...n,token:n.token.toLowerCase(),oldPrice:Number(n.oldPrice)/this.PRICE_PRECISION,newPrice:Number(n.newPrice)/this.PRICE_PRECISION}};case"TokenRemovedFromWhitelist":return{...t,args:{...n,token:n.token.toLowerCase()}};case"RoundCreated":case"RoundUpdated":return{...t,args:{...n,roundId:Number(n.roundId),startTime:Number(n.startTime),endTime:Number(n.endTime),targetFund:Number(n.targetFund)/this.PRICE_PRECISION,totalAllocation:Number(n.totalAllocation),maxFundPerAccount:Number(n.maxFundPerAccount)/this.PRICE_PRECISION}};case"RoundEnded":return{...t,args:{...n,roundId:Number(n.roundId),raisedFunds:Number(n.raisedFunds)/this.PRICE_PRECISION,participants:Number(n.participants)}};case"Contribution":const e=this.whitelistedTokensArray.find((t=>t.address===n.token)),o=e?.decimals||18;return{...t,args:{...n,roundId:Number(n.roundId),contributor:n.contributor.toLowerCase(),token:n.token.toLowerCase(),symbol:e?.symbol||"ETH",amount:Number(n.amount)/10**o,fundAmount:Number(n.fundAmount)/this.PRICE_PRECISION,tokenAllocation:Number(n.tokenAllocation)/1e18}};case"TokensClaimed":return{...t,args:{...n,roundId:Number(n.roundId),user:n.user.toLowerCase(),amount:Number(n.amount)}};case"ProjectTokenUpdated":return{...t,args:{...n,oldToken:n.oldToken.toLowerCase(),newToken:n.newToken.toLowerCase()}};case"ClaimingEnabledUpdated":case"RefundEnabledUpdated":return{...t,args:{...n,roundId:Number(n.roundId),enabled:n.enabled}};case"Refunded":return{...t,args:{...n,roundId:Number(n.roundId),user:n.user.toLowerCase(),token:n.token.toLowerCase(),amount:Number(n.amount)}};default:return t}};const a=Array.isArray(t)?t:[t];this.providers=a.map((t=>new e.ethers.JsonRpcProvider(t)));const s=(0,r.getRandomProvider)(this.providers);this.contractAddress=(0,r.resolveContractAddress)(a[0],this.name,o.default,i),this.contract=new e.ethers.Contract(this.contractAddress,n.default.abi,s),this.networkName=(0,r.getNetworkFromRpc)(a[0]),this.importWhitelistedTokens()}importWhitelistedTokens(){try{i.default[this.networkName]?(this.whitelistedTokensArray=i.default[this.networkName].map((t=>({name:t.name,address:t.address.toLowerCase(),decimals:t.decimals,symbol:t.symbol,icon:t.icon}))),console.log(`Imported ${this.whitelistedTokensArray.length} whitelisted tokens for ${this.networkName} network`)):console.log(`No whitelisted tokens found for ${this.networkName} network`)}catch(t){console.error("Error importing whitelisted tokens:",t)}}async getWhitelistedTokenInfo(t,e,n,o,r){const i=t.toLowerCase();if(!this.whitelistedTokensArray.some((t=>t.address===i)))return null;const a=await this.getWhitelistedToken(i);if(!a.isWhitelisted)return null;let s=0,d=0n;return r&&r.roundId>=0&&(d=r.maxFundPerAccountRaw*BigInt(10**n)/a.priceRaw,s=r.maxFundPerAccount/a.price),{address:i,isWhitelisted:a.isWhitelisted,price:a.price,symbol:e,maxContribution:s,maxContributionRaw:d,decimals:n,icon:o}}async getAllWhitelistedTokensInfo(){const t=await this.getLatestRoundId();let e;if(t>=0){const n=await this.getRound(t);n.exists&&!n.ended&&(e={roundId:t,maxFundPerAccount:n.maxFundPerAccount,maxFundPerAccountRaw:n.maxFundPerAccountRaw})}const n=this.whitelistedTokensArray.map((t=>this.getWhitelistedTokenInfo(t.address,t.symbol,t.decimals,t.icon,e)));return(await Promise.all(n)).filter((t=>null!==t))}getRandomProvider(){return(0,r.getRandomProvider)(this.providers)}getContractWithRandomProvider(){return new e.ethers.Contract(this.contractAddress,n.default.abi,this.getRandomProvider())}async bootstrap(){if(this.isBootstrapped)return;const t=await Promise.all(this.providers.map(((t,e)=>(0,r.checkRpcHealth)(t,e))));if(this.providers=this.providers.filter(((e,n)=>t[n])),0===this.providers.length)throw new Error("No active RPC providers available");this.projectToken=await this.getProjectToken(),this.projectTokenDecimals=await(0,r.getTokenDecimals)(this.projectToken,this.getRandomProvider()),this.isBootstrapped=!0}async signAndSendTransaction(t,e,n={}){return(0,r.signAndSendTransaction)(t,e,(()=>this.getRandomProvider()),n,this.contract)}async buildAddWhitelistedTokenTx(t,e){const n=BigInt(Math.floor(e*this.PRICE_PRECISION));return await this.contract.addWhitelistedToken.populateTransaction(t,n)}async buildUpdateTokenPriceTx(t,e){const n=BigInt(Math.floor(e*this.PRICE_PRECISION));return await this.contract.updateTokenPrice.populateTransaction(t,n)}async buildRemoveWhitelistedTokenTx(t){return await this.contract.removeWhitelistedToken.populateTransaction(t)}async buildCreateRoundTx(t,e,n,o,i){const a=BigInt(Math.floor(n*this.PRICE_PRECISION)),s=BigInt(Math.floor(i*this.PRICE_PRECISION)),d=await(0,r.getTokenDecimals)(await this.getProjectToken(),this.getRandomProvider()),c=BigInt(Math.floor(o*Math.pow(10,d)));return await this.contract.createRound.populateTransaction(t,e,a,c,s)}async buildUpdateRoundTx(t,e,n,o,i,a){const s=BigInt(Math.floor(o*this.PRICE_PRECISION)),d=BigInt(Math.floor(a*this.PRICE_PRECISION)),c=await(0,r.getTokenDecimals)(await this.getProjectToken(),this.getRandomProvider()),u=BigInt(Math.floor(i*Math.pow(10,c)));return await this.contract.updateRound.populateTransaction(t,e,n,s,u,d)}async buildEndRoundTx(t){return await this.contract.endRound.populateTransaction(t)}async buildSetClaimingEnabledTx(t,e){return await this.contract.setClaimingEnabled.populateTransaction(t,e)}async buildSetRefundEnabledTx(t,e){return await this.contract.setRefundEnabled.populateTransaction(t,e)}async buildContributeTx(t,n,o){let i=18;n!==e.ethers.ZeroAddress&&(i=await(0,r.getTokenDecimals)(n,this.getRandomProvider()));const a=e.ethers.parseUnits(o.toString(),i),s=await this.contract.contribute.populateTransaction(t,n,n===e.ethers.ZeroAddress?0:a);return n===e.ethers.ZeroAddress&&(s.value=a),s}async buildContributeTxRaw(t,n,o){const r=await this.contract.contribute.populateTransaction(t,n,n===e.ethers.ZeroAddress?0:o);return n===e.ethers.ZeroAddress&&(r.value=o),r}async buildWithdrawFundsTx(t,e){const n=await(0,r.getTokenDecimals)(t,this.getRandomProvider()),o=BigInt(Math.floor(e*Math.pow(10,n)));return await this.contract.withdrawFunds.populateTransaction(t,o)}async buildClaimTokensByRoundIdTx(t){return await this.contract.claimTokensByRoundId.populateTransaction(t)}async getWhitelistedToken(t){const e=await this.contract.whitelistedTokens(t);return{isWhitelisted:e.isWhitelisted,price:Number(e.price)/this.PRICE_PRECISION,priceRaw:e.price}}async getRound(t){const e=await this.contract.rounds(t);return this.projectToken||(this.projectToken=await this.getProjectToken()),this.projectTokenDecimals||(this.projectTokenDecimals=await(0,r.getTokenDecimals)(this.projectToken,this.getRandomProvider())),{startTime:Number(e.startTime),endTime:Number(e.endTime),targetFund:Number(e.targetFund)/this.PRICE_PRECISION,totalAllocation:Number(e.totalAllocation)/10**this.projectTokenDecimals,maxFundPerAccount:Number(e.maxFundPerAccount)/this.PRICE_PRECISION,maxFundPerAccountRaw:e.maxFundPerAccount,exists:e.exists,ended:e.ended,claimingEnabled:e.claimingEnabled,refundEnabled:e.refundEnabled}}async getUserContribution(t,n){this.projectToken||(this.projectToken=await this.getProjectToken()),this.projectTokenDecimals||(this.projectTokenDecimals=await(0,r.getTokenDecimals)(this.projectToken,this.getRandomProvider()));const o=await this.contract.userContributions(t,n);let i=18;return o.contributedToken!==e.ethers.ZeroAddress&&"0x0000000000000000000000000000000000000000"!==o.contributedToken&&(i=await(0,r.getTokenDecimals)(o.contributedToken,this.getRandomProvider())),{fundAmount:Number(o.fundAmount)/this.PRICE_PRECISION,tokenAllocation:Number(o.tokenAllocation)/10**this.projectTokenDecimals,claimed:o.claimed,refunded:o.refunded,contributedToken:o.contributedToken,contributedAmount:Number(o.contributedAmount)/10**i,contributedAmountRaw:o.contributedAmount}}async getRoundRaisedFunds(t){const e=await this.contract.roundRaisedFunds(t);return Number(e)/this.PRICE_PRECISION}async getRoundParticipants(t){const e=await this.contract.roundParticipants(t);return Number(e)}async getUserParticipatedRound(t){const e=await this.contract.userParticipatedRound(t);return Number(e)}async getProjectToken(){return await this.contract.projectToken()}async getTotalRounds(){const t=await this.contract.totalRounds();return Number(t)}async getTotalRaisedFunds(){const t=await this.contract.totalRaisedFunds();return Number(t)/this.PRICE_PRECISION}async isRoundActive(t){return await this.contract.isRoundActive(t)}async getLatestRoundId(){const t=await this.getTotalRounds();return 0===t?-1:t-1}async getRoundInfo(t){const e=await this.getTotalRounds();if(t<0||t>=e)throw new Error(`Invalid round ID: ${t}`);return{roundId:t,config:await this.getRound(t),raisedFunds:await this.getRoundRaisedFunds(t),participants:await this.getRoundParticipants(t),isActive:await this.isRoundActive(t)}}async getUserTotalContribution(t){const e=await this.contract.getUserTotalContribution(t);return{totalFundAmount:Number(e.totalFundAmount)/this.PRICE_PRECISION,totalTokenAllocation:Number(e.totalTokenAllocation)}}async getTransactionStatus(t,e=10){return await(0,r.getTransactionStatus)(this.getRandomProvider(),t,e)}getContractAddress(){return this.contractAddress}async getAllEvents(t,e,n){return await this.bootstrap(),(0,r.getAllEvents)(this.contract,(()=>this.getRandomProvider()),(()=>this.getContractWithRandomProvider()),t,e,n)}async streamEvents(t,e,n,o=1e3,i=5e3,a=0,s){return await this.bootstrap(),(0,r.streamEvents)({getProvider:()=>this.getRandomProvider(),getAllEvents:(t,e)=>this.getAllEvents(t,e,s),formatEvent:t=>this.formatEventArgs(t),onEvent:e,saveLatestBlock:n,fromBlock:t,batchSize:o,sleepTime:i,blockGap:a})}async getUserRoundContribution(t,n){const[o,i]=await Promise.all([this.contract.getUserRoundContribution(t,n),this.contract.rounds(t)]),a=o.contributedToken!==e.ethers.ZeroAddress?await(0,r.getTokenDecimals)(o.contributedToken,this.getRandomProvider()):18,s={fundAmount:Number(o.fundAmount)/this.PRICE_PRECISION,tokenAllocation:Number(o.tokenAllocation),claimed:o.claimed,refunded:o.refunded,contributedToken:o.contributedToken,contributedAmount:Number(o.contributedAmount)/a,contributedAmountRaw:o.contributedAmount},d=Math.floor(Date.now()/1e3),c=i.exists&&!i.ended&&d>=Number(i.startTime)&&d<=Number(i.endTime),u={contribution:s,roundInfo:{exists:i.exists,isActive:c,claimingEnabled:i.claimingEnabled,refundEnabled:i.refundEnabled}};if(s.fundAmount>0){const t=s.contributedToken;let n="ETH",o=18;return t!==e.ethers.ZeroAddress&&([n,o]=await Promise.all([(0,r.getTokenSymbol)(t,this.getRandomProvider()),(0,r.getTokenDecimals)(t,this.getRandomProvider())])),{...u,tokenInfo:{symbol:n,decimals:o}}}return u}async buildTransferProjectTokenToContract(t){this.projectToken||(this.projectToken=await this.getProjectToken()),this.projectTokenDecimals||(this.projectTokenDecimals=await(0,r.getTokenDecimals)(this.projectToken,this.getRandomProvider()));const n=new e.ethers.Interface(["function transfer(address to, uint256 amount) returns (bool)"]),o=e.ethers.parseUnits(t.toString(),this.projectTokenDecimals);return{to:this.projectToken,data:n.encodeFunctionData("transfer",[this.contractAddress,o])}}async hasAdminRole(t){const e=await this.contract.DEFAULT_ADMIN_ROLE();return await this.contract.hasRole(e,t)}async buildGrantAdminRoleTx(t){const e=await this.contract.DEFAULT_ADMIN_ROLE();return await this.contract.grantRole.populateTransaction(e,t)}async getAdminRoleHash(){return await this.contract.DEFAULT_ADMIN_ROLE()}};
|
1
|
+
"use strict";var t=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SeedRoundFundraiserSDK=void 0;const e=require("ethers"),n=t(require("./abis/SeedRoundFundraiser.json")),o=t(require("./contracts.json")),r=require("./utils"),i=t(require("./whitelist-tokens.json"));exports.SeedRoundFundraiserSDK=class{constructor(t,i){this.name="SeedRoundFundraiser",this.isBootstrapped=!1,this.PRICE_PRECISION=1e18,this.whitelistedTokensArray=[],this.projectToken="",this.projectTokenDecimals=0,this.formatEventArgs=t=>{const{eventName:e,args:n}=t;switch(e){case"TokenWhitelisted":return{...t,args:{...n,token:n.token.toLowerCase(),price:Number(n.price)/this.PRICE_PRECISION}};case"TokenPriceUpdated":return{...t,args:{...n,token:n.token.toLowerCase(),oldPrice:Number(n.oldPrice)/this.PRICE_PRECISION,newPrice:Number(n.newPrice)/this.PRICE_PRECISION}};case"TokenRemovedFromWhitelist":return{...t,args:{...n,token:n.token.toLowerCase()}};case"RoundCreated":case"RoundUpdated":return{...t,args:{...n,roundId:Number(n.roundId),startTime:Number(n.startTime),endTime:Number(n.endTime),targetFund:Number(n.targetFund)/this.PRICE_PRECISION,totalAllocation:Number(n.totalAllocation),maxFundPerAccount:Number(n.maxFundPerAccount)/this.PRICE_PRECISION}};case"RoundEnded":return{...t,args:{...n,roundId:Number(n.roundId),raisedFunds:Number(n.raisedFunds)/this.PRICE_PRECISION,participants:Number(n.participants)}};case"Contribution":const e=this.whitelistedTokensArray.find((t=>t.address===n.token)),o=e?.decimals||18;return{...t,args:{...n,roundId:Number(n.roundId),contributor:n.contributor.toLowerCase(),token:n.token.toLowerCase(),symbol:e?.symbol||"ETH",amount:Number(n.amount)/10**o,fundAmount:Number(n.fundAmount)/this.PRICE_PRECISION,tokenAllocation:Number(n.tokenAllocation)/1e18}};case"TokensClaimed":return{...t,args:{...n,roundId:Number(n.roundId),user:n.user.toLowerCase(),amount:Number(n.amount)}};case"ProjectTokenUpdated":return{...t,args:{...n,oldToken:n.oldToken.toLowerCase(),newToken:n.newToken.toLowerCase()}};case"ClaimingEnabledUpdated":case"RefundEnabledUpdated":return{...t,args:{...n,roundId:Number(n.roundId),enabled:n.enabled}};case"Refunded":return{...t,args:{...n,roundId:Number(n.roundId),user:n.user.toLowerCase(),token:n.token.toLowerCase(),amount:Number(n.amount)}};default:return t}};const a=Array.isArray(t)?t:[t];this.providers=a.map((t=>new e.ethers.JsonRpcProvider(t,void 0,{staticNetwork:!0})));const s=(0,r.getRandomProvider)(this.providers);this.contractAddress=(0,r.resolveContractAddress)(a[0],this.name,o.default,i),this.contract=new e.ethers.Contract(this.contractAddress,n.default.abi,s),this.networkName=(0,r.getNetworkFromRpc)(a[0]),this.importWhitelistedTokens()}importWhitelistedTokens(){try{i.default[this.networkName]?(this.whitelistedTokensArray=i.default[this.networkName].map((t=>({name:t.name,address:t.address.toLowerCase(),decimals:t.decimals,symbol:t.symbol,icon:t.icon}))),console.log(`Imported ${this.whitelistedTokensArray.length} whitelisted tokens for ${this.networkName} network`)):console.log(`No whitelisted tokens found for ${this.networkName} network`)}catch(t){console.error("Error importing whitelisted tokens:",t)}}async getWhitelistedTokenInfo(t,e,n,o,r){const i=t.toLowerCase();if(!this.whitelistedTokensArray.some((t=>t.address===i)))return null;const a=await this.getWhitelistedToken(i);if(!a.isWhitelisted)return null;let s=0,d=0n;return r&&r.roundId>=0&&(d=r.maxFundPerAccountRaw*BigInt(10**n)/a.priceRaw,s=r.maxFundPerAccount/a.price),{address:i,isWhitelisted:a.isWhitelisted,price:a.price,symbol:e,maxContribution:s,maxContributionRaw:d,decimals:n,icon:o}}async getAllWhitelistedTokensInfo(){const t=await this.getLatestRoundId();let e;if(t>=0){const n=await this.getRound(t);n.exists&&!n.ended&&(e={roundId:t,maxFundPerAccount:n.maxFundPerAccount,maxFundPerAccountRaw:n.maxFundPerAccountRaw})}const n=this.whitelistedTokensArray.map((t=>this.getWhitelistedTokenInfo(t.address,t.symbol,t.decimals,t.icon,e)));return(await Promise.all(n)).filter((t=>null!==t))}getRandomProvider(){return(0,r.getRandomProvider)(this.providers)}getContractWithRandomProvider(){return new e.ethers.Contract(this.contractAddress,n.default.abi,this.getRandomProvider())}async bootstrap(){if(this.isBootstrapped)return;const t=await Promise.all(this.providers.map(((t,e)=>(0,r.checkRpcHealth)(t,e))));if(this.providers=this.providers.filter(((e,n)=>t[n])),0===this.providers.length)throw new Error("No active RPC providers available");this.projectToken=await this.getProjectToken(),this.projectTokenDecimals=await(0,r.getTokenDecimals)(this.projectToken,this.getRandomProvider()),this.isBootstrapped=!0}async signAndSendTransaction(t,e,n={}){return(0,r.signAndSendTransaction)(t,e,(()=>this.getRandomProvider()),n,this.contract)}async buildAddWhitelistedTokenTx(t,e){const n=BigInt(Math.floor(e*this.PRICE_PRECISION));return await this.contract.addWhitelistedToken.populateTransaction(t,n)}async buildUpdateTokenPriceTx(t,e){const n=BigInt(Math.floor(e*this.PRICE_PRECISION));return await this.contract.updateTokenPrice.populateTransaction(t,n)}async buildRemoveWhitelistedTokenTx(t){return await this.contract.removeWhitelistedToken.populateTransaction(t)}async buildCreateRoundTx(t,e,n,o,i){const a=BigInt(Math.floor(n*this.PRICE_PRECISION)),s=BigInt(Math.floor(i*this.PRICE_PRECISION)),d=await(0,r.getTokenDecimals)(await this.getProjectToken(),this.getRandomProvider()),c=BigInt(Math.floor(o*Math.pow(10,d)));return await this.contract.createRound.populateTransaction(t,e,a,c,s)}async buildUpdateRoundTx(t,e,n,o,i,a){const s=BigInt(Math.floor(o*this.PRICE_PRECISION)),d=BigInt(Math.floor(a*this.PRICE_PRECISION)),c=await(0,r.getTokenDecimals)(await this.getProjectToken(),this.getRandomProvider()),u=BigInt(Math.floor(i*Math.pow(10,c)));return await this.contract.updateRound.populateTransaction(t,e,n,s,u,d)}async buildEndRoundTx(t){return await this.contract.endRound.populateTransaction(t)}async buildSetClaimingEnabledTx(t,e){return await this.contract.setClaimingEnabled.populateTransaction(t,e)}async buildSetRefundEnabledTx(t,e){return await this.contract.setRefundEnabled.populateTransaction(t,e)}async buildContributeTx(t,n,o){let i=18;n!==e.ethers.ZeroAddress&&(i=await(0,r.getTokenDecimals)(n,this.getRandomProvider()));const a=e.ethers.parseUnits(o.toString(),i),s=await this.contract.contribute.populateTransaction(t,n,n===e.ethers.ZeroAddress?0:a);return n===e.ethers.ZeroAddress&&(s.value=a),s}async buildContributeTxRaw(t,n,o){const r=await this.contract.contribute.populateTransaction(t,n,n===e.ethers.ZeroAddress?0:o);return n===e.ethers.ZeroAddress&&(r.value=o),r}async buildWithdrawFundsTx(t,e){const n=await(0,r.getTokenDecimals)(t,this.getRandomProvider()),o=BigInt(Math.floor(e*Math.pow(10,n)));return await this.contract.withdrawFunds.populateTransaction(t,o)}async buildClaimTokensByRoundIdTx(t){return await this.contract.claimTokensByRoundId.populateTransaction(t)}async getWhitelistedToken(t){const e=await this.contract.whitelistedTokens(t);return{isWhitelisted:e.isWhitelisted,price:Number(e.price)/this.PRICE_PRECISION,priceRaw:e.price}}async getRound(t){const e=await this.contract.rounds(t);return this.projectToken||(this.projectToken=await this.getProjectToken()),this.projectTokenDecimals||(this.projectTokenDecimals=await(0,r.getTokenDecimals)(this.projectToken,this.getRandomProvider())),{startTime:Number(e.startTime),endTime:Number(e.endTime),targetFund:Number(e.targetFund)/this.PRICE_PRECISION,totalAllocation:Number(e.totalAllocation)/10**this.projectTokenDecimals,maxFundPerAccount:Number(e.maxFundPerAccount)/this.PRICE_PRECISION,maxFundPerAccountRaw:e.maxFundPerAccount,exists:e.exists,ended:e.ended,claimingEnabled:e.claimingEnabled,refundEnabled:e.refundEnabled}}async getUserContribution(t,n){this.projectToken||(this.projectToken=await this.getProjectToken()),this.projectTokenDecimals||(this.projectTokenDecimals=await(0,r.getTokenDecimals)(this.projectToken,this.getRandomProvider()));const o=await this.contract.userContributions(t,n);let i=18;return o.contributedToken!==e.ethers.ZeroAddress&&"0x0000000000000000000000000000000000000000"!==o.contributedToken&&(i=await(0,r.getTokenDecimals)(o.contributedToken,this.getRandomProvider())),{fundAmount:Number(o.fundAmount)/this.PRICE_PRECISION,tokenAllocation:Number(o.tokenAllocation)/10**this.projectTokenDecimals,claimed:o.claimed,refunded:o.refunded,contributedToken:o.contributedToken,contributedAmount:Number(o.contributedAmount)/10**i,contributedAmountRaw:o.contributedAmount}}async getRoundRaisedFunds(t){const e=await this.contract.roundRaisedFunds(t);return Number(e)/this.PRICE_PRECISION}async getRoundParticipants(t){const e=await this.contract.roundParticipants(t);return Number(e)}async getUserParticipatedRound(t){const e=await this.contract.userParticipatedRound(t);return Number(e)}async getProjectToken(){return await this.contract.projectToken()}async getTotalRounds(){const t=await this.contract.totalRounds();return Number(t)}async getTotalRaisedFunds(){const t=await this.contract.totalRaisedFunds();return Number(t)/this.PRICE_PRECISION}async isRoundActive(t){return await this.contract.isRoundActive(t)}async getLatestRoundId(){const t=await this.getTotalRounds();return 0===t?-1:t-1}async getRoundInfo(t){const e=await this.getTotalRounds();if(t<0||t>=e)throw new Error(`Invalid round ID: ${t}`);return{roundId:t,config:await this.getRound(t),raisedFunds:await this.getRoundRaisedFunds(t),participants:await this.getRoundParticipants(t),isActive:await this.isRoundActive(t)}}async getUserTotalContribution(t){const e=await this.contract.getUserTotalContribution(t);return{totalFundAmount:Number(e.totalFundAmount)/this.PRICE_PRECISION,totalTokenAllocation:Number(e.totalTokenAllocation)}}async getTransactionStatus(t,e=10){return await(0,r.getTransactionStatus)(this.getRandomProvider(),t,e)}getContractAddress(){return this.contractAddress}async getAllEvents(t,e,n){return await this.bootstrap(),(0,r.getAllEvents)(this.contract,(()=>this.getRandomProvider()),(()=>this.getContractWithRandomProvider()),t,e,n)}async streamEvents(t,e,n,o=1e3,i=5e3,a=0,s){return await this.bootstrap(),(0,r.streamEvents)({getProvider:()=>this.getRandomProvider(),getAllEvents:(t,e)=>this.getAllEvents(t,e,s),formatEvent:t=>this.formatEventArgs(t),onEvent:e,saveLatestBlock:n,fromBlock:t,batchSize:o,sleepTime:i,blockGap:a})}async getUserRoundContribution(t,n){const[o,i]=await Promise.all([this.contract.getUserRoundContribution(t,n),this.contract.rounds(t)]),a=o.contributedToken!==e.ethers.ZeroAddress?await(0,r.getTokenDecimals)(o.contributedToken,this.getRandomProvider()):18,s={fundAmount:Number(o.fundAmount)/this.PRICE_PRECISION,tokenAllocation:Number(o.tokenAllocation),claimed:o.claimed,refunded:o.refunded,contributedToken:o.contributedToken,contributedAmount:Number(o.contributedAmount)/a,contributedAmountRaw:o.contributedAmount},d=Math.floor(Date.now()/1e3),c=i.exists&&!i.ended&&d>=Number(i.startTime)&&d<=Number(i.endTime),u={contribution:s,roundInfo:{exists:i.exists,isActive:c,claimingEnabled:i.claimingEnabled,refundEnabled:i.refundEnabled}};if(s.fundAmount>0){const t=s.contributedToken;let n="ETH",o=18;return t!==e.ethers.ZeroAddress&&([n,o]=await Promise.all([(0,r.getTokenSymbol)(t,this.getRandomProvider()),(0,r.getTokenDecimals)(t,this.getRandomProvider())])),{...u,tokenInfo:{symbol:n,decimals:o}}}return u}async buildTransferProjectTokenToContract(t){this.projectToken||(this.projectToken=await this.getProjectToken()),this.projectTokenDecimals||(this.projectTokenDecimals=await(0,r.getTokenDecimals)(this.projectToken,this.getRandomProvider()));const n=new e.ethers.Interface(["function transfer(address to, uint256 amount) returns (bool)"]),o=e.ethers.parseUnits(t.toString(),this.projectTokenDecimals);return{to:this.projectToken,data:n.encodeFunctionData("transfer",[this.contractAddress,o])}}async hasAdminRole(t){const e=await this.contract.DEFAULT_ADMIN_ROLE();return await this.contract.hasRole(e,t)}async buildGrantAdminRoleTx(t){const e=await this.contract.DEFAULT_ADMIN_ROLE();return await this.contract.grantRole.populateTransaction(e,t)}async getAdminRoleHash(){return await this.contract.DEFAULT_ADMIN_ROLE()}};
|
@@ -245,7 +245,7 @@
|
|
245
245
|
"type": "bytes32"
|
246
246
|
}
|
247
247
|
],
|
248
|
-
"name": "
|
248
|
+
"name": "RewardHarvested",
|
249
249
|
"type": "event"
|
250
250
|
},
|
251
251
|
{
|
@@ -458,34 +458,6 @@
|
|
458
458
|
"stateMutability": "nonpayable",
|
459
459
|
"type": "function"
|
460
460
|
},
|
461
|
-
{
|
462
|
-
"inputs": [
|
463
|
-
{
|
464
|
-
"internalType": "uint256",
|
465
|
-
"name": "_amount",
|
466
|
-
"type": "uint256"
|
467
|
-
},
|
468
|
-
{
|
469
|
-
"internalType": "uint256",
|
470
|
-
"name": "_nonce",
|
471
|
-
"type": "uint256"
|
472
|
-
},
|
473
|
-
{
|
474
|
-
"internalType": "uint256",
|
475
|
-
"name": "_deadline",
|
476
|
-
"type": "uint256"
|
477
|
-
},
|
478
|
-
{
|
479
|
-
"internalType": "bytes",
|
480
|
-
"name": "_signature",
|
481
|
-
"type": "bytes"
|
482
|
-
}
|
483
|
-
],
|
484
|
-
"name": "claimReward",
|
485
|
-
"outputs": [],
|
486
|
-
"stateMutability": "nonpayable",
|
487
|
-
"type": "function"
|
488
|
-
},
|
489
461
|
{
|
490
462
|
"inputs": [
|
491
463
|
{
|
@@ -535,7 +507,7 @@
|
|
535
507
|
},
|
536
508
|
{
|
537
509
|
"internalType": "uint256",
|
538
|
-
"name": "
|
510
|
+
"name": "harvested",
|
539
511
|
"type": "uint256"
|
540
512
|
}
|
541
513
|
],
|
@@ -560,6 +532,34 @@
|
|
560
532
|
"stateMutability": "nonpayable",
|
561
533
|
"type": "function"
|
562
534
|
},
|
535
|
+
{
|
536
|
+
"inputs": [
|
537
|
+
{
|
538
|
+
"internalType": "uint256",
|
539
|
+
"name": "_amount",
|
540
|
+
"type": "uint256"
|
541
|
+
},
|
542
|
+
{
|
543
|
+
"internalType": "uint256",
|
544
|
+
"name": "_nonce",
|
545
|
+
"type": "uint256"
|
546
|
+
},
|
547
|
+
{
|
548
|
+
"internalType": "uint256",
|
549
|
+
"name": "_deadline",
|
550
|
+
"type": "uint256"
|
551
|
+
},
|
552
|
+
{
|
553
|
+
"internalType": "bytes",
|
554
|
+
"name": "_signature",
|
555
|
+
"type": "bytes"
|
556
|
+
}
|
557
|
+
],
|
558
|
+
"name": "harvestReward",
|
559
|
+
"outputs": [],
|
560
|
+
"stateMutability": "nonpayable",
|
561
|
+
"type": "function"
|
562
|
+
},
|
563
563
|
{
|
564
564
|
"inputs": [
|
565
565
|
{
|
@@ -853,7 +853,7 @@
|
|
853
853
|
"type": "bytes"
|
854
854
|
}
|
855
855
|
],
|
856
|
-
"name": "
|
856
|
+
"name": "unstakeAndHarvest",
|
857
857
|
"outputs": [],
|
858
858
|
"stateMutability": "nonpayable",
|
859
859
|
"type": "function"
|
@@ -917,7 +917,7 @@
|
|
917
917
|
"type": "address"
|
918
918
|
}
|
919
919
|
],
|
920
|
-
"name": "
|
920
|
+
"name": "userTotalRewardsHarvested",
|
921
921
|
"outputs": [
|
922
922
|
{
|
923
923
|
"internalType": "uint256",
|
@@ -929,8 +929,8 @@
|
|
929
929
|
"type": "function"
|
930
930
|
}
|
931
931
|
],
|
932
|
-
"bytecode": "0x6080806040523460d2577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b60405161194490816100d88239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880604d565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714610cb8575080630e15561a14610c9a5780630e316ab714610c7157806314d6aed014610c5d578063248a9ca314610c375780632e17de7814610bb45780632f2ff15d14610b8357806336568abe14610b3d5780633a4b66f114610a805780633f4ba83a146109fd578063420ed8ea146109ba57806356652f08146109805780635c975abb146109505780636209deb4146108e35780636386c1c714610897578063715018a61461082d578063817b1cd21461080f5780638456cb591461079b5780638da5cb5b146107655780638da7ad231461072b57806391d14854146106d1578063a1ebf35d14610696578063a217fddf1461067a578063d547741f14610644578063e8c1532914610626578063eb12d61e146105c3578063eb4af0451461056f578063eb990c591461033c578063eed4172f14610270578063f188768414610252578063f2fde38b14610227578063f5b541a6146101ec578063f978fd61146101bb5763facea9c51461019557600080fd5b346101b65760203660031901126101b6576101ae610ef6565b600435600255005b600080fd5b346101b65760203660031901126101b6576004356000526006602052602060ff604060002054166040519015158152f35b346101b65760003660031901126101b65760206040517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b346101b65760203660031901126101b657610250610243610d0b565b61024b611605565b610e2d565b005b346101b65760003660031901126101b6576020600354604051908152f35b346101b65760a03660031901126101b65760043560243560843567ffffffffffffffff81116101b6576102aa6102c0913690600401610d37565b906102b3611107565b606435604435853361148b565b90476102cc8285610e0a565b1161032b57600080806102f58194876102f0886102e98333611150565b833361163b565b610e0a565b335af1610300610dda565b501561031a5760016000805160206118cf83398151915255005b6312171d8360e31b60005260046000fd5b63786e0a9960e01b60005260046000fd5b346101b65760803660031901126101b657610355610d0b565b61035d610d21565b90606435916000805160206118ef833981519152549260ff8460401c16159367ffffffffffffffff811680159081610567575b600114908161055d575b159081610554575b506105435767ffffffffffffffff1981166001176000805160206118ef8339815191525584610516575b506103d56116a7565b6103dd6116a7565b6103e683610e2d565b6103ee6116a7565b6103f66116a7565b6103fe6116a7565b60016000805160206118cf833981519152556104186116a7565b6001600160a01b038216908115610505576104736040936104637f171aabb8815c02fd00303450a77058600e3661eb75ce2e77972c0f080bc7099d966044356002558460035561127b565b5061046d33611315565b506111e3565b508251917f5553331329228fbd4123164423717a4a7539f6dfa1c3279a923b98fd681a6c73600080a2600082526020820152a16104ac57005b68ff0000000000000000196000805160206118ef83398151915254166000805160206118ef833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ccea9e6f60e01b60005260046000fd5b68ffffffffffffffffff191668010000000000000001176000805160206118ef83398151915255846103cc565b63f92ee8a960e01b60005260046000fd5b905015866103a2565b303b15915061039a565b869150610390565b346101b65760203660031901126101b6577f171aabb8815c02fd00303450a77058600e3661eb75ce2e77972c0f080bc7099d60406004356105ae610ef6565b600354908060035582519182526020820152a1005b346101b65760203660031901126101b6576105dc610d0b565b6105e4610ea3565b6001600160a01b038116908115610505576105fe906111e3565b507f5553331329228fbd4123164423717a4a7539f6dfa1c3279a923b98fd681a6c73600080a2005b346101b65760003660031901126101b6576020600254604051908152f35b346101b65760403660031901126101b657610250600435610663610d21565b9061067561067082610d65565b610f68565b611060565b346101b65760003660031901126101b657602060405160008152f35b346101b65760003660031901126101b65760206040517fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f708152f35b346101b65760403660031901126101b6576106ea610d21565b60043560005260008051602061188f83398151915260205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346101b65760203660031901126101b6576001600160a01b0361074c610d0b565b1660005260046020526020604060002054604051908152f35b346101b65760003660031901126101b65760008051602061184f833981519152546040516001600160a01b039091168152602090f35b346101b65760003660031901126101b6576107b4610ea3565b6107bc611461565b600160ff196000805160206118af8339815191525416176000805160206118af833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101b65760003660031901126101b6576020600054604051908152f35b346101b65760003660031901126101b657610846611605565b60008051602061184f83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101b65760203660031901126101b65760406001600160a01b036108ba610d0b565b168060005260046020528160002054906000526005602052816000205482519182526020820152f35b346101b65760803660031901126101b65760043560643567ffffffffffffffff81116101b65761091a610938913690600401610d37565b90610923611107565b61092b611461565b604435602435853361148b565b81471061032b5760008080846102f58295823361163b565b346101b65760003660031901126101b657602060ff6000805160206118af83398151915254166040519015158152f35b346101b65760203660031901126101b6576001600160a01b036109a1610d0b565b1660005260056020526020604060002054604051908152f35b346101b65760203660031901126101b65760008080806109d8610d0b565b6109e0610ea3565b47906001600160a01b03165af16109f5610dda565b501561031a57005b346101b65760003660031901126101b657610a16610ea3565b6000805160206118af8339815191525460ff811615610a6f5760ff19166000805160206118af833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b60005260046000fd5b60003660031901126101b657610a94611107565b610a9c611461565b3415610b2c576003543410610b1b573360005260046020526040600020610ac4348254610e0a565b9055610ad234600054610e0a565b6000556040513481524260208201527f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9060403392a260016000805160206118cf83398151915255005b638ecf3d0360e01b60005260046000fd5b631f2a200560e01b60005260046000fd5b346101b65760403660031901126101b657610b56610d21565b336001600160a01b03821603610b725761025090600435611060565b63334bd91960e11b60005260046000fd5b346101b65760403660031901126101b657610250600435610ba2610d21565b90610baf61067082610d65565b6113d1565b346101b65760203660031901126101b657600435610bd0611107565b610bda8133611150565b600080808084335af1610beb610dda565b501561031a576040519081524260208201527f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e60403392a260016000805160206118cf83398151915255005b346101b65760203660031901126101b6576020610c55600435610d65565b604051908152f35b60003660031901126101b6573415610b2c57005b346101b65760203660031901126101b657610250610c8d610d0b565b610c95610ea3565b610fb2565b346101b65760003660031901126101b6576020600154604051908152f35b346101b65760203660031901126101b6576004359063ffffffff60e01b82168092036101b657602091637965db0b60e01b8114908115610cfa575b5015158152f35b6301ffc9a760e01b14905083610cf3565b600435906001600160a01b03821682036101b657565b602435906001600160a01b03821682036101b657565b9181601f840112156101b65782359167ffffffffffffffff83116101b657602083818601950101116101b657565b60005260008051602061188f83398151915260205260016040600020015490565b90601f8019910116810190811067ffffffffffffffff821117610da857604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610da857601f01601f191660200190565b3d15610e05573d90610deb82610dbe565b91610df96040519384610d86565b82523d6000602084013e565b606090565b91908201809211610e1757565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03168015610e8d5760008051602061184f83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615610edc57565b63e2517d3f60e01b60005233600452600060245260446000fd5b3360009081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1615610f2f57565b63e2517d3f60e01b600052336004527f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92960245260446000fd5b600081815260008051602061188f8339815191526020908152604080832033845290915290205460ff1615610f9a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b038116600090815260008051602061186f833981519152602052604090205460ff161561105a576001600160a01b0316600081815260008051602061186f83398151915260205260408120805460ff191690553391907fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f70907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b50600090565b600081815260008051602061188f833981519152602090815260408083206001600160a01b038616845290915290205460ff161561110057600081815260008051602061188f833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b5050600090565b60026000805160206118cf83398151915254146111325760026000805160206118cf83398151915255565b633ee5aeb560e01b60005260046000fd5b91908203918211610e1757565b8115610b2c576001600160a01b031660008181526004602052604090205490919081116111d25760407f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e91836000526004602052816000206111b3828254611143565b90556111c181600054611143565b6000558151908152426020820152a2565b6378de4a6960e11b60005260046000fd5b6001600160a01b038116600090815260008051602061186f833981519152602052604090205460ff1661105a576001600160a01b0316600081815260008051602061186f83398151915260205260408120805460ff191660011790553391907fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f709060008051602061182f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661105a576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061182f8339815191528180a4600190565b6001600160a01b03811660009081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1661105a576001600160a01b031660008181527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45660205260408120805460ff191660011790553391907f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060008051602061182f8339815191529080a4600190565b600081815260008051602061188f833981519152602090815260408083206001600160a01b038616845290915290205460ff1661110057600081815260008051602061188f833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061182f8339815191529080a4600190565b60ff6000805160206118af833981519152541661147a57565b63d93c066560e01b60005260046000fd5b9290919493948215610b2c5760025483116115f4578142116115e3576040519260208401943060601b86526bffffffffffffffffffffffff199060601b166034850152604884015260688301526088820152608881526114ec60a882610d86565b5190207f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c6000209182600052600660205260ff604060002054166115d25761153b82610dbe565b6115486040519182610d86565b82815236838301116101b65760006020846115789561156f958386013783010152836116d5565b90929192611711565b6001600160a01b0316600090815260008051602061186f833981519152602052604090205460ff16156115c1578060005260066020526040600020600160ff1982541617905590565b638baa579f60e01b60005260046000fd5b630d75493360e01b60005260046000fd5b630819bdcd60e01b60005260046000fd5b636d363c4560e01b60005260046000fd5b60008051602061184f833981519152546001600160a01b0316330361162657565b63118cdaa760e01b6000523360045260246000fd5b7f1ab02525bc421da50dabc2743019f8a7cb75b9389f8cb2b855c71ce053f0f1b79160609160018060a01b0316938460005260056020526040600020611682838254610e0a565b905561169082600154610e0a565b6001556040519182524260208301526040820152a2565b60ff6000805160206118ef8339815191525460401c16156116c457565b631afcd79f60e31b60005260046000fd5b8151919060418303611706576116ff92506020820151906060604084015193015160001a90611799565b9192909190565b505060009160029190565b9190916004811015611783578061172757509050565b6000600182036117425763f645eedf60e01b60005260046000fd5b5060028103611760578263fce698f760e01b60005260045260246000fd5b9091600360009214611770575050565b6335e2f38360e21b825260045260249150fd5b634e487b7160e01b600052602160045260246000fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411611822579160209360809260ff60009560405194855216868401526040830152606082015282805260015afa15611816576000516001600160a01b0381161561180a5790600090600090565b50600090600190600090565b6040513d6000823e3d90fd5b5050506000916003919056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300ed82e8858f919528fd86c81da277f0812ef4876fae8bc5251645af9640d3f49f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a74e299edaa7f281b91e85d2666e34f499a9bcbb13ee23dfc9c8d278110a78cf64736f6c634300081c0033",
|
933
|
-
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714610cb8575080630e15561a14610c9a5780630e316ab714610c7157806314d6aed014610c5d578063248a9ca314610c375780632e17de7814610bb45780632f2ff15d14610b8357806336568abe14610b3d5780633a4b66f114610a805780633f4ba83a146109fd578063420ed8ea146109ba57806356652f08146109805780635c975abb146109505780636209deb4146108e35780636386c1c714610897578063715018a61461082d578063817b1cd21461080f5780638456cb591461079b5780638da5cb5b146107655780638da7ad231461072b57806391d14854146106d1578063a1ebf35d14610696578063a217fddf1461067a578063d547741f14610644578063e8c1532914610626578063eb12d61e146105c3578063eb4af0451461056f578063eb990c591461033c578063eed4172f14610270578063f188768414610252578063f2fde38b14610227578063f5b541a6146101ec578063f978fd61146101bb5763facea9c51461019557600080fd5b346101b65760203660031901126101b6576101ae610ef6565b600435600255005b600080fd5b346101b65760203660031901126101b6576004356000526006602052602060ff604060002054166040519015158152f35b346101b65760003660031901126101b65760206040517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b346101b65760203660031901126101b657610250610243610d0b565b61024b611605565b610e2d565b005b346101b65760003660031901126101b6576020600354604051908152f35b346101b65760a03660031901126101b65760043560243560843567ffffffffffffffff81116101b6576102aa6102c0913690600401610d37565b906102b3611107565b606435604435853361148b565b90476102cc8285610e0a565b1161032b57600080806102f58194876102f0886102e98333611150565b833361163b565b610e0a565b335af1610300610dda565b501561031a5760016000805160206118cf83398151915255005b6312171d8360e31b60005260046000fd5b63786e0a9960e01b60005260046000fd5b346101b65760803660031901126101b657610355610d0b565b61035d610d21565b90606435916000805160206118ef833981519152549260ff8460401c16159367ffffffffffffffff811680159081610567575b600114908161055d575b159081610554575b506105435767ffffffffffffffff1981166001176000805160206118ef8339815191525584610516575b506103d56116a7565b6103dd6116a7565b6103e683610e2d565b6103ee6116a7565b6103f66116a7565b6103fe6116a7565b60016000805160206118cf833981519152556104186116a7565b6001600160a01b038216908115610505576104736040936104637f171aabb8815c02fd00303450a77058600e3661eb75ce2e77972c0f080bc7099d966044356002558460035561127b565b5061046d33611315565b506111e3565b508251917f5553331329228fbd4123164423717a4a7539f6dfa1c3279a923b98fd681a6c73600080a2600082526020820152a16104ac57005b68ff0000000000000000196000805160206118ef83398151915254166000805160206118ef833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ccea9e6f60e01b60005260046000fd5b68ffffffffffffffffff191668010000000000000001176000805160206118ef83398151915255846103cc565b63f92ee8a960e01b60005260046000fd5b905015866103a2565b303b15915061039a565b869150610390565b346101b65760203660031901126101b6577f171aabb8815c02fd00303450a77058600e3661eb75ce2e77972c0f080bc7099d60406004356105ae610ef6565b600354908060035582519182526020820152a1005b346101b65760203660031901126101b6576105dc610d0b565b6105e4610ea3565b6001600160a01b038116908115610505576105fe906111e3565b507f5553331329228fbd4123164423717a4a7539f6dfa1c3279a923b98fd681a6c73600080a2005b346101b65760003660031901126101b6576020600254604051908152f35b346101b65760403660031901126101b657610250600435610663610d21565b9061067561067082610d65565b610f68565b611060565b346101b65760003660031901126101b657602060405160008152f35b346101b65760003660031901126101b65760206040517fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f708152f35b346101b65760403660031901126101b6576106ea610d21565b60043560005260008051602061188f83398151915260205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346101b65760203660031901126101b6576001600160a01b0361074c610d0b565b1660005260046020526020604060002054604051908152f35b346101b65760003660031901126101b65760008051602061184f833981519152546040516001600160a01b039091168152602090f35b346101b65760003660031901126101b6576107b4610ea3565b6107bc611461565b600160ff196000805160206118af8339815191525416176000805160206118af833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101b65760003660031901126101b6576020600054604051908152f35b346101b65760003660031901126101b657610846611605565b60008051602061184f83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101b65760203660031901126101b65760406001600160a01b036108ba610d0b565b168060005260046020528160002054906000526005602052816000205482519182526020820152f35b346101b65760803660031901126101b65760043560643567ffffffffffffffff81116101b65761091a610938913690600401610d37565b90610923611107565b61092b611461565b604435602435853361148b565b81471061032b5760008080846102f58295823361163b565b346101b65760003660031901126101b657602060ff6000805160206118af83398151915254166040519015158152f35b346101b65760203660031901126101b6576001600160a01b036109a1610d0b565b1660005260056020526020604060002054604051908152f35b346101b65760203660031901126101b65760008080806109d8610d0b565b6109e0610ea3565b47906001600160a01b03165af16109f5610dda565b501561031a57005b346101b65760003660031901126101b657610a16610ea3565b6000805160206118af8339815191525460ff811615610a6f5760ff19166000805160206118af833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b60005260046000fd5b60003660031901126101b657610a94611107565b610a9c611461565b3415610b2c576003543410610b1b573360005260046020526040600020610ac4348254610e0a565b9055610ad234600054610e0a565b6000556040513481524260208201527f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9060403392a260016000805160206118cf83398151915255005b638ecf3d0360e01b60005260046000fd5b631f2a200560e01b60005260046000fd5b346101b65760403660031901126101b657610b56610d21565b336001600160a01b03821603610b725761025090600435611060565b63334bd91960e11b60005260046000fd5b346101b65760403660031901126101b657610250600435610ba2610d21565b90610baf61067082610d65565b6113d1565b346101b65760203660031901126101b657600435610bd0611107565b610bda8133611150565b600080808084335af1610beb610dda565b501561031a576040519081524260208201527f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e60403392a260016000805160206118cf83398151915255005b346101b65760203660031901126101b6576020610c55600435610d65565b604051908152f35b60003660031901126101b6573415610b2c57005b346101b65760203660031901126101b657610250610c8d610d0b565b610c95610ea3565b610fb2565b346101b65760003660031901126101b6576020600154604051908152f35b346101b65760203660031901126101b6576004359063ffffffff60e01b82168092036101b657602091637965db0b60e01b8114908115610cfa575b5015158152f35b6301ffc9a760e01b14905083610cf3565b600435906001600160a01b03821682036101b657565b602435906001600160a01b03821682036101b657565b9181601f840112156101b65782359167ffffffffffffffff83116101b657602083818601950101116101b657565b60005260008051602061188f83398151915260205260016040600020015490565b90601f8019910116810190811067ffffffffffffffff821117610da857604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610da857601f01601f191660200190565b3d15610e05573d90610deb82610dbe565b91610df96040519384610d86565b82523d6000602084013e565b606090565b91908201809211610e1757565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03168015610e8d5760008051602061184f83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615610edc57565b63e2517d3f60e01b60005233600452600060245260446000fd5b3360009081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1615610f2f57565b63e2517d3f60e01b600052336004527f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92960245260446000fd5b600081815260008051602061188f8339815191526020908152604080832033845290915290205460ff1615610f9a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b038116600090815260008051602061186f833981519152602052604090205460ff161561105a576001600160a01b0316600081815260008051602061186f83398151915260205260408120805460ff191690553391907fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f70907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b50600090565b600081815260008051602061188f833981519152602090815260408083206001600160a01b038616845290915290205460ff161561110057600081815260008051602061188f833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b5050600090565b60026000805160206118cf83398151915254146111325760026000805160206118cf83398151915255565b633ee5aeb560e01b60005260046000fd5b91908203918211610e1757565b8115610b2c576001600160a01b031660008181526004602052604090205490919081116111d25760407f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e91836000526004602052816000206111b3828254611143565b90556111c181600054611143565b6000558151908152426020820152a2565b6378de4a6960e11b60005260046000fd5b6001600160a01b038116600090815260008051602061186f833981519152602052604090205460ff1661105a576001600160a01b0316600081815260008051602061186f83398151915260205260408120805460ff191660011790553391907fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f709060008051602061182f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661105a576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061182f8339815191528180a4600190565b6001600160a01b03811660009081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1661105a576001600160a01b031660008181527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45660205260408120805460ff191660011790553391907f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060008051602061182f8339815191529080a4600190565b600081815260008051602061188f833981519152602090815260408083206001600160a01b038616845290915290205460ff1661110057600081815260008051602061188f833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061182f8339815191529080a4600190565b60ff6000805160206118af833981519152541661147a57565b63d93c066560e01b60005260046000fd5b9290919493948215610b2c5760025483116115f4578142116115e3576040519260208401943060601b86526bffffffffffffffffffffffff199060601b166034850152604884015260688301526088820152608881526114ec60a882610d86565b5190207f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c6000209182600052600660205260ff604060002054166115d25761153b82610dbe565b6115486040519182610d86565b82815236838301116101b65760006020846115789561156f958386013783010152836116d5565b90929192611711565b6001600160a01b0316600090815260008051602061186f833981519152602052604090205460ff16156115c1578060005260066020526040600020600160ff1982541617905590565b638baa579f60e01b60005260046000fd5b630d75493360e01b60005260046000fd5b630819bdcd60e01b60005260046000fd5b636d363c4560e01b60005260046000fd5b60008051602061184f833981519152546001600160a01b0316330361162657565b63118cdaa760e01b6000523360045260246000fd5b7f1ab02525bc421da50dabc2743019f8a7cb75b9389f8cb2b855c71ce053f0f1b79160609160018060a01b0316938460005260056020526040600020611682838254610e0a565b905561169082600154610e0a565b6001556040519182524260208301526040820152a2565b60ff6000805160206118ef8339815191525460401c16156116c457565b631afcd79f60e31b60005260046000fd5b8151919060418303611706576116ff92506020820151906060604084015193015160001a90611799565b9192909190565b505060009160029190565b9190916004811015611783578061172757509050565b6000600182036117425763f645eedf60e01b60005260046000fd5b5060028103611760578263fce698f760e01b60005260045260246000fd5b9091600360009214611770575050565b6335e2f38360e21b825260045260249150fd5b634e487b7160e01b600052602160045260246000fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411611822579160209360809260ff60009560405194855216868401526040830152606082015282805260015afa15611816576000516001600160a01b0381161561180a5790600090600090565b50600090600190600090565b6040513d6000823e3d90fd5b5050506000916003919056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300ed82e8858f919528fd86c81da277f0812ef4876fae8bc5251645af9640d3f49f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a74e299edaa7f281b91e85d2666e34f499a9bcbb13ee23dfc9c8d278110a78cf64736f6c634300081c0033",
|
932
|
+
"bytecode": "0x6080806040523460d2577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1660c1576002600160401b03196001600160401b03821601605c575b60405161194490816100d88239f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880604d565b63f92ee8a960e01b60005260046000fd5b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714610cb8575080630cd4884b14610c7e5780630e15561a14610c605780630e316ab714610c3757806314d6aed014610c23578063248a9ca314610bfd5780632e17de7814610b7a5780632f2ff15d14610b4957806336568abe14610b035780633a4b66f114610a465780633d840ef6146109c15780633f4ba83a1461093e578063420ed8ea146108fb5780635c975abb146108cb5780636386c1c71461087f578063715018a6146108155780637e69954e14610761578063817b1cd2146107435780638456cb59146106cf5780638da5cb5b146106995780638da7ad231461065f57806391d1485414610605578063a1ebf35d146105ca578063a217fddf146105ae578063d547741f14610578578063e8c153291461055a578063eb12d61e146104f7578063eb4af045146104a3578063eb990c5914610270578063f188768414610252578063f2fde38b14610227578063f5b541a6146101ec578063f978fd61146101bb5763facea9c51461019557600080fd5b346101b65760203660031901126101b6576101ae610ef6565b600435600255005b600080fd5b346101b65760203660031901126101b6576004356000526006602052602060ff604060002054166040519015158152f35b346101b65760003660031901126101b65760206040517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b346101b65760203660031901126101b657610250610243610d0b565b61024b611671565b610e2d565b005b346101b65760003660031901126101b6576020600354604051908152f35b346101b65760803660031901126101b657610289610d0b565b610291610d21565b90606435916000805160206118ef833981519152549260ff8460401c16159367ffffffffffffffff81168015908161049b575b6001149081610491575b159081610488575b506104775767ffffffffffffffff1981166001176000805160206118ef833981519152558461044a575b506103096116a7565b6103116116a7565b61031a83610e2d565b6103226116a7565b61032a6116a7565b6103326116a7565b60016000805160206118cf8339815191525561034c6116a7565b6001600160a01b038216908115610439576103a76040936103977f171aabb8815c02fd00303450a77058600e3661eb75ce2e77972c0f080bc7099d966044356002558460035561127b565b506103a133611315565b506111e3565b508251917f5553331329228fbd4123164423717a4a7539f6dfa1c3279a923b98fd681a6c73600080a2600082526020820152a16103e057005b68ff0000000000000000196000805160206118ef83398151915254166000805160206118ef833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ccea9e6f60e01b60005260046000fd5b68ffffffffffffffffff191668010000000000000001176000805160206118ef8339815191525584610300565b63f92ee8a960e01b60005260046000fd5b905015866102d6565b303b1591506102ce565b8691506102c4565b346101b65760203660031901126101b6577f171aabb8815c02fd00303450a77058600e3661eb75ce2e77972c0f080bc7099d60406004356104e2610ef6565b600354908060035582519182526020820152a1005b346101b65760203660031901126101b657610510610d0b565b610518610ea3565b6001600160a01b03811690811561043957610532906111e3565b507f5553331329228fbd4123164423717a4a7539f6dfa1c3279a923b98fd681a6c73600080a2005b346101b65760003660031901126101b6576020600254604051908152f35b346101b65760403660031901126101b657610250600435610597610d21565b906105a96105a482610d65565b610f68565b611060565b346101b65760003660031901126101b657602060405160008152f35b346101b65760003660031901126101b65760206040517fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f708152f35b346101b65760403660031901126101b65761061e610d21565b60043560005260008051602061188f83398151915260205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346101b65760203660031901126101b6576001600160a01b03610680610d0b565b1660005260046020526020604060002054604051908152f35b346101b65760003660031901126101b65760008051602061184f833981519152546040516001600160a01b039091168152602090f35b346101b65760003660031901126101b6576106e8610ea3565b6106f0611461565b600160ff196000805160206118af8339815191525416176000805160206118af833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101b65760003660031901126101b6576020600054604051908152f35b346101b65760803660031901126101b65760043560643567ffffffffffffffff81116101b6576107986107b6913690600401610d37565b906107a1611107565b6107a9611461565b604435602435853361148b565b8147106108045760008080846107ce82958233611605565b335af16107d9610dda565b50156107f35760016000805160206118cf83398151915255005b6312171d8360e31b60005260046000fd5b63786e0a9960e01b60005260046000fd5b346101b65760003660031901126101b65761082e611671565b60008051602061184f83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101b65760203660031901126101b65760406001600160a01b036108a2610d0b565b168060005260046020528160002054906000526005602052816000205482519182526020820152f35b346101b65760003660031901126101b657602060ff6000805160206118af83398151915254166040519015158152f35b346101b65760203660031901126101b6576000808080610919610d0b565b610921610ea3565b47906001600160a01b03165af1610936610dda565b50156107f357005b346101b65760003660031901126101b657610957610ea3565b6000805160206118af8339815191525460ff8116156109b05760ff19166000805160206118af833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b60005260046000fd5b346101b65760a03660031901126101b65760043560243560843567ffffffffffffffff81116101b6576109fb610a11913690600401610d37565b90610a04611107565b606435604435853361148b565b9047610a1d8285610e0a565b1161080457600080806107ce819487610a4188610a3a8333611150565b8333611605565b610e0a565b60003660031901126101b657610a5a611107565b610a62611461565b3415610af2576003543410610ae1573360005260046020526040600020610a8a348254610e0a565b9055610a9834600054610e0a565b6000556040513481524260208201527f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9060403392a260016000805160206118cf83398151915255005b638ecf3d0360e01b60005260046000fd5b631f2a200560e01b60005260046000fd5b346101b65760403660031901126101b657610b1c610d21565b336001600160a01b03821603610b385761025090600435611060565b63334bd91960e11b60005260046000fd5b346101b65760403660031901126101b657610250600435610b68610d21565b90610b756105a482610d65565b6113d1565b346101b65760203660031901126101b657600435610b96611107565b610ba08133611150565b600080808084335af1610bb1610dda565b50156107f3576040519081524260208201527f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e60403392a260016000805160206118cf83398151915255005b346101b65760203660031901126101b6576020610c1b600435610d65565b604051908152f35b60003660031901126101b6573415610af257005b346101b65760203660031901126101b657610250610c53610d0b565b610c5b610ea3565b610fb2565b346101b65760003660031901126101b6576020600154604051908152f35b346101b65760203660031901126101b6576001600160a01b03610c9f610d0b565b1660005260056020526020604060002054604051908152f35b346101b65760203660031901126101b6576004359063ffffffff60e01b82168092036101b657602091637965db0b60e01b8114908115610cfa575b5015158152f35b6301ffc9a760e01b14905083610cf3565b600435906001600160a01b03821682036101b657565b602435906001600160a01b03821682036101b657565b9181601f840112156101b65782359167ffffffffffffffff83116101b657602083818601950101116101b657565b60005260008051602061188f83398151915260205260016040600020015490565b90601f8019910116810190811067ffffffffffffffff821117610da857604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610da857601f01601f191660200190565b3d15610e05573d90610deb82610dbe565b91610df96040519384610d86565b82523d6000602084013e565b606090565b91908201809211610e1757565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03168015610e8d5760008051602061184f83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615610edc57565b63e2517d3f60e01b60005233600452600060245260446000fd5b3360009081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1615610f2f57565b63e2517d3f60e01b600052336004527f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92960245260446000fd5b600081815260008051602061188f8339815191526020908152604080832033845290915290205460ff1615610f9a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b038116600090815260008051602061186f833981519152602052604090205460ff161561105a576001600160a01b0316600081815260008051602061186f83398151915260205260408120805460ff191690553391907fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f70907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b50600090565b600081815260008051602061188f833981519152602090815260408083206001600160a01b038616845290915290205460ff161561110057600081815260008051602061188f833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b5050600090565b60026000805160206118cf83398151915254146111325760026000805160206118cf83398151915255565b633ee5aeb560e01b60005260046000fd5b91908203918211610e1757565b8115610af2576001600160a01b031660008181526004602052604090205490919081116111d25760407f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e91836000526004602052816000206111b3828254611143565b90556111c181600054611143565b6000558151908152426020820152a2565b6378de4a6960e11b60005260046000fd5b6001600160a01b038116600090815260008051602061186f833981519152602052604090205460ff1661105a576001600160a01b0316600081815260008051602061186f83398151915260205260408120805460ff191660011790553391907fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f709060008051602061182f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661105a576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061182f8339815191528180a4600190565b6001600160a01b03811660009081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1661105a576001600160a01b031660008181527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45660205260408120805460ff191660011790553391907f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060008051602061182f8339815191529080a4600190565b600081815260008051602061188f833981519152602090815260408083206001600160a01b038616845290915290205460ff1661110057600081815260008051602061188f833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061182f8339815191529080a4600190565b60ff6000805160206118af833981519152541661147a57565b63d93c066560e01b60005260046000fd5b9290919493948215610af25760025483116115f4578142116115e3576040519260208401943060601b86526bffffffffffffffffffffffff199060601b166034850152604884015260688301526088820152608881526114ec60a882610d86565b5190207f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c6000209182600052600660205260ff604060002054166115d25761153b82610dbe565b6115486040519182610d86565b82815236838301116101b65760006020846115789561156f958386013783010152836116d5565b90929192611711565b6001600160a01b0316600090815260008051602061186f833981519152602052604090205460ff16156115c1578060005260066020526040600020600160ff1982541617905590565b638baa579f60e01b60005260046000fd5b630d75493360e01b60005260046000fd5b630819bdcd60e01b60005260046000fd5b636d363c4560e01b60005260046000fd5b7f41e99e9dc0d7cfce35db1b179b2938d186cbc127e72e9058202a7159ff3b44d69160609160018060a01b031693846000526005602052604060002061164c838254610e0a565b905561165a82600154610e0a565b6001556040519182524260208301526040820152a2565b60008051602061184f833981519152546001600160a01b0316330361169257565b63118cdaa760e01b6000523360045260246000fd5b60ff6000805160206118ef8339815191525460401c16156116c457565b631afcd79f60e31b60005260046000fd5b8151919060418303611706576116ff92506020820151906060604084015193015160001a90611799565b9192909190565b505060009160029190565b9190916004811015611783578061172757509050565b6000600182036117425763f645eedf60e01b60005260046000fd5b5060028103611760578263fce698f760e01b60005260045260246000fd5b9091600360009214611770575050565b6335e2f38360e21b825260045260249150fd5b634e487b7160e01b600052602160045260246000fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411611822579160209360809260ff60009560405194855216868401526040830152606082015282805260015afa15611816576000516001600160a01b0381161561180a5790600090600090565b50600090600190600090565b6040513d6000823e3d90fd5b5050506000916003919056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300ed82e8858f919528fd86c81da277f0812ef4876fae8bc5251645af9640d3f49f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203943c117bee9f8422e1fc19e8a213361f03eaf44333381ea7426c465b3f9e81e64736f6c634300081c0033",
|
933
|
+
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714610cb8575080630cd4884b14610c7e5780630e15561a14610c605780630e316ab714610c3757806314d6aed014610c23578063248a9ca314610bfd5780632e17de7814610b7a5780632f2ff15d14610b4957806336568abe14610b035780633a4b66f114610a465780633d840ef6146109c15780633f4ba83a1461093e578063420ed8ea146108fb5780635c975abb146108cb5780636386c1c71461087f578063715018a6146108155780637e69954e14610761578063817b1cd2146107435780638456cb59146106cf5780638da5cb5b146106995780638da7ad231461065f57806391d1485414610605578063a1ebf35d146105ca578063a217fddf146105ae578063d547741f14610578578063e8c153291461055a578063eb12d61e146104f7578063eb4af045146104a3578063eb990c5914610270578063f188768414610252578063f2fde38b14610227578063f5b541a6146101ec578063f978fd61146101bb5763facea9c51461019557600080fd5b346101b65760203660031901126101b6576101ae610ef6565b600435600255005b600080fd5b346101b65760203660031901126101b6576004356000526006602052602060ff604060002054166040519015158152f35b346101b65760003660031901126101b65760206040517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b346101b65760203660031901126101b657610250610243610d0b565b61024b611671565b610e2d565b005b346101b65760003660031901126101b6576020600354604051908152f35b346101b65760803660031901126101b657610289610d0b565b610291610d21565b90606435916000805160206118ef833981519152549260ff8460401c16159367ffffffffffffffff81168015908161049b575b6001149081610491575b159081610488575b506104775767ffffffffffffffff1981166001176000805160206118ef833981519152558461044a575b506103096116a7565b6103116116a7565b61031a83610e2d565b6103226116a7565b61032a6116a7565b6103326116a7565b60016000805160206118cf8339815191525561034c6116a7565b6001600160a01b038216908115610439576103a76040936103977f171aabb8815c02fd00303450a77058600e3661eb75ce2e77972c0f080bc7099d966044356002558460035561127b565b506103a133611315565b506111e3565b508251917f5553331329228fbd4123164423717a4a7539f6dfa1c3279a923b98fd681a6c73600080a2600082526020820152a16103e057005b68ff0000000000000000196000805160206118ef83398151915254166000805160206118ef833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ccea9e6f60e01b60005260046000fd5b68ffffffffffffffffff191668010000000000000001176000805160206118ef8339815191525584610300565b63f92ee8a960e01b60005260046000fd5b905015866102d6565b303b1591506102ce565b8691506102c4565b346101b65760203660031901126101b6577f171aabb8815c02fd00303450a77058600e3661eb75ce2e77972c0f080bc7099d60406004356104e2610ef6565b600354908060035582519182526020820152a1005b346101b65760203660031901126101b657610510610d0b565b610518610ea3565b6001600160a01b03811690811561043957610532906111e3565b507f5553331329228fbd4123164423717a4a7539f6dfa1c3279a923b98fd681a6c73600080a2005b346101b65760003660031901126101b6576020600254604051908152f35b346101b65760403660031901126101b657610250600435610597610d21565b906105a96105a482610d65565b610f68565b611060565b346101b65760003660031901126101b657602060405160008152f35b346101b65760003660031901126101b65760206040517fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f708152f35b346101b65760403660031901126101b65761061e610d21565b60043560005260008051602061188f83398151915260205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b346101b65760203660031901126101b6576001600160a01b03610680610d0b565b1660005260046020526020604060002054604051908152f35b346101b65760003660031901126101b65760008051602061184f833981519152546040516001600160a01b039091168152602090f35b346101b65760003660031901126101b6576106e8610ea3565b6106f0611461565b600160ff196000805160206118af8339815191525416176000805160206118af833981519152557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101b65760003660031901126101b6576020600054604051908152f35b346101b65760803660031901126101b65760043560643567ffffffffffffffff81116101b6576107986107b6913690600401610d37565b906107a1611107565b6107a9611461565b604435602435853361148b565b8147106108045760008080846107ce82958233611605565b335af16107d9610dda565b50156107f35760016000805160206118cf83398151915255005b6312171d8360e31b60005260046000fd5b63786e0a9960e01b60005260046000fd5b346101b65760003660031901126101b65761082e611671565b60008051602061184f83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101b65760203660031901126101b65760406001600160a01b036108a2610d0b565b168060005260046020528160002054906000526005602052816000205482519182526020820152f35b346101b65760003660031901126101b657602060ff6000805160206118af83398151915254166040519015158152f35b346101b65760203660031901126101b6576000808080610919610d0b565b610921610ea3565b47906001600160a01b03165af1610936610dda565b50156107f357005b346101b65760003660031901126101b657610957610ea3565b6000805160206118af8339815191525460ff8116156109b05760ff19166000805160206118af833981519152557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b60005260046000fd5b346101b65760a03660031901126101b65760043560243560843567ffffffffffffffff81116101b6576109fb610a11913690600401610d37565b90610a04611107565b606435604435853361148b565b9047610a1d8285610e0a565b1161080457600080806107ce819487610a4188610a3a8333611150565b8333611605565b610e0a565b60003660031901126101b657610a5a611107565b610a62611461565b3415610af2576003543410610ae1573360005260046020526040600020610a8a348254610e0a565b9055610a9834600054610e0a565b6000556040513481524260208201527f1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee9060403392a260016000805160206118cf83398151915255005b638ecf3d0360e01b60005260046000fd5b631f2a200560e01b60005260046000fd5b346101b65760403660031901126101b657610b1c610d21565b336001600160a01b03821603610b385761025090600435611060565b63334bd91960e11b60005260046000fd5b346101b65760403660031901126101b657610250600435610b68610d21565b90610b756105a482610d65565b6113d1565b346101b65760203660031901126101b657600435610b96611107565b610ba08133611150565b600080808084335af1610bb1610dda565b50156107f3576040519081524260208201527f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e60403392a260016000805160206118cf83398151915255005b346101b65760203660031901126101b6576020610c1b600435610d65565b604051908152f35b60003660031901126101b6573415610af257005b346101b65760203660031901126101b657610250610c53610d0b565b610c5b610ea3565b610fb2565b346101b65760003660031901126101b6576020600154604051908152f35b346101b65760203660031901126101b6576001600160a01b03610c9f610d0b565b1660005260056020526020604060002054604051908152f35b346101b65760203660031901126101b6576004359063ffffffff60e01b82168092036101b657602091637965db0b60e01b8114908115610cfa575b5015158152f35b6301ffc9a760e01b14905083610cf3565b600435906001600160a01b03821682036101b657565b602435906001600160a01b03821682036101b657565b9181601f840112156101b65782359167ffffffffffffffff83116101b657602083818601950101116101b657565b60005260008051602061188f83398151915260205260016040600020015490565b90601f8019910116810190811067ffffffffffffffff821117610da857604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610da857601f01601f191660200190565b3d15610e05573d90610deb82610dbe565b91610df96040519384610d86565b82523d6000602084013e565b606090565b91908201809211610e1757565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03168015610e8d5760008051602061184f83398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b3360009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615610edc57565b63e2517d3f60e01b60005233600452600060245260446000fd5b3360009081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1615610f2f57565b63e2517d3f60e01b600052336004527f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92960245260446000fd5b600081815260008051602061188f8339815191526020908152604080832033845290915290205460ff1615610f9a5750565b63e2517d3f60e01b6000523360045260245260446000fd5b6001600160a01b038116600090815260008051602061186f833981519152602052604090205460ff161561105a576001600160a01b0316600081815260008051602061186f83398151915260205260408120805460ff191690553391907fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f70907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b50600090565b600081815260008051602061188f833981519152602090815260408083206001600160a01b038616845290915290205460ff161561110057600081815260008051602061188f833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b5050600090565b60026000805160206118cf83398151915254146111325760026000805160206118cf83398151915255565b633ee5aeb560e01b60005260046000fd5b91908203918211610e1757565b8115610af2576001600160a01b031660008181526004602052604090205490919081116111d25760407f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e91836000526004602052816000206111b3828254611143565b90556111c181600054611143565b6000558151908152426020820152a2565b6378de4a6960e11b60005260046000fd5b6001600160a01b038116600090815260008051602061186f833981519152602052604090205460ff1661105a576001600160a01b0316600081815260008051602061186f83398151915260205260408120805460ff191660011790553391907fe2f4eaae4a9751e85a3e4a7b9587827a877f29914755229b07a7b2da98285f709060008051602061182f8339815191529080a4600190565b6001600160a01b03811660009081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1661105a576001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff1916600117905533919060008051602061182f8339815191528180a4600190565b6001600160a01b03811660009081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1661105a576001600160a01b031660008181527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45660205260408120805460ff191660011790553391907f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9299060008051602061182f8339815191529080a4600190565b600081815260008051602061188f833981519152602090815260408083206001600160a01b038616845290915290205460ff1661110057600081815260008051602061188f833981519152602090815260408083206001600160a01b0395909516808452949091528120805460ff191660011790553392919060008051602061182f8339815191529080a4600190565b60ff6000805160206118af833981519152541661147a57565b63d93c066560e01b60005260046000fd5b9290919493948215610af25760025483116115f4578142116115e3576040519260208401943060601b86526bffffffffffffffffffffffff199060601b166034850152604884015260688301526088820152608881526114ec60a882610d86565b5190207f19457468657265756d205369676e6564204d6573736167653a0a333200000000600052601c52603c6000209182600052600660205260ff604060002054166115d25761153b82610dbe565b6115486040519182610d86565b82815236838301116101b65760006020846115789561156f958386013783010152836116d5565b90929192611711565b6001600160a01b0316600090815260008051602061186f833981519152602052604090205460ff16156115c1578060005260066020526040600020600160ff1982541617905590565b638baa579f60e01b60005260046000fd5b630d75493360e01b60005260046000fd5b630819bdcd60e01b60005260046000fd5b636d363c4560e01b60005260046000fd5b7f41e99e9dc0d7cfce35db1b179b2938d186cbc127e72e9058202a7159ff3b44d69160609160018060a01b031693846000526005602052604060002061164c838254610e0a565b905561165a82600154610e0a565b6001556040519182524260208301526040820152a2565b60008051602061184f833981519152546001600160a01b0316330361169257565b63118cdaa760e01b6000523360045260246000fd5b60ff6000805160206118ef8339815191525460401c16156116c457565b631afcd79f60e31b60005260046000fd5b8151919060418303611706576116ff92506020820151906060604084015193015160001a90611799565b9192909190565b505060009160029190565b9190916004811015611783578061172757509050565b6000600182036117425763f645eedf60e01b60005260046000fd5b5060028103611760578263fce698f760e01b60005260045260246000fd5b9091600360009214611770575050565b6335e2f38360e21b825260045260249150fd5b634e487b7160e01b600052602160045260246000fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411611822579160209360809260ff60009560405194855216868401526040830152606082015282805260015afa15611816576000516001600160a01b0381161561180a5790600090600090565b50600090600190600090565b6040513d6000823e3d90fd5b5050506000916003919056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300ed82e8858f919528fd86c81da277f0812ef4876fae8bc5251645af9640d3f49f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203943c117bee9f8422e1fc19e8a213361f03eaf44333381ea7426c465b3f9e81e64736f6c634300081c0033",
|
934
934
|
"linkReferences": {},
|
935
935
|
"deployedLinkReferences": {}
|
936
936
|
}
|
@@ -1,18 +1,18 @@
|
|
1
1
|
import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
|
2
2
|
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../common";
|
3
3
|
export interface EthStakingInterface extends Interface {
|
4
|
-
getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE" | "OPERATOR_ROLE" | "SIGNER_ROLE" | "addRewards" | "addSigner" | "
|
5
|
-
getEvent(nameOrSignatureOrTopic: "Initialized" | "MinStakeUpdated" | "OwnershipTransferred" | "Paused" | "
|
4
|
+
getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE" | "OPERATOR_ROLE" | "SIGNER_ROLE" | "addRewards" | "addSigner" | "emergencyUnstake" | "getRoleAdmin" | "getUserInfo" | "grantRole" | "harvestReward" | "hasRole" | "initialize" | "maxRewardAmount" | "minStakeAmount" | "owner" | "pause" | "paused" | "removeSigner" | "renounceOwnership" | "renounceRole" | "revokeRole" | "setMinStakeAmount" | "stake" | "supportsInterface" | "totalRewards" | "totalStaked" | "transferOwnership" | "unpause" | "unstake" | "unstakeAndHarvest" | "updateMaxRewardAmount" | "usedSignatures" | "userStakes" | "userTotalRewardsHarvested"): FunctionFragment;
|
5
|
+
getEvent(nameOrSignatureOrTopic: "Initialized" | "MinStakeUpdated" | "OwnershipTransferred" | "Paused" | "RewardHarvested" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" | "SignerUpdated" | "Staked" | "Unpaused" | "Unstaked"): EventFragment;
|
6
6
|
encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string;
|
7
7
|
encodeFunctionData(functionFragment: "OPERATOR_ROLE", values?: undefined): string;
|
8
8
|
encodeFunctionData(functionFragment: "SIGNER_ROLE", values?: undefined): string;
|
9
9
|
encodeFunctionData(functionFragment: "addRewards", values?: undefined): string;
|
10
10
|
encodeFunctionData(functionFragment: "addSigner", values: [AddressLike]): string;
|
11
|
-
encodeFunctionData(functionFragment: "claimReward", values: [BigNumberish, BigNumberish, BigNumberish, BytesLike]): string;
|
12
11
|
encodeFunctionData(functionFragment: "emergencyUnstake", values: [AddressLike]): string;
|
13
12
|
encodeFunctionData(functionFragment: "getRoleAdmin", values: [BytesLike]): string;
|
14
13
|
encodeFunctionData(functionFragment: "getUserInfo", values: [AddressLike]): string;
|
15
14
|
encodeFunctionData(functionFragment: "grantRole", values: [BytesLike, AddressLike]): string;
|
15
|
+
encodeFunctionData(functionFragment: "harvestReward", values: [BigNumberish, BigNumberish, BigNumberish, BytesLike]): string;
|
16
16
|
encodeFunctionData(functionFragment: "hasRole", values: [BytesLike, AddressLike]): string;
|
17
17
|
encodeFunctionData(functionFragment: "initialize", values: [AddressLike, AddressLike, BigNumberish, BigNumberish]): string;
|
18
18
|
encodeFunctionData(functionFragment: "maxRewardAmount", values?: undefined): string;
|
@@ -32,21 +32,21 @@ export interface EthStakingInterface extends Interface {
|
|
32
32
|
encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string;
|
33
33
|
encodeFunctionData(functionFragment: "unpause", values?: undefined): string;
|
34
34
|
encodeFunctionData(functionFragment: "unstake", values: [BigNumberish]): string;
|
35
|
-
encodeFunctionData(functionFragment: "
|
35
|
+
encodeFunctionData(functionFragment: "unstakeAndHarvest", values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, BytesLike]): string;
|
36
36
|
encodeFunctionData(functionFragment: "updateMaxRewardAmount", values: [BigNumberish]): string;
|
37
37
|
encodeFunctionData(functionFragment: "usedSignatures", values: [BytesLike]): string;
|
38
38
|
encodeFunctionData(functionFragment: "userStakes", values: [AddressLike]): string;
|
39
|
-
encodeFunctionData(functionFragment: "
|
39
|
+
encodeFunctionData(functionFragment: "userTotalRewardsHarvested", values: [AddressLike]): string;
|
40
40
|
decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result;
|
41
41
|
decodeFunctionResult(functionFragment: "OPERATOR_ROLE", data: BytesLike): Result;
|
42
42
|
decodeFunctionResult(functionFragment: "SIGNER_ROLE", data: BytesLike): Result;
|
43
43
|
decodeFunctionResult(functionFragment: "addRewards", data: BytesLike): Result;
|
44
44
|
decodeFunctionResult(functionFragment: "addSigner", data: BytesLike): Result;
|
45
|
-
decodeFunctionResult(functionFragment: "claimReward", data: BytesLike): Result;
|
46
45
|
decodeFunctionResult(functionFragment: "emergencyUnstake", data: BytesLike): Result;
|
47
46
|
decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
|
48
47
|
decodeFunctionResult(functionFragment: "getUserInfo", data: BytesLike): Result;
|
49
48
|
decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
|
49
|
+
decodeFunctionResult(functionFragment: "harvestReward", data: BytesLike): Result;
|
50
50
|
decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
|
51
51
|
decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
|
52
52
|
decodeFunctionResult(functionFragment: "maxRewardAmount", data: BytesLike): Result;
|
@@ -66,11 +66,11 @@ export interface EthStakingInterface extends Interface {
|
|
66
66
|
decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
|
67
67
|
decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;
|
68
68
|
decodeFunctionResult(functionFragment: "unstake", data: BytesLike): Result;
|
69
|
-
decodeFunctionResult(functionFragment: "
|
69
|
+
decodeFunctionResult(functionFragment: "unstakeAndHarvest", data: BytesLike): Result;
|
70
70
|
decodeFunctionResult(functionFragment: "updateMaxRewardAmount", data: BytesLike): Result;
|
71
71
|
decodeFunctionResult(functionFragment: "usedSignatures", data: BytesLike): Result;
|
72
72
|
decodeFunctionResult(functionFragment: "userStakes", data: BytesLike): Result;
|
73
|
-
decodeFunctionResult(functionFragment: "
|
73
|
+
decodeFunctionResult(functionFragment: "userTotalRewardsHarvested", data: BytesLike): Result;
|
74
74
|
}
|
75
75
|
export declare namespace InitializedEvent {
|
76
76
|
type InputTuple = [version: BigNumberish];
|
@@ -118,7 +118,7 @@ export declare namespace PausedEvent {
|
|
118
118
|
type Log = TypedEventLog<Event>;
|
119
119
|
type LogDescription = TypedLogDescription<Event>;
|
120
120
|
}
|
121
|
-
export declare namespace
|
121
|
+
export declare namespace RewardHarvestedEvent {
|
122
122
|
type InputTuple = [
|
123
123
|
user: AddressLike,
|
124
124
|
amount: BigNumberish,
|
@@ -271,14 +271,6 @@ export interface EthStaking extends BaseContract {
|
|
271
271
|
SIGNER_ROLE: TypedContractMethod<[], [string], "view">;
|
272
272
|
addRewards: TypedContractMethod<[], [void], "payable">;
|
273
273
|
addSigner: TypedContractMethod<[_signer: AddressLike], [void], "nonpayable">;
|
274
|
-
claimReward: TypedContractMethod<[
|
275
|
-
_amount: BigNumberish,
|
276
|
-
_nonce: BigNumberish,
|
277
|
-
_deadline: BigNumberish,
|
278
|
-
_signature: BytesLike
|
279
|
-
], [
|
280
|
-
void
|
281
|
-
], "nonpayable">;
|
282
274
|
emergencyUnstake: TypedContractMethod<[
|
283
275
|
_recipient: AddressLike
|
284
276
|
], [
|
@@ -290,7 +282,7 @@ export interface EthStaking extends BaseContract {
|
|
290
282
|
], [
|
291
283
|
[bigint, bigint] & {
|
292
284
|
stake: bigint;
|
293
|
-
|
285
|
+
harvested: bigint;
|
294
286
|
}
|
295
287
|
], "view">;
|
296
288
|
grantRole: TypedContractMethod<[
|
@@ -299,6 +291,14 @@ export interface EthStaking extends BaseContract {
|
|
299
291
|
], [
|
300
292
|
void
|
301
293
|
], "nonpayable">;
|
294
|
+
harvestReward: TypedContractMethod<[
|
295
|
+
_amount: BigNumberish,
|
296
|
+
_nonce: BigNumberish,
|
297
|
+
_deadline: BigNumberish,
|
298
|
+
_signature: BytesLike
|
299
|
+
], [
|
300
|
+
void
|
301
|
+
], "nonpayable">;
|
302
302
|
hasRole: TypedContractMethod<[
|
303
303
|
role: BytesLike,
|
304
304
|
account: AddressLike
|
@@ -356,7 +356,7 @@ export interface EthStaking extends BaseContract {
|
|
356
356
|
], "nonpayable">;
|
357
357
|
unpause: TypedContractMethod<[], [void], "nonpayable">;
|
358
358
|
unstake: TypedContractMethod<[_amount: BigNumberish], [void], "nonpayable">;
|
359
|
-
|
359
|
+
unstakeAndHarvest: TypedContractMethod<[
|
360
360
|
_unstakeAmount: BigNumberish,
|
361
361
|
_rewardAmount: BigNumberish,
|
362
362
|
_nonce: BigNumberish,
|
@@ -372,7 +372,7 @@ export interface EthStaking extends BaseContract {
|
|
372
372
|
], "nonpayable">;
|
373
373
|
usedSignatures: TypedContractMethod<[arg0: BytesLike], [boolean], "view">;
|
374
374
|
userStakes: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
|
375
|
-
|
375
|
+
userTotalRewardsHarvested: TypedContractMethod<[
|
376
376
|
arg0: AddressLike
|
377
377
|
], [
|
378
378
|
bigint
|
@@ -383,14 +383,6 @@ export interface EthStaking extends BaseContract {
|
|
383
383
|
getFunction(nameOrSignature: "SIGNER_ROLE"): TypedContractMethod<[], [string], "view">;
|
384
384
|
getFunction(nameOrSignature: "addRewards"): TypedContractMethod<[], [void], "payable">;
|
385
385
|
getFunction(nameOrSignature: "addSigner"): TypedContractMethod<[_signer: AddressLike], [void], "nonpayable">;
|
386
|
-
getFunction(nameOrSignature: "claimReward"): TypedContractMethod<[
|
387
|
-
_amount: BigNumberish,
|
388
|
-
_nonce: BigNumberish,
|
389
|
-
_deadline: BigNumberish,
|
390
|
-
_signature: BytesLike
|
391
|
-
], [
|
392
|
-
void
|
393
|
-
], "nonpayable">;
|
394
386
|
getFunction(nameOrSignature: "emergencyUnstake"): TypedContractMethod<[_recipient: AddressLike], [void], "nonpayable">;
|
395
387
|
getFunction(nameOrSignature: "getRoleAdmin"): TypedContractMethod<[role: BytesLike], [string], "view">;
|
396
388
|
getFunction(nameOrSignature: "getUserInfo"): TypedContractMethod<[
|
@@ -398,7 +390,7 @@ export interface EthStaking extends BaseContract {
|
|
398
390
|
], [
|
399
391
|
[bigint, bigint] & {
|
400
392
|
stake: bigint;
|
401
|
-
|
393
|
+
harvested: bigint;
|
402
394
|
}
|
403
395
|
], "view">;
|
404
396
|
getFunction(nameOrSignature: "grantRole"): TypedContractMethod<[
|
@@ -407,6 +399,14 @@ export interface EthStaking extends BaseContract {
|
|
407
399
|
], [
|
408
400
|
void
|
409
401
|
], "nonpayable">;
|
402
|
+
getFunction(nameOrSignature: "harvestReward"): TypedContractMethod<[
|
403
|
+
_amount: BigNumberish,
|
404
|
+
_nonce: BigNumberish,
|
405
|
+
_deadline: BigNumberish,
|
406
|
+
_signature: BytesLike
|
407
|
+
], [
|
408
|
+
void
|
409
|
+
], "nonpayable">;
|
410
410
|
getFunction(nameOrSignature: "hasRole"): TypedContractMethod<[
|
411
411
|
role: BytesLike,
|
412
412
|
account: AddressLike
|
@@ -448,7 +448,7 @@ export interface EthStaking extends BaseContract {
|
|
448
448
|
getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
|
449
449
|
getFunction(nameOrSignature: "unpause"): TypedContractMethod<[], [void], "nonpayable">;
|
450
450
|
getFunction(nameOrSignature: "unstake"): TypedContractMethod<[_amount: BigNumberish], [void], "nonpayable">;
|
451
|
-
getFunction(nameOrSignature: "
|
451
|
+
getFunction(nameOrSignature: "unstakeAndHarvest"): TypedContractMethod<[
|
452
452
|
_unstakeAmount: BigNumberish,
|
453
453
|
_rewardAmount: BigNumberish,
|
454
454
|
_nonce: BigNumberish,
|
@@ -460,12 +460,12 @@ export interface EthStaking extends BaseContract {
|
|
460
460
|
getFunction(nameOrSignature: "updateMaxRewardAmount"): TypedContractMethod<[_newMaxReward: BigNumberish], [void], "nonpayable">;
|
461
461
|
getFunction(nameOrSignature: "usedSignatures"): TypedContractMethod<[arg0: BytesLike], [boolean], "view">;
|
462
462
|
getFunction(nameOrSignature: "userStakes"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
|
463
|
-
getFunction(nameOrSignature: "
|
463
|
+
getFunction(nameOrSignature: "userTotalRewardsHarvested"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
|
464
464
|
getEvent(key: "Initialized"): TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
|
465
465
|
getEvent(key: "MinStakeUpdated"): TypedContractEvent<MinStakeUpdatedEvent.InputTuple, MinStakeUpdatedEvent.OutputTuple, MinStakeUpdatedEvent.OutputObject>;
|
466
466
|
getEvent(key: "OwnershipTransferred"): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
|
467
467
|
getEvent(key: "Paused"): TypedContractEvent<PausedEvent.InputTuple, PausedEvent.OutputTuple, PausedEvent.OutputObject>;
|
468
|
-
getEvent(key: "
|
468
|
+
getEvent(key: "RewardHarvested"): TypedContractEvent<RewardHarvestedEvent.InputTuple, RewardHarvestedEvent.OutputTuple, RewardHarvestedEvent.OutputObject>;
|
469
469
|
getEvent(key: "RoleAdminChanged"): TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
|
470
470
|
getEvent(key: "RoleGranted"): TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
|
471
471
|
getEvent(key: "RoleRevoked"): TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
|
@@ -482,8 +482,8 @@ export interface EthStaking extends BaseContract {
|
|
482
482
|
OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
|
483
483
|
"Paused(address)": TypedContractEvent<PausedEvent.InputTuple, PausedEvent.OutputTuple, PausedEvent.OutputObject>;
|
484
484
|
Paused: TypedContractEvent<PausedEvent.InputTuple, PausedEvent.OutputTuple, PausedEvent.OutputObject>;
|
485
|
-
"
|
486
|
-
|
485
|
+
"RewardHarvested(address,uint256,uint256,bytes32)": TypedContractEvent<RewardHarvestedEvent.InputTuple, RewardHarvestedEvent.OutputTuple, RewardHarvestedEvent.OutputObject>;
|
486
|
+
RewardHarvested: TypedContractEvent<RewardHarvestedEvent.InputTuple, RewardHarvestedEvent.OutputTuple, RewardHarvestedEvent.OutputObject>;
|
487
487
|
"RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
|
488
488
|
RoleAdminChanged: TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
|
489
489
|
"RoleGranted(bytes32,address,address)": TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
|
package/dist/contracts.json
CHANGED
@@ -42,8 +42,8 @@
|
|
42
42
|
"NFTTicket": "0x3f1AC66384593AAF4d99B51776E1d7df00d2C271",
|
43
43
|
"NFTTicket-implemented": "0x5099f248392C336186AA438BC871c6d3E0886b0C",
|
44
44
|
"NFTTicket-implemented-old": "0x8915d96Ae316b321e8B3A00Ba21e4F5D41FF526C",
|
45
|
-
"EthStaking": "
|
46
|
-
"EthStaking-implemented": "
|
45
|
+
"EthStaking": "0x15fcdFC625fD7c7A4dFC6Ba7a8cBcA312e80Dad8",
|
46
|
+
"EthStaking-implemented": "0x9af37a0daae87e6D9012d7091C5Bd16ec5D27345"
|
47
47
|
},
|
48
48
|
"base": {
|
49
49
|
"SeedRoundFundraiser": "0x3e7b414cAd1011c757dBA1a58212Db561dc9feeB",
|
package/dist/types.d.ts
CHANGED
@@ -440,7 +440,7 @@ export interface RawEthStakingEventTypes {
|
|
440
440
|
amount: bigint;
|
441
441
|
timestamp: bigint;
|
442
442
|
};
|
443
|
-
|
443
|
+
RewardHarvested: {
|
444
444
|
user: string;
|
445
445
|
amount: bigint;
|
446
446
|
timestamp: bigint;
|
@@ -496,7 +496,7 @@ export interface EthStakingEventTypes {
|
|
496
496
|
amount: number;
|
497
497
|
timestamp: number;
|
498
498
|
};
|
499
|
-
|
499
|
+
RewardHarvested: {
|
500
500
|
user: string;
|
501
501
|
amount: number;
|
502
502
|
timestamp: number;
|