UNPKG

@particle-network/aa-plugin

Version:
8 lines (7 loc) 3.49 kB
{ "version": 3, "sources": ["../../src/index.ts", "../../src/aa.ts", "../../src/version.ts"], "sourcesContent": ["export * from '@particle-network/aa';\nexport * from './aa';\nexport * from './version';\n", "import {\n SmartAccount,\n type AccountContract,\n type AccountContractConfig,\n type IEthereumProvider,\n} from '@particle-network/aa';\nimport { isEVMChain } from '@particle-network/connector-core';\nimport { createPlugin, type Plugin } from '@particle-network/plugin-core';\n\nexport type WalletPluginProperties = {\n erc4337: AccountContract;\n smartAccount: SmartAccount | null;\n};\n\nexport type AAPlugin = Plugin<SmartAccount | null, void, WalletPluginProperties>;\n\nexport type AAPluginParamers = AccountContract;\n\nlet previousSmartAccount: SmartAccount | null = null;\n\nexport const aa = (paramers: AAPluginParamers) => {\n if (!paramers || !paramers.name || !paramers.version) {\n throw new Error('AA Plugin paramers error.');\n }\n\n const { name, version } = paramers;\n return createPlugin<SmartAccount | null, void, WalletPluginProperties>((config) => ({\n get id() {\n return 'aa';\n },\n get name() {\n return 'Account Abstraction';\n },\n get erc4337() {\n return { name, version };\n },\n get smartAccount() {\n return previousSmartAccount;\n },\n getPlugin() {\n return previousSmartAccount;\n },\n async onConnect(connection) {\n const connector = connection[0].connector;\n\n if (connector.chainType === 'evm') {\n const provider = await connector.getProvider();\n if (previousSmartAccount?.provider === provider) {\n return;\n }\n const { projectConfig, chains } = config;\n const accountContracts = {} as { [key: string]: AccountContractConfig[] };\n accountContracts[name] = [\n {\n version,\n chainIds: chains.filter(isEVMChain).map((chain) => chain.id),\n },\n ];\n const smartAccount = new SmartAccount(provider as IEthereumProvider, {\n ...projectConfig,\n aaOptions: { accountContracts },\n });\n previousSmartAccount = smartAccount;\n } else {\n previousSmartAccount = null;\n }\n },\n async onDisconnect() {\n previousSmartAccount = null;\n },\n }));\n};\n", "export const version = '2.1.0';\n"], "mappings": ";AAAA,cAAc;;;ACAd;AAAA,EACE;AAAA,OAIK;AACP,SAAS,kBAAkB;AAC3B,SAAS,oBAAiC;AAW1C,IAAI,uBAA4C;AAEzC,IAAM,KAAK,CAAC,aAA+B;AAChD,MAAI,CAAC,YAAY,CAAC,SAAS,QAAQ,CAAC,SAAS,SAAS;AACpD,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AAEA,QAAM,EAAE,MAAM,SAAAA,SAAQ,IAAI;AAC1B,SAAO,aAAgE,CAAC,YAAY;AAAA,IAClF,IAAI,KAAK;AACP,aAAO;AAAA,IACT;AAAA,IACA,IAAI,OAAO;AACT,aAAO;AAAA,IACT;AAAA,IACA,IAAI,UAAU;AACZ,aAAO,EAAE,MAAM,SAAAA,SAAQ;AAAA,IACzB;AAAA,IACA,IAAI,eAAe;AACjB,aAAO;AAAA,IACT;AAAA,IACA,YAAY;AACV,aAAO;AAAA,IACT;AAAA,IACA,MAAM,UAAU,YAAY;AAC1B,YAAM,YAAY,WAAW,GAAG;AAEhC,UAAI,UAAU,cAAc,OAAO;AACjC,cAAM,WAAW,MAAM,UAAU,YAAY;AAC7C,aAAI,6DAAsB,cAAa,UAAU;AAC/C;AAAA,QACF;AACA,cAAM,EAAE,eAAe,OAAO,IAAI;AAClC,cAAM,mBAAmB,CAAC;AAC1B,yBAAiB,QAAQ;AAAA,UACvB;AAAA,YACE,SAAAA;AAAA,YACA,UAAU,OAAO,OAAO,UAAU,EAAE,IAAI,CAAC,UAAU,MAAM,EAAE;AAAA,UAC7D;AAAA,QACF;AACA,cAAM,eAAe,IAAI,aAAa,UAA+B;AAAA,UACnE,GAAG;AAAA,UACH,WAAW,EAAE,iBAAiB;AAAA,QAChC,CAAC;AACD,+BAAuB;AAAA,MACzB,OAAO;AACL,+BAAuB;AAAA,MACzB;AAAA,IACF;AAAA,IACA,MAAM,eAAe;AACnB,6BAAuB;AAAA,IACzB;AAAA,EACF,EAAE;AACJ;;;ACvEO,IAAM,UAAU;", "names": ["version"] }