@@ -10,12 +10,13 @@ import {
12} from 'indigo-react';
12} from 'indigo-react';
13−import { GenerateButton, ForwardButton, RestartButton } from './Buttons';
13+
14import { useCheckboxInput } from 'lib/useInputs';
14import { useCheckboxInput } from 'lib/useInputs';
15−import Blinky from './Blinky';
16import { hexify } from 'lib/txn';
15import { hexify } from 'lib/txn';
17import { useExploreTxUrl } from 'lib/explorer';
16import { useExploreTxUrl } from 'lib/explorer';
18+import { GenerateButton, ForwardButton, RestartButton } from './Buttons';
19export default function InlineEthereumTransaction({
20export default function InlineEthereumTransaction({
20 // from useEthereumTransaction.bind
21 // from useEthereumTransaction.bind
21 initializing,
22 initializing,
@@ -42,10 +43,10 @@ export default function InlineEthereumTransaction({
42 const showReceipt = broadcasted || confirmed;
43 const showReceipt = broadcasted || confirmed;
43 // show configure controls pre-broadcast
44 // show configure controls pre-broadcast
44 const showConfigureInput = !(signed || broadcasted || confirmed);
45 const showConfigureInput = !(signed || broadcasted || confirmed);
45− // show signed tx after signing
46+ // show signed tx only when signing (for offline usage)
46 const showSignedTx = signed;
47 const showSignedTx = signed;
48− const exploreHashUrl = useExploreTxUrl(txHash);
49+ const exploreTxUrl = useExploreTxUrl(txHash);
49 const [advancedInput, { data: advancedOpen }] = useCheckboxInput({
50 const [advancedInput, { data: advancedOpen }] = useCheckboxInput({
50 name: 'advanced',
51 name: 'advanced',
51 label: 'Advanced Configuration',
52 label: 'Advanced Configuration',
@@ -63,7 +64,7 @@ export default function InlineEthereumTransaction({
63 disabled: !showSignedTx,
64 disabled: !showSignedTx,
66− const renderButton = () => {
67+ const renderPrimaryButton = () => {
67 if (error) {
68 if (error) {
69 <Grid.Item full as={RestartButton} solid onClick={() => reset()}>
70 <Grid.Item full as={RestartButton} solid onClick={() => reset()}>
@@ -79,25 +80,15 @@ export default function InlineEthereumTransaction({
79 </Grid.Item>
80 </Grid.Item>
82− } else if (broadcasted) {
83+ } else if (signed || broadcasted) {
90− accessory={<Blinky />}>
91− Sending Transaction...
96 <Grid.Item
85 <Grid.Item
98 as={ForwardButton}
87 as={ForwardButton}
90+ disable={broadcasted}
91+ loading={broadcasted}
101 onClick={() => broadcast()}>
92 onClick={() => broadcast()}>
102 Send Transaction
93 Send Transaction
103 </Grid.Item>
94 </Grid.Item>
@@ -109,7 +100,7 @@ export default function InlineEthereumTransaction({
109 as={GenerateButton}
100 as={GenerateButton}
110 onClick={generateAndSign}
101 onClick={generateAndSign}
111 disabled={!canSign}
102 disabled={!canSign}
112− accessory={!canSign && initializing ? <Blinky /> : undefined}>
103+ loading={!canSign && initializing}>
113 Generate & Sign Transaction
104 Generate & Sign Transaction
114 </Grid.Item>
105 </Grid.Item>
@@ -118,7 +109,7 @@ export default function InlineEthereumTransaction({
120 <Grid className={cn(className, 'mt1')}>
111 <Grid className={cn(className, 'mt1')}>
121− {renderButton()}
112+ {renderPrimaryButton()}
123 {error && (
114 {error && (
124 <Grid.Item full as={ErrorText} className="mt1">
115 <Grid.Item full as={ErrorText} className="mt1">
@@ -136,6 +127,7 @@ export default function InlineEthereumTransaction({
136 <Flex.Item as={H5}>Gas Price</Flex.Item>
127 <Flex.Item as={H5}>Gas Price</Flex.Item>
137 <Flex.Item as={H5}>{gasPrice} Gwei</Flex.Item>
128 <Flex.Item as={H5}>{gasPrice} Gwei</Flex.Item>
138 </Grid.Item>
129 </Grid.Item>
130+ {/* TODO(shrugs): move to indigo/RangeInput */}
139 <Grid.Item
131 <Grid.Item
141 as="input"
133 as="input"
@@ -182,7 +174,7 @@ export default function InlineEthereumTransaction({
182 <Grid.Item full as={Flex} col className="pv4">
174 <Grid.Item full as={Flex} col className="pv4">
183 <Flex.Item as={Flex} row justify="between">
175 <Flex.Item as={Flex} row justify="between">
184 <Flex.Item as={H5}>Transaction Hash</Flex.Item>
176 <Flex.Item as={H5}>Transaction Hash</Flex.Item>
185− <Flex.Item as={LinkButton} href={exploreHashUrl}>
177+ <Flex.Item as={LinkButton} href={exploreTxUrl}>
186 Etherscan↗
178 Etherscan↗
187 </Flex.Item>
179 </Flex.Item>
188 </Flex.Item>
180 </Flex.Item>