add initial display of status account in resolver UI

This commit is contained in:
Barry Gitarts 2018-06-07 17:55:50 -04:00
parent ef4ff22ed5
commit 8e69076c85
2 changed files with 40 additions and 19 deletions

View File

@ -23,12 +23,15 @@ const addressStyle = {
fontSize: '18px',
fontWeight: 400,
margin: '3% 0 3% 0',
cursor: 'copy'
cursor: 'copy',
textAlign: 'center',
wordWrap: 'break-word'
}
const backButton = {
fontSize: '40px',
color: theme.accent
color: theme.accent,
cursor: 'pointer'
}
class DisplayAddress extends PureComponent {
@ -36,7 +39,7 @@ class DisplayAddress extends PureComponent {
render() {
const { copied } = this.state
const { domainName, address, setStatus } = this.props
const { domainName, address, statusAccount, setStatus } = this.props
const markCopied = () => { this.setState({ copied: !copied }) }
const validAddress = address != nullAddress;
return (
@ -47,6 +50,9 @@ class DisplayAddress extends PureComponent {
<CopyToClipboard text={address} onCopy={markCopied}>
<div style={addressStyle}>{address}</div>
</CopyToClipboard>
<CopyToClipboard text={statusAccount} onCopy={markCopied}>
<div style={addressStyle}>{statusAccount}</div>
</CopyToClipboard>
{copied &&
<Info background={theme.positive} style={copiedText}>
<span>COPIED</span>
@ -85,19 +91,23 @@ const InnerForm = ({
Get Address
</Button>
</form>
: <DisplayAddress domainName={values.domainName} address={status} setStatus={setStatus}/>}
: <DisplayAddress
domainName={values.domainName}
address={status.address}
statusAccount={status.statusAccount}
setStatus={setStatus}/>}
</Card>
)
const NameLookup = withFormik({
mapPropsToValues: props => ({ domainName: '' }),
handleSubmit(values, { setSubmitting, setStatus }) {
async handleSubmit(values, { status, setSubmitting, setStatus }) {
const { domainName } = values;
PublicResolver.methods.addr(hash(formatName(domainName)))
.call()
.then(res =>{
setStatus(res)
});
const { addr, text } = PublicResolver.methods;
const lookupHash = hash(formatName(domainName));
const address = await addr(lookupHash).call();
const statusAccount = await text(lookupHash, 'statusAccount').call();
setStatus({ address, statusAccount });
}
})(InnerForm)

View File

@ -55,11 +55,21 @@ const InnerForm = ({
label="Domain Price"
disabled
value={values.price ? `${Number(values.price).toLocaleString()} SNT` : ''} />
<FieldGroup
id="statusAddress"
name="statusAddress"
type="text"
label="Status messenger address domain resolves to"
onChange={handleChange}
onBlur={handleBlur}
value={values.statusAddress}
error={errors.statusAddress}
/>
<FieldGroup
id="address"
name="address"
type="text"
label="Address domain resolves to"
label="Address domain resolves to (optional)"
onChange={handleChange}
onBlur={handleBlur}
value={values.address}
@ -78,20 +88,21 @@ const RegisterSubDomain = withFormik({
if (address && !web3.utils.isAddress(address)) errors.address = 'Not a valid address';
if (!subDomain) errors.subDomain = 'Required';
return errors;
},
},
handleSubmit(values, { setSubmitting }) {
const { subDomain, domainName, address } = values;
const { subDomain, domainName, address, statusAddress } = values;
const { methods: { register } } = ENSSubdomainRegistry;
let subdomainHash = soliditySha3(subDomain);
let domainNameHash = hash(domainName);
let resolveToAddr = address || zeroAddress;
let toSend = register(
const subdomainHash = soliditySha3(subDomain);
const domainNameHash = hash(domainName);
const resolveToAddr = address || zeroAddress;
const toSend = register(
subdomainHash,
domainNameHash,
resolveToAddr,
zeroBytes32,
zeroBytes32
zeroBytes32,
statusAddress || zeroBytes32
);
toSend.estimateGas().then(gasEstimated => {
console.log("Register would work. :D Gas estimated: "+gasEstimated)