@epoch-protocol/inventory-sdk 1.0.0

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.
Files changed (53) hide show
  1. package/.github/workflows/main.yml +91 -0
  2. package/dist/chainlink-ops/chainlink-abi.d.ts +40 -0
  3. package/dist/chainlink-ops/chainlink-abi.d.ts.map +1 -0
  4. package/dist/chainlink-ops/chainlink-abi.js +287 -0
  5. package/dist/chainlink-ops/chainlink-abi.js.map +1 -0
  6. package/dist/chainlink-ops/index.d.ts +8 -0
  7. package/dist/chainlink-ops/index.d.ts.map +1 -0
  8. package/dist/chainlink-ops/index.js +35 -0
  9. package/dist/chainlink-ops/index.js.map +1 -0
  10. package/dist/chainlink-ops/models.d.ts +2 -0
  11. package/dist/chainlink-ops/models.d.ts.map +1 -0
  12. package/dist/chainlink-ops/models.js +3 -0
  13. package/dist/chainlink-ops/models.js.map +1 -0
  14. package/dist/index.d.ts +8 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +24 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/safe-ops/index.d.ts +20 -0
  19. package/dist/safe-ops/index.d.ts.map +1 -0
  20. package/dist/safe-ops/index.js +99 -0
  21. package/dist/safe-ops/index.js.map +1 -0
  22. package/dist/safe-ops/models.d.ts +22 -0
  23. package/dist/safe-ops/models.d.ts.map +1 -0
  24. package/dist/safe-ops/models.js +6 -0
  25. package/dist/safe-ops/models.js.map +1 -0
  26. package/dist/safe-ops/safe-abi.d.ts +43 -0
  27. package/dist/safe-ops/safe-abi.d.ts.map +1 -0
  28. package/dist/safe-ops/safe-abi.js +565 -0
  29. package/dist/safe-ops/safe-abi.js.map +1 -0
  30. package/dist/token/erc20-abi.d.ts +39 -0
  31. package/dist/token/erc20-abi.d.ts.map +1 -0
  32. package/dist/token/erc20-abi.js +226 -0
  33. package/dist/token/erc20-abi.js.map +1 -0
  34. package/dist/token/index.d.ts +9 -0
  35. package/dist/token/index.d.ts.map +1 -0
  36. package/dist/token/index.js +109 -0
  37. package/dist/token/index.js.map +1 -0
  38. package/dist/token/models.d.ts +27 -0
  39. package/dist/token/models.d.ts.map +1 -0
  40. package/dist/token/models.js +3 -0
  41. package/dist/token/models.js.map +1 -0
  42. package/package.json +22 -0
  43. package/src/chainlink-ops/chainlink-abi.ts +283 -0
  44. package/src/chainlink-ops/index.ts +53 -0
  45. package/src/chainlink-ops/models.ts +0 -0
  46. package/src/index.ts +7 -0
  47. package/src/safe-ops/index.ts +98 -0
  48. package/src/safe-ops/models.ts +23 -0
  49. package/src/safe-ops/safe-abi.ts +561 -0
  50. package/src/token/erc20-abi.ts +222 -0
  51. package/src/token/index.ts +126 -0
  52. package/src/token/models.ts +32 -0
  53. package/tsconfig.json +43 -0
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC20_ABI = void 0;
4
+ exports.ERC20_ABI = [
5
+ {
6
+ constant: true,
7
+ inputs: [],
8
+ name: "name",
9
+ outputs: [
10
+ {
11
+ name: "",
12
+ type: "string",
13
+ },
14
+ ],
15
+ payable: false,
16
+ stateMutability: "view",
17
+ type: "function",
18
+ },
19
+ {
20
+ constant: false,
21
+ inputs: [
22
+ {
23
+ name: "_spender",
24
+ type: "address",
25
+ },
26
+ {
27
+ name: "_value",
28
+ type: "uint256",
29
+ },
30
+ ],
31
+ name: "approve",
32
+ outputs: [
33
+ {
34
+ name: "",
35
+ type: "bool",
36
+ },
37
+ ],
38
+ payable: false,
39
+ stateMutability: "nonpayable",
40
+ type: "function",
41
+ },
42
+ {
43
+ constant: true,
44
+ inputs: [],
45
+ name: "totalSupply",
46
+ outputs: [
47
+ {
48
+ name: "",
49
+ type: "uint256",
50
+ },
51
+ ],
52
+ payable: false,
53
+ stateMutability: "view",
54
+ type: "function",
55
+ },
56
+ {
57
+ constant: false,
58
+ inputs: [
59
+ {
60
+ name: "_from",
61
+ type: "address",
62
+ },
63
+ {
64
+ name: "_to",
65
+ type: "address",
66
+ },
67
+ {
68
+ name: "_value",
69
+ type: "uint256",
70
+ },
71
+ ],
72
+ name: "transferFrom",
73
+ outputs: [
74
+ {
75
+ name: "",
76
+ type: "bool",
77
+ },
78
+ ],
79
+ payable: false,
80
+ stateMutability: "nonpayable",
81
+ type: "function",
82
+ },
83
+ {
84
+ constant: true,
85
+ inputs: [],
86
+ name: "decimals",
87
+ outputs: [
88
+ {
89
+ name: "",
90
+ type: "uint8",
91
+ },
92
+ ],
93
+ payable: false,
94
+ stateMutability: "view",
95
+ type: "function",
96
+ },
97
+ {
98
+ constant: true,
99
+ inputs: [
100
+ {
101
+ name: "_owner",
102
+ type: "address",
103
+ },
104
+ ],
105
+ name: "balanceOf",
106
+ outputs: [
107
+ {
108
+ name: "balance",
109
+ type: "uint256",
110
+ },
111
+ ],
112
+ payable: false,
113
+ stateMutability: "view",
114
+ type: "function",
115
+ },
116
+ {
117
+ constant: true,
118
+ inputs: [],
119
+ name: "symbol",
120
+ outputs: [
121
+ {
122
+ name: "",
123
+ type: "string",
124
+ },
125
+ ],
126
+ payable: false,
127
+ stateMutability: "view",
128
+ type: "function",
129
+ },
130
+ {
131
+ constant: false,
132
+ inputs: [
133
+ {
134
+ name: "_to",
135
+ type: "address",
136
+ },
137
+ {
138
+ name: "_value",
139
+ type: "uint256",
140
+ },
141
+ ],
142
+ name: "transfer",
143
+ outputs: [
144
+ {
145
+ name: "",
146
+ type: "bool",
147
+ },
148
+ ],
149
+ payable: false,
150
+ stateMutability: "nonpayable",
151
+ type: "function",
152
+ },
153
+ {
154
+ constant: true,
155
+ inputs: [
156
+ {
157
+ name: "_owner",
158
+ type: "address",
159
+ },
160
+ {
161
+ name: "_spender",
162
+ type: "address",
163
+ },
164
+ ],
165
+ name: "allowance",
166
+ outputs: [
167
+ {
168
+ name: "",
169
+ type: "uint256",
170
+ },
171
+ ],
172
+ payable: false,
173
+ stateMutability: "view",
174
+ type: "function",
175
+ },
176
+ {
177
+ payable: true,
178
+ stateMutability: "payable",
179
+ type: "fallback",
180
+ },
181
+ {
182
+ anonymous: false,
183
+ inputs: [
184
+ {
185
+ indexed: true,
186
+ name: "owner",
187
+ type: "address",
188
+ },
189
+ {
190
+ indexed: true,
191
+ name: "spender",
192
+ type: "address",
193
+ },
194
+ {
195
+ indexed: false,
196
+ name: "value",
197
+ type: "uint256",
198
+ },
199
+ ],
200
+ name: "Approval",
201
+ type: "event",
202
+ },
203
+ {
204
+ anonymous: false,
205
+ inputs: [
206
+ {
207
+ indexed: true,
208
+ name: "from",
209
+ type: "address",
210
+ },
211
+ {
212
+ indexed: true,
213
+ name: "to",
214
+ type: "address",
215
+ },
216
+ {
217
+ indexed: false,
218
+ name: "value",
219
+ type: "uint256",
220
+ },
221
+ ],
222
+ name: "Transfer",
223
+ type: "event",
224
+ },
225
+ ];
226
+ //# sourceMappingURL=erc20-abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20-abi.js","sourceRoot":"","sources":["../../src/token/erc20-abi.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB;QACE,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;aACd;SACF;QACD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,MAAM;aACb;SACF;QACD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Provider } from "ethers";
2
+ import { Token, TokenInfo } from "./models";
3
+ import { SafeTransaction } from "@safe-global/types-kit";
4
+ import Safe from "@safe-global/protocol-kit";
5
+ export declare const getTokenBalance: (address: string, token: Token, provider: Provider) => Promise<TokenInfo>;
6
+ export declare const getMultipleTokenBalances: (tokens: Token[], address: string, provider: Provider) => Promise<Array<TokenInfo>>;
7
+ export declare const getSignedTransferCalldataForSafe: (safeInstance: Safe, tokenAddress: string, recipientAddress: string, amount: BigInt) => Promise<SafeTransaction>;
8
+ export declare const getDecimals: (token: Token, provider: Provider) => Promise<any>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,QAAQ,EAAU,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,IAAI,MAAM,2BAA2B,CAAC;AAE7C,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,OAAO,KAAK,EACZ,UAAU,QAAQ,KACjB,OAAO,CAAC,SAAS,CAkCnB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,KAAK,EAAE,EACf,SAAS,MAAM,EACf,UAAU,QAAQ,KACjB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAQ1B,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,cAAc,IAAI,EAClB,cAAc,MAAM,EACpB,kBAAkB,MAAM,EACxB,QAAQ,MAAM,KACb,OAAO,CAAC,eAAe,CAiCzB,CAAC;AACF,eAAO,MAAM,WAAW,GAAU,OAAO,KAAK,EAAE,UAAU,QAAQ,iBAOjE,CAAC"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDecimals = exports.getSignedTransferCalldataForSafe = exports.getMultipleTokenBalances = exports.getTokenBalance = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const erc20_abi_1 = require("./erc20-abi");
6
+ const safe_ops_1 = require("../safe-ops");
7
+ const getTokenBalance = async (address, token, provider) => {
8
+ if (token.address === "0x0000000000000000000000000000000000000000") {
9
+ const balance = await provider.getBalance(address);
10
+ return {
11
+ balance,
12
+ token: token,
13
+ decimals: 18,
14
+ };
15
+ }
16
+ else {
17
+ console.log("Getting token balance for", token.address);
18
+ console.log("ChainId", await provider.getNetwork());
19
+ const tokenContract = new ethers_1.Contract(token.address, erc20_abi_1.ERC20_ABI, provider);
20
+ console.log("name", await getName(token, provider));
21
+ console.log("symbol", await getSymbol(token, provider));
22
+ console.log("decimals", await tokenContract?.decimals?.());
23
+ console.log("balance function", tokenContract?.balanceOf);
24
+ console.log("balance", await tokenContract?.balanceOf(address));
25
+ const promises = Promise.all([
26
+ getName(token, provider),
27
+ getSymbol(token, provider),
28
+ tokenContract?.decimals?.(),
29
+ tokenContract?.balanceOf?.(address),
30
+ ]);
31
+ const [name, symbol, decimals, balance] = await promises;
32
+ return {
33
+ balance,
34
+ token,
35
+ decimals,
36
+ symbol,
37
+ name,
38
+ };
39
+ }
40
+ };
41
+ exports.getTokenBalance = getTokenBalance;
42
+ const getMultipleTokenBalances = async (tokens, address, provider) => {
43
+ const promises = tokens.map((token) => (0, exports.getTokenBalance)(address, token, provider));
44
+ const results = await Promise.all(promises);
45
+ console.log("results", results);
46
+ return results;
47
+ };
48
+ exports.getMultipleTokenBalances = getMultipleTokenBalances;
49
+ const getSignedTransferCalldataForSafe = async (safeInstance, tokenAddress, recipientAddress, amount) => {
50
+ if (tokenAddress === "0x0000000000000000000000000000000000000000") {
51
+ let safeTx = await (0, safe_ops_1.createSafeTx)(safeInstance, [
52
+ {
53
+ to: recipientAddress,
54
+ value: amount.toString(),
55
+ data: "0x",
56
+ operation: 0,
57
+ },
58
+ ]);
59
+ safeTx = await (0, safe_ops_1.signSafeTx)(safeInstance, safeTx);
60
+ return safeTx;
61
+ }
62
+ else {
63
+ const tokenContract = new ethers_1.Contract(tokenAddress, erc20_abi_1.ERC20_ABI);
64
+ const encodedFunctionCall = tokenContract.interface.encodeFunctionData("transfer", [recipientAddress, amount]);
65
+ console.log("encodedFunctionCall", encodedFunctionCall);
66
+ let safeTx = await (0, safe_ops_1.createSafeTx)(safeInstance, [
67
+ {
68
+ to: tokenAddress,
69
+ value: "0",
70
+ data: encodedFunctionCall,
71
+ operation: 0,
72
+ },
73
+ ]);
74
+ safeTx = await (0, safe_ops_1.signSafeTx)(safeInstance, safeTx);
75
+ console.log("safeTx signed", safeTx);
76
+ return safeTx;
77
+ }
78
+ };
79
+ exports.getSignedTransferCalldataForSafe = getSignedTransferCalldataForSafe;
80
+ const getDecimals = async (token, provider) => {
81
+ const erc20 = new ethers_1.Contract(token.address, erc20_abi_1.ERC20_ABI, provider);
82
+ const decimals = await erc20?.decimals?.();
83
+ if (!decimals) {
84
+ throw new Error("Decimals not found");
85
+ }
86
+ return decimals;
87
+ };
88
+ exports.getDecimals = getDecimals;
89
+ const getName = async (token, provider) => {
90
+ try {
91
+ const erc20 = new ethers_1.Contract(token.address, erc20_abi_1.ERC20_ABI, provider);
92
+ const name = await erc20?.name?.();
93
+ return name;
94
+ }
95
+ catch (error) {
96
+ return "";
97
+ }
98
+ };
99
+ const getSymbol = async (token, provider) => {
100
+ try {
101
+ const erc20 = new ethers_1.Contract(token.address, erc20_abi_1.ERC20_ABI, provider);
102
+ const symbol = await erc20?.symbol?.();
103
+ return symbol;
104
+ }
105
+ catch (error) {
106
+ return "";
107
+ }
108
+ };
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { SafeTransactionData } from "@safe-global/types-kit";
2
+ import { DeconstructedSafeSignature } from "../safe-ops/models";
3
+ export interface TokenInfo {
4
+ token: Token;
5
+ decimals: number;
6
+ balance?: BigInt;
7
+ symbol?: string;
8
+ name?: string;
9
+ price?: BigInt;
10
+ usdValue?: BigInt;
11
+ }
12
+ export interface Token {
13
+ address: string;
14
+ chainId: number;
15
+ priceFeed: {
16
+ priceFeedAddress: string;
17
+ priceFeedDecimals?: number;
18
+ priceFeedChainId: number;
19
+ };
20
+ }
21
+ export interface OptimalTokenWithCalldata {
22
+ token: TokenInfo;
23
+ safeTx: SafeTransactionData;
24
+ safeSignatures: DeconstructedSafeSignature[];
25
+ treasuryAddress: string;
26
+ }
27
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/token/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AACD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,cAAc,EAAE,0BAA0B,EAAE,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/token/models.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@epoch-protocol/inventory-sdk",
3
+ "version": "1.0.0",
4
+ "main": "dist/index.js",
5
+ "types": "dist/index.d.ts",
6
+ "scripts": {
7
+ "build": "tsc",
8
+ "test": "echo \"Error: no test specified\" && exit 1"
9
+ },
10
+ "keywords": [],
11
+ "author": "",
12
+ "license": "ISC",
13
+ "description": "",
14
+ "devDependencies": {
15
+ "@types/node": "^24.8.1",
16
+ "typescript": "^5.9.3"
17
+ },
18
+ "dependencies": {
19
+ "@safe-global/protocol-kit": "^6.1.1",
20
+ "ethers": "^6.15.0"
21
+ }
22
+ }