permissionless
Version:
A utility library for working with ERC-4337
24 lines • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNonceKeyWithEncoding = void 0;
const viem_1 = require("viem");
const constants_js_1 = require("../constants.js");
const isKernelV2_js_1 = require("./isKernelV2.js");
const getNonceKeyWithEncoding = (kernelVersion, validatorAddress, nonceKey = 0n) => {
if ((0, isKernelV2_js_1.isKernelV2)(kernelVersion)) {
return nonceKey;
}
if (nonceKey > viem_1.maxUint16)
throw new Error(`nonce key must be equal or less than 2 bytes(maxUint16) for Kernel version ${kernelVersion}`);
const validatorMode = constants_js_1.VALIDATOR_MODE.DEFAULT;
const validatorType = constants_js_1.VALIDATOR_TYPE.ROOT;
const encoding = (0, viem_1.pad)((0, viem_1.concatHex)([
validatorMode,
validatorType,
validatorAddress,
(0, viem_1.toHex)(nonceKey, { size: 2 })
]), { size: 24 });
return BigInt(encoding);
};
exports.getNonceKeyWithEncoding = getNonceKeyWithEncoding;
//# sourceMappingURL=getNonceKey.js.map