@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.
- package/dist/aiem.d.mts +19 -0
- package/dist/aiem.mjs +53 -0
- package/dist/aiem.mjs.map +1 -0
- package/package.json +10 -2
package/dist/aiem.d.mts
ADDED
|
@@ -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.
|
|
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",
|