@polkadot/types#Enum TypeScript Examples
The following examples show how to use
@polkadot/types#Enum.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Call.tsx From crust-apps with Apache License 2.0 | 6 votes |
function extractState (value: IExtrinsic | IMethod, withHash?: boolean, withSignature?: boolean): Extracted {
const params = GenericCall.filterOrigin(value.meta).map(({ name, type }): Param => ({
name: name.toString(),
type: getTypeDef(type.toString())
}));
const values = value.args.map((value): Value => ({
isValid: true,
value
}));
const hash = withHash
? value.hash.toHex()
: null;
let signature: string | null = null;
let signatureType: string | null = null;
if (withSignature && isExtrinsic(value) && value.isSigned) {
const raw = getRawSignature(value);
signature = value.signature.toHex();
signatureType = raw instanceof Enum
? raw.type
: null;
}
return { hash, params, signature, signatureType, values };
}
Example #2
Source File: Call.tsx From subscan-multisig-react with Apache License 2.0 | 6 votes |
function extractState(value: IExtrinsic | IMethod, withHash?: boolean, withSignature?: boolean): Extracted {
const params = value.meta.args.map(
// const params = GenericCall.filterOrigin(value.meta).map(
({ name, type }): Param => ({
name: name.toString(),
type: getTypeDef(type.toString()),
})
);
const values = value.args.map(
(val): Value => ({
isValid: true,
value: val,
})
);
const hash = withHash ? value.hash.toHex() : null;
let signature: string | null = null;
let signatureType: string | null = null;
if (withSignature && isExtrinsic(value) && value.isSigned) {
const raw = getRawSignature(value);
signature = value.signature.toHex();
signatureType = raw instanceof Enum ? raw.type : null;
}
return { hash, params, signature, signatureType, values };
}
Example #3
Source File: Enum.tsx From crust-apps with Apache License 2.0 | 4 votes |
function EnumParam (props: Props): React.ReactElement<Props> {
const { className = '', defaultValue, isDisabled, isError, label, onChange, overrides, registry, type, withLabel } = props;
const [current, setCurrent] = useState<ParamDef[] | null>(null);
const [initialValue, setInitialValue] = useState<string | null>(null);
const [{ options, subTypes }, setOptions] = useState<Options>({ options: [], subTypes: [] });
useEffect((): void => {
const rawType = registry.createType(type.type as 'u32').toRawType();
const typeDef = getTypeDef(rawType);
const subTypes = typeDef.sub as TypeDef[];
setOptions({
options: subTypes.map(({ name }): Option => ({
text: name,
value: name
})),
subTypes
});
setCurrent([{ name: subTypes[0].name, type: subTypes[0] }]);
}, [registry, type]);
useEffect((): void => {
setInitialValue(
defaultValue && defaultValue.value
? defaultValue.value instanceof Enum
? defaultValue.value.type
: Object.keys(defaultValue.value as Record<string, unknown>)[0]
: null
);
}, [defaultValue]);
const _onChange = useCallback(
(value: string): void => {
const newType = subTypes.find(({ name }): boolean => name === value) || null;
setCurrent(
newType
? [{ name: newType.name, type: newType }]
: null
);
},
[subTypes]
);
const _onChangeParam = useCallback(
([{ isValid, value }]: RawParam[]): void => {
current && onChange && onChange({
isValid,
value: { [current[0].name as string]: value }
});
},
[current, onChange]
);
if (isDisabled) {
return <Static {...props} />;
}
return (
<Bare className={className}>
<Dropdown
className='full'
defaultValue={initialValue}
isDisabled={isDisabled}
isError={isError}
label={label}
onChange={_onChange}
options={options}
withEllipsis
withLabel={withLabel}
/>
{current && (
<Params
onChange={_onChangeParam}
overrides={overrides}
params={current}
registry={registry}
/>
)}
</Bare>
);
}
Example #4
Source File: Enum.tsx From subscan-multisig-react with Apache License 2.0 | 4 votes |
function EnumParam(props: Props): React.ReactElement<Props> {
const {
className = '',
defaultValue,
isDisabled,
isError,
label,
onChange,
overrides,
registry,
type,
withLabel,
} = props;
const [current, setCurrent] = useState<ParamDef[] | null>(null);
const [initialValue, setInitialValue] = useState<string | null>(null);
const [{ options, subTypes }, setOptions] = useState<Options>({ options: [], subTypes: [] });
useEffect((): void => {
const rawType = registry.createType(type.type as 'u32').toRawType();
const typeDef = getTypeDef(rawType);
const subType = typeDef.sub as TypeDef[];
setOptions({
options: subType.map(
({ name }): Option => ({
text: name,
value: name,
})
),
subTypes: subType,
});
setCurrent([{ name: subType[0].name, type: subType[0] }]);
}, [registry, type]);
useEffect((): void => {
setInitialValue(
defaultValue && defaultValue.value
? defaultValue.value instanceof Enum
? defaultValue.value.type
: Object.keys(defaultValue.value as Record<string, unknown>)[0]
: null
);
}, [defaultValue]);
const _onChange = useCallback(
(value: string): void => {
const newType = subTypes.find(({ name }): boolean => name === value) || null;
setCurrent(newType ? [{ name: newType.name, type: newType }] : null);
},
[subTypes]
);
const _onChangeParam = useCallback(
([{ isValid, value }]: RawParam[]): void => {
// eslint-disable-next-line
current &&
onChange &&
onChange({
isValid,
value: { [current[0].name as string]: value },
});
},
[current, onChange]
);
if (isDisabled) {
return <Static {...props} />;
}
return (
<Bare className={className}>
<Dropdown
className="full"
defaultValue={initialValue}
isDisabled={isDisabled}
isError={isError}
label={label}
onChange={_onChange}
options={options}
withEllipsis
withLabel={withLabel}
/>
{current && <Params onChange={_onChangeParam} overrides={overrides} params={current} registry={registry} />}
</Bare>
);
}