diff --git a/studio-backend/package.json b/studio-backend/package.json index 94d8225..6e55c4e 100644 --- a/studio-backend/package.json +++ b/studio-backend/package.json @@ -4,13 +4,14 @@ "main": "index.ts", "license": "MIT", "dependencies": { - "@mysten/sui.js": "^0.17.1", + "@mysten/sui.js": "^0.30.0", "@types/cors": "^2.8.12", "@types/express": "^4.17.14", "@types/node": "^18.11.9", "cors": "^2.8.5", "dotenv": "^16.0.3", "express": "^4.18.2", + "fetch": "^1.1.0", "fs": "^0.0.1-security", "strip-ansi": "^7.0.1", "typescript": "^4.9.3" diff --git a/studio-backend/src/compile.ts b/studio-backend/src/compile.ts index c2c8863..774c646 100644 --- a/studio-backend/src/compile.ts +++ b/studio-backend/src/compile.ts @@ -63,7 +63,7 @@ export async function compile(project: Project): Promise { version = "0.0.1" [dependencies] - Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework", rev = "devnet" } + Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "testnet" } [addresses] ${addresses} @@ -135,7 +135,7 @@ export async function test(project: Project): Promise { version = "0.0.1" [dependencies] - Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework", rev = "devnet" } + Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "testnet" } [addresses] ${addresses} @@ -232,46 +232,5 @@ export async function test(project: Project): Promise { } } -export async function publish (compiledModules: string[]) { - dotenv.config(); - if (process.env.RECOVERY_PHRASE === undefined) { - throw new Error('RECOVERY_PHRASE is not defined'); - } - // connect to local RPC server - const provider = new JsonRpcProvider(); - const keyPair = Ed25519Keypair.deriveKeypair(process.env.RECOVERY_PHRASE) - const signer = new RawSigner(keyPair, provider); - // await provider.requestSuiFromFaucet( - // await signer.getAddress() - // ); - console.log(`Signer address: ${await signer.getAddress()}`); - - // publish the compiled modules - - try { - // const publishTxn = await signer.publish({ - // compiledModules: compiledModules, - // gasBudget: 10000, - // }); - // console.log(publishTxn) - - const publishTxn = await signer.signAndExecuteTransaction({ - kind: 'publish', - data: { - compiledModules: compiledModules, - gasBudget: 10000 - }, - }); - - console.log(publishTxn); - - return publishTxn; - } catch (error: any) { - console.log(error); - } - - -} - diff --git a/studio-backend/src/index.ts b/studio-backend/src/index.ts index 4cb73b1..d1e98c6 100644 --- a/studio-backend/src/index.ts +++ b/studio-backend/src/index.ts @@ -1,6 +1,6 @@ import cors from 'cors'; import express from 'express'; -import { compile, publish, test } from './compile'; +import { compile, test } from './compile'; import { getObjectDetails, getPackageDetails } from './object-details'; const app = express(); @@ -76,19 +76,6 @@ app.post('/test', async (req, res) => { }); -app.post('/publish', async (req, res) => { - const compiledModules = req.body.compiledModules; - - // console.log(compiledModules); - console.log('publishing modules...') - - // Call compile function - const compileResult = await publish(compiledModules); - - res.send(compileResult); - -}); - app.post('/object-details', async (req, res) => { const objectId = req.body.objectId as string; const rpc = req.body.rpc as string; diff --git a/studio-backend/src/object-details.ts b/studio-backend/src/object-details.ts index cc8f7d7..a10f484 100644 --- a/studio-backend/src/object-details.ts +++ b/studio-backend/src/object-details.ts @@ -1,19 +1,43 @@ -import { JsonRpcProvider } from "@mysten/sui.js"; +import { JsonRpcProvider, devnetConnection, Connection } from "@mysten/sui.js"; export async function getObjectDetails(objectId: string, rpc?: string) { - const provider = new JsonRpcProvider(rpc); - const objectDetails = await provider.getObject(objectId); + console.log('getObjectDetails', objectId) + let provider; + if (rpc) { + const connection = new Connection({ fullnode: rpc }); + provider = new JsonRpcProvider(connection); + } else { + provider = new JsonRpcProvider(); + } + // console.log('provider', provider) + + const objectDetails = await provider.getObject({ + id: objectId, + options: { + showContent: true, + showDisplay: true, + }, + }); + console.log('objectDetails', objectDetails) return objectDetails; } export async function getPackageDetails(packageId: string, rpc?: string) { console.log('1') - const provider = new JsonRpcProvider(rpc); + let provider; + if (rpc) { + const connection = new Connection({ fullnode: rpc }); + provider = new JsonRpcProvider(connection); + } else { + provider = new JsonRpcProvider(); + } // console.log('provider', provider) console.log('2') - const packageDetails = await provider.getNormalizedMoveModulesByPackage(packageId); + const packageDetails = await provider.getNormalizedMoveModulesByPackage({ + package: packageId, + }); console.log('packageDetails', packageDetails) console.log('3') return packageDetails; diff --git a/studio-backend/yarn.lock b/studio-backend/yarn.lock index 630e33a..5ca47f3 100644 --- a/studio-backend/yarn.lock +++ b/studio-backend/yarn.lock @@ -3,9 +3,9 @@ "@babel/runtime@^7.17.2": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" - integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== dependencies: regenerator-runtime "^0.13.11" @@ -34,60 +34,73 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@mysten/bcs@0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@mysten/bcs/-/bcs-0.5.0.tgz#d2570971e3d9121b83091ced38db13e907ab4198" - integrity sha512-FjGnXZfR4dY01Q1l3xjgaU+ruIlVomXZk8vzgsQXPFOv7O4pNiOOpJyMEMUnWcyUiktk4R9MxoJJrygOtdxaUw== - -"@mysten/sui.js@^0.17.1": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@mysten/sui.js/-/sui.js-0.17.1.tgz#ad587ac0f995e4a8ec5888eb3318b2bfcc1fc10b" - integrity sha512-9BjHZE8MNK1vFtXa5UQxZX2hvlet/ftlQzjQ9oF5nNm78ifa8BSv+fM1kwbXETgoep4Nc/kKkIeKrIffrYptvg== - dependencies: - "@mysten/bcs" "0.5.0" - "@noble/hashes" "^1.1.2" - "@noble/secp256k1" "^1.6.3" - "@scure/bip32" "^1.1.0" - "@scure/bip39" "^1.1.0" - cross-fetch "^3.1.5" - jayson "^3.6.6" - js-sha3 "^0.8.0" - lossless-json "^1.0.5" - rpc-websockets "^7.5.0" +"@mysten/bcs@0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@mysten/bcs/-/bcs-0.7.0.tgz#141cbaba8ccb89215747d9ca1296c20c5b4fe4a1" + integrity sha512-AFNnTClmc1XuxWZOzrzqVPDnujgN5AF2oNUyPYbLfvwqAj+qH7CrE3Rxhuf7et+k8M1Ff55CDgF58vPDMIhIrA== + dependencies: + bs58 "^5.0.0" + +"@mysten/sui.js@^0.30.0": + version "0.30.0" + resolved "https://registry.yarnpkg.com/@mysten/sui.js/-/sui.js-0.30.0.tgz#4f952418f97b172444412f771a5dab842f45e0e8" + integrity sha512-7Mb5fGeg/NfoKvZvCQLL+XsuynFZKx328UykPpqcgY7buAbJiTl8dNNncZGH6nC/+fZRf2J9X0EffiKTES78ig== + dependencies: + "@mysten/bcs" "0.7.0" + "@noble/hashes" "^1.2.0" + "@noble/secp256k1" "^1.7.1" + "@scure/bip32" "^1.1.5" + "@scure/bip39" "^1.1.1" + "@suchipi/femver" "^1.0.0" + jayson "^4.0.0" + rpc-websockets "^7.5.1" + superstruct "^1.0.3" tweetnacl "^1.0.3" -"@noble/hashes@^1.1.2", "@noble/hashes@~1.1.1", "@noble/hashes@~1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" - integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== +"@noble/curves@~0.8.3": + version "0.8.3" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-0.8.3.tgz#ad6d48baf2599cf1d58dcb734c14d5225c8996e0" + integrity sha512-OqaOf4RWDaCRuBKJLDURrgVxjLmneGsiCXGuzYB5y95YithZMA6w4uk34DHSm0rKMrrYiaeZj48/81EvaAScLQ== + dependencies: + "@noble/hashes" "1.3.0" -"@noble/secp256k1@^1.6.3", "@noble/secp256k1@~1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" - integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== +"@noble/hashes@1.3.0", "@noble/hashes@^1.2.0", "@noble/hashes@~1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" + integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== + +"@noble/secp256k1@^1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== "@scure/base@~1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== -"@scure/bip32@^1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.1.1.tgz#f62e4a2f13cc3e5e720ad81b7582b8631ae6835a" - integrity sha512-UmI+liY7np2XakaW+6lMB6HZnpczWk1yXZTxvg8TM8MdOcKHCGL1YkraGj8eAjPfMwFNiAyek2hXmS/XFbab8g== +"@scure/bip32@^1.1.5": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.2.0.tgz#35692d8f8cc3207200239fc119f9e038e5f465df" + integrity sha512-O+vT/hBVk+ag2i6j2CDemwd1E1MtGt+7O1KzrPNsaNvSsiEK55MyPIxJIMI2PS8Ijj464B2VbQlpRoQXxw1uHg== dependencies: - "@noble/hashes" "~1.1.3" - "@noble/secp256k1" "~1.7.0" + "@noble/curves" "~0.8.3" + "@noble/hashes" "~1.3.0" "@scure/base" "~1.1.0" -"@scure/bip39@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.0.tgz#92f11d095bae025f166bef3defcc5bf4945d419a" - integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== +"@scure/bip39@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.0.tgz#a207e2ef96de354de7d0002292ba1503538fc77b" + integrity sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg== dependencies: - "@noble/hashes" "~1.1.1" + "@noble/hashes" "~1.3.0" "@scure/base" "~1.1.0" +"@suchipi/femver@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@suchipi/femver/-/femver-1.0.0.tgz#4909dcc069695e07bd23a64c4bfe411d11d9692f" + integrity sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg== + "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -152,16 +165,21 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== -"@types/node@*", "@types/node@^18.11.9": - version "18.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== +"@types/node@*": + version "18.15.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.9.tgz#a9b529d2a16ae73122b3875969e7db18c9f3e790" + integrity sha512-dUxhiNzBLr6IqlZXz6e/rN2YQXlFgOei/Dxy+e3cyXTJ4txSUbGT2/fmnD6zd/75jDMeW5bDee+YXxlFKHoV0A== "@types/node@^12.12.54": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== +"@types/node@^18.11.9": + version "18.11.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" + integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + "@types/qs@*": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" @@ -246,11 +264,23 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base-x@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +biskviit@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/biskviit/-/biskviit-1.0.1.tgz#037a0cd4b71b9e331fd90a1122de17dc49e420a7" + integrity sha512-VGCXdHbdbpEkFgtjkeoBN8vRlbj1ZRX2/mxhE8asCCRalUx2nBzOomLJv8Aw/nRt5+ccDb+tPKidg4XxcfGW4w== + dependencies: + psl "^1.1.7" + body-parser@1.20.1: version "1.20.1" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" @@ -284,6 +314,13 @@ braces@~3.0.2: dependencies: fill-range "^7.0.1" +bs58@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" + integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== + dependencies: + base-x "^4.0.0" + bufferutil@^4.0.1: version "4.0.7" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" @@ -364,13 +401,6 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-fetch@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -420,6 +450,13 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== +encoding@0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha512-bl1LAgiQc4ZWr++pNYUdRe/alecaHFeHxIJ/pNciqGdKXghaTCOwKkbKp6ye7pKZGu/GcaSXFk8PBVhgs+dJdA== + dependencies: + iconv-lite "~0.4.13" + es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -489,6 +526,14 @@ eyes@^0.1.8: resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== +fetch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fetch/-/fetch-1.1.0.tgz#0a8279f06be37f9f0ebb567560a30a480da59a2e" + integrity sha512-5O8TwrGzoNblBG/jtK4NFuZwNCkZX6s5GfRNOaGtm+QGJEuNakSC/i2RW0R93KX6E0jVjNXm6O3CRN4Ql3K+yA== + dependencies: + biskviit "1.0.1" + encoding "0.1.12" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -578,7 +623,7 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -iconv-lite@0.4.24: +iconv-lite@0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -629,10 +674,10 @@ isomorphic-ws@^4.0.1: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== -jayson@^3.6.6: - version "3.7.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25" - integrity sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ== +jayson@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.0.0.tgz#145a0ced46f900934c9b307e1332bcb0c7dbdb17" + integrity sha512-v2RNpDCMu45fnLzSk47vx7I+QUaOsox6f5X0CUlabAFwxoP+8MfAY0NQRFwOEYXIxm8Ih5y6OaEa5KYiQMkyAA== dependencies: "@types/connect" "^3.4.33" "@types/node" "^12.12.54" @@ -644,15 +689,9 @@ jayson@^3.6.6: eyes "^0.1.8" isomorphic-ws "^4.0.1" json-stringify-safe "^5.0.1" - lodash "^4.17.20" uuid "^8.3.2" ws "^7.4.5" -js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -663,16 +702,6 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -lodash@^4.17.20: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lossless-json@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/lossless-json/-/lossless-json-1.0.5.tgz#26df1d7d52543a994df07f1b174cf5576fb1482b" - integrity sha512-RicKUuLwZVNZ6ZdJHgIZnSeA05p8qWc5NW0uR96mpPIjN9WDLUg9+kj1esQU1GkPn9iLZVKatSQK5gyiaFHgJA== - make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" @@ -732,17 +761,10 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + version "4.6.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" + integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== nodemon@^2.0.20: version "2.0.20" @@ -812,6 +834,11 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +psl@^1.1.7: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + pstree.remy@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" @@ -851,10 +878,10 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -rpc-websockets@^7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748" - integrity sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ== +rpc-websockets@^7.5.1: + version "7.5.1" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.1.tgz#e0a05d525a97e7efc31a0617f093a13a2e10c401" + integrity sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w== dependencies: "@babel/runtime" "^7.17.2" eventemitter3 "^4.0.7" @@ -946,6 +973,11 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" +superstruct@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.3.tgz#de626a5b49c6641ff4d37da3c7598e7a87697046" + integrity sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg== + supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -977,11 +1009,6 @@ touch@^3.1.0: dependencies: nopt "~1.0.10" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - ts-node@^10.9.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" @@ -1056,28 +1083,15 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - ws@^7.4.5: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.5.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== yn@3.1.1: version "3.1.1" diff --git a/studio-frontend/package.json b/studio-frontend/package.json index b788bae..2fe841b 100644 --- a/studio-frontend/package.json +++ b/studio-frontend/package.json @@ -4,16 +4,13 @@ "private": true, "dependencies": { "@monaco-editor/react": "^4.4.6", - "@mysten/sui.js": "^0.18.0", - "@mysten/wallet-adapter-react": "^11.0.0", - "@mysten/wallet-kit": "^0.1.2", - "@suiet/wallet-adapter": "^0.0.18", - "@suiet/wallet-kit": "^0.1.10", + "@mysten/sui.js": "^0.30.0", + "@suiet/wallet-kit": "^0.2.4", "@types/node": "^16.7.13", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.0", "@types/react-loading-overlay": "^1.0.1", - "@types/react-responsive-masonry": "^2.1.0", + "@vercel/analytics": "^0.1.11", "ansi-to-react": "^6.1.6", "axios": "^1.2.1", "daisyui": "^2.46.0", @@ -21,14 +18,10 @@ "monaco-editor": "^0.34.1", "monaco-themes": "^0.4.3", "react": "^18.2.0", - "react-dnd": "^16.0.1", - "react-dnd-html5-backend": "^16.0.1", "react-dom": "^18.2.0", - "react-drag-reorder": "^1.2.0", "react-joyride": "^2.5.3", "react-loading-overlay": "^1.0.1", "react-loading-overlay-ts": "^2.0.0", - "react-responsive-masonry": "^2.1.7", "react-scripts": "5.0.1", "react-spinners": "^0.13.7", "strip-ansi": "^7.0.1", diff --git a/studio-frontend/src/App.tsx b/studio-frontend/src/App.tsx index 2e7f711..1fec4c5 100644 --- a/studio-frontend/src/App.tsx +++ b/studio-frontend/src/App.tsx @@ -14,6 +14,8 @@ import { IndexedDb } from './db/ProjectsDB'; import { textChangeRangeIsUnchanged } from 'typescript'; import axios from 'axios'; +import { Analytics } from '@vercel/analytics/react'; + const GAS_BUDGET = 40000; @@ -41,6 +43,7 @@ function App() { + ); } diff --git a/studio-frontend/src/components/DeployCanvas.tsx b/studio-frontend/src/components/DeployCanvas.tsx index bfe2f54..0eb802f 100644 --- a/studio-frontend/src/components/DeployCanvas.tsx +++ b/studio-frontend/src/components/DeployCanvas.tsx @@ -6,7 +6,7 @@ import {DeployedPackage, DeployedObject} from './DeployedObjects' import LoadingOverlay from 'react-loading-overlay-ts'; import ScaleLoader from "react-spinners/ScaleLoader"; import { SPINNER_COLORS } from '../utils/theme'; -import { useSuiProvider, useWallet } from '@suiet/wallet-kit'; +import { ConnectButton, ConnectModal, useSuiProvider, useWallet } from '@suiet/wallet-kit'; const BACKEND_URL = process.env.REACT_APP_BACKEND_URL || 'http://localhost:80/'; @@ -69,14 +69,14 @@ function DeployCanvas ( // }); return axios.post(`${BACKEND_URL}object-details`, {objectId: objectId, rpc: wallet.chain?.rpcUrl}).then((res) => { - console.log('res', res); - if (res == undefined || res.data.status != 'Exists') { + console.log('object details res', res); + if (res == undefined || res.data.error != undefined) { props.removeDeployedObject(id) return; } - const objectData = res.data.details.data; - const shared = res.data.details.owner.hasOwnProperty('Shared') + const objectData = res.data.data.content; + // const shared = res.data.details.owner.hasOwnProperty('Shared') if (objectData.dataType == 'package') { return axios.post(`${BACKEND_URL}package-details`, {packageId: objectId, rpc: wallet.chain?.rpcUrl}).then((res) => { @@ -121,7 +121,7 @@ function DeployCanvas ( moduleName={splitFullName[1]} objectName={splitFullName[2]} typeParameter={structType} - shared={shared} + shared={/*shared*/false} updateHandler={updateObjectByAddress} dragStartHandler={handleDragStart} dragEnterHandler={handleDragEnter} diff --git a/studio-frontend/src/components/DeployInnerSidebar.tsx b/studio-frontend/src/components/DeployInnerSidebar.tsx index f0b29cb..02ba068 100644 --- a/studio-frontend/src/components/DeployInnerSidebar.tsx +++ b/studio-frontend/src/components/DeployInnerSidebar.tsx @@ -6,7 +6,7 @@ import { decimalify } from "../utils/decimal"; import { network } from "../utils/network"; const disabledWallets = [ - "Martian Sui Wallet", + "Martian Sui Wallet disabled", ] function DeployInnerSidebar( @@ -190,13 +190,13 @@ function DeployInnerSidebar(

Gas balance:

- {loading ? "Loading balance..." : `${decimalify(balance, 9)} Sui`} + {loading ? "Loading balance..." : `${decimalify(balance?.toString() || '', 9)} Sui`} {!loading &&

{ability}
}) - const fields = (props.structDetails as any).fields.map((field: {name: string, type_: any}) => { + const fields = (props.structDetails as any).fields.map((field: {name: string, type: any}) => { console.log('field', field) - if (typeof field.type_ == 'object') { + if (typeof field.type == 'object') { console.log('e') - if (field.type_.Struct != undefined) { + if (field.type.Struct != undefined) { return ( {field.name} - {field.type_.Struct.address}::{field.type_.Struct.module}::{field.type_.Struct.name} + {field.type.Struct.address}::{field.type.Struct.module}::{field.type.Struct.name}