utils#MAINNET_ID TypeScript Examples
The following examples show how to use
utils#MAINNET_ID.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: REPMintInfoLine.tsx From dxvote with GNU Affero General Public License v3.0 | 6 votes |
REPMintInfoLine: React.FC<ActionViewProps> = ({ decodedCall }) => {
const { parsedData } = useTotalSupply({ decodedCall });
const { tokenData } = useTokenData();
const totalSupply = useBigNumberToNumber(tokenData?.totalSupply, 18);
const { ensName, imageUrl } = useENSAvatar(parsedData?.toAddress, MAINNET_ID);
const roundedRepAmount = useBigNumberToNumber(parsedData?.amount, 16, 3);
const roundedRepPercent = roundedRepAmount / totalSupply;
return (
<>
<Segment>
<StyledMintIcon src={Mint} />
</Segment>
<Segment>Mint {roundedRepPercent} %</Segment>
<Segment>
<FiArrowRight />
</Segment>
<Segment>
<Avatar defaultSeed={parsedData?.toAddress} src={imageUrl} size={24} />
</Segment>
<Segment>{ensName || shortenAddress(parsedData?.toAddress)}</Segment>
</>
);
}
Example #2
Source File: REPMintSummary.tsx From dxvote with GNU Affero General Public License v3.0 | 6 votes |
REPMintSummary: React.FC<ActionViewProps> = ({ decodedCall }) => {
const { parsedData } = useTotalSupply({ decodedCall });
const { tokenData } = useTokenData();
const { ensName, imageUrl } = useENSAvatar(parsedData?.toAddress, MAINNET_ID);
const roundedRepAmount = useBigNumberToNumber(parsedData?.amount, 18, 3);
return (
<>
<DetailHeader>
<DetailCell>Receiver</DetailCell>
<DetailCell>Amount</DetailCell>
</DetailHeader>
<DetailRow>
<DetailCell>
<Segment>
<Avatar
defaultSeed={parsedData?.toAddress}
src={imageUrl}
size={24}
/>
</Segment>
<Segment>{ensName || shortenAddress(parsedData?.toAddress)}</Segment>
</DetailCell>
<DetailCell>
{roundedRepAmount} {tokenData?.name}
</DetailCell>
</DetailRow>
</>
);
}
Example #3
Source File: ERC20TransferInfoLine.tsx From dxvote with GNU Affero General Public License v3.0 | 5 votes |
ERC20TransferInfoLine: React.FC<ActionViewProps> = ({ decodedCall }) => {
const parsedData = useMemo(() => {
if (!decodedCall) return null;
return {
tokenAddress: decodedCall.to,
amount: BigNumber.from(decodedCall.args._value),
source: decodedCall.from,
destination: decodedCall.args._to as string,
};
}, [decodedCall]);
const { data: tokenInfo } = useERC20Info(parsedData?.tokenAddress);
const roundedBalance = useBigNumberToNumber(
parsedData?.amount,
tokenInfo?.decimals,
4
);
const { ensName, imageUrl } = useENSAvatar(
parsedData?.destination,
MAINNET_ID
);
return (
<>
<Segment>
<FiNavigation size={16} />
</Segment>
<Segment>
Transfer {roundedBalance} {tokenInfo?.symbol}
</Segment>
<Segment>
<FiArrowRight />
</Segment>
<Segment>
<Avatar
defaultSeed={parsedData?.destination}
src={imageUrl}
size={24}
/>
</Segment>
<Segment>
{ensName || parsedData?.destination
? shortenAddress(parsedData?.destination)
: ''}
</Segment>
</>
);
}
Example #4
Source File: ERC20TransferSummary.tsx From dxvote with GNU Affero General Public License v3.0 | 5 votes |
ERC20TransferSummary: React.FC<ActionViewProps> = ({ decodedCall }) => {
const parsedData = useMemo(() => {
if (!decodedCall) return null;
return {
tokenAddress: decodedCall.to,
amount: BigNumber.from(decodedCall.args._value),
source: decodedCall.from,
destination: decodedCall.args._to,
};
}, [decodedCall]);
const { data: tokenInfo } = useERC20Info(parsedData?.tokenAddress);
const roundedBalance = useBigNumberToNumber(
parsedData?.amount,
tokenInfo?.decimals,
4
);
const { ensName, imageUrl } = useENSAvatar(
parsedData?.destination,
MAINNET_ID
);
return (
<>
<DetailHeader>
<DetailCell>Receiver</DetailCell>
<DetailCell>Amount</DetailCell>
</DetailHeader>
<DetailRow>
<DetailCell>
<Segment>
<Avatar
defaultSeed={parsedData?.destination}
src={imageUrl}
size={24}
/>
</Segment>
<Segment>
{ensName || shortenAddress(parsedData?.destination)}
</Segment>
</DetailCell>
<DetailCell>
{roundedBalance} {tokenInfo?.symbol}
</DetailCell>
</DetailRow>
</>
);
}
Example #5
Source File: ERC20TransferEditor.tsx From dxvote with GNU Affero General Public License v3.0 | 4 votes |
Transfer: React.FC<ActionEditorProps> = ({ decodedCall, updateCall }) => {
const [isTokenPickerOpen, setIsTokenPickerOpen] = useState(false);
const { chainId } = useWeb3React();
// parse transfer state from calls
const parsedData = useMemo<TransferState>(() => {
if (!decodedCall) return null;
return {
source: decodedCall.from,
tokenAddress: decodedCall.to,
amount: decodedCall.args._value,
destination: decodedCall.args._to,
};
}, [decodedCall]);
const validations = useMemo(() => {
return {
tokenAddress: utils.isAddress(parsedData?.tokenAddress),
amount: BigNumber.isBigNumber(parsedData?.amount),
destination: utils.isAddress(parsedData?.destination),
};
}, [parsedData]);
// Get token details from the token address
const { tokens } = useTokenList(chainId);
const token = useMemo(() => {
if (!parsedData?.tokenAddress || !tokens) return null;
return tokens.find(({ address }) => address === parsedData.tokenAddress);
}, [tokens, parsedData]);
const { data: tokenInfo } = useERC20Info(parsedData?.tokenAddress);
const roundedBalance = useBigNumberToNumber(
parsedData?.amount,
tokenInfo?.decimals,
10
);
const { imageUrl: destinationAvatarUrl } = useENSAvatar(
parsedData?.destination,
MAINNET_ID
);
const setTransferAddress = (walletAddress: string) => {
updateCall({
...decodedCall,
args: {
...decodedCall.args,
_to: walletAddress,
},
});
};
const setToken = (tokenAddress: string) => {
updateCall({
...decodedCall,
to: tokenAddress,
});
};
const setAmount = (value: string) => {
const amount = value
? utils.parseUnits(value, tokenInfo?.decimals || 18)
: null;
updateCall({
...decodedCall,
args: {
...decodedCall.args,
_value: amount,
},
});
};
return (
<div>
<Control>
<ControlLabel>Recipient</ControlLabel>
<ControlRow>
<Input
value={parsedData.destination || ''}
icon={
<div>
{validations.destination && (
<Avatar
src={destinationAvatarUrl}
defaultSeed={parsedData.destination}
size={24}
/>
)}
</div>
}
iconRight={
parsedData?.destination ? (
<ClickableIcon onClick={() => setTransferAddress('')}>
<FiX size={18} />
</ClickableIcon>
) : null
}
placeholder="Ethereum address"
onChange={e => setTransferAddress(e.target.value)}
/>
</ControlRow>
</Control>
<ControlRow>
<Control>
<ControlLabel>Amount</ControlLabel>
<ControlRow>
<TransferAmountInput
value={roundedBalance}
onUserInput={setAmount}
/>
</ControlRow>
</Control>
<Spacer />
<Control>
<ControlLabel>Asset</ControlLabel>
<ControlRow onClick={() => setIsTokenPickerOpen(true)}>
<Input
value={tokenInfo?.symbol || ''}
placeholder="Token"
icon={
<div>
{parsedData?.tokenAddress && (
<Avatar
src={resolveUri(token?.logoURI)}
defaultSeed={parsedData?.tokenAddress}
size={18}
/>
)}
</div>
}
iconRight={<FiChevronDown size={24} />}
readOnly
/>
</ControlRow>
</Control>
</ControlRow>
<TokenPicker
walletAddress={parsedData?.source || ''}
isOpen={isTokenPickerOpen}
onClose={() => setIsTokenPickerOpen(false)}
onSelect={tokenAddress => {
setToken(tokenAddress);
setIsTokenPickerOpen(false);
}}
/>
</div>
);
}
Example #6
Source File: REPMintEditor.tsx From dxvote with GNU Affero General Public License v3.0 | 4 votes |
Mint: React.FC<ActionEditorProps> = ({ decodedCall, updateCall }) => {
// parse transfer state from calls
const [repPercent, setRepPercent] = useState(0);
const [repAmount, setRepAmount] = useState(0);
const { parsedData } = useTotalSupply({ decodedCall });
const { tokenData } = useTokenData();
const totalSupply = useBigNumberToNumber(tokenData?.totalSupply, 18);
const { imageUrl } = useENSAvatar(parsedData?.toAddress, MAINNET_ID);
const setCallDataAmount = (value: string) => {
const amount = value ? ethers.utils.parseUnits(value) : null;
updateCall({
...decodedCall,
args: {
...decodedCall.args,
amount,
},
});
};
useEffect(() => {
setRepAmount((repPercent / 100) * totalSupply);
if (repAmount) {
setCallDataAmount(repAmount.toString());
}
}, [repPercent, repAmount, totalSupply]);
const handleRepChange = (e: number) => {
if (e) {
setRepPercent(e);
}
};
return (
<React.Fragment>
<Control>
<ControlLabel>
Recipient
<StyledIcon src={Info} />
</ControlLabel>
<ControlRow>
<Input
value={shortenAddress(parsedData?.toAddress)}
icon={
<Avatar
src={imageUrl}
defaultSeed={parsedData?.toAddress}
size={18}
/>
}
readOnly
/>
</ControlRow>
</Control>
<ControlRow>
<Control>
<ControlLabel>
Reputation in % <StyledIcon src={Info} />
</ControlLabel>
<ControlRow>
<RepMintInput value={repPercent} onUserInput={handleRepChange} />
</ControlRow>
</Control>
</ControlRow>
<ControlRow>
<Control>
<ControlLabel>
Reputation Amount <StyledIcon src={Info} />
</ControlLabel>
<ControlRow>
<RepMintInput
value={repAmount}
onUserInput={handleRepChange}
readOnly
/>
</ControlRow>
</Control>
</ControlRow>
</React.Fragment>
);
}