@dappworks/kit 0.5.32 → 0.5.33

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.
@@ -173,15 +173,19 @@ var _AIem = class _AIem {
173
173
  if (options.rpcUrls) {
174
174
  chain.rpcUrls = options.rpcUrls;
175
175
  }
176
- return this._cache.wrap(`publicClient-${String(chainId)}-${chain.rpcUrls.default.http}-${options == null ? void 0 : options.multicall}`, () => {
177
- return createPublicClient(__spreadProps(__spreadValues({
176
+ return this._cache.wrap(`publicClient-${String(chainId)}-${chain.rpcUrls.default.http}-${options == null ? void 0 : options.multicall}-${options == null ? void 0 : options.pollingInterval}`, () => {
177
+ return createPublicClient(__spreadProps(__spreadValues(__spreadValues({
178
178
  //@ts-ignore
179
179
  chain
180
180
  }, (options == null ? void 0 : options.multicall) ? {
181
181
  batch: {
182
182
  multicall: true
183
183
  }
184
- } : {}), {
184
+ } : {}), (options == null ? void 0 : options.pollingInterval) ? {
185
+ pollingInterval: options.pollingInterval
186
+ } : {
187
+ pollingInterval: 2500
188
+ }), {
185
189
  //@ts-ignore
186
190
  transport: http()
187
191
  }));
@@ -443,4 +447,4 @@ var AIem = _AIem;
443
447
 
444
448
  export { AIem, Cache, Fields };
445
449
  //# sourceMappingURL=out.js.map
446
- //# sourceMappingURL=chunk-SQ7DRKMK.mjs.map
450
+ //# sourceMappingURL=chunk-WWCB4WOQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../aiem.ts","../lib/decorators.ts","../constants/abi.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n type Chain,\r\n type GetContractReturnType,\r\n type Abi,\r\n type PublicClient,\r\n type HttpTransport,\r\n type WalletClient,\r\n type Transport,\r\n type Account,\r\n encodeFunctionData,\r\n http,\r\n getContract,\r\n createPublicClient,\r\n} from \"viem\";\r\nimport { iotex, mainnet, bsc, polygon, iotexTestnet } from \"viem/chains\";\r\nimport TTLCache from \"@isaacs/ttlcache\";\r\nimport { ClassType } from \"./lib/interface\";\r\nimport { getFieldMetadata } from \"./lib/decorators\";\r\nimport { helper } from \"./utils\";\r\nimport BigNumber from \"bignumber.js\";\r\nimport { ERC20ABI } from \"./constants/abi\";\r\n\r\n//@ts-ignore\r\nBigInt.prototype.toJSON = function () {\r\n return this.toString();\r\n};\r\n\r\n(iotexTestnet.contracts = {\r\n multicall3: {\r\n //@ts-ignore\r\n address: \"0xb5cecd6894c6f473ec726a176f1512399a2e355d\",\r\n blockCreated: 24347592,\r\n },\r\n}),\r\n //@ts-ignore\r\n (mainnet.rpcUrls.default.http = [\"https://rpc.ankr.com/eth\"]);\r\n//@ts-ignore\r\nmainnet.rpcUrls.default.webSocket = [\"wss://ethereum-rpc.publicnode.com\"];\r\n\r\nexport { Fields } from \"./lib/decorators\";\r\n\r\nexport class Cache {\r\n kv = new TTLCache<string, any>({ max: 10000, ttl: 1000 * 60 });\r\n\r\n wrap<T>(key: string, fn: () => T | Promise<T>, config: TTLCache.Options<any, any> = {}): T | Promise<T> {\r\n if (this.kv.has(key)) {\r\n // console.log(`load ${key} from cache`)\r\n return this.kv.get(key);\r\n }\r\n\r\n const result = fn();\r\n if (result instanceof Promise) {\r\n const promiseResult = result.then((res) => {\r\n this.kv.set(key, res, config);\r\n return res;\r\n });\r\n this.kv.set(key, promiseResult, config);\r\n return promiseResult;\r\n } else {\r\n this.kv.set(key, result, config);\r\n return result;\r\n }\r\n }\r\n}\r\n\r\nexport type GetOptions = {\r\n multicall?: boolean;\r\n rpcUrls?: Chain[\"rpcUrls\"];\r\n pollingInterval?: number;\r\n};\r\n\r\nexport class AIem<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends { [K in keyof Contracts]?: { [key: string]: `${string}-0x${string}` } }> {\r\n static cache?: Cache = new Cache();\r\n cache?: Cache = new Cache();\r\n contractMap?: Contracts;\r\n //@ts-ignore\r\n chainMap?: Chains = {\r\n [iotex.id]: iotex,\r\n [mainnet.id]: mainnet,\r\n [bsc.id]: bsc,\r\n [polygon.id]: polygon,\r\n [iotexTestnet.id]: iotexTestnet,\r\n };\r\n nameMap?: Addrs;\r\n contracts: {\r\n [K in keyof Addrs & keyof Contracts]: {\r\n //@ts-ignore\r\n [KK in keyof Addrs[K]]: GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>, any, any>;\r\n };\r\n };\r\n static defaultFuncMap = {\r\n totalSupply: { ttl: 15 * 1000 },\r\n symbol: { ttl: 60 * 1000 },\r\n name: { ttl: 60 * 1000 },\r\n decimals: { ttl: 60 * 1000 },\r\n balanceOf: { ttl: 5 * 1000 },\r\n };\r\n funcMap?: { [key: string]: { ttl?: number } } = {};\r\n\r\n get _cache() {\r\n return AIem.cache;\r\n }\r\n\r\n //@ts-ignore\r\n getWallet?: () => WalletClient;\r\n\r\n static Set<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends { [K in keyof Contracts]?: { [key: string]: `${string}-0x${string}` } }>(\r\n args: Pick<AIem<Contracts, Chains, Addrs>, \"contractMap\" | \"chainMap\" | \"nameMap\" | \"getWallet\" | \"cache\" | \"funcMap\">,\r\n ) {\r\n return this.init().Set(args);\r\n }\r\n\r\n Set<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends { [K in keyof Contracts]?: { [key: string]: `${string}-0x${string}` } }>(\r\n args: Pick<AIem<Contracts, Chains, Addrs>, \"contractMap\" | \"chainMap\" | \"nameMap\" | \"getWallet\" | \"cache\" | \"funcMap\">,\r\n ): AIem<Contracts, Chains, Addrs> {\r\n const { chainMap = {}, contractMap = {}, funcMap, ...rest } = args || {};\r\n //@ts-ignore\r\n this.chainMap = Object.assign({}, this.chainMap || {}, chainMap);\r\n //@ts-ignore\r\n this.contractMap = Object.assign({}, this.contractMap || {}, contractMap);\r\n //@ts-ignore\r\n this.funcMap = Object.assign({}, this.funcMap || {}, funcMap);\r\n\r\n Object.assign(this, rest);\r\n return this as any;\r\n }\r\n\r\n constructor(args: Pick<AIem<Contracts, Chains, Addrs>, \"contractMap\" | \"chainMap\" | \"nameMap\" | \"getWallet\" | \"cache\" | \"funcMap\"> = {}) {\r\n this.Set(args);\r\n\r\n this.contracts = new Proxy(\r\n {},\r\n {\r\n //@ts-ignore\r\n get: (target: any, contractName: keyof Addrs & keyof Contracts) => {\r\n if (target[contractName]) return target[contractName];\r\n\r\n if (!this.nameMap[contractName]) {\r\n throw new Error(`Contract ${String(contractName)} not found`);\r\n }\r\n\r\n target[contractName] = new Proxy(\r\n {},\r\n {\r\n //@ts-ignore\r\n get: (innerTarget: any, contractAlias: keyof Addrs[keyof Addrs]) => {\r\n const addressStr = this.nameMap[contractName]?.[contractAlias];\r\n if (!addressStr) {\r\n throw new Error(`Alias ${String(contractAlias)} for contract ${String(contractName)} not found`);\r\n }\r\n const [chainId, address] = addressStr.split(\"-\");\r\n\r\n // Assuming getContractInstance is a function that retrieves a contract instance\r\n return this.Get(contractName, String(chainId), address as `0x${string}`);\r\n },\r\n },\r\n );\r\n return target[contractName];\r\n },\r\n },\r\n ) as any;\r\n }\r\n\r\n // WsClient<C extends keyof Chains>(chainId: C): PublicClient<WebSocketTransport, Chain, any, any> {\r\n // //@ts-ignore\r\n // return this.cache.wrap(`wsClient-${String(chainId)}`, () => {\r\n // // const wsUrl = this.chainMap[chainId]?.rpcUrls?.default?.webSocket?.[0]\r\n // // if (!wsUrl) throw new Error(`rpcUrls.default.webSocket[0] is not defined for chainId ${String(chainId)}`)\r\n // // //@ts-ignore\r\n // return createPublicClient({\r\n // //@ts-ignore\r\n // chain: this.chainMap[chainId],\r\n // transport: webSocket()\r\n // }) as PublicClient<WebSocketTransport, Chain, any, any>\r\n // })\r\n // }\r\n\r\n static PubClient(chainId: string, options: GetOptions = { multicall: true }): PublicClient<HttpTransport, Chain, any, any> {\r\n //@ts-ignore\r\n return this.init().PubClient(chainId, options);\r\n }\r\n\r\n PubClient<C extends keyof Chains>(chainId: C, options: GetOptions = { multicall: true }): PublicClient<HttpTransport, Chain, any, any> {\r\n const chain = this.chainMap[chainId]\r\n if (options.rpcUrls) {\r\n chain.rpcUrls = options.rpcUrls\r\n }\r\n //@ts-ignore\r\n return this._cache.wrap(`publicClient-${String(chainId)}-${chain.rpcUrls.default.http}-${options?.multicall}-${options?.pollingInterval}`, () => {\r\n //@ts-ignore\r\n return createPublicClient({\r\n //@ts-ignore\r\n chain,\r\n ...(options?.multicall\r\n ? {\r\n batch: {\r\n multicall: true,\r\n },\r\n }\r\n : {}),\r\n ...(options?.pollingInterval\r\n ? {\r\n pollingInterval: options.pollingInterval,\r\n }\r\n : {\r\n pollingInterval: 2500\r\n }),\r\n //@ts-ignore\r\n transport: http(),\r\n });\r\n });\r\n }\r\n\r\n //@ts-ignore\r\n static Get<TAbi extends Abi = any, ReturnType extends GetContractReturnType<TAbi, WalletClient<Transport, Chain, Account>>>(\r\n abi: TAbi,\r\n chainId: any,\r\n address: any,\r\n wallet?: WalletClient,\r\n //@ts-ignore\r\n options?: GetOptions = { multicall: true },\r\n //@ts-ignore\r\n ): ReturnType & { encode: ReturnType[\"write\"] } {\r\n const aiem = this.init();\r\n if (!wallet) {\r\n wallet = aiem.getWallet ? aiem.getWallet() : null;\r\n }\r\n\r\n const cacheKey = `contract ${chainId}-${address}-${wallet ? wallet.account.address : null}`;\r\n return aiem._cache.wrap(cacheKey, () => {\r\n //@ts-ignore\r\n const pubClient = aiem.PubClient(chainId, options);\r\n\r\n //@ts-ignore\r\n return aiem.getContract({\r\n client: {\r\n //@ts-ignore\r\n public: pubClient,\r\n //@ts-ignore\r\n wallet,\r\n },\r\n address,\r\n abi,\r\n });\r\n }) as any;\r\n }\r\n\r\n //@ts-ignore\r\n Get<K extends keyof Contracts, C extends keyof Chains, Addr extends `0x${string}`>(\r\n contractName: K,\r\n chainId: C,\r\n address: Addr,\r\n options: GetOptions = { multicall: true },\r\n //@ts-ignore\r\n ): GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>> & { encode: GetContractReturnType<Contracts[K], WalletClient<HttpTransport, Chain, Account, any>>[\"write\"] } {\r\n const wallet = this.getWallet ? this.getWallet() : null;\r\n //@ts-ignore\r\n const cacheKey = `contract ${chainId}-${address}-${wallet ? wallet.account.address : null}`;\r\n return this._cache.wrap(cacheKey, () => {\r\n //@ts-ignore\r\n const contract = this.contractMap[contractName];\r\n //@ts-ignore\r\n const pubClient = this.PubClient(chainId, options);\r\n\r\n //@ts-ignore\r\n return this.getContract({\r\n client: {\r\n //@ts-ignore\r\n public: pubClient,\r\n //@ts-ignore\r\n wallet,\r\n },\r\n address,\r\n abi: contract,\r\n });\r\n }) as any;\r\n }\r\n\r\n getContract({\r\n client,\r\n address,\r\n abi,\r\n }: {\r\n client: {\r\n public: PublicClient<HttpTransport, Chain, any, any>;\r\n wallet?: WalletClient;\r\n };\r\n address: `0x${string}`;\r\n abi: any;\r\n }) {\r\n const handler = {\r\n get: (target: any, funcName: any) => {\r\n if (funcName == \"encode\") {\r\n return new Proxy(\r\n {},\r\n {\r\n get(t1, f1) {\r\n return async (args: any) => {\r\n // @ts-ignore\r\n return encodeFunctionData({\r\n abi,\r\n functionName: f1,\r\n args,\r\n });\r\n };\r\n },\r\n },\r\n );\r\n }\r\n\r\n if (typeof target[funcName] === \"function\") {\r\n return async (...args: any[]) => {\r\n const methodConfig = this.funcMap?.[funcName as string];\r\n // const cacheKey = `method:${client.public.chain.id}-${address}-${String(funcName)}-${JSON.stringify(args)}`;\r\n const cacheKey = `call ${client.public.chain.id}-${address}-${funcName}-${JSON.stringify(args)}`;\r\n\r\n if (methodConfig) {\r\n return this.cache.wrap(\r\n cacheKey,\r\n () => {\r\n return target[funcName](...args);\r\n },\r\n methodConfig,\r\n );\r\n }\r\n\r\n return target[funcName](...args);\r\n };\r\n }\r\n return new Proxy(target[funcName], handler);\r\n },\r\n };\r\n\r\n //@ts-ignore\r\n const contract = getContract({\r\n //@ts-ignore\r\n client,\r\n address,\r\n abi,\r\n });\r\n return new Proxy(contract, handler) as any;\r\n }\r\n\r\n static init(): AIem<any, any, any> {\r\n if (!globalThis.aiem) {\r\n //@ts-ignore\r\n globalThis.aiem = new AIem();\r\n }\r\n\r\n return globalThis.aiem;\r\n }\r\n\r\n static async getPrice({ chainId = \"4689\", address }: { chainId?: string; address: string }) {\r\n const priceMap = await this.cache.wrap(\r\n `token-price`,\r\n async () => {\r\n const res = await (await fetch(\"https://api.iopay.me/api/rest/price\")).json();\r\n return Object.values(res)\r\n .flat()\r\n .reduce((p, c: { platforms: string; current_price: number }) => {\r\n p[`${4689}-${c.platforms.toLowerCase()}`] = c.current_price;\r\n return p;\r\n }, {});\r\n },\r\n { ttl: 1000 * 60 },\r\n );\r\n return priceMap[`${chainId}-${address}`];\r\n }\r\n\r\n static utils = {\r\n autoFormat: async ({ value, decimals, chainId, address }: { value: string; decimals?: number; chainId: string; address: string }) => {\r\n if (!decimals) {\r\n //@ts-ignore\r\n decimals = await this.cache.wrap(`${chainId}-${address}-decimals`, async () => {\r\n //@ts-ignore\r\n return this.Get(ERC20ABI, chainId, address).read.decimals()\r\n })\r\n }\r\n const wrap = helper.number.warpBigNumber(value, decimals, { format: \"0,0.000000\", fallback: \"\" });\r\n const price = await this.getPrice({ chainId, address: address.toLowerCase() });\r\n const usd = new BigNumber(wrap.originFormat).multipliedBy(price || 0).toFixed(2);\r\n return { ...wrap, usd, price };\r\n },\r\n };\r\n\r\n static QueryMany<E, S extends QuerySelect<E>>(entity: ClassType<E>, select: S) {\r\n return async (_entities: Partial<E>[]): Promise<QueryReturnType<E, S>[]> => {\r\n //@ts-ignore\r\n return this.Query(entity, select)(_entities) as any;\r\n };\r\n }\r\n\r\n static Query<E, S extends QuerySelect<E>>(entity: ClassType<E>, select: S) {\r\n return async (entities: Partial<E>): Promise<QueryReturnType<E, S>> => {\r\n const isArrayInput = Array.isArray(entities);\r\n\r\n try {\r\n const results: Array<QueryReturnType<E, S>> = [];\r\n\r\n if (!isArrayInput) {\r\n //@ts-ignore\r\n entities = [entities];\r\n }\r\n //@ts-ignore\r\n for (const entityData of entities) {\r\n const instance = Object.assign(new entity(), entityData);\r\n // const result: any = {};\r\n\r\n const fetchFields = async (obj: any, sel: any) => {\r\n const promises = [];\r\n for (const key in sel) {\r\n // return console.log(key, getFieldMetadata(obj, key))\r\n // Check if the property is annotated with @Fields.read(), @Fields.custom(), or @Fields.contract()\r\n const fieldMetadata = getFieldMetadata(obj, key);\r\n let call: any;\r\n //@ts-ignore\r\n const enableMulticall = entity.multicall == false ? false : true;\r\n // console.log(key, fieldMetadata, instance)\r\n if (sel[key] == false) {\r\n call = async () => null;\r\n } else {\r\n switch (fieldMetadata?.type) {\r\n case \"read\":\r\n if (Array.isArray(sel[key])) {\r\n //@ts-ignore\r\n call = () => this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall }).read[key](sel[key]);\r\n } else {\r\n //@ts-ignore\r\n call = () => this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall }).read[key]();\r\n }\r\n break;\r\n case \"write\":\r\n // @ts-ignore\r\n obj[key] = encodeFunctionData({\r\n //@ts-ignore\r\n abi: entity.abi,\r\n functionName: key,\r\n args: sel[key],\r\n });\r\n\r\n break;\r\n case \"custom\":\r\n const func = fieldMetadata.func\r\n call = () => func(instance)\r\n break;\r\n case \"entity\":\r\n const targetMetadata = getFieldMetadata(instance, fieldMetadata.targetKey);\r\n\r\n if (typeof fieldMetadata.targetKey == \"string\") {\r\n if (targetMetadata?.options?.ttl) {\r\n //@ts-ignore\r\n const cacheKey = `call ${instance.chainId}-${instance.address}-${fieldMetadata.targetKey}`;\r\n //@ts-ignore\r\n call = () =>\r\n new Promise(async (resolve) => {\r\n //@ts-ignore\r\n const address = await this.cache.wrap(cacheKey, async () =>\r\n //@ts-ignore\r\n this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall }).read[fieldMetadata.targetKey](),\r\n );\r\n //@ts-ignore\r\n resolve(this.Query(fieldMetadata.entity(), sel[key])({ address, chainId: instance.chainId }));\r\n });\r\n } else {\r\n call = () =>\r\n //@ts-ignore\r\n this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall })\r\n //@ts-ignore\r\n .read[fieldMetadata.targetKey]()\r\n .then((address: any) => {\r\n // console.log({ address, sel: sel[key] })\r\n //@ts-ignore\r\n return this.Query(fieldMetadata.entity(), sel[key])({ address, chainId: instance.chainId });\r\n });\r\n }\r\n } else {\r\n //@ts-ignore\r\n call = () =>\r\n fieldMetadata.targetKey(instance).then((args) => {\r\n // console.log(args)\r\n return Array.isArray(args) ? this.QueryMany(fieldMetadata.entity(), sel[key])(args) : this.Query(fieldMetadata.entity(), sel[key])(args);\r\n });\r\n }\r\n break;\r\n default:\r\n if (typeof obj[key] == \"function\") {\r\n call = () => obj[key](...(Array.isArray(sel[key]) ? sel[key] : []));\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (call) {\r\n if (fieldMetadata?.options?.ttl) {\r\n //@ts-ignore\r\n const cacheKey = `call ${instance.chainId}-${instance.address}-${key}-${JSON.stringify(sel[key])}`;\r\n promises.push(\r\n new Promise(async (resolve) => {\r\n const value = await this.cache.wrap(cacheKey, async () => call().catch(i => null), fieldMetadata.options)\r\n obj[key] = value;\r\n resolve(value);\r\n })\r\n );\r\n } else {\r\n promises.push(\r\n call()\r\n .then((value) => {\r\n obj[key] = value;\r\n })\r\n .catch((i) => (obj[key] = null)),\r\n );\r\n }\r\n }\r\n }\r\n\r\n await Promise.all(promises);\r\n };\r\n\r\n await fetchFields(instance, select);\r\n //@ts-ignore\r\n results.push(instance);\r\n }\r\n\r\n if (isArrayInput) {\r\n return results as any;\r\n } else {\r\n return results[0] as any;\r\n }\r\n } catch (error) {\r\n if (isArrayInput) {\r\n return [] as any;\r\n } else {\r\n return null as any;\r\n }\r\n }\r\n };\r\n }\r\n}\r\nexport type Item<T> = T extends (infer U)[] ? U : T;\r\n\r\n// export type QueryResult<E, S extends QuerySelect<E>> =\r\n// E extends Array<any> ? Promise<Array<QueryReturnType<E[number], S>>> :\r\n// E extends object ? Promise<QueryReturnType<E, S>> :\r\n// never;\r\n\r\ntype QuerySelect<E> = {\r\n [K in keyof E]?: E[K] extends (...args: any[]) => any ? Parameters<E[K]> | boolean : E[K] extends object ? QuerySelect<Item<E[K]>> | boolean : boolean;\r\n};\r\n\r\n// type FunctionReturn<T> = T extends (...args: any[]) => any ? Awaited<ReturnType<T>> : T;\r\n// type NestedReturn<E, S> = E extends object ? S extends object ? QueryReturnType<E, S> : E : E;\r\n\r\nexport type QueryReturnType<E, S extends QuerySelect<E>> = {\r\n [K in keyof E]: K extends keyof S\r\n ? E[K] extends (...args: any[]) => any\r\n ? Awaited<ReturnType<E[K]>>\r\n : E[K] extends object\r\n ? S[K] extends object\r\n ? QueryReturnType<E[K], S[K]>\r\n : E[K]\r\n : E[K]\r\n : E[K];\r\n\r\n};\r\n\r\n","import \"reflect-metadata\";\r\nimport { ClassType } from \"./interface\";\r\n\r\nexport const FIELD_KEY = Symbol(\"aiem_field\");\r\n\r\nexport interface FieldParams {\r\n ttl?: number;\r\n}\r\n\r\nexport type ContractParams<T extends any = any, K extends keyof T = keyof T> = K;\r\n\r\nconst metadataCache = new WeakMap<any, Map<any, any>>();\r\n\r\nexport class Fields {\r\n static hide(options: any = {}) {\r\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\r\n Fields.setMetadata(target, propertyKey, { type: \"hide\", options });\r\n };\r\n }\r\n\r\n static read(options: any = {}) {\r\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\r\n Fields.setMetadata(target, propertyKey, { type: \"read\", options });\r\n };\r\n }\r\n\r\n static write(options: any = {}) {\r\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\r\n Fields.setMetadata(target, propertyKey, { type: \"write\", options });\r\n };\r\n }\r\n\r\n static custom(func: any = {}) {\r\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\r\n Fields.setMetadata(target, propertyKey, { type: \"custom\", func });\r\n };\r\n }\r\n\r\n static relation<T = any, R = any>(entity: () => ClassType<R>, options: ((e: T) => Promise<Partial<R> | Partial<R>[]>) | string) {\r\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\r\n Fields.setMetadata(target, propertyKey, { type: \"entity\", entity, targetKey: options });\r\n };\r\n }\r\n\r\n static contract<T = any, R = any>(entity: () => ClassType<R>, options: ((e: T) => Promise<Partial<R> | Partial<R>[]>) | string) {\r\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\r\n Fields.setMetadata(target, propertyKey, { type: \"entity\", entity, targetKey: options });\r\n };\r\n }\r\n private static setMetadata(target: any, propertyKey: any, metadata: any) {\r\n let targetMetadata = metadataCache.get(target);\r\n if (!targetMetadata) {\r\n targetMetadata = new Map<any, any>();\r\n metadataCache.set(target, targetMetadata);\r\n }\r\n targetMetadata.set(propertyKey, metadata);\r\n // @ts-ignore \r\n Reflect.defineMetadata(FIELD_KEY, metadata, target, propertyKey);\r\n }\r\n}\r\n\r\nexport function getFieldMetadata(target: any, propertyKey: string) {\r\n const targetMetadata = metadataCache.get(target);\r\n if (targetMetadata) {\r\n return targetMetadata.get(propertyKey);\r\n }\r\n // @ts-ignore \r\n return Reflect.getMetadata(FIELD_KEY, target, propertyKey);\r\n}\r\n","export const ERC20ABI = [{ \"inputs\": [{ \"internalType\": \"string\", \"name\": \"name\", \"type\": \"string\" }, { \"internalType\": \"string\", \"name\": \"symbol\", \"type\": \"string\" }, { \"internalType\": \"uint256\", \"name\": \"initialSupply\", \"type\": \"uint256\" }, { \"internalType\": \"address\", \"name\": \"owner\", \"type\": \"address\" }], \"stateMutability\": \"nonpayable\", \"type\": \"constructor\" }, { \"anonymous\": false, \"inputs\": [{ \"indexed\": true, \"internalType\": \"address\", \"name\": \"owner\", \"type\": \"address\" }, { \"indexed\": true, \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }, { \"indexed\": false, \"internalType\": \"uint256\", \"name\": \"value\", \"type\": \"uint256\" }], \"name\": \"Approval\", \"type\": \"event\" }, { \"anonymous\": false, \"inputs\": [{ \"indexed\": true, \"internalType\": \"address\", \"name\": \"from\", \"type\": \"address\" }, { \"indexed\": true, \"internalType\": \"address\", \"name\": \"to\", \"type\": \"address\" }, { \"indexed\": false, \"internalType\": \"uint256\", \"name\": \"value\", \"type\": \"uint256\" }], \"name\": \"Transfer\", \"type\": \"event\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"owner\", \"type\": \"address\" }, { \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }], \"name\": \"allowance\", \"outputs\": [{ \"internalType\": \"uint256\", \"name\": \"\", \"type\": \"uint256\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"approve\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"account\", \"type\": \"address\" }], \"name\": \"balanceOf\", \"outputs\": [{ \"internalType\": \"uint256\", \"name\": \"\", \"type\": \"uint256\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"burn\", \"outputs\": [], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"account\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"burnFrom\", \"outputs\": [], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [], \"name\": \"decimals\", \"outputs\": [{ \"internalType\": \"uint8\", \"name\": \"\", \"type\": \"uint8\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"subtractedValue\", \"type\": \"uint256\" }], \"name\": \"decreaseAllowance\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"spender\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"addedValue\", \"type\": \"uint256\" }], \"name\": \"increaseAllowance\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [], \"name\": \"name\", \"outputs\": [{ \"internalType\": \"string\", \"name\": \"\", \"type\": \"string\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [], \"name\": \"symbol\", \"outputs\": [{ \"internalType\": \"string\", \"name\": \"\", \"type\": \"string\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [], \"name\": \"totalSupply\", \"outputs\": [{ \"internalType\": \"uint256\", \"name\": \"\", \"type\": \"uint256\" }], \"stateMutability\": \"view\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"recipient\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"transfer\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }, { \"inputs\": [{ \"internalType\": \"address\", \"name\": \"sender\", \"type\": \"address\" }, { \"internalType\": \"address\", \"name\": \"recipient\", \"type\": \"address\" }, { \"internalType\": \"uint256\", \"name\": \"amount\", \"type\": \"uint256\" }], \"name\": \"transferFrom\", \"outputs\": [{ \"internalType\": \"bool\", \"name\": \"\", \"type\": \"bool\" }], \"stateMutability\": \"nonpayable\", \"type\": \"function\" }] as const;"]}
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-JAINYJVQ.mjs';
1
+ export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, ObjectPool, PromiseHook, StorageListState, StorageState } from './chunk-4KRVA5CB.mjs';
2
2
  export { BooleanState, NumberState, PromiseState, Store, StringState, ValueState } from './chunk-I2RSE63R.mjs';
3
- import './chunk-SQ7DRKMK.mjs';
3
+ import './chunk-WWCB4WOQ.mjs';
4
4
  import './chunk-2BZKMJZX.mjs';
5
5
  import './chunk-FWK5VZHE.mjs';
6
6
  import './chunk-7EL2RQI7.mjs';
package/dist/wallet.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { WalletConfigStore, WalletStore, WalletRpcStore } from './chunk-JAINYJVQ.mjs';
2
- export { ConnectLedger, DisconnectLedger, WalletConfigStore, WalletHistoryStore, WalletRpcStore, WalletStore } from './chunk-JAINYJVQ.mjs';
1
+ import { WalletConfigStore, WalletStore, WalletRpcStore } from './chunk-4KRVA5CB.mjs';
2
+ export { ConnectLedger, DisconnectLedger, WalletConfigStore, WalletHistoryStore, WalletRpcStore, WalletStore } from './chunk-4KRVA5CB.mjs';
3
3
  import './chunk-I2RSE63R.mjs';
4
- import './chunk-SQ7DRKMK.mjs';
4
+ import './chunk-WWCB4WOQ.mjs';
5
5
  import './chunk-2BZKMJZX.mjs';
6
6
  import './chunk-FWK5VZHE.mjs';
7
7
  import { ToastPlugin } from './chunk-7EL2RQI7.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dappworks/kit",
3
- "version": "0.5.32",
3
+ "version": "0.5.33",
4
4
  "description": "",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",