@dappworks/kit 0.5.39 → 0.5.41
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/PaginationState-c19e621a.d.ts +17 -0
- package/dist/PromiseState-e64b3707.d.ts +57 -0
- package/dist/StorageState-cfd942cb.d.ts +48 -0
- package/dist/aiem.d.mts +168 -0
- package/dist/aiem.mjs +2 -2
- package/dist/{chunk-DTCEVRDM.mjs → chunk-3XIPR2M3.mjs} +2 -2
- package/dist/chunk-3XIPR2M3.mjs.map +1 -0
- package/dist/{chunk-WKE3FSON.mjs → chunk-4F33QAJ4.mjs} +5 -5
- package/dist/{chunk-R4SQKVDQ.mjs → chunk-6F7H4PAA.mjs} +1 -1
- package/dist/{chunk-PZ3VSAOC.mjs → chunk-C5BPNLKH.mjs} +3 -3
- package/dist/{chunk-QA3E2PJT.mjs → chunk-FJHGIW3I.mjs} +2 -2
- package/dist/{chunk-XSGTWROT.mjs → chunk-IDKGZ5T4.mjs} +7 -7
- package/dist/{chunk-XSGTWROT.mjs.map → chunk-IDKGZ5T4.mjs.map} +1 -1
- package/dist/{chunk-MPNSYZJU.mjs → chunk-ISV4OEKJ.mjs} +4 -4
- package/dist/{chunk-2HNXZE3X.mjs → chunk-M5Y3VYMJ.mjs} +373 -396
- package/dist/chunk-M5Y3VYMJ.mjs.map +1 -0
- package/dist/{chunk-B7RV4C5E.mjs → chunk-SL5OV6OR.mjs} +2 -2
- package/dist/dev.d.mts +26 -0
- package/dist/dev.mjs +2 -2
- package/dist/experimental.d.mts +190 -0
- package/dist/experimental.mjs +3 -3
- package/dist/form.d.mts +384 -0
- package/dist/form.mjs +3 -3
- package/dist/index-38be834f.d.ts +3 -0
- package/dist/index.d.mts +90 -0
- package/dist/index.mjs +6 -6
- package/dist/inspector.d.mts +15 -0
- package/dist/inspector.mjs +1 -1
- package/dist/jsoncomponent.d.mts +22 -0
- package/dist/jsoncomponent.mjs +1 -1
- package/dist/jsontable.d.mts +126 -0
- package/dist/jsontable.mjs +4 -4
- package/dist/metrics.d.mts +121 -0
- package/dist/metrics.mjs +4 -4
- package/dist/plugins.d.mts +118 -0
- package/dist/plugins.mjs +5 -5
- package/dist/root-218afa4f.d.ts +111 -0
- package/dist/ui.d.mts +29 -0
- package/dist/ui.mjs +3 -3
- package/dist/utils.d.mts +148 -0
- package/dist/utils.mjs +1 -1
- package/dist/wallet.d.mts +196 -0
- package/dist/wallet.mjs +7 -7
- package/package.json +2 -2
- package/dist/chunk-2HNXZE3X.mjs.map +0 -1
- package/dist/chunk-DTCEVRDM.mjs.map +0 -1
- /package/dist/{chunk-WKE3FSON.mjs.map → chunk-4F33QAJ4.mjs.map} +0 -0
- /package/dist/{chunk-R4SQKVDQ.mjs.map → chunk-6F7H4PAA.mjs.map} +0 -0
- /package/dist/{chunk-PZ3VSAOC.mjs.map → chunk-C5BPNLKH.mjs.map} +0 -0
- /package/dist/{chunk-QA3E2PJT.mjs.map → chunk-FJHGIW3I.mjs.map} +0 -0
- /package/dist/{chunk-MPNSYZJU.mjs.map → chunk-ISV4OEKJ.mjs.map} +0 -0
- /package/dist/{chunk-B7RV4C5E.mjs.map → chunk-SL5OV6OR.mjs.map} +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type ArgsType = {
|
|
2
|
+
page: number;
|
|
3
|
+
limit: number;
|
|
4
|
+
total: number;
|
|
5
|
+
onPageChange: (page: number) => void;
|
|
6
|
+
};
|
|
7
|
+
declare class PaginationState {
|
|
8
|
+
page: number;
|
|
9
|
+
limit: number;
|
|
10
|
+
total: number;
|
|
11
|
+
constructor(args: Partial<ArgsType>);
|
|
12
|
+
get offset(): number;
|
|
13
|
+
onPageChange(page: number): void;
|
|
14
|
+
setData(v: Partial<ArgsType>): void;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { PaginationState as P };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { c as BooleanState, B as BaseState } from './root-218afa4f.js';
|
|
3
|
+
|
|
4
|
+
interface Events {
|
|
5
|
+
data: (data: any) => void;
|
|
6
|
+
error: (error: any) => void;
|
|
7
|
+
select: (index: number) => void;
|
|
8
|
+
update: () => void;
|
|
9
|
+
finally: () => void;
|
|
10
|
+
wait: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare class PromiseState<T extends (...args: any[]) => Promise<any>, U = ReturnType<T>> {
|
|
13
|
+
sid: string;
|
|
14
|
+
key?: string;
|
|
15
|
+
loading: BooleanState;
|
|
16
|
+
value?: Awaited<U>;
|
|
17
|
+
defaultValue: any;
|
|
18
|
+
function: T;
|
|
19
|
+
transform?: (value: any) => Promise<Awaited<U>> | Awaited<U>;
|
|
20
|
+
onError?: (error: any) => void | null;
|
|
21
|
+
autoAlert: boolean;
|
|
22
|
+
autoUpdate: boolean;
|
|
23
|
+
autoInit: boolean;
|
|
24
|
+
autoClean: boolean;
|
|
25
|
+
context: any;
|
|
26
|
+
successMsg: string;
|
|
27
|
+
errMsg: string;
|
|
28
|
+
showUnauthorizedAlert: boolean;
|
|
29
|
+
loadingLock: boolean;
|
|
30
|
+
event: EventEmitter<[never]>;
|
|
31
|
+
on<E extends keyof Events>(event: E, listener: Events[E]): this;
|
|
32
|
+
once<E extends keyof Events>(event: E, listener: Events[E]): this;
|
|
33
|
+
use<E extends keyof Events>(event: E, listener: Events[E]): () => EventEmitter<[never]>;
|
|
34
|
+
emit<E extends keyof Events>(event: E, ...args: Parameters<Events[E]>): void;
|
|
35
|
+
init: () => Promise<void>;
|
|
36
|
+
currentIndex: BaseState;
|
|
37
|
+
get current(): any;
|
|
38
|
+
_onSelect(index: number): void;
|
|
39
|
+
onSelect(index: number): void;
|
|
40
|
+
toJSON(): {
|
|
41
|
+
value: Awaited<U>;
|
|
42
|
+
};
|
|
43
|
+
waitItem(): Promise<Awaited<U>[0]>;
|
|
44
|
+
wait({ call }?: {
|
|
45
|
+
call?: boolean;
|
|
46
|
+
}): Promise<Awaited<U>>;
|
|
47
|
+
debug: {
|
|
48
|
+
name: string;
|
|
49
|
+
input: Record<string, any>;
|
|
50
|
+
};
|
|
51
|
+
constructor(args?: Partial<PromiseState<T, U>>);
|
|
52
|
+
setValue(val: any): Promise<void>;
|
|
53
|
+
getOrCall(...args: Parameters<T>): Promise<Awaited<U>>;
|
|
54
|
+
call(...args: Parameters<T>): Promise<Awaited<U>>;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { PromiseState as P };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as mobx from 'mobx';
|
|
2
|
+
|
|
3
|
+
declare abstract class ContractBase {
|
|
4
|
+
}
|
|
5
|
+
type ContractClass<T extends ContractBase> = new (args: Partial<T>) => T;
|
|
6
|
+
type PromiseHookData<T, U> = {
|
|
7
|
+
value: Awaited<U>;
|
|
8
|
+
get: T;
|
|
9
|
+
call: T;
|
|
10
|
+
func: T;
|
|
11
|
+
loading: boolean;
|
|
12
|
+
errorRetry: number;
|
|
13
|
+
};
|
|
14
|
+
declare class PromiseHook {
|
|
15
|
+
static entities: mobx.IObservableArray<any>;
|
|
16
|
+
static Get<T extends ContractBase>(cls: ContractClass<T>): (args: {
|
|
17
|
+
args: Partial<T>;
|
|
18
|
+
id?: string;
|
|
19
|
+
select?: {
|
|
20
|
+
[key in keyof Partial<T>]: boolean;
|
|
21
|
+
};
|
|
22
|
+
unselect?: {
|
|
23
|
+
[key in keyof Partial<T>]: boolean;
|
|
24
|
+
};
|
|
25
|
+
}) => Promise<T & {
|
|
26
|
+
refresh: () => Promise<void>;
|
|
27
|
+
}>;
|
|
28
|
+
static isPromiseHook(target: any): boolean;
|
|
29
|
+
static wrap<T extends (...args: any[]) => Promise<any>, U = ReturnType<T>>({ func, defaultValue, lazy }: {
|
|
30
|
+
func: T;
|
|
31
|
+
defaultValue?: Awaited<U>;
|
|
32
|
+
lazy?: boolean;
|
|
33
|
+
}): PromiseHookData<T, U>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
declare class StorageState<T> {
|
|
37
|
+
key: string;
|
|
38
|
+
value: T | any;
|
|
39
|
+
default: T | any;
|
|
40
|
+
constructor(args: Partial<StorageState<T>>);
|
|
41
|
+
static safeParse(val: any): any;
|
|
42
|
+
load(): any;
|
|
43
|
+
save(value?: T): any;
|
|
44
|
+
setValue(value?: T): void;
|
|
45
|
+
clear(): any;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { PromiseHook as P, StorageState as S, PromiseHookData as a };
|
package/dist/aiem.d.mts
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import * as viem from 'viem';
|
|
2
|
+
import { MulticallBatchOptions, Chain, Abi, GetContractReturnType, PublicClient, HttpTransport, WalletClient, Transport, Account } from 'viem';
|
|
3
|
+
import TTLCache from '@isaacs/ttlcache';
|
|
4
|
+
|
|
5
|
+
type ClassType<T> = {
|
|
6
|
+
new (...args: any[]): T;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
declare class Fields {
|
|
10
|
+
static hide(options?: any): (target: any, propertyKey: any, descriptor?: PropertyDescriptor) => void;
|
|
11
|
+
static read(options?: any): (target: any, propertyKey: any, descriptor?: PropertyDescriptor) => void;
|
|
12
|
+
static write(options?: any): (target: any, propertyKey: any, descriptor?: PropertyDescriptor) => void;
|
|
13
|
+
static custom(func?: any): (target: any, propertyKey: any, descriptor?: PropertyDescriptor) => void;
|
|
14
|
+
static relation<T = any, R = any>(entity: () => ClassType<R>, options: ((e: T) => Promise<Partial<R> | Partial<R>[]>) | string): (target: any, propertyKey: any, descriptor?: PropertyDescriptor) => void;
|
|
15
|
+
static contract<T = any, R = any>(entity: () => ClassType<R>, options: ((e: T) => Promise<Partial<R> | Partial<R>[]>) | string): (target: any, propertyKey: any, descriptor?: PropertyDescriptor) => void;
|
|
16
|
+
private static setMetadata;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
declare const iotexBabelNightly: {
|
|
20
|
+
blockExplorers: {
|
|
21
|
+
readonly default: {
|
|
22
|
+
readonly name: "IoTeXScan";
|
|
23
|
+
readonly url: "https://testnet.iotexscan.io";
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
blockTime?: number | undefined;
|
|
27
|
+
contracts?: viem.Prettify<{
|
|
28
|
+
[key: string]: viem.ChainContract | {
|
|
29
|
+
[sourceId: number]: viem.ChainContract | undefined;
|
|
30
|
+
} | undefined;
|
|
31
|
+
} & {
|
|
32
|
+
ensRegistry?: viem.ChainContract | undefined;
|
|
33
|
+
ensUniversalResolver?: viem.ChainContract | undefined;
|
|
34
|
+
multicall3?: viem.ChainContract | undefined;
|
|
35
|
+
erc6492Verifier?: viem.ChainContract | undefined;
|
|
36
|
+
}> | undefined;
|
|
37
|
+
ensTlds?: readonly string[] | undefined;
|
|
38
|
+
id: 4691;
|
|
39
|
+
name: "IoTeX Babel Nightly";
|
|
40
|
+
nativeCurrency: {
|
|
41
|
+
readonly decimals: 18;
|
|
42
|
+
readonly name: "IoTeX";
|
|
43
|
+
readonly symbol: "IOTX";
|
|
44
|
+
};
|
|
45
|
+
experimental_preconfirmationTime?: number | undefined;
|
|
46
|
+
rpcUrls: {
|
|
47
|
+
readonly default: {
|
|
48
|
+
readonly http: readonly ["https://babel-nightly.iotex.io"];
|
|
49
|
+
readonly webSocket: readonly ["wss://babel-nightly.iotex.io"];
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
sourceId?: number | undefined;
|
|
53
|
+
testnet: true;
|
|
54
|
+
custom?: Record<string, unknown>;
|
|
55
|
+
fees?: viem.ChainFees<undefined>;
|
|
56
|
+
formatters?: undefined;
|
|
57
|
+
serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable>;
|
|
58
|
+
readonly network: "iotex-babel-nightly";
|
|
59
|
+
readonly iconUrl: "https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png";
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
declare class Cache {
|
|
63
|
+
kv: TTLCache<string, any>;
|
|
64
|
+
wrap<T>(key: string, fn: () => T | Promise<T>, config?: TTLCache.Options<any, any>): T | Promise<T>;
|
|
65
|
+
}
|
|
66
|
+
type GetOptions = {
|
|
67
|
+
multicall?: boolean | MulticallBatchOptions;
|
|
68
|
+
rpcUrls?: Chain["rpcUrls"];
|
|
69
|
+
pollingInterval?: number;
|
|
70
|
+
};
|
|
71
|
+
declare class AIem<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends {
|
|
72
|
+
[K in keyof Contracts]?: {
|
|
73
|
+
[key: string]: `${string}-0x${string}`;
|
|
74
|
+
};
|
|
75
|
+
}> {
|
|
76
|
+
static cache?: Cache;
|
|
77
|
+
cache?: Cache;
|
|
78
|
+
contractMap?: Contracts;
|
|
79
|
+
chainMap?: Chains;
|
|
80
|
+
nameMap?: Addrs;
|
|
81
|
+
contracts: {
|
|
82
|
+
[K in keyof Addrs & keyof Contracts]: {
|
|
83
|
+
[KK in keyof Addrs[K]]: GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>, any, any>;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
static defaultFuncMap: {
|
|
87
|
+
totalSupply: {
|
|
88
|
+
ttl: number;
|
|
89
|
+
};
|
|
90
|
+
symbol: {
|
|
91
|
+
ttl: number;
|
|
92
|
+
};
|
|
93
|
+
name: {
|
|
94
|
+
ttl: number;
|
|
95
|
+
};
|
|
96
|
+
decimals: {
|
|
97
|
+
ttl: number;
|
|
98
|
+
};
|
|
99
|
+
balanceOf: {
|
|
100
|
+
ttl: number;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
funcMap?: {
|
|
104
|
+
[key: string]: {
|
|
105
|
+
ttl?: number;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
get _cache(): Cache;
|
|
109
|
+
getWallet?: () => WalletClient;
|
|
110
|
+
static Set<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends {
|
|
111
|
+
[K in keyof Contracts]?: {
|
|
112
|
+
[key: string]: `${string}-0x${string}`;
|
|
113
|
+
};
|
|
114
|
+
}>(args: Pick<AIem<Contracts, Chains, Addrs>, "contractMap" | "chainMap" | "nameMap" | "getWallet" | "cache" | "funcMap">): AIem<Contracts, Chains, Addrs>;
|
|
115
|
+
Set<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends {
|
|
116
|
+
[K in keyof Contracts]?: {
|
|
117
|
+
[key: string]: `${string}-0x${string}`;
|
|
118
|
+
};
|
|
119
|
+
}>(args: Pick<AIem<Contracts, Chains, Addrs>, "contractMap" | "chainMap" | "nameMap" | "getWallet" | "cache" | "funcMap">): AIem<Contracts, Chains, Addrs>;
|
|
120
|
+
constructor(args?: Pick<AIem<Contracts, Chains, Addrs>, "contractMap" | "chainMap" | "nameMap" | "getWallet" | "cache" | "funcMap">);
|
|
121
|
+
static PubClient(chainId: string, options?: GetOptions): PublicClient<HttpTransport, Chain, any, any>;
|
|
122
|
+
PubClient<C extends keyof Chains>(chainId: C, options?: GetOptions): PublicClient<HttpTransport, Chain, any, any>;
|
|
123
|
+
static Get<TAbi extends Abi = any, ReturnType extends GetContractReturnType<TAbi, WalletClient<Transport, Chain, Account>>>(abi: TAbi, chainId: any, address: any, wallet?: WalletClient, options?: GetOptions): ReturnType & {
|
|
124
|
+
encode: ReturnType["write"];
|
|
125
|
+
};
|
|
126
|
+
Get<K extends keyof Contracts, C extends keyof Chains, Addr extends `0x${string}`>(contractName: K, chainId: C, address: Addr, options?: GetOptions): GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>> & {
|
|
127
|
+
encode: GetContractReturnType<Contracts[K], WalletClient<HttpTransport, Chain, Account, any>>["write"];
|
|
128
|
+
};
|
|
129
|
+
getContract({ client, address, abi, }: {
|
|
130
|
+
client: {
|
|
131
|
+
public: PublicClient<HttpTransport, Chain, any, any>;
|
|
132
|
+
wallet?: WalletClient;
|
|
133
|
+
};
|
|
134
|
+
address: `0x${string}`;
|
|
135
|
+
abi: any;
|
|
136
|
+
}): any;
|
|
137
|
+
static init(): AIem<any, any, any>;
|
|
138
|
+
static getPrice({ chainId, address }: {
|
|
139
|
+
chainId?: string;
|
|
140
|
+
address: string;
|
|
141
|
+
}): Promise<any>;
|
|
142
|
+
static utils: {
|
|
143
|
+
autoFormat: ({ value, decimals, chainId, address }: {
|
|
144
|
+
value: string;
|
|
145
|
+
decimals?: number;
|
|
146
|
+
chainId: string;
|
|
147
|
+
address: string;
|
|
148
|
+
}) => Promise<{
|
|
149
|
+
usd: string;
|
|
150
|
+
price: any;
|
|
151
|
+
value: string;
|
|
152
|
+
format: string;
|
|
153
|
+
originFormat: string;
|
|
154
|
+
decimals: string;
|
|
155
|
+
}>;
|
|
156
|
+
};
|
|
157
|
+
static QueryMany<E, S extends QuerySelect<E>>(entity: ClassType<E>, select: S): (_entities: Partial<E>[]) => Promise<QueryReturnType<E, S>[]>;
|
|
158
|
+
static Query<E, S extends QuerySelect<E>>(entity: ClassType<E>, select: S): (entities: Partial<E>) => Promise<QueryReturnType<E, S>>;
|
|
159
|
+
}
|
|
160
|
+
type Item<T> = T extends (infer U)[] ? U : T;
|
|
161
|
+
type QuerySelect<E> = {
|
|
162
|
+
[K in keyof E]?: E[K] extends (...args: any[]) => any ? Parameters<E[K]> | boolean : E[K] extends object ? QuerySelect<Item<E[K]>> | boolean : boolean;
|
|
163
|
+
};
|
|
164
|
+
type QueryReturnType<E, S extends QuerySelect<E>> = {
|
|
165
|
+
[K in keyof E]: K extends keyof S ? E[K] extends (...args: any[]) => any ? Awaited<ReturnType<E[K]>> : E[K] extends object ? S[K] extends object ? QueryReturnType<E[K], S[K]> : E[K] : E[K] : E[K];
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
export { AIem, Cache, Fields, GetOptions, Item, QueryReturnType, iotexBabelNightly };
|
package/dist/aiem.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { AIem, Cache, Fields, iotexBabelNightly } from './chunk-
|
|
1
|
+
export { AIem, Cache, Fields, iotexBabelNightly } from './chunk-3XIPR2M3.mjs';
|
|
2
2
|
import './chunk-2N4HH4ZF.mjs';
|
|
3
3
|
import './chunk-R4N52NI2.mjs';
|
|
4
4
|
import './chunk-K7LFG5BA.mjs';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-6F7H4PAA.mjs';
|
|
6
6
|
//# sourceMappingURL=out.js.map
|
|
7
7
|
//# sourceMappingURL=aiem.mjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { helper } from './chunk-R4N52NI2.mjs';
|
|
2
|
-
import { __spreadProps, __spreadValues, __objRest } from './chunk-
|
|
2
|
+
import { __spreadProps, __spreadValues, __objRest } from './chunk-6F7H4PAA.mjs';
|
|
3
3
|
import { defineChain, createPublicClient, http, getContract, encodeFunctionData } from 'viem';
|
|
4
4
|
import { iotexTestnet, mainnet, iotex, bsc, polygon } from 'viem/chains';
|
|
5
5
|
import TTLCache from '@isaacs/ttlcache';
|
|
@@ -474,4 +474,4 @@ var AIem = _AIem;
|
|
|
474
474
|
|
|
475
475
|
export { AIem, Cache, Fields, iotexBabelNightly };
|
|
476
476
|
//# sourceMappingURL=out.js.map
|
|
477
|
-
//# sourceMappingURL=chunk-
|
|
477
|
+
//# sourceMappingURL=chunk-3XIPR2M3.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 {\n type Chain,\n type GetContractReturnType,\n type Abi,\n type PublicClient,\n type HttpTransport,\n type WalletClient,\n type Transport,\n type Account,\n type MulticallBatchOptions,\n encodeFunctionData,\n http,\n getContract,\n createPublicClient,\n defineChain,\n} from \"viem\";\nimport { iotex, mainnet, bsc, polygon, iotexTestnet } from \"viem/chains\";\nimport TTLCache from \"@isaacs/ttlcache\";\nimport { ClassType } from \"./lib/interface\";\nimport { getFieldMetadata } from \"./lib/decorators\";\nimport { helper } from \"./utils\";\nimport BigNumber from \"bignumber.js\";\nimport { ERC20ABI } from \"./constants/abi\";\n\n//@ts-ignore\nBigInt.prototype.toJSON = function () {\n return this.toString();\n};\n\n(iotexTestnet.contracts = {\n multicall3: {\n //@ts-ignore\n address: \"0xb5cecd6894c6f473ec726a176f1512399a2e355d\",\n blockCreated: 24347592,\n },\n}),\n //@ts-ignore\n (mainnet.rpcUrls.default.http = [\"https://rpc.ankr.com/eth\"]);\n//@ts-ignore\nmainnet.rpcUrls.default.webSocket = [\"wss://ethereum-rpc.publicnode.com\"];\n//@ts-ignore\nexport const iotexBabelNightly = /*#__PURE__*/ defineChain({\n id: 4_691,\n name: \"IoTeX Babel Nightly\",\n network: \"iotex-babel-nightly\",\n nativeCurrency: {\n decimals: 18,\n name: \"IoTeX\",\n symbol: \"IOTX\",\n },\n iconUrl: \"https://cdn-dapp-works.s3.us-east-1.amazonaws.com/1dd84d927ae959c508392be62e6eb549.png\",\n rpcUrls: {\n default: {\n http: [\"https://babel-nightly.iotex.io\"],\n webSocket: [\"wss://babel-nightly.iotex.io\"],\n },\n },\n blockExplorers: {\n default: { name: \"IoTeXScan\", url: \"https://testnet.iotexscan.io\" },\n },\n // contracts: {\n // multicall3: {\n // address: '0xb5cecD6894c6f473Ec726A176f1512399A2e355d',\n // },\n // },\n testnet: true,\n});\n\nexport { Fields } from \"./lib/decorators\";\n\nexport class Cache {\n kv = new TTLCache<string, any>({ max: 10000, ttl: 1000 * 60 });\n\n wrap<T>(key: string, fn: () => T | Promise<T>, config: TTLCache.Options<any, any> = {}): T | Promise<T> {\n if (this.kv.has(key)) {\n // console.log(`load ${key} from cache`)\n return this.kv.get(key);\n }\n\n const result = fn();\n if (result instanceof Promise) {\n const promiseResult = result.then((res) => {\n this.kv.set(key, res, config);\n return res;\n });\n this.kv.set(key, promiseResult, config);\n return promiseResult;\n } else {\n this.kv.set(key, result, config);\n return result;\n }\n }\n}\n\nexport type GetOptions = {\n multicall?: boolean | MulticallBatchOptions;\n rpcUrls?: Chain[\"rpcUrls\"];\n pollingInterval?: number;\n};\n\nexport class AIem<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends { [K in keyof Contracts]?: { [key: string]: `${string}-0x${string}` } }> {\n static cache?: Cache = new Cache();\n cache?: Cache = new Cache();\n contractMap?: Contracts;\n //@ts-ignore\n chainMap?: Chains = {\n [iotex.id]: iotex,\n [mainnet.id]: mainnet,\n [bsc.id]: bsc,\n [polygon.id]: polygon,\n [iotexTestnet.id]: iotexTestnet,\n [iotexBabelNightly.id]: iotexBabelNightly,\n };\n nameMap?: Addrs;\n contracts: {\n [K in keyof Addrs & keyof Contracts]: {\n //@ts-ignore\n [KK in keyof Addrs[K]]: GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>, any, any>;\n };\n };\n static defaultFuncMap = {\n totalSupply: { ttl: 15 * 1000 },\n symbol: { ttl: 60 * 1000 },\n name: { ttl: 60 * 1000 },\n decimals: { ttl: 60 * 1000 },\n balanceOf: { ttl: 5 * 1000 },\n };\n funcMap?: { [key: string]: { ttl?: number } } = {};\n\n get _cache() {\n return AIem.cache;\n }\n\n //@ts-ignore\n getWallet?: () => WalletClient;\n\n static Set<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends { [K in keyof Contracts]?: { [key: string]: `${string}-0x${string}` } }>(\n args: Pick<AIem<Contracts, Chains, Addrs>, \"contractMap\" | \"chainMap\" | \"nameMap\" | \"getWallet\" | \"cache\" | \"funcMap\">,\n ) {\n return this.init().Set(args);\n }\n\n Set<Contracts extends Record<string, Abi>, Chains extends Record<string, Chain>, Addrs extends { [K in keyof Contracts]?: { [key: string]: `${string}-0x${string}` } }>(\n args: Pick<AIem<Contracts, Chains, Addrs>, \"contractMap\" | \"chainMap\" | \"nameMap\" | \"getWallet\" | \"cache\" | \"funcMap\">,\n ): AIem<Contracts, Chains, Addrs> {\n const { chainMap = {}, contractMap = {}, funcMap, ...rest } = args || {};\n //@ts-ignore\n this.chainMap = Object.assign({}, this.chainMap || {}, chainMap);\n //@ts-ignore\n this.contractMap = Object.assign({}, this.contractMap || {}, contractMap);\n //@ts-ignore\n this.funcMap = Object.assign({}, this.funcMap || {}, funcMap);\n\n Object.assign(this, rest);\n return this as any;\n }\n\n constructor(args: Pick<AIem<Contracts, Chains, Addrs>, \"contractMap\" | \"chainMap\" | \"nameMap\" | \"getWallet\" | \"cache\" | \"funcMap\"> = {}) {\n this.Set(args);\n\n this.contracts = new Proxy(\n {},\n {\n //@ts-ignore\n get: (target: any, contractName: keyof Addrs & keyof Contracts) => {\n if (target[contractName]) return target[contractName];\n\n if (!this.nameMap[contractName]) {\n throw new Error(`Contract ${String(contractName)} not found`);\n }\n\n target[contractName] = new Proxy(\n {},\n {\n //@ts-ignore\n get: (innerTarget: any, contractAlias: keyof Addrs[keyof Addrs]) => {\n const addressStr = this.nameMap[contractName]?.[contractAlias];\n if (!addressStr) {\n throw new Error(`Alias ${String(contractAlias)} for contract ${String(contractName)} not found`);\n }\n const [chainId, address] = addressStr.split(\"-\");\n\n // Assuming getContractInstance is a function that retrieves a contract instance\n return this.Get(contractName, String(chainId), address as `0x${string}`);\n },\n },\n );\n return target[contractName];\n },\n },\n ) as any;\n }\n\n // WsClient<C extends keyof Chains>(chainId: C): PublicClient<WebSocketTransport, Chain, any, any> {\n // //@ts-ignore\n // return this.cache.wrap(`wsClient-${String(chainId)}`, () => {\n // // const wsUrl = this.chainMap[chainId]?.rpcUrls?.default?.webSocket?.[0]\n // // if (!wsUrl) throw new Error(`rpcUrls.default.webSocket[0] is not defined for chainId ${String(chainId)}`)\n // // //@ts-ignore\n // return createPublicClient({\n // //@ts-ignore\n // chain: this.chainMap[chainId],\n // transport: webSocket()\n // }) as PublicClient<WebSocketTransport, Chain, any, any>\n // })\n // }\n\n static PubClient(chainId: string, options: GetOptions = { multicall: true }): PublicClient<HttpTransport, Chain, any, any> {\n //@ts-ignore\n return this.init().PubClient(chainId, options);\n }\n\n PubClient<C extends keyof Chains>(chainId: C, options: GetOptions = { multicall: true }): PublicClient<HttpTransport, Chain, any, any> {\n const chain = this.chainMap[chainId];\n if (options.rpcUrls) {\n chain.rpcUrls = options.rpcUrls;\n }\n //@ts-ignore\n return this._cache.wrap(`publicClient-${String(chainId)}-${chain.rpcUrls.default.http}-${JSON.stringify(options?.multicall)}-${options?.pollingInterval}`, () => {\n //@ts-ignore\n return createPublicClient({\n //@ts-ignore\n chain,\n ...(options?.multicall\n ? {\n batch: {\n multicall: typeof options.multicall === \"boolean\" ? true : options.multicall,\n },\n }\n : {}),\n ...(options?.pollingInterval\n ? {\n pollingInterval: options.pollingInterval,\n }\n : {\n pollingInterval: 2500,\n }),\n //@ts-ignore\n transport: http(),\n });\n });\n }\n\n //@ts-ignore\n static Get<TAbi extends Abi = any, ReturnType extends GetContractReturnType<TAbi, WalletClient<Transport, Chain, Account>>>(\n abi: TAbi,\n chainId: any,\n address: any,\n wallet?: WalletClient,\n //@ts-ignore\n options?: GetOptions = { multicall: true },\n //@ts-ignore\n ): ReturnType & { encode: ReturnType[\"write\"] } {\n const aiem = this.init();\n if (!wallet) {\n wallet = aiem.getWallet ? aiem.getWallet() : null;\n }\n\n const cacheKey = `contract ${chainId}-${address}-${wallet ? wallet.account.address : null}`;\n return aiem._cache.wrap(cacheKey, () => {\n //@ts-ignore\n const pubClient = aiem.PubClient(chainId, options);\n\n //@ts-ignore\n return aiem.getContract({\n client: {\n //@ts-ignore\n public: pubClient,\n //@ts-ignore\n wallet,\n },\n address,\n abi,\n });\n }) as any;\n }\n\n //@ts-ignore\n Get<K extends keyof Contracts, C extends keyof Chains, Addr extends `0x${string}`>(\n contractName: K,\n chainId: C,\n address: Addr,\n options: GetOptions = { multicall: true },\n //@ts-ignore\n ): GetContractReturnType<Contracts[K], PublicClient<HttpTransport, Chain, any, any>> & { encode: GetContractReturnType<Contracts[K], WalletClient<HttpTransport, Chain, Account, any>>[\"write\"] } {\n const wallet = this.getWallet ? this.getWallet() : null;\n //@ts-ignore\n const cacheKey = `contract ${chainId}-${address}-${wallet ? wallet.account.address : null}`;\n return this._cache.wrap(cacheKey, () => {\n //@ts-ignore\n const contract = this.contractMap[contractName];\n //@ts-ignore\n const pubClient = this.PubClient(chainId, options);\n\n //@ts-ignore\n return this.getContract({\n client: {\n //@ts-ignore\n public: pubClient,\n //@ts-ignore\n wallet,\n },\n address,\n abi: contract,\n });\n }) as any;\n }\n\n getContract({\n client,\n address,\n abi,\n }: {\n client: {\n public: PublicClient<HttpTransport, Chain, any, any>;\n wallet?: WalletClient;\n };\n address: `0x${string}`;\n abi: any;\n }) {\n const handler = {\n get: (target: any, funcName: any) => {\n if (funcName == \"encode\") {\n return new Proxy(\n {},\n {\n get(t1, f1) {\n return async (args: any) => {\n // @ts-ignore\n return encodeFunctionData({\n abi,\n functionName: f1,\n args,\n });\n };\n },\n },\n );\n }\n\n if (typeof target[funcName] === \"function\") {\n return async (...args: any[]) => {\n const methodConfig = this.funcMap?.[funcName as string];\n // const cacheKey = `method:${client.public.chain.id}-${address}-${String(funcName)}-${JSON.stringify(args)}`;\n const cacheKey = `call ${client.public.chain.id}-${address}-${funcName}-${JSON.stringify(args)}`;\n\n if (methodConfig) {\n return this.cache.wrap(\n cacheKey,\n () => {\n return target[funcName](...args);\n },\n methodConfig,\n );\n }\n\n return target[funcName](...args);\n };\n }\n return new Proxy(target[funcName], handler);\n },\n };\n\n //@ts-ignore\n const contract = getContract({\n //@ts-ignore\n client,\n address,\n abi,\n });\n return new Proxy(contract, handler) as any;\n }\n\n static init(): AIem<any, any, any> {\n if (!globalThis.aiem) {\n //@ts-ignore\n globalThis.aiem = new AIem();\n }\n\n return globalThis.aiem;\n }\n\n static async getPrice({ chainId = \"4689\", address }: { chainId?: string; address: string }) {\n const priceMap = await this.cache.wrap(\n `token-price`,\n async () => {\n const res = await (await fetch(\"https://api.iopay.me/api/rest/price\")).json();\n return Object.values(res)\n .flat()\n .reduce((p, c: { platforms: string; current_price: number }) => {\n p[`${4689}-${c.platforms.toLowerCase()}`] = c.current_price;\n return p;\n }, {});\n },\n { ttl: 1000 * 60 },\n );\n return priceMap[`${chainId}-${address}`];\n }\n\n static utils = {\n autoFormat: async ({ value, decimals, chainId, address }: { value: string; decimals?: number; chainId: string; address: string }) => {\n if (!decimals) {\n //@ts-ignore\n decimals = await this.cache.wrap(`${chainId}-${address}-decimals`, async () => {\n //@ts-ignore\n return this.Get(ERC20ABI, chainId, address).read.decimals();\n });\n }\n const wrap = helper.number.warpBigNumber(value, decimals, { format: \"0,0.000000\", fallback: \"\" });\n const price = await this.getPrice({ chainId, address: address.toLowerCase() });\n const usd = new BigNumber(wrap.originFormat).multipliedBy(price || 0).toFixed(2);\n return { ...wrap, usd, price };\n },\n };\n\n static QueryMany<E, S extends QuerySelect<E>>(entity: ClassType<E>, select: S) {\n return async (_entities: Partial<E>[]): Promise<QueryReturnType<E, S>[]> => {\n //@ts-ignore\n return this.Query(entity, select)(_entities) as any;\n };\n }\n\n static Query<E, S extends QuerySelect<E>>(entity: ClassType<E>, select: S) {\n return async (entities: Partial<E>): Promise<QueryReturnType<E, S>> => {\n const isArrayInput = Array.isArray(entities);\n\n try {\n const results: Array<QueryReturnType<E, S>> = [];\n\n if (!isArrayInput) {\n //@ts-ignore\n entities = [entities];\n }\n //@ts-ignore\n for (const entityData of entities) {\n const instance = Object.assign(new entity(), entityData);\n // const result: any = {};\n\n const fetchFields = async (obj: any, sel: any) => {\n const promises = [];\n for (const key in sel) {\n // return console.log(key, getFieldMetadata(obj, key))\n // Check if the property is annotated with @Fields.read(), @Fields.custom(), or @Fields.contract()\n const fieldMetadata = getFieldMetadata(obj, key);\n let call: any;\n //@ts-ignore\n const enableMulticall = entity.multicall == false ? false : true;\n // console.log(key, fieldMetadata, instance)\n if (sel[key] == false) {\n call = async () => null;\n } else {\n switch (fieldMetadata?.type) {\n case \"read\":\n if (Array.isArray(sel[key])) {\n //@ts-ignore\n call = () => this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall }).read[key](sel[key]);\n } else {\n //@ts-ignore\n call = () => this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall }).read[key]();\n }\n break;\n case \"write\":\n // @ts-ignore\n obj[key] = encodeFunctionData({\n //@ts-ignore\n abi: entity.abi,\n functionName: key,\n args: sel[key],\n });\n\n break;\n case \"custom\":\n const func = fieldMetadata.func;\n call = () => func(instance);\n break;\n case \"entity\":\n const targetMetadata = getFieldMetadata(instance, fieldMetadata.targetKey);\n\n if (typeof fieldMetadata.targetKey == \"string\") {\n if (targetMetadata?.options?.ttl) {\n //@ts-ignore\n const cacheKey = `call ${instance.chainId}-${instance.address}-${fieldMetadata.targetKey}`;\n //@ts-ignore\n call = () =>\n new Promise(async (resolve) => {\n //@ts-ignore\n const address = await this.cache.wrap(cacheKey, async () =>\n //@ts-ignore\n this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall }).read[fieldMetadata.targetKey](),\n );\n //@ts-ignore\n resolve(this.Query(fieldMetadata.entity(), sel[key])({ address, chainId: instance.chainId }));\n });\n } else {\n call = () =>\n //@ts-ignore\n this.Get(entity.abi, instance.chainId, instance.address, null, { multicall: enableMulticall })\n //@ts-ignore\n .read[fieldMetadata.targetKey]()\n .then((address: any) => {\n // console.log({ address, sel: sel[key] })\n //@ts-ignore\n return this.Query(fieldMetadata.entity(), sel[key])({ address, chainId: instance.chainId });\n });\n }\n } else {\n //@ts-ignore\n call = () =>\n fieldMetadata.targetKey(instance).then((args) => {\n // console.log(args)\n return Array.isArray(args) ? this.QueryMany(fieldMetadata.entity(), sel[key])(args) : this.Query(fieldMetadata.entity(), sel[key])(args);\n });\n }\n break;\n default:\n if (typeof obj[key] == \"function\") {\n call = () => obj[key](...(Array.isArray(sel[key]) ? sel[key] : []));\n }\n break;\n }\n }\n\n if (call) {\n if (fieldMetadata?.options?.ttl) {\n //@ts-ignore\n const cacheKey = `call ${instance.chainId}-${instance.address}-${key}-${JSON.stringify(sel[key])}`;\n promises.push(\n new Promise(async (resolve) => {\n const value = await this.cache.wrap(cacheKey, async () => call().catch((i) => null), fieldMetadata.options);\n obj[key] = value;\n resolve(value);\n }),\n );\n } else {\n promises.push(\n call()\n .then((value) => {\n obj[key] = value;\n })\n .catch((i) => (obj[key] = null)),\n );\n }\n }\n }\n\n await Promise.all(promises);\n };\n\n await fetchFields(instance, select);\n //@ts-ignore\n results.push(instance);\n }\n\n if (isArrayInput) {\n return results as any;\n } else {\n return results[0] as any;\n }\n } catch (error) {\n if (isArrayInput) {\n return [] as any;\n } else {\n return null as any;\n }\n }\n };\n }\n}\nexport type Item<T> = T extends (infer U)[] ? U : T;\n\n// export type QueryResult<E, S extends QuerySelect<E>> =\n// E extends Array<any> ? Promise<Array<QueryReturnType<E[number], S>>> :\n// E extends object ? Promise<QueryReturnType<E, S>> :\n// never;\n\ntype QuerySelect<E> = {\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;\n};\n\n// type FunctionReturn<T> = T extends (...args: any[]) => any ? Awaited<ReturnType<T>> : T;\n// type NestedReturn<E, S> = E extends object ? S extends object ? QueryReturnType<E, S> : E : E;\n\nexport type QueryReturnType<E, S extends QuerySelect<E>> = {\n [K in keyof E]: K extends keyof S\n ? E[K] extends (...args: any[]) => any\n ? Awaited<ReturnType<E[K]>>\n : E[K] extends object\n ? S[K] extends object\n ? QueryReturnType<E[K], S[K]>\n : E[K]\n : E[K]\n : E[K];\n};\n","import \"reflect-metadata\";\nimport { ClassType } from \"./interface\";\n\nexport const FIELD_KEY = Symbol(\"aiem_field\");\n\nexport interface FieldParams {\n ttl?: number;\n}\n\nexport type ContractParams<T extends any = any, K extends keyof T = keyof T> = K;\n\nconst metadataCache = new WeakMap<any, Map<any, any>>();\n\nexport class Fields {\n static hide(options: any = {}) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"hide\", options });\n };\n }\n\n static read(options: any = {}) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"read\", options });\n };\n }\n\n static write(options: any = {}) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"write\", options });\n };\n }\n\n static custom(func: any = {}) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"custom\", func });\n };\n }\n\n static relation<T = any, R = any>(entity: () => ClassType<R>, options: ((e: T) => Promise<Partial<R> | Partial<R>[]>) | string) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"entity\", entity, targetKey: options });\n };\n }\n\n static contract<T = any, R = any>(entity: () => ClassType<R>, options: ((e: T) => Promise<Partial<R> | Partial<R>[]>) | string) {\n return function (target: any, propertyKey: any, descriptor?: PropertyDescriptor) {\n Fields.setMetadata(target, propertyKey, { type: \"entity\", entity, targetKey: options });\n };\n }\n private static setMetadata(target: any, propertyKey: any, metadata: any) {\n let targetMetadata = metadataCache.get(target);\n if (!targetMetadata) {\n targetMetadata = new Map<any, any>();\n metadataCache.set(target, targetMetadata);\n }\n targetMetadata.set(propertyKey, metadata);\n // @ts-ignore \n Reflect.defineMetadata(FIELD_KEY, metadata, target, propertyKey);\n }\n}\n\nexport function getFieldMetadata(target: any, propertyKey: string) {\n const targetMetadata = metadataCache.get(target);\n if (targetMetadata) {\n return targetMetadata.get(propertyKey);\n }\n // @ts-ignore \n return Reflect.getMetadata(FIELD_KEY, target, propertyKey);\n}\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;"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AIem } from './chunk-
|
|
2
|
-
import { DialogStore } from './chunk-
|
|
1
|
+
import { AIem } from './chunk-3XIPR2M3.mjs';
|
|
2
|
+
import { DialogStore } from './chunk-C5BPNLKH.mjs';
|
|
3
3
|
import { ToastPlugin } from './chunk-IMOLRP7I.mjs';
|
|
4
|
-
import { RootStore, rootStore } from './chunk-
|
|
4
|
+
import { RootStore, rootStore } from './chunk-IDKGZ5T4.mjs';
|
|
5
5
|
import { helper } from './chunk-R4N52NI2.mjs';
|
|
6
|
-
import { __spreadProps, __spreadValues } from './chunk-
|
|
6
|
+
import { __spreadProps, __spreadValues } from './chunk-6F7H4PAA.mjs';
|
|
7
7
|
import { observable, makeAutoObservable } from 'mobx';
|
|
8
8
|
import BigNumber2 from 'bignumber.js';
|
|
9
9
|
import React3, { useEffect } from 'react';
|
|
@@ -1285,4 +1285,4 @@ var AppProvider = observer(({ children }) => {
|
|
|
1285
1285
|
|
|
1286
1286
|
export { AppProvider, AutoMan, BigNumberInputState, BigNumberState, ConnectLedger, DisconnectLedger, ObjectPool, PromiseHook, StorageListState, StorageState, WalletConfigStore, WalletHistoryStore, WalletRpcStore, WalletStore };
|
|
1287
1287
|
//# sourceMappingURL=out.js.map
|
|
1288
|
-
//# sourceMappingURL=chunk-
|
|
1288
|
+
//# sourceMappingURL=chunk-4F33QAJ4.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getStyle } from './chunk-GKAU4P5I.mjs';
|
|
2
|
-
import { useStore, rootStore } from './chunk-
|
|
3
|
-
import { __spreadValues, __spreadProps } from './chunk-
|
|
2
|
+
import { useStore, rootStore } from './chunk-IDKGZ5T4.mjs';
|
|
3
|
+
import { __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { makeAutoObservable } from 'mobx';
|
|
6
6
|
import { Modal, ModalContent, ModalHeader, ModalBody } from '@nextui-org/react';
|
|
@@ -73,4 +73,4 @@ var DialogStore = class _DialogStore {
|
|
|
73
73
|
|
|
74
74
|
export { DialogStore };
|
|
75
75
|
//# sourceMappingURL=out.js.map
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-C5BPNLKH.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-M5Y3VYMJ.mjs';
|
|
2
2
|
import { Skeleton } from '@nextui-org/react';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
|
|
@@ -26,4 +26,4 @@ var SkeletonBox = ({
|
|
|
26
26
|
|
|
27
27
|
export { SkeletonBox };
|
|
28
28
|
//# sourceMappingURL=out.js.map
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-FJHGIW3I.mjs.map
|
|
@@ -4,18 +4,18 @@ import { useLocalObservable } from 'mobx-react-lite';
|
|
|
4
4
|
|
|
5
5
|
// store/root.ts
|
|
6
6
|
var MyEmitter = class extends EventEmitter {
|
|
7
|
-
emit(type, ...args) {
|
|
8
|
-
if (process.env.NODE_ENV == "development") {
|
|
9
|
-
super.emit("*", { type, args });
|
|
10
|
-
}
|
|
11
|
-
return super.emit(type, ...args) || super.emit("", ...args);
|
|
12
|
-
}
|
|
13
7
|
constructor() {
|
|
14
8
|
super();
|
|
15
9
|
makeObservable(this, {
|
|
16
10
|
// metas: true,
|
|
17
11
|
});
|
|
18
12
|
}
|
|
13
|
+
emit(type, ...args) {
|
|
14
|
+
if (process.env.NODE_ENV == "development") {
|
|
15
|
+
super.emit("*", { type, args });
|
|
16
|
+
}
|
|
17
|
+
return super.emit(type, ...args) || super.emit("", ...args);
|
|
18
|
+
}
|
|
19
19
|
};
|
|
20
20
|
var RootStore = class _RootStore {
|
|
21
21
|
constructor(args = {}) {
|
|
@@ -116,4 +116,4 @@ var useStore = () => RootStore.init();
|
|
|
116
116
|
|
|
117
117
|
export { RootStore, rootStore, useStore };
|
|
118
118
|
//# sourceMappingURL=out.js.map
|
|
119
|
-
//# sourceMappingURL=chunk-
|
|
119
|
+
//# sourceMappingURL=chunk-IDKGZ5T4.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../store/root.ts","../store/index.ts"],"names":[],"mappings":";AAAA,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB,sBAAsB;AAGnD,SAAS,0BAA0B;AAO5B,IAAM,YAAN,cAAwB,aAAa;AAAA,
|
|
1
|
+
{"version":3,"sources":["../store/root.ts","../store/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from \"events\";\nimport { makeAutoObservable, makeObservable } from \"mobx\";\nimport type TypedEmitter from \"typed-emitter\";\nimport { type Store, type StoreClass } from \"./standard/base\";\nimport { useLocalObservable } from \"mobx-react-lite\";\n\nexport type EventMap = {\n \"*\": (args: any) => void;\n add: (store: Store) => void;\n};\n\nexport class MyEmitter extends EventEmitter {\n // metas: Record<string, { count: number }> = {};\n _events: Record<string, any>;\n emit(type: any, ...args: any[]) {\n if (process.env.NODE_ENV == \"development\") {\n super.emit(\"*\", { type, args });\n }\n // if (!this.metas[type]) {\n // this.metas[type] = { count: 0 };\n // }\n // this.metas[type].count++;\n return super.emit(type, ...args) || super.emit(\"\", ...args);\n }\n constructor() {\n super();\n makeObservable(this, {\n // metas: true,\n });\n }\n}\n\nexport class RootStore<T extends EventMap = any> {\n instanceMap = new Map<Function, Map<string, Store>>();\n instance: Record<string, Store> = {};\n\n providers: Store[] = [];\n\n events: TypedEmitter<T> = new MyEmitter() as TypedEmitter<T>;\n isInited = false;\n\n static init<T extends EventMap>(args: Partial<RootStore<T>> = {}): RootStore<T> {\n if (!globalThis.store) {\n //@ts-ignore\n globalThis.store = new RootStore(args);\n }\n\n return globalThis.store;\n }\n\n add(store: Store, { sid }: { sid?: string } = {}) {\n if (store.disabled) {\n return;\n }\n\n const instanceMapId = sid ? sid : \"singleton\";\n const instanceId = sid ? sid : store.sid;\n\n if (!this.has(store.constructor)) {\n this.instanceMap.set(store.constructor, new Map());\n }\n\n if (this.instanceMap.get(store.constructor).get(instanceMapId)) {\n console.error(`Store ${store.sid} already exists`);\n return;\n throw new Error(`Store ${store.sid} already exists`);\n }\n if (store.autoObservable) {\n makeAutoObservable(store);\n }\n if (store.provider) {\n this.providers.push(store);\n }\n if (store.onNewStore) {\n this.events.on(\"add\", (e: Store) => {\n store.onNewStore({ rootStore: this, store: e });\n });\n }\n\n if (store.onAdded) {\n store.onAdded({ rootStore: this });\n }\n if (store.stores) {\n this.addStores(store.stores);\n }\n\n if (store.events) {\n Object.entries(store.events).forEach(([event, val]) => {\n this.events.on(val.name as any, val.handler);\n });\n }\n\n // if (helper.env.isBrowser && store.onKeyBindings) {\n // const res = store.onKeyBindings()\n // res.forEach(({ key, fn }: { key: string[], fn: (ev: KeyboardEvent) => void }) => {\n // useEffect(() => {\n // window.addEventListener(\"keydown\", fn);\n // return () => {\n // window.removeEventListener(\"keydown\", fn);\n // }\n // }, [])\n // })\n // }\n\n this.instanceMap.get(store.constructor).set(instanceMapId, store);\n this.instance[instanceId] = store;\n //@ts-ignore\n this.events.emit(\"add\", store);\n\n if (store.init) {\n store.init();\n }\n // this.crawlStore(store);\n }\n\n addStores(store: Store[]) {\n store.forEach((i) => this.add(i));\n return this;\n }\n\n get<T extends Store>(store: StoreClass<T>, config: { sid?: string; args?: Partial<T> } = {}): T {\n const instanceMapId = config.sid ? config.sid : \"singleton\";\n const valid = this.instanceMap.has(store) && this.instanceMap.get(store).has(instanceMapId);\n if (!valid) {\n this.add(new store(config.args || {}), config);\n }\n return this.instanceMap.get(store).get(instanceMapId) as T;\n }\n\n public has(store: Function): boolean {\n return this.instanceMap.has(store);\n }\n\n constructor(args: Partial<RootStore<T>> = {}) {\n Object.assign(this, args);\n makeObservable(this, {\n providers: true,\n });\n this.crawlStore(this);\n }\n\n crawlStore(obj: Object) {\n Object.values(obj).forEach((value) => {\n if (value?.sid) {\n this.add(value);\n }\n });\n }\n\n static Get<T extends Store>(store: StoreClass<T>, config: { sid?: string; args?: Partial<T> } = {}): T {\n return this.init().get(store, config);\n }\n\n static Local<T>(func: () => T, config: { sid?: string; args?: Partial<T> } = {}, ann?: any): T {\n const val = useLocalObservable(func, ann);\n RootStore.init().instance[\"Local.\" + config.sid] = val;\n return val;\n }\n}\n","import { RootStore, EventMap } from \"./root\";\n\nexport const rootStore = RootStore.init<EventMap>();\n\nexport const useStore = () => RootStore.init();\n\nexport { RootStore };\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PaginationState } from './chunk-ONVPCAMQ.mjs';
|
|
2
|
-
import { SkeletonBox } from './chunk-
|
|
2
|
+
import { SkeletonBox } from './chunk-FJHGIW3I.mjs';
|
|
3
3
|
import { _ } from './chunk-K7LFG5BA.mjs';
|
|
4
|
-
import { cn } from './chunk-
|
|
5
|
-
import { __objRest, __spreadValues, __spreadProps } from './chunk-
|
|
4
|
+
import { cn } from './chunk-M5Y3VYMJ.mjs';
|
|
5
|
+
import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
|
|
6
6
|
import * as React2 from 'react';
|
|
7
7
|
import React2__default, { useRef, useEffect, useState, useMemo } from 'react';
|
|
8
8
|
import { Card, Divider, Pagination, Spinner } from '@nextui-org/react';
|
|
@@ -1028,4 +1028,4 @@ function groupByColSpan(arr, colSpan) {
|
|
|
1028
1028
|
|
|
1029
1029
|
export { JSONTable };
|
|
1030
1030
|
//# sourceMappingURL=out.js.map
|
|
1031
|
-
//# sourceMappingURL=chunk-
|
|
1031
|
+
//# sourceMappingURL=chunk-ISV4OEKJ.mjs.map
|