{"version":3,"sources":["helpers/nominate.ts","context/state.tsx","context/reducer.tsx","context/index.tsx","helpers/decodePem.tsx","components/Denominate/formatters.tsx","helpers/useDelegation.ts","helpers/entireBalance.ts","components/Overview/Cards/AutomaticActivationAction/AutomaticActivationModal.tsx","components/Overview/Cards/ReDelegateCapActivationAction/ReDelegateCapActivationModal.tsx","components/Overview/Header/SetAgencyMetaDataModal.tsx","storage/session.tsx","../node_modules/@elrondnetwork/bls-wasm sync /^/.//.*/.js$","config.ts","contracts/ContractViews.ts","helpers/contractDataDefinitions.ts","components/Layout/APRCalculation.ts","components/Layout/Footer/index.jsx","assets/images/logo.svg","components/Layout/Navbar/index.tsx","components/Layout/index.tsx","components/Denominate/index.tsx","pages/Dashboard/Actions/DelegateAction/DelegateModal.tsx","pages/Dashboard/Actions/DelegateAction/index.tsx","pages/Dashboard/Actions/UndelegateAction/UndelegateModal.tsx","pages/Dashboard/Actions/UndelegateAction/index.tsx","pages/Dashboard/Actions/ClaimRewardsAction/ClaimRewardsModal.tsx","pages/Dashboard/Actions/ClaimRewardsAction/index.tsx","components/State/index.tsx","pages/Dashboard/Delegation/index.tsx","pages/Dashboard/PendingUndelegated/UndelegatedValueRow.tsx","pages/Dashboard/PendingUndelegated/UndelegatedValueType.ts","pages/Dashboard/PendingUndelegated/index.tsx","components/StatCard/index.tsx","components/Overview/Cards/SetPercentageFeeAction/SetPercentageFeeModal.tsx","components/Overview/Cards/SetPercentageFeeAction/index.tsx","components/Overview/Cards/UpdateDelegationCapAction/DelegationCapModal.tsx","components/Overview/Cards/UpdateDelegationCapAction/index.tsx","components/Overview/Cards/AutomaticActivationAction/index.tsx","components/Overview/Cards/ReDelegateCapActivationAction/index.tsx","components/Overview/Cards/index.tsx","components/Overview/Header/index.tsx","components/Overview/index.tsx","pages/Dashboard/index.tsx","pages/Home/Login/Ledger.tsx","pages/Home/Login/Wallet.tsx","pages/Home/index.tsx","components/PageTitle/index.tsx","pages/Owner/Nodes/helpers/nodeTypes.ts","pages/Owner/Nodes/helpers/stakeHooks.ts","pages/Owner/Nodes/NodeRow.tsx","pages/Owner/Nodes/helpers/nodeType.ts","pages/Owner/Nodes/helpers/keysFunctions.ts","components/DropzonePem/index.tsx","components/DropzonePem/PemUpload.tsx","components/DropzonePem/RequestVariablesModal.tsx","pages/Owner/Nodes/AddNodeAction.tsx","pages/Owner/Nodes/index.tsx","routes.ts","pages/Owner/index.tsx","App.tsx","index.tsx","contracts/Delegation.tsx","components/ViewStatAction/index.tsx"],"names":["nominate","input","paramDenomination","parts","toString","split","denomination","undefined","substring","length","count","transformed","join","repeat","nominateValToHex","value","val","BigNumber","defaultNetwork","id","name","egldLabel","walletAddress","apiAddress","gatewayAddress","explorerAddress","delegationContract","emptyAccount","balance","nonce","emptyAgencyMetaData","website","keybase","emptyNetworkConfig","roundDuration","roundsPerEpoch","roundsPassedInCurrentEpoch","topUpFactor","topUpRewardsGradientPoint","emptyContractOverview","ownerAddress","serviceFee","maxDelegationCap","initialOwnerFunds","automaticActivation","withDelegationCap","changeableServiceFee","reDelegationCap","createdNounce","unBondPeriod","initialState","sessionNetwork","network","decimals","dapp","provider","WalletProvider","proxy","ProxyProvider","apiProvider","ApiProvider","loading","error","loggedIn","getItem","address","account","contractOverview","networkConfig","agencyMetaData","numberOfActiveNodes","numUsers","totalActiveStake","aprPercentage","reducer","state","action","type","setItem","logout","then","catch","e","console","removeItem","Error","Context","React","createContext","Dispatch","ContextProvider","children","useReducer","dispatch","Provider","useContext","context","useDispatch","hexStringToByte","str","Uint8Array","a","i","len","push","parseInt","substr","getPubKey","file","indices","headerParts","decodePem","BLS","initIfNecessary","myKey","ValidatorSecretKey","fromPem","dsc","Address","signature","sign","Buffer","from","pubkey","regex","result","exec","index","key","decoded","window","atob","pubKey","denominate","showLastNonZeroDecimal","addCommas","big","array","unshift","splice","indexOf","nonZeroDigitIndex","decimalsIndex","sliceIndex","Math","max","slice","reverse","reference","floor","position","allDecimalsZero","every","digit","string","format","useDelegation","delegation","Delegation","entireBalance","gasLimit","gasPrice","bnBalance","bnGasPrice","bnGasLimit","minus","times","comparedTo","AutomaticActivationModal","show","title","description","handleClose","onHide","className","animation","centered","data-testid","actionTitle","handleContinue","activation","sendTransaction","color","onClick","ReDelegateCapActivationModal","SetAgencyMetaDataModal","useState","showDelegateModal","setShowDelegateModal","initialValues","onSubmit","values","data","handleReDelegationCapActivation","validationSchema","object","shape","required","test","RegExp","match","props","handleSubmit","handleBlur","handleChange","errors","touched","htmlFor","autoComplete","onChange","onBlur","component","item","ttl","expires","moment","unix","sessionStorage","JSON","stringify","deserializedItem","parse","hasOwnProperty","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","keys","Object","resolve","module","exports","genesisTokenSuply","feesInEpoch","stakePerNode","protocolSustainabilityRewards","yearSettings","year","maximumInflation","auctionContract","stakingContract","defined","validate","strict","delegationContractData","contractViews","query","Query","func","ContractFunction","args","Argument","fromPubkey","queryContract","ContractOverview","this","NetworkStake","totalValidators","activeValidators","queueSize","totalStaked","Stats","epoch","NetworkConfig","AgencyMetadata","denominateValue","replace","calculateAPR","stats","networkStake","blsKeys","allNodes","filter","asString","allActiveNodes","epochsInYear","inflationRate","find","x","rewardsPerEpoch","rewardsPerEpochWithoutProtocolSustainability","topUpRewardsLimit","networkBaseStake","networkTopUpStake","toFixed","topUpReward","PI","atan","baseReward","validatorBaseStake","validatorTotalStake","validatorTopUpStake","Footer","target","href","_extends","assign","arguments","source","prototype","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","fill","fillRule","d","SvgLogo","_ref","svgRef","titleId","xmlns","width","height","viewBox","ref","ForwardRef","Navbar","style","minWidth","Layout","page","getContractConfig","getTotalActiveStake","getBlsKeys","getNumUsers","getMetaData","getContractOverviewType","returnData","asBigInt","asHex","asNumber","asBool","getAgencyMetaDataType","useEffect","Promise","all","getNetworkStats","getNetworkStake","getNetworkConfig","getNetworkStatus","metaData","activeStake","networkStats","networkStatus","TopUpFactor","RoundDuration","RoundsPerEpoch","RoundsPassedInCurrentEpoch","TopUpRewardsGradientPoint","Epoch","TotalValidators","ActiveValidators","QueueSize","TotalStaked","log","Denominate","showErd","configDecimals","denominatedValue","valueParts","hasNoDecimals","zeros","DelegateModal","available","isFullDelegationCapContract","bnTotalActiveStake","bnMaxDelegationCap","String","Modal","amount","bnAmount","bnAvailable","setFieldValue","step","preventDefault","DelegateAction","setBalance","getAccount","UndelegateModal","UndelegateSchema","min","UndelegateAction","showModal","setShowModal","ClaimRewardsModal","ViewStatAction","isRedelegateEnable","ClaimRewardsAction","showClaimRewardsModal","setShowClaimRewardsModal","State","icon","iconClass","size","MyDelegation","getClaimableRewards","getUserActiveStake","userActiveStake","setUserActiveStake","userActiveNominatedStake","setUserActiveNominatedStake","claimableRewards","setClaimableRewards","displayRewards","setDisplayRewards","displayUndelegate","setDisplayUndelegate","faCircleNotch","UndelegatedValueRow","undelegatedValue","isDisabled","setIsDisabled","timeLeft","counter","setCounter","setTimeout","timeLeftInMiliseconds","duration","asMilliseconds","utc","getTimeLeft","disabled","UndelegatedValueType","UndelegatedListView","getUserUnDelegatedList","Array","userUnstakeValue","setUserUnstakedValue","mapUndelegetedValueType","undelegatedList","roundsRemainingInEpoch","epochsChangesRemaining","element","denomintateValue","arrayWithdraw","withdrawValue","reduce","b","groupUndelegateValuesForTimeLeftZero","sort","StatCard","valueUnit","svg","percentage","tooltipText","src","OverlayTrigger","placement","delay","hide","overlay","Tooltip","faInfoCircle","SetPercentageFeeSchema","parseFloat","SetPercentageFeeModal","SetPercentageFeeAction","showUpdateFeeModal","setShowUpdateFeeModal","perc","nominateVal","DelegationCapModal","number","UpdateDelegationCapAction","showDelegationCapModal","setShowDelegationCapModal","hexCap","AutomaticActivationAction","automaticFlag","showAutomaticActivationModal","setShowAutomaticActivationModal","ReDelegateCapActivationAction","showReDelegationCapActivationModal","setShowReDelegationCapActivationModal","Views","setNetworkStake","getPercentage","amountOutOfTotal","total","isAdmin","hex","localeCompare","location","pathname","Header","useLocation","to","Overview","Dashboard","PendingUndelegated","LedgerLogin","httpProvider","hwWalletP","HWProvider","init","success","warn","login","err","WalletLogin","initialised","getAddress","Home","useRef","faBan","Ledger","Wallet","withPageTitle","Component","Memoized","memo","document","nodeActions","unJail","label","transaction","unStake","reStake","unBond","stake","remove","NodeStatus","notStaked","unStaked","staked","jailed","queued","nodeTransactions","blsKey","allowedActions","NodeRow","remaining","setRemaining","fromHex","status","remainingUnBondPeriod","newRemaining","current","statusColor","faSearch","queueIndex","Dropdown","Toggle","variant","faCaretDown","Menu","entry","actionAllowed","includes","Item","NodeType","getAllNodesStatus","nodes","responseValues","mapNodes","getBlsKeysStatus","getQueueSize","getQueueIndex","caller","forEach","isStatus","DropzonePem","fieldName","pubKeyLength","multiple","unique","files","setFiles","updatedFiles","existing","getKeyErrors","getUpdatedFiles","updated","useDropzone","accept","onDrop","onload","fileReader","FileReader","readAsText","getRootProps","getInputProps","isDragActive","onclick","disabledOnClick","stopPropagation","isInvalid","fileWord","inputProps","cursor","userSelect","verticalAlign","aria-hidden","PlaygroundPemUpload","pemFiles","of","mixed","RequestVariablesModal","variables","triggerDispatchEvent","modalValues","setModalValues","isPemUpload","some","variable","vals","AddNodeAction","showAddNodes","setAddNodesModal","addNodesRequest","keysData","getPemPubKeysWithSignature","variablesData","Nodes","setKeys","setQueuedKeys","adaptedNodesStatus","found","nodesStatus","findIndex","wrappedRoutes","path","route","App","routes","exact","MountedApp","ReactDOM","render","getElementById","signer","contract","proxyProvider","signerProvider","SmartContract","transcationType","constructor","sendTransactionBasedOnType","funcName","payload","TransactionPayload","contractCall","setFunction","build","Transaction","receiver","Balance","eGLD","GasLimit"],"mappings":"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","file":"static/js/main.6951f38a.chunk.js","sourcesContent":["import BigNumber from 'bignumber.js';\n\nexport default function nominate(input: string, paramDenomination?: number) {\n const parts = input.toString().split('.');\n const denomination = paramDenomination !== undefined ? paramDenomination : 18;\n\n if (parts[1]) {\n // remove trailing zeros\n while (parts[1].substring(parts[1].length - 1) === '0' && parts[1].length > 1) {\n parts[1] = parts[1].substring(0, parts[1].length - 1);\n }\n }\n\n let count = parts[1] ? denomination - parts[1].length : denomination;\n\n count = count < 0 ? 0 : count;\n\n let transformed = parts.join('') + '0'.repeat(count);\n\n // remove beginning zeros\n while (transformed.substring(0, 1) === '0' && transformed.length > 1) {\n transformed = transformed.substring(1);\n }\n\n return transformed;\n}\n\nexport const nominateValToHex = (value: string) => {\n let val = value && value.length > 0 ? new BigNumber(nominate(value)).toString(16) : '0';\n\n if (val.length % 2 !== 0) {\n val = '0' + val;\n }\n\n return val;\n};\n","import { IDappProvider, ProxyProvider, ApiProvider, WalletProvider } from '@elrondnetwork/erdjs';\nimport BigNumber from 'bignumber.js';\nimport { AgencyMetadata, ContractOverview, NetworkConfig } from 'helpers/contractDataDefinitions';\nimport { denomination, decimals, network, NetworkType } from '../config';\nimport { getItem } from '../storage/session';\n\nexport const defaultNetwork: NetworkType = {\n id: 'not-configured',\n name: 'NOT CONFIGURED',\n egldLabel: '',\n walletAddress: '',\n apiAddress: '',\n gatewayAddress: '',\n explorerAddress: '',\n delegationContract: '',\n};\n\nexport interface DappState {\n provider: IDappProvider;\n proxy: ProxyProvider;\n apiProvider: ApiProvider;\n}\n\nexport interface StateType {\n dapp: DappState;\n loading: boolean;\n error: string;\n loggedIn: boolean;\n address: string;\n egldLabel: string;\n denomination: number;\n decimals: number;\n account: AccountType;\n explorerAddress: string;\n delegationContract?: string;\n totalActiveStake: string;\n numberOfActiveNodes: string;\n numUsers: number;\n aprPercentage: string;\n contractOverview: ContractOverview;\n networkConfig: NetworkConfig;\n agencyMetaData: AgencyMetadata;\n}\nexport const emptyAccount: AccountType = {\n balance: '...',\n nonce: 0,\n};\n\nexport const emptyAgencyMetaData: AgencyMetadata = {\n name: '',\n website: '',\n keybase: '',\n};\n\nexport const emptyNetworkConfig: NetworkConfig = {\n roundDuration: -1,\n roundsPerEpoch: -1,\n roundsPassedInCurrentEpoch: -1,\n topUpFactor: -1,\n topUpRewardsGradientPoint: new BigNumber('-1'),\n};\n\nexport const emptyContractOverview: ContractOverview = {\n ownerAddress: '',\n serviceFee: '',\n maxDelegationCap: '',\n initialOwnerFunds: '',\n automaticActivation: 'false',\n withDelegationCap: false,\n changeableServiceFee: false,\n reDelegationCap: 'false',\n createdNounce: false,\n unBondPeriod: 0,\n};\n\nexport const initialState = () => {\n const sessionNetwork = network || defaultNetwork;\n return {\n denomination: denomination,\n decimals: decimals,\n dapp: {\n provider: new WalletProvider(sessionNetwork.walletAddress),\n proxy: new ProxyProvider(\n sessionNetwork.gatewayAddress !== undefined\n ? sessionNetwork?.gatewayAddress\n : 'https://gateway.elrond.com/',\n 4000\n ),\n apiProvider: new ApiProvider(\n sessionNetwork.apiAddress !== undefined\n ? sessionNetwork?.apiAddress\n : 'https://api.elrond.com/',\n 4000\n ),\n },\n loading: false,\n error: '',\n loggedIn: !!getItem('logged_in'),\n address: getItem('address'),\n account: emptyAccount,\n egldLabel: sessionNetwork?.egldLabel,\n explorerAddress: sessionNetwork.explorerAddress || 'https://explorer.elrond.com',\n delegationContract: sessionNetwork.delegationContract,\n contractOverview: emptyContractOverview,\n networkConfig: emptyNetworkConfig,\n agencyMetaData: emptyAgencyMetaData,\n numberOfActiveNodes: '...',\n numUsers: 0,\n totalActiveStake: '...',\n aprPercentage: '...',\n };\n};\n\nexport interface AccountType {\n balance: string;\n nonce: number;\n}\n","import { initialState, StateType } from './state';\nimport { setItem, removeItem } from '../storage/session';\n\nexport type DispatchType = (action: ActionType) => void;\n\nexport type ActionType =\n | { type: 'login'; address: StateType['address'] }\n | { type: 'logout'; provider: StateType['dapp']['provider'] }\n | { type: 'loading'; loading: StateType['loading'] }\n | { type: 'setProvider'; provider: StateType['dapp']['provider'] }\n | { type: 'setBalance'; balance: StateType['account']['balance'] }\n | { type: 'setContractOverview'; contractOverview: StateType['contractOverview'] }\n | { type: 'setNetworkConfig'; networkConfig: StateType['networkConfig'] }\n | { type: 'setAgencyMetaData'; agencyMetaData: StateType['agencyMetaData'] }\n | { type: 'setNumberOfActiveNodes'; numberOfActiveNodes: StateType['numberOfActiveNodes'] }\n | { type: 'setNumUsers'; numUsers: StateType['numUsers'] }\n | { type: 'setTotalActiveStake'; totalActiveStake: StateType['totalActiveStake'] }\n | { type: 'setAprPercentage'; aprPercentage: StateType['aprPercentage'] };\n\nexport function reducer(state: StateType, action: ActionType): StateType {\n switch (action.type) {\n case 'login': {\n const { address } = action;\n let loggedIn = address || address !== '' ? true : false;\n setItem('logged_in', loggedIn);\n setItem('address', address);\n return {\n ...state,\n address,\n loggedIn: loggedIn,\n };\n }\n\n case 'loading': {\n const { loading } = action;\n return {\n ...state,\n loading,\n };\n }\n\n case 'setProvider': {\n const { provider } = action;\n return {\n ...state,\n dapp: {\n ...state.dapp,\n provider: provider,\n },\n };\n }\n\n case 'setBalance': {\n const { balance } = action;\n return {\n ...state,\n account: {\n ...state.account,\n balance: balance,\n },\n };\n }\n\n case 'setContractOverview': {\n const { contractOverview } = action;\n return {\n ...state,\n contractOverview,\n };\n }\n\n case 'setNetworkConfig': {\n const { networkConfig } = action;\n return {\n ...state,\n networkConfig,\n };\n }\n\n case 'setAgencyMetaData': {\n const { agencyMetaData } = action;\n return {\n ...state,\n agencyMetaData,\n };\n }\n\n case 'setNumberOfActiveNodes': {\n const { numberOfActiveNodes } = action;\n return {\n ...state,\n numberOfActiveNodes,\n };\n }\n\n case 'setNumUsers': {\n const { numUsers } = action;\n return {\n ...state,\n numUsers,\n };\n }\n\n case 'setTotalActiveStake': {\n const { totalActiveStake } = action;\n return {\n ...state,\n totalActiveStake,\n };\n }\n\n case 'setAprPercentage': {\n const { aprPercentage } = action;\n return {\n ...state,\n aprPercentage,\n };\n }\n\n case 'logout': {\n const { provider } = action;\n provider\n .logout()\n .then()\n .catch(e => console.error('logout', e));\n removeItem('logged_in');\n removeItem('address');\n return initialState();\n }\n\n default: {\n throw new Error(`Unhandled action type: ${action!.type}`);\n }\n }\n}\n","import React from 'react';\nimport { StateType, initialState } from './state';\nimport { DispatchType, reducer } from './reducer';\n\nexport interface ContextType {\n children: React.ReactNode;\n}\n\nconst Context = React.createContext(undefined);\nconst Dispatch = React.createContext(undefined);\n\nfunction ContextProvider({ children }: ContextType) {\n const [state, dispatch] = React.useReducer(reducer, initialState());\n return (\n \n {children}\n \n );\n}\n\nfunction useContext() {\n const context = React.useContext(Context);\n if (context === undefined) {\n throw new Error('useState must be used within a Context.Provider');\n }\n return context;\n}\n\nfunction useDispatch() {\n const context = React.useContext(Dispatch);\n if (context === undefined) {\n throw new Error('useDispatch must be used within a Dispatch.Provider');\n }\n return context;\n}\n\nexport { ContextProvider, useContext, useDispatch };\n","import { Address } from '@elrondnetwork/erdjs/out';\nimport { BLS, ValidatorSecretKey } from '@elrondnetwork/erdjs/out/walletcore/validatorKeys';\n\nfunction hexStringToByte(str: string) {\n if (!str) {\n return new Uint8Array();\n }\n const a = [];\n for (let i = 0, len = str.length; i < len; i += 2) {\n a.push(parseInt(str.substr(i, 2), 16));\n }\n return new Uint8Array(a);\n}\n\nfunction getPubKey(file: string, indices: any[]) {\n const headerParts = file\n .toString()\n .substring(indices[0], indices[1])\n .split(' ');\n return headerParts[4] ? headerParts[4] : '';\n}\n\nexport default async function decodePem(file: string, delegationContract?: string) {\n await BLS.initIfNecessary();\n let myKey = ValidatorSecretKey.fromPem(file);\n let dsc = new Address(delegationContract);\n let signature = myKey.sign(Buffer.from(dsc.pubkey())).toString('hex');\n\n const regex = /-----/gi;\n let result;\n const indices = [];\n while ((result = regex.exec(file.toString()))) {\n indices.push(result.index);\n }\n\n const key = file.toString().substring(indices[1] + 6, indices[2] - 1);\n const decoded = window.atob(key);\n\n const value = hexStringToByte(decoded);\n\n const pubKey = getPubKey(file, indices);\n\n return { value, pubKey, signature };\n}\n","function format(\n big: string,\n denomination: number,\n decimals: number,\n showLastNonZeroDecimal: boolean,\n addCommas: boolean\n) {\n showLastNonZeroDecimal =\n typeof showLastNonZeroDecimal !== 'undefined' ? showLastNonZeroDecimal : false;\n let array = big.toString().split('');\n if (denomination !== 0) {\n // make sure we have enough characters\n while (array.length < denomination + 1) {\n array.unshift('0');\n }\n // add our dot\n array.splice(array.length - denomination, 0, '.');\n // make sure there are enough decimals after the dot\n while (array.length - array.indexOf('.') <= decimals) {\n array.push('0');\n }\n\n if (showLastNonZeroDecimal) {\n let nonZeroDigitIndex = 0;\n for (let i = array.length - 1; i > 0; i--) {\n if (array[i] !== '0') {\n nonZeroDigitIndex = i + 1;\n break;\n }\n }\n const decimalsIndex = array.indexOf('.') + decimals + 1;\n const sliceIndex = Math.max(decimalsIndex, nonZeroDigitIndex);\n array = array.slice(0, sliceIndex);\n } else {\n // trim unnecessary characters after the dot\n array = array.slice(0, array.indexOf('.') + decimals + 1);\n }\n }\n if (addCommas) {\n // add comas every 3 characters\n array = array.reverse();\n const reference = denomination ? array.length - array.indexOf('.') - 1 : array.length;\n const count = Math.floor(reference / 3);\n for (let i = 1; i <= count; i++) {\n const position = array.indexOf('.') + 3 * i + i;\n if (position !== array.length) {\n array.splice(position, 0, ',');\n }\n }\n array = array.reverse();\n }\n\n const allDecimalsZero = array\n .slice(array.indexOf('.') + 1)\n .every(digit => digit.toString() === '0');\n\n const string = array.join('');\n\n if (allDecimalsZero) {\n return string.split('.')[0];\n }\n\n return decimals === 0 ? string.split('.').join('') : string;\n}\n\ninterface DenominateType {\n input: string;\n denomination: number;\n decimals: number;\n showLastNonZeroDecimal: boolean;\n addCommas?: boolean;\n}\n\nexport default function denominate({\n input,\n denomination,\n decimals,\n showLastNonZeroDecimal = false,\n addCommas = true,\n}: DenominateType): string {\n if (input === '...') {\n return input;\n }\n if (input === '' || input === '0' || input === undefined) {\n input = '0';\n }\n return format(input, denomination, decimals, showLastNonZeroDecimal, addCommas);\n}\n","import { useContext } from 'context';\nimport { Delegation } from 'contracts';\n\nexport default function useDelegation() {\n const { dapp, delegationContract } = useContext();\n const delegation = new Delegation(dapp.proxy, delegationContract, dapp.provider);\n return { delegation };\n}\n","import BigNumber from 'bignumber.js';\nimport denominate from '../components/Denominate/formatters';\n\ninterface EntireBalanceType {\n balance: string;\n gasPrice: string;\n gasLimit: string;\n denomination: number;\n decimals: number;\n}\n\nexport default function entireBalance({\n balance,\n gasLimit,\n gasPrice,\n denomination,\n decimals,\n}: EntireBalanceType) {\n const bnBalance = new BigNumber(balance);\n const bnGasPrice = new BigNumber(gasPrice);\n const bnGasLimit = new BigNumber(gasLimit);\n const entireBalance = bnBalance.minus(bnGasPrice.times(bnGasLimit));\n if (entireBalance.comparedTo(0) === 1) {\n const input = entireBalance.toString(10);\n return denominate({\n input,\n denomination,\n decimals,\n showLastNonZeroDecimal: true,\n addCommas: false,\n });\n }\n return '0';\n}\n","import React from 'react';\nimport { Modal } from 'react-bootstrap';\nimport ViewStatAction from 'components/ViewStatAction';\nimport { useDelegation } from 'helpers';\n\nexport interface AutomaticActivationModalType {\n show: boolean;\n title: string;\n description: string;\n value: string;\n handleClose: () => void;\n}\n\nconst AutomaticActivationModal = ({\n show,\n title,\n description,\n value,\n handleClose,\n}: AutomaticActivationModalType) => {\n const { delegation } = useDelegation();\n const handleAutomaticActivation = () => {\n let activation = Buffer.from(value === 'true' ? 'false' : 'true').toString('hex');\n delegation.sendTransaction('0', 'setAutomaticActivation', activation).then();\n };\n\n return (\n \n
\n
\n

\n {title}\n

\n

{description}

\n

Currently is {value === 'true' ? 'ON' : 'OFF'}

\n
\n \n \n
\n
\n
\n
\n );\n};\n\nexport default AutomaticActivationModal;\n","import React from 'react';\nimport { Modal } from 'react-bootstrap';\nimport ViewStatAction from 'components/ViewStatAction';\nimport { useDelegation } from 'helpers';\n\nexport interface ReDelegateCapActivationModalType {\n show: boolean;\n title: string;\n description: string;\n value: string;\n handleClose: () => void;\n}\n\nconst ReDelegateCapActivationModal = ({\n show,\n title,\n description,\n value,\n handleClose,\n}: ReDelegateCapActivationModalType) => {\n const { delegation } = useDelegation();\n const handleReDelegationCapActivation = () => {\n let activation = Buffer.from(value === 'true' ? 'false' : 'true').toString('hex');\n delegation.sendTransaction('0', 'setReDelegateCapActivation', activation).then();\n };\n\n return (\n \n
\n
\n

\n {title}\n

\n

{description}

\n

Currently is {value === 'true' ? 'ON' : 'OFF'}

\n
\n \n \n
\n
\n
\n
\n );\n};\n\nexport default ReDelegateCapActivationModal;\n","import React, { useState } from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { useDelegation } from 'helpers';\nimport { ErrorMessage, Formik } from 'formik';\nimport { object, string } from 'yup';\nimport { useContext } from 'context';\nimport { AgencyMetadata } from 'helpers/contractDataDefinitions';\n\nconst SetAgencyMetaDataModal = () => {\n const { delegation } = useDelegation();\n const { agencyMetaData } = useContext();\n const [showDelegateModal, setShowDelegateModal] = useState(false);\n const handleReDelegationCapActivation = (values: AgencyMetadata) => {\n const hexName = Buffer.from(values.name).toString('hex');\n const hexWeb = Buffer.from(values.website).toString('hex');\n const hexKeyBase = Buffer.from(values.keybase).toString('hex');\n const data = hexName + '@' + hexWeb + '@' + hexKeyBase;\n delegation.sendTransaction('0', 'setMetaData', data).then();\n };\n\n return (\n <>\n {\n setShowDelegateModal(true);\n }}\n className=\"btn btn-primary btn-sm ml-3\"\n >\n Identity\n \n setShowDelegateModal(false)}\n className=\"modal-container\"\n animation={false}\n centered\n >\n
\n
\n

\n Agency Details\n

\n

\n Update or set your agency details in order to validate your identity.\n

\n {\n handleReDelegationCapActivation(values);\n }}\n validationSchema={object().shape({\n website: string()\n .required('Required')\n .test('URL', 'URL is not valid!', value => {\n var expression = /^((?:http(?:s)?\\:\\/\\/)?[a-zA-Z0-9_-]+(?:.[a-zA-Z0-9_-]+)*.[a-zA-Z]{2,4}(?:\\/[a-zA-Z0-9_]+)*(?:\\/[a-zA-Z0-9_]+.[a-zA-Z]{2,4}(?:\\?[a-zA-Z0-9_]+\\=[a-zA-Z0-9_]+)?)?(?:\\&[a-zA-Z0-9_]+\\=[a-zA-Z0-9_]+)*)$/;\n var regex = new RegExp(expression);\n if (value?.match(regex)) {\n return true;\n } else {\n return false;\n }\n }),\n })}\n >\n {props => {\n const { handleSubmit, values, handleBlur, handleChange, errors, touched } = props;\n\n return (\n
\n
\n \n
\n \n \n
\n \n
\n \n \n
\n \n
\n \n \n
\n
\n
\n \n Save\n \n setShowDelegateModal(false)}\n >\n Close\n \n
\n
\n );\n }}\n \n
\n
\n \n \n );\n};\n\nexport default SetAgencyMetaDataModal;\n","import moment from 'moment';\n\nexport const setItem = (key: string, item: any, ttl: number = 3600) => {\n const expires = moment().unix() + ttl;\n sessionStorage.setItem(\n key,\n JSON.stringify({\n expires,\n data: item,\n })\n );\n};\n\nexport const getItem = (key: string): any => {\n const item = sessionStorage.getItem(key);\n if (!item) {\n return null;\n }\n\n const deserializedItem = JSON.parse(item);\n if (!deserializedItem) {\n return null;\n }\n\n if (!deserializedItem.hasOwnProperty('expires') || !deserializedItem.hasOwnProperty('data')) {\n return null;\n }\n\n const expired = moment().unix() >= deserializedItem.expires;\n if (expired) {\n sessionStorage.removeItem(key);\n return null;\n }\n\n return deserializedItem.data;\n};\n\nexport const removeItem = (key: string) => sessionStorage.removeItem(key);\n","var map = {\n\t\"./bls.js\": 300,\n\t\"./bls_c.js\": 334\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 645;","import { object, string, boolean, InferType } from 'yup';\nimport { DelegationContractType } from './helpers/types';\n\nexport const decimals: number = 2;\nexport const denomination: number = 18;\nexport const genesisTokenSuply: number = 20000000;\nexport const feesInEpoch: number = 0;\nexport const stakePerNode: number = 2500;\nexport const protocolSustainabilityRewards: number = 0.1;\nexport const yearSettings = [\n { year: 1, maximumInflation: 0.1084513 },\n { year: 2, maximumInflation: 0.09703538 },\n { year: 3, maximumInflation: 0.08561945 },\n { year: 4, maximumInflation: 0.07420352 },\n { year: 5, maximumInflation: 0.0627876 },\n { year: 6, maximumInflation: 0.05137167 },\n { year: 7, maximumInflation: 0.03995574 },\n { year: 8, maximumInflation: 0.02853982 },\n { year: 9, maximumInflation: 0.01712389 },\n { year: 10, maximumInflation: 0.00570796 },\n { year: 11, maximumInflation: 0.0 },\n];\nexport const auctionContract: string =\n 'erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqplllst77y4l';\nexport const stakingContract: string =\n 'erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqllls0lczs7';\n\nexport const network: NetworkType = {\n id: 'testnet',\n name: 'Testnet',\n egldLabel: 'xEGLD',\n walletAddress: 'https://testnet-wallet.elrond.com/dapp/init',\n apiAddress: 'https://testnet-api.elrond.com',\n gatewayAddress: 'https://testnet-gateway.elrond.com',\n explorerAddress: 'http://testnet-explorer.elrond.com/',\n delegationContract: 'erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqd8llllslmf3hu',\n};\n\nconst networkSchema = object({\n id: string()\n .defined()\n .required(),\n egldLabel: string()\n .defined()\n .required(),\n name: string()\n .defined()\n .required(),\n delegationContract: string(),\n walletAddress: string(),\n apiAddress: string(),\n gatewayAddress: string(),\n explorerAddress: string(),\n}).required();\n\nexport type NetworkType = InferType;\n\nnetworkSchema.validate(network, { strict: true }).catch(({ errors }) => {\n console.error(`Config invalid format for ${network.id}`, errors);\n});\n\nexport const delegationContractData: DelegationContractType[] = [\n {\n name: 'createNewDelegationContract',\n gasLimit: 6000000,\n data: 'createNewDelegationContract@',\n },\n {\n name: 'setAutomaticActivation',\n gasLimit: 6000000,\n data: 'setAutomaticActivation@',\n },\n {\n name: 'setMetaData',\n gasLimit: 6000000,\n data: 'setMetaData@',\n },\n {\n name: 'setReDelegateCapActivation',\n gasLimit: 6000000,\n data: 'setCheckCapOnReDelegateRewards@',\n },\n {\n name: 'changeServiceFee',\n gasLimit: 6000000,\n data: 'changeServiceFee@',\n },\n {\n name: 'modifyTotalDelegationCap',\n gasLimit: 6000000,\n data: 'modifyTotalDelegationCap@',\n },\n {\n name: 'addNodes',\n gasLimit: 12000000,\n data: 'addNodes',\n },\n {\n name: 'removeNodes',\n gasLimit: 12000000,\n data: 'removeNodes@',\n },\n {\n name: 'stakeNodes',\n gasLimit: 12000000,\n data: 'stakeNodes@',\n },\n {\n name: 'reStakeUnStakedNodes',\n gasLimit: 120000000,\n data: 'reStakeUnStakedNodes@',\n },\n {\n name: 'unStakeNodes',\n gasLimit: 12000000,\n data: 'unStakeNodes@',\n },\n {\n name: 'unBondNodes',\n gasLimit: 12000000,\n data: 'unBondNodes@',\n },\n {\n name: 'unJailNodes',\n gasLimit: 12000000,\n data: 'unJailNodes@',\n },\n {\n name: 'delegate',\n gasLimit: 12000000,\n data: 'delegate',\n },\n {\n name: 'unDelegate',\n gasLimit: 12000000,\n data: 'unDelegate@',\n },\n {\n name: 'withdraw',\n gasLimit: 12000000,\n data: 'withdraw',\n },\n {\n name: 'claimRewards',\n gasLimit: 6000000,\n data: 'claimRewards',\n },\n {\n name: 'reDelegateRewards',\n gasLimit: 12000000,\n data: 'reDelegateRewards',\n },\n];\n","import { Address, ContractFunction, Argument } from '@elrondnetwork/erdjs/out';\nimport { Query } from '@elrondnetwork/erdjs/out/smartcontracts/query';\nimport { auctionContract } from 'config';\nimport { DappState } from '../context/state';\n\nexport const contractViews = {\n getUserActiveStake: (dapp: DappState, address: string, delegationContract?: string) => {\n const query = new Query({\n address: new Address(delegationContract),\n func: new ContractFunction('getUserActiveStake'),\n args: [Argument.fromPubkey(new Address(address))],\n });\n return dapp.proxy.queryContract(query);\n },\n getUserUnDelegatedList: (dapp: DappState, address: string, delegationContract?: string) => {\n const query = new Query({\n address: new Address(delegationContract),\n func: new ContractFunction('getUserUnDelegatedList'),\n args: [Argument.fromPubkey(new Address(address))],\n });\n return dapp.proxy.queryContract(query);\n },\n getClaimableRewards: (dapp: DappState, address: string, delegationContract?: string) => {\n const query = new Query({\n address: new Address(delegationContract),\n func: new ContractFunction('getClaimableRewards'),\n args: [Argument.fromPubkey(new Address(address))],\n });\n return dapp.proxy.queryContract(query);\n },\n getTotalActiveStake: (dapp: DappState, delegationContract?: string) => {\n const query = new Query({\n address: new Address(delegationContract),\n func: new ContractFunction('getTotalActiveStake'),\n });\n return dapp.proxy.queryContract(query);\n },\n getNumNodes: (dapp: DappState, delegationContract?: string) => {\n const query = new Query({\n address: new Address(delegationContract),\n func: new ContractFunction('getNumNodes'),\n });\n return dapp.proxy.queryContract(query);\n },\n getNumUsers: (dapp: DappState, delegationContract?: string) => {\n const query = new Query({\n address: new Address(delegationContract),\n func: new ContractFunction('getNumUsers'),\n });\n return dapp.proxy.queryContract(query);\n },\n getContractConfig: (dapp: DappState, delegationContract?: string) => {\n const query = new Query({\n address: new Address(delegationContract),\n func: new ContractFunction('getContractConfig'),\n });\n return dapp.proxy.queryContract(query);\n },\n getMetaData: (dapp: DappState, delegationContract?: string) => {\n const query = new Query({\n address: new Address(delegationContract),\n func: new ContractFunction('getMetaData'),\n });\n return dapp.proxy.queryContract(query);\n },\n getBlsKeys: (dapp: DappState, delegationContract?: string) => {\n const query = new Query({\n address: new Address(auctionContract),\n func: new ContractFunction('getBlsKeysStatus'),\n args: [Argument.fromPubkey(new Address(delegationContract))],\n });\n return dapp.proxy.queryContract(query);\n },\n};\n","import BigNumber from 'bignumber.js';\nexport class ContractOverview {\n ownerAddress: string;\n serviceFee?: string;\n maxDelegationCap: string;\n initialOwnerFunds?: string;\n automaticActivation: string;\n withDelegationCap?: boolean;\n changeableServiceFee?: boolean;\n reDelegationCap: string;\n createdNounce?: boolean;\n unBondPeriod?: number;\n public constructor(\n ownerAddress: string = '',\n serviceFee?: string,\n maxDelegationCap: string = '',\n initialOwnerFunds?: string,\n automaticActivation: string = 'false',\n withDelegationCap?: boolean,\n changeableServiceFee?: boolean,\n reDelegationCap: string = 'false',\n createdNounce?: boolean,\n unBondPeriod?: number\n ) {\n this.ownerAddress = ownerAddress;\n this.serviceFee = serviceFee;\n this.maxDelegationCap = maxDelegationCap;\n this.initialOwnerFunds = initialOwnerFunds;\n this.automaticActivation = automaticActivation;\n this.withDelegationCap = withDelegationCap;\n this.changeableServiceFee = changeableServiceFee;\n this.reDelegationCap = reDelegationCap;\n this.createdNounce = createdNounce;\n this.unBondPeriod = unBondPeriod;\n }\n}\n\nexport class NetworkStake {\n totalValidators: number;\n activeValidators: number;\n queueSize: number;\n totalStaked: BigNumber;\n public constructor(\n totalValidators: number,\n activeValidators: number,\n queueSize: number,\n totalStaked: BigNumber\n ) {\n this.totalValidators = totalValidators;\n this.activeValidators = activeValidators;\n this.queueSize = queueSize;\n this.totalStaked = totalStaked;\n }\n}\n\nexport class Stats {\n epoch: number;\n public constructor(epoch: number) {\n this.epoch = epoch;\n }\n}\n\nexport class NetworkConfig {\n topUpFactor: number;\n roundDuration: number;\n roundsPerEpoch: number;\n roundsPassedInCurrentEpoch: number;\n topUpRewardsGradientPoint: BigNumber;\n public constructor(\n topUpFactor: number,\n roundDuration: number,\n roundsPerEpoch: number,\n roundsPassedInCurrentEpoch: number,\n topUpRewardsGradientPoint: BigNumber\n ) {\n this.topUpFactor = topUpFactor;\n this.roundDuration = roundDuration;\n this.roundsPerEpoch = roundsPerEpoch;\n this.roundsPassedInCurrentEpoch = roundsPassedInCurrentEpoch;\n this.topUpRewardsGradientPoint = topUpRewardsGradientPoint;\n }\n}\n\nexport class AgencyMetadata {\n name: string;\n website: string;\n keybase: string;\n public constructor(name: string = '', website: string = '', keybase: string = '') {\n this.name = name;\n this.website = website;\n this.keybase = keybase;\n }\n}\n","import { ContractReturnData } from '@elrondnetwork/erdjs/out/smartcontracts/query';\nimport denominate from 'components/Denominate/formatters';\nimport {\n yearSettings,\n genesisTokenSuply,\n denomination,\n decimals,\n feesInEpoch,\n protocolSustainabilityRewards,\n stakePerNode,\n} from 'config';\nimport { NetworkConfig, NetworkStake, Stats } from 'helpers/contractDataDefinitions';\n\nconst denominateValue = (value: string) => {\n const denominatedValueString = denominate({\n input: value,\n denomination,\n decimals,\n showLastNonZeroDecimal: true,\n });\n const valueWithoutComma = denominatedValueString.replace(/,/g, '');\n return valueWithoutComma;\n};\n\nconst calculateAPR = ({\n stats: stats,\n networkConfig: networkConfig,\n networkStake: networkStake,\n blsKeys: blsKeys,\n totalActiveStake: totalActiveStake,\n}: {\n stats: Stats;\n networkConfig: NetworkConfig;\n networkStake: NetworkStake;\n blsKeys: ContractReturnData[];\n totalActiveStake: string;\n}) => {\n const allNodes = blsKeys.filter(key => key.asString === 'staked' || key.asString === 'jailed')\n .length;\n const allActiveNodes = blsKeys.filter(key => key.asString === 'staked').length;\n if (allActiveNodes <= 0) {\n return '0.00';\n }\n\n const epochDurationInSeconds =\n (networkConfig.roundDuration / 1000) * networkConfig.roundsPerEpoch;\n const secondsInYear = 365 * 24 * 3600;\n const epochsInYear = secondsInYear / epochDurationInSeconds;\n const inflationRate =\n yearSettings.find(x => x.year === Math.floor(stats.epoch / epochsInYear) + 1)\n ?.maximumInflation || 0;\n const rewardsPerEpoch = Math.max((inflationRate * genesisTokenSuply) / epochsInYear, feesInEpoch);\n const rewardsPerEpochWithoutProtocolSustainability =\n (1 - protocolSustainabilityRewards) * rewardsPerEpoch;\n const topUpRewardsLimit =\n networkConfig.topUpFactor * rewardsPerEpochWithoutProtocolSustainability;\n\n const networkBaseStake = networkStake.activeValidators * stakePerNode;\n const networkTotalStake = parseInt(denominateValue(networkStake.totalStaked.toFixed()));\n const networkTopUpStake =\n networkTotalStake -\n networkStake.totalValidators * stakePerNode -\n networkStake.queueSize * stakePerNode;\n const topUpReward =\n ((2 * topUpRewardsLimit) / Math.PI) *\n Math.atan(\n networkTopUpStake /\n parseInt(denominateValue(networkConfig.topUpRewardsGradientPoint.toFixed()))\n );\n const baseReward = rewardsPerEpochWithoutProtocolSustainability - topUpReward;\n\n const validatorBaseStake = allActiveNodes * stakePerNode;\n const validatorTotalStake = parseInt(denominateValue(totalActiveStake));\n const validatorTopUpStake =\n ((validatorTotalStake - allNodes * stakePerNode) / allNodes) * allActiveNodes;\n const validatorTopUpReward =\n networkTopUpStake > 0 ? (validatorTopUpStake / networkTopUpStake) * topUpReward : 0;\n const validatorBaseReward = (validatorBaseStake / networkBaseStake) * baseReward;\n const anualPercentageRate =\n (epochsInYear * (validatorTopUpReward + validatorBaseReward)) / validatorTotalStake;\n return (anualPercentageRate * 100).toFixed(2);\n};\n\nexport { calculateAPR };\n","import React from 'react';\n\nconst Footer = () => {\n return (\n \n );\n};\n\nexport default Footer;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.93 7.908a.737.737 0 0 1-.205-.503.707.707 0 0 1 1.206-.504c.141.142.213.32.213.504a.717.717 0 0 1-.71.71.713.713 0 0 1-.503-.207m-2.008 2.008a.74.74 0 0 1-.206-.504c0-.184.071-.361.206-.503a.715.715 0 0 1 1.007 0c.135.142.206.32.206.503 0 .178-.07.362-.206.504a.725.725 0 0 1-.503.206.725.725 0 0 1-.504-.206m-2.007 2a.71.71 0 1 1 1.007 0 .704.704 0 0 1-1.007 0m-2.008 2.008a.713.713 0 0 1 0-1 .716.716 0 0 1 1.007 0 .71.71 0 0 1 0 1 .696.696 0 0 1-.503.206.708.708 0 0 1-.504-.206m-2 2.008a.694.694 0 0 1 0-1 .693.693 0 0 1 1 0 .68.68 0 0 1 .205.496.685.685 0 0 1-.205.504.684.684 0 0 1-.504.205.68.68 0 0 1-.497-.205m-2.22 1.504c0-.178.072-.363.213-.504a.706.706 0 0 1 1.206.504.696.696 0 0 1-.206.503.713.713 0 0 1-1.213-.503zm-1.794 2.51a.697.697 0 0 1-.206-.503.705.705 0 1 1 1.411 0 .697.697 0 0 1-.205.504.71.71 0 0 1-1 0m-2.008 2a.71.71 0 0 1 0-1 .707.707 0 0 1 1 0c.142.141.213.318.213.503a.687.687 0 0 1-.213.497.685.685 0 0 1-.496.212.7.7 0 0 1-.504-.212m-2.007 2.007a.709.709 0 1 1 1.007 0 .703.703 0 0 1-1.007 0m-2.008 2.007a.707.707 0 0 1 0-1 .715.715 0 0 1 1.008 0 .71.71 0 0 1 0 1 .695.695 0 0 1-.504.207.695.695 0 0 1-.504-.207m-2 2.008a.692.692 0 0 1-.213-.504c0-.177.071-.36.213-.503a.72.72 0 0 1 1 0 .739.739 0 0 1 .206.503.713.713 0 0 1-.206.504.697.697 0 0 1-.504.206.681.681 0 0 1-.496-.206m-2.008 2.008a.693.693 0 0 1-.212-.504c0-.177.07-.362.212-.504a.72.72 0 0 1 1 0 .708.708 0 0 1 .207.504.686.686 0 0 1-.206.504.714.714 0 0 1-1 0m-2.008 2.007a.696.696 0 0 1-.206-.503.706.706 0 0 1 1.206-.504.704.704 0 0 1 0 1.007.712.712 0 0 1-1 0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.862 7.908a.737.737 0 0 0 .206-.503.707.707 0 0 0-1.206-.504.706.706 0 0 0-.213.504.717.717 0 0 0 .71.71c.184 0 .369-.071.503-.207M9.87 9.916a.74.74 0 0 0 .205-.504.727.727 0 0 0-.205-.503.715.715 0 0 0-1.007 0 .726.726 0 0 0-.206.503c0 .178.07.362.206.504.142.135.319.206.503.206s.362-.07.504-.206m2.007 2a.71.71 0 1 0-1.007 0 .704.704 0 0 0 1.007 0m2.008 2.008a.713.713 0 0 0 0-1 .716.716 0 0 0-1.007 0 .71.71 0 0 0 0 1c.142.142.319.206.503.206a.708.708 0 0 0 .504-.206m2 2.008a.694.694 0 0 0 0-1 .693.693 0 0 0-1 0 .68.68 0 0 0-.206.496c0 .184.064.369.206.504.135.142.32.205.504.205a.68.68 0 0 0 .496-.205m2.22 1.504a.718.718 0 0 0-.212-.504.706.706 0 0 0-1.206.504c0 .184.064.361.206.503a.713.713 0 0 0 1.213-.503zm1.795 2.51a.697.697 0 0 0 .206-.503.705.705 0 1 0-1.411 0c0 .184.063.362.205.504a.71.71 0 0 0 1 0m2.007 2a.71.71 0 0 0 0-1 .707.707 0 0 0-1 0 .704.704 0 0 0-.213.503c0 .177.072.362.214.497a.685.685 0 0 0 .496.212.7.7 0 0 0 .503-.212m2.008 2.007a.709.709 0 1 0-1.008 0 .703.703 0 0 0 1.007 0m2.008 2.007a.707.707 0 0 0 0-1 .715.715 0 0 0-1.007 0 .71.71 0 0 0 0 1c.142.143.32.207.504.207a.695.695 0 0 0 .503-.207m2 2.008a.692.692 0 0 0 .213-.504.716.716 0 0 0-.212-.503.72.72 0 0 0-1 0 .739.739 0 0 0-.206.503c0 .185.07.37.206.504.142.142.32.206.503.206a.681.681 0 0 0 .497-.206m2.007 2.008a.693.693 0 0 0 .213-.504.716.716 0 0 0-.213-.504.72.72 0 0 0-1 0 .708.708 0 0 0-.206.504c0 .184.064.369.206.504a.714.714 0 0 0 1 0m2.008 2.007a.696.696 0 0 0 .206-.503.706.706 0 0 0-1.206-.504.704.704 0 0 0 0 1.007.712.712 0 0 0 1 0M12.634 8.452L8.326 4.143C11.655 1.58 15.334.295 19.363.291c4.008-.004 7.69 1.284 11.045 3.86l-4.316 4.315c-2.06-1.34-4.304-2.01-6.733-2.005-2.46.005-4.7.671-6.725 1.99zM8.387 26.17l-4.305 4.305C1.54 27.142.267 23.463.272 19.435c.003-4.065 1.27-7.745 3.798-11.04L8.373 12.7c-1.35 2.042-2.03 4.286-2.035 6.733-.004 2.415.681 4.66 2.05 6.739zm17.74 4.282l4.291 4.291c-3.288 2.534-6.951 3.817-10.989 3.849-4.077.032-7.782-1.25-11.115-3.84l4.285-4.286c2.064 1.403 4.332 2.1 6.805 2.083 2.435-.017 4.675-.718 6.723-2.097zm4.243-17.756l4.31-4.311c2.592 3.332 3.873 7.037 3.841 11.115-.032 4.021-1.317 7.682-3.854 10.984l-4.306-4.306c1.329-2.02 2.01-4.227 2.04-6.625.029-2.486-.65-4.771-2.031-6.857zM34.843 31.836a2.994 2.994 0 1 1 0 5.989 2.994 2.994 0 0 1 0-5.989M3.986 31.842a2.994 2.994 0 1 1 0 5.989 2.994 2.994 0 0 1 0-5.989M34.871.957a2.994 2.994 0 1 1 0 5.988 2.994 2.994 0 0 1 0-5.988M3.91.904a2.994 2.994 0 1 1 0 5.988 2.994 2.994 0 0 1 0-5.988\"\n}));\n\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 39,\n height: 39,\n viewBox: \"0 0 39 39\",\n className: \"logo show-sm\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.3d758557.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Logo } from '../../../assets/images/logo.svg';\nimport { useContext, useDispatch } from '../../../context';\n\nconst Navbar = () => {\n const { loggedIn, dapp, address } = useContext();\n const dispatch = useDispatch();\n\n const logOut = () => {\n dispatch({ type: 'logout', provider: dapp.provider });\n };\n\n return (\n
\n
\n
\n \n Delegation Manager\n
\n {loggedIn && (\n
\n Wallet address: \n {address}\n \n Close\n \n
\n )}\n
\n
\n );\n};\n\nexport default Navbar;\n","import { QueryResponse } from '@elrondnetwork/erdjs/out/smartcontracts/query';\nimport BigNumber from 'bignumber.js';\nimport denominate from 'components/Denominate/formatters';\nimport { denomination, decimals } from 'config';\nimport { useContext, useDispatch } from 'context';\nimport { emptyAgencyMetaData } from 'context/state';\nimport { contractViews } from 'contracts/ContractViews';\nimport {\n AgencyMetadata,\n ContractOverview,\n NetworkConfig,\n NetworkStake,\n Stats,\n} from 'helpers/contractDataDefinitions';\nimport React from 'react';\nimport { calculateAPR } from './APRCalculation';\nimport Footer from './Footer';\nimport Navbar from './Navbar';\n\nconst Layout = ({ children, page }: { children: React.ReactNode; page: string }) => {\n const dispatch = useDispatch();\n const { dapp, delegationContract } = useContext();\n const {\n getContractConfig,\n getTotalActiveStake,\n getBlsKeys,\n getNumUsers,\n getMetaData,\n } = contractViews;\n\n const getContractOverviewType = (value: QueryResponse) => {\n let initialOwnerFunds = denominate({\n decimals,\n denomination,\n input: value.returnData[3].asBigInt.toFixed(),\n showLastNonZeroDecimal: false,\n });\n return new ContractOverview(\n value.returnData[0].asHex.toString(),\n (value.returnData[1].asNumber / 100).toString(),\n value.returnData[2].asBigInt.toFixed(),\n initialOwnerFunds,\n value.returnData[4]?.asString,\n value.returnData[5].asBool,\n value.returnData[6].asBool,\n value.returnData[7]?.asString,\n value.returnData[8].asBool,\n value.returnData[9]?.asNumber * 6\n );\n };\n\n const getAgencyMetaDataType = (value: QueryResponse) => {\n if (value && value.returnData && value.returnData.length === 0) {\n return emptyAgencyMetaData;\n }\n return new AgencyMetadata(\n value.returnData[0]?.asString,\n value.returnData[1]?.asString,\n value.returnData[2]?.asString\n );\n };\n React.useEffect(() => {\n Promise.all([\n getMetaData(dapp, delegationContract),\n getNumUsers(dapp, delegationContract),\n getContractConfig(dapp, delegationContract),\n getTotalActiveStake(dapp, delegationContract),\n getBlsKeys(dapp, delegationContract),\n dapp.apiProvider.getNetworkStats(),\n dapp.apiProvider.getNetworkStake(),\n dapp.proxy.getNetworkConfig(),\n dapp.proxy.getNetworkStatus(),\n ])\n .then(\n ([\n metaData,\n numUsers,\n contractOverview,\n {\n returnData: [activeStake],\n },\n { returnData: blsKeys },\n networkStats,\n networkStake,\n networkConfig,\n networkStatus,\n ]) => {\n dispatch({\n type: 'setNumUsers',\n numUsers: numUsers.returnData[0].asNumber,\n });\n dispatch({\n type: 'setContractOverview',\n contractOverview: getContractOverviewType(contractOverview),\n });\n dispatch({\n type: 'setAgencyMetaData',\n agencyMetaData: getAgencyMetaDataType(metaData),\n });\n dispatch({\n type: 'setTotalActiveStake',\n totalActiveStake: activeStake.asBigInt.toFixed(),\n });\n dispatch({\n type: 'setNumberOfActiveNodes',\n numberOfActiveNodes: blsKeys.filter(key => key.asString === 'staked').length.toString(),\n });\n dispatch({\n type: 'setNetworkConfig',\n networkConfig: new NetworkConfig(\n networkConfig.TopUpFactor,\n networkConfig.RoundDuration,\n networkConfig.RoundsPerEpoch,\n networkStatus.RoundsPassedInCurrentEpoch,\n new BigNumber(networkConfig.TopUpRewardsGradientPoint)\n ),\n });\n dispatch({\n type: 'setAprPercentage',\n aprPercentage: calculateAPR({\n stats: new Stats(networkStats.Epoch),\n networkConfig: new NetworkConfig(\n networkConfig.TopUpFactor,\n networkConfig.RoundDuration,\n networkConfig.RoundsPerEpoch,\n networkStatus.RoundsPassedInCurrentEpoch,\n new BigNumber(networkConfig.TopUpRewardsGradientPoint)\n ),\n networkStake: new NetworkStake(\n networkStake.TotalValidators,\n networkStake.ActiveValidators,\n networkStake.QueueSize,\n new BigNumber(networkStake.TotalStaked)\n ),\n blsKeys: blsKeys,\n totalActiveStake: activeStake.asBigInt.toFixed(),\n }),\n });\n }\n )\n .catch(e => {\n console.log('To do ', e);\n });\n }, []);\n\n return (\n
\n {page !== 'home' && }\n
{children}
\n
\n
\n );\n};\n\nexport default Layout;\n","import React from 'react';\nimport { useContext } from '../../context';\nimport denominate from './formatters';\n\ninterface DenominateType {\n value: string;\n showLastNonZeroDecimal?: boolean;\n showErd?: boolean;\n decimals?: number;\n}\n\nconst Denominate = ({\n value,\n showLastNonZeroDecimal = false,\n showErd = true,\n decimals,\n}: DenominateType) => {\n const { denomination, decimals: configDecimals, egldLabel } = useContext();\n\n decimals = decimals !== undefined ? decimals : configDecimals;\n\n const denominatedValue = denominate({\n input: value,\n denomination,\n decimals,\n showLastNonZeroDecimal,\n });\n\n const valueParts = denominatedValue.split('.');\n const hasNoDecimals = valueParts.length === 1;\n const isNotZero = denominatedValue !== '0';\n\n if (decimals > 0 && hasNoDecimals && isNotZero) {\n let zeros = '';\n\n for (let i = 1; i <= decimals; i++) {\n zeros = zeros + '0';\n }\n\n valueParts.push(zeros);\n }\n\n return (\n \n {valueParts[0]}\n {valueParts.length > 1 && .{valueParts[1]}}\n {showErd &&  {egldLabel}}\n \n );\n};\n\nexport default Denominate;\n","import React from 'react';\nimport { ErrorMessage, Formik } from 'formik';\nimport BigNumber from 'bignumber.js';\nimport { object, string } from 'yup';\nimport { Modal } from 'react-bootstrap';\nimport { useContext } from 'context';\nimport Denominate from 'components/Denominate';\nimport { entireBalance } from 'helpers';\nimport { denomination, decimals } from 'config';\n\ninterface DelegateModalType {\n show: boolean;\n balance: string;\n handleClose: () => void;\n handleContinue: (value: string) => void;\n}\n\nconst DelegateModal = ({ show, balance, handleClose, handleContinue }: DelegateModalType) => {\n const { egldLabel, contractOverview, totalActiveStake } = useContext();\n\n const available = entireBalance({\n balance: balance,\n gasPrice: '12000000',\n gasLimit: '12000000',\n denomination,\n decimals,\n });\n\n const isFullDelegationCapContract = () => {\n const bnTotalActiveStake = new BigNumber(totalActiveStake);\n const bnMaxDelegationCap = new BigNumber(contractOverview.maxDelegationCap);\n return (\n bnTotalActiveStake.comparedTo(bnMaxDelegationCap) >= 0 &&\n contractOverview.maxDelegationCap !== String(0)\n );\n };\n\n return (\n \n
\n
\n

\n Delegate now\n

\n {isFullDelegationCapContract() ? (\n

\n The maximum delegation cap was reached you can not delegate more\n

\n ) : (\n

{`Select the amount of ${egldLabel} you want to delegate.`}

\n )}\n {\n handleContinue(values.amount);\n }}\n validationSchema={object().shape({\n amount: string()\n .required('Required')\n .test('minimum', `Minimum 1 ${egldLabel}`, value => {\n const bnAmount = new BigNumber(value !== undefined ? value : '');\n return bnAmount.comparedTo(1) >= 0;\n })\n .test('maximum', `Maximum ${available} ${egldLabel}`, value => {\n const bnAmount = new BigNumber(value !== undefined ? value : '');\n const bnAvailable = new BigNumber(available);\n return bnAmount.comparedTo(bnAvailable) <= 0;\n }),\n })}\n >\n {props => {\n const {\n handleSubmit,\n values,\n handleBlur,\n handleChange,\n setFieldValue,\n errors,\n touched,\n } = props;\n\n const getEntireBalance = (e: React.MouseEvent) => {\n e.preventDefault();\n if (available !== undefined) {\n setFieldValue('amount', available);\n }\n };\n return (\n
\n {!isFullDelegationCapContract() && (\n
\n \n
\n \n {values.amount !== available && available !== '0' && (\n \n \n Max\n \n \n )}\n \n
\n {!(errors.amount && touched.amount) && (\n \n Available: \n \n )}\n
\n )}\n
\n {!isFullDelegationCapContract() && (\n \n Continue\n \n )}\n \n
\n
\n );\n }}\n \n
\n
\n
\n );\n};\n\nexport default DelegateModal;\n","import React, { useEffect, useState } from 'react';\nimport { Address } from '@elrondnetwork/erdjs/out';\nimport { useContext } from 'context';\nimport DelegateModal from './DelegateModal';\nimport { useDelegation } from 'helpers';\n\nconst DelegateAction = () => {\n const { dapp, address } = useContext();\n const { delegation } = useDelegation();\n const [balance, setBalance] = useState('');\n const [showDelegateModal, setShowDelegateModal] = useState(false);\n useEffect(() => {\n dapp.proxy.getAccount(new Address(address)).then(value => setBalance(value.balance.toString()));\n }, [address, dapp.proxy]);\n\n const handleDelegate = (value: string) => {\n delegation\n .sendTransaction(value, 'delegate')\n .then()\n .catch(e => {\n console.error('handleDelegate ', e);\n });\n };\n return (\n
\n {\n setShowDelegateModal(true);\n }}\n className=\"btn btn-primary mb-3\"\n >\n Delegate\n \n {\n setShowDelegateModal(false);\n }}\n handleContinue={handleDelegate}\n />\n
\n );\n};\n\nexport default DelegateAction;\n","import React from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { useContext } from 'context';\nimport BigNumber from 'bignumber.js';\nimport { ErrorMessage, Formik } from 'formik';\nimport { entireBalance } from 'helpers';\nimport Denominate from 'components/Denominate';\nimport { denomination, decimals } from 'config';\nimport { object, string } from 'yup';\nimport { ActionModalType } from 'helpers/types';\n\nconst UndelegateModal = ({\n show,\n title,\n balance,\n description,\n handleClose,\n handleContinue,\n}: ActionModalType) => {\n const { egldLabel } = useContext();\n\n const available = entireBalance({\n balance: balance as string,\n gasPrice: '0',\n gasLimit: '0',\n denomination,\n decimals,\n });\n\n const UndelegateSchema = object().shape({\n amount: string()\n .required('Required')\n .test('minimum', `Minimum 1 ${egldLabel}`, value => {\n const bnAmount = new BigNumber(value !== undefined ? value : '');\n return bnAmount.comparedTo(1) >= 0;\n })\n .test('dustLeft', `You can not keep under 1 ${egldLabel}. Use the Max option.`, value => {\n const bnAmount = new BigNumber(value !== undefined ? value : '');\n const bnAvailable = new BigNumber(available);\n return (\n bnAvailable.minus(bnAmount).comparedTo(1) >= 0 || bnAvailable.comparedTo(bnAmount) == 0\n );\n }),\n });\n return (\n \n
\n
\n

\n {title}\n

\n

{description}

\n {\n handleContinue(values.amount.toString());\n }}\n validationSchema={UndelegateSchema}\n >\n {props => {\n const {\n handleSubmit,\n values,\n handleBlur,\n handleChange,\n setFieldValue,\n errors,\n touched,\n } = props;\n\n const getEntireBalance = (e: React.MouseEvent) => {\n e.preventDefault();\n if (available !== undefined) {\n setFieldValue('amount', available);\n }\n };\n\n return (\n
\n
\n \n
\n \n {values.amount !== available && available !== '0' && (\n \n \n Max\n \n \n )}\n \n
\n {!(errors.amount && touched.amount) && (\n \n Available: \n \n )}\n
\n
\n \n Continue\n \n \n
\n
\n );\n }}\n \n
\n
\n
\n );\n};\n\nexport default UndelegateModal;\n","import { useDelegation } from 'helpers';\nimport React, { useState } from 'react';\nimport { useContext } from 'context';\nimport { nominateValToHex } from 'helpers/nominate';\nimport UndelegateModal from './UndelegateModal';\n\ninterface UndelegateModalType {\n balance: string;\n}\n\nconst UndelegateAction = ({balance}: UndelegateModalType) => {\n const { egldLabel } = useContext();\n const { delegation } = useDelegation();\n const [showModal, setShowModal] = useState(false);\n\n const handleUndelegate = (value: string) => {\n delegation.sendTransaction('0', 'unDelegate', nominateValToHex(value)).then();\n };\n return (\n
\n \n {\n setShowModal(false);\n }}\n handleContinue={handleUndelegate}\n />\n
\n );\n};\n\nexport default UndelegateAction;\n","import React from 'react';\nimport { Modal } from 'react-bootstrap';\nimport ViewStatAction from 'components/ViewStatAction';\nimport { useDelegation } from 'helpers';\nimport { useContext } from 'context';\nimport BigNumber from 'bignumber.js';\nexport interface ClaimRewardsModalType {\n show: boolean;\n title: string;\n description: string;\n handleClose: () => void;\n}\nconst ClaimRewardsModal = ({ show, title, description, handleClose }: ClaimRewardsModalType) => {\n const { delegation } = useDelegation();\n const { totalActiveStake, contractOverview } = useContext();\n const handleClaimRewards = () => {\n delegation\n .sendTransaction('0', 'claimRewards')\n .then()\n .catch(e => console.error('handleClaimRewards error', e));\n };\n\n const isRedelegateEnable = () => {\n const bnTotalActiveStake = new BigNumber(totalActiveStake);\n const bnMaxDelegationCap = new BigNumber(contractOverview.maxDelegationCap);\n if (\n bnTotalActiveStake.comparedTo(bnMaxDelegationCap) >= 0 &&\n contractOverview.reDelegationCap === 'true'\n ) {\n return false;\n }\n return true;\n };\n\n const handleRedelegateRewards = () => {\n delegation\n .sendTransaction('0', 'reDelegateRewards')\n .then()\n .catch(e => console.error('handleRedelegateRewards error', e));\n };\n return (\n \n
\n
\n

\n {title}\n

\n

{description}

\n
\n \n {isRedelegateEnable() && (\n \n )}\n
\n \n
\n
\n
\n );\n};\n\nexport default ClaimRewardsModal;\n","import React, { useState } from 'react';\nimport ClaimRewardsModal from './ClaimRewardsModal';\n\nconst ClaimRewardsAction = () => {\n const [showClaimRewardsModal, setShowClaimRewardsModal] = useState(false);\n\n return (\n
\n {\n setShowClaimRewardsModal(true);\n }}\n className=\"btn btn-primary mt-2\"\n >\n Claim Rewards\n \n {\n setShowClaimRewardsModal(false);\n }}\n />\n
\n );\n};\n\nexport default ClaimRewardsAction;\n","import * as React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nconst State = ({\n icon,\n iconClass,\n title,\n description,\n action,\n}: {\n icon?: any;\n iconClass?: string;\n title?: string;\n description?: string | React.ReactNode;\n action?: React.ReactNode;\n}) => (\n
\n {icon && }\n {title &&

{title}

}\n {description &&
{description}
}\n {action && <>{action}}\n
\n);\n\nexport default State;\n","import * as React from 'react';\nimport { useContext, useDispatch } from 'context';\nimport denominate from 'components/Denominate/formatters';\nimport DelegateAction from '../Actions/DelegateAction';\nimport UndelegateAction from '../Actions/UndelegateAction';\nimport { contractViews } from 'contracts/ContractViews';\nimport ClaimRewardsAction from '../Actions/ClaimRewardsAction';\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\nimport State from 'components/State';\nimport { denomination, decimals } from 'config';\n\nconst MyDelegation = () => {\n const { dapp, address, egldLabel, delegationContract, loading } = useContext();\n const dispatch = useDispatch();\n const { getClaimableRewards, getUserActiveStake } = contractViews;\n const [userActiveStake, setUserActiveStake] = React.useState('0');\n const [userActiveNominatedStake, setUserActiveNominatedStake] = React.useState('0');\n const [claimableRewards, setClaimableRewards] = React.useState('0');\n const [displayRewards, setDisplayRewards] = React.useState(false);\n const [displayUndelegate, setDisplayUndelegate] = React.useState(false);\n\n const getAllData = () => {\n dispatch({ type: 'loading', loading: true });\n getClaimableRewards(dapp, address, delegationContract)\n .then(value => {\n if (value.returnData.length > 0 && value.returnData[0]?.asNumber !== 0) {\n setDisplayRewards(true);\n }\n setClaimableRewards(\n denominate({\n denomination,\n decimals,\n input: value.returnData[0]?.asBigInt.toFixed(),\n showLastNonZeroDecimal: false,\n }) || ''\n );\n })\n .catch(e => console.error('getClaimableRewards error', e));\n getUserActiveStake(dapp, address, delegationContract)\n .then(value => {\n setUserActiveStake(\n denominate({\n denomination,\n decimals,\n input: value.returnData[0]?.asBigInt.toFixed(),\n showLastNonZeroDecimal: false,\n }) || ''\n );\n setUserActiveNominatedStake(value.returnData[0]?.asBigInt.toFixed());\n if (value.returnData.length > 0 && value.returnData[0]?.asNumber !== 0) {\n setDisplayUndelegate(true);\n }\n\n dispatch({ type: 'loading', loading: false });\n })\n .catch(e => {\n console.error('getUserActiveStake error', e);\n dispatch({\n type: 'loading',\n loading: false,\n });\n });\n };\n\n React.useEffect(getAllData, []);\n\n return (\n <>\n {loading ? (\n \n ) : (\n
\n
\n
\n

My Stake

\n {userActiveStake !== String(0) && (\n
\n \n {displayUndelegate && }\n
\n )}\n
\n
\n {userActiveStake === String(0) ? (\n }\n />\n ) : (\n
\n

Active Delegation

\n

\n {userActiveStake} {egldLabel}\n

\n
\n )}\n
\n

\n {claimableRewards} {egldLabel} Claimable rewards\n

\n
\n {displayRewards ? : null}\n
\n
\n
\n )}\n \n );\n};\n\nexport default MyDelegation;\n","import React, { useEffect } from 'react';\nimport moment from 'moment';\nimport { useDelegation } from 'helpers';\nimport { useContext } from 'context';\nimport { UndelegatedValueType } from './UndelegatedValueType';\n\nconst UndelegatedValueRow = ({\n undelegatedValue: value,\n}: {\n undelegatedValue: UndelegatedValueType;\n}) => {\n const { delegation } = useDelegation();\n const [isDisabled, setIsDisabled] = React.useState(true);\n const { egldLabel } = useContext();\n const [counter, setCounter] = React.useState(value.timeLeft);\n\n const handleWithdraw = () => {\n delegation\n .sendTransaction('0', 'withdraw')\n .then()\n .catch(e => console.error('handleWithdraw error', e));\n };\n\n useEffect(() => {\n counter > 0 && setTimeout(() => setCounter(counter - 1), 1000);\n counter === 0 && setIsDisabled(false);\n }, [counter]);\n\n const getTimeLeft = () => {\n if (counter === 0) setCounter(value.timeLeft);\n const timeLeftInMiliseconds = moment.duration(counter, 'seconds').asMilliseconds();\n return moment.utc(timeLeftInMiliseconds).format('HH:mm:ss');\n };\n return (\n \n \n
\n {value.value} {egldLabel}\n
\n \n \n
\n {value.timeLeft > 0 ? (\n \n {getTimeLeft()} left\n \n ) : (\n Completed\n )}\n
\n \n \n \n Withdraw\n \n \n \n );\n};\nexport default UndelegatedValueRow;\n","export class UndelegatedValueType {\n value: string;\n timeLeft: number;\n public constructor(value: string, timeLeft: number) {\n this.value = value;\n this.timeLeft = timeLeft;\n }\n}\n","import { QueryResponse } from '@elrondnetwork/erdjs/out/smartcontracts/query';\nimport * as React from 'react';\nimport { useContext } from 'context';\nimport { contractViews } from 'contracts/ContractViews';\nimport denominate from 'components/Denominate/formatters';\nimport UndelegatedValueRow from './UndelegatedValueRow';\nimport { UndelegatedValueType } from './UndelegatedValueType';\n\nconst UndelegatedListView = () => {\n const { dapp, address, denomination, decimals, delegationContract, networkConfig } = useContext();\n const { getUserUnDelegatedList } = contractViews;\n\n const [userUnstakeValue, setUserUnstakedValue] = React.useState(Array());\n\n const denomintateValue = (value: string): string => {\n return denominate({ denomination, decimals, input: value, showLastNonZeroDecimal: false });\n };\n\n const getTimeLeft = (value: QueryResponse, index: number, timeLeft: number) => {\n let roundsRemainingInEpoch =\n networkConfig.roundsPerEpoch - networkConfig.roundsPassedInCurrentEpoch;\n let roundEpochComplete = 0;\n let epochsChangesRemaining = value.returnData[index + 1].asNumber;\n if (epochsChangesRemaining > 1) {\n roundEpochComplete = (epochsChangesRemaining - 1) * networkConfig.roundsPerEpoch;\n } else {\n roundEpochComplete = 0;\n }\n\n let totalRounds = roundsRemainingInEpoch + roundEpochComplete;\n timeLeft = (totalRounds * networkConfig.roundDuration) / 1000;\n return timeLeft;\n };\n\n const mapUndelegetedValueType = (\n value: QueryResponse,\n index: number,\n undelegatedList: UndelegatedValueType[]\n ) => {\n let timeLeft = 0;\n if (value.returnData[index + 1].asString !== '') {\n timeLeft = getTimeLeft(value, index, timeLeft);\n }\n const element = new UndelegatedValueType(\n denomintateValue(value.returnData[index].asBigInt.toFixed()),\n timeLeft\n );\n undelegatedList.push(element);\n return index;\n };\n\n const groupUndelegateValuesForTimeLeftZero = (undelegatedList: UndelegatedValueType[]) => {\n let arrayWithdraw = undelegatedList.filter(x => x.timeLeft !== 0);\n const withdrawValue = undelegatedList\n .filter(x => x.timeLeft === 0)\n .reduce((a, b) => a + (parseInt(b.value.replace(/,/g, '')) || 0), 0);\n if (withdrawValue !== 0) {\n arrayWithdraw.push(new UndelegatedValueType(withdrawValue.toString(), 0));\n }\n return arrayWithdraw;\n };\n\n const getUserUnDelegated = () => {\n getUserUnDelegatedList(dapp, address, delegationContract)\n .then(value => {\n let undelegatedList = new Array();\n for (let index = 0; index < value.returnData.length; index++) {\n mapUndelegetedValueType(value, index, undelegatedList);\n index++;\n }\n let arrayWithdraw = groupUndelegateValuesForTimeLeftZero(undelegatedList);\n setUserUnstakedValue(arrayWithdraw.sort((a, b) => a.timeLeft - b.timeLeft));\n })\n .catch(e => console.error('getUserUnDelegatedList error', e));\n };\n\n React.useEffect(getUserUnDelegated, [networkConfig]);\n\n return (\n <>\n {userUnstakeValue.length > 0 && (\n
\n
\n
\n

Pending Withdrawals

\n
\n
\n \n \n \n \n \n \n \n \n \n {userUnstakeValue.map((undelegatedValue, i) => (\n \n ))}\n \n
Undelegated AmountWait TimeAction
\n
\n
\n
\n )}\n \n );\n};\n\nexport default UndelegatedListView;\n","import SVG from 'react-inlinesvg';\nimport { StatCardType } from 'helpers/types';\nimport React from 'react';\nimport { faInfoCircle } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nconst StatCard = ({\n title = '',\n value = '0',\n valueUnit = '',\n color = '',\n svg = '',\n percentage = '',\n tooltipText = '',\n children = null,\n}: StatCardType) => {\n return (\n
\n
\n
\n \n
\n
{children}
\n
\n {title}\n

\n {value} {valueUnit}\n

\n \n {percentage}\n {tooltipText !== '' && (\n (\n \n {tooltipText}\n \n )}\n >\n \n \n )}\n \n
\n );\n};\n\nexport default StatCard;\n","import React from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { ErrorMessage, Formik } from 'formik';\nimport { object, string } from 'yup';\n\nconst SetPercentageFeeSchema = object().shape({\n amount: string()\n .required('Required')\n .test('minimum', 'Minimum fee percentage is 0.01', value => {\n const feeAmount = parseFloat(value !== undefined ? value : '');\n return feeAmount > 0;\n })\n .test('minimum', 'Maximum fee percentage is 100', value => {\n const feeAmount = parseFloat(value !== undefined ? value : '');\n return feeAmount <= 100;\n }),\n});\n\ninterface SetPercentageFeeModalType {\n show: boolean;\n handleClose: () => void;\n handleContinue: (value: string) => void;\n}\n\nconst SetPercentageFeeModal = ({\n show,\n handleClose,\n handleContinue,\n}: SetPercentageFeeModalType) => {\n return (\n \n
\n
\n

\n Change service fee\n

\n

\n Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt\n mollit anim id est laborum.\n

\n {\n handleContinue(values.amount);\n }}\n validationSchema={SetPercentageFeeSchema}\n >\n {props => {\n const { handleSubmit, values, handleBlur, handleChange, errors, touched } = props;\n\n return (\n
\n
\n \n \n {!(errors.amount && touched.amount) && (\n For example: 12.30\n )}\n \n
\n
\n \n Continue\n \n \n
\n
\n );\n }}\n \n
\n
\n
\n );\n};\n\nexport default SetPercentageFeeModal;\n","import { useDelegation } from 'helpers';\nimport React, { useState } from 'react';\nimport SetPercentageFeeModal from './SetPercentageFeeModal';\n\nconst SetPercentageFeeAction = () => {\n const { delegation } = useDelegation();\n const [showUpdateFeeModal, setShowUpdateFeeModal] = useState(false);\n\n const nominateVal = (value: string) => {\n let perc = (parseFloat(value) * 100).toString(16);\n if (perc.length % 2 !== 0) {\n perc = '0' + perc;\n }\n return perc;\n };\n\n const handleUpdateFee = (value: string) => {\n delegation.sendTransaction('0', 'changeServiceFee', nominateVal(value)).then();\n };\n\n return (\n
\n setShowUpdateFeeModal(true)}\n className=\"btn btn-primary text-white btn-sm mr-n1\"\n >\n Change\n \n {\n setShowUpdateFeeModal(false);\n }}\n handleContinue={handleUpdateFee}\n />\n
\n );\n};\n\nexport default SetPercentageFeeAction;\n","import React from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { useContext } from 'context';\nimport { ErrorMessage, Formik } from 'formik';\nimport BigNumber from 'bignumber.js';\nimport { object, number } from 'yup';\nimport denominate from 'components/Denominate/formatters';\nimport { ActionModalType } from 'helpers/types';\nimport { denomination, decimals } from 'config';\n\nconst DelegationCapModal = ({\n show,\n title,\n description,\n handleClose,\n handleContinue,\n}: ActionModalType) => {\n const { egldLabel, totalActiveStake } = useContext();\n\n return (\n \n
\n
\n

\n {title}\n

\n

\n The delegation cap is the maximum amount of {egldLabel} your agency can stake from delegators.\n

\n {\n handleContinue(values.amount.toString());\n }}\n validationSchema={object().shape({\n amount: number()\n .required('Required')\n .test(\n 'minimum',\n `Minimum ${denominate({\n input: totalActiveStake,\n denomination,\n decimals,\n showLastNonZeroDecimal: false,\n addCommas: false,\n })} ${egldLabel} or 0 ${egldLabel}`,\n (value) => {\n const bnAmount = new BigNumber(value !== undefined ? value : '');\n const comparationResult = bnAmount.comparedTo(\n denominate({\n input: totalActiveStake,\n denomination,\n decimals,\n showLastNonZeroDecimal: false,\n addCommas: false,\n })\n );\n return comparationResult >= 0 || bnAmount.comparedTo(0) == 0;\n }\n ),\n })}\n >\n {(props) => {\n const { handleSubmit, values, handleBlur, handleChange, errors, touched } = props;\n return (\n
\n
\n \n \n \n
\n
\n \n Continue\n \n \n
\n
\n );\n }}\n \n
\n
\n
\n );\n};\n\nexport default DelegationCapModal;\n","import BigNumber from 'bignumber.js';\nimport { useDelegation } from 'helpers';\nimport React, { useState } from 'react';\nimport nominate from 'helpers/nominate';\nimport DelegationCapModal from './DelegationCapModal';\n\nconst UpdateDelegationCapAction = () => {\n const { delegation } = useDelegation();\n const [showDelegationCapModal, setShowDelegationCapModal] = useState(false);\n\n const handleUpdateDelegationCap = (value: string) => {\n const hexCap = nominateValToHex(value);\n delegation.sendTransaction('0', 'modifyTotalDelegationCap', hexCap).then();\n };\n\n const nominateValToHex = (value: string) => {\n let val = value && value.length > 0 ? new BigNumber(nominate(value)).toString(16) : '0';\n\n if (val.length % 2 !== 0) {\n val = '0' + val;\n }\n return val;\n };\n\n return (\n
\n setShowDelegationCapModal(true)}\n className=\"btn btn-primary btn-sm text-white mr-n1\"\n >\n Change\n \n {\n setShowDelegationCapModal(false);\n }}\n handleContinue={handleUpdateDelegationCap}\n />\n
\n );\n};\n\nexport default UpdateDelegationCapAction;\n","import React, { useState } from 'react';\nimport AutomaticActivationModal from './AutomaticActivationModal';\n\nconst AutomaticActivationAction = ({ automaticFlag }: { automaticFlag: string }) => {\n const [showAutomaticActivationModal, setShowAutomaticActivationModal] = useState(false);\n\n return (\n
\n setShowAutomaticActivationModal(true)}\n className=\"btn btn-primary text-white btn-sm mr-n1\"\n >\n Change\n \n {\n setShowAutomaticActivationModal(false);\n }}\n value={automaticFlag}\n />\n
\n );\n};\n\nexport default AutomaticActivationAction;\n","import React, { useState } from 'react';\nimport ReDelegateCapActivationModal from './ReDelegateCapActivationModal';\n\nconst ReDelegateCapActivationAction = ({ automaticFlag }: { automaticFlag: string }) => {\n const [showReDelegationCapActivationModal, setShowReDelegationCapActivationModal] = useState(false);\n\n return (\n
\n setShowReDelegationCapActivationModal(true)}\n className=\"btn btn-primary text-white btn-sm mr-n1\"\n >\n Change\n \n {\n setShowReDelegationCapActivationModal(false);\n }}\n value={automaticFlag}\n />\n
\n );\n};\n\nexport default ReDelegateCapActivationAction;\n","import * as React from 'react';\nimport { decimals, denomination } from 'config';\nimport { useContext } from 'context';\nimport denominate from 'components/Denominate/formatters';\nimport StatCard from 'components/StatCard';\nimport { Address, NetworkStake } from '@elrondnetwork/erdjs/out';\nimport { useState } from 'react';\n\nimport SetPercentageFeeAction from './SetPercentageFeeAction';\nimport UpdateDelegationCapAction from './UpdateDelegationCapAction';\nimport AutomaticActivationAction from './AutomaticActivationAction';\nimport ReDelegateCapActivationAction from './ReDelegateCapActivationAction';\n\nconst Views = () => {\n const {\n dapp,\n egldLabel,\n totalActiveStake,\n numberOfActiveNodes,\n address,\n contractOverview,\n aprPercentage,\n numUsers,\n } = useContext();\n const [networkStake, setNetworkStake] = useState(new NetworkStake());\n\n const getPercentage = (amountOutOfTotal: string, total: string) => {\n let percentage =\n (parseInt(amountOutOfTotal.replace(/,/g, '')) / parseInt(total.replace(/,/g, ''))) * 100;\n if (percentage < 1) {\n return '<1';\n }\n return percentage ? percentage.toFixed(2) : '...';\n };\n\n const isAdmin = () => {\n let loginAddress = new Address(address).hex();\n return loginAddress.localeCompare(contractOverview.ownerAddress) === 0;\n };\n\n const getNetworkStake = () => {\n dapp.apiProvider\n .getNetworkStake()\n .then(value => {\n setNetworkStake(value);\n })\n .catch(e => {\n console.error('getTotalStake error ', e);\n });\n };\n\n React.useEffect(() => {\n getNetworkStake();\n }, []);\n\n return (\n
\n \n \n \n \n \n {location.pathname === '/owner' && }\n \n {isAdmin() && location.pathname === '/owner' ? (\n \n \n \n ) : (\n denominate({\n decimals,\n denomination,\n input: contractOverview.maxDelegationCap,\n showLastNonZeroDecimal: false,\n }) !== '0' &&\n denominate({\n decimals,\n denomination,\n input: contractOverview.maxDelegationCap,\n showLastNonZeroDecimal: false,\n }) !== '' && (\n \n )\n )}\n\n {isAdmin() && location.pathname === '/owner' && (\n \n \n \n )}\n {isAdmin() && location.pathname === '/owner' && (\n \n \n \n )}\n
\n );\n};\n\nexport default Views;\n","import React from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport { Address } from '@elrondnetwork/erdjs/out';\nimport { useContext } from 'context';\nimport SetAgencyMetaDataModal from './SetAgencyMetaDataModal';\n\nconst Header = () => {\n const { pathname } = useLocation();\n const { address, delegationContract, contractOverview } = useContext();\n\n const isAdmin = () => {\n let loginAddress = new Address(address).hex();\n return loginAddress.localeCompare(contractOverview.ownerAddress) === 0;\n };\n\n return (\n
\n
\n

Contract Address

\n {delegationContract}\n
\n
\n {isAdmin() && pathname !== '/owner' ? (\n \n Admin\n \n ) : null}\n {pathname !== '/dashboard' ? (\n \n Dashboard\n \n ) : null}\n {isAdmin() && pathname == '/owner' ? (\n \n ) : null}\n
\n
\n );\n};\n\nexport default Header;\n","import React from 'react';\nimport Views from './Cards';\nimport Header from './Header';\n\nconst Overview = () => {\n return (\n <>\n
\n \n \n );\n};\n\nexport default Overview;\n","import React from 'react';\nimport { useContext } from 'context';\nimport Delegation from './Delegation';\nimport PendingUndelegated from './PendingUndelegated';\nimport { Redirect } from 'react-router-dom';\nimport Overview from 'components/Overview';\nimport State from 'components/State';\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons';\n\nconst Dashboard = () => {\n const { loggedIn, networkConfig } = useContext();\n\n if (!loggedIn) {\n return ;\n }\n return (\n
\n
\n \n {networkConfig.roundDuration === -1 ? (\n \n ) : (\n
\n \n \n
\n )}\n
\n
\n );\n};\n\nexport default Dashboard;\n","import React from 'react';\nimport { HWProvider, ProxyProvider } from '@elrondnetwork/erdjs';\nimport { useDispatch } from 'context';\n\nconst LedgerLogin = () => {\n const dispatch = useDispatch();\n\n const handleOnClick = () => {\n const httpProvider = new ProxyProvider('');\n const hwWalletP = new HWProvider(httpProvider);\n\n dispatch({ type: 'loading', loading: true });\n hwWalletP\n .init()\n .then((success: any) => {\n if (!success) {\n dispatch({ type: 'loading', loading: false });\n console.warn('could not initialise ledger app, make sure Elrond app is open');\n return;\n }\n\n hwWalletP\n .login()\n .then(address => {\n // Set this provider as default inside the app\n dispatch({ type: 'setProvider', provider: hwWalletP });\n dispatch({ type: 'login', address });\n })\n .catch((err: any) => {\n dispatch({ type: 'loading', loading: false });\n console.warn(err);\n });\n })\n .catch((err: any) => {\n dispatch({ type: 'loading', loading: false });\n console.warn('could not initialise ledger app, make sure Elrond app is open', err);\n });\n };\n return (\n \n );\n};\n\nexport default LedgerLogin;\n","import { Address } from '@elrondnetwork/erdjs/out';\nimport React, { useEffect } from 'react';\nimport { useContext, useDispatch } from 'context';\nimport { getItem, removeItem, setItem } from 'storage/session';\n\nconst WalletLogin = () => {\n const dispatch = useDispatch();\n const { dapp } = useContext();\n const handleOnClick = () => {\n dispatch({ type: 'loading', loading: true });\n dapp.provider\n .init()\n .then(initialised => {\n if (initialised) {\n // Wallet provider will redirect, we can set a session information so we know when we are getting back\n // that we initiated a wallet provider login\n setItem('wallet_login', {}, 60); // Set a 60s session only\n dapp.provider.login();\n } else {\n dispatch({ type: 'loading', loading: true });\n console.warn('Something went wrong trying to redirect to wallet login..');\n }\n })\n .catch(err => {\n dispatch({ type: 'loading', loading: false });\n console.warn(err);\n });\n };\n\n // The wallet login component can check for the session and the address get param\n useEffect(() => {\n if (getItem('wallet_login')) {\n dispatch({ type: 'loading', loading: true });\n dapp.provider.init().then(initialised => {\n if (!initialised) {\n dispatch({ type: 'loading', loading: false });\n return;\n }\n\n dapp.provider\n .getAddress()\n .then(address => {\n removeItem('wallet_login');\n dispatch({ type: 'login', address });\n })\n .then(value =>\n dapp.proxy\n .getAccount(new Address(getItem('address')))\n .then(account =>\n dispatch({ type: 'setBalance', balance: account.balance.toString() })\n )\n )\n .catch(err => {\n dispatch({ type: 'loading', loading: false });\n });\n });\n }\n }, [dapp.provider, dapp.proxy, dispatch]);\n\n return (\n \n );\n};\n\nexport default WalletLogin;\n","import React from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { faBan, faCircleNotch } from '@fortawesome/free-solid-svg-icons';\nimport { ReactComponent as Logo } from '../../assets/images/logo.svg';\nimport State from 'components/State';\nimport { useContext } from 'context';\nimport LedgerLogin from './Login/Ledger';\nimport WalletLogin from './Login/Wallet';\n\nconst Home = () => {\n const { loading, error, loggedIn, egldLabel } = useContext();\n\n const ref = React.useRef(null);\n\n return (\n
\n {error ? (\n \n ) : loggedIn ? (\n \n ) : loading ? (\n \n ) : (\n
\n
\n
\n \n

Elrond Delegation Manager

\n

\n Delegate Elrond ({egldLabel}) and earn up to 25% APY!\n

\n

Please select your login method:

\n
\n \n \n
\n
\n
\n
\n )}\n
\n );\n};\n\nexport default Home;\n","import React, { useEffect, memo } from 'react';\n\nconst withPageTitle = (title: string, Component: React.ComponentType) => () => {\n const Memoized = memo(Component);\n\n useEffect(() => {\n document.title = title;\n }, []);\n return ;\n};\n\nexport default withPageTitle;\n","export const nodeActions = {\n unJail: { label: 'Unjail', transaction: 'unJail' },\n unStake: { label: 'Unstake', transaction: 'unStake' },\n reStake: { label: 'ReStake', transaction: 'reSreStakeUnStakedNodestake' },\n unBond: { label: 'Unbond', transaction: 'unBond' },\n stake: { label: 'Stake', transaction: 'stake' },\n remove: { label: 'Remove', transaction: 'remove' },\n};\n\nexport const NodeStatus: { [key: string]: string } = {\n notStaked: 'Inactive',\n unStaked: 'UnStaked',\n staked: 'Staked',\n jailed: 'Jail',\n queued: 'Queued',\n};\n","import { DappState } from 'context/state';\nimport { Delegation } from 'contracts';\n\nexport const nodeTransactions = {\n unStake: (blsKey: string, dapp: DappState, delegationContract?: string) => {\n const delegation = new Delegation(dapp.proxy, delegationContract, dapp.provider);\n return delegation.sendTransaction('0', 'unStakeNodes', blsKey);\n },\n reStake: (blsKey: string, dapp: DappState, delegationContract?: string) => {\n const delegation = new Delegation(dapp.proxy, delegationContract, dapp.provider);\n return delegation.sendTransaction('0', 'reStakeUnStakedNodes', blsKey);\n },\n unJail: (blsKey: string, dapp: DappState, delegationContract?: string) => {\n const delegation = new Delegation(dapp.proxy, delegationContract, dapp.provider);\n return delegation.sendTransaction('2.5', 'unJailNodes', blsKey);\n },\n unBond: (blsKey: string, dapp: DappState, delegationContract?: string) => {\n const delegation = new Delegation(dapp.proxy, delegationContract, dapp.provider);\n return delegation.sendTransaction('0', 'unBondNodes', blsKey);\n },\n stake: (blsKey: string, dapp: DappState, delegationContract?: string) => {\n const delegation = new Delegation(dapp.proxy, delegationContract, dapp.provider);\n return delegation.sendTransaction('0', 'stakeNodes', `${blsKey}`);\n },\n remove: (blsKey: string, dapp: DappState, delegationContract?: string) => {\n const delegation = new Delegation(dapp.proxy, delegationContract, dapp.provider);\n return delegation.sendTransaction('0', 'removeNodes', `${blsKey}`);\n },\n};\n","import { Address, Argument, ContractFunction } from '@elrondnetwork/erdjs/out';\nimport { Query } from '@elrondnetwork/erdjs/out/smartcontracts/query';\nimport { faCaretDown, faSearch } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport moment from 'moment';\nimport React from 'react';\nimport { Dropdown } from 'react-bootstrap';\nimport { useContext } from 'context';\nimport { nodeActions } from './helpers/nodeTypes';\nimport { nodeTransactions } from './helpers/stakeHooks';\nimport { stakingContract } from 'config';\nimport { NodeType } from './helpers/nodeType';\n\ntype ActionType = 'unStake' | 'unJail' | 'unBond' | 'reStake' | 'stake' | 'remove';\n\nconst allowedActions: { [key: string]: ActionType[] } = {\n staked: ['unStake'],\n jailed: ['unJail'],\n unStaked: ['unBond', 'reStake'],\n queued: ['unStake'],\n notStaked: ['stake', 'remove'],\n};\n\nconst NodeRow = ({ blsKey: key }: { blsKey: NodeType; index: number }) => {\n const { explorerAddress, dapp, delegationContract } = useContext();\n const ref = React.useRef(null);\n\n const [remaining, setRemaining] = React.useState(0);\n const fetchUnBondPeriod = () => {\n const query = new Query({\n address: new Address(stakingContract),\n func: new ContractFunction('getRemainingUnBondPeriod'),\n args: [Argument.fromHex(key.blsKey)],\n });\n if (key.status.key === 'unStaked') {\n dapp.proxy\n .queryContract(query)\n .then(value => {\n const remainingUnBondPeriod = value.returnData[0].asNumber;\n const newRemaining = remainingUnBondPeriod !== undefined ? remainingUnBondPeriod : 0;\n\n if (ref.current !== null) {\n setRemaining(newRemaining * 6);\n }\n })\n .catch(e => console.error('fetchUnBondPeriod error ', e));\n }\n };\n\n React.useEffect(fetchUnBondPeriod, [key.blsKey, key.status]);\n\n const statusColor =\n key.status.key === 'staked' ? 'green' : key.status.key === 'jailed' ? 'red' : 'orange';\n return (\n \n \n
\n {key.blsKey}\n \n \n \n
\n \n \n {key.status.key === 'queued' && key.queueIndex && key.queueSize ? (\n \n {key.status.value} ({key.queueIndex}/{key.queueSize})\n \n ) : (\n \n {key.status.value}\n \n )}\n \n\n \n \n \n \n \n \n {Object.keys(nodeActions).map(entry => {\n const action: ActionType = entry as any;\n let actionAllowed = allowedActions[key.status.key].includes(action);\n if (actionAllowed && action === 'unBond' && remaining !== 0) {\n actionAllowed = false;\n }\n return (\n {\n e.preventDefault();\n if (actionAllowed) {\n nodeTransactions[action](key.blsKey, dapp, delegationContract)\n .then()\n .catch(e => console.error('error', e));\n }\n }}\n >\n {nodeActions[action].label}{' '}\n {action === 'unBond' && remaining !== 0 && (\n \n (\n {moment\n .utc(moment.duration(remaining, 'seconds').asMilliseconds())\n .format('HH:mm:ss')}{' '}\n left)\n \n )}\n \n );\n })}\n \n \n \n \n );\n};\n\nexport default NodeRow;\n","export class NodeType {\n blsKey!: string;\n status!: { [key: string]: string };\n queueIndex?: string;\n queueSize?: string;\n public constructor(\n blsKey: string,\n status: { [key: string]: string },\n queueIndex?: string,\n queueSize?: string\n ) {\n this.blsKey = blsKey;\n this.status = status;\n this.queueIndex = queueIndex;\n this.queueSize = queueSize;\n }\n}\n","import { Address, Argument, ContractFunction } from '@elrondnetwork/erdjs/out';\nimport { ContractReturnData, Query } from '@elrondnetwork/erdjs/out/smartcontracts/query';\nimport { auctionContract, stakingContract } from 'config';\nimport { DappState } from 'context/state';\nimport { NodeType } from './nodeType';\nimport { NodeStatus } from './nodeTypes';\n\nexport const getAllNodesStatus = (dapp: DappState, delegationContract?: string) => {\n const query = new Query({\n address: new Address(delegationContract),\n func: new ContractFunction('getAllNodeStates'),\n });\n return new Promise>(resolve => {\n dapp.proxy\n .queryContract(query)\n .then(value => {\n let nodes = new Array();\n let responseValues = value.returnData;\n mapNodes(responseValues, nodes, []);\n return resolve(nodes);\n })\n .catch(e => console.error('GetAllNodesStatus error ', e));\n });\n};\n\nexport const getBlsKeysStatus = (dapp: DappState, queued: any[], delegationContract?: string) => {\n const query = new Query({\n address: new Address(auctionContract),\n func: new ContractFunction('getBlsKeysStatus'),\n args: [Argument.fromPubkey(new Address(delegationContract))],\n });\n return new Promise>(resolve => {\n dapp.proxy\n .queryContract(query)\n .then(value => {\n let nodes = new Array();\n let responseValues = value.returnData;\n mapNodes(responseValues.reverse(), nodes, queued);\n return resolve(nodes);\n })\n .catch(e => console.error('GetBlsKeysStatus error', e));\n });\n};\nexport const getQueueSize = (dapp: DappState) => {\n const query = new Query({\n address: new Address(stakingContract),\n func: new ContractFunction('getQueueSize'),\n });\n return new Promise(resolve => {\n dapp.proxy\n .queryContract(query)\n .then(value => {\n return resolve(value.returnData[0].asString);\n })\n .catch(e => console.error('getQueueSize error', e));\n });\n};\n\nexport const getQueueIndex = (blsKey: any, dapp: DappState) => {\n const query = new Query({\n address: new Address(stakingContract),\n func: new ContractFunction('getQueueIndex'),\n caller: new Address(auctionContract),\n args: [Argument.fromHex(blsKey)],\n });\n return new Promise(resolve => {\n dapp.proxy\n .queryContract(query)\n .then(value => {\n return resolve(value.returnData[0].asString);\n })\n .catch(e => console.error('getQueueIndex error', e));\n });\n};\n\nconst isStatus = (value: string) => {\n if (NodeStatus[value]) {\n return true;\n }\n return false;\n};\n\nconst mapNodes = (responseValues: ContractReturnData[], nodes: NodeType[], queued: any[]) => {\n let status: { [key: string]: string };\n responseValues.forEach(value => {\n if (isStatus(value.asString)) {\n status = { key: value.asString, value: NodeStatus[value.asString] };\n } else {\n if (status.key === 'queued') {\n queued.push(value.asHex);\n }\n nodes.push(new NodeType(value.asHex, status));\n }\n });\n};\n","import moment from 'moment';\nimport * as React from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { useContext } from '../../context';\nimport decodePem from '../../helpers/decodePem';\ninterface DropzonePemType {\n setFieldValue: any;\n fieldName: string;\n errors: any;\n pubKeyLength: number;\n multiple?: boolean;\n unique?: boolean;\n blacklist?: string[];\n}\n\nexport interface DropzoneFileType {\n id: string;\n name: string;\n pubKey: string;\n value: any;\n signature: any;\n errors: string[];\n}\n\nconst DropzonePem = ({\n setFieldValue,\n fieldName,\n errors,\n pubKeyLength,\n multiple,\n unique,\n}: DropzonePemType) => {\n const [files, setFiles] = React.useState([]);\n\n const getKeyErrors = (pubKey: string, existing: DropzoneFileType[]) => {\n const errors: string[] = [];\n\n if (pubKey.length !== pubKeyLength) {\n errors.push('length');\n }\n\n if (unique === true) {\n const found = existing.filter(file => file.pubKey === pubKey);\n if (found.length > 1) {\n errors.push('unique');\n }\n }\n\n return errors;\n };\n\n const updateFieldValue = () => {\n if (files.length > 0) {\n const updatedFiles = [...files];\n\n updatedFiles.forEach(file => {\n file.errors = getKeyErrors(file.pubKey, updatedFiles);\n });\n\n setFieldValue(fieldName, updatedFiles);\n }\n };\n React.useEffect(updateFieldValue, [files]);\n\n const getUpdatedFiles = ({\n existing,\n name,\n pubKey,\n value,\n signature,\n }: {\n existing: DropzoneFileType[];\n name: string;\n pubKey: string;\n value: any;\n signature: any;\n }) => {\n const updated = [...existing];\n const file = updated.find(item => item.name === name);\n\n if (file) {\n file.value = value;\n } else {\n updated.push({\n id: `${name}-${moment().unix()}`,\n name,\n pubKey,\n value,\n signature,\n errors: [],\n });\n }\n return updated;\n };\n\n const { delegationContract } = useContext();\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n accept: '.pem',\n multiple,\n onDrop: async (files: any) => {\n const onload = (fileReader: any, name: string) => async (e: any) => {\n try {\n let { value, pubKey, signature } = await decodePem(\n fileReader.result!,\n delegationContract\n );\n setFiles(existing => {\n return getUpdatedFiles({ existing, value, pubKey, name, signature });\n });\n } catch (e) {\n console.error('error decode pem', e);\n setFiles(existing => {\n return getUpdatedFiles({ existing, value: '', pubKey: '', name, signature: '' });\n });\n return;\n }\n };\n\n files.forEach((file: any) => {\n const { name } = file;\n const fileReader = new FileReader();\n fileReader.onload = onload(fileReader, name);\n fileReader.readAsText(file);\n });\n },\n });\n const onclick = (e: React.MouseEvent) => {\n e.preventDefault();\n };\n const disabledOnClick = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n const remove = (id: string) => {\n setFiles(existing => {\n let updated = [...existing];\n updated = updated.filter(item => item.id !== id);\n setFieldValue(fieldName, updated);\n return updated;\n });\n };\n\n const isInvalid = errors[fieldName] ? 'is-invalid' : '';\n const fileWord = multiple === false ? 'file' : 'files';\n const inputProps = getInputProps();\n if (multiple === false) {\n delete inputProps.multiple;\n }\n\n return (\n <>\n 0 ? 'p-0' : 'p-3'\n } ${isInvalid}`,\n })}\n >\n \n {isDragActive ? (\n
\n Drag and drop your PEM {fileWord} here, or{' '}\n \n Select {fileWord}\n \n
\n ) : (\n <>\n {files.length > 0 ? (\n
\n {files.map(({ id, name, errors }, i) => (\n 0 ? 'border-danger' : ''\n } `}\n onClick={disabledOnClick}\n >\n
\n

\n {name}\n

\n {\n e.preventDefault();\n e.stopPropagation();\n remove(id);\n }}\n style={{\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: '-0.1rem',\n }}\n >\n ×\n \n
\n
\n ))}\n \n ) : (\n
\n Drag and drop your PEM {fileWord} here, or{' '}\n \n Select {fileWord}\n \n
\n )}\n \n )}\n \n {isInvalid && (\n

\n {errors[fieldName]}\n

\n )}\n \n );\n};\n\nexport default DropzonePem;\n","import { Formik } from 'formik';\nimport * as React from 'react';\nimport { object, array, mixed } from 'yup';\nimport DropzonePem, { DropzoneFileType } from './index';\n\nconst PlaygroundPemUpload = ({\n handleClose,\n onSubmit,\n}: {\n handleClose: () => void;\n onSubmit: (pemFiles: DropzoneFileType[]) => void;\n}) => {\n const initialValues: { pemFiles: DropzoneFileType[] } = { pemFiles: [] };\n const ref = React.useRef(null);\n\n return (\n {\n onSubmit(pemFiles);\n }}\n validationSchema={object().shape({\n pemFiles: array()\n .of(mixed())\n .test('validKeyLength', 'Invalid PEM file', (value: DropzoneFileType[] | undefined) => {\n return !!value && value.every(file => !file.errors.includes('length'));\n })\n .test(\n 'keyIsUnique',\n 'Duplicate key detected',\n (value: DropzoneFileType[] | undefined) => {\n return !!value && value.every(file => !file.errors.includes('unique'));\n }\n )\n .required('PEM file is required'),\n })}\n >\n {props => {\n const { setFieldValue, handleSubmit, errors } = props;\n\n return (\n
\n
\n \n
\n
\n \n
\n Close\n
\n
\n
\n );\n }}\n \n );\n};\n\nexport default PlaygroundPemUpload;\n","import * as React from 'react';\nimport { Modal } from 'react-bootstrap';\nimport { DropzoneFileType } from '.';\nimport PlaygroundPemUpload from './PemUpload';\nimport { RequestType } from './Request';\n\ninterface RequestVariablesModalType {\n name: string;\n show: boolean;\n variables: RequestType['variables'];\n data: RequestType['data'];\n handleClose: () => void;\n triggerDispatchEvent: (variablesData: string) => void;\n}\n\ninterface ModalValuesType {\n [key: string]: any;\n}\n\nconst RequestVariablesModal = ({\n name,\n show,\n variables,\n data,\n handleClose,\n triggerDispatchEvent,\n}: RequestVariablesModalType) => {\n const [modalValues, setModalValues] = React.useState({});\n\n const onSubmit = (pemFiles?: DropzoneFileType[]) => {\n if (typeof data !== 'string') {\n triggerDispatchEvent(`${data(pemFiles ? pemFiles : modalValues)}`);\n handleClose();\n }\n };\n\n const isPemUpload = variables && variables.some(variable => variable.type === 'pemUpload');\n\n return (\n \n
\n
\n

\n {name}\n

\n
\n {variables?.map(variable => {\n return (\n
\n {variable.type === 'input' && (\n
\n \n
\n {\n const vals = { ...modalValues };\n vals[variable.name] = e.target.value;\n setModalValues(vals);\n }}\n autoComplete=\"off\"\n />\n
\n
\n )}\n {variable.type === 'pemUpload' && (\n \n )}\n
\n );\n })}\n
\n {!isPemUpload && (\n <>\n
\n {\n onSubmit();\n }}\n >\n Continue\n \n
\n Close\n
\n
\n \n )}\n
\n
\n
\n );\n};\n\nexport default RequestVariablesModal;\n","import { useDelegation } from 'helpers';\nimport React, { useState } from 'react';\nimport { DropzoneFileType } from 'components/DropzonePem';\nimport RequestVariablesModal from 'components/DropzonePem/RequestVariablesModal';\nimport { BLS } from '@elrondnetwork/erdjs/out';\n\nconst AddNodeAction = () => {\n const { delegation } = useDelegation();\n const [showAddNodes, setAddNodesModal] = useState(false);\n\n const handleAddNodes = (value: string) => {\n delegation.sendTransaction('0', 'addNodes', value).then();\n };\n\n const getPemPubKeysWithSignature = (pemFiles: DropzoneFileType[]) => {\n let keysData = '';\n pemFiles.forEach(({ pubKey, signature }) => {\n keysData += `@${pubKey}@${signature}`;\n });\n return keysData;\n };\n\n const addNodesRequest = {\n data: (pemFiles: DropzoneFileType[]) => {\n return `${getPemPubKeysWithSignature(pemFiles)}`;\n },\n variables: [\n {\n name: 'pemFiles',\n type: 'pemUpload',\n },\n ],\n };\n return (\n
\n {\n await BLS.initIfNecessary();\n setAddNodesModal(true);\n }}\n className=\"btn btn-primary ml-3 mb-3\"\n >\n Add nodes\n \n {\n setAddNodesModal(false);\n }}\n triggerDispatchEvent={(variablesData: string) => handleAddNodes(variablesData)}\n variables={addNodesRequest.variables}\n data={addNodesRequest.data}\n />\n
\n );\n};\n\nexport default AddNodeAction;\n","import React, { useEffect, useState } from 'react';\nimport { useContext } from 'context';\nimport NodeRow from './NodeRow';\nimport {\n getAllNodesStatus,\n getBlsKeysStatus,\n getQueueSize,\n getQueueIndex,\n} from './helpers/keysFunctions';\nimport AddNodeAction from './AddNodeAction';\nimport { NodeType } from './helpers/nodeType';\n\nconst Nodes = () => {\n const { dapp, delegationContract } = useContext();\n const [keys, setKeys] = useState(new Array());\n const queued: any = [];\n\n const setQueuedKeys = async (queued: any, adaptedNodesStatus: NodeType[]) => {\n if (queued.length) {\n const results = await Promise.all([\n getQueueSize(dapp),\n ...queued.map((blsKey: any) => getQueueIndex(blsKey, dapp)),\n ]);\n\n let queueSize: any;\n results.forEach((result, index) => {\n if (index === 0) {\n queueSize = result;\n } else {\n const [found] = adaptedNodesStatus.filter(({ blsKey }: any) => {\n return blsKey === queued[index - 1];\n });\n\n found.queueIndex = result;\n found.queueSize = queueSize;\n }\n });\n }\n };\n\n const getDiplayNodes = () => {\n Promise.all([\n getAllNodesStatus(dapp, delegationContract),\n getBlsKeysStatus(dapp, queued, delegationContract),\n ])\n .then(async ([nodesStatus, blsKeys]) => {\n const adaptedNodesStatus = nodesStatus.map(item => {\n let index = blsKeys.findIndex(i => i.blsKey === item.blsKey);\n return {\n ...item,\n status: index >= 0 ? blsKeys[index].status : item.status,\n };\n });\n await setQueuedKeys(queued, adaptedNodesStatus);\n setKeys(adaptedNodesStatus);\n })\n .catch(error => console.error('getDiplayNodes error', error));\n };\n\n useEffect(getDiplayNodes, []);\n\n return (\n <>\n
\n
\n
\n

My Nodes

\n
\n \n
\n
\n {keys.length > 0 ? (\n
\n \n \n \n \n \n \n \n \n \n {keys.map((blsKey, i) => (\n \n ))}\n \n
Public keyStatusActions
\n
\n ) : (\n No keys found for this contract.\n )}\n
\n
\n \n );\n};\nexport default Nodes;\n","import React from 'react';\nimport Dashboard from './pages/Dashboard';\nimport Home from './pages/Home';\nimport withPageTitle from './components/PageTitle';\nimport Owner from 'pages/Owner';\n\ninterface RouteType {\n path: string;\n page: string;\n title: string;\n component: any;\n}\n\nconst routes: RouteType[] = [\n {\n path: '/',\n page: 'home',\n title: '',\n component: Home,\n },\n {\n path: '/dashboard',\n page: 'dashboard',\n title: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/owner',\n page: 'owner',\n title: 'Owner',\n component: Owner,\n },\n];\n\nconst wrappedRoutes = () => {\n return routes.map(route => {\n const title = route.title ? `${route.title} • Delegation Manager` : 'Delegation Manager';\n return {\n path: route.path,\n page: route.page,\n component: (withPageTitle(title, route.component) as any) as React.ComponentClass<{}, any>,\n };\n });\n};\n\nexport default wrappedRoutes();\n","import { Redirect } from 'react-router-dom';\nimport { Address } from '@elrondnetwork/erdjs/out';\nimport React from 'react';\nimport { useContext } from 'context';\nimport Overview from 'components/Overview';\nimport Nodes from './Nodes';\n\nconst Owner = () => {\n const { address, contractOverview, loggedIn } = useContext();\n const isAdmin = () => {\n let loginAddress = new Address(address).hex();\n return loginAddress.localeCompare(contractOverview.ownerAddress) === 0;\n };\n\n if (!loggedIn) {\n return ;\n }\n\n return (\n <>\n {isAdmin() ? (\n
\n
\n \n
\n \n
\n
\n
\n ) : (\n \n )}\n \n );\n};\n\nexport default Owner;\n","import React from 'react';\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\nimport Layout from './components/Layout';\nimport routes from './routes';\nimport { ContextProvider } from './context';\n\nfunction App() {\n return (\n \n \n \n {routes.map((route, i) => (\n \n \n \n \n \n ))}\n \n \n \n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { StateInspector } from 'reinspect';\nimport App from './App';\nimport './assets/styles/theme.scss';\n\nlet MountedApp = ;\n\nif (process.env.NODE_ENV === 'development') {\n MountedApp = (\n \n \n \n );\n}\n\nReactDOM.render(MountedApp, document.getElementById('root'));\n","import {\n ProxyProvider,\n ContractFunction,\n Transaction,\n TransactionPayload,\n Balance,\n GasLimit,\n IDappProvider,\n WalletProvider,\n HWProvider,\n Address,\n SmartContract,\n} from '@elrondnetwork/erdjs';\nimport { setItem } from '../storage/session';\nimport { delegationContractData } from '../config';\n\nexport default class Delegation {\n contract: SmartContract;\n proxyProvider: ProxyProvider;\n signerProvider?: IDappProvider;\n\n constructor(provider: ProxyProvider, delegationContract?: string, signer?: IDappProvider) {\n const address = new Address(delegationContract);\n this.contract = new SmartContract({ address });\n this.proxyProvider = provider;\n this.signerProvider = signer;\n }\n\n async sendTransaction(\n value: string,\n transcationType: string,\n args: string = ''\n ): Promise {\n if (!this.signerProvider) {\n throw new Error(\n 'You need a singer to send a transaction, use either WalletProvider or LedgerProvider'\n );\n }\n\n switch (this.signerProvider.constructor) {\n case WalletProvider:\n // Can use something like this to handle callback redirect\n setItem('transaction_identifier', true, 120);\n return this.sendTransactionBasedOnType(value, transcationType, args);\n case HWProvider:\n return this.sendTransactionBasedOnType(value, transcationType, args);\n default:\n console.warn('invalid signerProvider');\n }\n\n return true;\n }\n\n private async sendTransactionBasedOnType(\n value: string,\n transcationType: string,\n args: string = ''\n ): Promise {\n let delegationContract = delegationContractData.find(d => d.name === transcationType);\n if (!delegationContract) {\n throw new Error('The contract for this action in not defined');\n } else {\n let funcName = delegationContract.data;\n if (args !== '') {\n funcName = `${delegationContract.data}${args}`;\n }\n const func = new ContractFunction(funcName);\n let payload = TransactionPayload.contractCall()\n .setFunction(func)\n .build();\n let transaction = new Transaction({\n receiver: this.contract.getAddress(),\n value: Balance.eGLD(value),\n gasLimit: new GasLimit(delegationContract.gasLimit),\n data: payload,\n });\n\n // @ts-ignore\n await this.signerProvider.sendTransaction(transaction);\n\n return true;\n }\n }\n}\n","interface ViewStatActionType {\n actionTitle: string;\n color: string;\n handleContinue: () => void;\n}\n\nconst ViewStatAction = ({ actionTitle, color, handleContinue }: ViewStatActionType) => {\n return (\n
\n {\n handleContinue();\n }}\n className={`btn btn-${color} mx-2`}\n >\n {actionTitle}\n \n
\n );\n};\n\nexport default ViewStatAction;\n"],"sourceRoot":""}