{"version":3,"sources":["../src/index.ts","../src/PkpLitSigner.ts"],"sourcesContent":["import { AlchemySmartWalletLight } from '@snowballtools/smartwallet-alchemy-light'\nimport { SmartWalletApiKeys } from '@snowballtools/types'\nimport { SnowballError } from '@snowballtools/types'\nimport { SnowballChain } from '@snowballtools/utils'\n\nimport type { PKPEthersWallet } from '@lit-protocol/pkp-ethers'\n\nimport { PkpLitSigner } from './PkpLitSigner'\n\nexport type { PKPEthersWallet }\n\nexport type LinkOptions = {\n  alchemyApiKeys: Record<number, SmartWalletApiKeys>\n}\n\nexport const LinkLitAlchemyLight = {\n  pkpEthersWallet: {\n    configure(opts: LinkOptions) {\n      return async function makeAlchemySmartWalletFromLitWallet(\n        chain: SnowballChain,\n        wallet: PKPEthersWallet,\n      ) {\n        const keys = opts.alchemyApiKeys[chain.chainId]\n        const apiKey = keys?.apiKey\n        if (!keys || !apiKey) {\n          throw new SnowballError(\n            'missing.apiKey',\n            `No Alchemy API key found for chain ${chain.name} (${chain.chainId})`,\n          )\n        }\n        const signer = new PkpLitSigner(wallet)\n\n        return await AlchemySmartWalletLight.make(chain, signer, keys)\n      }\n    },\n  },\n}\n","import { SmartAccountSigner } from '@alchemy/aa-core'\nimport {\n  type Address,\n  type Hex,\n  type SignableMessage,\n  type TypedData,\n  type TypedDataDefinition,\n  type TypedDataDomain,\n  isHex,\n  toBytes,\n} from 'viem'\n\nimport { PKPEthersWallet } from '.'\n\nexport class PkpLitSigner implements SmartAccountSigner {\n  signerType = 'PKP'\n\n  constructor(readonly inner: PKPEthersWallet) {}\n\n  async getAddress() {\n    return this.inner.getAddress() as Promise<Address>\n  }\n\n  signMessage = async (msg: SignableMessage) => {\n    const result = await (this.inner.signMessage(\n      typeof msg === 'string' ? msg : isHex(msg.raw) ? toBytes(msg.raw) : msg.raw,\n    ) as Promise<Hex>)\n    return result\n  }\n\n  signTypedData = async <\n    const TTypedData extends TypedData | { [key: string]: unknown },\n    TPrimaryType extends string = string,\n  >(\n    params: TypedDataDefinition<TTypedData, TPrimaryType>,\n  ) => {\n    return this.inner._signTypedData(\n      params.domain as TypedDataDomain,\n      params.types as any,\n      params.message as Record<string, any>,\n    ) as Promise<Hex>\n  }\n}\n"],"mappings":";AAAA,SAAS,+BAA+B;AAExC,SAAS,qBAAqB;;;ACD9B;AAAA,EAOE;AAAA,EACA;AAAA,OACK;AAIA,IAAM,eAAN,MAAiD;AAAA,EAGtD,YAAqB,OAAwB;AAAxB;AAAA,EAAyB;AAAA,EAF9C,aAAa;AAAA,EAIb,MAAM,aAAa;AACjB,WAAO,KAAK,MAAM,WAAW;AAAA,EAC/B;AAAA,EAEA,cAAc,OAAO,QAAyB;AAC5C,UAAM,SAAS,MAAO,KAAK,MAAM;AAAA,MAC/B,OAAO,QAAQ,WAAW,MAAM,MAAM,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,IAAI;AAAA,IAC1E;AACA,WAAO;AAAA,EACT;AAAA,EAEA,gBAAgB,OAId,WACG;AACH,WAAO,KAAK,MAAM;AAAA,MAChB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,EACF;AACF;;;AD3BO,IAAM,sBAAsB;AAAA,EACjC,iBAAiB;AAAA,IACf,UAAU,MAAmB;AAC3B,aAAO,eAAe,oCACpB,OACA,QACA;AACA,cAAM,OAAO,KAAK,eAAe,MAAM,OAAO;AAC9C,cAAM,SAAS,MAAM;AACrB,YAAI,CAAC,QAAQ,CAAC,QAAQ;AACpB,gBAAM,IAAI;AAAA,YACR;AAAA,YACA,sCAAsC,MAAM,IAAI,KAAK,MAAM,OAAO;AAAA,UACpE;AAAA,QACF;AACA,cAAM,SAAS,IAAI,aAAa,MAAM;AAEtC,eAAO,MAAM,wBAAwB,KAAK,OAAO,QAAQ,IAAI;AAAA,MAC/D;AAAA,IACF;AAAA,EACF;AACF;","names":[]}