Remove label help tooltips (#8767)
* Remove label help tooltips * Fix missed item * Adjust * adjust * Back to defaults
This commit is contained in:
parent
ab8cb517b4
commit
e1727917d1
@ -8,19 +8,20 @@
|
||||
<title><%= htmlWebpackPlugin.options.PAGE_TITLE %></title>
|
||||
<script type="text/javascript" src="env-config.js"></script>
|
||||
<style>
|
||||
/*
|
||||
1.125 (8:9) factor (https://www.modularscale.com/?1&rem&1.067, https://type-scale.com/) -
|
||||
|
||||
1.424rem
|
||||
1.266rem
|
||||
1.125rem
|
||||
1rem
|
||||
0.889rem
|
||||
0.79rem
|
||||
*/
|
||||
:root {
|
||||
--font-mono: 0.889em Consolas, monaco, "Ubuntu Mono", "Liberation Mono", "Courier New", Courier, monospace;
|
||||
--font-sans: 1em "-apple-system", BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
|
||||
/*
|
||||
1.125 (8:9) factor (https://www.modularscale.com/?1&rem&1.067, https://type-scale.com/) -
|
||||
|
||||
1.424rem
|
||||
1.266rem
|
||||
1.125rem
|
||||
1rem
|
||||
0.889rem
|
||||
0.79rem
|
||||
*/
|
||||
--font-percent-small: 88.9%;
|
||||
--font-percent-tiny: 79.0%;
|
||||
--font-size-base: 1rem;
|
||||
@ -29,18 +30,23 @@
|
||||
--font-size-h3: 1.125rem;
|
||||
--font-size-small: 0.889rem;
|
||||
--font-size-tiny: 0.79rem;
|
||||
--font-weight-bold: 700;
|
||||
--font-weight-header: 400;
|
||||
|
||||
--font-weight-bold: 700; /* semi-bold = 600 */
|
||||
--font-weight-light: 200;
|
||||
--font-weight-normal: 400;
|
||||
--font-size-label: 0.889rem;
|
||||
--font-weight-label: 700;
|
||||
--text-transform-label: lowercase;
|
||||
|
||||
--opacity-light: 0.6;
|
||||
|
||||
--width-full: 1750px;
|
||||
--width-half: 875px;
|
||||
--width-shortaddr: 6.5em;
|
||||
--width-shorthash: 9em;
|
||||
|
||||
--font-weight-header: var(--font-weight-normal);
|
||||
--font-size-label: var(--font-size-small);
|
||||
--font-weight-label: var(--font-weight-bold);
|
||||
--text-transform-label: lowercase;
|
||||
|
||||
--bg-menu-hover: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
|
||||
@ -192,7 +192,6 @@ function VanityApp ({ className = '', onStatusChange }: Props): React.ReactEleme
|
||||
<Input
|
||||
autoFocus
|
||||
className='medium'
|
||||
help={t<string>('Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. ')}
|
||||
isDisabled={isRunning}
|
||||
isError={!isMatchValid}
|
||||
label={t<string>('Search for')}
|
||||
@ -202,7 +201,6 @@ function VanityApp ({ className = '', onStatusChange }: Props): React.ReactEleme
|
||||
/>
|
||||
<Dropdown
|
||||
className='medium'
|
||||
help={t<string>('Should the search be case sensitive, e.g if you select "no" your search for "Some" may return addresses containing "somE" or "sOme"...')}
|
||||
isDisabled={isRunning}
|
||||
label={t<string>('case sensitive')}
|
||||
onChange={setWithCase}
|
||||
@ -214,7 +212,6 @@ function VanityApp ({ className = '', onStatusChange }: Props): React.ReactEleme
|
||||
<Dropdown
|
||||
className='medium'
|
||||
defaultValue={type}
|
||||
help={t<string>('Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use "ed25519".')}
|
||||
label={t<string>('keypair crypto type')}
|
||||
onChange={setType}
|
||||
options={isEthereum ? settings.availableCryptosEth : settings.availableCryptos}
|
||||
|
||||
@ -72,7 +72,6 @@ function Backup ({ address, onClose }: Props): React.ReactElement<Props> {
|
||||
<div>
|
||||
<Password
|
||||
autoFocus
|
||||
help={t<string>('The account password as specified when creating the account. This is used to encrypt the backup file and subsequently decrypt it when restoring the account.')}
|
||||
isError={isPassTouched && !isPassValid}
|
||||
label={t<string>('password')}
|
||||
onChange={_onChangePass}
|
||||
|
||||
@ -103,7 +103,6 @@ function ChangePass ({ address, className = '', onClose }: Props): React.ReactEl
|
||||
<Modal.Columns hint={t<string>('The existing account password as specified when this account was created or when it was last changed.')}>
|
||||
<Password
|
||||
autoFocus
|
||||
help={t<string>('The existing account password as specified when this account was created or when it was last changed.')}
|
||||
isError={!isOldValid}
|
||||
label={t<string>('your current password')}
|
||||
onChange={_onChangeOld}
|
||||
@ -113,7 +112,6 @@ function ChangePass ({ address, className = '', onClose }: Props): React.ReactEl
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.')}>
|
||||
<Password
|
||||
help={t<string>('The new account password. Once set, all future account unlocks will be performed with this new password.')}
|
||||
isError={!newPass1.isValid}
|
||||
label={t<string>('your new password')}
|
||||
onChange={_onChangeNew1}
|
||||
@ -122,7 +120,6 @@ function ChangePass ({ address, className = '', onClose }: Props): React.ReactEl
|
||||
value={newPass1.password}
|
||||
/>
|
||||
<Password
|
||||
help={t<string>('Verify the password entered above.')}
|
||||
isError={!newPass2.isValid}
|
||||
label={t<string>('password (repeat)')}
|
||||
onChange={_onChangeNew2}
|
||||
|
||||
@ -261,9 +261,6 @@ function Create ({ className = '', onClose, onStatusChange, seed: propsSeed, typ
|
||||
{step === 1 && <>
|
||||
<Modal.Columns hint={t<string>('The secret seed value for this account. Ensure that you keep this in a safe place, with access to the seed you can re-create the account.')}>
|
||||
<TextArea
|
||||
help={isEthereum
|
||||
? t<string>("Your ethereum key pair is derived from your private key. Don't divulge this key.")
|
||||
: t<string>('The private key for your account is derived from this seed. This seed must be kept secret as anyone in its possession has access to the funds of this account. If you validate, use the seed of the session account as the "--key" parameter of your node.')}
|
||||
isAction
|
||||
isError={!isSeedValid}
|
||||
isReadOnly={seedType === 'dev'}
|
||||
@ -302,7 +299,6 @@ function Create ({ className = '', onClose, onStatusChange, seed: propsSeed, typ
|
||||
<Modal.Columns hint={t<string>('If you are moving accounts between applications, ensure that you use the correct type.')}>
|
||||
<Dropdown
|
||||
defaultValue={pairType}
|
||||
help={t<string>('Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use "ed25519".')}
|
||||
label={t<string>('keypair crypto type')}
|
||||
onChange={_onChangePairType}
|
||||
options={
|
||||
@ -336,7 +332,6 @@ function Create ({ className = '', onClose, onStatusChange, seed: propsSeed, typ
|
||||
: (
|
||||
<Modal.Columns hint={t<string>('The derivation path allows you to create different accounts from the same base mnemonic.')}>
|
||||
<Input
|
||||
help={(t<string>('You can set a custom derivation path for this account using the following syntax "/<soft-key>//<hard-key>". The "/<soft-key>" and "//<hard-key>" may be repeated and mixed`. An optional "///<password>" can be used with a mnemonic seed, and may only be specified once.'))}
|
||||
isDisabled={seedType === 'raw'}
|
||||
isError={!!deriveValidation?.error}
|
||||
label={t<string>('secret derivation path')}
|
||||
|
||||
@ -43,7 +43,6 @@ const CreateAccountInputs = ({ name: { isNameValid, name }, onCommit, setName, s
|
||||
<Modal.Columns hint={t<string>('The name for this account and how it will appear under your addresses. With an on-chain identity, it can be made available to others.')}>
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g "name_you_want - stash".')}
|
||||
isError={!isNameValid}
|
||||
label={t<string>('name')}
|
||||
onChange={_onChangeName}
|
||||
|
||||
@ -72,7 +72,6 @@ function CreateEthDerivationPath ({ className,
|
||||
{useCustomIndex
|
||||
? (
|
||||
<InputNumber
|
||||
help={t<string>('You can set a custom derivation index for this account')}
|
||||
isDecimal={false}
|
||||
label={t<string>('Custom index')}
|
||||
onChange={setCustomIndex}
|
||||
@ -81,7 +80,6 @@ function CreateEthDerivationPath ({ className,
|
||||
)
|
||||
: (
|
||||
<Dropdown
|
||||
help={t('The address index (derivation on account) to use')}
|
||||
label={t('address index')}
|
||||
onChange={setAddIndex}
|
||||
options={addressList}
|
||||
@ -98,9 +96,6 @@ function CreateEthDerivationPath ({ className,
|
||||
{useCustomPath
|
||||
? (
|
||||
<Input
|
||||
help={t<string>(
|
||||
'You can set a custom derivation path for this account using the following syntax "m/<purpose>/<coin_type>/<account>/<change>/<address_index>'
|
||||
)}
|
||||
isError={!!deriveValidation?.error}
|
||||
label={t<string>('secret derivation path')}
|
||||
onChange={onChange}
|
||||
|
||||
@ -53,21 +53,18 @@ function CreateSuriLedger ({ className, onChange, seedType }: Props): React.Reac
|
||||
? (
|
||||
<>
|
||||
<Dropdown
|
||||
help={t('The network to derive on')}
|
||||
label={t('Ledger app type (originated from)')}
|
||||
onChange={setChainType}
|
||||
options={netOpts.current}
|
||||
value={chainType}
|
||||
/>
|
||||
<Dropdown
|
||||
help={t('The account type (derivation) to use')}
|
||||
label={t('account type')}
|
||||
onChange={setAccIndex}
|
||||
options={accOps.current}
|
||||
value={accIndex}
|
||||
/>
|
||||
<Dropdown
|
||||
help={t('The address index (derivation on account) to use')}
|
||||
label={t('address index')}
|
||||
onChange={setAddIndex}
|
||||
options={addOps.current}
|
||||
|
||||
@ -76,7 +76,6 @@ function Delegate ({ onClose, previousAmount, previousConviction, previousDelega
|
||||
<Modal.Columns hint={t('The amount to allocate and the conviction that will be applied to all votes made on a referendum.')}>
|
||||
<InputBalance
|
||||
autoFocus
|
||||
help={t<string>('Amount to delegate for any democracy vote. This is adjusted using the available funds on the account.')}
|
||||
isError={!!amountError?.error}
|
||||
isZeroable={false}
|
||||
label={t<string>('delegating amount')}
|
||||
@ -96,7 +95,6 @@ function Delegate ({ onClose, previousAmount, previousConviction, previousDelega
|
||||
onError={setAmountError}
|
||||
/>
|
||||
<ConvictionDropdown
|
||||
help={t<string>('The conviction that will be used for each delegated vote.')}
|
||||
label={t<string>('conviction')}
|
||||
onChange={setConviction}
|
||||
value={conviction}
|
||||
|
||||
@ -148,7 +148,6 @@ function Derive ({ className = '', from, onClose }: Props): React.ReactElement {
|
||||
|
||||
const sourceStatic = (
|
||||
<InputAddress
|
||||
help={t<string>('The selected account to perform the derivation on.')}
|
||||
isDisabled
|
||||
label={t<string>('derive root account')}
|
||||
value={from}
|
||||
@ -178,7 +177,6 @@ function Derive ({ className = '', from, onClose }: Props): React.ReactElement {
|
||||
{sourceStatic}
|
||||
<Password
|
||||
autoFocus
|
||||
help={t<string>('The password to unlock the selected account.')}
|
||||
isError={!!lockedError}
|
||||
label={t<string>('password')}
|
||||
onChange={_onChangeRootPass}
|
||||
@ -195,7 +193,6 @@ function Derive ({ className = '', from, onClose }: Props): React.ReactElement {
|
||||
{sourceStatic}
|
||||
<Input
|
||||
autoFocus
|
||||
help={t<string>('You can set a custom derivation path for this account using the following syntax "/<soft-key>//<hard-key>///<password>". The "/<soft-key>" and "//<hard-key>" may be repeated and mixed`.')}
|
||||
label={t<string>('derivation path')}
|
||||
onChange={setSuri}
|
||||
placeholder={t<string>('//hard/soft')}
|
||||
|
||||
@ -151,7 +151,6 @@ function IdentityMain ({ address, className = '', onClose }: Props): React.React
|
||||
<Modal.Content>
|
||||
<Input
|
||||
autoFocus
|
||||
help={t<string>('The name that will be displayed in your accounts list.')}
|
||||
isError={!okDisplay}
|
||||
label={t<string>('display name')}
|
||||
maxLength={32}
|
||||
@ -164,7 +163,6 @@ function IdentityMain ({ address, className = '', onClose }: Props): React.React
|
||||
value={hasLegal}
|
||||
>
|
||||
<Input
|
||||
help={t<string>('The legal name for this identity.')}
|
||||
isDisabled={!hasLegal}
|
||||
isError={!okLegal}
|
||||
label={t<string>('legal name')}
|
||||
@ -179,7 +177,6 @@ function IdentityMain ({ address, className = '', onClose }: Props): React.React
|
||||
value={hasEmail}
|
||||
>
|
||||
<Input
|
||||
help={t<string>('The email address associated with this identity.')}
|
||||
isDisabled={!hasEmail}
|
||||
isError={!okEmail}
|
||||
label={t<string>('email')}
|
||||
@ -194,7 +191,6 @@ function IdentityMain ({ address, className = '', onClose }: Props): React.React
|
||||
value={hasWeb}
|
||||
>
|
||||
<Input
|
||||
help={t<string>('An URL that is linked to this identity.')}
|
||||
isDisabled={!hasWeb}
|
||||
isError={!okWeb}
|
||||
label={t<string>('web')}
|
||||
@ -209,7 +205,6 @@ function IdentityMain ({ address, className = '', onClose }: Props): React.React
|
||||
value={hasTwitter}
|
||||
>
|
||||
<Input
|
||||
help={t<string>('The twitter name for this identity.')}
|
||||
isDisabled={!hasTwitter}
|
||||
isError={!okTwitter}
|
||||
label={t<string>('twitter')}
|
||||
@ -223,7 +218,6 @@ function IdentityMain ({ address, className = '', onClose }: Props): React.React
|
||||
value={hasRiot}
|
||||
>
|
||||
<Input
|
||||
help={t<string>('a riot name linked to this identity')}
|
||||
isDisabled={!hasRiot}
|
||||
isError={!okRiot}
|
||||
label={t<string>('riot name')}
|
||||
@ -235,7 +229,6 @@ function IdentityMain ({ address, className = '', onClose }: Props): React.React
|
||||
</WrapToggle>
|
||||
<InputBalance
|
||||
defaultValue={api.consts.identity?.basicDeposit}
|
||||
help={t<string>('Total amount of fund that will be reserved. These funds are returned when the identity is cleared')}
|
||||
isDisabled
|
||||
label={t<string>('total deposit')}
|
||||
/>
|
||||
|
||||
@ -124,7 +124,6 @@ function Import ({ className = '', onClose, onStatusChange }: Props): React.Reac
|
||||
<InputFile
|
||||
accept={acceptedFormats}
|
||||
className='full'
|
||||
help={t<string>('Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.')}
|
||||
isError={!pair}
|
||||
label={t<string>('backup file')}
|
||||
onChange={_onChangeFile}
|
||||
@ -135,7 +134,6 @@ function Import ({ className = '', onClose, onStatusChange }: Props): React.Reac
|
||||
<Password
|
||||
autoFocus
|
||||
className='full'
|
||||
help={t<string>('Type the password chosen at the account creation. It was used to encrypt your account\'s private key in the backup file.')}
|
||||
isError={!isPassValid}
|
||||
label={t<string>('password')}
|
||||
onChange={_onChangePass}
|
||||
|
||||
@ -91,7 +91,6 @@ function LedgerModal ({ className, onClose }: Props): React.ReactElement<Props>
|
||||
<Input
|
||||
autoFocus
|
||||
className='full'
|
||||
help={t<string>('Name given to this account to uniquely identity the account to yourself.')}
|
||||
isError={!isNameValid}
|
||||
label={t<string>('name')}
|
||||
onChange={_onChangeName}
|
||||
@ -101,7 +100,6 @@ function LedgerModal ({ className, onClose }: Props): React.ReactElement<Props>
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t('The account type that you wish to create. This is the top-level derivation.')}>
|
||||
<Dropdown
|
||||
help={t('The account type (derivation) to use')}
|
||||
label={t('account type')}
|
||||
onChange={setAccIndex}
|
||||
options={accOps.current}
|
||||
@ -110,7 +108,6 @@ function LedgerModal ({ className, onClose }: Props): React.ReactElement<Props>
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t('The address index on the account that you wish to add. This is the second-level derivation.')}>
|
||||
<Dropdown
|
||||
help={t('The address index (derivation on account) to use')}
|
||||
label={t('address index')}
|
||||
onChange={setAddIndex}
|
||||
options={addOps.current}
|
||||
|
||||
@ -172,7 +172,6 @@ function MultisigApprove ({ className = '', onClose, ongoing, threshold, who }:
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t('The call hash from the list of available and unapproved calls.')}>
|
||||
<Dropdown
|
||||
help={t<string>('The call hashes that have not been executed as of yet.')}
|
||||
label={t<string>('pending hashes {{count}}', {
|
||||
replace: { count: hashes.length }
|
||||
})}
|
||||
@ -213,7 +212,6 @@ function MultisigApprove ({ className = '', onClose, ongoing, threshold, who }:
|
||||
)}
|
||||
<Modal.Columns hint={t('The operation type to apply. For approvals both non-final and final approvals are supported.')}>
|
||||
<Dropdown
|
||||
help={t<string>('Either approve or reject this call.')}
|
||||
label={t<string>('approval type')}
|
||||
onChange={setType}
|
||||
options={callOptRef.current}
|
||||
@ -225,7 +223,6 @@ function MultisigApprove ({ className = '', onClose, ongoing, threshold, who }:
|
||||
<Modal.Columns hint={t('For approvals outstanding approvers will be shown, for hashes that should be cancelled the first approver is required.')}>
|
||||
<InputAddress
|
||||
filter={whoFilter}
|
||||
help={t<string>('The signatory to send the approval/cancel from')}
|
||||
label={t<string>('signatory')}
|
||||
onChange={setSignatory}
|
||||
/>
|
||||
@ -250,7 +247,6 @@ function MultisigApprove ({ className = '', onClose, ongoing, threshold, who }:
|
||||
: (
|
||||
<Input
|
||||
autoFocus
|
||||
help={t('For final approvals, the actual full call data is required to execute the transaction')}
|
||||
isError={!callHex || !!callError}
|
||||
label={t('call data for final approval')}
|
||||
onChange={setCallHex}
|
||||
|
||||
@ -180,7 +180,6 @@ function Multisig ({ className = '', onClose, onStatusChange }: Props): React.Re
|
||||
<InputAddressMulti
|
||||
available={availableSignatories}
|
||||
availableLabel={t<string>('available signatories')}
|
||||
help={t<string>('The addresses that are able to approve multisig transactions. You can select up to {{maxHelpers}} trusted addresses.', { replace: { maxHelpers: MAX_SIGNATORIES } })}
|
||||
maxCount={MAX_SIGNATORIES}
|
||||
onChange={_onChangeAddressMulti}
|
||||
value={signatories}
|
||||
@ -194,7 +193,6 @@ function Multisig ({ className = '', onClose, onStatusChange }: Props): React.Re
|
||||
accept={acceptedFormats}
|
||||
className='full'
|
||||
clearContent={!uploadedSignatories.length && isUploadedFileValid}
|
||||
help={t<string>('Select a JSON key file with the list of signatories.')}
|
||||
isError={!isUploadedFileValid}
|
||||
label={t<string>('upload signatories list')}
|
||||
onChange={_onChangeFile}
|
||||
@ -230,7 +228,6 @@ function Multisig ({ className = '', onClose, onStatusChange }: Props): React.Re
|
||||
)}
|
||||
<Modal.Columns hint={t<string>('The threshold for approval should be less or equal to the number of signatories for this multisig.')}>
|
||||
<InputNumber
|
||||
help={t<string>('The threshold for this multisig')}
|
||||
isError={!isThresholdValid}
|
||||
label={t<string>('threshold')}
|
||||
onChange={_onChangeThreshold}
|
||||
@ -241,7 +238,6 @@ function Multisig ({ className = '', onClose, onStatusChange }: Props): React.Re
|
||||
<Input
|
||||
autoFocus
|
||||
className='full'
|
||||
help={t<string>('Name given to this multisig. You can edit it at any later point in time.')}
|
||||
isError={!isNameValid}
|
||||
label={t<string>('name')}
|
||||
onChange={_onChangeName}
|
||||
|
||||
@ -56,7 +56,6 @@ export default function PasswordInput ({ onChange, onEnter }: Props): React.Reac
|
||||
>
|
||||
<Password
|
||||
className='full'
|
||||
help={t<string>('This password is used to encrypt your private key. It must be strong and unique! You will need it to sign transactions with this account. You can recover this account using this password together with the backup file (generated in the next step).')}
|
||||
isError={!isPass1Valid}
|
||||
label={t<string>('password')}
|
||||
onChange={_onPassword1Change}
|
||||
@ -65,7 +64,6 @@ export default function PasswordInput ({ onChange, onEnter }: Props): React.Reac
|
||||
/>
|
||||
<Password
|
||||
className='full'
|
||||
help={t<string>('Verify the password entered above.')}
|
||||
isError={!isPass2Valid}
|
||||
label={t<string>('password (repeat)')}
|
||||
onChange={onPassword2Change}
|
||||
|
||||
@ -81,7 +81,6 @@ function ProxyAdd ({ className = '', onClose, onStatusChange }: Props): React.Re
|
||||
<Modal.Columns hint={t<string>('The address that has previously setup a proxy to one of the accounts that you control.')}>
|
||||
<InputAddressSimple
|
||||
autoFocus
|
||||
help={t<string>('The address that you have a valid proxy setup for.')}
|
||||
isError={!proxyInfo || proxyInfo.isEmpty}
|
||||
label={t<string>('proxied account')}
|
||||
onChange={setStashAddress}
|
||||
@ -91,7 +90,6 @@ function ProxyAdd ({ className = '', onClose, onStatusChange }: Props): React.Re
|
||||
<Modal.Columns hint={t<string>('The name is for unique identification of the account in your owner lists.')}>
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('Name given to this proxied account. You can edit it at any later point in time.')}
|
||||
isError={!isNameValid}
|
||||
label={t<string>('name')}
|
||||
onChange={_onChangeName}
|
||||
|
||||
@ -81,7 +81,6 @@ function PrevProxy ({ index, onRemove, typeOpts, value: [accountId, type] }: Pre
|
||||
label={t<string>('proxy account')}
|
||||
/>
|
||||
<Dropdown
|
||||
help={'Type of proxy'}
|
||||
isDisabled
|
||||
label={'type'}
|
||||
options={typeOpts}
|
||||
@ -133,7 +132,6 @@ function NewProxy ({ index, onChangeAccount, onChangeType, onRemove, proxiedAcco
|
||||
<MarkError content={t<string>('You should not setup proxies to act as a self-proxy.')} />
|
||||
)}
|
||||
<Dropdown
|
||||
help={'Type of proxy'}
|
||||
label={'type'}
|
||||
onChange={_onChangeType}
|
||||
options={typeOpts}
|
||||
|
||||
@ -138,7 +138,6 @@ function QrModal ({ className = '', onClose, onStatusChange }: Props): React.Rea
|
||||
<Input
|
||||
autoFocus
|
||||
className='full'
|
||||
help={t<string>('Name given to this account. You can change it at any point in the future.')}
|
||||
isError={!isNameValid}
|
||||
label={t<string>('name')}
|
||||
onChange={_onNameChange}
|
||||
|
||||
@ -32,7 +32,6 @@ function RecoverAccount ({ address, className = '', onClose }: Props): React.Rea
|
||||
value={address}
|
||||
/>
|
||||
<InputAddress
|
||||
help={t<string>('Select the account you wish to recover into this account.')}
|
||||
label={t<string>('recover this account')}
|
||||
onChange={setRecover}
|
||||
type='allPlus'
|
||||
|
||||
@ -58,7 +58,6 @@ function RecoverSetup ({ address, className = '', onClose }: Props): React.React
|
||||
<InputAddressMulti
|
||||
available={availableHelpers}
|
||||
availableLabel={t<string>('available social recovery helpers')}
|
||||
help={t<string>('The addresses that are able to help in recovery. You can select up to {{maxHelpers}} trusted helpers.', { replace: { maxHelpers: MAX_HELPERS } })}
|
||||
maxCount={MAX_HELPERS}
|
||||
onChange={setHelpers}
|
||||
value={helpers}
|
||||
@ -67,13 +66,11 @@ function RecoverSetup ({ address, className = '', onClose }: Props): React.React
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('The threshold for approvals and the delay is the protection associated with the account. The delay should be such that any colluding recovery attempts does have a window to stop.')}>
|
||||
<InputNumber
|
||||
help={t<string>('The threshold of vouches that is to be reached for the account to be recovered.')}
|
||||
isError={isErrorThreshold}
|
||||
label={t<string>('recovery threshold')}
|
||||
onChange={setThreshold}
|
||||
/>
|
||||
<InputNumber
|
||||
help={t<string>('The delay between vouching and the availability of the recovered account.')}
|
||||
isError={isErrorDelay}
|
||||
isZeroable
|
||||
label={t<string>('recovery block delay')}
|
||||
|
||||
@ -131,7 +131,6 @@ function Create ({ onClose, onStatusChange }: Props): React.ReactElement<Props>
|
||||
<Input
|
||||
autoFocus
|
||||
className='full'
|
||||
help={t<string>('Paste here the address of the contact you want to add to your address book.')}
|
||||
isError={!isAddressValid}
|
||||
label={t<string>('address')}
|
||||
onChange={_onChangeAddress}
|
||||
@ -141,7 +140,6 @@ function Create ({ onClose, onStatusChange }: Props): React.ReactElement<Props>
|
||||
/>
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('Type the name of your contact. This name will be used across all the apps. It can be edited later on.')}
|
||||
isError={!isNameValid}
|
||||
label={t<string>('name')}
|
||||
onChange={_onChangeName}
|
||||
|
||||
@ -47,7 +47,6 @@ function Join ({ className, members, onClose, unscrupulous: { accounts } }: Prop
|
||||
<Modal.Columns hint={t<string>('This account will be submitted to join the aliance. It will be allocated one of the alliance roles upon joining, starting with Ally.')}>
|
||||
<InputAddress
|
||||
filter={available}
|
||||
help={t<string>('Select the account you wish to join with')}
|
||||
label={t<string>('alliance account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
@ -56,7 +55,6 @@ function Join ({ className, members, onClose, unscrupulous: { accounts } }: Prop
|
||||
<Modal.Columns hint={t('The bond will be reserved for the duration of your alliance membership.')}>
|
||||
<InputBalance
|
||||
defaultValue={api.consts.alliance.allyDeposit}
|
||||
help={t<string>('The deposit that is reserved')}
|
||||
isDisabled
|
||||
label={t<string>('alliance deposit')}
|
||||
/>
|
||||
|
||||
@ -45,7 +45,6 @@ function AwardBounty ({ curatorId, description, index }: Props): React.ReactElem
|
||||
<Modal.Columns hint={t<string>('The Curator account that will be used to send this transaction. Any applicable fees will be paid by this account.')}>
|
||||
<InputAddress
|
||||
defaultValue={curatorId}
|
||||
help={t<string>("Curator's account that will reward the bounty to the implementer.")}
|
||||
isDisabled={true}
|
||||
label={t<string>('award with account')}
|
||||
type='account'
|
||||
@ -54,7 +53,6 @@ function AwardBounty ({ curatorId, description, index }: Props): React.ReactElem
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>("Reward the bounty to an implementer's account. The implementer will be able to claim the funds after a delay period.")}>
|
||||
<InputAddress
|
||||
help={t<string>('Choose the Beneficiary for this bounty.')}
|
||||
label={t<string>('implementer account')}
|
||||
onChange={setBeneficiaryId}
|
||||
withLabel
|
||||
|
||||
@ -47,7 +47,6 @@ function BountyAcceptCurator ({ curatorId, description, fee, index }: Props) {
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('Only the account proposed as curator by the council can create the assign curator transaction')}>
|
||||
<InputAddress
|
||||
help={t<string>('This account will accept the curator role.')}
|
||||
isDisabled
|
||||
label={t<string>('curator account')}
|
||||
type='account'
|
||||
@ -65,7 +64,6 @@ function BountyAcceptCurator ({ curatorId, description, fee, index }: Props) {
|
||||
<Modal.Columns hint={t<string>('This amount will be reserved from your account and returned after bounty claim is confirmed or if you give up, unless you are slashed earlier.')}>
|
||||
<InputBalance
|
||||
defaultValue={deposit.toString()}
|
||||
help={t<string>("Curator's deposit is calculated based on the accepted curator's fee for this bounty.")}
|
||||
isDisabled
|
||||
label={t<string>("curator's deposit")}
|
||||
/>
|
||||
|
||||
@ -68,7 +68,6 @@ function BountyInitiateVoting ({ description, index, proposals }: Props): React.
|
||||
<Modal.Columns hint={t<string>('The council member that will create a motion, submission equates to an "aye" vote for chosen option.')}>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('Select the council member account you wish to use to create a motion for the Bounty.')}
|
||||
label={t<string>('vote with account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
|
||||
@ -79,7 +79,6 @@ function ProposeCuratorAction ({ description, index, proposals, value }: Props):
|
||||
<Modal.Columns hint={t<string>('The council member that will create the motion.')}>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('Select the council member account you wish to use to create a motion for the Bounty.')}
|
||||
label={t<string>('proposing account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
@ -88,7 +87,6 @@ function ProposeCuratorAction ({ description, index, proposals, value }: Props):
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('Choose a curator whose background and expertise is such that they are capable of determining when the task is complete.')}>
|
||||
<InputAddress
|
||||
help={t<string>('Select an account which (after a successful vote) will act as a curator.')}
|
||||
label={t<string>('select curator')}
|
||||
onChange={setCuratorId}
|
||||
withLabel
|
||||
@ -96,7 +94,6 @@ function ProposeCuratorAction ({ description, index, proposals, value }: Props):
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('Part of the bounty value that will go to the Curator as a reward for their work')}>
|
||||
<InputBalance
|
||||
help={t<string>('A reward for a curator, this amount is included in the total value of the bounty.')}
|
||||
isError={!isFeeValid}
|
||||
isZeroable
|
||||
label={t<string>("curator's fee")}
|
||||
|
||||
@ -69,7 +69,6 @@ function BountyCreate () {
|
||||
<Input
|
||||
autoFocus
|
||||
defaultValue={TITLE_DEFAULT_VALUE}
|
||||
help={t<string>('The description of this bounty')}
|
||||
isError={!isTitleValid}
|
||||
label={t<string>('bounty title')}
|
||||
onChange={onTitleChange}
|
||||
@ -81,7 +80,6 @@ function BountyCreate () {
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('How much should be paid out for completed Bounty. Upon funding, the amount will be reserved in treasury.')}>
|
||||
<InputBalance
|
||||
help={t<string>("The total payment amount of this bounty, curator's fee included.")}
|
||||
isError={!isValueValid}
|
||||
isZeroable
|
||||
label={t<string>('bounty requested allocation')}
|
||||
@ -95,14 +93,12 @@ function BountyCreate () {
|
||||
<Modal.Columns hint={t<string>('Proposer bond depends on bounty title length.')}>
|
||||
<InputBalance
|
||||
defaultValue={bond.toString()}
|
||||
help={t<string>('This amount will be reserved from origin account and returned on approval or slashed upon rejection.')}
|
||||
isDisabled
|
||||
label={t<string>('bounty bond')}
|
||||
/>
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('This account will propose the bounty. Bond amount will be reserved on its balance.')}>
|
||||
<InputAddress
|
||||
help={t<string>('Select the account you wish to propose the bounty from.')}
|
||||
isError={!hasFunds}
|
||||
label={t<string>('submit with account')}
|
||||
onChange={setAccountId}
|
||||
|
||||
@ -31,7 +31,6 @@ function BountyRejectCurator ({ curatorId, description, index, toggleOpen }: Pro
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('Only the account proposed as curator by the council can create the unassign curator transaction ')}>
|
||||
<InputAddress
|
||||
help={t<string>('This account will be used to create the unassign curator transaction.')}
|
||||
isDisabled
|
||||
label={t<string>('curator account')}
|
||||
type='account'
|
||||
|
||||
@ -51,7 +51,6 @@ function CloseBounty ({ description, index, toggleOpen }: Props): React.ReactEle
|
||||
<Modal.Columns hint={t<string>('The council member that will create the close bounty proposal, submission equates to an "aye" vote.')}>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('Select the council member account you wish to use to create a proposal for closing bounty.')}
|
||||
label={t<string>('propose with account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
|
||||
@ -42,7 +42,6 @@ function ExtendBountyExpiryAction ({ curatorId, description, index, toggleOpen }
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('Only curator can extend the bounty time.')}>
|
||||
<InputAddress
|
||||
help={t<string>('This account will be used to create an extend bounty expire transaction.')}
|
||||
isDisabled
|
||||
label={t<string>('curator account')}
|
||||
type='account'
|
||||
@ -53,7 +52,6 @@ function ExtendBountyExpiryAction ({ curatorId, description, index, toggleOpen }
|
||||
{expiryDate &&
|
||||
<Modal.Columns hint={t<string>(`Bounty expiry time will be set to ${timeAsText} from now.`)}>
|
||||
<Input
|
||||
help={t<string>('The extended expiry date does not depend on the current expiry date.')}
|
||||
isDisabled
|
||||
label={t<string>('new expiry date and time')}
|
||||
value={`${expiryDate.toLocaleDateString()} ${expiryDate.toLocaleTimeString()}`}
|
||||
@ -64,7 +62,6 @@ function ExtendBountyExpiryAction ({ curatorId, description, index, toggleOpen }
|
||||
<Input
|
||||
autoFocus
|
||||
defaultValue={''}
|
||||
help={t<string>('The note linked to the extension call, explaining the reason behind it.')}
|
||||
label={t<string>('bounty remark')}
|
||||
onChange={onRemarkChange}
|
||||
value={remark}
|
||||
|
||||
@ -31,7 +31,6 @@ function BountyGiveUpCurator ({ curatorId, description, index, toggleOpen }: Pro
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('You are giving up your curator role, the bounty will return to the Funded state. You will get your deposit back.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The Curator account that will give up on it\'s role.')}
|
||||
isDisabled
|
||||
label={t<string>('curator account')}
|
||||
type='account'
|
||||
|
||||
@ -27,7 +27,6 @@ interface Props {
|
||||
interface ActionProperties {
|
||||
filter: string[];
|
||||
header: string;
|
||||
helpMessage: string;
|
||||
params: unknown[] | (() => unknown[]) | undefined;
|
||||
proposingAccountTip: string;
|
||||
tip: string;
|
||||
@ -57,7 +56,6 @@ function SlashCurator ({ action, curatorId, description, index, toggleOpen }: Pr
|
||||
SlashCuratorAction: {
|
||||
filter: allAccounts,
|
||||
header: t('This action will Slash the Curator.'),
|
||||
helpMessage: t('The Curator that will be slashed.'),
|
||||
params: [index],
|
||||
proposingAccountTip: t('The account that will create the transaction.'),
|
||||
tip: t("Curator's deposit will be slashed and curator will be unassigned. Bounty will return to the Funded state."),
|
||||
@ -67,7 +65,6 @@ function SlashCurator ({ action, curatorId, description, index, toggleOpen }: Pr
|
||||
SlashCuratorMotion: {
|
||||
filter: members,
|
||||
header: t('This action will create a Council motion to slash the Curator.'),
|
||||
helpMessage: t('The Curator that will be slashed.'),
|
||||
params: [threshold, unassignCuratorProposal, unassignCuratorProposal?.length],
|
||||
proposingAccountTip: t('The council member that will create the motion, submission equates to an "aye" vote.'),
|
||||
tip: t("If the motion is approved, Curator's deposit will be slashed and Curator will be unassigned. Bounty will return to the Funded state."),
|
||||
@ -77,7 +74,6 @@ function SlashCurator ({ action, curatorId, description, index, toggleOpen }: Pr
|
||||
UnassignCurator: {
|
||||
filter: members,
|
||||
header: t('This action will create a Council motion to unassign the Curator.'),
|
||||
helpMessage: t('The Curator that will be unassigned'),
|
||||
params: [threshold, unassignCuratorProposal, unassignCuratorProposal?.length],
|
||||
proposingAccountTip: t('The council member that will create the motion, submission equates to an "aye" vote.'),
|
||||
tip: t('If the motion is approved, the current Curator will be unassigned and the Bounty will return to the Funded state.'),
|
||||
@ -86,7 +82,7 @@ function SlashCurator ({ action, curatorId, description, index, toggleOpen }: Pr
|
||||
}
|
||||
}), [t, index, unassignCurator, api, allAccounts, councilMod, members, threshold, unassignCuratorProposal]);
|
||||
|
||||
const { filter, helpMessage, params, proposingAccountTip, tip, title, tx } = actionProperties[action];
|
||||
const { filter, params, proposingAccountTip, tip, title, tx } = actionProperties[action];
|
||||
|
||||
if (!tx) {
|
||||
return null;
|
||||
@ -102,7 +98,6 @@ function SlashCurator ({ action, curatorId, description, index, toggleOpen }: Pr
|
||||
<Modal.Columns hint={proposingAccountTip}>
|
||||
<InputAddress
|
||||
filter={filter}
|
||||
help={t<string>('The account that will sign the transaction.')}
|
||||
label={t<string>('proposing account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
@ -112,7 +107,6 @@ function SlashCurator ({ action, curatorId, description, index, toggleOpen }: Pr
|
||||
<Modal.Columns hint={tip}>
|
||||
<InputAddress
|
||||
defaultValue={curatorId}
|
||||
help={helpMessage}
|
||||
isDisabled
|
||||
label={t<string>('current curator')}
|
||||
withLabel
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
// Copyright 2017-2023 @polkadot/app-bounties authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import React, { useRef } from 'react';
|
||||
import React from 'react';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import { LabelHelp } from '@polkadot/react-components';
|
||||
|
||||
import { insertSpaceBeforeCapitalLetter } from './helpers';
|
||||
import { useTranslation } from './translate';
|
||||
import { HelpMessages, StatusName } from './types';
|
||||
import { StatusName } from './types';
|
||||
|
||||
interface Props {
|
||||
bountyStatus: StatusName;
|
||||
@ -16,26 +15,13 @@ interface Props {
|
||||
}
|
||||
|
||||
function BountyStatusView ({ bountyStatus, className = '' }: Props): React.ReactElement<Props> {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const statusHelpMessages = useRef<HelpMessages>({
|
||||
Active: t('This bounty has received approval and is currently being implemented.'),
|
||||
Approved: t('This bounty was approved by the council. When the next spend period starts, it will be funded.'),
|
||||
CuratorProposed: t('Curator has been proposed by council. The bounty is waiting for curator to accept the role.'),
|
||||
Funded: t('This bounty is funded.'),
|
||||
PendingPayout: t('This bounty was completed and the beneficiary was rewarded by the curator. Claiming the payout will be possible after the delay period is over.'),
|
||||
Proposed: t('After a bounty was proposed the council decides whether to fund it or not.')
|
||||
});
|
||||
|
||||
return (
|
||||
<div
|
||||
className={className}
|
||||
data-testid={'bountyStatus'}
|
||||
>
|
||||
{insertSpaceBeforeCapitalLetter(bountyStatus)}
|
||||
<LabelHelp
|
||||
help={statusHelpMessages.current[bountyStatus]}
|
||||
/>
|
||||
<LabelHelp />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@ -207,7 +207,6 @@ function ClaimsApp ({ basePath }: Props): React.ReactElement<Props> {
|
||||
})}</h2>
|
||||
<InputAddress
|
||||
defaultValue={accountId}
|
||||
help={t<string>('The account you want to claim to.')}
|
||||
label={t<string>('claim to account')}
|
||||
onChange={setAccountId}
|
||||
type='all'
|
||||
@ -235,7 +234,6 @@ function ClaimsApp ({ basePath }: Props): React.ReactElement<Props> {
|
||||
<Input
|
||||
autoFocus
|
||||
className='full'
|
||||
help={t<string>('The Ethereum address you used during the pre-sale (starting by "0x")')}
|
||||
label={t<string>('Pre-sale ethereum address')}
|
||||
onChange={onChangeEthereumAddress}
|
||||
value={ethereumAddress || ''}
|
||||
|
||||
@ -46,7 +46,6 @@ function Add ({ onClose }: Props): React.ReactElement {
|
||||
<Modal.Content>
|
||||
<Input
|
||||
autoFocus
|
||||
help={t('The code hash for the on-chain deployed code.')}
|
||||
isError={codeHash.length > 0 && !isCodeHashValid}
|
||||
label={t('code hash')}
|
||||
onChange={setCodeHash}
|
||||
|
||||
@ -139,7 +139,6 @@ function Upload ({ onClose }: Props): React.ReactElement {
|
||||
{step === 1 && (
|
||||
<>
|
||||
<InputAddress
|
||||
help={t('Specify the user account to use for this deployment. Any fees will be deducted from this account.')}
|
||||
isInput={false}
|
||||
label={t('deployment account')}
|
||||
labelExtra={
|
||||
@ -167,7 +166,6 @@ function Upload ({ onClose }: Props): React.ReactElement {
|
||||
<>
|
||||
{!contractAbi.info.source.wasm.length && (
|
||||
<InputFile
|
||||
help={t<string>('The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.')}
|
||||
isError={!isWasmValid}
|
||||
label={t<string>('compiled contract WASM')}
|
||||
onChange={_onAddWasm}
|
||||
@ -186,7 +184,6 @@ function Upload ({ onClose }: Props): React.ReactElement {
|
||||
{step === 2 && contractAbi && (
|
||||
<>
|
||||
<Dropdown
|
||||
help={t<string>('The deployment constructor information for this contract, as provided by the ABI.')}
|
||||
isDisabled={contractAbi.constructors.length <= 1}
|
||||
label={t('deployment constructor')}
|
||||
onChange={setConstructorIndex}
|
||||
@ -200,7 +197,6 @@ function Upload ({ onClose }: Props): React.ReactElement {
|
||||
/>
|
||||
{contractAbi.constructors[constructorIndex].isPayable && (
|
||||
<InputBalance
|
||||
help={t<string>('The balance to transfer from the `origin` to the newly created contract.')}
|
||||
isError={!isValueValid}
|
||||
isZeroable
|
||||
label={t<string>('value')}
|
||||
@ -210,7 +206,6 @@ function Upload ({ onClose }: Props): React.ReactElement {
|
||||
)
|
||||
}
|
||||
<InputMegaGas
|
||||
help={t<string>('The maximum amount of gas that can be used by this deployment, if the code requires more, the deployment will fail')}
|
||||
weight={weight}
|
||||
/>
|
||||
{error && (
|
||||
|
||||
@ -76,7 +76,6 @@ function Add ({ onClose }: Props): React.ReactElement {
|
||||
>
|
||||
<Input
|
||||
autoFocus
|
||||
help={t<string>('The address for the deployed contract instance.')}
|
||||
isError={!isAddressValid}
|
||||
label={t<string>('contract address')}
|
||||
onChange={setAddress}
|
||||
|
||||
@ -118,7 +118,6 @@ function Call ({ className = '', contract, messageIndex, onCallResult, onChangeM
|
||||
>
|
||||
<Modal.Content>
|
||||
<InputAddress
|
||||
help={t<string>('A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.')}
|
||||
isDisabled
|
||||
label={t<string>('contract to use')}
|
||||
type='contract'
|
||||
@ -126,7 +125,6 @@ function Call ({ className = '', contract, messageIndex, onCallResult, onChangeM
|
||||
/>
|
||||
<InputAddress
|
||||
defaultValue={accountId}
|
||||
help={t<string>('Specify the user account to use for this contract call. And fees will be deducted from this account.')}
|
||||
label={t<string>('call from account')}
|
||||
labelExtra={
|
||||
<Available
|
||||
@ -142,7 +140,6 @@ function Call ({ className = '', contract, messageIndex, onCallResult, onChangeM
|
||||
<>
|
||||
<Dropdown
|
||||
defaultValue={messageIndex}
|
||||
help={t<string>('The message to send to this contract. Parameters are adjusted based on the ABI provided.')}
|
||||
isError={message === null}
|
||||
label={t<string>('message to send')}
|
||||
onChange={onChangeMessage}
|
||||
@ -162,7 +159,6 @@ function Call ({ className = '', contract, messageIndex, onCallResult, onChangeM
|
||||
)}
|
||||
{message.isPayable && (
|
||||
<InputBalance
|
||||
help={t<string>('The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.')}
|
||||
isError={!isValueValid}
|
||||
isZeroable
|
||||
label={t<string>('value')}
|
||||
@ -172,7 +168,6 @@ function Call ({ className = '', contract, messageIndex, onCallResult, onChangeM
|
||||
)}
|
||||
<InputMegaGas
|
||||
estimatedWeight={message.isMutating ? estimatedWeight : MAX_CALL_WEIGHT}
|
||||
help={t<string>('The maximum amount of gas to use for this contract call. If the call requires more, it will fail.')}
|
||||
isCall={!message.isMutating}
|
||||
weight={weight}
|
||||
/>
|
||||
|
||||
@ -123,7 +123,6 @@ function Deploy ({ codeHash, constructorIndex = 0, onClose, setConstructorIndex
|
||||
>
|
||||
<Modal.Content>
|
||||
<InputAddress
|
||||
help={t('Specify the user account to use for this deployment. Any fees will be deducted from this account.')}
|
||||
isInput={false}
|
||||
label={t('deployment account')}
|
||||
labelExtra={
|
||||
@ -156,7 +155,6 @@ function Deploy ({ codeHash, constructorIndex = 0, onClose, setConstructorIndex
|
||||
{contractAbi && (
|
||||
<>
|
||||
<Dropdown
|
||||
help={t<string>('The deployment constructor information for this contract, as provided by the ABI.')}
|
||||
isDisabled={contractAbi.constructors.length <= 1}
|
||||
label={t('deployment constructor')}
|
||||
onChange={setConstructorIndex}
|
||||
@ -172,7 +170,6 @@ function Deploy ({ codeHash, constructorIndex = 0, onClose, setConstructorIndex
|
||||
)}
|
||||
{contractAbi?.constructors[constructorIndex].isPayable && (
|
||||
<InputBalance
|
||||
help={t<string>('The balance to transfer from the `origin` to the newly created contract.')}
|
||||
isError={!isValueValid}
|
||||
isZeroable
|
||||
label={t<string>('value')}
|
||||
@ -181,7 +178,6 @@ function Deploy ({ codeHash, constructorIndex = 0, onClose, setConstructorIndex
|
||||
/>
|
||||
)}
|
||||
<Input
|
||||
help={t<string>('A hex or string value that acts as a salt for this deployment.')}
|
||||
isDisabled={!withSalt}
|
||||
label={t<string>('unique deployment salt')}
|
||||
onChange={setSalt}
|
||||
@ -196,7 +192,6 @@ function Deploy ({ codeHash, constructorIndex = 0, onClose, setConstructorIndex
|
||||
/>
|
||||
</Input>
|
||||
<InputMegaGas
|
||||
help={t<string>('The maximum amount of gas that can be used by this deployment, if the code requires more, the deployment will fail.')}
|
||||
weight={weight}
|
||||
/>
|
||||
</Modal.Content>
|
||||
|
||||
@ -40,7 +40,6 @@ function ABI ({ className, contractAbi, errorText, isDisabled, isError, isFull,
|
||||
? (
|
||||
<Labelled
|
||||
className={className}
|
||||
help={t<string>('This is the ABI as supplied. Any calls to the contract will use this information for encoding.')}
|
||||
label={label || t<string>('contract ABI')}
|
||||
labelExtra={onRemove && (
|
||||
<IconLink
|
||||
@ -64,7 +63,6 @@ function ABI ({ className, contractAbi, errorText, isDisabled, isError, isFull,
|
||||
: (
|
||||
<div className={className}>
|
||||
<InputFile
|
||||
help={t<string>('The ABI for the WASM code. The ABI is required and stored for future operations such as sending messages.')}
|
||||
isDisabled={isDisabled}
|
||||
isError={isError}
|
||||
isFull={isFull}
|
||||
|
||||
@ -15,12 +15,11 @@ import { useTranslation } from '../translate';
|
||||
interface Props {
|
||||
className?: string;
|
||||
estimatedWeight?: BN;
|
||||
help: React.ReactNode;
|
||||
isCall?: boolean;
|
||||
weight: UseWeight;
|
||||
}
|
||||
|
||||
function InputMegaGas ({ className, estimatedWeight, help, isCall, weight: { executionTime, isValid, megaGas, percentage, setIsEmpty, setMegaGas } }: Props): React.ReactElement<Props> {
|
||||
function InputMegaGas ({ className, estimatedWeight, isCall, weight: { executionTime, isValid, megaGas, percentage, setIsEmpty, setMegaGas } }: Props): React.ReactElement<Props> {
|
||||
const { t } = useTranslation();
|
||||
const [withEstimate, setWithEstimate] = useState(true);
|
||||
|
||||
@ -45,7 +44,6 @@ function InputMegaGas ({ className, estimatedWeight, help, isCall, weight: { exe
|
||||
<div className={className}>
|
||||
<InputNumber
|
||||
defaultValue={estimatedMg && isDisabled ? estimatedMg.toString() : undefined}
|
||||
help={help}
|
||||
isDisabled={isDisabled}
|
||||
isError={!isValid}
|
||||
isZeroable={isCall}
|
||||
|
||||
@ -24,11 +24,6 @@ function InputName ({ className, isBusy, isContract, isError, onChange, onEnter,
|
||||
return (
|
||||
<Input
|
||||
className={className}
|
||||
help={t<string>(
|
||||
isContract
|
||||
? 'A name for the deployed contract to help users distinguish. Only used for display purposes.'
|
||||
: 'A name for this WASM code to help users distinguish. Only used for display purposes.'
|
||||
)}
|
||||
isDisabled={isBusy}
|
||||
isError={isError}
|
||||
label={t<string>(
|
||||
|
||||
@ -47,7 +47,6 @@ function Close ({ hasFailed, hash, idNumber, proposal }: Props): React.ReactElem
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('The council account that will apply the close for the current round.')}>
|
||||
<InputAddress
|
||||
help={t<string>('Select the account you wish close the proposal with.')}
|
||||
label={t<string>('close from account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
|
||||
@ -96,7 +96,6 @@ function ProposeExternal ({ className = '', isMember, members }: Props): React.R
|
||||
<Modal.Columns hint={t<string>('The council account for the proposal. The selection is filtered by the current members.')}>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('Select the account you wish to make the proposal with.')}
|
||||
label={t<string>('propose from account')}
|
||||
onChange={setAcountId}
|
||||
type='account'
|
||||
@ -106,7 +105,6 @@ function ProposeExternal ({ className = '', isMember, members }: Props): React.R
|
||||
<Modal.Columns hint={t<string>('The hash of the proposal image, either already submitted or valid for the specific call.')}>
|
||||
<Input
|
||||
autoFocus
|
||||
help={t<string>('The preimage hash of the proposal')}
|
||||
isError={!isHashValid}
|
||||
label={t<string>('preimage hash')}
|
||||
onChange={_onChangeHash}
|
||||
|
||||
@ -81,7 +81,6 @@ function Propose ({ isMember, members }: Props): React.ReactElement<Props> | nul
|
||||
<Modal.Columns hint={t<string>('The council account for the proposal. The selection is filtered by the current members.')}>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('Select the account you wish to make the proposal with.')}
|
||||
label={t<string>('propose from account')}
|
||||
onChange={setAcountId}
|
||||
type='account'
|
||||
@ -91,7 +90,6 @@ function Propose ({ isMember, members }: Props): React.ReactElement<Props> | nul
|
||||
<Modal.Columns hint={t<string>('The desired threshold. Here set to a default of 50%+1, as applicable for general proposals.')}>
|
||||
<InputNumber
|
||||
className='medium'
|
||||
help={t<string>('The minimum number of council votes required to approve this motion')}
|
||||
isError={!threshold || threshold.eqn(0) || threshold.gtn(members.length)}
|
||||
label={t<string>('threshold')}
|
||||
onChange={_setThreshold}
|
||||
|
||||
@ -87,7 +87,6 @@ function Slashing ({ className = '', isMember, members }: Props): React.ReactEle
|
||||
<Modal.Columns hint={t<string>('The council account for the proposal. The selection is filtered by the current members.')}>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('Select the account you wish to make the proposal with.')}
|
||||
label={t<string>('propose from account')}
|
||||
onChange={setAcountId}
|
||||
type='account'
|
||||
@ -99,7 +98,6 @@ function Slashing ({ className = '', isMember, members }: Props): React.ReactEle
|
||||
? (
|
||||
<Dropdown
|
||||
defaultValue={eras[0].value}
|
||||
help={t<string>('The unapplied slashed era to cancel.')}
|
||||
label={t<string>('the era to cancel for')}
|
||||
onChange={setSelectedEra}
|
||||
options={eras}
|
||||
|
||||
@ -33,7 +33,6 @@ function SubmitCandidacy ({ electionsInfo }: Props): React.ReactElement<Props> |
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('This account will appear in the list of candidates. With enough votes in an election, it will become either a runner-up or a council member.')}>
|
||||
<InputAddress
|
||||
help={t<string>('Select the account you wish to submit for candidacy.')}
|
||||
label={t<string>('candidate account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
@ -43,7 +42,6 @@ function SubmitCandidacy ({ electionsInfo }: Props): React.ReactElement<Props> |
|
||||
<Modal.Columns hint={t('The bond will be reserved for the duration of your candidacy and membership.')}>
|
||||
<InputBalance
|
||||
defaultValue={api.consts[modLocation].candidacyBond}
|
||||
help={t<string>('The bond that is reserved')}
|
||||
isDisabled
|
||||
label={t<string>('candidacy bond')}
|
||||
/>
|
||||
|
||||
@ -86,7 +86,6 @@ function Vote ({ electionsInfo }: Props): React.ReactElement<Props> | null {
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('The vote will be recorded for the selected account.')}>
|
||||
<InputAddress
|
||||
help={t<string>('This account will be use to approve each candidate.')}
|
||||
label={t<string>('voting account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
@ -110,7 +109,6 @@ function Vote ({ electionsInfo }: Props): React.ReactElement<Props> | null {
|
||||
available={available}
|
||||
availableLabel={t<string>('council candidates')}
|
||||
defaultValue={defaultVotes}
|
||||
help={t<string>('Select and order council candidates you wish to vote for.')}
|
||||
maxCount={MAX_VOTES}
|
||||
onChange={setVotes}
|
||||
valueLabel={t<string>('my ordered votes')}
|
||||
@ -120,7 +118,6 @@ function Vote ({ electionsInfo }: Props): React.ReactElement<Props> | null {
|
||||
<Modal.Columns hint={t('The amount will be reserved for the duration of your vote')}>
|
||||
<InputBalance
|
||||
defaultValue={bondValue}
|
||||
help={t<string>('The amount that is reserved')}
|
||||
isDisabled
|
||||
label={t<string>('voting bond')}
|
||||
/>
|
||||
|
||||
@ -115,14 +115,12 @@ function Fasttrack ({ imageHash, members, threshold }: Props): React.ReactElemen
|
||||
<Modal.Columns hint={t<string>('The voting period and delay to apply to this proposal. The threshold is calculated from these values.')}>
|
||||
<InputNumber
|
||||
autoFocus
|
||||
help={t<string>('The voting period to apply in blocks')}
|
||||
isZeroable={false}
|
||||
label={t<string>('voting period')}
|
||||
onChange={setVotingBlocks}
|
||||
value={votingBlocks}
|
||||
/>
|
||||
<InputNumber
|
||||
help={t<string>('The delay period to apply in blocks')}
|
||||
isZeroable={false}
|
||||
label={t<string>('delay')}
|
||||
onChange={setDelayBlocks}
|
||||
|
||||
@ -70,7 +70,6 @@ function PreImage ({ className = '', imageHash, isImminent = false, onClose }: P
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('This account will pay the fees for the preimage, based on the size thereof.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The account you want to register the preimage from')}
|
||||
label={t<string>('send from account')}
|
||||
labelExtra={
|
||||
<Available
|
||||
@ -95,7 +94,6 @@ function PreImage ({ className = '', imageHash, isImminent = false, onClose }: P
|
||||
onChange={setProposal}
|
||||
/>
|
||||
<Static
|
||||
help={t<string>('The hash of the selected proposal, use it for submitting the proposal')}
|
||||
label={t<string>('preimage hash')}
|
||||
value={encodedHash}
|
||||
withCopy
|
||||
@ -105,7 +103,6 @@ function PreImage ({ className = '', imageHash, isImminent = false, onClose }: P
|
||||
<Modal.Columns hint={t<string>('The calculated storage costs based on the size and the per-bytes fee.')}>
|
||||
<InputBalance
|
||||
defaultValue={storageFee}
|
||||
help={t<string>('The amount reserved to store this image')}
|
||||
isDisabled
|
||||
label={t<string>('calculated storage fee')}
|
||||
/>
|
||||
|
||||
@ -51,7 +51,6 @@ function Propose ({ className = '', onClose }: Props): React.ReactElement<Props>
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('The proposal will be registered from this account and the balance lock will be applied here.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The account you want to register the proposal from')}
|
||||
label={t<string>('send from account')}
|
||||
labelExtra={
|
||||
<Available
|
||||
@ -66,7 +65,6 @@ function Propose ({ className = '', onClose }: Props): React.ReactElement<Props>
|
||||
<Modal.Columns hint={t<string>('The hash of the preimage for the proposal as previously submitted or intended.')}>
|
||||
<Input
|
||||
autoFocus
|
||||
help={t<string>('The preimage hash of the proposal')}
|
||||
isError={!isHashValid}
|
||||
label={t<string>('preimage hash')}
|
||||
onChange={_onChangeHash}
|
||||
@ -76,14 +74,12 @@ function Propose ({ className = '', onClose }: Props): React.ReactElement<Props>
|
||||
<Modal.Columns hint={t<string>('The associated deposit for this proposal should be more then the minimum on-chain deposit required. It will be locked until the proposal passes.')}>
|
||||
<InputBalance
|
||||
defaultValue={api.consts.democracy.minimumDeposit}
|
||||
help={t<string>('The locked value for this proposal')}
|
||||
isError={!hasMinLocked}
|
||||
label={t<string>('locked balance')}
|
||||
onChange={setBalance}
|
||||
/>
|
||||
<InputBalance
|
||||
defaultValue={api.consts.democracy.minimumDeposit}
|
||||
help={t<string>('The minimum deposit required')}
|
||||
isDisabled
|
||||
label={t<string>('minimum deposit')}
|
||||
/>
|
||||
|
||||
@ -48,7 +48,6 @@ function Seconding ({ deposit, depositors, image, proposalId }: Props): React.Re
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('Endorsing a proposal that indicates your backing for the proposal. Proposals with greater interest moves up the queue for potential next referendums.')}>
|
||||
<InputAddress
|
||||
help={t<string>('Select the account you wish to endorse with. This will lock your funds until the proposal is either approved or rejected')}
|
||||
label={t<string>('endorse with account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
|
||||
@ -70,7 +70,6 @@ function Voting ({ proposal, referendumId }: Props): React.ReactElement<Props> |
|
||||
/>
|
||||
)}
|
||||
<ConvictionDropdown
|
||||
help={t<string>('The conviction to use for this vote, with an appropriate lock period.')}
|
||||
label={t<string>('conviction')}
|
||||
onChange={setConviction}
|
||||
value={conviction}
|
||||
|
||||
@ -296,7 +296,6 @@ function UploadModal ({ className, file, onClose = NOOP, onSuccess = NOOP }: Pro
|
||||
</Modal.Columns>
|
||||
<Modal.Columns>
|
||||
<Dropdown
|
||||
help={t<string>('File streaming and wallet authentication will be processed by the chosen gateway.')}
|
||||
isDisabled={isBusy}
|
||||
label={t<string>('Select a Web3 IPFS Gateway')}
|
||||
onChange={_onChangeGateway}
|
||||
@ -306,7 +305,6 @@ function UploadModal ({ className, file, onClose = NOOP, onSuccess = NOOP }: Pro
|
||||
</Modal.Columns>
|
||||
<Modal.Columns>
|
||||
<Dropdown
|
||||
help={t<string>('Your file will be pinned to IPFS for long-term storage.')}
|
||||
isDisabled={true}
|
||||
label={t<string>('Select a Web3 IPFS Pinner')}
|
||||
onChange={_onChangePinner}
|
||||
@ -331,7 +329,6 @@ function UploadModal ({ className, file, onClose = NOOP, onSuccess = NOOP }: Pro
|
||||
{
|
||||
!upState.up && isLocked && !isInjected &&
|
||||
<Password
|
||||
help={t<string>('The account\'s password specified at the creation of this account.')}
|
||||
isError={false}
|
||||
label={t<string>('password')}
|
||||
onChange={setPassword}
|
||||
|
||||
@ -58,7 +58,6 @@ function Bid ({ className, isDisabled, proxies }: Props): React.ReactElement<Pro
|
||||
<Modal.Columns hint={t<string>('This account will make the bid for the gilt and pay all associated fees.')}>
|
||||
<InputAddress
|
||||
filter={proxiedAccounts}
|
||||
help={t<string>('The account you want to register the bid from')}
|
||||
label={t<string>('use proxied account')}
|
||||
labelExtra={
|
||||
<Available
|
||||
@ -72,7 +71,6 @@ function Bid ({ className, isDisabled, proxies }: Props): React.ReactElement<Pro
|
||||
{accountId && (
|
||||
<InputAddress
|
||||
filter={proxies[accountId]}
|
||||
help={t<string>('The associated proxy to use for this account')}
|
||||
label={t<string>('send via proxy')}
|
||||
onChange={setProxyId}
|
||||
type='account'
|
||||
@ -90,7 +88,6 @@ function Bid ({ className, isDisabled, proxies }: Props): React.ReactElement<Pro
|
||||
/>
|
||||
<InputBalance
|
||||
defaultValue={api.consts.gilt.minFreeze}
|
||||
help={t<string>('The minimum amount that is allowed as a bid')}
|
||||
isDisabled
|
||||
label={t<string>('minimum freeze amount')}
|
||||
/>
|
||||
|
||||
@ -97,7 +97,6 @@ function RegisterThread ({ className, nextParaId, onClose, ownedIds }: Props): R
|
||||
}
|
||||
<Modal.Columns hint={t<string>('The WASM validation function for this parachain.')}>
|
||||
<InputFile
|
||||
help={t<string>('The compiled runtime WASM for the parachain you wish to register.')}
|
||||
isError={!wasm}
|
||||
label={t<string>('code')}
|
||||
onChange={_setWasm}
|
||||
@ -105,7 +104,6 @@ function RegisterThread ({ className, nextParaId, onClose, ownedIds }: Props): R
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('The genesis state for this parachain.')}>
|
||||
<InputFile
|
||||
help={t<string>('The genesis state for the parachain.')}
|
||||
isError={!genesisState}
|
||||
label={t<string>('initial state')}
|
||||
onChange={_setGenesisState}
|
||||
|
||||
@ -119,14 +119,12 @@ function Propose ({ className, onClose }: Props): React.ReactElement<Props> {
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('The WASM validation function as well as the genesis state for this parachain.')}>
|
||||
<InputWasm
|
||||
help={t<string>('The compiled runtime WASM for the parachain you wish to register.')}
|
||||
isError={!isWasmValid}
|
||||
label={t<string>('validation code')}
|
||||
onChange={_setWasm}
|
||||
placeholder={wasm && !isWasmValid && t<string>('The code is not recognized as being in valid WASM format')}
|
||||
/>
|
||||
<InputFile
|
||||
help={t<string>('The genesis state for the parachain.')}
|
||||
isError={!genesisState}
|
||||
label={t<string>('genesis state')}
|
||||
onChange={_setGenesisState}
|
||||
|
||||
@ -95,13 +95,11 @@ function Partial ({ className, onChange }: Props): React.ReactElement<Props> {
|
||||
onChange={setProposal}
|
||||
/>
|
||||
<Static
|
||||
help={t<string>('The hash of the selected proposal, use it for submitting the proposal')}
|
||||
label={t<string>('preimage hash')}
|
||||
value={encodedHash}
|
||||
withCopy
|
||||
/>
|
||||
<Static
|
||||
help={t<string>('The encoded length of the selected proposal, as available on-chain')}
|
||||
label={t<string>('preimage length')}
|
||||
value={encodedLength || '0'}
|
||||
withCopy
|
||||
@ -114,7 +112,6 @@ function Partial ({ className, onChange }: Props): React.ReactElement<Props> {
|
||||
>
|
||||
<InputBalance
|
||||
defaultValue={storageFee}
|
||||
help={t<string>('The amount reserved to store this image')}
|
||||
isDisabled
|
||||
label={t<string>('calculated storage fee')}
|
||||
/>
|
||||
|
||||
@ -37,7 +37,6 @@ function Add ({ className, imageHash }: Props): React.ReactElement<Props> {
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('This account will pay the fees for the preimage, based on the size thereof.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The account you want to register the preimage from')}
|
||||
label={t<string>('send from account')}
|
||||
labelExtra={
|
||||
<Available
|
||||
|
||||
@ -38,7 +38,6 @@ function Deposit ({ className = '', id, palletReferenda, track }: Props): React.
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('The deposit will be registered from this account and the balance lock will be applied here.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The account you want to deposit from')}
|
||||
label={t<string>('deposit from account')}
|
||||
labelExtra={
|
||||
<Available
|
||||
|
||||
@ -35,7 +35,6 @@ function Refund ({ className = '', id, palletReferenda }: Props): React.ReactEle
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('The transaction will be submitted from this account.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The account you want to refund from')}
|
||||
label={t<string>('refund from account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
|
||||
@ -194,7 +194,6 @@ function Submit ({ className = '', isMember, members, palletReferenda, tracks }:
|
||||
<Modal.Columns hint={t<string>('The proposal will be registered from this account and the balance lock will be applied here.')}>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('The account you want to propose from')}
|
||||
label={t<string>('propose from account')}
|
||||
labelExtra={
|
||||
<Available
|
||||
@ -246,7 +245,6 @@ function Submit ({ className = '', isMember, members, palletReferenda, tracks }:
|
||||
>
|
||||
<Input
|
||||
autoFocus
|
||||
help={t<string>('The preimage hash of the proposal')}
|
||||
isError={!isImageHashValid}
|
||||
label={t<string>('preimage hash')}
|
||||
onChange={_onChangeImageHash}
|
||||
@ -254,7 +252,6 @@ function Submit ({ className = '', isMember, members, palletReferenda, tracks }:
|
||||
/>
|
||||
<InputNumber
|
||||
defaultValue={imageLenDefault}
|
||||
help={t<string>('The preimage length of the proposal')}
|
||||
isDisabled={!!preimage?.proposalLength && !preimage?.proposalLength.isZero() && isImageHashValid && isImageLenValid}
|
||||
isError={!isImageLenValid}
|
||||
key='inputLength'
|
||||
|
||||
@ -51,7 +51,6 @@ function VoteStandard ({ accountId, id, isAye, onChange, voteLockingPeriod }: Pr
|
||||
onChange={setBalance}
|
||||
/>
|
||||
<ConvictionDropdown
|
||||
help={t<string>('The conviction to use for this vote, with an appropriate lock period.')}
|
||||
label={t<string>('conviction')}
|
||||
onChange={setConviction}
|
||||
value={conviction}
|
||||
|
||||
@ -82,7 +82,6 @@ function Selection ({ queueRpc }: Props): React.ReactElement<Props> {
|
||||
<section className='rpc--Selection'>
|
||||
<InputRpc
|
||||
defaultValue={defaultMethod}
|
||||
help={t<string>('The actual JSONRPC module and function to make a call to.')}
|
||||
label={t<string>('call the selected endpoint')}
|
||||
onChange={_onChangeMethod}
|
||||
/>
|
||||
|
||||
@ -74,7 +74,6 @@ function Selection ({ onSubmit }: Props): React.ReactElement<Props> {
|
||||
return (
|
||||
<section className='runtime--Selection'>
|
||||
<InputCalls
|
||||
help={t<string>('The actual runtime function to make a call to.')}
|
||||
label={t<string>('call the selected endpoint')}
|
||||
onChange={_onChangeMethod}
|
||||
/>
|
||||
|
||||
@ -170,7 +170,6 @@ function Developer ({ className = '', onStatusChange }: Props): React.ReactEleme
|
||||
<div className='full'>
|
||||
<InputFile
|
||||
clearContent={typesHasNoEntries && isTypesValid}
|
||||
help={t<string>('Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.')}
|
||||
isError={!isTypesValid}
|
||||
label={t<string>('Additional types as a JSON file (or edit below)')}
|
||||
onChange={_onChangeTypes}
|
||||
|
||||
@ -115,7 +115,6 @@ function General ({ className = '' }: Props): React.ReactElement<Props> {
|
||||
<div className='ui--row'>
|
||||
<Dropdown
|
||||
defaultValue={prefix}
|
||||
help={t<string>('Override the default ss58 prefix for address generation')}
|
||||
label={t<string>('address prefix')}
|
||||
onChange={_handleChange('prefix')}
|
||||
options={prefixOptions}
|
||||
@ -124,7 +123,6 @@ function General ({ className = '' }: Props): React.ReactElement<Props> {
|
||||
<div className='ui--row'>
|
||||
<Dropdown
|
||||
defaultValue={icon}
|
||||
help={t<string>('Override the default identity icon display with a specific theme')}
|
||||
label={t<string>('default icon theme')}
|
||||
onChange={_handleChange('icon')}
|
||||
options={iconOptions}
|
||||
@ -155,7 +153,6 @@ function General ({ className = '' }: Props): React.ReactElement<Props> {
|
||||
? ledgerConn
|
||||
: ledgerConnOptions[0].value
|
||||
}
|
||||
help={t<string>('Manage your connection to Ledger S')}
|
||||
isDisabled={!hasWebUsb}
|
||||
label={t<string>('manage hardware connections')}
|
||||
onChange={_handleChange('ledgerConn')}
|
||||
|
||||
@ -114,7 +114,6 @@ function NetworkSpecs ({ chainInfo, className }: Props): React.ReactElement<Prop
|
||||
<div className='settings--networkSpecs-name'>
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('Name of the network. It is only for display purposes.')}
|
||||
isDisabled
|
||||
label={t<string>('Network Name')}
|
||||
value={networkSpecs.title}
|
||||
@ -137,7 +136,6 @@ function NetworkSpecs ({ chainInfo, className }: Props): React.ReactElement<Prop
|
||||
<div>
|
||||
<Input
|
||||
className='full settings--networkSpecs-colorInput'
|
||||
help={t<string>('The color used to distinguish this network with others, use color code with 3 or 6 digits, like "#FFF" or "#111111"')}
|
||||
isError={!_checkColorValid()}
|
||||
label={t<string>('Color')}
|
||||
onChange={_onChangeColor}
|
||||
@ -161,7 +159,6 @@ function NetworkSpecs ({ chainInfo, className }: Props): React.ReactElement<Prop
|
||||
<td>
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched')}
|
||||
isDisabled
|
||||
label={t<string>('Genesis Hash')}
|
||||
value={networkSpecs.genesisHash}
|
||||
@ -173,7 +170,6 @@ function NetworkSpecs ({ chainInfo, className }: Props): React.ReactElement<Prop
|
||||
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('Unit decides the name of 1 unit token, e.g. "DOT" for Polkadot')}
|
||||
isDisabled
|
||||
label={t<string>('Unit')}
|
||||
value={networkSpecs.unit}
|
||||
@ -184,7 +180,6 @@ function NetworkSpecs ({ chainInfo, className }: Props): React.ReactElement<Prop
|
||||
<td>
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('Prefix indicates the ss58 address format in this network, it is a 16 bit unsigned integer that describes the precise format of the bytes of the address')}
|
||||
isDisabled
|
||||
label={t<string>('Address Prefix')}
|
||||
value={networkSpecs.prefix.toString()}
|
||||
@ -195,7 +190,6 @@ function NetworkSpecs ({ chainInfo, className }: Props): React.ReactElement<Prop
|
||||
<td>
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('Decimals decides the smallest unit of the token, which is 1/10^decimals')}
|
||||
isDisabled
|
||||
label={t<string>('Decimals')}
|
||||
value={networkSpecs.decimals.toString()}
|
||||
@ -206,7 +200,6 @@ function NetworkSpecs ({ chainInfo, className }: Props): React.ReactElement<Prop
|
||||
<td>
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('Chain type (ethereum compatible or regular substrate)')}
|
||||
isDisabled
|
||||
label={t<string>('Chain Type')}
|
||||
value={networkSpecs.chainType}
|
||||
|
||||
@ -123,7 +123,6 @@ function Sign ({ className = '' }: Props): React.ReactElement<Props> {
|
||||
<div className='ui--row'>
|
||||
<InputAddress
|
||||
className='full'
|
||||
help={t<string>('select the account you wish to sign data with')}
|
||||
isInput={false}
|
||||
label={t<string>('account')}
|
||||
onChange={_onChangeAccount}
|
||||
@ -135,7 +134,6 @@ function Sign ({ className = '' }: Props): React.ReactElement<Props> {
|
||||
<Input
|
||||
autoFocus
|
||||
className='full'
|
||||
help={t<string>('The input data to sign. This can be either specified as a hex value (0x-prefix) or as a string.')}
|
||||
label={t<string>('sign the following data')}
|
||||
onChange={_onChangeData}
|
||||
value={data}
|
||||
@ -144,7 +142,6 @@ function Sign ({ className = '' }: Props): React.ReactElement<Props> {
|
||||
<div className='ui--row'>
|
||||
<Static
|
||||
className='medium'
|
||||
help={t<string>('Detection on the input string to determine if it is hex or non-hex.')}
|
||||
label={t<string>('hex input data')}
|
||||
value={
|
||||
isHexData
|
||||
@ -156,7 +153,6 @@ function Sign ({ className = '' }: Props): React.ReactElement<Props> {
|
||||
<div className='ui--row'>
|
||||
<Output
|
||||
className='full'
|
||||
help={t<string>('The resulting signature of the input data, as done with the crypto algorithm from the account. (This could be non-deterministic for some types such as sr25519).')}
|
||||
isHidden={signature.length === 0}
|
||||
isMonospace
|
||||
label={t<string>('signature of supplied data')}
|
||||
|
||||
@ -68,7 +68,6 @@ function Unlock ({ onClose, onUnlock, pair }: Props): React.ReactElement<Props>
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('This account that will perform the message signing.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The selected account to be unlocked.')}
|
||||
isDisabled
|
||||
label={t<string>('account')}
|
||||
value={address}
|
||||
@ -77,7 +76,6 @@ function Unlock ({ onClose, onUnlock, pair }: Props): React.ReactElement<Props>
|
||||
<Modal.Columns hint={t<string>('Unlock the account for signing. Once active the signature will be generated based on the content provided.')}>
|
||||
<Password
|
||||
autoFocus
|
||||
help={t<string>('The account\'s password specified at the creation of this account.')}
|
||||
isError={!!unlockError}
|
||||
label={t<string>('password')}
|
||||
onChange={setPassword}
|
||||
|
||||
@ -79,7 +79,6 @@ function Verify ({ className = '' }: Props): React.ReactElement {
|
||||
<div className='ui--row'>
|
||||
<InputAddress
|
||||
className='full'
|
||||
help={t<string>('The account that signed the input')}
|
||||
isError={!isValidPk}
|
||||
isInput
|
||||
label={t<string>('verify using address')}
|
||||
@ -90,7 +89,6 @@ function Verify ({ className = '' }: Props): React.ReactElement {
|
||||
<Input
|
||||
autoFocus
|
||||
className='full'
|
||||
help={t<string>('The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.')}
|
||||
label={t<string>('using the following data')}
|
||||
onChange={_onChangeData}
|
||||
value={data}
|
||||
@ -106,7 +104,6 @@ function Verify ({ className = '' }: Props): React.ReactElement {
|
||||
</div>
|
||||
<Input
|
||||
className='full'
|
||||
help={t<string>('The signature as by the account being checked, supplied as a hex-formatted string.')}
|
||||
isError={!isValidSignature}
|
||||
label={t<string>('the supplied signature')}
|
||||
onChange={_onChangeSignature}
|
||||
@ -116,14 +113,12 @@ function Verify ({ className = '' }: Props): React.ReactElement {
|
||||
<div className='ui--row'>
|
||||
<Dropdown
|
||||
defaultValue={cryptoType}
|
||||
help={t<string>('Cryptography used to create this signature. It is auto-detected on valid signatures.')}
|
||||
isDisabled
|
||||
label={t<string>('signature crypto type')}
|
||||
options={cryptoOptions}
|
||||
/>
|
||||
<Static
|
||||
className='medium'
|
||||
help={t<string>('Detection on the input string to determine if it is hex or non-hex.')}
|
||||
label={t<string>('hex input data')}
|
||||
value={
|
||||
isHexData
|
||||
|
||||
@ -29,7 +29,6 @@ function BidNew ({ onClose }: Props): React.ReactElement<Props> {
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('Your candidate/bid account. Once accepted this account will become a member.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The actual account you wish to submit the bid with')}
|
||||
label={t<string>('bid account')}
|
||||
onChange={setAccount}
|
||||
type='account'
|
||||
@ -38,7 +37,6 @@ function BidNew ({ onClose }: Props): React.ReactElement<Props> {
|
||||
<Modal.Columns hint={t<string>('The amount to tie to your bid. The lowest bidder moves forward.')}>
|
||||
<InputBalance
|
||||
autoFocus
|
||||
help={t<string>('The amount to associate with your bid, should be less than the pot.')}
|
||||
label={t<string>('bid amount')}
|
||||
onChange={setAmount}
|
||||
/>
|
||||
|
||||
@ -36,12 +36,10 @@ function CandidateVoting ({ candidateId, isMember, ownMembers }: Props): React.R
|
||||
<Modal.Content>
|
||||
<InputAddress
|
||||
filter={ownMembers}
|
||||
help={t<string>('The address to vote from (must be a member)')}
|
||||
label={t<string>('vote from account')}
|
||||
onChange={setAccountId}
|
||||
/>
|
||||
<Dropdown
|
||||
help={t<string>('Approve this candidacy.')}
|
||||
label={t<string>('vote for candidate')}
|
||||
onChange={setVote}
|
||||
options={voteOptsRef.current}
|
||||
|
||||
@ -35,12 +35,10 @@ function DefenderVoting ({ isMember, ownMembers }: Props): React.ReactElement<Pr
|
||||
<Modal.Content>
|
||||
<InputAddress
|
||||
filter={ownMembers}
|
||||
help={t<string>('The address to vote from (must be a member)')}
|
||||
label={t<string>('vote from account')}
|
||||
onChange={setAccountId}
|
||||
/>
|
||||
<Dropdown
|
||||
help={t<string>('Approve or reject this defender.')}
|
||||
label={t<string>('vote for defender')}
|
||||
onChange={setVote}
|
||||
options={voteOptsRef.current}
|
||||
|
||||
@ -71,7 +71,6 @@ function BondExtra ({ controllerId, onClose, stakingInfo, stashId }: Props): Rea
|
||||
<InputBalance
|
||||
autoFocus
|
||||
defaultValue={startBalance}
|
||||
help={t<string>('Amount to add to the currently bonded funds. This is adjusted using the available funds on the account.')}
|
||||
isError={!!amountError?.error || !maxAdditional || maxAdditional.isZero()}
|
||||
label={t<string>('additional funds to bond')}
|
||||
labelExtra={
|
||||
|
||||
@ -68,7 +68,6 @@ function KickNominees ({ className = '', controllerId, nominating, onClose, stas
|
||||
available={nominators}
|
||||
availableLabel={t<string>('existing/active nominators')}
|
||||
defaultValue={nominating}
|
||||
help={t<string>('Filter available nominators based on name, address or short account index.')}
|
||||
maxCount={MAX_KICK}
|
||||
onChange={setSelected}
|
||||
valueLabel={t<string>('nominators to be removed')}
|
||||
|
||||
@ -82,35 +82,30 @@ function ListNominees ({ nominating, stashId }: Props): React.ReactElement<Props
|
||||
{renOver && (
|
||||
<ExpanderScroll
|
||||
className='stakeOver'
|
||||
help={t<string>('These validators are active but only the top {{max}} nominators by backing stake will be receiving rewards. The nominating stash is not one of those to be rewarded in the current era.', { replace: { max: api.consts.staking?.maxNominatorRewardedPerValidator?.toString() } })}
|
||||
renderChildren={renOver[1]}
|
||||
summary={t<string>('Oversubscribed nominations ({{count}})', { replace: { count: renOver[0] } })}
|
||||
/>
|
||||
)}
|
||||
{renActive && (
|
||||
<ExpanderScroll
|
||||
help={t<string>('The validators selected by the Phragmen algorithm to nominate for this era.')}
|
||||
renderChildren={renActive[1]}
|
||||
summary={t<string>('Active nominations ({{count}})', { replace: { count: renActive[0] } })}
|
||||
/>
|
||||
)}
|
||||
{renInactive && (
|
||||
<ExpanderScroll
|
||||
help={t<string>('The elected validator list that did not get selected by the Phragmen algorithm for this era. However they may be selected in the future.')}
|
||||
renderChildren={renInactive[1]}
|
||||
summary={t<string>('Inactive nominations ({{count}})', { replace: { count: renInactive[0] } })}
|
||||
/>
|
||||
)}
|
||||
{renChilled && (
|
||||
<ExpanderScroll
|
||||
help={t<string>('The validators that got slashed and for which your nomination got auto-chilled. Re-nominating these will make them available to the Phragmen algorithm.')}
|
||||
renderChildren={renChilled[1]}
|
||||
summary={t<string>('Renomination required ({{count}})', { replace: { count: renChilled[0] } })}
|
||||
/>
|
||||
)}
|
||||
{renWaiting && (
|
||||
<ExpanderScroll
|
||||
help={t<string>('The validators that are not in the validator set because they need more nominations or because they have willingly stopped validating. Any nominations made before the next election will also appear here.')}
|
||||
renderChildren={renWaiting[1]}
|
||||
summary={t<string>('Waiting nominations ({{count}})', { replace: { count: renWaiting[0] } })}
|
||||
/>
|
||||
|
||||
@ -48,7 +48,6 @@ function Rebond ({ controllerId, onClose, stakingInfo, stashId }: Props): React.
|
||||
<InputBalance
|
||||
autoFocus
|
||||
defaultValue={startBalance}
|
||||
help={t<string>('Amount to add to the currently bonded funds. This is adjusted using the funds currently unlocking.')}
|
||||
isError={!maxAdditional || maxAdditional.eqn(0) || maxAdditional.gt(startBalance)}
|
||||
label={t<string>('rebonded amount')}
|
||||
onChange={setMaxAdditional}
|
||||
|
||||
@ -43,7 +43,6 @@ function SetControllerAccount ({ defaultControllerId, onClose, stashId }: Props)
|
||||
<Modal.Columns hint={t<string>('The selected controller tied to this stash. Once set, this account will be able to control the actions performed by the stash account.')}>
|
||||
<InputAddress
|
||||
defaultValue={defaultControllerId}
|
||||
help={t<string>('The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.')}
|
||||
label={t<string>('controller account')}
|
||||
onChange={setControllerId}
|
||||
type='account'
|
||||
|
||||
@ -50,7 +50,6 @@ function SetRewardDestination ({ controllerId, defaultDestination, onClose, stas
|
||||
/>
|
||||
<InputAddress
|
||||
defaultValue={controllerId}
|
||||
help={t<string>('The controller is the account that is be used to control any nominating or validating actions. I will sign this transaction.')}
|
||||
isDisabled
|
||||
label={t<string>('controller account')}
|
||||
/>
|
||||
@ -58,7 +57,6 @@ function SetRewardDestination ({ controllerId, defaultDestination, onClose, stas
|
||||
<Modal.Columns hint={t<string>('All rewards will go towards the selected output destination when a payout is made.')}>
|
||||
<Dropdown
|
||||
defaultValue={defaultDestination?.toString()}
|
||||
help={t<string>('The destination account for any payments as either a nominator or validator')}
|
||||
label={t<string>('payment destination')}
|
||||
onChange={setDestination}
|
||||
options={options}
|
||||
@ -66,7 +64,6 @@ function SetRewardDestination ({ controllerId, defaultDestination, onClose, stas
|
||||
/>
|
||||
{isAccount && (
|
||||
<InputAddress
|
||||
help={t('An account that is to receive the rewards')}
|
||||
label={t('the payment account')}
|
||||
onChange={setDestAccount}
|
||||
type='account'
|
||||
|
||||
@ -52,7 +52,6 @@ function Unbond ({ controllerId, onClose, stakingLedger, stashId }: Props): Reac
|
||||
<InputBalance
|
||||
autoFocus
|
||||
defaultValue={maxBalance}
|
||||
help={t<string>('The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.')}
|
||||
isDisabled={withMax}
|
||||
key={`unbondAmount-${withMax.toString()}`}
|
||||
label={t<string>('unbond amount')}
|
||||
@ -69,7 +68,6 @@ function Unbond ({ controllerId, onClose, stakingLedger, stashId }: Props): Reac
|
||||
</InputBalance>
|
||||
{bondedBlocks?.gtn(0) && (
|
||||
<Static
|
||||
help={t<string>('The bonding duration for any staked funds. After this period needs to be withdrawn.')}
|
||||
label={t<string>('on-chain bonding duration')}
|
||||
>
|
||||
<BlockToTime value={bondedBlocks} />
|
||||
|
||||
@ -57,7 +57,6 @@ function BondExtra ({ className, controllerId, onClose, poolId }: Props): React.
|
||||
{type === 'free' && (
|
||||
<InputBalance
|
||||
autoFocus
|
||||
help={t<string>('Amount to add to the currently bonded funds. This is adjusted using the available funds on the account.')}
|
||||
isError={isAmountError}
|
||||
label={t<string>('additional free funds to bond')}
|
||||
labelExtra={
|
||||
|
||||
@ -47,7 +47,6 @@ function Unbond ({ className, controllerId, maxUnbond, onClose, poolId }: Props)
|
||||
<InputBalance
|
||||
autoFocus
|
||||
defaultValue={maxUnbond}
|
||||
help={t<string>('Amount to unbond from the current bonded amount.')}
|
||||
isDisabled={withMax}
|
||||
isError={isAmountError}
|
||||
key={`unbondAmount-${withMax.toString()}`}
|
||||
@ -71,7 +70,6 @@ function Unbond ({ className, controllerId, maxUnbond, onClose, poolId }: Props)
|
||||
</InputBalance>
|
||||
{bondedBlocks?.gtn(0) && (
|
||||
<Static
|
||||
help={t<string>('The bonding duration for any staked funds. After this period needs to be withdrawn.')}
|
||||
label={t<string>('on-chain bonding duration')}
|
||||
>
|
||||
<BlockToTime value={bondedBlocks} />
|
||||
|
||||
@ -112,7 +112,6 @@ function Bond ({ className = '', isNominating, minNominated, minNominatorBond, m
|
||||
value={stashId}
|
||||
/>
|
||||
<InputAddress
|
||||
help={t<string>('The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.')}
|
||||
label={t<string>('controller account')}
|
||||
onChange={setControllerId}
|
||||
type='account'
|
||||
@ -136,7 +135,6 @@ function Bond ({ className = '', isNominating, minNominated, minNominatorBond, m
|
||||
<InputBalance
|
||||
autoFocus
|
||||
defaultValue={startBalance}
|
||||
help={t<string>('The total amount of the stash balance that will be at stake in any forthcoming rounds (should be less than the free amount available)')}
|
||||
isError={!hasValue || !!amountError?.error}
|
||||
label={t<string>('value bonded')}
|
||||
labelExtra={
|
||||
@ -159,7 +157,6 @@ function Bond ({ className = '', isNominating, minNominated, minNominatorBond, m
|
||||
/>
|
||||
{bondedBlocks?.gtn(0) && (
|
||||
<Static
|
||||
help={t<string>('The bonding duration for any staked funds. Needs to be unlocked and withdrawn to become available.')}
|
||||
label={t<string>('on-chain bonding duration')}
|
||||
>
|
||||
<BlockToTime value={bondedBlocks} />
|
||||
@ -170,7 +167,6 @@ function Bond ({ className = '', isNominating, minNominated, minNominatorBond, m
|
||||
<Modal.Columns hint={t<string>('Rewards (once paid) can be deposited to either the stash or controller, with different effects.')}>
|
||||
<Dropdown
|
||||
defaultValue={0}
|
||||
help={t<string>('The destination account for any payments as either a nominator or validator')}
|
||||
label={t<string>('payment destination')}
|
||||
onChange={setDestination}
|
||||
options={options}
|
||||
@ -178,7 +174,6 @@ function Bond ({ className = '', isNominating, minNominated, minNominatorBond, m
|
||||
/>
|
||||
{isAccount && (
|
||||
<InputAddress
|
||||
help={t('An account that is to receive the rewards')}
|
||||
label={t('the payment account')}
|
||||
onChange={setDestAccount}
|
||||
type='account'
|
||||
|
||||
@ -92,7 +92,6 @@ function Nominate ({ className = '', controllerId, nominating, onChange, poolId,
|
||||
available={available}
|
||||
availableLabel={t<string>('candidate accounts')}
|
||||
defaultValue={nominating}
|
||||
help={t<string>('Filter available candidates based on name, address or short account index.')}
|
||||
maxCount={maxNominations}
|
||||
onChange={setSelected}
|
||||
valueLabel={t<string>('nominated accounts')}
|
||||
|
||||
@ -59,7 +59,6 @@ function SessionKey ({ className = '', controllerId, onChange, stashId, withFocu
|
||||
<Modal.Columns hint={t<string>('The hex output from author_rotateKeys, as executed on the validator node. The keys will show as pending until applied at the start of a new session.')}>
|
||||
<Input
|
||||
autoFocus={withFocus}
|
||||
help={t<string>('Changing the key only takes effect at the start of the next session. The input here is generated from the author_rotateKeys command')}
|
||||
isError={!keys}
|
||||
label={t<string>('Keys from rotateKeys')}
|
||||
onChange={setKeys}
|
||||
|
||||
@ -84,7 +84,6 @@ function Validate ({ className = '', controllerId, minCommission, onChange, stas
|
||||
<InputNumber
|
||||
autoFocus={withFocus}
|
||||
defaultValue={defaultComm}
|
||||
help={t<string>('The percentage reward (0-100) that should be applied for the validator')}
|
||||
isError={commErr}
|
||||
isZeroable
|
||||
label={t<string>('reward commission percentage')}
|
||||
@ -99,7 +98,6 @@ function Validate ({ className = '', controllerId, minCommission, onChange, stas
|
||||
<Modal.Columns hint={t<string>('The validator can block any new nominations. By default it is set to allow all nominations.')}>
|
||||
<Dropdown
|
||||
defaultValue={true}
|
||||
help={t<string>('Does this validator allow nominations or is it blocked for all')}
|
||||
label={t<string>('allows new nominations')}
|
||||
onChange={setAllowNoms}
|
||||
options={blockedOptions.current}
|
||||
|
||||
@ -63,7 +63,6 @@ function Rebag ({ bagUpper, stashIds }: Props): React.ReactElement<Props> | null
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('The account that will submit the rebag transaction.')}>
|
||||
<InputAddress
|
||||
help={t<string>('Select the account you wish to rebag with.')}
|
||||
label={t<string>('rebag from account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
|
||||
@ -48,7 +48,6 @@ function Query ({ className }: Props): React.ReactElement<Props> {
|
||||
<InputAddressSimple
|
||||
className='staking--queryInput'
|
||||
defaultValue={value}
|
||||
help={t<string>('Display overview information for the selected validator, including blocks produced.')}
|
||||
label={t<string>('validator to query')}
|
||||
onChange={setValidatorId}
|
||||
onEnter={_onQuery}
|
||||
|
||||
@ -66,7 +66,6 @@ function Nominate ({ className = '', isDisabled, ownNominators, targets }: Props
|
||||
<Modal.Columns hint={t<string>('One of your available nomination accounts, keyed by the stash. The transaction will be sent from the controller.')}>
|
||||
<InputAddress
|
||||
filter={stashes}
|
||||
help={t<string>('Your stash account. The transaction will be sent from the associated controller.')}
|
||||
label={t<string>('the stash account to nominate with')}
|
||||
onChange={_onChangeStash}
|
||||
value={ids?.stashId}
|
||||
|
||||
@ -32,15 +32,11 @@ function Consts ({ onAdd }: Props): React.ReactElement<Props> {
|
||||
[onAdd, value]
|
||||
);
|
||||
|
||||
const { method, section } = value;
|
||||
const meta = (api.consts[section][method] as ConstantCodec).meta;
|
||||
|
||||
return (
|
||||
<section className='storage--actionrow'>
|
||||
<div className='storage--actionrow-value'>
|
||||
<InputConsts
|
||||
defaultValue={defaultValue}
|
||||
help={meta?.docs.join(' ')}
|
||||
label={t<string>('selected constant query')}
|
||||
onChange={setValue}
|
||||
/>
|
||||
|
||||
@ -206,14 +206,13 @@ function Modules ({ className = '', onAdd }: Props): React.ReactElement<Props> {
|
||||
[isIterable, isValid, values]
|
||||
);
|
||||
|
||||
const { creator: { meta, method, section } } = key;
|
||||
const { creator: { method, section } } = key;
|
||||
|
||||
return (
|
||||
<section className={`${className} storage--actionrow`}>
|
||||
<div className='storage--actionrow-value'>
|
||||
<InputStorage
|
||||
defaultValue={startValue}
|
||||
help={meta && meta.docs.join(' ')}
|
||||
label={t<string>('selected state query')}
|
||||
onChange={_onChangeKey}
|
||||
/>
|
||||
|
||||
@ -46,7 +46,6 @@ function Sudo ({ className, isMine, sudoKey }: Props): React.ReactElement<Props>
|
||||
/>
|
||||
{isFunction(api.tx.sudo.sudoUncheckedWeight) && (
|
||||
<InputNumber
|
||||
help={t<string>('The unchecked weight as specified for the sudoUncheckedWeight call.')}
|
||||
isDisabled={!withWeight}
|
||||
isError={weight.eq(BN_ZERO)}
|
||||
isZeroable={false}
|
||||
|
||||
@ -48,7 +48,6 @@ function Close ({ hasFailed, hash, idNumber, proposal, type }: Props): React.Rea
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('The committee account that will apply the close for the current round.')}>
|
||||
<InputAddress
|
||||
help={t<string>('Select the account you wish close the proposal with.')}
|
||||
label={t<string>('close from account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
|
||||
@ -73,7 +73,6 @@ function Propose ({ defaultThreshold = DEFAULT_THRESHOLD, defaultValue, filter,
|
||||
<Modal.Content>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('Select the account you wish to make the proposal with.')}
|
||||
label={t<string>('propose from account')}
|
||||
onChange={setAcountId}
|
||||
type='account'
|
||||
@ -81,7 +80,6 @@ function Propose ({ defaultThreshold = DEFAULT_THRESHOLD, defaultValue, filter,
|
||||
/>
|
||||
<InputNumber
|
||||
className='medium'
|
||||
help={t<string>('The minimum number of committee votes required to approve this motion')}
|
||||
isError={!hasThreshold}
|
||||
label={t<string>('threshold')}
|
||||
onChange={_onChangeThreshold}
|
||||
|
||||
@ -63,7 +63,6 @@ function Council ({ id, isDisabled, members }: Props): React.ReactElement<Props>
|
||||
<Modal.Columns hint={t<string>('The council member that is proposing this, submission equates to an "aye" vote.')}>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('Select the council account you wish to use to make the proposal.')}
|
||||
label={t<string>('submit with council account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
@ -72,7 +71,6 @@ function Council ({ id, isDisabled, members }: Props): React.ReactElement<Props>
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('Proposal can either be to approve or reject this spend. Once approved, the change is applied by either removing the proposal or scheduling payout.')}>
|
||||
<Dropdown
|
||||
help={t<string>('The type of council proposal to submit.')}
|
||||
label={t<string>('council proposal type')}
|
||||
onChange={setProposalType}
|
||||
options={councilTypeOptRef.current}
|
||||
|
||||
@ -47,7 +47,6 @@ function Propose ({ className }: Props): React.ReactElement<Props> | null {
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('This account will make the proposal and be responsible for the bond.')}>
|
||||
<InputAddress
|
||||
help={t<string>('Select the account you wish to submit the proposal from.')}
|
||||
label={t<string>('submit with account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
@ -56,7 +55,6 @@ function Propose ({ className }: Props): React.ReactElement<Props> | null {
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('The beneficiary will receive the full amount if the proposal passes.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The account to which the proposed balance will be transferred if approved')}
|
||||
label={t<string>('beneficiary')}
|
||||
onChange={setBeneficiary}
|
||||
type='allPlus'
|
||||
@ -74,27 +72,23 @@ function Propose ({ className }: Props): React.ReactElement<Props> | null {
|
||||
}
|
||||
>
|
||||
<InputBalance
|
||||
help={t<string>('The amount that will be allocated from the treasury pot')}
|
||||
isError={!hasValue}
|
||||
label={t<string>('value')}
|
||||
onChange={setValue}
|
||||
/>
|
||||
<Static
|
||||
help={t<string>('The on-chain percentage for the treasury')}
|
||||
label={t<string>('proposal bond')}
|
||||
>
|
||||
{bondPercentage}
|
||||
</Static>
|
||||
<InputBalance
|
||||
defaultValue={bondMin}
|
||||
help={t<string>('The minimum amount that will be bonded')}
|
||||
isDisabled
|
||||
label={t<string>('minimum bond')}
|
||||
/>
|
||||
{bondMax && (
|
||||
<InputBalance
|
||||
defaultValue={bondMax}
|
||||
help={t<string>('The maximum amount that will be bonded')}
|
||||
isDisabled
|
||||
label={t<string>('maximum bond')}
|
||||
/>
|
||||
|
||||
@ -60,7 +60,6 @@ function TipCreate ({ members }: Props): React.ReactElement<Props> | null {
|
||||
<Modal.Content>
|
||||
<Modal.Columns hint={t<string>('Use this account to request the tip from. This can be a normal or council account.')}>
|
||||
<InputAddress
|
||||
help={t<string>('Select the account you wish to submit the tip from.')}
|
||||
label={t<string>('submit with account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
@ -69,7 +68,6 @@ function TipCreate ({ members }: Props): React.ReactElement<Props> | null {
|
||||
</Modal.Columns>
|
||||
<Modal.Columns hint={t<string>('The beneficiary will received the tip as approved by council members.')}>
|
||||
<InputAddress
|
||||
help={t<string>('The account to which the tip will be transferred if approved')}
|
||||
label={t<string>('beneficiary')}
|
||||
onChange={setBeneficiary}
|
||||
type='allPlus'
|
||||
@ -78,7 +76,6 @@ function TipCreate ({ members }: Props): React.ReactElement<Props> | null {
|
||||
<Modal.Columns hint={t<string>('A reason (to be stored-on-chain) as to why the recipient deserves a tip payout.')}>
|
||||
<Input
|
||||
autoFocus
|
||||
help={t<string>('The reason why this tip should be paid.')}
|
||||
isError={!hasReason}
|
||||
label={t<string>('tip reason')}
|
||||
onChange={setReason}
|
||||
@ -87,7 +84,6 @@ function TipCreate ({ members }: Props): React.ReactElement<Props> | null {
|
||||
{isMember && (
|
||||
<Modal.Columns hint={t<string>('As a council member, you can suggest an initial value for the tip, each other council member can suggest their own.')}>
|
||||
<InputBalance
|
||||
help={t<string>('The suggested value for this tip')}
|
||||
isError={!hasValue}
|
||||
label={t<string>('tip value')}
|
||||
onChange={setValue}
|
||||
|
||||
@ -64,7 +64,6 @@ function TipEndorse ({ defaultId, hash, isMember, isTipped, median, members, rec
|
||||
<Modal.Columns hint={t<string>('Your endorsement will be applied for this account.')}>
|
||||
<InputAddress
|
||||
filter={members}
|
||||
help={t<string>('Select the account you wish to submit the tip from.')}
|
||||
label={t<string>('submit with account')}
|
||||
onChange={setAccountId}
|
||||
type='account'
|
||||
@ -75,7 +74,6 @@ function TipEndorse ({ defaultId, hash, isMember, isTipped, median, members, rec
|
||||
<InputBalance
|
||||
autoFocus
|
||||
defaultValue={median}
|
||||
help={t<string>('The tip amount that should be allocated')}
|
||||
isZeroable
|
||||
label={t<string>('value')}
|
||||
onChange={setValue}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user