@silvana-one/abi 0.1.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.
- package/README.md +1 -0
- package/dist/node/contracts.d.ts +17 -0
- package/dist/node/contracts.js +19 -0
- package/dist/node/contracts.js.map +1 -0
- package/dist/node/fee.d.ts +2 -0
- package/dist/node/fee.js +3 -0
- package/dist/node/fee.js.map +1 -0
- package/dist/node/fetch.d.ts +14 -0
- package/dist/node/fetch.js +59 -0
- package/dist/node/fetch.js.map +1 -0
- package/dist/node/index.cjs +1119 -0
- package/dist/node/index.d.ts +6 -0
- package/dist/node/index.js +7 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/info/address.d.ts +1 -0
- package/dist/node/info/address.js +20 -0
- package/dist/node/info/address.js.map +1 -0
- package/dist/node/info/index.d.ts +1 -0
- package/dist/node/info/index.js +2 -0
- package/dist/node/info/index.js.map +1 -0
- package/dist/node/token/build.d.ts +46 -0
- package/dist/node/token/build.js +789 -0
- package/dist/node/token/build.js.map +1 -0
- package/dist/node/token/contracts.d.ts +17 -0
- package/dist/node/token/contracts.js +13 -0
- package/dist/node/token/contracts.js.map +1 -0
- package/dist/node/token/index.d.ts +3 -0
- package/dist/node/token/index.js +4 -0
- package/dist/node/token/index.js.map +1 -0
- package/dist/node/token/info.d.ts +11 -0
- package/dist/node/token/info.js +528 -0
- package/dist/node/token/info.js.map +1 -0
- package/dist/node/types.d.ts +4 -0
- package/dist/node/types.js +2 -0
- package/dist/node/types.js.map +1 -0
- package/dist/node/vk/devnet.d.ts +2 -0
- package/dist/node/vk/devnet.js +86 -0
- package/dist/node/vk/devnet.js.map +1 -0
- package/dist/node/vk/index.d.ts +4 -0
- package/dist/node/vk/index.js +5 -0
- package/dist/node/vk/index.js.map +1 -0
- package/dist/node/vk/mainnet.d.ts +2 -0
- package/dist/node/vk/mainnet.js +86 -0
- package/dist/node/vk/mainnet.js.map +1 -0
- package/dist/node/vk/types.d.ts +10 -0
- package/dist/node/vk/types.js +2 -0
- package/dist/node/vk/types.js.map +1 -0
- package/dist/node/vk/vk.d.ts +2 -0
- package/dist/node/vk/vk.js +7 -0
- package/dist/node/vk/vk.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/tsconfig.web.tsbuildinfo +1 -0
- package/dist/web/contracts.d.ts +17 -0
- package/dist/web/contracts.js +19 -0
- package/dist/web/contracts.js.map +1 -0
- package/dist/web/fee.d.ts +2 -0
- package/dist/web/fee.js +3 -0
- package/dist/web/fee.js.map +1 -0
- package/dist/web/fetch.d.ts +14 -0
- package/dist/web/fetch.js +59 -0
- package/dist/web/fetch.js.map +1 -0
- package/dist/web/index.d.ts +6 -0
- package/dist/web/index.js +7 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/info/address.d.ts +1 -0
- package/dist/web/info/address.js +20 -0
- package/dist/web/info/address.js.map +1 -0
- package/dist/web/info/index.d.ts +1 -0
- package/dist/web/info/index.js +2 -0
- package/dist/web/info/index.js.map +1 -0
- package/dist/web/token/build.d.ts +46 -0
- package/dist/web/token/build.js +789 -0
- package/dist/web/token/build.js.map +1 -0
- package/dist/web/token/contracts.d.ts +17 -0
- package/dist/web/token/contracts.js +13 -0
- package/dist/web/token/contracts.js.map +1 -0
- package/dist/web/token/index.d.ts +3 -0
- package/dist/web/token/index.js +4 -0
- package/dist/web/token/index.js.map +1 -0
- package/dist/web/token/info.d.ts +11 -0
- package/dist/web/token/info.js +528 -0
- package/dist/web/token/info.js.map +1 -0
- package/dist/web/types.d.ts +4 -0
- package/dist/web/types.js +2 -0
- package/dist/web/types.js.map +1 -0
- package/dist/web/vk/devnet.d.ts +2 -0
- package/dist/web/vk/devnet.js +86 -0
- package/dist/web/vk/devnet.js.map +1 -0
- package/dist/web/vk/index.d.ts +4 -0
- package/dist/web/vk/index.js +5 -0
- package/dist/web/vk/index.js.map +1 -0
- package/dist/web/vk/mainnet.d.ts +2 -0
- package/dist/web/vk/mainnet.js +86 -0
- package/dist/web/vk/mainnet.js.map +1 -0
- package/dist/web/vk/types.d.ts +10 -0
- package/dist/web/vk/types.js +2 -0
- package/dist/web/vk/types.js.map +1 -0
- package/dist/web/vk/vk.d.ts +2 -0
- package/dist/web/vk/vk.js +7 -0
- package/dist/web/vk/vk.js.map +1 -0
- package/package.json +69 -0
- package/src/contracts.ts +50 -0
- package/src/fee.ts +2 -0
- package/src/fetch.ts +73 -0
- package/src/index.ts +6 -0
- package/src/info/address.ts +25 -0
- package/src/info/index.ts +1 -0
- package/src/token/build.ts +1014 -0
- package/src/token/contracts.ts +40 -0
- package/src/token/index.ts +3 -0
- package/src/token/info.ts +600 -0
- package/src/types.ts +4 -0
- package/src/vk/devnet.ts +88 -0
- package/src/vk/index.ts +4 -0
- package/src/vk/mainnet.ts +88 -0
- package/src/vk/types.ts +16 -0
- package/src/vk/vk.ts +8 -0
|
@@ -0,0 +1,1119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// dist/node/index.js
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
|
+
LAUNCH_FEE: () => LAUNCH_FEE,
|
|
24
|
+
TRANSACTION_FEE: () => TRANSACTION_FEE,
|
|
25
|
+
buildTokenLaunchTransaction: () => buildTokenLaunchTransaction,
|
|
26
|
+
buildTokenTransaction: () => buildTokenTransaction,
|
|
27
|
+
checkAddress: () => checkAddress,
|
|
28
|
+
devnet: () => devnet,
|
|
29
|
+
fetchMinaAccount: () => fetchMinaAccount,
|
|
30
|
+
getContractInfo: () => getContractInfo,
|
|
31
|
+
getTokenSymbolAndAdmin: () => getTokenSymbolAndAdmin,
|
|
32
|
+
mainnet: () => mainnet,
|
|
33
|
+
tokenBalance: () => tokenBalance,
|
|
34
|
+
tokenContracts: () => tokenContracts,
|
|
35
|
+
tokenVerificationKeys: () => tokenVerificationKeys
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(index_exports);
|
|
38
|
+
|
|
39
|
+
// dist/node/fee.js
|
|
40
|
+
var LAUNCH_FEE = 1e10;
|
|
41
|
+
var TRANSACTION_FEE = 1e8;
|
|
42
|
+
|
|
43
|
+
// dist/node/token/build.js
|
|
44
|
+
var import_storage = require("@silvana-one/storage");
|
|
45
|
+
|
|
46
|
+
// dist/node/fetch.js
|
|
47
|
+
var import_o1js = require("o1js");
|
|
48
|
+
async function fetchMinaAccount(params) {
|
|
49
|
+
const { publicKey, tokenId, force = false } = params;
|
|
50
|
+
const timeout = 1e3 * 60 * 3;
|
|
51
|
+
let attempt = 0;
|
|
52
|
+
const startTime = Date.now();
|
|
53
|
+
let result = { account: void 0 };
|
|
54
|
+
while (Date.now() - startTime < timeout) {
|
|
55
|
+
try {
|
|
56
|
+
const result2 = await (0, import_o1js.fetchAccount)({
|
|
57
|
+
publicKey,
|
|
58
|
+
tokenId
|
|
59
|
+
});
|
|
60
|
+
return result2.account;
|
|
61
|
+
} catch (error) {
|
|
62
|
+
if (force === true)
|
|
63
|
+
console.log("Error in fetchMinaAccount:", {
|
|
64
|
+
error,
|
|
65
|
+
publicKey: typeof publicKey === "string" ? publicKey : publicKey.toBase58(),
|
|
66
|
+
tokenId: tokenId?.toString(),
|
|
67
|
+
force
|
|
68
|
+
});
|
|
69
|
+
else {
|
|
70
|
+
console.log("fetchMinaAccount error", {
|
|
71
|
+
error,
|
|
72
|
+
publicKey: typeof publicKey === "string" ? publicKey : publicKey.toBase58(),
|
|
73
|
+
tokenId: tokenId?.toString(),
|
|
74
|
+
force
|
|
75
|
+
});
|
|
76
|
+
return result.account;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
attempt++;
|
|
80
|
+
await sleep(1e3 * 6 * attempt);
|
|
81
|
+
}
|
|
82
|
+
if (force === true)
|
|
83
|
+
throw new Error(`fetchMinaAccount timeout
|
|
84
|
+
${{
|
|
85
|
+
publicKey: typeof publicKey === "string" ? publicKey : publicKey.toBase58(),
|
|
86
|
+
tokenId: tokenId?.toString(),
|
|
87
|
+
force
|
|
88
|
+
}}`);
|
|
89
|
+
else
|
|
90
|
+
console.log("fetchMinaAccount timeout", typeof publicKey === "string" ? publicKey : publicKey.toBase58(), tokenId?.toString(), force);
|
|
91
|
+
return result.account;
|
|
92
|
+
}
|
|
93
|
+
function sleep(ms) {
|
|
94
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// dist/node/token/build.js
|
|
98
|
+
var import_token = require("@silvana-one/token");
|
|
99
|
+
|
|
100
|
+
// dist/node/vk/devnet.js
|
|
101
|
+
var devnet = {
|
|
102
|
+
o1js: "2.2.0",
|
|
103
|
+
vk: {
|
|
104
|
+
NFT: {
|
|
105
|
+
hash: "11840382732064931640435917684245815329181717734233274982467687213333743677377",
|
|
106
|
+
data: "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",
|
|
107
|
+
type: "nft"
|
|
108
|
+
},
|
|
109
|
+
Collection: {
|
|
110
|
+
hash: "8119731345447459819772663409770065608102060883054572650702593018706950415831",
|
|
111
|
+
data: "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",
|
|
112
|
+
type: "collection"
|
|
113
|
+
},
|
|
114
|
+
NonFungibleTokenOfferContract: {
|
|
115
|
+
hash: "8547452427762838584951648728722457733553962093547901731683261758052034563177",
|
|
116
|
+
data: "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",
|
|
117
|
+
type: "user"
|
|
118
|
+
},
|
|
119
|
+
NFTAdmin: {
|
|
120
|
+
hash: "6563805542946172457708061315758852085613368174461197079047467342240527277159",
|
|
121
|
+
data: "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",
|
|
122
|
+
type: "admin"
|
|
123
|
+
},
|
|
124
|
+
VerificationKeyUpgradeAuthority: {
|
|
125
|
+
hash: "24248690097061452380259183021520676826201948296409686318469332616191300421924",
|
|
126
|
+
data: "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",
|
|
127
|
+
type: "upgrade"
|
|
128
|
+
},
|
|
129
|
+
NFTAdvancedAdmin: {
|
|
130
|
+
hash: "5221711868207025493063299639147894617662757900199208030236880609997056902339",
|
|
131
|
+
data: "AAAEgbOnCVby5SRjwDays1ASaylVzXbjcC5NWc2uGNfKPSM6+ID7haKyeMRO9UQ7ktkM6C9ub0MJbVByfuXOI1sm8uyXxiRBQfy5buwwUSbWKhdhTo7g0+TS29bNWU5oFg9J0RmE0MoJ5fVQ4SVHOrHkKXRNYXGgyUannigtw8/QM4/ibDtqcBSXLqqcvVSUa2MZrJvlEx3PS/GEgBA5Fy4kZ1N4mQkzbiq0xfMbf8U2+w0S7lPryKb6LR6iPyZ+kD8rlKXhs/POoj/zVX2QMqPcL7RQ6t2wSSUnW5ytm+mtD4QAA0ajNp+jCR06LhGmmgXTubLtMc+XZBrqyO8ZCewB3Gzpay6smj3x4kpZXPKgVZqxUJGMqrUQPTbu9CfFtwJZzOFjlipnm+wuREq0IQ01wQwKq4iMfbf7dBahSfkLBenUx1xKHngWYbXeX6UCI06a68zphNd0yso5ObXsdTEfPNQKwAIVEOyWupmPVDK/C1k6F4Xbi9mlXDeYA+jdBgVLZbojfhYLrrJF04yLOObG+R7ygvOZ013OWMYKoElFMHHMaJCSZ44tEWWCk125/PwDpPP4D84QTKSFONoLtjsVAII1WKOhjl8hQAkwUkwTLefDP9fn2sqkB4kPDYle6BgQuenS3umVqDyKRBnlkB6cm9FWIdA1zbt1xlwne2DEEDyvDU55SOyJ414HorFWQmqO+XoNZJ+o7sUtda3bm+8VBSkfneNp9AOoCUL/skHQ/aesA6O4ILUhqQ0+oz0tas0sIDOKBNEVjqoh/O5lEKB+w+PWJkFlKYoAvmfvCftM0TJA+UW9/I1qy3C8vGsKDs9l/GrzAu644kfnQNDdAiNeEp4uzOIQTFA2Ry1A+KOelmI8CO23XWn/EtXXYgmrSOIvGK/jKVZA8kJd5AsE6G0YAjRLWBI0QFUjaTXV56CltQNG4+YGpD0KsMzGR606mzTxTlKTqgpAXQNWVMVmQpUGPv6dQW70uGGjnY0MWxrdsfxibgp3LuxDZ7zGDlVeQ6g//M5CPPNEH9VDLYZi5l+AzWJBqwwuSZi2HaWkdCmLlyidQKzyoqcgOHWW+Glsl5tGotVrMUWFijqR8dCzGcE9NsZ8r5CRYikvGoDxA07KSdV0gWa+aVrjPqqlP/7eEhEzSe1A9Y5uhG4Z+x+2PtXWp6dCmV2wT+d+8/HRWkYj+Cs6Njeokss7JgPBljo0/wexLpYR7tD4HuQ+w5YTu58CBnNNoF9cyT/Bag1pmUXYpG2diTvMSoCtb+o87PjBxBwVBn03u4ug5/dod3RPCpkAiJci+UHhNYXw5OKH2uyXyyaMkTg7jTixoF9y5y7EmSeWiCBSyYZ99Zm/BdB9laStCN5ZjFhRkVcMMKQmgPkiVRdanXTwq1mX+XD3HeBVXLwlfcaYVCn9XJWqesfYkHYPmhi4XvZfcTzsmTa8pC1Fvje/DWlXGHH7/BzhMT33l44A6s2U4GPufh40fm7RdfKeGHoQfgHhvDiH4yF20mRQtR2FXMofjDxz0iWvzolAOu0f8RBvNmT0LmFQnw2HBNF9i5sttzCnl0OUtH8cAIp15joMsPCtLHDmp1MlzbI0NixoC+sJ9NcMpvr8h56XLvCYElyghnXh+lIsmMYgvMrSRh3XSaaYSPurNoo700yUmD0Z94hE1ZzPIKZa5fwpO/2lser0Qujqj5nmu/oeSBSQuxowZxMIWgEmEaH7d++dkBl7aHxc5pcowkGtDB+IRvyRNL6gqlkTYX865U+Dqm6dz2eMP8E+H9rYG61IwUeLxQQP5//PEaTSGhJwKkoaRv88kDiIuhJTdhLSQ/pR3r8l7AaI1OFLL6zeS4y/oJQzDl4FPRGmuf+JXYCelb6jKzX9CACY2OnLhabNgxJpDTHn6YjlkwtlY0gdzOdK3fAmCNU3PqbFxOzgOeTOYLevyOsbrRkh4UD4iWPneglaxQ5cc1YmRPTf1IFxcOnXV+NFLPP9IjkdUqM3Oqm31uquuZexnzex6T1qJl0vdhCv1Rg2mM5dS00VyxzsOqn/QevCnyqDCboabF1GLB/53wlbBkOb0WdL/KEUxqohNPJYizV5BeYCqRn4JUQcQ4vHKBCfYV/g+2bm/oi9l4xg9OZI2wAlyiX2FuPAW8qdGUP/UZln21L8cZXvrF++JL2Lo/94XLMoPfuqQTL8gJ1uqrd2v0E4PzOrossyKHaQCQsoFJUYAGkw+aFBafCFBsagHGWNNixzouLJZ5lvaUQabRRy/yLn4DnZNKAZ7RI4aZXuIuCKOUVZOYduLry/gc9DYaUPQ5gWMJcsgOntZ2bI85DxN33YXDKhxRm4UuEGbWHD3amBzQoysdhr6D24NDMefYNVnwKuIPdsFN4TB3vMRzVve7Q6axg=",
|
|
132
|
+
type: "admin"
|
|
133
|
+
},
|
|
134
|
+
AdvancedCollection: {
|
|
135
|
+
hash: "8119731345447459819772663409770065608102060883054572650702593018706950415831",
|
|
136
|
+
data: "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",
|
|
137
|
+
type: "collection"
|
|
138
|
+
},
|
|
139
|
+
FungibleToken: {
|
|
140
|
+
hash: "11275266297357989434659649579180929660472107786900344600948115953037388411671",
|
|
141
|
+
data: "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",
|
|
142
|
+
type: "token"
|
|
143
|
+
},
|
|
144
|
+
BondingCurveFungibleToken: {
|
|
145
|
+
hash: "11275266297357989434659649579180929660472107786900344600948115953037388411671",
|
|
146
|
+
data: "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",
|
|
147
|
+
type: "token"
|
|
148
|
+
},
|
|
149
|
+
FungibleTokenBondingCurveAdmin: {
|
|
150
|
+
hash: "11804002163247634780922906197957555357468413118249371346549192499154574714919",
|
|
151
|
+
data: "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",
|
|
152
|
+
type: "admin"
|
|
153
|
+
},
|
|
154
|
+
FungibleTokenAdmin: {
|
|
155
|
+
hash: "18691595165066726042633902806776623651617801388146374388725017604854573364243",
|
|
156
|
+
data: "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",
|
|
157
|
+
type: "admin"
|
|
158
|
+
},
|
|
159
|
+
AdvancedFungibleToken: {
|
|
160
|
+
hash: "11275266297357989434659649579180929660472107786900344600948115953037388411671",
|
|
161
|
+
data: "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",
|
|
162
|
+
type: "token"
|
|
163
|
+
},
|
|
164
|
+
FungibleTokenAdvancedAdmin: {
|
|
165
|
+
hash: "8783499160580712605701253373775518561598736722248443106986637209009167661283",
|
|
166
|
+
data: "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",
|
|
167
|
+
type: "admin"
|
|
168
|
+
},
|
|
169
|
+
FungibleTokenBidContract: {
|
|
170
|
+
hash: "19351502230897769307293360543295215811735977681920232551845147909346244559333",
|
|
171
|
+
data: "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",
|
|
172
|
+
type: "user"
|
|
173
|
+
},
|
|
174
|
+
FungibleTokenOfferContract: {
|
|
175
|
+
hash: "13912535440179903924827710208678166629189315950923802724246255217343535090656",
|
|
176
|
+
data: "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",
|
|
177
|
+
type: "user"
|
|
178
|
+
},
|
|
179
|
+
FungibleTokenClaimContract: {
|
|
180
|
+
hash: "26073072509794773512815124952537939952626223979091748527795661822286836926053",
|
|
181
|
+
data: "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",
|
|
182
|
+
type: "user"
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
// dist/node/vk/mainnet.js
|
|
188
|
+
var mainnet = {
|
|
189
|
+
o1js: "2.2.0",
|
|
190
|
+
vk: {
|
|
191
|
+
NFT: {
|
|
192
|
+
hash: "11510318025893859422482952918693907155880273225165466507725691048640041393360",
|
|
193
|
+
data: "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",
|
|
194
|
+
type: "nft"
|
|
195
|
+
},
|
|
196
|
+
Collection: {
|
|
197
|
+
hash: "23278695109924488121345443156209494254701390223055037273351166165643009871022",
|
|
198
|
+
data: "AQFwx6cv7cG4oRRXGXUKiEhiFzOivfvip4vBR3QtClAbL5wCZ7UTM76wE0QF/z9NPIuE+3w2HWqZsX8G0YSWpXkA9BajiJLkhtpZQfSrq653v5ROa2dIiICBdEyiBrerYR7AkRPxke5kjx267UFiuDnSvVvWIvHuvX6YVSD1nF4eO/L5hFEu9fvrd0zXnbltztShjSnxoG5dDJVhe43MbsA9w4biS83G2DzVtDE4d4i9hpCZ4GJq4SfcwKBLyxGLJAoepD7QWIgSZKVcYlxjYagK+4sg/QIFvW2D7PN7vYgwG10nZxbAiFE7RmAuSptTNn1E2r0X3QYzoQufwfmA3l8AVYfdGTWoD9Hbbewmir21YqRnZVQIL2GRyL06pWyyRBu0GmTt75KgCffrwMJnjbhsu6ptJ7l9Slum1aJ0iT9hNn1GUQU3asOqp9d5PW5nwef3JGkY4L/pXy5Ppr3xpgQwfXQDcSvretr0IaODftxyM6qT1efQSgWJGUngvBAT0i0DB0BVNmOyJrAZPJMIgIZZ/6+sh0thDAswr5fQWYwEFTCsoDslZfwOJe/jjQtjzRMXULjBDbXDKa4jnISPC9ccACcRW5rdduq+NLRDVokvYYo5tFVYVjyMTkyQWoJtmVkaa7yX0KhIeX2zKfBlVbbK0nKLgBZQ8SKCD6PqPevGeBMcAZdsmwlOcl1y0q62U86MrYRwlROOAXUOu/PfCumcA5yGfDE6PB02iqd5rLsKSKYF9rBRAxyU4mtr5vJovs45REvW31RYiUxgIwzD/gFr817ZlJMzwxqGhLOKgv3SGhoSW3VkMp4W4WNKZJtkJ4jAG2IGO4GJJEE8A2kz+V1wKsQpS8IKqMP9XFjJhOqznaYVDX0UDJt9XDJ4FpQABosqXw9fI9sZFyy8NfA8VbqCnUNRcwvGTLgQ95eCWQGEmhFCzbHvPVXcOPK3YcljOr6fCh30hoCUQLbRI20BBBr1IzpAHkbgwZfK8OuPsrYAp0bl8yJ/3jPQVfihxJBuCsAoBhvM+Jg8FoM3TNjCyztxzTVh3nURGvTcvhIjUqnITBgswYI7J/fyeunQpemVeOwVPDC0wh+3xfn7TJhygkAcIBzNH7Btgd79zZXf/I+K1yZnYKtfrFx04LwVdTs0gpIBriRXHAam2/zjgw2QmgxW+ZYYWxAJpGJl5rRKHfQlcTUVbkjMH5IG399qC5n6ONCPzl7Ja074Lwkb7Muqw+A/D3qoRq8I4ophbZZinhgQXDC8qoLk4HW19dm7qejOGNkkfTpEk2I6323dmow0Tqa4qpxmoI8cVML3xhTPhYAQWRrJCKf74hLXMfazMhNDfsEOw4yRUmWC7Ynb8iwCKFTiHfDIpDrUvi6vo+V9ZqyZdxYJDCMeXwZGZQ/3l45bwOEx3tlQWEhr8zXwsHMokaCd+2zdYXmWUvQTWJrrgDhx5gotCJRs/Qki3hbcAbKrUJo4vA6asOg242GEEnj9HVLcEUgtIbxcxNjPNBSuxl0uuJ2dea3pVRoJSx8AOXH+CCEZRXz238X1OWgXRccSAUY3hsWaYQirPWvEUBLw8KJ2ygLeIxuZXfRjYC9TIJmgv9NJL0YU9x/qg9FgIJQPNpkdJrGNauegzzuGS/VFcCqL2s+vFknNbLS0nDZ9INJ58U8itVdPZAq5mO3Zs/zOcnlZZZcb2t+qPndNUXq8HhCcCwmaYFYbWJhc8PK4TFgL525FWXUs4AAEoRtT55b7YeD4M+23uFdY9ktxXDwq0qgkeVf1ROCUCOMWEynCLETzxF4dEBLob9UPTDAsV0GPHdL0/xFtx/pWiw4vsI/Uia/44S4svpvP5hSzN5uBAiT4zo5pE4EovUqfZtnBZLo6qh25OwCvMmfS1t6fZ/crq7oQGdFmt2n6HeAU3r6aLq3IQCHyDaM3jLxn/nLZ3LZAXDeZv8Wa/azz5g5qp0F4HiEnPIYELFs3HpT1gNn7olCowpRrn56Y+xIGN5/H0sHKSuGGOihlmR80VuvlY6FkAILLU3d1WXQhTPiVzoJlU3H+Bt5zJ3PoxRxrdvPe/OqjQaMNBdUnHzUvRtAADNddrsshlREgSm5jpZ8QmdkWWNZEXMsoRjiw2lFo5vk4uAsAWqs1hifp3lbTR0riBXZ+P5vCiEZ51Q+LduNx08aAbXziUyFHAN/p5fVDa7obfbEeIo6HyQdkRnXyK12XuKSojDNbnLUUxmzvBJYvRDsuZHz5ohVy98XMD+QvUielN2/C8F9tgSxhG0Nr9UMO+IAkc+N691WUYT2OwuaxN9dlSJDXmW+6BpR58SbhPSbRnM6juxu2ciTZaET+ZaEn8i5vWG9NzokaxU9jqNr2N33vtyr32J03DNuMNkiD15fKzIhhiXj6DhM=",
|
|
199
|
+
type: "collection"
|
|
200
|
+
},
|
|
201
|
+
NonFungibleTokenOfferContract: {
|
|
202
|
+
hash: "6814366054303460006786227738424585404619502154485123864765817193634847999364",
|
|
203
|
+
data: "AAB70YBptBMsdVk1VL0QQCugfZLamJMjVqpyGxmtZZ+nPAk2DiqWDRW/hblrAtJ71iSpL/OeyTQk/tt1uzUNDEUan4YuPVFj2nGuMBjCnDjSrEpk2/irvIPEuKbBYE+JDQnptgGqlI9pmyG9wq5G61F9tn9rN0IJjq6ft3OyCBxaGkErOVpxtwiYX4EO9S0Cozhsa856uiJZEWJAz0VyQf0PosT96YzUOqREgP2i/74nQHxfyh7nZTFQzpHrM7Ewwzs5TBEX9uw6F/txyjv4EtwS6j7ka3L8w85iucQ6AOl1AaPDmnCWrLyOj6x2DGaHs1QDQyc1vYDQsi7zpr/4O5spA/lIOMn/no+eTvjEw1sXC9WlFlZcPM0iVMzrqXsd9zAArgnT1BCC62zJA0JET+2wuxmaL7U/he6DtRTvrrc7MdfvWU/ODDVUUD2c41v0pXsbmWdN+cwqBDmiFShqZr8w4B0GVjctzYCXhcndiHXVbc26gvYCN0JROVHSRuzxpgdXJaztLrxQDvsLN+M9D90xCYmlVnViVVmzpFZr22AFASrN2T/rszvqOfeARKaUuFPRhsO+kCu2Wg7/86yGFrkNAKLooJ49DWnCcAZtHeDcmGeXr1OfhUKzhdlAsNoWvmEg7pBXL/foLwu7qHgp2qzG21GtAT1ka6N1V7xTxS+sLjhfF2UYbWWuFHSIH9w0dbBxCi+4EGgmZ3xwBX67ytc3Hb4elsCObnYcg4wKXXju4nj2AeI2Fs14WLIqiYstLyUFNhW3spcr/zMQ6NuLyeecIDT5M0FUoEjGZpwvHs2nFSBrYQyhvBv5aj8MAuEDo44uqslSD9cx5wKXnLPQX1AiGj2D5YUsArB5ayvvKgouSf9rZPcRtGlxhQq0/Coev9o7bG3vxy4ca77UcMPvSXLueLqW1IMhdHmm5tkNVsvSzi4bvbP6GpJg4Jgt5BdOc1i/eUSY+w5Ajdl9xSXUMhPKAEZeySGosMbRTUG6HHKAyyf6mUjKl4Q0jZPJ3ASZMGMhEvsUccc6xMEao9QDVOYnTuMqh4dBRJeQpZDRkS/y2zYQJC+NF4qCmgIR6I9248wLf9MR8I2J0s1rqCluL5zpA/TSKBzgfC/SiRqCe0sfJWnlDyvSmcHW/JKuz6z7s9QselXrrviLd8S3O2nNxvPN/ELbZY8HNRi/k2+wz06zFhWc7AZyze1L2hOtzu0RIhpOxGyGwdlbXulWP9nmyC8LJU/2Jc1rsbBR5MWxxmAS4tWQpMHHqUDQEKk1HCW34P444Cgb94oBGRsJRyUb4g2Cd7EIa6na0PdItw58F/3EBzblInKctWpHBunivNQAR+klmUbUR+Wcp5JNcglU6V1bNnEseyQTAf5K2WXxszi6nfavp+t6JqignqEh8b0xgp4usaASGD6eb7PzKCvpxt9svD8ZD9Bb96utPMHBhLYQqDI7OvK7zrnOEaP7ccFdIZbpazVTNZ+q+HqTviF6JW9RKliAzlDi/m1IRbm/K64IZjPYql+MnI6phxlP/GRAwMoLDTnvtCainlHvDnX2I4BYpyOuyC7G0DQ5jlw4YI4q9hspawmBgMCckIoV/wgpFIBWObQxysm24EmmaorUWYseDOIJB0GTWJFSQIZi8wNqupSz56Y+h29VUrmCkQ/Bh7oXOTCyZn0OmH+X0mQgcKLe7appX77+EEa6gATT9Fhk3QoRMKoguzaG94lk22z5Z1o78ugWYkk4yknEDbKlezPKM13qU01pYvjl3oOSRJulveMbmIRvkSPzugPreIYHZd4iaVa1Jy42KDTbIwEZTtU628jzSA8fv7M7YH/8mDhdJzQcY9+2dMAoo9dvVQkpNFFsgqmM7tKKqZfpEJrZSxuWOQDMUEu+H+UB523diaW61/2h0T0z7HA924ii9Neqmyx7Cw3YxQK/6970m4h3ArA6J077UzxO0dHXyNB+8L451NQP9cwBjKr4BQl5yNWBSpaAUvIoDOS1SqysESuJKO7d6BjWNQcKjZ9G6hJXlPKVyS3vvfjMwF3rsdvZIvZwBfcwGpYR56h5MFfuWvU+Ve/Q3K8LHuF/RmCurS9/9yPptJkk1h+yv9tciyrCK3fYfUbrg5FQ7UUA5PqrSd8yBcP5QTcENjo3nGHRRC2HqYID7yqWLFSyEWolcqN0bJE2atxEDMgkyqciZrufd3Iov/dlGcxQG0NDcRmuwgljLVk8K/4mY1fTEFlcPQ2536r3vvytZfMHzjL88I5kP+6LbWZ89CxCV0borJvUyd4YZcsN785xnRnNOJIbSaEUNC9OlWt3H4xa4r+1TuwxchJR788rt3Nb0BTCKHFyR9IDVlrSrCA3vd6IP+eTyI4e5q9uZdWPsBLts1IfGd01vnpBFgGhJyc=",
|
|
204
|
+
type: "user"
|
|
205
|
+
},
|
|
206
|
+
NFTAdmin: {
|
|
207
|
+
hash: "27644776832362870047117169398104964311361100452869928193934630293792354270550",
|
|
208
|
+
data: "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",
|
|
209
|
+
type: "admin"
|
|
210
|
+
},
|
|
211
|
+
VerificationKeyUpgradeAuthority: {
|
|
212
|
+
hash: "11985403017286473627966300663722292870964778138598849061271153789533016168559",
|
|
213
|
+
data: "AQHWBi+TrCVltbHGoRc1CDMYd+vTF9gNHudEZm3V0mOlCsQvGUwAtTBpPT/Zo7boGd4I98MNvtbFOEvblFdRqJoaQTWb4pZxigMWwSUqGrHW2N9H6dyq+LUSeDNUTC/ZeTCFPG+4SixaCr5/Jem6A/r5KkMvXiTPW5U/Wp8Ep1ilL96IsGqCXFj9r7bWqdWBAWvxWvAQbLG8UvluS7LrVNEnqRoIJR4hbrTJIfdWXGhZwHwAH7lNRo50iib5TTSVvChhYIHMyfGe7+kb+oVSK/FiUAjrDS6MNfYfTsLmNlL5NOsMJ5B+4HzSjQ+Qugp0hDZeGpvMQkzWSMcFjE+2CjwG4FyhUsiljBxSSlaB8vwLifvGDkBbgSh3/wW2XMOSRQ3PbeEHE8JiiXITZWyusqSKbV3mWk7+KYolKun0LF52MbQ6/s2JsQ7deJdRDlajiKyv1uwwPASMb6ggATGfdMI5L2uvWtOY+83WHHygHyHfexlzBaZK8PJ0smdaoq0RVh/1F0UwRxbSbt3cQeDZ4Ta01zdRzEfAoYRPEuGQQljwPMn3YFeRTN+xc4B4OdfIrLNr+I1rhPvgM8dNq96QpqISAKQMESsFtnX/TSrqw32W6YKu9XMWti72hZ4DQX3ggCAedCLSfy8/0XxJKgj9z2mJ4X4o1esX6rqugcjXW4xt2SXTFp543kY0JXNrpng6ez6wYvEtuyD2BKhm2qEY8c3WMe+bYEwOVh1DeeH6Yj6utEdkba8ZimE9q6xWiZhwlpMY8ywB+O0PgqRhzFUzvbhoGctkQf6DuYC6SnQaHLifhhILqdFPx8kCs+9xAiK2KhOnfovpirU3D42rFZKmq+zgAhAr90kOy6D0td5pWye9Ky8ohsNEzdxxLZJHLH388eEt3jWtrCX0kowR+Rp2CcFqsSdmQF7esr07kxxGDmGGuyQhrVVeYViwDqx7wGFCMuW34riumJO+WNy/6DyM+51SHtKbUyTgBjkQeSPUmF7i0GCqe3jPEoBCh1MrUE5B0ZUQJf9XDSTZ9NaBa2RzRLlY8GR8o97HG5xkh+2rGwwHaz+wjg+aFNf38D+HiIL6nYP//pRAIM6Lrz3vueGKytyVOxqtufuBgVgtqmUlDcJeEKyfeHeJnMR4rC8Ogf9i9/QRhl3AE1cIwnp5zx6UhunM7rYMJQNVdsY4EWn7qUuLFSTja3bSdCLjSdFEoln3ohb0RpSfBnhu7WmGnEh96JDLH3ttQ0t8J2Uy+zRUJ5aOJn13oJtBJZ0E7e1oa1F2CgkAgStu/rlPlOLCmVSe+mr6bW505n0Av++8uLtl0TZISQ2Q9hCbXlxAOGX2fT/mkjXvSI/fnKQRB4P9Z8yz3xnVKEVPPk6fdruhtJNVy7UqOdCmkjQnx6TKOaWk4UGht8wJrq+itwKqbnpEmv96vfCgRv7ej5Cp6cyP21YeaYReXyA74/+9/qyN1KEwStuvmM9eRAmldsY+BGfpHA7fj4JrJtWelB1bvOtYQADvxVQ1J6v8AgHZZz1Z1fBf24V6GVssmH2lqe9TfIPHLhIj+5y7KUxaC+KNVULKdBDbxH/ajxmQ1jcnDWEmlZ3zD3bSBZ8AOD4aZqgUJp0+ySQuY2h/CzTs6af7zz78idZrTTh9wEp31qMm5sQ3oSZ9D0Cn+WspVh6cXIfS1P1WbB3fV43dmC+LzFBv3yAqABxwfTsdiDwejX9ZPmhd75EBxyRwAwiA1vQuRM98KZEIm+u895ZgIwwnSEoXQi4tNdjmhS4RE1tvFtU9d4wYsKIzxkDjBWo+xmHqeW30p1IVA5SptZAZwUZnqxR+qKrmNfNmthW5XCJfZSiy4F/qOb6AWFtbUNWrVAA+7s8A+Ypdwz627nuaMAB5Ef7wjgnhGwGIPG/zkSVtTh2/D5ZOvsDG6z6Ok0U4NxB8Q/KNJ8s6iAk3V3GyERmgihnFNDhEV1wMAFwFTCw1zfkMBjObpffMc7R0EtnowpEyhikeGI+JIqUGAF6XNw9q/Ygi4JHnhwLf9e1j3x2vVgO2IxPGHmc7QpLG0LmVN5VkLFyhp9YrCg32iCjm/y4+Wnt62y8Stca6HPCslcskzf3MNYgl5Q3O9FB/C4gktKG/8CgVv/NvSIbEfwc48w048h54aDJr/GSdIjrjAG+E8jNsvqwzQQ8xgKFGb+flCNoHjow32/sPrkmdU1U6c+REylAsO6rQBLFY+Ry0i64bM3ZeboBNaI9pmT2b8LPATgQCZRAIGV7ToIutsRXXFh6TfzsM0rFi4rYbtKdOM18vKqytyA+L0ULrEzgpmX9tMPOh+cuhOilnQ2Baf8hNB/fZR5AQQ5sFz5QqKzdL0LkyUg2PGwffqV0ARIPbEbzgJ8kw2if+NdBBBuw3N0yWHyo=",
|
|
214
|
+
type: "upgrade"
|
|
215
|
+
},
|
|
216
|
+
NFTAdvancedAdmin: {
|
|
217
|
+
hash: "9548845893397712104498998550794951465304149395990020081754604067409282853786",
|
|
218
|
+
data: "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",
|
|
219
|
+
type: "admin"
|
|
220
|
+
},
|
|
221
|
+
AdvancedCollection: {
|
|
222
|
+
hash: "23278695109924488121345443156209494254701390223055037273351166165643009871022",
|
|
223
|
+
data: "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",
|
|
224
|
+
type: "collection"
|
|
225
|
+
},
|
|
226
|
+
FungibleToken: {
|
|
227
|
+
hash: "18335904450268115742916300374904684680550450188257481973810475185988053152387",
|
|
228
|
+
data: "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",
|
|
229
|
+
type: "token"
|
|
230
|
+
},
|
|
231
|
+
BondingCurveFungibleToken: {
|
|
232
|
+
hash: "18335904450268115742916300374904684680550450188257481973810475185988053152387",
|
|
233
|
+
data: "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",
|
|
234
|
+
type: "token"
|
|
235
|
+
},
|
|
236
|
+
FungibleTokenBondingCurveAdmin: {
|
|
237
|
+
hash: "15786394508755430713503409108269701590171755926170792630086090094004842017959",
|
|
238
|
+
data: "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",
|
|
239
|
+
type: "admin"
|
|
240
|
+
},
|
|
241
|
+
FungibleTokenAdmin: {
|
|
242
|
+
hash: "18313778512774155670856755989313062419954804408798514573373489608748527149311",
|
|
243
|
+
data: "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",
|
|
244
|
+
type: "admin"
|
|
245
|
+
},
|
|
246
|
+
AdvancedFungibleToken: {
|
|
247
|
+
hash: "18335904450268115742916300374904684680550450188257481973810475185988053152387",
|
|
248
|
+
data: "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",
|
|
249
|
+
type: "token"
|
|
250
|
+
},
|
|
251
|
+
FungibleTokenAdvancedAdmin: {
|
|
252
|
+
hash: "3001786142689045145900918039681503601049056601794437758761839074934580215736",
|
|
253
|
+
data: "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",
|
|
254
|
+
type: "admin"
|
|
255
|
+
},
|
|
256
|
+
FungibleTokenBidContract: {
|
|
257
|
+
hash: "28879787158379653532568174849320009402582417561269014871892250140460382661152",
|
|
258
|
+
data: "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",
|
|
259
|
+
type: "user"
|
|
260
|
+
},
|
|
261
|
+
FungibleTokenOfferContract: {
|
|
262
|
+
hash: "11109606693576493343067830052270559970882892326352146813340888874229372638970",
|
|
263
|
+
data: "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",
|
|
264
|
+
type: "user"
|
|
265
|
+
},
|
|
266
|
+
FungibleTokenClaimContract: {
|
|
267
|
+
hash: "14412353279864305144700641376290760101576596550573387075087682086668733960560",
|
|
268
|
+
data: "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",
|
|
269
|
+
type: "user"
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
// dist/node/vk/vk.js
|
|
275
|
+
var tokenVerificationKeys = {
|
|
276
|
+
devnet,
|
|
277
|
+
mainnet
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
// dist/node/token/build.js
|
|
281
|
+
var import_o1js2 = require("o1js");
|
|
282
|
+
async function buildTokenLaunchTransaction(params) {
|
|
283
|
+
const { chain, args } = params;
|
|
284
|
+
const { uri, symbol, memo, nonce, adminContract: adminType } = args;
|
|
285
|
+
if (memo && typeof memo !== "string")
|
|
286
|
+
throw new Error("Memo must be a string");
|
|
287
|
+
if (memo && memo.length > 30)
|
|
288
|
+
throw new Error("Memo must be less than 30 characters");
|
|
289
|
+
if (!symbol || typeof symbol !== "string")
|
|
290
|
+
throw new Error("Symbol must be a string");
|
|
291
|
+
if (symbol.length >= 7)
|
|
292
|
+
throw new Error("Symbol must be less than 7 characters");
|
|
293
|
+
const sender = import_o1js2.PublicKey.fromBase58(args.sender);
|
|
294
|
+
if (nonce === void 0)
|
|
295
|
+
throw new Error("Nonce is required");
|
|
296
|
+
if (typeof nonce !== "number")
|
|
297
|
+
throw new Error("Nonce must be a number");
|
|
298
|
+
const fee = 1e8;
|
|
299
|
+
if (uri && typeof uri !== "string")
|
|
300
|
+
throw new Error("Uri must be a string");
|
|
301
|
+
if (!args.tokenAddress || typeof args.tokenAddress !== "string")
|
|
302
|
+
throw new Error("tokenAddress is required");
|
|
303
|
+
if (!args.adminContractAddress || typeof args.adminContractAddress !== "string")
|
|
304
|
+
throw new Error("adminContractAddress is required");
|
|
305
|
+
const adminContract = adminType === "advanced" ? import_token.FungibleTokenAdvancedAdmin : adminType === "bondingCurve" ? import_token.FungibleTokenBondingCurveAdmin : import_token.FungibleTokenAdmin;
|
|
306
|
+
const tokenContract = adminType === "advanced" ? import_token.AdvancedFungibleToken : adminType === "bondingCurve" ? import_token.BondingCurveFungibleToken : import_token.FungibleToken;
|
|
307
|
+
const vk = tokenVerificationKeys[chain === "mainnet" ? "mainnet" : "devnet"].vk;
|
|
308
|
+
if (!vk || !vk.FungibleTokenOfferContract || !vk.FungibleTokenOfferContract.hash || !vk.FungibleTokenOfferContract.data || !vk.FungibleTokenBidContract || !vk.FungibleTokenBidContract.hash || !vk.FungibleTokenBidContract.data || !vk.FungibleTokenAdvancedAdmin || !vk.FungibleTokenAdvancedAdmin.hash || !vk.FungibleTokenAdvancedAdmin.data || !vk.FungibleTokenAdmin || !vk.FungibleTokenAdmin.hash || !vk.FungibleTokenAdmin.data || !vk.FungibleTokenBondingCurveAdmin || !vk.FungibleTokenBondingCurveAdmin.hash || !vk.FungibleTokenBondingCurveAdmin.data || !vk.AdvancedFungibleToken || !vk.AdvancedFungibleToken.hash || !vk.AdvancedFungibleToken.data || !vk.FungibleToken || !vk.FungibleToken.hash || !vk.FungibleToken.data)
|
|
309
|
+
throw new Error("Cannot get verification key from vk");
|
|
310
|
+
const adminVerificationKey = adminType === "advanced" ? vk.FungibleTokenAdvancedAdmin : adminType === "bondingCurve" ? vk.FungibleTokenBondingCurveAdmin : vk.FungibleTokenAdmin;
|
|
311
|
+
const tokenVerificationKey = adminType === "advanced" ? vk.AdvancedFungibleToken : adminType === "bondingCurve" ? vk.BondingCurveFungibleToken : vk.FungibleToken;
|
|
312
|
+
if (!adminVerificationKey || !tokenVerificationKey)
|
|
313
|
+
throw new Error("Cannot get verification keys");
|
|
314
|
+
await fetchMinaAccount({
|
|
315
|
+
publicKey: sender,
|
|
316
|
+
force: true
|
|
317
|
+
});
|
|
318
|
+
if (!import_o1js2.Mina.hasAccount(sender)) {
|
|
319
|
+
throw new Error("Sender does not have account");
|
|
320
|
+
}
|
|
321
|
+
const whitelist = "whitelist" in args && args.whitelist ? typeof args.whitelist === "string" ? import_storage.Whitelist.fromString(args.whitelist) : (await import_storage.Whitelist.create({ list: args.whitelist, name: symbol })).whitelist : import_storage.Whitelist.empty();
|
|
322
|
+
const tokenAddress = import_o1js2.PublicKey.fromBase58(args.tokenAddress);
|
|
323
|
+
const adminContractAddress = import_o1js2.PublicKey.fromBase58(args.adminContractAddress);
|
|
324
|
+
const zkToken = new tokenContract(tokenAddress);
|
|
325
|
+
const zkAdmin = new adminContract(adminContractAddress);
|
|
326
|
+
const provingKey = params.provingKey ? import_o1js2.PublicKey.fromBase58(params.provingKey) : sender;
|
|
327
|
+
const provingFee = params.provingFee ? import_o1js2.UInt64.from(Math.round(params.provingFee)) : void 0;
|
|
328
|
+
const developerFee = args.developerFee ? import_o1js2.UInt64.from(Math.round(args.developerFee)) : void 0;
|
|
329
|
+
const developerAddress = params.developerAddress ? import_o1js2.PublicKey.fromBase58(params.developerAddress) : void 0;
|
|
330
|
+
const totalSupply = "totalSupply" in args && args.totalSupply ? import_o1js2.UInt64.from(Math.round(args.totalSupply)) : import_o1js2.UInt64.MAXINT();
|
|
331
|
+
const requireAdminSignatureForMint = "requireAdminSignatureForMint" in args && args.requireAdminSignatureForMint ? (0, import_o1js2.Bool)(args.requireAdminSignatureForMint) : (0, import_o1js2.Bool)(false);
|
|
332
|
+
const anyoneCanMint = "canMint" in args && args.canMint ? (0, import_o1js2.Bool)(args.canMint === "anyone") : (0, import_o1js2.Bool)(false);
|
|
333
|
+
const decimals = import_o1js2.UInt8.from(args.decimals ? Math.round(args.decimals) : 9);
|
|
334
|
+
const tx = await import_o1js2.Mina.transaction({ sender, fee, memo: memo ?? `launch ${symbol}`, nonce }, async () => {
|
|
335
|
+
if (zkAdmin instanceof import_token.FungibleTokenBondingCurveAdmin) {
|
|
336
|
+
console.log("deploying bonding curve admin", {
|
|
337
|
+
verificationKey: adminVerificationKey.hash,
|
|
338
|
+
tokenAddress: tokenAddress.toBase58(),
|
|
339
|
+
feeMaster: provingKey.toBase58(),
|
|
340
|
+
adminContractAddress: adminContractAddress.toBase58()
|
|
341
|
+
});
|
|
342
|
+
await zkAdmin.deploy({
|
|
343
|
+
verificationKey: adminVerificationKey
|
|
344
|
+
});
|
|
345
|
+
zkAdmin.account.tokenSymbol.set("BC");
|
|
346
|
+
zkAdmin.account.zkappUri.set(uri);
|
|
347
|
+
await zkAdmin.initialize({
|
|
348
|
+
tokenAddress,
|
|
349
|
+
startPrice: import_o1js2.UInt64.from(1e4),
|
|
350
|
+
curveK: import_o1js2.UInt64.from(1e4),
|
|
351
|
+
feeMaster: provingKey,
|
|
352
|
+
fee: import_o1js2.UInt32.from(1e3),
|
|
353
|
+
// 1000 = 1%
|
|
354
|
+
launchFee: import_o1js2.UInt64.from(1e10),
|
|
355
|
+
numberOfNewAccounts: import_o1js2.UInt64.from(4)
|
|
356
|
+
});
|
|
357
|
+
} else {
|
|
358
|
+
const feeAccountUpdate = import_o1js2.AccountUpdate.createSigned(sender);
|
|
359
|
+
feeAccountUpdate.balance.subInPlace(3e9 + (adminType === "advanced" ? 1e9 : 0));
|
|
360
|
+
if (provingFee && provingKey)
|
|
361
|
+
feeAccountUpdate.send({
|
|
362
|
+
to: provingKey,
|
|
363
|
+
amount: provingFee
|
|
364
|
+
});
|
|
365
|
+
if (developerAddress && developerFee) {
|
|
366
|
+
feeAccountUpdate.send({
|
|
367
|
+
to: developerAddress,
|
|
368
|
+
amount: developerFee
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
await zkAdmin.deploy({
|
|
372
|
+
adminPublicKey: sender,
|
|
373
|
+
tokenContract: tokenAddress,
|
|
374
|
+
verificationKey: adminVerificationKey,
|
|
375
|
+
whitelist,
|
|
376
|
+
totalSupply,
|
|
377
|
+
requireAdminSignatureForMint,
|
|
378
|
+
anyoneCanMint
|
|
379
|
+
});
|
|
380
|
+
if (adminType === "advanced") {
|
|
381
|
+
const adminUpdate = import_o1js2.AccountUpdate.create(adminContractAddress, import_o1js2.TokenId.derive(adminContractAddress));
|
|
382
|
+
zkAdmin.approve(adminUpdate);
|
|
383
|
+
}
|
|
384
|
+
zkAdmin.account.zkappUri.set(uri);
|
|
385
|
+
}
|
|
386
|
+
await zkToken.deploy({
|
|
387
|
+
symbol,
|
|
388
|
+
src: uri,
|
|
389
|
+
verificationKey: tokenVerificationKey,
|
|
390
|
+
allowUpdates: true
|
|
391
|
+
});
|
|
392
|
+
await zkToken.initialize(
|
|
393
|
+
adminContractAddress,
|
|
394
|
+
decimals,
|
|
395
|
+
// We can set `startPaused` to `Bool(false)` here, because we are doing an atomic deployment
|
|
396
|
+
// If you are not deploying the admin and token contracts in the same transaction,
|
|
397
|
+
// it is safer to start the tokens paused, and resume them only after verifying that
|
|
398
|
+
// the admin contract has been deployed
|
|
399
|
+
(0, import_o1js2.Bool)(false)
|
|
400
|
+
);
|
|
401
|
+
});
|
|
402
|
+
return {
|
|
403
|
+
request: adminType === "advanced" ? {
|
|
404
|
+
...args,
|
|
405
|
+
whitelist: whitelist.toString()
|
|
406
|
+
} : args,
|
|
407
|
+
tx,
|
|
408
|
+
adminType,
|
|
409
|
+
verificationKeyHashes: [
|
|
410
|
+
adminVerificationKey.hash,
|
|
411
|
+
tokenVerificationKey.hash
|
|
412
|
+
]
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
async function buildTokenTransaction(params) {
|
|
416
|
+
const { chain, args } = params;
|
|
417
|
+
const { nonce, txType } = args;
|
|
418
|
+
if (nonce === void 0)
|
|
419
|
+
throw new Error("Nonce is required");
|
|
420
|
+
if (typeof nonce !== "number")
|
|
421
|
+
throw new Error("Nonce must be a number");
|
|
422
|
+
if (txType === void 0)
|
|
423
|
+
throw new Error("Tx type is required");
|
|
424
|
+
if (typeof txType !== "string")
|
|
425
|
+
throw new Error("Tx type must be a string");
|
|
426
|
+
const sender = import_o1js2.PublicKey.fromBase58(args.sender);
|
|
427
|
+
const tokenAddress = import_o1js2.PublicKey.fromBase58(args.tokenAddress);
|
|
428
|
+
const offerAddress = "offerAddress" in args && args.offerAddress ? import_o1js2.PublicKey.fromBase58(args.offerAddress) : void 0;
|
|
429
|
+
if (!offerAddress && (txType === "token:offer:create" || txType === "token:offer:buy" || txType === "token:offer:withdraw"))
|
|
430
|
+
throw new Error("Offer address is required");
|
|
431
|
+
const bidAddress = "bidAddress" in args && args.bidAddress ? import_o1js2.PublicKey.fromBase58(args.bidAddress) : void 0;
|
|
432
|
+
if (!bidAddress && (txType === "token:bid:create" || txType === "token:bid:sell" || txType === "token:bid:withdraw"))
|
|
433
|
+
throw new Error("Bid address is required");
|
|
434
|
+
const to = "to" in args && args.to ? import_o1js2.PublicKey.fromBase58(args.to) : void 0;
|
|
435
|
+
if (!to && (txType === "token:transfer" || txType === "token:airdrop" || txType === "token:mint"))
|
|
436
|
+
throw new Error("To address is required");
|
|
437
|
+
const from = "from" in args && args.from ? import_o1js2.PublicKey.fromBase58(args.from) : void 0;
|
|
438
|
+
if (!from && txType === "token:burn")
|
|
439
|
+
throw new Error("From address is required for token:burn");
|
|
440
|
+
const amount = "amount" in args ? import_o1js2.UInt64.from(Math.round(args.amount)) : void 0;
|
|
441
|
+
const price = "price" in args && args.price ? import_o1js2.UInt64.from(Math.round(args.price)) : void 0;
|
|
442
|
+
const slippage = import_o1js2.UInt32.from(Math.round("slippage" in args && args.slippage !== void 0 ? args.slippage : 50));
|
|
443
|
+
await fetchMinaAccount({
|
|
444
|
+
publicKey: sender,
|
|
445
|
+
force: true
|
|
446
|
+
});
|
|
447
|
+
if (!import_o1js2.Mina.hasAccount(sender)) {
|
|
448
|
+
throw new Error("Sender does not have account");
|
|
449
|
+
}
|
|
450
|
+
const { symbol, adminContractAddress, adminAddress, adminType, isToNewAccount, verificationKeyHashes } = await getTokenSymbolAndAdmin({
|
|
451
|
+
txType,
|
|
452
|
+
tokenAddress,
|
|
453
|
+
chain,
|
|
454
|
+
to,
|
|
455
|
+
offerAddress,
|
|
456
|
+
bidAddress
|
|
457
|
+
});
|
|
458
|
+
const memo = args.memo ?? `${txType} ${symbol}`;
|
|
459
|
+
const fee = 1e8;
|
|
460
|
+
const provingKey = params.provingKey ? import_o1js2.PublicKey.fromBase58(params.provingKey) : sender;
|
|
461
|
+
const provingFee = params.provingFee ? import_o1js2.UInt64.from(Math.round(params.provingFee)) : void 0;
|
|
462
|
+
const developerFee = args.developerFee ? import_o1js2.UInt64.from(Math.round(args.developerFee)) : void 0;
|
|
463
|
+
const developerAddress = params.developerAddress ? import_o1js2.PublicKey.fromBase58(params.developerAddress) : void 0;
|
|
464
|
+
const advancedAdminContract = new import_token.FungibleTokenAdvancedAdmin(adminContractAddress);
|
|
465
|
+
const bondingCurveAdminContract = new import_token.FungibleTokenBondingCurveAdmin(adminContractAddress);
|
|
466
|
+
const tokenContract = adminType === "advanced" && txType === "token:mint" ? import_token.AdvancedFungibleToken : adminType === "bondingCurve" && (txType === "token:mint" || txType === "token:redeem") ? import_token.BondingCurveFungibleToken : import_token.FungibleToken;
|
|
467
|
+
if ((txType === "token:admin:whitelist" || txType === "token:bid:whitelist" || txType === "token:offer:whitelist") && !args.whitelist) {
|
|
468
|
+
throw new Error("Whitelist is required");
|
|
469
|
+
}
|
|
470
|
+
const whitelist = "whitelist" in args && args.whitelist ? typeof args.whitelist === "string" ? import_storage.Whitelist.fromString(args.whitelist) : (await import_storage.Whitelist.create({ list: args.whitelist, name: symbol })).whitelist : import_storage.Whitelist.empty();
|
|
471
|
+
const zkToken = new tokenContract(tokenAddress);
|
|
472
|
+
const tokenId = zkToken.deriveTokenId();
|
|
473
|
+
if (txType === "token:mint" && adminType === "standard" && adminAddress.toBase58() !== sender.toBase58())
|
|
474
|
+
throw new Error("Invalid sender for FungibleToken mint with standard admin");
|
|
475
|
+
await fetchMinaAccount({
|
|
476
|
+
publicKey: sender,
|
|
477
|
+
tokenId,
|
|
478
|
+
force: [
|
|
479
|
+
"token:transfer",
|
|
480
|
+
"token:airdrop"
|
|
481
|
+
].includes(txType)
|
|
482
|
+
});
|
|
483
|
+
if (to) {
|
|
484
|
+
await fetchMinaAccount({
|
|
485
|
+
publicKey: to,
|
|
486
|
+
tokenId,
|
|
487
|
+
force: false
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
if (from) {
|
|
491
|
+
await fetchMinaAccount({
|
|
492
|
+
publicKey: from,
|
|
493
|
+
tokenId,
|
|
494
|
+
force: false
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
if (offerAddress)
|
|
498
|
+
await fetchMinaAccount({
|
|
499
|
+
publicKey: offerAddress,
|
|
500
|
+
tokenId,
|
|
501
|
+
force: [
|
|
502
|
+
"token:offer:whitelist",
|
|
503
|
+
"token:offer:buy",
|
|
504
|
+
"token:offer:withdraw"
|
|
505
|
+
].includes(txType)
|
|
506
|
+
});
|
|
507
|
+
if (bidAddress)
|
|
508
|
+
await fetchMinaAccount({
|
|
509
|
+
publicKey: bidAddress,
|
|
510
|
+
force: [
|
|
511
|
+
"token:bid:whitelist",
|
|
512
|
+
"token:bid:sell",
|
|
513
|
+
"token:bid:withdraw"
|
|
514
|
+
].includes(txType)
|
|
515
|
+
});
|
|
516
|
+
const offerContract = offerAddress ? new import_token.FungibleTokenOfferContract(offerAddress, tokenId) : void 0;
|
|
517
|
+
const bidContract = bidAddress ? new import_token.FungibleTokenBidContract(bidAddress) : void 0;
|
|
518
|
+
const offerContractDeployment = offerAddress ? new import_token.FungibleTokenOfferContract(offerAddress, tokenId) : void 0;
|
|
519
|
+
const bidContractDeployment = bidAddress ? new import_token.FungibleTokenBidContract(bidAddress) : void 0;
|
|
520
|
+
const vk = tokenVerificationKeys[chain === "mainnet" ? "mainnet" : "devnet"].vk;
|
|
521
|
+
if (!vk || !vk.FungibleTokenOfferContract || !vk.FungibleTokenOfferContract.hash || !vk.FungibleTokenOfferContract.data || !vk.FungibleTokenBidContract || !vk.FungibleTokenBidContract.hash || !vk.FungibleTokenBidContract.data || !vk.FungibleTokenAdvancedAdmin || !vk.FungibleTokenAdvancedAdmin.hash || !vk.FungibleTokenAdvancedAdmin.data || !vk.FungibleTokenBondingCurveAdmin || !vk.FungibleTokenBondingCurveAdmin.hash || !vk.FungibleTokenBondingCurveAdmin.data || !vk.FungibleTokenAdmin || !vk.FungibleTokenAdmin.hash || !vk.FungibleTokenAdmin.data || !vk.AdvancedFungibleToken || !vk.AdvancedFungibleToken.hash || !vk.AdvancedFungibleToken.data || !vk.FungibleToken || !vk.FungibleToken.hash || !vk.FungibleToken.data)
|
|
522
|
+
throw new Error("Cannot get verification key from vk");
|
|
523
|
+
const offerVerificationKey = import_token.FungibleTokenOfferContract._verificationKey ?? {
|
|
524
|
+
hash: (0, import_o1js2.Field)(vk.FungibleTokenOfferContract.hash),
|
|
525
|
+
data: vk.FungibleTokenOfferContract.data
|
|
526
|
+
};
|
|
527
|
+
const bidVerificationKey = import_token.FungibleTokenBidContract._verificationKey ?? {
|
|
528
|
+
hash: (0, import_o1js2.Field)(vk.FungibleTokenBidContract.hash),
|
|
529
|
+
data: vk.FungibleTokenBidContract.data
|
|
530
|
+
};
|
|
531
|
+
const isNewBidOfferAccount = txType === "token:offer:create" && offerAddress ? !import_o1js2.Mina.hasAccount(offerAddress, tokenId) : txType === "token:bid:create" && bidAddress ? !import_o1js2.Mina.hasAccount(bidAddress) : false;
|
|
532
|
+
const isNewBuyAccount = txType === "token:offer:buy" ? !import_o1js2.Mina.hasAccount(sender, tokenId) : false;
|
|
533
|
+
let isNewSellAccount = false;
|
|
534
|
+
if (txType === "token:bid:sell") {
|
|
535
|
+
if (!bidAddress || !bidContract)
|
|
536
|
+
throw new Error("Bid address is required");
|
|
537
|
+
await fetchMinaAccount({
|
|
538
|
+
publicKey: bidAddress,
|
|
539
|
+
force: true
|
|
540
|
+
});
|
|
541
|
+
const buyer = bidContract.buyer.get();
|
|
542
|
+
await fetchMinaAccount({
|
|
543
|
+
publicKey: buyer,
|
|
544
|
+
tokenId,
|
|
545
|
+
force: false
|
|
546
|
+
});
|
|
547
|
+
isNewSellAccount = !import_o1js2.Mina.hasAccount(buyer, tokenId);
|
|
548
|
+
}
|
|
549
|
+
if (txType === "token:burn") {
|
|
550
|
+
await fetchMinaAccount({
|
|
551
|
+
publicKey: sender,
|
|
552
|
+
force: true
|
|
553
|
+
});
|
|
554
|
+
await fetchMinaAccount({
|
|
555
|
+
publicKey: sender,
|
|
556
|
+
tokenId,
|
|
557
|
+
force: false
|
|
558
|
+
});
|
|
559
|
+
if (!import_o1js2.Mina.hasAccount(sender, tokenId))
|
|
560
|
+
throw new Error("Sender does not have tokens to burn");
|
|
561
|
+
}
|
|
562
|
+
const isNewTransferMintAccount = (txType === "token:transfer" || txType === "token:airdrop" || txType === "token:mint") && to ? !import_o1js2.Mina.hasAccount(to, tokenId) : false;
|
|
563
|
+
const accountCreationFee = (isNewBidOfferAccount ? 1e9 : 0) + (isNewBuyAccount ? 1e9 : 0) + (isNewSellAccount ? 1e9 : 0) + (isNewTransferMintAccount ? 1e9 : 0) + (isToNewAccount && txType === "token:mint" && adminType === "advanced" && advancedAdminContract.whitelist.get().isSome().toBoolean() ? 1e9 : 0);
|
|
564
|
+
console.log("accountCreationFee", accountCreationFee / 1e9);
|
|
565
|
+
switch (txType) {
|
|
566
|
+
case "token:offer:buy":
|
|
567
|
+
case "token:offer:withdraw":
|
|
568
|
+
case "token:offer:whitelist":
|
|
569
|
+
if (offerContract === void 0)
|
|
570
|
+
throw new Error("Offer contract is required");
|
|
571
|
+
if (import_o1js2.Mina.getAccount(offerContract.address, tokenId).zkapp?.verificationKey?.hash.toJSON() !== vk.FungibleTokenOfferContract.hash)
|
|
572
|
+
throw new Error("Invalid offer verification key, offer contract has to be upgraded");
|
|
573
|
+
break;
|
|
574
|
+
}
|
|
575
|
+
switch (txType) {
|
|
576
|
+
case "token:bid:sell":
|
|
577
|
+
case "token:bid:withdraw":
|
|
578
|
+
case "token:bid:whitelist":
|
|
579
|
+
if (bidContract === void 0)
|
|
580
|
+
throw new Error("Bid contract is required");
|
|
581
|
+
if (import_o1js2.Mina.getAccount(bidContract.address).zkapp?.verificationKey?.hash.toJSON() !== vk.FungibleTokenBidContract.hash)
|
|
582
|
+
throw new Error("Invalid bid verification key, bid contract has to be upgraded");
|
|
583
|
+
break;
|
|
584
|
+
}
|
|
585
|
+
switch (txType) {
|
|
586
|
+
case "token:mint":
|
|
587
|
+
case "token:burn":
|
|
588
|
+
case "token:redeem":
|
|
589
|
+
case "token:transfer":
|
|
590
|
+
case "token:airdrop":
|
|
591
|
+
case "token:offer:create":
|
|
592
|
+
case "token:bid:create":
|
|
593
|
+
case "token:offer:buy":
|
|
594
|
+
case "token:offer:withdraw":
|
|
595
|
+
case "token:bid:sell":
|
|
596
|
+
if (import_o1js2.Mina.getAccount(zkToken.address).zkapp?.verificationKey?.hash.toJSON() !== vk.FungibleToken.hash)
|
|
597
|
+
throw new Error("Invalid token verification key, token contract has to be upgraded");
|
|
598
|
+
break;
|
|
599
|
+
}
|
|
600
|
+
const tx = await import_o1js2.Mina.transaction({ sender, fee, memo, nonce }, async () => {
|
|
601
|
+
if (adminType !== "bondingCurve" || txType !== "token:mint" && txType !== "token:redeem") {
|
|
602
|
+
const feeAccountUpdate = import_o1js2.AccountUpdate.createSigned(sender);
|
|
603
|
+
if (accountCreationFee > 0) {
|
|
604
|
+
feeAccountUpdate.balance.subInPlace(accountCreationFee);
|
|
605
|
+
}
|
|
606
|
+
if (provingKey && provingFee)
|
|
607
|
+
feeAccountUpdate.send({
|
|
608
|
+
to: provingKey,
|
|
609
|
+
amount: provingFee
|
|
610
|
+
});
|
|
611
|
+
if (developerAddress && developerFee) {
|
|
612
|
+
feeAccountUpdate.send({
|
|
613
|
+
to: developerAddress,
|
|
614
|
+
amount: developerFee
|
|
615
|
+
});
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
switch (txType) {
|
|
619
|
+
case "token:mint":
|
|
620
|
+
if (amount === void 0)
|
|
621
|
+
throw new Error("Error: Amount is required");
|
|
622
|
+
if (to === void 0)
|
|
623
|
+
throw new Error("Error: To address is required");
|
|
624
|
+
if (adminType === "bondingCurve") {
|
|
625
|
+
if (price === void 0)
|
|
626
|
+
throw new Error("Error: Price is required for bonding curve mint");
|
|
627
|
+
await bondingCurveAdminContract.mint(to, amount, price);
|
|
628
|
+
} else {
|
|
629
|
+
await zkToken.mint(to, amount);
|
|
630
|
+
}
|
|
631
|
+
break;
|
|
632
|
+
case "token:redeem":
|
|
633
|
+
if (adminType !== "bondingCurve")
|
|
634
|
+
throw new Error("Error: Invalid admin type for redeem");
|
|
635
|
+
if (amount === void 0)
|
|
636
|
+
throw new Error("Error: Amount is required");
|
|
637
|
+
if (price === void 0)
|
|
638
|
+
throw new Error("Error: Price is required");
|
|
639
|
+
if (slippage === void 0)
|
|
640
|
+
throw new Error("Error: Slippage is required");
|
|
641
|
+
await bondingCurveAdminContract.redeem(amount, price, slippage);
|
|
642
|
+
break;
|
|
643
|
+
case "token:transfer":
|
|
644
|
+
if (amount === void 0)
|
|
645
|
+
throw new Error("Error: Amount is required");
|
|
646
|
+
if (to === void 0)
|
|
647
|
+
throw new Error("Error: From address is required");
|
|
648
|
+
await zkToken.transfer(sender, to, amount);
|
|
649
|
+
break;
|
|
650
|
+
case "token:burn":
|
|
651
|
+
if (amount === void 0)
|
|
652
|
+
throw new Error("Error: Amount is required");
|
|
653
|
+
if (from === void 0)
|
|
654
|
+
throw new Error("Error: From address is required");
|
|
655
|
+
await zkToken.burn(from, amount);
|
|
656
|
+
break;
|
|
657
|
+
case "token:offer:create":
|
|
658
|
+
if (price === void 0)
|
|
659
|
+
throw new Error("Error: Price is required");
|
|
660
|
+
if (amount === void 0)
|
|
661
|
+
throw new Error("Error: Amount is required");
|
|
662
|
+
if (offerContract === void 0)
|
|
663
|
+
throw new Error("Error: Offer address is required");
|
|
664
|
+
if (offerContractDeployment === void 0)
|
|
665
|
+
throw new Error("Error: Offer address is required");
|
|
666
|
+
if (isNewBidOfferAccount) {
|
|
667
|
+
await offerContractDeployment.deploy({
|
|
668
|
+
verificationKey: offerVerificationKey,
|
|
669
|
+
whitelist: whitelist ?? import_storage.Whitelist.empty()
|
|
670
|
+
});
|
|
671
|
+
offerContract.account.zkappUri.set(`Offer for ${symbol}`);
|
|
672
|
+
await offerContract.initialize(sender, tokenAddress, amount, price);
|
|
673
|
+
await zkToken.approveAccountUpdates([
|
|
674
|
+
offerContractDeployment.self,
|
|
675
|
+
offerContract.self
|
|
676
|
+
]);
|
|
677
|
+
} else {
|
|
678
|
+
await offerContract.offer(amount, price);
|
|
679
|
+
await zkToken.approveAccountUpdate(offerContract.self);
|
|
680
|
+
}
|
|
681
|
+
break;
|
|
682
|
+
case "token:offer:buy":
|
|
683
|
+
if (amount === void 0)
|
|
684
|
+
throw new Error("Error: Amount is required");
|
|
685
|
+
if (offerContract === void 0)
|
|
686
|
+
throw new Error("Error: Offer address is required");
|
|
687
|
+
await offerContract.buy(amount);
|
|
688
|
+
await zkToken.approveAccountUpdate(offerContract.self);
|
|
689
|
+
break;
|
|
690
|
+
case "token:offer:withdraw":
|
|
691
|
+
if (amount === void 0)
|
|
692
|
+
throw new Error("Error: Amount is required");
|
|
693
|
+
if (offerContract === void 0)
|
|
694
|
+
throw new Error("Error: Offer address is required");
|
|
695
|
+
await offerContract.withdraw(amount);
|
|
696
|
+
await zkToken.approveAccountUpdate(offerContract.self);
|
|
697
|
+
break;
|
|
698
|
+
case "token:bid:create":
|
|
699
|
+
if (price === void 0)
|
|
700
|
+
throw new Error("Error: Price is required");
|
|
701
|
+
if (amount === void 0)
|
|
702
|
+
throw new Error("Error: Amount is required");
|
|
703
|
+
if (bidContract === void 0)
|
|
704
|
+
throw new Error("Error: Bid address is required");
|
|
705
|
+
if (bidContractDeployment === void 0)
|
|
706
|
+
throw new Error("Error: Bid address is required");
|
|
707
|
+
if (isNewBidOfferAccount) {
|
|
708
|
+
await bidContractDeployment.deploy({
|
|
709
|
+
verificationKey: bidVerificationKey,
|
|
710
|
+
whitelist: whitelist ?? import_storage.Whitelist.empty()
|
|
711
|
+
});
|
|
712
|
+
bidContract.account.zkappUri.set(`Bid for ${symbol}`);
|
|
713
|
+
await bidContract.initialize(tokenAddress, amount, price);
|
|
714
|
+
await zkToken.approveAccountUpdates([
|
|
715
|
+
bidContractDeployment.self,
|
|
716
|
+
bidContract.self
|
|
717
|
+
]);
|
|
718
|
+
} else {
|
|
719
|
+
await bidContract.bid(amount, price);
|
|
720
|
+
await zkToken.approveAccountUpdate(bidContract.self);
|
|
721
|
+
}
|
|
722
|
+
break;
|
|
723
|
+
case "token:bid:sell":
|
|
724
|
+
if (amount === void 0)
|
|
725
|
+
throw new Error("Error: Amount is required");
|
|
726
|
+
if (bidContract === void 0)
|
|
727
|
+
throw new Error("Error: Bid address is required");
|
|
728
|
+
await bidContract.sell(amount);
|
|
729
|
+
await zkToken.approveAccountUpdate(bidContract.self);
|
|
730
|
+
break;
|
|
731
|
+
case "token:bid:withdraw":
|
|
732
|
+
if (amount === void 0)
|
|
733
|
+
throw new Error("Error: Amount is required");
|
|
734
|
+
if (bidContract === void 0)
|
|
735
|
+
throw new Error("Error: Bid address is required");
|
|
736
|
+
await bidContract.withdraw(amount);
|
|
737
|
+
break;
|
|
738
|
+
case "token:admin:whitelist":
|
|
739
|
+
if (adminType !== "advanced")
|
|
740
|
+
throw new Error("Invalid admin type for updateAdminWhitelist");
|
|
741
|
+
await advancedAdminContract.updateWhitelist(whitelist);
|
|
742
|
+
break;
|
|
743
|
+
case "token:bid:whitelist":
|
|
744
|
+
if (bidContract === void 0)
|
|
745
|
+
throw new Error("Error: Bid address is required");
|
|
746
|
+
await bidContract.updateWhitelist(whitelist);
|
|
747
|
+
break;
|
|
748
|
+
case "token:offer:whitelist":
|
|
749
|
+
if (offerContract === void 0)
|
|
750
|
+
throw new Error("Error: Offer address is required");
|
|
751
|
+
await offerContract.updateWhitelist(whitelist);
|
|
752
|
+
break;
|
|
753
|
+
default:
|
|
754
|
+
throw new Error(`Unknown transaction type: ${txType}`);
|
|
755
|
+
}
|
|
756
|
+
});
|
|
757
|
+
return {
|
|
758
|
+
request: txType === "token:offer:create" || txType === "token:bid:create" || txType === "token:offer:whitelist" || txType === "token:bid:whitelist" || txType === "token:admin:whitelist" ? {
|
|
759
|
+
...args,
|
|
760
|
+
whitelist: whitelist?.toString()
|
|
761
|
+
} : args,
|
|
762
|
+
tx,
|
|
763
|
+
adminType,
|
|
764
|
+
adminContractAddress,
|
|
765
|
+
adminAddress,
|
|
766
|
+
symbol,
|
|
767
|
+
verificationKeyHashes
|
|
768
|
+
};
|
|
769
|
+
}
|
|
770
|
+
async function getTokenSymbolAndAdmin(params) {
|
|
771
|
+
const { txType, tokenAddress, chain, to, offerAddress, bidAddress } = params;
|
|
772
|
+
const vk = tokenVerificationKeys[chain === "mainnet" ? "mainnet" : "devnet"].vk;
|
|
773
|
+
let verificationKeyHashes = [];
|
|
774
|
+
if (bidAddress) {
|
|
775
|
+
verificationKeyHashes.push(vk.FungibleTokenBidContract.hash);
|
|
776
|
+
}
|
|
777
|
+
if (offerAddress) {
|
|
778
|
+
verificationKeyHashes.push(vk.FungibleTokenOfferContract.hash);
|
|
779
|
+
}
|
|
780
|
+
class FungibleTokenState extends (0, import_o1js2.Struct)({
|
|
781
|
+
decimals: import_o1js2.UInt8,
|
|
782
|
+
admin: import_o1js2.PublicKey,
|
|
783
|
+
paused: import_o1js2.Bool
|
|
784
|
+
}) {
|
|
785
|
+
}
|
|
786
|
+
const FungibleTokenStateSize = FungibleTokenState.sizeInFields();
|
|
787
|
+
class FungibleTokenAdminState extends (0, import_o1js2.Struct)({
|
|
788
|
+
adminPublicKey: import_o1js2.PublicKey
|
|
789
|
+
}) {
|
|
790
|
+
}
|
|
791
|
+
const FungibleTokenAdminStateSize = FungibleTokenAdminState.sizeInFields();
|
|
792
|
+
await fetchMinaAccount({ publicKey: tokenAddress, force: true });
|
|
793
|
+
if (!import_o1js2.Mina.hasAccount(tokenAddress)) {
|
|
794
|
+
throw new Error("Token contract account not found");
|
|
795
|
+
}
|
|
796
|
+
const tokenId = import_o1js2.TokenId.derive(tokenAddress);
|
|
797
|
+
await fetchMinaAccount({ publicKey: tokenAddress, tokenId, force: true });
|
|
798
|
+
if (!import_o1js2.Mina.hasAccount(tokenAddress, tokenId)) {
|
|
799
|
+
throw new Error("Token contract totalSupply account not found");
|
|
800
|
+
}
|
|
801
|
+
const account = import_o1js2.Mina.getAccount(tokenAddress);
|
|
802
|
+
const verificationKey = account.zkapp?.verificationKey;
|
|
803
|
+
if (!verificationKey) {
|
|
804
|
+
throw new Error("Token contract verification key not found");
|
|
805
|
+
}
|
|
806
|
+
if (!verificationKeyHashes.includes(verificationKey.hash.toJSON())) {
|
|
807
|
+
verificationKeyHashes.push(verificationKey.hash.toJSON());
|
|
808
|
+
}
|
|
809
|
+
if (account.zkapp?.appState === void 0) {
|
|
810
|
+
throw new Error("Token contract state not found");
|
|
811
|
+
}
|
|
812
|
+
const state = FungibleTokenState.fromFields(account.zkapp?.appState.slice(0, FungibleTokenStateSize));
|
|
813
|
+
const symbol = account.tokenSymbol;
|
|
814
|
+
const adminContractPublicKey = state.admin;
|
|
815
|
+
await fetchMinaAccount({
|
|
816
|
+
publicKey: adminContractPublicKey,
|
|
817
|
+
force: true
|
|
818
|
+
});
|
|
819
|
+
if (!import_o1js2.Mina.hasAccount(adminContractPublicKey)) {
|
|
820
|
+
throw new Error("Admin contract account not found");
|
|
821
|
+
}
|
|
822
|
+
const adminContract = import_o1js2.Mina.getAccount(adminContractPublicKey);
|
|
823
|
+
const adminVerificationKey = adminContract.zkapp?.verificationKey;
|
|
824
|
+
if (!adminVerificationKey) {
|
|
825
|
+
throw new Error("Admin verification key not found");
|
|
826
|
+
}
|
|
827
|
+
if (!verificationKeyHashes.includes(adminVerificationKey.hash.toJSON())) {
|
|
828
|
+
verificationKeyHashes.push(adminVerificationKey.hash.toJSON());
|
|
829
|
+
}
|
|
830
|
+
let adminType = "unknown";
|
|
831
|
+
if (vk.FungibleTokenAdvancedAdmin.hash === adminVerificationKey.hash.toJSON() && vk.FungibleTokenAdvancedAdmin.data === adminVerificationKey.data) {
|
|
832
|
+
adminType = "advanced";
|
|
833
|
+
} else if (vk.FungibleTokenAdmin.hash === adminVerificationKey.hash.toJSON() && vk.FungibleTokenAdmin.data === adminVerificationKey.data) {
|
|
834
|
+
adminType = "standard";
|
|
835
|
+
} else if (vk.FungibleTokenBondingCurveAdmin.hash === adminVerificationKey.hash.toJSON() && vk.FungibleTokenBondingCurveAdmin.data === adminVerificationKey.data) {
|
|
836
|
+
adminType = "bondingCurve";
|
|
837
|
+
} else {
|
|
838
|
+
console.error("Unknown admin verification key", {
|
|
839
|
+
hash: adminVerificationKey.hash.toJSON(),
|
|
840
|
+
symbol,
|
|
841
|
+
address: adminContractPublicKey.toBase58()
|
|
842
|
+
});
|
|
843
|
+
}
|
|
844
|
+
let isToNewAccount = void 0;
|
|
845
|
+
if (to) {
|
|
846
|
+
if (adminType === "advanced") {
|
|
847
|
+
const adminTokenId = import_o1js2.TokenId.derive(adminContractPublicKey);
|
|
848
|
+
await fetchMinaAccount({
|
|
849
|
+
publicKey: to,
|
|
850
|
+
tokenId: adminTokenId,
|
|
851
|
+
force: false
|
|
852
|
+
});
|
|
853
|
+
isToNewAccount = !import_o1js2.Mina.hasAccount(to, adminTokenId);
|
|
854
|
+
}
|
|
855
|
+
if (adminType === "bondingCurve") {
|
|
856
|
+
const adminTokenId = import_o1js2.TokenId.derive(adminContractPublicKey);
|
|
857
|
+
await fetchMinaAccount({
|
|
858
|
+
publicKey: adminContractPublicKey,
|
|
859
|
+
tokenId: adminTokenId,
|
|
860
|
+
force: true
|
|
861
|
+
});
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
const adminAddress0 = adminContract.zkapp?.appState[0];
|
|
865
|
+
const adminAddress1 = adminContract.zkapp?.appState[1];
|
|
866
|
+
if (adminAddress0 === void 0 || adminAddress1 === void 0) {
|
|
867
|
+
throw new Error("Cannot fetch admin address from admin contract");
|
|
868
|
+
}
|
|
869
|
+
const adminAddress = import_o1js2.PublicKey.fromFields([adminAddress0, adminAddress1]);
|
|
870
|
+
for (const hash of verificationKeyHashes) {
|
|
871
|
+
const found = Object.values(vk).some((key) => key.hash === hash);
|
|
872
|
+
if (!found) {
|
|
873
|
+
console.error(`Final check: unknown verification key hash: ${hash}`);
|
|
874
|
+
verificationKeyHashes = verificationKeyHashes.filter((h) => h !== hash);
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
verificationKeyHashes.sort((a, b) => {
|
|
878
|
+
const typeA = Object.values(vk).find((key) => key.hash === a)?.type;
|
|
879
|
+
const typeB = Object.values(vk).find((key) => key.hash === b)?.type;
|
|
880
|
+
if (typeA === void 0 || typeB === void 0) {
|
|
881
|
+
throw new Error("Unknown verification key hash");
|
|
882
|
+
}
|
|
883
|
+
const typeOrder = {
|
|
884
|
+
upgrade: 0,
|
|
885
|
+
nft: 1,
|
|
886
|
+
admin: 2,
|
|
887
|
+
collection: 3,
|
|
888
|
+
token: 4,
|
|
889
|
+
user: 5
|
|
890
|
+
};
|
|
891
|
+
return typeOrder[typeA] - typeOrder[typeB];
|
|
892
|
+
});
|
|
893
|
+
return {
|
|
894
|
+
adminContractAddress: adminContractPublicKey,
|
|
895
|
+
adminAddress,
|
|
896
|
+
symbol,
|
|
897
|
+
adminType,
|
|
898
|
+
isToNewAccount,
|
|
899
|
+
verificationKeyHashes
|
|
900
|
+
};
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
// dist/node/token/contracts.js
|
|
904
|
+
var import_token2 = require("@silvana-one/token");
|
|
905
|
+
var tokenContracts = {
|
|
906
|
+
FungibleToken: import_token2.FungibleToken,
|
|
907
|
+
FungibleTokenAdmin: import_token2.FungibleTokenAdmin,
|
|
908
|
+
AdvancedFungibleToken: import_token2.AdvancedFungibleToken,
|
|
909
|
+
BondingCurveFungibleToken: import_token2.BondingCurveFungibleToken,
|
|
910
|
+
FungibleTokenAdvancedAdmin: import_token2.FungibleTokenAdvancedAdmin,
|
|
911
|
+
FungibleTokenBondingCurveAdmin: import_token2.FungibleTokenBondingCurveAdmin,
|
|
912
|
+
FungibleTokenBidContract: import_token2.FungibleTokenBidContract,
|
|
913
|
+
FungibleTokenOfferContract: import_token2.FungibleTokenOfferContract,
|
|
914
|
+
FungibleTokenClaimContract: import_token2.FungibleTokenClaimContract
|
|
915
|
+
};
|
|
916
|
+
|
|
917
|
+
// dist/node/token/info.js
|
|
918
|
+
var import_o1js4 = require("o1js");
|
|
919
|
+
|
|
920
|
+
// dist/node/info/address.js
|
|
921
|
+
var import_o1js3 = require("o1js");
|
|
922
|
+
async function checkAddress(address) {
|
|
923
|
+
if (!address || typeof address !== "string") {
|
|
924
|
+
console.error("checkAddress params are invalid:", address);
|
|
925
|
+
return false;
|
|
926
|
+
}
|
|
927
|
+
try {
|
|
928
|
+
const publicKey = import_o1js3.PublicKey.fromBase58(address);
|
|
929
|
+
if (address !== publicKey.toBase58()) {
|
|
930
|
+
console.error("checkAddress: address is not valid", address, publicKey.toBase58());
|
|
931
|
+
return false;
|
|
932
|
+
}
|
|
933
|
+
return true;
|
|
934
|
+
} catch (error) {
|
|
935
|
+
console.error("checkAddress catch", { address, error });
|
|
936
|
+
return false;
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
// dist/node/token/info.js
|
|
941
|
+
var import_token3 = require("@silvana-one/token");
|
|
942
|
+
async function getContractInfo(params) {
|
|
943
|
+
const { address, chain, parentTokenId, decimals } = params;
|
|
944
|
+
const vk = tokenVerificationKeys[chain].vk;
|
|
945
|
+
const info = [];
|
|
946
|
+
if (typeof address === "string" && !checkAddress(address)) {
|
|
947
|
+
throw new Error("Invalid address");
|
|
948
|
+
}
|
|
949
|
+
const publicKey = typeof address === "string" ? import_o1js4.PublicKey.fromBase58(address) : address;
|
|
950
|
+
const tokenId = params.tokenId ? typeof params.tokenId === "string" ? import_o1js4.TokenId.fromBase58(params.tokenId) : params.tokenId : void 0;
|
|
951
|
+
await fetchMinaAccount({ publicKey, tokenId, force: false });
|
|
952
|
+
if (!import_o1js4.Mina.hasAccount(publicKey, tokenId)) {
|
|
953
|
+
throw new Error("Account does not exist");
|
|
954
|
+
}
|
|
955
|
+
const account = import_o1js4.Mina.getAccount(publicKey, tokenId);
|
|
956
|
+
if (account.zkapp?.appState === void 0) {
|
|
957
|
+
throw new Error("The account is not a zkApp");
|
|
958
|
+
}
|
|
959
|
+
const tokenSymbol = account.tokenSymbol;
|
|
960
|
+
const uri = account.zkapp?.zkappUri;
|
|
961
|
+
const verificationKey = account.zkapp?.verificationKey?.data;
|
|
962
|
+
const verificationKeyHash = account.zkapp?.verificationKey?.hash.toJSON();
|
|
963
|
+
const versionData = account.zkapp?.zkappVersion;
|
|
964
|
+
const version = Number(versionData.toBigint());
|
|
965
|
+
const name = Object.keys(vk).find((key) => vk[key].hash === verificationKeyHash);
|
|
966
|
+
const derivedTokenId = import_o1js4.TokenId.derive(publicKey, tokenId);
|
|
967
|
+
const info0 = {
|
|
968
|
+
name: { type: "name", value: name ?? "unknown" },
|
|
969
|
+
address: { type: "address", value: publicKey.toBase58() },
|
|
970
|
+
tokenId: {
|
|
971
|
+
type: "tokenId",
|
|
972
|
+
value: import_o1js4.TokenId.toBase58(tokenId ?? import_o1js4.Field.from(1))
|
|
973
|
+
},
|
|
974
|
+
derivedTokenId: {
|
|
975
|
+
type: "tokenId",
|
|
976
|
+
value: import_o1js4.TokenId.toBase58(derivedTokenId)
|
|
977
|
+
},
|
|
978
|
+
symbol: { type: "symbol", value: tokenSymbol },
|
|
979
|
+
uri: { type: "uri", value: uri },
|
|
980
|
+
verificationKey: { type: "verificationKey", value: verificationKey ?? "" },
|
|
981
|
+
verificationKeyHash: {
|
|
982
|
+
type: "verificationKeyHash",
|
|
983
|
+
value: verificationKeyHash ?? ""
|
|
984
|
+
},
|
|
985
|
+
zkappVersion: { type: "zkappVersion", value: version.toString() }
|
|
986
|
+
};
|
|
987
|
+
switch (name) {
|
|
988
|
+
case "FungibleToken":
|
|
989
|
+
case "AdvancedFungibleToken":
|
|
990
|
+
{
|
|
991
|
+
const zkApp = new import_token3.FungibleToken(publicKey, tokenId);
|
|
992
|
+
const admin = zkApp.admin.get();
|
|
993
|
+
const decimals2 = zkApp.decimals.get();
|
|
994
|
+
const paused = zkApp.paused.get();
|
|
995
|
+
const zkAppTokenId = zkApp.deriveTokenId();
|
|
996
|
+
if (import_o1js4.TokenId.toBase58(zkAppTokenId) !== info0.derivedTokenId.value) {
|
|
997
|
+
throw new Error("Derived tokenId does not match");
|
|
998
|
+
}
|
|
999
|
+
await fetchMinaAccount({
|
|
1000
|
+
publicKey,
|
|
1001
|
+
tokenId: zkAppTokenId,
|
|
1002
|
+
force: false
|
|
1003
|
+
});
|
|
1004
|
+
const totalSupply = import_o1js4.Mina.getBalance(publicKey, zkAppTokenId).toBigInt();
|
|
1005
|
+
info0.admin = { type: "address", value: admin.toBase58() };
|
|
1006
|
+
info0.decimals = {
|
|
1007
|
+
type: "number",
|
|
1008
|
+
value: decimals2.toNumber().toString()
|
|
1009
|
+
};
|
|
1010
|
+
info0.paused = {
|
|
1011
|
+
type: "boolean",
|
|
1012
|
+
value: paused.toBoolean().toString()
|
|
1013
|
+
};
|
|
1014
|
+
info0.totalSupply = {
|
|
1015
|
+
type: "bigint",
|
|
1016
|
+
value: totalSupply.toString(),
|
|
1017
|
+
presentation: formatBalanceInternal(Number(totalSupply / BigInt(10 ** decimals2.toNumber())))
|
|
1018
|
+
};
|
|
1019
|
+
const info1 = await getContractInfo({
|
|
1020
|
+
address: admin,
|
|
1021
|
+
parentTokenId: zkAppTokenId,
|
|
1022
|
+
decimals: decimals2.toNumber(),
|
|
1023
|
+
chain
|
|
1024
|
+
});
|
|
1025
|
+
info.push(...info1);
|
|
1026
|
+
}
|
|
1027
|
+
break;
|
|
1028
|
+
case "FungibleTokenAdmin":
|
|
1029
|
+
{
|
|
1030
|
+
const adminAddress0 = account.zkapp?.appState[0];
|
|
1031
|
+
const adminAddress1 = account.zkapp?.appState[1];
|
|
1032
|
+
if (adminAddress0 === void 0 || adminAddress1 === void 0) {
|
|
1033
|
+
throw new Error("Cannot fetch admin address from admin contract");
|
|
1034
|
+
}
|
|
1035
|
+
const adminAddress = import_o1js4.PublicKey.fromFields([
|
|
1036
|
+
adminAddress0,
|
|
1037
|
+
adminAddress1
|
|
1038
|
+
]);
|
|
1039
|
+
let adminTokenBalance = 0n;
|
|
1040
|
+
if (parentTokenId) {
|
|
1041
|
+
try {
|
|
1042
|
+
await fetchMinaAccount({
|
|
1043
|
+
publicKey: adminAddress,
|
|
1044
|
+
tokenId: parentTokenId,
|
|
1045
|
+
force: false
|
|
1046
|
+
});
|
|
1047
|
+
adminTokenBalance = import_o1js4.Mina.getBalance(adminAddress, parentTokenId).toBigInt();
|
|
1048
|
+
} catch (error) {
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
info0.admin = { type: "address", value: adminAddress.toBase58() };
|
|
1052
|
+
info0.adminTokenBalance = {
|
|
1053
|
+
type: "bigint",
|
|
1054
|
+
value: adminTokenBalance.toString(),
|
|
1055
|
+
presentation: formatBalanceInternal(Number(adminTokenBalance / BigInt(1 << (decimals ?? 9))))
|
|
1056
|
+
};
|
|
1057
|
+
}
|
|
1058
|
+
break;
|
|
1059
|
+
}
|
|
1060
|
+
info.push(info0);
|
|
1061
|
+
return info;
|
|
1062
|
+
}
|
|
1063
|
+
function formatBalanceInternal(num) {
|
|
1064
|
+
const fixed = num.toFixed(2);
|
|
1065
|
+
return fixed.endsWith(".00") ? fixed.slice(0, -3) : fixed;
|
|
1066
|
+
}
|
|
1067
|
+
async function tokenBalance(params) {
|
|
1068
|
+
const { tokenAddress, address } = params;
|
|
1069
|
+
if (!address || !checkAddress(address)) {
|
|
1070
|
+
throw new Error("Invalid address");
|
|
1071
|
+
}
|
|
1072
|
+
if (tokenAddress && !checkAddress(tokenAddress)) {
|
|
1073
|
+
throw new Error("Invalid token address");
|
|
1074
|
+
}
|
|
1075
|
+
const tokenContractPublicKey = tokenAddress ? import_o1js4.PublicKey.fromBase58(tokenAddress) : void 0;
|
|
1076
|
+
const publicKey = import_o1js4.PublicKey.fromBase58(address);
|
|
1077
|
+
const tokenIdDerived = tokenContractPublicKey ? import_o1js4.TokenId.derive(tokenContractPublicKey) : void 0;
|
|
1078
|
+
if (tokenIdDerived && params.tokenId && import_o1js4.TokenId.toBase58(tokenIdDerived) !== params.tokenId) {
|
|
1079
|
+
throw new Error("TokenId does not match tokenAddress");
|
|
1080
|
+
}
|
|
1081
|
+
const tokenId = tokenIdDerived ?? (params.tokenId ? import_o1js4.TokenId.fromBase58(params.tokenId) : void 0);
|
|
1082
|
+
try {
|
|
1083
|
+
await fetchMinaAccount({
|
|
1084
|
+
publicKey,
|
|
1085
|
+
tokenId,
|
|
1086
|
+
force: false
|
|
1087
|
+
});
|
|
1088
|
+
return {
|
|
1089
|
+
tokenAddress,
|
|
1090
|
+
address,
|
|
1091
|
+
tokenId: tokenId ? import_o1js4.TokenId.toBase58(tokenId) : void 0,
|
|
1092
|
+
balance: import_o1js4.Mina.hasAccount(publicKey, tokenId) ? Number(import_o1js4.Mina.getAccount(publicKey, tokenId).balance.toBigInt()) : null
|
|
1093
|
+
};
|
|
1094
|
+
} catch (error) {
|
|
1095
|
+
console.error("Cannot fetch account balance", params, error);
|
|
1096
|
+
return {
|
|
1097
|
+
tokenAddress,
|
|
1098
|
+
address,
|
|
1099
|
+
tokenId: tokenId ? import_o1js4.TokenId.toBase58(tokenId) : void 0,
|
|
1100
|
+
balance: null
|
|
1101
|
+
};
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
1105
|
+
0 && (module.exports = {
|
|
1106
|
+
LAUNCH_FEE,
|
|
1107
|
+
TRANSACTION_FEE,
|
|
1108
|
+
buildTokenLaunchTransaction,
|
|
1109
|
+
buildTokenTransaction,
|
|
1110
|
+
checkAddress,
|
|
1111
|
+
devnet,
|
|
1112
|
+
fetchMinaAccount,
|
|
1113
|
+
getContractInfo,
|
|
1114
|
+
getTokenSymbolAndAdmin,
|
|
1115
|
+
mainnet,
|
|
1116
|
+
tokenBalance,
|
|
1117
|
+
tokenContracts,
|
|
1118
|
+
tokenVerificationKeys
|
|
1119
|
+
});
|