Skip to content

Commit 44691fb

Browse files
authored
Support requestStatusFor for usePreimage (#10310)
* support requestStatusFor for usePreimage * remove console * Add comment
1 parent f8ebc08 commit 44691fb

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

packages/apps-routing/src/preimages.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export default function create (t: TFunction): Route {
1111
display: {
1212
needsAccounts: true,
1313
needsApi: [
14+
'query.preimage.requestStatusFor',
1415
'query.preimage.statusFor',
1516
'tx.preimage.notePreimage'
1617
]

packages/page-preimages/src/usePreimages.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,12 @@ function filter (records: EventRecord[]): Changes<Hash> {
3434

3535
function usePreimagesImpl (): HexString[] | undefined {
3636
const { api } = useApi();
37-
const startValue = useMapKeys(api.query.preimage.statusFor, EMPTY_PARAMS, OPT_HASH);
37+
const startValueStatusFor = useMapKeys(api.query.preimage.statusFor, EMPTY_PARAMS, OPT_HASH);
38+
const startvalueRequstStatusFor = useMapKeys(api.query.preimage.requestStatusFor, EMPTY_PARAMS, OPT_HASH);
3839
const hashes = useEventChanges([
3940
api.events.preimage.Cleared,
4041
api.events.preimage.Noted
41-
], filter, startValue);
42+
], filter, startValueStatusFor?.concat(startvalueRequstStatusFor || []));
4243

4344
return useMemo(
4445
() => hashes?.map((h) => h.toHex()),

packages/react-hooks/src/usePreimage.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,9 @@ function convertDeposit (deposit?: [AccountId, u128] | null): PreimageDeposit |
159159
}
160160

161161
/** @internal Returns the parameters required for a call to bytes */
162-
function getBytesParams (interimResult: PreimageStatus, optStatus: Option<PalletPreimageRequestStatus>): BytesParams {
162+
function getBytesParams (interimResult: PreimageStatus, someOptStatus: Option<PalletPreimageRequestStatus>): BytesParams {
163163
const result = objectSpread<PreimageStatus>({}, interimResult, {
164-
status: optStatus.unwrapOr(null)
164+
status: someOptStatus.unwrapOr(null)
165165
});
166166

167167
if (result.status) {
@@ -218,14 +218,18 @@ function usePreimageImpl (hashOrBounded?: Hash | HexString | FrameSupportPreimag
218218
[api, hashOrBounded]
219219
);
220220

221+
// api.query.preimage.statusFor has been deprecated in favor of api.query.preimage.requestStatusFor.
222+
// To ensure we get all preimages correctly we query both storages. see: https://github.com/polkadot-js/apps/pull/10310
221223
const optStatus = useCall<Option<PalletPreimageRequestStatus>>(!inlineData && paramsStatus && api.query.preimage?.statusFor, paramsStatus);
224+
const optRequstStatus = useCall<Option<PalletPreimageRequestStatus>>(!inlineData && paramsStatus && api.query.preimage?.requestStatusFor, paramsStatus);
225+
const someOptStatus = optStatus?.isSome ? optStatus : optRequstStatus;
222226

223227
// from the retrieved status (if any), get the on-chain stored bytes
224228
const { paramsBytes, resultPreimageFor } = useMemo(
225-
() => resultPreimageHash && optStatus
226-
? getBytesParams(resultPreimageHash, optStatus)
229+
() => resultPreimageHash && someOptStatus
230+
? getBytesParams(resultPreimageHash, someOptStatus)
227231
: {},
228-
[optStatus, resultPreimageHash]
232+
[someOptStatus, resultPreimageHash]
229233
);
230234

231235
const optBytes = useCall<Option<Bytes>>(paramsBytes && api.query.preimage?.preimageFor, paramsBytes);

0 commit comments

Comments
 (0)