From 53f8840c25350cbe7509e02e935e801d31ff762e Mon Sep 17 00:00:00 2001 From: Sebastien Guillemot Date: Mon, 13 May 2024 06:53:02 +0900 Subject: [PATCH] Update to latest CML & Carp --- cardano/sdk/rust/examples/contract_deploy.rs | 4 ++-- dapp/package.json | 4 ++-- dapp/src/hooks/cardano/useGetLocksCardano.ts | 25 +++++++++----------- dapp/src/utils/cardano/constants.ts | 2 -- dapp/yarn.lock | 16 ++++++------- 5 files changed, 23 insertions(+), 28 deletions(-) diff --git a/cardano/sdk/rust/examples/contract_deploy.rs b/cardano/sdk/rust/examples/contract_deploy.rs index 1bc6901..31c4bbf 100644 --- a/cardano/sdk/rust/examples/contract_deploy.rs +++ b/cardano/sdk/rust/examples/contract_deploy.rs @@ -656,7 +656,7 @@ async fn handle_unlock( builder.add_required_signer(match payment_address.payment_cred().unwrap() { StakeCredential::PubKey { hash, .. } => *hash, StakeCredential::Script { .. } => { - return Err(anyhow!("script is not suported as required signer")); + return Err(anyhow!("script is not supported as required signer")); } }); @@ -900,7 +900,7 @@ async fn handle_claim( builder.add_required_signer(match payment_address.payment_cred().unwrap() { StakeCredential::PubKey { hash, .. } => *hash, StakeCredential::Script { .. } => { - return Err(anyhow!("script is not suported as required signer")); + return Err(anyhow!("script is not supported as required signer")); } }); diff --git a/dapp/package.json b/dapp/package.json index 150d41c..708e73b 100644 --- a/dapp/package.json +++ b/dapp/package.json @@ -7,8 +7,8 @@ "@babel/core": "^7.0.0", "@babel/plugin-syntax-flow": "^7.14.5", "@babel/plugin-transform-react-jsx": "^7.14.9", - "@dcspark/cardano-multiplatform-lib-browser": "^5.2.0", - "@dcspark/carp-client": "^3.1.0", + "@dcspark/cardano-multiplatform-lib-browser": "^5.3.1", + "@dcspark/carp-client": "^3.2.1", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.14.9", diff --git a/dapp/src/hooks/cardano/useGetLocksCardano.ts b/dapp/src/hooks/cardano/useGetLocksCardano.ts index 00f6633..3041f94 100644 --- a/dapp/src/hooks/cardano/useGetLocksCardano.ts +++ b/dapp/src/hooks/cardano/useGetLocksCardano.ts @@ -2,30 +2,27 @@ import { LockInfoCardano } from "../../utils/cardano/types"; import FunctionKey from "../../utils/functionKey"; import { useQuery } from "@tanstack/react-query"; -import axios from "axios"; import { useDappStore } from "../../store"; import { Asset } from "../../utils/cardano/asset"; import { Token } from "../../utils/cardano/token"; -import { - cardanoApiMaxSlot, -} from "../../utils/cardano/constants"; import env from "../../utils/configs/env"; -import { ProjectedNftRangeResponse, ProjectedNftStatus } from "@dcspark/carp-client/shared/models/ProjectedNftRange"; import assertNever from "assert-never"; +import { ProjectedNftStatus, Routes, paginatedProjectedNft, query } from "@dcspark/carp-client"; const fetchLocks = async (paymentKeyHash: string) => { try { - // https://github.com/dcSpark/projected-nft-whirlpool/issues/21 - const request = await axios.post( - `${env.REACT_APP_CARDANO_API_URL_BASE}/projected-nft/range`, - // we use 0 here since in the current pagination system starting from 0 doesn't change any performance - // compared to starting at the first slot the projected NFT system was introduced - // and starting at 0 always makes it easier to use testnets (otherwise we'd have to optimize the minSlot for each network) - { range: { minSlot: 0, maxSlot: cardanoApiMaxSlot } }, + const latest = await query(env.REACT_APP_CARDANO_API_URL_BASE, Routes.blockLatest, { + offset: 0, + }); + const request = await paginatedProjectedNft( + env.REACT_APP_CARDANO_API_URL_BASE, + { + address: paymentKeyHash, + untilBlock: latest.block.hash, + } ); - const responseData: ProjectedNftRangeResponse = request.data; const locksMap: Record = {}; - responseData.forEach(datAndTx => datAndTx.payload.forEach((dat) => { + request.forEach(datAndTx => datAndTx.payload.forEach((dat) => { if (dat.status === ProjectedNftStatus.Invalid) return; if (dat.ownerAddress !== paymentKeyHash) return; diff --git a/dapp/src/utils/cardano/constants.ts b/dapp/src/utils/cardano/constants.ts index ec42a0c..9457129 100644 --- a/dapp/src/utils/cardano/constants.ts +++ b/dapp/src/utils/cardano/constants.ts @@ -1,3 +1 @@ -export const cardanoApiMaxSlot = 2_147_483_647; - export const nftsQueryInvalidationDelay = 1000; diff --git a/dapp/yarn.lock b/dapp/yarn.lock index 1bebfa1..8479f49 100644 --- a/dapp/yarn.lock +++ b/dapp/yarn.lock @@ -1360,15 +1360,15 @@ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== -"@dcspark/cardano-multiplatform-lib-browser@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@dcspark/cardano-multiplatform-lib-browser/-/cardano-multiplatform-lib-browser-5.2.0.tgz#6d8444c1f5af1afb4d1eb2e6f9342fb4eca51f51" - integrity sha512-zxosWnOZFV+4tHDYOYGR9k2kgMEp87A7PoXjXNdzufzVmT2JqaYAyEXZPQya3GlLfsWl43q/Oaj280b8IJLqcQ== +"@dcspark/cardano-multiplatform-lib-browser@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@dcspark/cardano-multiplatform-lib-browser/-/cardano-multiplatform-lib-browser-5.3.1.tgz#b729388388ffe2897f6ad8fa904fc8f0db1f6394" + integrity sha512-iPLYATq7nCy26kAVBUKa4mOxFuTinDv4pFdZXYnkjN6+MFNjumM0/tKvb2eCxNrPFxSFZvgSlLEDL0Rq0HBaVg== -"@dcspark/carp-client@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@dcspark/carp-client/-/carp-client-3.1.0.tgz#983a1bb70dd46b0cba72cb1c75ec9d1377fc1b7b" - integrity sha512-szg0bU7tkOXZpP4i5eXoprTg3921dHAiF9QmY0CXWs101sLNlp+3YHzb1MiZCCFHIkAD1kd6UEx0XmGF566wxw== +"@dcspark/carp-client@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@dcspark/carp-client/-/carp-client-3.2.1.tgz#2e10358b6b598c2d61fbd3c7ee1583b8fdde311c" + integrity sha512-+A16rmfuU6hUv9U5upzDQX5z8VyDM+VuEHvYSIAO2gSuZj8xkwFfBURovGtHIVdu7Uexf8B+zU837YYg5WwQXw== dependencies: axios "^0.27.2"