-
Notifications
You must be signed in to change notification settings - Fork 34
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #240 from BitGo/fix/remove-api-key-field-from-ethw
fix: remove api key field from ethw forms
- Loading branch information
Showing
6 changed files
with
449 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
143 changes: 143 additions & 0 deletions
143
src/containers/BuildUnsignedSweepCoin/EthereumWForm.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
import { Form, FormikHelpers, FormikProvider, useFormik } from 'formik'; | ||
import { Link } from 'react-router-dom'; | ||
import * as Yup from 'yup'; | ||
import { Button, FormikTextfield } from '~/components'; | ||
|
||
const validationSchema = Yup.object({ | ||
backupKey: Yup.string().required(), | ||
backupKeyId: Yup.string(), | ||
gasLimit: Yup.number() | ||
.typeError('Gas limit must be a number') | ||
.integer() | ||
.positive('Gas limit must be a positive integer') | ||
.required(), | ||
maxFeePerGas: Yup.number().required(), | ||
maxPriorityFeePerGas: Yup.number().required(), | ||
recoveryDestination: Yup.string().required(), | ||
userKey: Yup.string().required(), | ||
userKeyId: Yup.string(), | ||
walletContractAddress: Yup.string().required(), | ||
}).required(); | ||
|
||
export type EthereumWFormProps = { | ||
onSubmit: ( | ||
values: EthereumWFormValues, | ||
formikHelpers: FormikHelpers<EthereumWFormValues> | ||
) => void | Promise<void>; | ||
}; | ||
|
||
type EthereumWFormValues = Yup.Asserts<typeof validationSchema>; | ||
|
||
export function EthereumWForm({ onSubmit }: EthereumWFormProps) { | ||
const formik = useFormik<EthereumWFormValues>({ | ||
onSubmit, | ||
initialValues: { | ||
backupKey: '', | ||
backupKeyId: '', | ||
gasLimit: 500000, | ||
maxFeePerGas: 20, | ||
maxPriorityFeePerGas: 10, | ||
recoveryDestination: '', | ||
userKey: '', | ||
userKeyId: '', | ||
walletContractAddress: '', | ||
}, | ||
validationSchema, | ||
}); | ||
|
||
return ( | ||
<FormikProvider value={formik}> | ||
<Form> | ||
<h4 className="tw-text-body tw-font-semibold tw-border-b-0.5 tw-border-solid tw-border-gray-700 tw-mb-4"> | ||
Self-managed cold wallet details | ||
</h4> | ||
<div className="tw-mb-4"> | ||
<FormikTextfield | ||
HelperText="Your user public key, as found on your recovery KeyCard." | ||
Label="User Public Key" | ||
name="userKey" | ||
Width="fill" | ||
/> | ||
</div> | ||
<div className="tw-mb-4"> | ||
<FormikTextfield | ||
HelperText="Your user Key ID, as found on your KeyCard. Most wallets will not have this and you can leave it blank." | ||
Label="User Key ID (optional)" | ||
name="userKeyId" | ||
Width="fill" | ||
/> | ||
</div> | ||
<div className="tw-mb-4"> | ||
<FormikTextfield | ||
HelperText="The backup public key for the wallet, as found on your recovery KeyCard." | ||
Label="Backup Public Key" | ||
name="backupKey" | ||
Width="fill" | ||
/> | ||
</div> | ||
<div className="tw-mb-4"> | ||
<FormikTextfield | ||
HelperText="Your backup Key ID, as found on your KeyCard. Most wallets will not have this and you can leave it blank." | ||
Label="Backup Key ID (optional)" | ||
name="backupKeyId" | ||
Width="fill" | ||
/> | ||
</div> | ||
<div className="tw-mb-4"> | ||
<FormikTextfield | ||
HelperText="The ETH address of the wallet contract. This is also the wallet's base address." | ||
Label="Wallet Contract Address" | ||
name="walletContractAddress" | ||
Width="fill" | ||
/> | ||
</div> | ||
<div className="tw-mb-4"> | ||
<FormikTextfield | ||
HelperText="The address your recovery transaction will send to." | ||
Label="Destination Address" | ||
name="recoveryDestination" | ||
Width="fill" | ||
/> | ||
</div> | ||
<div className="tw-mb-4"> | ||
<FormikTextfield | ||
HelperText="Gas limit for the ETH transaction. The value should be between 30,000 and 20,000,000. The default is 500,000 unit of gas." | ||
Label="Gas Limit" | ||
name="gasLimit" | ||
Width="fill" | ||
/> | ||
</div> | ||
<div className="tw-mb-4"> | ||
<FormikTextfield | ||
HelperText="Max fee per gas for the ETH transaction. The default is 20 Gwei." | ||
Label="Max Fee Per Gas (Gwei)" | ||
name="maxFeePerGas" | ||
Width="fill" | ||
/> | ||
</div> | ||
<div className="tw-mb-4"> | ||
<FormikTextfield | ||
HelperText='"Tip" to the ETH miner. This is by default 10 Gwei.' | ||
Label="Max Priority Fee Per Gas (Gwei)" | ||
name="maxPriorityFeePerGas" | ||
Width="fill" | ||
/> | ||
</div> | ||
<div className="tw-flex tw-flex-col-reverse sm:tw-justify-between sm:tw-flex-row tw-gap-1 tw-mt-4"> | ||
<Button Tag={Link} to="/" Variant="secondary" Width="hug"> | ||
Cancel | ||
</Button> | ||
<Button | ||
Variant="primary" | ||
Width="hug" | ||
type="submit" | ||
Disabled={formik.isSubmitting} | ||
disabled={formik.isSubmitting} | ||
> | ||
{formik.isSubmitting ? 'Recovering...' : 'Recover Funds'} | ||
</Button> | ||
</div> | ||
</Form> | ||
</FormikProvider> | ||
); | ||
} |
Oops, something went wrong.