@silvana-one/coordination 1.0.23 → 1.0.25

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 (54) hide show
  1. package/dist/node/build.d.ts +5 -0
  2. package/dist/node/build.js +21 -0
  3. package/dist/node/build.js.map +1 -0
  4. package/dist/node/faucet.d.ts +34 -0
  5. package/dist/node/faucet.js +91 -0
  6. package/dist/node/faucet.js.map +1 -0
  7. package/dist/node/index.cjs +337 -4
  8. package/dist/node/index.d.ts +5 -0
  9. package/dist/node/index.js +5 -0
  10. package/dist/node/index.js.map +1 -1
  11. package/dist/node/ipfs.d.ts +13 -0
  12. package/dist/node/ipfs.js +88 -0
  13. package/dist/node/ipfs.js.map +1 -0
  14. package/dist/node/public-key.d.ts +24 -0
  15. package/dist/node/public-key.js +44 -0
  16. package/dist/node/public-key.js.map +1 -0
  17. package/dist/node/publish.js.map +1 -1
  18. package/dist/node/upgrade.js +1 -12
  19. package/dist/node/upgrade.js.map +1 -1
  20. package/dist/node/walrus.d.ts +12 -0
  21. package/dist/node/walrus.js +73 -0
  22. package/dist/node/walrus.js.map +1 -0
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/dist/tsconfig.web.tsbuildinfo +1 -1
  25. package/dist/web/build.d.ts +5 -0
  26. package/dist/web/build.js +21 -0
  27. package/dist/web/build.js.map +1 -0
  28. package/dist/web/faucet.d.ts +34 -0
  29. package/dist/web/faucet.js +91 -0
  30. package/dist/web/faucet.js.map +1 -0
  31. package/dist/web/index.d.ts +5 -0
  32. package/dist/web/index.js +5 -0
  33. package/dist/web/index.js.map +1 -1
  34. package/dist/web/ipfs.d.ts +13 -0
  35. package/dist/web/ipfs.js +88 -0
  36. package/dist/web/ipfs.js.map +1 -0
  37. package/dist/web/public-key.d.ts +24 -0
  38. package/dist/web/public-key.js +44 -0
  39. package/dist/web/public-key.js.map +1 -0
  40. package/dist/web/publish.js.map +1 -1
  41. package/dist/web/upgrade.js +1 -12
  42. package/dist/web/upgrade.js.map +1 -1
  43. package/dist/web/walrus.d.ts +12 -0
  44. package/dist/web/walrus.js +73 -0
  45. package/dist/web/walrus.js.map +1 -0
  46. package/package.json +6 -5
  47. package/src/build.ts +33 -0
  48. package/src/faucet.ts +145 -0
  49. package/src/index.ts +5 -0
  50. package/src/ipfs.ts +105 -0
  51. package/src/public-key.ts +66 -0
  52. package/src/publish.ts +0 -2
  53. package/src/upgrade.ts +1 -18
  54. package/src/walrus.ts +96 -0
@@ -0,0 +1,5 @@
1
+ export declare function buildMovePackage(path: string): Promise<{
2
+ modules: string[];
3
+ dependencies: string[];
4
+ digest: number[];
5
+ }>;
@@ -0,0 +1,21 @@
1
+ export async function buildMovePackage(path) {
2
+ const { execSync } = await import("child_process");
3
+ let bytes = undefined;
4
+ console.log("Running sui client publish command...");
5
+ try {
6
+ const output = execSync(`sui move build --dump-bytecode-as-base64 --ignore-chain --path ${path}`, {
7
+ encoding: "utf-8",
8
+ });
9
+ bytes = JSON.parse(output);
10
+ if (!bytes) {
11
+ throw new Error("Error building package");
12
+ }
13
+ return bytes;
14
+ //console.log("Command output:", bytes);
15
+ }
16
+ catch (error) {
17
+ console.error("Error running command:", error);
18
+ throw error;
19
+ }
20
+ }
21
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/build.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAKjD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,KAAK,GAMO,SAAS,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CACrB,kEAAkE,IAAI,EAAE,EACxE;YACE,QAAQ,EAAE,OAAO;SAClB,CACF,CAAC;QACF,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC;QACb,wCAAwC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ export declare function silvanaFaucet(params: {
2
+ address: string;
3
+ amount?: number;
4
+ }): Promise<{
5
+ message: string;
6
+ success: true;
7
+ transaction_hash: string;
8
+ }>;
9
+ export declare function silvanaFaucetGetKey(params?: {
10
+ autoReturn: boolean;
11
+ }): Promise<{
12
+ key_pair: {
13
+ address: string;
14
+ issued_at: string;
15
+ private_key_bech32: string;
16
+ private_key_hex: string;
17
+ public_key: string;
18
+ };
19
+ message: string;
20
+ success: true;
21
+ }>;
22
+ export declare function silvanaFaucetPingKey(params: {
23
+ address: string;
24
+ }): Promise<{
25
+ message: string;
26
+ success: boolean;
27
+ }>;
28
+ export declare function silvanaFaucetReturnKey(params: {
29
+ address?: string;
30
+ secretKey?: string;
31
+ }): Promise<{
32
+ message: string;
33
+ success: boolean;
34
+ }>;
@@ -0,0 +1,91 @@
1
+ "use server";
2
+ import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
3
+ export async function silvanaFaucet(params) {
4
+ const { address, amount = 1 } = params;
5
+ const response = await fetch(`${silvanaFaucetEndpoint()}/fund`, {
6
+ method: "POST",
7
+ headers: {
8
+ "Content-Type": "application/json",
9
+ },
10
+ body: JSON.stringify({
11
+ address,
12
+ amount,
13
+ }),
14
+ });
15
+ if (!response.ok) {
16
+ throw new Error(`Failed to fund address: ${address} ${amount} ${response.status} ${response.statusText}`);
17
+ }
18
+ return response.json();
19
+ }
20
+ export async function silvanaFaucetGetKey(params = {
21
+ autoReturn: false,
22
+ }) {
23
+ const response = await fetch(`${silvanaFaucetEndpoint()}/get_key`, {
24
+ method: "POST",
25
+ headers: {
26
+ "Content-Type": "application/json",
27
+ },
28
+ body: JSON.stringify({
29
+ auto_return: params.autoReturn,
30
+ }),
31
+ });
32
+ if (!response.ok) {
33
+ throw new Error(`Failed to get key: ${response.status} ${response.statusText}`);
34
+ }
35
+ return response.json();
36
+ }
37
+ export async function silvanaFaucetPingKey(params) {
38
+ const { address } = params;
39
+ if (!address) {
40
+ return {
41
+ message: "Address is required",
42
+ success: false,
43
+ };
44
+ }
45
+ const response = await fetch(`${silvanaFaucetEndpoint()}/ping_key`, {
46
+ method: "POST",
47
+ headers: {
48
+ "Content-Type": "application/json",
49
+ },
50
+ body: JSON.stringify({
51
+ address,
52
+ }),
53
+ });
54
+ if (!response.ok) {
55
+ throw new Error(`Failed to return key: ${response.status} ${response.statusText}`);
56
+ }
57
+ return response.json();
58
+ }
59
+ export async function silvanaFaucetReturnKey(params) {
60
+ const address = params.address ??
61
+ (params.secretKey
62
+ ? Ed25519Keypair.fromSecretKey(params.secretKey).toSuiAddress()
63
+ : undefined);
64
+ if (!address) {
65
+ return {
66
+ message: "Address or secret key is required",
67
+ success: false,
68
+ };
69
+ }
70
+ const response = await fetch(`${silvanaFaucetEndpoint()}/return_key`, {
71
+ method: "POST",
72
+ headers: {
73
+ "Content-Type": "application/json",
74
+ },
75
+ body: JSON.stringify({
76
+ address,
77
+ }),
78
+ });
79
+ if (!response.ok) {
80
+ throw new Error(`Failed to return key: ${response.status} ${response.statusText}`);
81
+ }
82
+ return response.json();
83
+ }
84
+ function silvanaFaucetEndpoint() {
85
+ const silvanaFaucetEndpoint = process.env.SILVANA_FAUCET_ENDPOINT;
86
+ if (!silvanaFaucetEndpoint) {
87
+ throw new Error("SILVANA_FAUCET_ENDPOINT is not set");
88
+ }
89
+ return silvanaFaucetEndpoint;
90
+ }
91
+ //# sourceMappingURL=faucet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faucet.js","sourceRoot":"","sources":["../../src/faucet.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,27 +17,54 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
 
20
30
  // dist/node/index.js
21
31
  var index_exports = {};
22
32
  __export(index_exports, {
23
33
  AgentRegistry: () => AgentRegistry,
34
+ buildMovePackage: () => buildMovePackage,
24
35
  buildPublishTx: () => buildPublishTx,
25
36
  buildUpgradeTx: () => buildUpgradeTx,
26
37
  convertFieldsToPublicKey: () => convertFieldsToPublicKey,
38
+ convertMinaPublicKey: () => convertMinaPublicKey,
39
+ convertMinaPublicKeyToFields: () => convertMinaPublicKeyToFields,
27
40
  convertMinaSignatureFromBase58: () => convertMinaSignatureFromBase58,
28
41
  convertMinaSignatureToBase58: () => convertMinaSignatureToBase58,
29
42
  executeTx: () => executeTx,
30
43
  fetchSuiDynamicField: () => fetchSuiDynamicField,
31
44
  fetchSuiDynamicFieldsList: () => fetchSuiDynamicFieldsList,
32
45
  fetchSuiObject: () => fetchSuiObject,
46
+ getIPFSUrl: () => getIPFSUrl,
47
+ getWalrusUrl: () => getWalrusUrl,
33
48
  network: () => network,
49
+ publicKeyToU256: () => publicKeyToU256,
34
50
  publishCodeToMVR: () => publishCodeToMVR,
35
51
  publishToMVR: () => publishToMVR,
52
+ readFromIPFS: () => readFromIPFS,
53
+ readFromWalrus: () => readFromWalrus,
54
+ saveToIPFS: () => saveToIPFS,
55
+ saveToWalrus: () => saveToWalrus,
56
+ signFields: () => signFields,
57
+ silvanaFaucet: () => silvanaFaucet,
58
+ silvanaFaucetGetKey: () => silvanaFaucetGetKey,
59
+ silvanaFaucetPingKey: () => silvanaFaucetPingKey,
60
+ silvanaFaucetReturnKey: () => silvanaFaucetReturnKey,
36
61
  sleep: () => sleep,
37
62
  suiClient: () => suiClient,
38
- waitTx: () => waitTx
63
+ u256ToFields: () => u256ToFields,
64
+ u256ToPublicKey: () => u256ToPublicKey,
65
+ verifyFields: () => verifyFields,
66
+ waitTx: () => waitTx,
67
+ walrusDaemon: () => walrusDaemon
39
68
  });
40
69
  module.exports = __toCommonJS(index_exports);
41
70
 
@@ -504,8 +533,6 @@ async function buildUpgradeTx(params) {
504
533
  tx.setGasOwner(address);
505
534
  tx.setGasPayment(coins);
506
535
  tx.setGasBudget(3e8);
507
- console.time("sign");
508
- console.timeEnd("sign");
509
536
  return { tx };
510
537
  }
511
538
 
@@ -906,22 +933,328 @@ var AgentRegistry = class {
906
933
  }
907
934
  }
908
935
  };
936
+
937
+ // dist/node/build.js
938
+ async function buildMovePackage(path) {
939
+ const { execSync } = await import("child_process");
940
+ let bytes = void 0;
941
+ console.log("Running sui client publish command...");
942
+ try {
943
+ const output = execSync(`sui move build --dump-bytecode-as-base64 --ignore-chain --path ${path}`, {
944
+ encoding: "utf-8"
945
+ });
946
+ bytes = JSON.parse(output);
947
+ if (!bytes) {
948
+ throw new Error("Error building package");
949
+ }
950
+ return bytes;
951
+ } catch (error) {
952
+ console.error("Error running command:", error);
953
+ throw error;
954
+ }
955
+ }
956
+
957
+ // dist/node/walrus.js
958
+ var walrusDaemon = process.env.NEXT_PUBLIC_WALRUS_DAEMON || process.env.WALRUS_DAEMON || "testnet";
959
+ var daemon = walrusDaemon === "local" ? "local" : "testnet";
960
+ var basePublisherUrl = daemon === "local" ? "http://127.0.0.1:31415" : "https://wal-publisher-testnet.staketab.org";
961
+ var readerUrl = daemon === "local" ? "http://127.0.0.1:31415/v1/blobs/" : "https://wal-aggregator-testnet.staketab.org/v1/blobs/";
962
+ var MIN_EPOCHS = 14;
963
+ var MAX_EPOCHS = 53;
964
+ async function saveToWalrus({ data, address, numEpochs = MIN_EPOCHS }) {
965
+ let sendToParam = address ? `&send_object_to=${address}` : "";
966
+ let epochs = numEpochs < MIN_EPOCHS ? MIN_EPOCHS : numEpochs > MAX_EPOCHS ? MAX_EPOCHS : numEpochs;
967
+ console.log("Writing to Walrus");
968
+ console.time("written");
969
+ const response = await fetch(`${basePublisherUrl}/v1/blobs?epochs=${epochs}${sendToParam}`, {
970
+ method: "PUT",
971
+ body: data
972
+ });
973
+ console.timeEnd("written");
974
+ if (response.status === 200) {
975
+ const info = await response.json();
976
+ const blobId = info?.newlyCreated?.blobObject?.blobId ?? info?.alreadyCertified?.blobId;
977
+ console.log("Walrus blobId", blobId);
978
+ return blobId;
979
+ } else {
980
+ console.error("saveToDA failed:", {
981
+ statusText: response.statusText,
982
+ status: response.status
983
+ });
984
+ return void 0;
985
+ }
986
+ }
987
+ async function readFromWalrus({ blobId }) {
988
+ if (!blobId) {
989
+ throw new Error("blobId is not provided");
990
+ }
991
+ console.log("Reading walrus blob", blobId);
992
+ console.time("read");
993
+ const response = await fetch(`${readerUrl}${blobId}`);
994
+ console.timeEnd("read");
995
+ if (!response.ok) {
996
+ console.error("readFromDA failed:", {
997
+ statusText: response.statusText,
998
+ status: response.status
999
+ });
1000
+ return void 0;
1001
+ } else {
1002
+ const blob = await response.text();
1003
+ return blob;
1004
+ }
1005
+ }
1006
+ async function getWalrusUrl(params) {
1007
+ const { blobId } = params;
1008
+ if (!blobId) {
1009
+ throw new Error("blobId is not set");
1010
+ }
1011
+ const url = `${readerUrl}${blobId}`;
1012
+ return url;
1013
+ }
1014
+
1015
+ // dist/node/faucet.js
1016
+ var import_ed25519 = require("@mysten/sui/keypairs/ed25519");
1017
+ async function silvanaFaucet(params) {
1018
+ const { address, amount = 1 } = params;
1019
+ const response = await fetch(`${silvanaFaucetEndpoint()}/fund`, {
1020
+ method: "POST",
1021
+ headers: {
1022
+ "Content-Type": "application/json"
1023
+ },
1024
+ body: JSON.stringify({
1025
+ address,
1026
+ amount
1027
+ })
1028
+ });
1029
+ if (!response.ok) {
1030
+ throw new Error(`Failed to fund address: ${address} ${amount} ${response.status} ${response.statusText}`);
1031
+ }
1032
+ return response.json();
1033
+ }
1034
+ async function silvanaFaucetGetKey(params = {
1035
+ autoReturn: false
1036
+ }) {
1037
+ const response = await fetch(`${silvanaFaucetEndpoint()}/get_key`, {
1038
+ method: "POST",
1039
+ headers: {
1040
+ "Content-Type": "application/json"
1041
+ },
1042
+ body: JSON.stringify({
1043
+ auto_return: params.autoReturn
1044
+ })
1045
+ });
1046
+ if (!response.ok) {
1047
+ throw new Error(`Failed to get key: ${response.status} ${response.statusText}`);
1048
+ }
1049
+ return response.json();
1050
+ }
1051
+ async function silvanaFaucetPingKey(params) {
1052
+ const { address } = params;
1053
+ if (!address) {
1054
+ return {
1055
+ message: "Address is required",
1056
+ success: false
1057
+ };
1058
+ }
1059
+ const response = await fetch(`${silvanaFaucetEndpoint()}/ping_key`, {
1060
+ method: "POST",
1061
+ headers: {
1062
+ "Content-Type": "application/json"
1063
+ },
1064
+ body: JSON.stringify({
1065
+ address
1066
+ })
1067
+ });
1068
+ if (!response.ok) {
1069
+ throw new Error(`Failed to return key: ${response.status} ${response.statusText}`);
1070
+ }
1071
+ return response.json();
1072
+ }
1073
+ async function silvanaFaucetReturnKey(params) {
1074
+ const address = params.address ?? (params.secretKey ? import_ed25519.Ed25519Keypair.fromSecretKey(params.secretKey).toSuiAddress() : void 0);
1075
+ if (!address) {
1076
+ return {
1077
+ message: "Address or secret key is required",
1078
+ success: false
1079
+ };
1080
+ }
1081
+ const response = await fetch(`${silvanaFaucetEndpoint()}/return_key`, {
1082
+ method: "POST",
1083
+ headers: {
1084
+ "Content-Type": "application/json"
1085
+ },
1086
+ body: JSON.stringify({
1087
+ address
1088
+ })
1089
+ });
1090
+ if (!response.ok) {
1091
+ throw new Error(`Failed to return key: ${response.status} ${response.statusText}`);
1092
+ }
1093
+ return response.json();
1094
+ }
1095
+ function silvanaFaucetEndpoint() {
1096
+ const silvanaFaucetEndpoint2 = process.env.SILVANA_FAUCET_ENDPOINT;
1097
+ if (!silvanaFaucetEndpoint2) {
1098
+ throw new Error("SILVANA_FAUCET_ENDPOINT is not set");
1099
+ }
1100
+ return silvanaFaucetEndpoint2;
1101
+ }
1102
+
1103
+ // dist/node/ipfs.js
1104
+ var import_pinata = require("pinata");
1105
+ var pinataJwt = process.env.PINATA_JWT;
1106
+ var pinataGateway = process.env.PINATA_GATEWAY_URL;
1107
+ var pinataGatewayKey = process.env.PINATA_GATEWAY_API_KEY;
1108
+ var pinata = new import_pinata.PinataSDK({
1109
+ pinataJwt,
1110
+ pinataGateway,
1111
+ pinataGatewayKey
1112
+ });
1113
+ async function saveToIPFS(params) {
1114
+ try {
1115
+ if (!pinataJwt || !pinataGateway || !pinataGatewayKey) {
1116
+ throw new Error("PINATA_JWT, PINATA_GATEWAY_URL, or PINATA_GATEWAY_API_KEY is not set");
1117
+ }
1118
+ const { data, filename, owner, days, description } = params;
1119
+ if (data === void 0 || data === null)
1120
+ throw new Error("data is not set");
1121
+ if (typeof data !== "string")
1122
+ throw new Error("data is not a string");
1123
+ if (data.length === 0)
1124
+ throw new Error("data is empty");
1125
+ const file = new File([data], filename ?? "da", {
1126
+ type: "text/plain"
1127
+ });
1128
+ const expiry = days ? Date.now() + days * 24 * 60 * 60 * 1e3 : void 0;
1129
+ const keyvalues = {
1130
+ app: "dex:devnet",
1131
+ owner: owner ?? "",
1132
+ expires: expiry ? new Date(expiry).toISOString() : "never",
1133
+ expiry: expiry ? expiry.toString() : "0",
1134
+ description: description ?? "",
1135
+ type: "text/plain",
1136
+ mime_type: "text/plain"
1137
+ };
1138
+ const upload = await pinata.upload.public.file(file, {
1139
+ metadata: {
1140
+ name: filename ?? "da",
1141
+ keyvalues
1142
+ }
1143
+ }).name(filename ?? "da");
1144
+ console.log("IPFS: ", upload.cid);
1145
+ return upload.cid;
1146
+ } catch (error) {
1147
+ console.error("Save to IPFS failed", error.message);
1148
+ return void 0;
1149
+ }
1150
+ }
1151
+ async function readFromIPFS(params) {
1152
+ const { blobId } = params;
1153
+ if (!blobId) {
1154
+ throw new Error("blobId is not set");
1155
+ }
1156
+ try {
1157
+ if (!pinataJwt || !pinataGateway || !pinataGatewayKey) {
1158
+ throw new Error("PINATA_JWT, PINATA_GATEWAY_URL, or PINATA_GATEWAY_API_KEY is not set");
1159
+ }
1160
+ const url = await getIPFSUrl({ blobId });
1161
+ const response = await fetch(url);
1162
+ if (!response.ok) {
1163
+ throw new Error("Failed to fetch from IPFS");
1164
+ }
1165
+ const data = await response.text();
1166
+ return data;
1167
+ } catch (error) {
1168
+ console.error("Read from IPFS failed", error);
1169
+ return void 0;
1170
+ }
1171
+ }
1172
+ async function getIPFSUrl(params) {
1173
+ const { blobId } = params;
1174
+ if (!blobId) {
1175
+ throw new Error("blobId is not set");
1176
+ }
1177
+ const gateway = process.env.PINATA_GATEWAY_URL ?? "https://gateway.pinata.cloud/ipfs/";
1178
+ const apiToken = process.env.PINATA_GATEWAY_API_KEY;
1179
+ const url = "https://" + gateway + "/ipfs/" + blobId + (apiToken ? "?pinataGatewayToken=" + apiToken : "");
1180
+ return url;
1181
+ }
1182
+
1183
+ // dist/node/public-key.js
1184
+ var import_mina_signer = __toESM(require("mina-signer"), 1);
1185
+ var client = new import_mina_signer.default({
1186
+ network: "testnet"
1187
+ });
1188
+ function publicKeyToU256(publicKey) {
1189
+ const raw = client.publicKeyToRaw(publicKey);
1190
+ const swappedRaw = raw.match(/.{1,2}/g)?.reverse().join("") || "";
1191
+ const u256 = BigInt("0x" + swappedRaw);
1192
+ return u256;
1193
+ }
1194
+ var MAX_BIT = 2n ** 255n;
1195
+ function u256ToFields(u256) {
1196
+ const isOdd = (u256 & MAX_BIT) != 0n;
1197
+ const x = u256 - (isOdd ? MAX_BIT : 0n);
1198
+ return { x, isOdd };
1199
+ }
1200
+ function u256ToPublicKey(u256) {
1201
+ const { x, isOdd } = u256ToFields(u256);
1202
+ return convertFieldsToPublicKey({ x, isOdd });
1203
+ }
1204
+ function convertMinaPublicKey(publicKey) {
1205
+ const u256 = publicKeyToU256(publicKey);
1206
+ return u256ToFields(u256);
1207
+ }
1208
+ function convertMinaPublicKeyToFields(publicKey) {
1209
+ if (!publicKey)
1210
+ return [];
1211
+ const { x, isOdd } = convertMinaPublicKey(publicKey);
1212
+ return [x, isOdd ? 1n : 0n];
1213
+ }
1214
+ function signFields(params) {
1215
+ const { privateKey, fields } = params;
1216
+ const signedData = client.signFields(fields.map(BigInt), privateKey);
1217
+ return signedData;
1218
+ }
1219
+ function verifyFields(params) {
1220
+ const { publicKey, fields, signature } = params;
1221
+ return client.verifyFields({ data: fields, publicKey, signature });
1222
+ }
909
1223
  // Annotate the CommonJS export names for ESM import in node:
910
1224
  0 && (module.exports = {
911
1225
  AgentRegistry,
1226
+ buildMovePackage,
912
1227
  buildPublishTx,
913
1228
  buildUpgradeTx,
914
1229
  convertFieldsToPublicKey,
1230
+ convertMinaPublicKey,
1231
+ convertMinaPublicKeyToFields,
915
1232
  convertMinaSignatureFromBase58,
916
1233
  convertMinaSignatureToBase58,
917
1234
  executeTx,
918
1235
  fetchSuiDynamicField,
919
1236
  fetchSuiDynamicFieldsList,
920
1237
  fetchSuiObject,
1238
+ getIPFSUrl,
1239
+ getWalrusUrl,
921
1240
  network,
1241
+ publicKeyToU256,
922
1242
  publishCodeToMVR,
923
1243
  publishToMVR,
1244
+ readFromIPFS,
1245
+ readFromWalrus,
1246
+ saveToIPFS,
1247
+ saveToWalrus,
1248
+ signFields,
1249
+ silvanaFaucet,
1250
+ silvanaFaucetGetKey,
1251
+ silvanaFaucetPingKey,
1252
+ silvanaFaucetReturnKey,
924
1253
  sleep,
925
1254
  suiClient,
926
- waitTx
1255
+ u256ToFields,
1256
+ u256ToPublicKey,
1257
+ verifyFields,
1258
+ waitTx,
1259
+ walrusDaemon
927
1260
  });
@@ -7,3 +7,8 @@ export * from "./upgrade.js";
7
7
  export * from "./mvr.js";
8
8
  export * from "./agent.js";
9
9
  export * from "./fetch.js";
10
+ export * from "./build.js";
11
+ export * from "./walrus.js";
12
+ export * from "./faucet.js";
13
+ export * from "./ipfs.js";
14
+ export * from "./public-key.js";
@@ -7,4 +7,9 @@ export * from "./upgrade.js";
7
7
  export * from "./mvr.js";
8
8
  export * from "./agent.js";
9
9
  export * from "./fetch.js";
10
+ export * from "./build.js";
11
+ export * from "./walrus.js";
12
+ export * from "./faucet.js";
13
+ export * from "./ipfs.js";
14
+ export * from "./public-key.js";
10
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare function saveToIPFS(params: {
2
+ data: string;
3
+ filename?: string;
4
+ owner?: string;
5
+ days?: number;
6
+ description?: string;
7
+ }): Promise<string | undefined>;
8
+ export declare function readFromIPFS(params: {
9
+ blobId: string;
10
+ }): Promise<string | undefined>;
11
+ export declare function getIPFSUrl(params: {
12
+ blobId: string;
13
+ }): Promise<string>;