ox
Version:
Ethereum Standard Library
33 lines • 1.45 kB
JavaScript
/* eslint-disable jsdoc-js/require-jsdoc, jsdoc-js/require-description, jsdoc-js/require-example */
import * as z_Address from './Address.js';
import * as z_Hex from './Hex.js';
import * as z_Number from './Number.js';
import * as z_Uint from './Uint.js';
import * as z from 'zod/mini';
/** RPC storage proof schema decoded to a storage proof. */
export const StorageProof = z.object(storageProofFields(z_Uint.Uint));
/** Encode-only storage proof schema accepting numberish `toRpc` inputs. */
export const StorageProofToRpc = z.object(storageProofFields(z_Uint.UintToRpc));
/** RPC account proof schema decoded to an account proof. */
export const AccountProof = z.object(accountProofFields(z_Uint.Uint, z_Number.Number, StorageProof));
/** Encode-only account proof schema accepting numberish `toRpc` inputs. */
export const AccountProofToRpc = z.object(accountProofFields(z_Uint.UintToRpc, z_Number.NumberToRpc, StorageProofToRpc));
function storageProofFields(uint) {
return {
key: z_Hex.Hex,
proof: z.readonly(z.array(z_Hex.Hex)),
value: uint,
};
}
function accountProofFields(uint, num, storageProof) {
return {
address: z_Address.Address,
balance: uint,
codeHash: z_Hex.Hex,
nonce: num,
storageHash: z_Hex.Hex,
accountProof: z.readonly(z.array(z_Hex.Hex)),
storageProof: z.readonly(z.array(storageProof)),
};
}
//# sourceMappingURL=AccountProof.js.map