import React from 'react';
import { H2, H4 } from '../../components/old/Base';
import { CURVE_ZERO_ADDR, isZeroAddress } from '../../lib/wallet';
import { Grid } from 'indigo-react';
const renderAddress = addr =>
isZeroAddress(addr) ? (
{'(not set)'}
) : (
{addr.slice(0, 14)}
{addr.slice(14, 28)}
{addr.slice(28)}
);
const renderNetworkKey = hex => {
const sl = i => hex.slice(i, i + 4);
const rowFrom = i => `${sl(i)}.${sl(i + 4)}.${sl(i + 8)}.${sl(i + 12)}`;
return hex === CURVE_ZERO_ADDR ? (
{'(not set)'}
) : (
{hex.slice(0, 2)}
{rowFrom(2)}
{rowFrom(18)}
{rowFrom(34)}
{rowFrom(50)}
);
};
const KeysAndMetadata = props => {
const { pointDetails } = props;
return (
{'Ownership and Proxy Addresses'}
{'Owner'}
{pointDetails.matchWith({
Nothing: () => ,
Just: deets => renderAddress(deets.value.owner),
})}
{'Transfer Proxy'}
{pointDetails.matchWith({
Nothing: () => ,
Just: deets => renderAddress(deets.value.transferProxy),
})}
{'Spawn Proxy'}
{pointDetails.matchWith({
Nothing: () => ,
Just: deets => renderAddress(deets.value.spawnProxy),
})}
{'Mgmt Proxy'}
{pointDetails.matchWith({
Nothing: () => ,
Just: deets => renderAddress(deets.value.managementProxy),
})}
);
};
const UrbitNetworking = props => {
const { pointDetails } = props;
const booted = pointDetails.matchWith({
Nothing: _ => false,
Just: details => details.value.keyRevisionNumber > 0,
});
const body = !booted ? (
{'(not set)'}
) : (
{'Authentication'}
{pointDetails.matchWith({
Nothing: () => ,
Just: deets => renderNetworkKey(deets.value.authenticationKey),
})}
{'Encryption'}
{pointDetails.matchWith({
Nothing: () => ,
Just: deets => renderNetworkKey(deets.value.encryptionKey),
})}
{'Revision'}
{pointDetails.matchWith({
Nothing: () => '-',
Just: deets => deets.value.keyRevisionNumber,
})}
{'Continuity era'}
{pointDetails.matchWith({
Nothing: () => '-',
Just: deets => deets.value.continuityNumber,
})}
{'Crypto suite version'}
{pointDetails.matchWith({
Nothing: () => '-',
Just: deets => deets.value.cryptoSuiteVersion,
})}
);
return (
{'Public Keys'}
{body}
);
};
export default KeysAndMetadata;