@dappworks/kit 0.4.89 → 0.4.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ import { Abi, Chain, GetContractReturnType, PublicClient, HttpTransport } from 'viem';
2
+
3
+ declare class Cache {
4
+ kv: Record<string, any>;
5
+ wrap<T>(key: string, fn: () => T | Promise<T>): T | Promise<T>;
6
+ }
7
+ declare class AIem<Contracts extends Record<string, Abi> = {}, Chains extends Record<number, Chain> = {}> {
8
+ private cache;
9
+ contractMap: {
10
+ [K in keyof Contracts]: Contracts[K];
11
+ };
12
+ chainMap: {
13
+ [K in keyof Chains]: Chains[K];
14
+ };
15
+ constructor(args: Pick<AIem<Contracts, Chains>, "contractMap" | "chainMap">);
16
+ Get<K extends keyof Contracts, C extends keyof Chains>(contractName: K, chainId: C, address: `0x${string}`): GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>>;
17
+ }
18
+
19
+ export { AIem, Cache };
package/dist/aiem.mjs ADDED
@@ -0,0 +1,53 @@
1
+ import './chunk-6F7H4PAA.mjs';
2
+ import { createPublicClient, http, getContract } from 'viem';
3
+
4
+ var Cache = class {
5
+ constructor() {
6
+ this.kv = {};
7
+ }
8
+ wrap(key, fn) {
9
+ if (this.kv[key]) {
10
+ return this.kv[key];
11
+ }
12
+ const result = fn();
13
+ if (result instanceof Promise) {
14
+ return result.then((res) => {
15
+ this.kv[key] = res;
16
+ return res;
17
+ });
18
+ } else {
19
+ this.kv[key] = result;
20
+ return result;
21
+ }
22
+ }
23
+ };
24
+ var AIem = class {
25
+ constructor(args) {
26
+ this.cache = new Cache();
27
+ this.contractMap = args.contractMap;
28
+ this.chainMap = args.chainMap;
29
+ }
30
+ // @ts-ignore
31
+ Get(contractName, chainId, address) {
32
+ return this.cache.wrap(`contract: ${contractName}-${chainId}-${address}`, () => {
33
+ const contract = this.contractMap[contractName];
34
+ const client = this.cache.wrap(`publicClient-${String(chainId)}`, () => {
35
+ return createPublicClient({
36
+ //@ts-ignore
37
+ chain: this.chainMap[chainId],
38
+ transport: http()
39
+ });
40
+ });
41
+ return getContract({
42
+ //@ts-ignore
43
+ client,
44
+ address,
45
+ abi: contract
46
+ });
47
+ });
48
+ }
49
+ };
50
+
51
+ export { AIem, Cache };
52
+ //# sourceMappingURL=out.js.map
53
+ //# sourceMappingURL=aiem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../aiem.ts"],"names":[],"mappings":";;;AAAA,SAA4C,oBAAoB,aAAa,YAAmD;AAEzH,IAAM,QAAN,MAAY;AAAA,EAAZ;AACL,cAA0B,CAAC;AAAA;AAAA,EAE3B,KAAQ,KAAa,IAA0C;AAC7D,QAAI,KAAK,GAAG,GAAG,GAAG;AAChB,aAAO,KAAK,GAAG,GAAG;AAAA,IACpB;AAEA,UAAM,SAAS,GAAG;AAClB,QAAI,kBAAkB,SAAS;AAC7B,aAAO,OAAO,KAAK,CAAC,QAAQ;AAC1B,aAAK,GAAG,GAAG,IAAI;AACf,eAAO;AAAA,MACT,CAAC;AAAA,IACH,OAAO;AACL,WAAK,GAAG,GAAG,IAAI;AACf,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,IAAM,OAAN,MAAkG;AAAA,EAKvG,YAAY,MAAiE;AAJ7E,SAAQ,QAAe,IAAI,MAAM;AAM/B,SAAK,cAAc,KAAK;AACxB,SAAK,WAAW,KAAK;AAAA,EACvB;AAAA;AAAA,EAGA,IAAuD,cAAiB,SAAY,SAA2G;AAE7L,WAAO,KAAK,MAAM,KAAwF,aAAa,YAAY,IAAI,OAAO,IAAI,OAAO,IAAI,MAAM;AAEjK,YAAM,WAAW,KAAK,YAAY,YAAY;AAC9C,YAAM,SAAS,KAAK,MAAM,KAAK,gBAAgB,OAAO,OAAO,CAAC,IAAI,MAAM;AAEtE,eAAO,mBAAmB;AAAA;AAAA,UAExB,OAAO,KAAK,SAAS,OAAO;AAAA,UAC5B,WAAW,KAAK;AAAA,QAClB,CAAC;AAAA,MACH,CAAC;AAED,aAAO,YAAY;AAAA;AAAA,QAEjB;AAAA,QACA;AAAA,QACA,KAAK;AAAA,MACP,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF","sourcesContent":["import { Chain, type GetContractReturnType, createPublicClient, getContract, http, type Abi, PublicClient, HttpTransport } from \"viem\";\n\nexport class Cache {\n kv: Record<string, any> = {};\n\n wrap<T>(key: string, fn: () => T | Promise<T>): T | Promise<T> {\n if (this.kv[key]) {\n return this.kv[key];\n }\n\n const result = fn();\n if (result instanceof Promise) {\n return result.then((res) => {\n this.kv[key] = res;\n return res;\n });\n } else {\n this.kv[key] = result;\n return result;\n }\n }\n}\n\nexport class AIem<Contracts extends Record<string, Abi> = {}, Chains extends Record<number, Chain> = {}> {\n private cache: Cache = new Cache();\n contractMap: { [K in keyof Contracts]: Contracts[K] };\n chainMap: { [K in keyof Chains]: Chains[K] };\n\n constructor(args: Pick<AIem<Contracts, Chains>, \"contractMap\" | \"chainMap\">) {\n // this.chains = args.chains;\n this.contractMap = args.contractMap;\n this.chainMap = args.chainMap;\n }\n\n // @ts-ignore\n Get<K extends keyof Contracts, C extends keyof Chains>(contractName: K, chainId: C, address: `0x${string}`): GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>> {\n //@ts-ignore\n return this.cache.wrap<GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>>>(`contract: ${contractName}-${chainId}-${address}`, () => {\n // @ts-ignore\n const contract = this.contractMap[contractName];\n const client = this.cache.wrap(`publicClient-${String(chainId)}`, () => {\n // @ts-ignore\n return createPublicClient({\n //@ts-ignore\n chain: this.chainMap[chainId],\n transport: http(),\n }) as PublicClient<HttpTransport, Chain, any, any>;\n });\n\n return getContract({\n //@ts-ignore\n client,\n address,\n abi: contract,\n });\n });\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dappworks/kit",
3
- "version": "0.4.89",
3
+ "version": "0.4.90",
4
4
  "description": "",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",
@@ -47,6 +47,10 @@
47
47
  "./experimental": {
48
48
  "import": "./dist/experimental.mjs",
49
49
  "require": "./dist/experimental.js"
50
+ },
51
+ "./aiem": {
52
+ "import": "./dist/aiem.mjs",
53
+ "require": "./dist/aiem.js"
50
54
  }
51
55
  },
52
56
  "typesVersions": {
@@ -77,6 +81,9 @@
77
81
  ],
78
82
  "experimental": [
79
83
  "./dist/experimental.d.mts"
84
+ ],
85
+ "aiem": [
86
+ "./dist/aiem.d.mts"
80
87
  ]
81
88
  }
82
89
  },
@@ -116,7 +123,8 @@
116
123
  "react-dom": ">=18.2.0",
117
124
  "react-draggable": ">=4.0.0",
118
125
  "react-hot-toast": ">=2.0.0",
119
- "typed-emitter": "^2.0.0"
126
+ "typed-emitter": "^2.0.0",
127
+ "viem": "^2.16.5"
120
128
  },
121
129
  "author": "uuz",
122
130
  "license": "ISC",