From dae111afb9b72c51d8866ab531ec90e41b3621ed Mon Sep 17 00:00:00 2001 From: adammino-ledger Date: Fri, 27 Sep 2024 16:47:21 +0100 Subject: [PATCH 01/86] add entrypoints to open widget on bitcoin staking --- .../bitcoin/AccountHeaderManageActions.ts | 56 +++++++++++++++++++ .../src/renderer/families/bitcoin/index.ts | 2 + 2 files changed, 58 insertions(+) create mode 100644 apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts diff --git a/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts b/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts new file mode 100644 index 000000000000..94fbd7e4ed71 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts @@ -0,0 +1,56 @@ +import { getMainAccount } from "@ledgerhq/live-common/account/index"; + +import { useTranslation } from "react-i18next"; +import { useHistory } from "react-router"; +import { track } from "~/renderer/analytics/segment"; +import { stakeDefaultTrack } from "~/renderer/screens/stake/constants"; +import { BitcoinAccount } from "@ledgerhq/coin-bitcoin/lib/types"; +import { TokenAccount } from "@ledgerhq/types-live"; + +type Props = { + account: BitcoinAccount | TokenAccount; + parentAccount: BitcoinAccount | undefined | null; +}; + +const AccountHeaderActions = ({ account, parentAccount }: Props) => { + const history = useHistory(); + const { t } = useTranslation(); + const mainAccount = getMainAccount(account, parentAccount); + const { bitcoinResources } = mainAccount; + if (!bitcoinResources || parentAccount) return null; + + const stakeOnClick = () => { + const value = "/platform/acre-testnet"; + + track("button_clicked2", { + ...stakeDefaultTrack, + delegation: "stake", + page: "Page Account", + button: "delegate", + provider: "Acre", + currency: "BTC", + }); + history.push({ + pathname: value, + state: { + accountId: account.id, + returnTo: `/account/${account.id}`, + }, + }); + }; + + return [ + { + key: "Yield", + icon: () => null, + label: t("account.yield"), + event: "button_clicked2", + eventProperties: { + button: "yield", + }, + onClick: () => stakeOnClick(), + }, + ]; +}; + +export default AccountHeaderActions; diff --git a/apps/ledger-live-desktop/src/renderer/families/bitcoin/index.ts b/apps/ledger-live-desktop/src/renderer/families/bitcoin/index.ts index d65009a89e20..321e5b73ff1f 100644 --- a/apps/ledger-live-desktop/src/renderer/families/bitcoin/index.ts +++ b/apps/ledger-live-desktop/src/renderer/families/bitcoin/index.ts @@ -2,12 +2,14 @@ import "./live-common-setup"; import sendAmountFields from "./SendAmountFields"; import sendRecipientFields from "./SendRecipientFields"; import StepReceiveFundsPostAlert from "./StepReceiveFundsPostAlert"; +import accountHeaderManageActions from "./AccountHeaderManageActions"; import { BitcoinFamily } from "./types"; const family: BitcoinFamily = { sendAmountFields, sendRecipientFields, StepReceiveFundsPostAlert, + accountHeaderManageActions, }; export default family; From a4cd30a6cf405a3fb647282a958210ded9ed0b21 Mon Sep 17 00:00:00 2001 From: Come Grellard Date: Tue, 1 Oct 2024 12:23:34 +0200 Subject: [PATCH 02/86] fix: ledger live mobile content cards categories spacing issue --- .changeset/wild-cars-shop.md | 5 +++++ .../src/dynamicContent/ContentCardsLocation.tsx | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 .changeset/wild-cars-shop.md diff --git a/.changeset/wild-cars-shop.md b/.changeset/wild-cars-shop.md new file mode 100644 index 000000000000..a68a0b6ea99a --- /dev/null +++ b/.changeset/wild-cars-shop.md @@ -0,0 +1,5 @@ +--- +"live-mobile": patch +--- + +LLM - Fixed a spacing issue when there was a category with all its content cards dismissed by the user diff --git a/apps/ledger-live-mobile/src/dynamicContent/ContentCardsLocation.tsx b/apps/ledger-live-mobile/src/dynamicContent/ContentCardsLocation.tsx index b461ec86c795..195798f16186 100644 --- a/apps/ledger-live-mobile/src/dynamicContent/ContentCardsLocation.tsx +++ b/apps/ledger-live-mobile/src/dynamicContent/ContentCardsLocation.tsx @@ -25,11 +25,10 @@ const ContentCardsLocationComponent = ({ locationId, ...containerProps }: Props) const { categoriesCards, mobileCards } = useDynamicContent(); const categoriesToDisplay = filterCategoriesByLocation(categoriesCards, locationId); - - if (categoriesToDisplay.length === 0) return null; - const categoriesFormatted = formatCategories(categoriesToDisplay, mobileCards); + if (categoriesFormatted.length === 0) return null; + return ( Date: Tue, 1 Oct 2024 15:47:28 +0200 Subject: [PATCH 03/86] Taking speculos screenshot only for Speculos tests --- apps/ledger-live-desktop/tests/utils/allureUtils.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/ledger-live-desktop/tests/utils/allureUtils.ts b/apps/ledger-live-desktop/tests/utils/allureUtils.ts index 291f1b754388..9efe66919c44 100644 --- a/apps/ledger-live-desktop/tests/utils/allureUtils.ts +++ b/apps/ledger-live-desktop/tests/utils/allureUtils.ts @@ -5,6 +5,7 @@ import fs from "fs"; import { takeScreenshot } from "@ledgerhq/live-common/e2e/speculos"; const readFileAsync = promisify(fs.readFile); +const IS_NOT_MOCK = process.env.MOCK == "0"; export async function addTmsLink(ids: string[]) { for (const id of ids) { @@ -16,11 +17,13 @@ export async function captureArtifacts(page: Page, testInfo: TestInfo) { const screenshot = await page.screenshot(); await testInfo.attach("Screenshot", { body: screenshot, contentType: "image/png" }); - const speculosScreenshot = await takeScreenshot(); - await testInfo.attach("Speculos Screenshot", { - body: speculosScreenshot, - contentType: "image/png", - }); + if (IS_NOT_MOCK) { + const speculosScreenshot = await takeScreenshot(); + await testInfo.attach("Speculos Screenshot", { + body: speculosScreenshot, + contentType: "image/png", + }); + } if (page.video()) { const finalVideoPath = await page.video()?.path(); From ef81f6aa9ce47f24832dd65dba7294b377841ae9 Mon Sep 17 00:00:00 2001 From: Kevin Le Seigle Date: Tue, 1 Oct 2024 16:49:12 +0200 Subject: [PATCH 04/86] chore: rename trustchain as ledger key ring protocol --- libs/{hw-trustchain => hw-ledger-key-ring-protocol}/.eslintrc.js | 0 .../.unimportedrc.json | 0 libs/{hw-trustchain => hw-ledger-key-ring-protocol}/CHANGELOG.md | 0 libs/{hw-trustchain => hw-ledger-key-ring-protocol}/README.md | 0 .../{hw-trustchain => hw-ledger-key-ring-protocol}/jest.config.js | 0 libs/{hw-trustchain => hw-ledger-key-ring-protocol}/package.json | 0 .../src/ApduDevice.ts | 0 .../src/BigEndian.ts | 0 .../src/CommandBlock.ts | 0 .../src/CommandStream.ts | 0 .../src/CommandStreamDecoder.ts | 0 .../src/CommandStreamEncoder.ts | 0 .../src/CommandStreamJsonifier.ts | 0 .../src/CommandStreamResolver.ts | 0 libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/Crypto.ts | 0 libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/Device.ts | 0 .../src/IndexedTree.ts | 0 .../src/NobleCrypto.ts | 0 .../src/PublicKey.ts | 0 libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/SeedId.ts | 0 .../src/StreamTree.ts | 0 .../src/StreamTreeCipher.ts | 0 .../src/__tests__/codec.ts | 0 .../src/__tests__/crypto.ts | 0 .../src/__tests__/indexed_tree.ts | 0 .../src/__tests__/key_exchange.ts | 0 .../src/__tests__/seedId.ts | 0 .../src/__tests__/shared_object.ts | 0 libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/index.ts | 0 libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/tlv.ts | 0 libs/{hw-trustchain => hw-ledger-key-ring-protocol}/tsconfig.json | 0 libs/{trustchain => ledger-key-ring-protocol}/.eslintrc.js | 0 libs/{trustchain => ledger-key-ring-protocol}/.unimportedrc.json | 0 libs/{trustchain => ledger-key-ring-protocol}/CHANGELOG.md | 0 libs/{trustchain => ledger-key-ring-protocol}/README.md | 0 libs/{trustchain => ledger-key-ring-protocol}/jest.config.js | 0 .../mocks/scenarios/addSameMemberMultipleTimes.json | 0 .../mocks/scenarios/create2trustchainInARow.json | 0 .../mocks/scenarios/getOrCreateTransactionCases.json | 0 .../mocks/scenarios/member3implicitlyAdded.json | 0 .../mocks/scenarios/membersManySelfAdd.json | 0 .../mocks/scenarios/randomMemberTryToDestroy.json | 0 .../mocks/scenarios/removeMemberWithTheWrongSeed.json | 0 .../mocks/scenarios/removedMemberEjectedOnDeletedTrustchain.json | 0 .../mocks/scenarios/removedMemberEjectedOnGetMembers.json | 0 .../mocks/scenarios/removedMemberEjectedOnRestore.json | 0 .../mocks/scenarios/removingAMemberCreatesAnInteraction.json | 0 .../mocks/scenarios/removingYourselfIsForbidden.json | 0 .../mocks/scenarios/success.json | 0 .../mocks/scenarios/tokenExpires.json | 0 .../mocks/scenarios/twoAddMembersFollowedByDeviceAdd.json | 0 .../mocks/scenarios/userRefusesAuth.json | 0 .../mocks/scenarios/userRefusesRemoveMember.json | 0 libs/{trustchain => ledger-key-ring-protocol}/package.json | 0 libs/{trustchain => ledger-key-ring-protocol}/scripts/README.md | 0 libs/{trustchain => ledger-key-ring-protocol}/scripts/e2e.ts | 0 .../src/HWDeviceProvider.ts | 0 .../src/__tests__/integration/mock.sdk.test.ts | 0 .../src/__tests__/integration/sdk.test.ts | 0 .../src/__tests__/tsconfig.json | 0 .../src/__tests__/unit/sdk.test.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/api.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/auth.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/errors.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/index.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/mockSdk.ts | 0 .../src/qrcode/cipher.test.ts | 0 .../{trustchain => ledger-key-ring-protocol}/src/qrcode/cipher.ts | 0 .../src/qrcode/index.test.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/qrcode/index.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/qrcode/types.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/sdk.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/store.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/src/types.ts | 0 .../tests/scenarios/_template.ts | 0 .../tests/scenarios/addSameMemberMultipleTimes.ts | 0 .../tests/scenarios/create2trustchainInARow.ts | 0 .../tests/scenarios/getOrCreateTransactionCases.ts | 0 .../tests/scenarios/member3implicitlyAdded.ts | 0 .../tests/scenarios/membersManySelfAdd.ts | 0 .../tests/scenarios/randomMemberTryToDestroy.ts | 0 .../tests/scenarios/removeMemberWithTheWrongSeed.ts | 0 .../tests/scenarios/removedMemberEjectedOnDeletedTrustchain.ts | 0 .../tests/scenarios/removedMemberEjectedOnGetMembers.ts | 0 .../tests/scenarios/removedMemberEjectedOnRestore.ts | 0 .../tests/scenarios/removingAMemberCreatesAnInteraction.ts | 0 .../tests/scenarios/removingYourselfIsForbidden.ts | 0 .../tests/scenarios/success.ts | 0 .../tests/scenarios/tokenExpires.ts | 0 .../tests/scenarios/twoAddMembersFollowedByDeviceAdd.ts | 0 .../tests/scenarios/userRefusesAuth.ts | 0 .../tests/scenarios/userRefusesRemoveMember.ts | 0 .../tests/test-helpers/recordTrustchainSdkTests.ts | 0 .../tests/test-helpers/replayTrustchainSdkTests.ts | 0 .../tests/test-helpers/types.ts | 0 libs/{trustchain => ledger-key-ring-protocol}/tests/tsconfig.json | 0 libs/{trustchain => ledger-key-ring-protocol}/tsconfig.json | 0 97 files changed, 0 insertions(+), 0 deletions(-) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/.eslintrc.js (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/.unimportedrc.json (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/CHANGELOG.md (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/README.md (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/jest.config.js (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/package.json (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/ApduDevice.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/BigEndian.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/CommandBlock.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/CommandStream.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/CommandStreamDecoder.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/CommandStreamEncoder.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/CommandStreamJsonifier.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/CommandStreamResolver.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/Crypto.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/Device.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/IndexedTree.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/NobleCrypto.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/PublicKey.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/SeedId.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/StreamTree.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/StreamTreeCipher.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/__tests__/codec.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/__tests__/crypto.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/__tests__/indexed_tree.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/__tests__/key_exchange.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/__tests__/seedId.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/__tests__/shared_object.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/index.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/src/tlv.ts (100%) rename libs/{hw-trustchain => hw-ledger-key-ring-protocol}/tsconfig.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/.eslintrc.js (100%) rename libs/{trustchain => ledger-key-ring-protocol}/.unimportedrc.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/CHANGELOG.md (100%) rename libs/{trustchain => ledger-key-ring-protocol}/README.md (100%) rename libs/{trustchain => ledger-key-ring-protocol}/jest.config.js (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/addSameMemberMultipleTimes.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/create2trustchainInARow.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/getOrCreateTransactionCases.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/member3implicitlyAdded.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/membersManySelfAdd.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/randomMemberTryToDestroy.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/removeMemberWithTheWrongSeed.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/removedMemberEjectedOnDeletedTrustchain.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/removedMemberEjectedOnGetMembers.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/removedMemberEjectedOnRestore.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/removingAMemberCreatesAnInteraction.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/removingYourselfIsForbidden.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/success.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/tokenExpires.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/twoAddMembersFollowedByDeviceAdd.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/userRefusesAuth.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/mocks/scenarios/userRefusesRemoveMember.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/package.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/scripts/README.md (100%) rename libs/{trustchain => ledger-key-ring-protocol}/scripts/e2e.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/HWDeviceProvider.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/__tests__/integration/mock.sdk.test.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/__tests__/integration/sdk.test.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/__tests__/tsconfig.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/__tests__/unit/sdk.test.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/api.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/auth.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/errors.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/index.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/mockSdk.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/qrcode/cipher.test.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/qrcode/cipher.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/qrcode/index.test.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/qrcode/index.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/qrcode/types.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/sdk.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/store.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/src/types.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/_template.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/addSameMemberMultipleTimes.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/create2trustchainInARow.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/getOrCreateTransactionCases.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/member3implicitlyAdded.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/membersManySelfAdd.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/randomMemberTryToDestroy.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/removeMemberWithTheWrongSeed.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/removedMemberEjectedOnDeletedTrustchain.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/removedMemberEjectedOnGetMembers.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/removedMemberEjectedOnRestore.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/removingAMemberCreatesAnInteraction.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/removingYourselfIsForbidden.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/success.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/tokenExpires.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/twoAddMembersFollowedByDeviceAdd.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/userRefusesAuth.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/scenarios/userRefusesRemoveMember.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/test-helpers/recordTrustchainSdkTests.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/test-helpers/replayTrustchainSdkTests.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/test-helpers/types.ts (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tests/tsconfig.json (100%) rename libs/{trustchain => ledger-key-ring-protocol}/tsconfig.json (100%) diff --git a/libs/hw-trustchain/.eslintrc.js b/libs/hw-ledger-key-ring-protocol/.eslintrc.js similarity index 100% rename from libs/hw-trustchain/.eslintrc.js rename to libs/hw-ledger-key-ring-protocol/.eslintrc.js diff --git a/libs/hw-trustchain/.unimportedrc.json b/libs/hw-ledger-key-ring-protocol/.unimportedrc.json similarity index 100% rename from libs/hw-trustchain/.unimportedrc.json rename to libs/hw-ledger-key-ring-protocol/.unimportedrc.json diff --git a/libs/hw-trustchain/CHANGELOG.md b/libs/hw-ledger-key-ring-protocol/CHANGELOG.md similarity index 100% rename from libs/hw-trustchain/CHANGELOG.md rename to libs/hw-ledger-key-ring-protocol/CHANGELOG.md diff --git a/libs/hw-trustchain/README.md b/libs/hw-ledger-key-ring-protocol/README.md similarity index 100% rename from libs/hw-trustchain/README.md rename to libs/hw-ledger-key-ring-protocol/README.md diff --git a/libs/hw-trustchain/jest.config.js b/libs/hw-ledger-key-ring-protocol/jest.config.js similarity index 100% rename from libs/hw-trustchain/jest.config.js rename to libs/hw-ledger-key-ring-protocol/jest.config.js diff --git a/libs/hw-trustchain/package.json b/libs/hw-ledger-key-ring-protocol/package.json similarity index 100% rename from libs/hw-trustchain/package.json rename to libs/hw-ledger-key-ring-protocol/package.json diff --git a/libs/hw-trustchain/src/ApduDevice.ts b/libs/hw-ledger-key-ring-protocol/src/ApduDevice.ts similarity index 100% rename from libs/hw-trustchain/src/ApduDevice.ts rename to libs/hw-ledger-key-ring-protocol/src/ApduDevice.ts diff --git a/libs/hw-trustchain/src/BigEndian.ts b/libs/hw-ledger-key-ring-protocol/src/BigEndian.ts similarity index 100% rename from libs/hw-trustchain/src/BigEndian.ts rename to libs/hw-ledger-key-ring-protocol/src/BigEndian.ts diff --git a/libs/hw-trustchain/src/CommandBlock.ts b/libs/hw-ledger-key-ring-protocol/src/CommandBlock.ts similarity index 100% rename from libs/hw-trustchain/src/CommandBlock.ts rename to libs/hw-ledger-key-ring-protocol/src/CommandBlock.ts diff --git a/libs/hw-trustchain/src/CommandStream.ts b/libs/hw-ledger-key-ring-protocol/src/CommandStream.ts similarity index 100% rename from libs/hw-trustchain/src/CommandStream.ts rename to libs/hw-ledger-key-ring-protocol/src/CommandStream.ts diff --git a/libs/hw-trustchain/src/CommandStreamDecoder.ts b/libs/hw-ledger-key-ring-protocol/src/CommandStreamDecoder.ts similarity index 100% rename from libs/hw-trustchain/src/CommandStreamDecoder.ts rename to libs/hw-ledger-key-ring-protocol/src/CommandStreamDecoder.ts diff --git a/libs/hw-trustchain/src/CommandStreamEncoder.ts b/libs/hw-ledger-key-ring-protocol/src/CommandStreamEncoder.ts similarity index 100% rename from libs/hw-trustchain/src/CommandStreamEncoder.ts rename to libs/hw-ledger-key-ring-protocol/src/CommandStreamEncoder.ts diff --git a/libs/hw-trustchain/src/CommandStreamJsonifier.ts b/libs/hw-ledger-key-ring-protocol/src/CommandStreamJsonifier.ts similarity index 100% rename from libs/hw-trustchain/src/CommandStreamJsonifier.ts rename to libs/hw-ledger-key-ring-protocol/src/CommandStreamJsonifier.ts diff --git a/libs/hw-trustchain/src/CommandStreamResolver.ts b/libs/hw-ledger-key-ring-protocol/src/CommandStreamResolver.ts similarity index 100% rename from libs/hw-trustchain/src/CommandStreamResolver.ts rename to libs/hw-ledger-key-ring-protocol/src/CommandStreamResolver.ts diff --git a/libs/hw-trustchain/src/Crypto.ts b/libs/hw-ledger-key-ring-protocol/src/Crypto.ts similarity index 100% rename from libs/hw-trustchain/src/Crypto.ts rename to libs/hw-ledger-key-ring-protocol/src/Crypto.ts diff --git a/libs/hw-trustchain/src/Device.ts b/libs/hw-ledger-key-ring-protocol/src/Device.ts similarity index 100% rename from libs/hw-trustchain/src/Device.ts rename to libs/hw-ledger-key-ring-protocol/src/Device.ts diff --git a/libs/hw-trustchain/src/IndexedTree.ts b/libs/hw-ledger-key-ring-protocol/src/IndexedTree.ts similarity index 100% rename from libs/hw-trustchain/src/IndexedTree.ts rename to libs/hw-ledger-key-ring-protocol/src/IndexedTree.ts diff --git a/libs/hw-trustchain/src/NobleCrypto.ts b/libs/hw-ledger-key-ring-protocol/src/NobleCrypto.ts similarity index 100% rename from libs/hw-trustchain/src/NobleCrypto.ts rename to libs/hw-ledger-key-ring-protocol/src/NobleCrypto.ts diff --git a/libs/hw-trustchain/src/PublicKey.ts b/libs/hw-ledger-key-ring-protocol/src/PublicKey.ts similarity index 100% rename from libs/hw-trustchain/src/PublicKey.ts rename to libs/hw-ledger-key-ring-protocol/src/PublicKey.ts diff --git a/libs/hw-trustchain/src/SeedId.ts b/libs/hw-ledger-key-ring-protocol/src/SeedId.ts similarity index 100% rename from libs/hw-trustchain/src/SeedId.ts rename to libs/hw-ledger-key-ring-protocol/src/SeedId.ts diff --git a/libs/hw-trustchain/src/StreamTree.ts b/libs/hw-ledger-key-ring-protocol/src/StreamTree.ts similarity index 100% rename from libs/hw-trustchain/src/StreamTree.ts rename to libs/hw-ledger-key-ring-protocol/src/StreamTree.ts diff --git a/libs/hw-trustchain/src/StreamTreeCipher.ts b/libs/hw-ledger-key-ring-protocol/src/StreamTreeCipher.ts similarity index 100% rename from libs/hw-trustchain/src/StreamTreeCipher.ts rename to libs/hw-ledger-key-ring-protocol/src/StreamTreeCipher.ts diff --git a/libs/hw-trustchain/src/__tests__/codec.ts b/libs/hw-ledger-key-ring-protocol/src/__tests__/codec.ts similarity index 100% rename from libs/hw-trustchain/src/__tests__/codec.ts rename to libs/hw-ledger-key-ring-protocol/src/__tests__/codec.ts diff --git a/libs/hw-trustchain/src/__tests__/crypto.ts b/libs/hw-ledger-key-ring-protocol/src/__tests__/crypto.ts similarity index 100% rename from libs/hw-trustchain/src/__tests__/crypto.ts rename to libs/hw-ledger-key-ring-protocol/src/__tests__/crypto.ts diff --git a/libs/hw-trustchain/src/__tests__/indexed_tree.ts b/libs/hw-ledger-key-ring-protocol/src/__tests__/indexed_tree.ts similarity index 100% rename from libs/hw-trustchain/src/__tests__/indexed_tree.ts rename to libs/hw-ledger-key-ring-protocol/src/__tests__/indexed_tree.ts diff --git a/libs/hw-trustchain/src/__tests__/key_exchange.ts b/libs/hw-ledger-key-ring-protocol/src/__tests__/key_exchange.ts similarity index 100% rename from libs/hw-trustchain/src/__tests__/key_exchange.ts rename to libs/hw-ledger-key-ring-protocol/src/__tests__/key_exchange.ts diff --git a/libs/hw-trustchain/src/__tests__/seedId.ts b/libs/hw-ledger-key-ring-protocol/src/__tests__/seedId.ts similarity index 100% rename from libs/hw-trustchain/src/__tests__/seedId.ts rename to libs/hw-ledger-key-ring-protocol/src/__tests__/seedId.ts diff --git a/libs/hw-trustchain/src/__tests__/shared_object.ts b/libs/hw-ledger-key-ring-protocol/src/__tests__/shared_object.ts similarity index 100% rename from libs/hw-trustchain/src/__tests__/shared_object.ts rename to libs/hw-ledger-key-ring-protocol/src/__tests__/shared_object.ts diff --git a/libs/hw-trustchain/src/index.ts b/libs/hw-ledger-key-ring-protocol/src/index.ts similarity index 100% rename from libs/hw-trustchain/src/index.ts rename to libs/hw-ledger-key-ring-protocol/src/index.ts diff --git a/libs/hw-trustchain/src/tlv.ts b/libs/hw-ledger-key-ring-protocol/src/tlv.ts similarity index 100% rename from libs/hw-trustchain/src/tlv.ts rename to libs/hw-ledger-key-ring-protocol/src/tlv.ts diff --git a/libs/hw-trustchain/tsconfig.json b/libs/hw-ledger-key-ring-protocol/tsconfig.json similarity index 100% rename from libs/hw-trustchain/tsconfig.json rename to libs/hw-ledger-key-ring-protocol/tsconfig.json diff --git a/libs/trustchain/.eslintrc.js b/libs/ledger-key-ring-protocol/.eslintrc.js similarity index 100% rename from libs/trustchain/.eslintrc.js rename to libs/ledger-key-ring-protocol/.eslintrc.js diff --git a/libs/trustchain/.unimportedrc.json b/libs/ledger-key-ring-protocol/.unimportedrc.json similarity index 100% rename from libs/trustchain/.unimportedrc.json rename to libs/ledger-key-ring-protocol/.unimportedrc.json diff --git a/libs/trustchain/CHANGELOG.md b/libs/ledger-key-ring-protocol/CHANGELOG.md similarity index 100% rename from libs/trustchain/CHANGELOG.md rename to libs/ledger-key-ring-protocol/CHANGELOG.md diff --git a/libs/trustchain/README.md b/libs/ledger-key-ring-protocol/README.md similarity index 100% rename from libs/trustchain/README.md rename to libs/ledger-key-ring-protocol/README.md diff --git a/libs/trustchain/jest.config.js b/libs/ledger-key-ring-protocol/jest.config.js similarity index 100% rename from libs/trustchain/jest.config.js rename to libs/ledger-key-ring-protocol/jest.config.js diff --git a/libs/trustchain/mocks/scenarios/addSameMemberMultipleTimes.json b/libs/ledger-key-ring-protocol/mocks/scenarios/addSameMemberMultipleTimes.json similarity index 100% rename from libs/trustchain/mocks/scenarios/addSameMemberMultipleTimes.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/addSameMemberMultipleTimes.json diff --git a/libs/trustchain/mocks/scenarios/create2trustchainInARow.json b/libs/ledger-key-ring-protocol/mocks/scenarios/create2trustchainInARow.json similarity index 100% rename from libs/trustchain/mocks/scenarios/create2trustchainInARow.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/create2trustchainInARow.json diff --git a/libs/trustchain/mocks/scenarios/getOrCreateTransactionCases.json b/libs/ledger-key-ring-protocol/mocks/scenarios/getOrCreateTransactionCases.json similarity index 100% rename from libs/trustchain/mocks/scenarios/getOrCreateTransactionCases.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/getOrCreateTransactionCases.json diff --git a/libs/trustchain/mocks/scenarios/member3implicitlyAdded.json b/libs/ledger-key-ring-protocol/mocks/scenarios/member3implicitlyAdded.json similarity index 100% rename from libs/trustchain/mocks/scenarios/member3implicitlyAdded.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/member3implicitlyAdded.json diff --git a/libs/trustchain/mocks/scenarios/membersManySelfAdd.json b/libs/ledger-key-ring-protocol/mocks/scenarios/membersManySelfAdd.json similarity index 100% rename from libs/trustchain/mocks/scenarios/membersManySelfAdd.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/membersManySelfAdd.json diff --git a/libs/trustchain/mocks/scenarios/randomMemberTryToDestroy.json b/libs/ledger-key-ring-protocol/mocks/scenarios/randomMemberTryToDestroy.json similarity index 100% rename from libs/trustchain/mocks/scenarios/randomMemberTryToDestroy.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/randomMemberTryToDestroy.json diff --git a/libs/trustchain/mocks/scenarios/removeMemberWithTheWrongSeed.json b/libs/ledger-key-ring-protocol/mocks/scenarios/removeMemberWithTheWrongSeed.json similarity index 100% rename from libs/trustchain/mocks/scenarios/removeMemberWithTheWrongSeed.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/removeMemberWithTheWrongSeed.json diff --git a/libs/trustchain/mocks/scenarios/removedMemberEjectedOnDeletedTrustchain.json b/libs/ledger-key-ring-protocol/mocks/scenarios/removedMemberEjectedOnDeletedTrustchain.json similarity index 100% rename from libs/trustchain/mocks/scenarios/removedMemberEjectedOnDeletedTrustchain.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/removedMemberEjectedOnDeletedTrustchain.json diff --git a/libs/trustchain/mocks/scenarios/removedMemberEjectedOnGetMembers.json b/libs/ledger-key-ring-protocol/mocks/scenarios/removedMemberEjectedOnGetMembers.json similarity index 100% rename from libs/trustchain/mocks/scenarios/removedMemberEjectedOnGetMembers.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/removedMemberEjectedOnGetMembers.json diff --git a/libs/trustchain/mocks/scenarios/removedMemberEjectedOnRestore.json b/libs/ledger-key-ring-protocol/mocks/scenarios/removedMemberEjectedOnRestore.json similarity index 100% rename from libs/trustchain/mocks/scenarios/removedMemberEjectedOnRestore.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/removedMemberEjectedOnRestore.json diff --git a/libs/trustchain/mocks/scenarios/removingAMemberCreatesAnInteraction.json b/libs/ledger-key-ring-protocol/mocks/scenarios/removingAMemberCreatesAnInteraction.json similarity index 100% rename from libs/trustchain/mocks/scenarios/removingAMemberCreatesAnInteraction.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/removingAMemberCreatesAnInteraction.json diff --git a/libs/trustchain/mocks/scenarios/removingYourselfIsForbidden.json b/libs/ledger-key-ring-protocol/mocks/scenarios/removingYourselfIsForbidden.json similarity index 100% rename from libs/trustchain/mocks/scenarios/removingYourselfIsForbidden.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/removingYourselfIsForbidden.json diff --git a/libs/trustchain/mocks/scenarios/success.json b/libs/ledger-key-ring-protocol/mocks/scenarios/success.json similarity index 100% rename from libs/trustchain/mocks/scenarios/success.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/success.json diff --git a/libs/trustchain/mocks/scenarios/tokenExpires.json b/libs/ledger-key-ring-protocol/mocks/scenarios/tokenExpires.json similarity index 100% rename from libs/trustchain/mocks/scenarios/tokenExpires.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/tokenExpires.json diff --git a/libs/trustchain/mocks/scenarios/twoAddMembersFollowedByDeviceAdd.json b/libs/ledger-key-ring-protocol/mocks/scenarios/twoAddMembersFollowedByDeviceAdd.json similarity index 100% rename from libs/trustchain/mocks/scenarios/twoAddMembersFollowedByDeviceAdd.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/twoAddMembersFollowedByDeviceAdd.json diff --git a/libs/trustchain/mocks/scenarios/userRefusesAuth.json b/libs/ledger-key-ring-protocol/mocks/scenarios/userRefusesAuth.json similarity index 100% rename from libs/trustchain/mocks/scenarios/userRefusesAuth.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/userRefusesAuth.json diff --git a/libs/trustchain/mocks/scenarios/userRefusesRemoveMember.json b/libs/ledger-key-ring-protocol/mocks/scenarios/userRefusesRemoveMember.json similarity index 100% rename from libs/trustchain/mocks/scenarios/userRefusesRemoveMember.json rename to libs/ledger-key-ring-protocol/mocks/scenarios/userRefusesRemoveMember.json diff --git a/libs/trustchain/package.json b/libs/ledger-key-ring-protocol/package.json similarity index 100% rename from libs/trustchain/package.json rename to libs/ledger-key-ring-protocol/package.json diff --git a/libs/trustchain/scripts/README.md b/libs/ledger-key-ring-protocol/scripts/README.md similarity index 100% rename from libs/trustchain/scripts/README.md rename to libs/ledger-key-ring-protocol/scripts/README.md diff --git a/libs/trustchain/scripts/e2e.ts b/libs/ledger-key-ring-protocol/scripts/e2e.ts similarity index 100% rename from libs/trustchain/scripts/e2e.ts rename to libs/ledger-key-ring-protocol/scripts/e2e.ts diff --git a/libs/trustchain/src/HWDeviceProvider.ts b/libs/ledger-key-ring-protocol/src/HWDeviceProvider.ts similarity index 100% rename from libs/trustchain/src/HWDeviceProvider.ts rename to libs/ledger-key-ring-protocol/src/HWDeviceProvider.ts diff --git a/libs/trustchain/src/__tests__/integration/mock.sdk.test.ts b/libs/ledger-key-ring-protocol/src/__tests__/integration/mock.sdk.test.ts similarity index 100% rename from libs/trustchain/src/__tests__/integration/mock.sdk.test.ts rename to libs/ledger-key-ring-protocol/src/__tests__/integration/mock.sdk.test.ts diff --git a/libs/trustchain/src/__tests__/integration/sdk.test.ts b/libs/ledger-key-ring-protocol/src/__tests__/integration/sdk.test.ts similarity index 100% rename from libs/trustchain/src/__tests__/integration/sdk.test.ts rename to libs/ledger-key-ring-protocol/src/__tests__/integration/sdk.test.ts diff --git a/libs/trustchain/src/__tests__/tsconfig.json b/libs/ledger-key-ring-protocol/src/__tests__/tsconfig.json similarity index 100% rename from libs/trustchain/src/__tests__/tsconfig.json rename to libs/ledger-key-ring-protocol/src/__tests__/tsconfig.json diff --git a/libs/trustchain/src/__tests__/unit/sdk.test.ts b/libs/ledger-key-ring-protocol/src/__tests__/unit/sdk.test.ts similarity index 100% rename from libs/trustchain/src/__tests__/unit/sdk.test.ts rename to libs/ledger-key-ring-protocol/src/__tests__/unit/sdk.test.ts diff --git a/libs/trustchain/src/api.ts b/libs/ledger-key-ring-protocol/src/api.ts similarity index 100% rename from libs/trustchain/src/api.ts rename to libs/ledger-key-ring-protocol/src/api.ts diff --git a/libs/trustchain/src/auth.ts b/libs/ledger-key-ring-protocol/src/auth.ts similarity index 100% rename from libs/trustchain/src/auth.ts rename to libs/ledger-key-ring-protocol/src/auth.ts diff --git a/libs/trustchain/src/errors.ts b/libs/ledger-key-ring-protocol/src/errors.ts similarity index 100% rename from libs/trustchain/src/errors.ts rename to libs/ledger-key-ring-protocol/src/errors.ts diff --git a/libs/trustchain/src/index.ts b/libs/ledger-key-ring-protocol/src/index.ts similarity index 100% rename from libs/trustchain/src/index.ts rename to libs/ledger-key-ring-protocol/src/index.ts diff --git a/libs/trustchain/src/mockSdk.ts b/libs/ledger-key-ring-protocol/src/mockSdk.ts similarity index 100% rename from libs/trustchain/src/mockSdk.ts rename to libs/ledger-key-ring-protocol/src/mockSdk.ts diff --git a/libs/trustchain/src/qrcode/cipher.test.ts b/libs/ledger-key-ring-protocol/src/qrcode/cipher.test.ts similarity index 100% rename from libs/trustchain/src/qrcode/cipher.test.ts rename to libs/ledger-key-ring-protocol/src/qrcode/cipher.test.ts diff --git a/libs/trustchain/src/qrcode/cipher.ts b/libs/ledger-key-ring-protocol/src/qrcode/cipher.ts similarity index 100% rename from libs/trustchain/src/qrcode/cipher.ts rename to libs/ledger-key-ring-protocol/src/qrcode/cipher.ts diff --git a/libs/trustchain/src/qrcode/index.test.ts b/libs/ledger-key-ring-protocol/src/qrcode/index.test.ts similarity index 100% rename from libs/trustchain/src/qrcode/index.test.ts rename to libs/ledger-key-ring-protocol/src/qrcode/index.test.ts diff --git a/libs/trustchain/src/qrcode/index.ts b/libs/ledger-key-ring-protocol/src/qrcode/index.ts similarity index 100% rename from libs/trustchain/src/qrcode/index.ts rename to libs/ledger-key-ring-protocol/src/qrcode/index.ts diff --git a/libs/trustchain/src/qrcode/types.ts b/libs/ledger-key-ring-protocol/src/qrcode/types.ts similarity index 100% rename from libs/trustchain/src/qrcode/types.ts rename to libs/ledger-key-ring-protocol/src/qrcode/types.ts diff --git a/libs/trustchain/src/sdk.ts b/libs/ledger-key-ring-protocol/src/sdk.ts similarity index 100% rename from libs/trustchain/src/sdk.ts rename to libs/ledger-key-ring-protocol/src/sdk.ts diff --git a/libs/trustchain/src/store.ts b/libs/ledger-key-ring-protocol/src/store.ts similarity index 100% rename from libs/trustchain/src/store.ts rename to libs/ledger-key-ring-protocol/src/store.ts diff --git a/libs/trustchain/src/types.ts b/libs/ledger-key-ring-protocol/src/types.ts similarity index 100% rename from libs/trustchain/src/types.ts rename to libs/ledger-key-ring-protocol/src/types.ts diff --git a/libs/trustchain/tests/scenarios/_template.ts b/libs/ledger-key-ring-protocol/tests/scenarios/_template.ts similarity index 100% rename from libs/trustchain/tests/scenarios/_template.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/_template.ts diff --git a/libs/trustchain/tests/scenarios/addSameMemberMultipleTimes.ts b/libs/ledger-key-ring-protocol/tests/scenarios/addSameMemberMultipleTimes.ts similarity index 100% rename from libs/trustchain/tests/scenarios/addSameMemberMultipleTimes.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/addSameMemberMultipleTimes.ts diff --git a/libs/trustchain/tests/scenarios/create2trustchainInARow.ts b/libs/ledger-key-ring-protocol/tests/scenarios/create2trustchainInARow.ts similarity index 100% rename from libs/trustchain/tests/scenarios/create2trustchainInARow.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/create2trustchainInARow.ts diff --git a/libs/trustchain/tests/scenarios/getOrCreateTransactionCases.ts b/libs/ledger-key-ring-protocol/tests/scenarios/getOrCreateTransactionCases.ts similarity index 100% rename from libs/trustchain/tests/scenarios/getOrCreateTransactionCases.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/getOrCreateTransactionCases.ts diff --git a/libs/trustchain/tests/scenarios/member3implicitlyAdded.ts b/libs/ledger-key-ring-protocol/tests/scenarios/member3implicitlyAdded.ts similarity index 100% rename from libs/trustchain/tests/scenarios/member3implicitlyAdded.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/member3implicitlyAdded.ts diff --git a/libs/trustchain/tests/scenarios/membersManySelfAdd.ts b/libs/ledger-key-ring-protocol/tests/scenarios/membersManySelfAdd.ts similarity index 100% rename from libs/trustchain/tests/scenarios/membersManySelfAdd.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/membersManySelfAdd.ts diff --git a/libs/trustchain/tests/scenarios/randomMemberTryToDestroy.ts b/libs/ledger-key-ring-protocol/tests/scenarios/randomMemberTryToDestroy.ts similarity index 100% rename from libs/trustchain/tests/scenarios/randomMemberTryToDestroy.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/randomMemberTryToDestroy.ts diff --git a/libs/trustchain/tests/scenarios/removeMemberWithTheWrongSeed.ts b/libs/ledger-key-ring-protocol/tests/scenarios/removeMemberWithTheWrongSeed.ts similarity index 100% rename from libs/trustchain/tests/scenarios/removeMemberWithTheWrongSeed.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/removeMemberWithTheWrongSeed.ts diff --git a/libs/trustchain/tests/scenarios/removedMemberEjectedOnDeletedTrustchain.ts b/libs/ledger-key-ring-protocol/tests/scenarios/removedMemberEjectedOnDeletedTrustchain.ts similarity index 100% rename from libs/trustchain/tests/scenarios/removedMemberEjectedOnDeletedTrustchain.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/removedMemberEjectedOnDeletedTrustchain.ts diff --git a/libs/trustchain/tests/scenarios/removedMemberEjectedOnGetMembers.ts b/libs/ledger-key-ring-protocol/tests/scenarios/removedMemberEjectedOnGetMembers.ts similarity index 100% rename from libs/trustchain/tests/scenarios/removedMemberEjectedOnGetMembers.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/removedMemberEjectedOnGetMembers.ts diff --git a/libs/trustchain/tests/scenarios/removedMemberEjectedOnRestore.ts b/libs/ledger-key-ring-protocol/tests/scenarios/removedMemberEjectedOnRestore.ts similarity index 100% rename from libs/trustchain/tests/scenarios/removedMemberEjectedOnRestore.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/removedMemberEjectedOnRestore.ts diff --git a/libs/trustchain/tests/scenarios/removingAMemberCreatesAnInteraction.ts b/libs/ledger-key-ring-protocol/tests/scenarios/removingAMemberCreatesAnInteraction.ts similarity index 100% rename from libs/trustchain/tests/scenarios/removingAMemberCreatesAnInteraction.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/removingAMemberCreatesAnInteraction.ts diff --git a/libs/trustchain/tests/scenarios/removingYourselfIsForbidden.ts b/libs/ledger-key-ring-protocol/tests/scenarios/removingYourselfIsForbidden.ts similarity index 100% rename from libs/trustchain/tests/scenarios/removingYourselfIsForbidden.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/removingYourselfIsForbidden.ts diff --git a/libs/trustchain/tests/scenarios/success.ts b/libs/ledger-key-ring-protocol/tests/scenarios/success.ts similarity index 100% rename from libs/trustchain/tests/scenarios/success.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/success.ts diff --git a/libs/trustchain/tests/scenarios/tokenExpires.ts b/libs/ledger-key-ring-protocol/tests/scenarios/tokenExpires.ts similarity index 100% rename from libs/trustchain/tests/scenarios/tokenExpires.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/tokenExpires.ts diff --git a/libs/trustchain/tests/scenarios/twoAddMembersFollowedByDeviceAdd.ts b/libs/ledger-key-ring-protocol/tests/scenarios/twoAddMembersFollowedByDeviceAdd.ts similarity index 100% rename from libs/trustchain/tests/scenarios/twoAddMembersFollowedByDeviceAdd.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/twoAddMembersFollowedByDeviceAdd.ts diff --git a/libs/trustchain/tests/scenarios/userRefusesAuth.ts b/libs/ledger-key-ring-protocol/tests/scenarios/userRefusesAuth.ts similarity index 100% rename from libs/trustchain/tests/scenarios/userRefusesAuth.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/userRefusesAuth.ts diff --git a/libs/trustchain/tests/scenarios/userRefusesRemoveMember.ts b/libs/ledger-key-ring-protocol/tests/scenarios/userRefusesRemoveMember.ts similarity index 100% rename from libs/trustchain/tests/scenarios/userRefusesRemoveMember.ts rename to libs/ledger-key-ring-protocol/tests/scenarios/userRefusesRemoveMember.ts diff --git a/libs/trustchain/tests/test-helpers/recordTrustchainSdkTests.ts b/libs/ledger-key-ring-protocol/tests/test-helpers/recordTrustchainSdkTests.ts similarity index 100% rename from libs/trustchain/tests/test-helpers/recordTrustchainSdkTests.ts rename to libs/ledger-key-ring-protocol/tests/test-helpers/recordTrustchainSdkTests.ts diff --git a/libs/trustchain/tests/test-helpers/replayTrustchainSdkTests.ts b/libs/ledger-key-ring-protocol/tests/test-helpers/replayTrustchainSdkTests.ts similarity index 100% rename from libs/trustchain/tests/test-helpers/replayTrustchainSdkTests.ts rename to libs/ledger-key-ring-protocol/tests/test-helpers/replayTrustchainSdkTests.ts diff --git a/libs/trustchain/tests/test-helpers/types.ts b/libs/ledger-key-ring-protocol/tests/test-helpers/types.ts similarity index 100% rename from libs/trustchain/tests/test-helpers/types.ts rename to libs/ledger-key-ring-protocol/tests/test-helpers/types.ts diff --git a/libs/trustchain/tests/tsconfig.json b/libs/ledger-key-ring-protocol/tests/tsconfig.json similarity index 100% rename from libs/trustchain/tests/tsconfig.json rename to libs/ledger-key-ring-protocol/tests/tsconfig.json diff --git a/libs/trustchain/tsconfig.json b/libs/ledger-key-ring-protocol/tsconfig.json similarity index 100% rename from libs/trustchain/tsconfig.json rename to libs/ledger-key-ring-protocol/tsconfig.json From 9032845a3cbadf40d545d6832e0280880e0be3d7 Mon Sep 17 00:00:00 2001 From: Kevin Le Seigle Date: Tue, 1 Oct 2024 16:56:06 +0200 Subject: [PATCH 05/86] fix: use ledger-key-ring-protocol naming --- .changeset/ten-paws-teach.md | 10 + apps/ledger-live-desktop/package.json | 4 +- .../features/WalletSync/__tests__/shared.tsx | 4 +- .../features/WalletSync/hooks/useAddMember.ts | 6 +- .../WalletSync/hooks/useDestroyTrustchain.ts | 2 +- .../features/WalletSync/hooks/useFlows.ts | 2 +- .../WalletSync/hooks/useGetMembers.ts | 7 +- .../hooks/useInitMemberCredentials.ts | 5 +- .../WalletSync/hooks/useLedgerSyncInfo.ts | 6 +- .../hooks/useOnTrustchainRefreshNeeded.ts | 10 +- .../features/WalletSync/hooks/useQRCode.ts | 8 +- .../WalletSync/hooks/useRemoveMember.ts | 6 +- .../WalletSync/hooks/useRestoreTrustchain.ts | 4 +- .../WalletSync/hooks/useTrustchainSdk.ts | 4 +- .../WalletSync/hooks/useWatchWalletSync.ts | 5 +- .../WalletSync/hooks/walletSync.hooks.ts | 4 +- .../screens/DeviceActions/openOrInstall.tsx | 2 +- .../01-ManageInstancesStep.tsx | 4 +- .../03-DeleteInstanceWithTrustchain.tsx | 2 +- .../04-DeletionFinalErrorStep.tsx | 2 +- .../screens/ManageInstances/index.tsx | 2 +- .../src/renderer/actions/trustchain.ts | 2 +- .../src/renderer/actions/walletSync.ts | 2 +- .../src/renderer/middlewares/db.ts | 2 +- .../src/renderer/reducers/index.ts | 2 +- .../src/renderer/reducers/trustchain.ts | 2 +- .../src/renderer/reducers/walletSync.ts | 2 +- .../Developer/WalletSync/Generator/index.tsx | 2 +- .../src/renderer/storage.ts | 2 +- .../__tests__/test-renderer.tsx | 2 +- apps/ledger-live-mobile/package.json | 4 +- .../types/WalletSyncNavigator.ts | 2 +- .../src/context/LedgerStore.tsx | 2 +- apps/ledger-live-mobile/src/db.ts | 2 +- apps/ledger-live-mobile/src/index.tsx | 2 +- .../AddAccount/components/StepFlow.tsx | 2 +- .../manageInstances.integration.test.tsx | 2 +- .../manageKey.integration.test.tsx | 2 +- .../WalletSync/__integrations__/shared.tsx | 2 +- ...synchronizeWithQrCode.integration.test.tsx | 2 +- .../walletSyncActivated.integration.test.tsx | 2 +- .../ManageInstances/ListInstances.tsx | 2 +- .../features/WalletSync/hooks/useAddMember.ts | 6 +- .../WalletSync/hooks/useDestroyTrustchain.ts | 2 +- .../WalletSync/hooks/useGetMembers.ts | 7 +- .../hooks/useInitMemberCredentials.ts | 5 +- .../WalletSync/hooks/useLedgerSyncStatus.ts | 4 +- .../hooks/useOnTrustchainRefreshNeeded.ts | 10 +- .../WalletSync/hooks/useQRCodeHost.ts | 8 +- .../WalletSync/hooks/useRemoveMember.ts | 6 +- .../WalletSync/hooks/useRestoreTrustchain.ts | 4 +- .../WalletSync/hooks/useSyncWithQrCode.ts | 8 +- .../WalletSync/hooks/useTrustchainSdk.ts | 4 +- .../WalletSync/hooks/useWatchWalletSync.ts | 5 +- .../WalletSync/hooks/walletSync.hooks.ts | 4 +- .../screens/DeviceSelection/index.tsx | 2 +- .../screens/LedgerSyncDeepLinkHandler.tsx | 2 +- .../WalletSync/screens/Manage/index.tsx | 2 +- .../DeletionInstructionDrawer.tsx | 2 +- .../useManageInstanceDrawer.ts | 4 +- .../src/reducers/trustchain.ts | 2 +- apps/ledger-live-mobile/src/reducers/types.ts | 2 +- .../src/screens/ImportAccounts/Scan.tsx | 2 +- .../Settings/General/WalletSyncRow.tsx | 2 +- apps/web-tools/package.json | 4 +- apps/web-tools/trustchain/components/App.tsx | 10 +- .../trustchain/components/AppAccountsSync.tsx | 4 +- .../trustchain/components/AppCloudSync.tsx | 2 +- .../components/AppDecryptUserData.tsx | 4 +- .../components/AppDestroyTrustchain.tsx | 2 +- .../components/AppEncryptUserData.tsx | 4 +- .../trustchain/components/AppGetMembers.tsx | 7 +- .../components/AppGetOrCreateTrustchain.tsx | 2 +- .../components/AppInitLiveCredentials.tsx | 2 +- .../trustchain/components/AppMemberRow.tsx | 2 +- .../components/AppQRCodeCandidate.tsx | 9 +- .../trustchain/components/AppQRCodeHost.tsx | 9 +- .../components/AppRestoreTrustchain.tsx | 2 +- .../trustchain/components/IdentityManager.tsx | 4 +- apps/web-tools/trustchain/context.ts | 4 +- libs/hw-ledger-key-ring-protocol/package.json | 6 +- libs/ledger-key-ring-protocol/README.md | 4 +- libs/ledger-key-ring-protocol/package.json | 8 +- .../src/HWDeviceProvider.ts | 8 +- .../src/__tests__/unit/sdk.test.ts | 2 +- libs/ledger-key-ring-protocol/src/mockSdk.ts | 2 +- .../src/qrcode/cipher.test.ts | 2 +- .../src/qrcode/cipher.ts | 2 +- .../src/qrcode/index.test.ts | 2 +- .../src/qrcode/index.ts | 2 +- libs/ledger-key-ring-protocol/src/sdk.ts | 4 +- libs/ledger-key-ring-protocol/src/types.ts | 2 +- .../test-helpers/recordTrustchainSdkTests.ts | 2 +- .../test-helpers/replayTrustchainSdkTests.ts | 2 +- libs/live-wallet/package.json | 2 +- .../src/cloudsync/__tests__/cipher.test.ts | 2 +- .../src/cloudsync/__tests__/sdk.test.ts | 6 +- libs/live-wallet/src/cloudsync/api.ts | 2 +- libs/live-wallet/src/cloudsync/cipher.ts | 2 +- libs/live-wallet/src/cloudsync/sdk.ts | 8 +- .../src/walletsync/__mocks__/watchLoop.ts | 2 +- .../__tests__/trustchainLifecyle.test.ts | 2 +- .../createWalletSyncWatchLoop.test.ts | 2 +- .../walletsync/createWalletSyncWatchLoop.ts | 4 +- libs/live-wallet/src/walletsync/index.ts | 2 +- .../src/walletsync/trustchainLifecyle.ts | 2 +- pnpm-lock.yaml | 299 +++++++++--------- 107 files changed, 375 insertions(+), 315 deletions(-) create mode 100644 .changeset/ten-paws-teach.md diff --git a/.changeset/ten-paws-teach.md b/.changeset/ten-paws-teach.md new file mode 100644 index 000000000000..acf8cc709747 --- /dev/null +++ b/.changeset/ten-paws-teach.md @@ -0,0 +1,10 @@ +--- +"@ledgerhq/hw-ledger-key-ring-protocol": minor +"@ledgerhq/ledger-key-ring-protocol": minor +"ledger-live-desktop": minor +"live-mobile": minor +"@ledgerhq/live-wallet": minor +"@ledgerhq/web-tools": minor +--- + +Use Ledger Key Ring Protocol naming diff --git a/apps/ledger-live-desktop/package.json b/apps/ledger-live-desktop/package.json index d376c2772aa7..59722aa412d8 100644 --- a/apps/ledger-live-desktop/package.json +++ b/apps/ledger-live-desktop/package.json @@ -66,7 +66,7 @@ "@ledgerhq/hw-transport-node-hid-singleton": "workspace:^", "@ledgerhq/hw-transport-node-speculos-http": "workspace:^", "@ledgerhq/hw-transport-vault": "workspace:^", - "@ledgerhq/hw-trustchain": "workspace:^", + "@ledgerhq/hw-ledger-key-ring-protocol": "workspace:^", "@ledgerhq/live-common": "workspace:^", "@ledgerhq/live-config": "workspace:^", "@ledgerhq/live-countervalues": "workspace:^", @@ -78,7 +78,7 @@ "@ledgerhq/live-wallet": "workspace:^", "@ledgerhq/logs": "workspace:^", "@ledgerhq/react-ui": "workspace:^", - "@ledgerhq/trustchain": "workspace:^", + "@ledgerhq/ledger-key-ring-protocol": "workspace:^", "@ledgerhq/types-cryptoassets": "workspace:^", "@ledgerhq/types-devices": "workspace:^", "@ledgerhq/types-live": "workspace:^", diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/__tests__/shared.tsx b/apps/ledger-live-desktop/src/newArch/features/WalletSync/__tests__/shared.tsx index 03152bfc5f87..6f25c1143a82 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/__tests__/shared.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/__tests__/shared.tsx @@ -1,7 +1,7 @@ import React from "react"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; import WalletSyncRow from "~/renderer/screens/settings/sections/General/WalletSync"; -import { getSdk } from "@ledgerhq/trustchain/index"; +import { getSdk } from "@ledgerhq/ledger-key-ring-protocol/index"; import { EMPTY } from "rxjs"; import { Flow, initialStateWalletSync, Step } from "~/renderer/reducers/walletSync"; import getWalletSyncEnvironmentParams from "@ledgerhq/live-common/walletSync/getEnvironmentParams"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useAddMember.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useAddMember.ts index fea26ed934c7..6fcb93d0db2c 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useAddMember.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useAddMember.ts @@ -2,17 +2,17 @@ import { memberCredentialsSelector, setTrustchain, trustchainSelector, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useDispatch, useSelector } from "react-redux"; import { setFlow } from "~/renderer/actions/walletSync"; import { Flow, Step } from "~/renderer/reducers/walletSync"; import { useTrustchainSdk } from "./useTrustchainSdk"; -import { TrustchainResult, TrustchainResultType } from "@ledgerhq/trustchain/types"; +import { TrustchainResult, TrustchainResultType } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useCallback, useEffect, useRef, useState } from "react"; import { TrustchainAlreadyInitialized, TrustchainAlreadyInitializedWithOtherSeed, -} from "@ledgerhq/trustchain/errors"; +} from "@ledgerhq/ledger-key-ring-protocol/errors"; export function useAddMember({ device }: { device: Device | null }) { const dispatch = useDispatch(); diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useDestroyTrustchain.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useDestroyTrustchain.ts index 27e3d5d642dd..b1be931f3798 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useDestroyTrustchain.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useDestroyTrustchain.ts @@ -4,7 +4,7 @@ import { trustchainSelector, resetTrustchainStore, memberCredentialsSelector, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useMutation } from "@tanstack/react-query"; import { setFlow } from "~/renderer/actions/walletSync"; import { Flow, Step } from "~/renderer/reducers/walletSync"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useFlows.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useFlows.ts index a7b46608b976..20f88c23a678 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useFlows.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useFlows.ts @@ -1,4 +1,4 @@ -import { trustchainSelector } from "@ledgerhq/trustchain/store"; +import { trustchainSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; import { useDispatch, useSelector } from "react-redux"; import { setFlow } from "~/renderer/actions/walletSync"; import { diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useGetMembers.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useGetMembers.ts index f87b2d9e14fb..32656e62ffa9 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useGetMembers.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useGetMembers.ts @@ -1,11 +1,14 @@ -import { memberCredentialsSelector, trustchainSelector } from "@ledgerhq/trustchain/store"; +import { + memberCredentialsSelector, + trustchainSelector, +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useSelector } from "react-redux"; import { useTrustchainSdk } from "./useTrustchainSdk"; import { QueryKey } from "./type.hooks"; import { useQuery } from "@tanstack/react-query"; import { useEffect } from "react"; import { useLifeCycle } from "./walletSync.hooks"; -import { TrustchainNotFound } from "@ledgerhq/trustchain/errors"; +import { TrustchainNotFound } from "@ledgerhq/ledger-key-ring-protocol/errors"; export function useGetMembers() { const sdk = useTrustchainSdk(); diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useInitMemberCredentials.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useInitMemberCredentials.ts index 92544d7becdf..987c6deee9d3 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useInitMemberCredentials.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useInitMemberCredentials.ts @@ -1,4 +1,7 @@ -import { memberCredentialsSelector, setMemberCredentials } from "@ledgerhq/trustchain/store"; +import { + memberCredentialsSelector, + setMemberCredentials, +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useCallback, useEffect } from "react"; import { useDispatch, useSelector } from "react-redux"; import { useTrustchainSdk } from "./useTrustchainSdk"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useLedgerSyncInfo.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useLedgerSyncInfo.ts index 24d390df3a41..ae4e189c3706 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useLedgerSyncInfo.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useLedgerSyncInfo.ts @@ -1,12 +1,14 @@ import { useQueries, UseQueryResult } from "@tanstack/react-query"; import { QueryKey } from "./type.hooks"; -import getTrustchainApi, { StatusAPIResponse as TrustchainStatus } from "@ledgerhq/trustchain/api"; +import getTrustchainApi, { + StatusAPIResponse as TrustchainStatus, +} from "@ledgerhq/ledger-key-ring-protocol/api"; import getCloudSyncApi, { StatusAPIResponse as CloudSyncStatus, } from "@ledgerhq/live-wallet/cloudsync/api"; import { useFeature } from "@ledgerhq/live-common/featureFlags/index"; import getWalletSyncEnvironmentParams from "@ledgerhq/live-common/walletSync/getEnvironmentParams"; -import { trustchainSelector } from "@ledgerhq/trustchain/store"; +import { trustchainSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; import { useSelector } from "react-redux"; import { walletSelector } from "~/renderer/reducers/wallet"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useOnTrustchainRefreshNeeded.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useOnTrustchainRefreshNeeded.ts index b1f771272a32..a02dfd3c052e 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useOnTrustchainRefreshNeeded.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useOnTrustchainRefreshNeeded.ts @@ -1,8 +1,12 @@ import { useCallback } from "react"; import { useDispatch } from "react-redux"; -import { MemberCredentials, Trustchain, TrustchainSDK } from "@ledgerhq/trustchain/types"; -import { setTrustchain, resetTrustchainStore } from "@ledgerhq/trustchain/store"; -import { TrustchainEjected } from "@ledgerhq/trustchain/errors"; +import { + MemberCredentials, + Trustchain, + TrustchainSDK, +} from "@ledgerhq/ledger-key-ring-protocol/types"; +import { setTrustchain, resetTrustchainStore } from "@ledgerhq/ledger-key-ring-protocol/store"; +import { TrustchainEjected } from "@ledgerhq/ledger-key-ring-protocol/errors"; import { log } from "@ledgerhq/logs"; export function useOnTrustchainRefreshNeeded( diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useQRCode.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useQRCode.ts index 54bf875c2282..8fe0d5d10521 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useQRCode.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useQRCode.ts @@ -1,12 +1,12 @@ import { useCallback, useState } from "react"; -import { createQRCodeHostInstance } from "@ledgerhq/trustchain/qrcode/index"; +import { createQRCodeHostInstance } from "@ledgerhq/ledger-key-ring-protocol/qrcode/index"; import { InvalidDigitsError, NoTrustchainInitialized, QRCodeWSClosed, TrustchainAlreadyInitialized, -} from "@ledgerhq/trustchain/errors"; -import { MemberCredentials } from "@ledgerhq/trustchain/types"; +} from "@ledgerhq/ledger-key-ring-protocol/errors"; +import { MemberCredentials } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useDispatch, useSelector } from "react-redux"; import { setFlow, setQrCodePinCode } from "~/renderer/actions/walletSync"; import { Flow, Step } from "~/renderer/reducers/walletSync"; @@ -14,7 +14,7 @@ import { trustchainSelector, memberCredentialsSelector, setTrustchain, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useTrustchainSdk } from "./useTrustchainSdk"; import { useFeature } from "@ledgerhq/live-common/featureFlags/index"; import getWalletSyncEnvironmentParams from "@ledgerhq/live-common/walletSync/getEnvironmentParams"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useRemoveMember.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useRemoveMember.ts index 4caa5eb26a2b..8653a93a5487 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useRemoveMember.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useRemoveMember.ts @@ -2,14 +2,14 @@ import { memberCredentialsSelector, setTrustchain, trustchainSelector, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useDispatch, useSelector } from "react-redux"; import { setFlow } from "~/renderer/actions/walletSync"; import { Flow, Step } from "~/renderer/reducers/walletSync"; import { useTrustchainSdk } from "./useTrustchainSdk"; -import { TrustchainMember, Trustchain } from "@ledgerhq/trustchain/types"; +import { TrustchainMember, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useCallback, useEffect, useRef, useState } from "react"; -import { TrustchainNotAllowed } from "@ledgerhq/trustchain/errors"; +import { TrustchainNotAllowed } from "@ledgerhq/ledger-key-ring-protocol/errors"; type Props = { device: Device | null; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useRestoreTrustchain.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useRestoreTrustchain.ts index bcce8916144f..206c35038808 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useRestoreTrustchain.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useRestoreTrustchain.ts @@ -2,8 +2,8 @@ import { memberCredentialsSelector, trustchainSelector, setTrustchain, -} from "@ledgerhq/trustchain/store"; -import { Trustchain, MemberCredentials } from "@ledgerhq/trustchain/types"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; +import { Trustchain, MemberCredentials } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useQuery } from "@tanstack/react-query"; import { useDispatch, useSelector } from "react-redux"; import { QueryKey } from "./type.hooks"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useTrustchainSdk.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useTrustchainSdk.ts index 005b22b69803..13c4d57e02ed 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useTrustchainSdk.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useTrustchainSdk.ts @@ -1,12 +1,12 @@ import { useMemo } from "react"; import { getEnv } from "@ledgerhq/live-env"; -import { getSdk } from "@ledgerhq/trustchain/index"; +import { getSdk } from "@ledgerhq/ledger-key-ring-protocol/index"; import { withDevice } from "@ledgerhq/live-common/hw/deviceAccess"; import { trustchainLifecycle } from "@ledgerhq/live-wallet/walletsync/index"; import { useStore } from "react-redux"; import { walletSelector } from "~/renderer/reducers/wallet"; import { walletSyncStateSelector } from "@ledgerhq/live-wallet/store"; -import { TrustchainSDK } from "@ledgerhq/trustchain/types"; +import { TrustchainSDK } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useFeature } from "@ledgerhq/live-common/featureFlags/index"; import getWalletSyncEnvironmentParams from "@ledgerhq/live-common/walletSync/getEnvironmentParams"; import { useInstanceName } from "./useInstanceName"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useWatchWalletSync.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useWatchWalletSync.ts index ea01985aa4d2..9bb85995b0bc 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useWatchWalletSync.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/useWatchWalletSync.ts @@ -13,7 +13,10 @@ import walletsync, { } from "@ledgerhq/live-wallet/walletsync/index"; import { getAccountBridge } from "@ledgerhq/live-common/bridge/index"; import { walletSelector } from "~/renderer/reducers/wallet"; -import { memberCredentialsSelector, trustchainSelector } from "@ledgerhq/trustchain/store"; +import { + memberCredentialsSelector, + trustchainSelector, +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { State } from "~/renderer/reducers"; import { cache as bridgeCache } from "~/renderer/bridge/cache"; import { diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/walletSync.hooks.ts b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/walletSync.hooks.ts index d897437a2fd6..b6700d6d9387 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/walletSync.hooks.ts +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/hooks/walletSync.hooks.ts @@ -1,4 +1,4 @@ -import { resetTrustchainStore } from "@ledgerhq/trustchain/store"; +import { resetTrustchainStore } from "@ledgerhq/ledger-key-ring-protocol/store"; import { useDispatch } from "react-redux"; import { ErrorType } from "./type.hooks"; import { setFlow } from "~/renderer/actions/walletSync"; @@ -7,7 +7,7 @@ import { TrustchainEjected, TrustchainNotAllowed, TrustchainOutdated, -} from "@ledgerhq/trustchain/errors"; +} from "@ledgerhq/ledger-key-ring-protocol/errors"; import { useRestoreTrustchain } from "./useRestoreTrustchain"; import { useTrustchainSdk } from "./useTrustchainSdk"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/DeviceActions/openOrInstall.tsx b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/DeviceActions/openOrInstall.tsx index 815aa740a953..6dc47788f32b 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/DeviceActions/openOrInstall.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/DeviceActions/openOrInstall.tsx @@ -5,7 +5,7 @@ import { mockedEventEmitter } from "~/renderer/components/debug/DebugMock"; import connectApp from "@ledgerhq/live-common/hw/connectApp"; import { Device } from "@ledgerhq/live-common/hw/actions/types"; import { createAction } from "@ledgerhq/live-common/hw/actions/app"; -import { TRUSTCHAIN_APP_NAME } from "@ledgerhq/hw-trustchain"; +import { TRUSTCHAIN_APP_NAME } from "@ledgerhq/hw-ledger-key-ring-protocol"; const action = createAction(getEnv("MOCK") ? mockedEventEmitter : connectApp); diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/01-ManageInstancesStep.tsx b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/01-ManageInstancesStep.tsx index 8784d72bbf1d..9b498768c826 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/01-ManageInstancesStep.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/01-ManageInstancesStep.tsx @@ -5,9 +5,9 @@ import { AnalyticsPage, useLedgerSyncAnalytics } from "../../hooks/useLedgerSync import TrackPage from "~/renderer/analytics/TrackPage"; import { TinyCard } from "../../components/TinyCard"; import { useInstances } from "./useInstances"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useDispatch, useSelector } from "react-redux"; -import { memberCredentialsSelector } from "@ledgerhq/trustchain/store"; +import { memberCredentialsSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; import styled from "styled-components"; import { setFlow } from "~/renderer/actions/walletSync"; import { Flow, Step } from "~/renderer/reducers/walletSync"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/03-DeleteInstanceWithTrustchain.tsx b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/03-DeleteInstanceWithTrustchain.tsx index 4c1024287996..e6ec6b614049 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/03-DeleteInstanceWithTrustchain.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/03-DeleteInstanceWithTrustchain.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; import FollowStepsOnDevice from "../DeviceActions/FollowStepsOnDevice"; import ErrorDisplay from "~/renderer/components/ErrorDisplay"; import { useRemoveMember } from "LLD/features/WalletSync/hooks/useRemoveMember"; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/04-DeletionFinalErrorStep.tsx b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/04-DeletionFinalErrorStep.tsx index 030997a7ac99..6ee77ce4deee 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/04-DeletionFinalErrorStep.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/04-DeletionFinalErrorStep.tsx @@ -2,7 +2,7 @@ import React from "react"; import { Error } from "../../components/Error"; import { useTranslation } from "react-i18next"; import { Flex } from "@ledgerhq/react-ui"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; export type FinalStepProps = { instance: TrustchainMember | null; diff --git a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/index.tsx b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/index.tsx index ce29ff8ba098..5bbacb47d74a 100644 --- a/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/index.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/WalletSync/screens/ManageInstances/index.tsx @@ -8,7 +8,7 @@ import DeviceActionInstanceStep from "./02-DeviceActionInstanceStep"; import DeleteInstanceWithTrustchain from "./03-DeleteInstanceWithTrustchain"; import DeletionFinalStep from "./04-DeletionFinalStep"; import { DeletionError, ErrorReason } from "./04-DeletionError"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; import DeletionErrorFinalStep from "./04-DeletionFinalErrorStep"; const WalletSyncManageInstances = forwardRef((_props, ref) => { diff --git a/apps/ledger-live-desktop/src/renderer/actions/trustchain.ts b/apps/ledger-live-desktop/src/renderer/actions/trustchain.ts index 24f58b5ed611..3f7ca82ef9ee 100644 --- a/apps/ledger-live-desktop/src/renderer/actions/trustchain.ts +++ b/apps/ledger-live-desktop/src/renderer/actions/trustchain.ts @@ -1,5 +1,5 @@ import { Dispatch } from "redux"; -import { importTrustchainStoreState } from "@ledgerhq/trustchain/store"; +import { importTrustchainStoreState } from "@ledgerhq/ledger-key-ring-protocol/store"; import { getKey } from "~/renderer/storage"; export const fetchTrustchain = () => async (dispatch: Dispatch) => { diff --git a/apps/ledger-live-desktop/src/renderer/actions/walletSync.ts b/apps/ledger-live-desktop/src/renderer/actions/walletSync.ts index 6c857dc5e9f6..2c575836552d 100644 --- a/apps/ledger-live-desktop/src/renderer/actions/walletSync.ts +++ b/apps/ledger-live-desktop/src/renderer/actions/walletSync.ts @@ -1,4 +1,4 @@ -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; import { ChangeFlowPayload } from "../reducers/walletSync"; export const setFlow = (payload: ChangeFlowPayload) => ({ diff --git a/apps/ledger-live-desktop/src/renderer/middlewares/db.ts b/apps/ledger-live-desktop/src/renderer/middlewares/db.ts index 1ead4004571d..188455d40a37 100644 --- a/apps/ledger-live-desktop/src/renderer/middlewares/db.ts +++ b/apps/ledger-live-desktop/src/renderer/middlewares/db.ts @@ -15,7 +15,7 @@ import { import { trustchainStoreActionTypePrefix, trustchainStoreSelector, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { marketStoreSelector } from "../reducers/market"; diff --git a/apps/ledger-live-desktop/src/renderer/reducers/index.ts b/apps/ledger-live-desktop/src/renderer/reducers/index.ts index 85b6e104bb3e..e1bff6cc238b 100644 --- a/apps/ledger-live-desktop/src/renderer/reducers/index.ts +++ b/apps/ledger-live-desktop/src/renderer/reducers/index.ts @@ -14,7 +14,7 @@ import wallet from "./wallet"; import { WalletState } from "@ledgerhq/live-wallet/store"; import walletSync, { WalletSyncState } from "./walletSync"; import trustchain from "./trustchain"; -import { TrustchainStore } from "@ledgerhq/trustchain/store"; +import { TrustchainStore } from "@ledgerhq/ledger-key-ring-protocol/store"; export type State = { accounts: AccountsState; diff --git a/apps/ledger-live-desktop/src/renderer/reducers/trustchain.ts b/apps/ledger-live-desktop/src/renderer/reducers/trustchain.ts index f8ba5a947da3..73b4e66ca452 100644 --- a/apps/ledger-live-desktop/src/renderer/reducers/trustchain.ts +++ b/apps/ledger-live-desktop/src/renderer/reducers/trustchain.ts @@ -4,7 +4,7 @@ import { trustchainHandlers, TrustchainHandlersPayloads, TrustchainHandlers, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { handleActions } from "redux-actions"; export default handleActions< diff --git a/apps/ledger-live-desktop/src/renderer/reducers/walletSync.ts b/apps/ledger-live-desktop/src/renderer/reducers/walletSync.ts index 72a3b2a50f3a..513f0156ea64 100644 --- a/apps/ledger-live-desktop/src/renderer/reducers/walletSync.ts +++ b/apps/ledger-live-desktop/src/renderer/reducers/walletSync.ts @@ -1,6 +1,6 @@ import { handleActions } from "redux-actions"; import { Handlers } from "./types"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; export enum Flow { Activation = "Activation", diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/WalletSync/Generator/index.tsx b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/WalletSync/Generator/index.tsx index 2d64bcdea8c6..7625743333c4 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/WalletSync/Generator/index.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/WalletSync/Generator/index.tsx @@ -14,7 +14,7 @@ import { } from "~/renderer/actions/walletSync"; import { useHistory } from "react-router"; import styled, { useTheme } from "styled-components"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; import { FlowOptions } from "LLD/features/WalletSync/hooks/useFlows"; import { useTranslation } from "react-i18next"; diff --git a/apps/ledger-live-desktop/src/renderer/storage.ts b/apps/ledger-live-desktop/src/renderer/storage.ts index 714d05a6ea1e..70bcce8168fe 100644 --- a/apps/ledger-live-desktop/src/renderer/storage.ts +++ b/apps/ledger-live-desktop/src/renderer/storage.ts @@ -22,7 +22,7 @@ import { CounterValuesStatus, RateMapRaw } from "@ledgerhq/live-countervalues/ty import { hubStateSelector } from "@ledgerhq/live-common/postOnboarding/reducer"; import { settingsExportSelector } from "./reducers/settings"; import logger from "./logger"; -import { trustchainStoreSelector } from "@ledgerhq/trustchain/store"; +import { trustchainStoreSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; import { marketStoreSelector } from "./reducers/market"; import { ExportedWalletState } from "@ledgerhq/live-wallet/store"; diff --git a/apps/ledger-live-mobile/__tests__/test-renderer.tsx b/apps/ledger-live-mobile/__tests__/test-renderer.tsx index c44297e07feb..f043d5a7bdf1 100644 --- a/apps/ledger-live-mobile/__tests__/test-renderer.tsx +++ b/apps/ledger-live-mobile/__tests__/test-renderer.tsx @@ -35,7 +35,7 @@ import { INITIAL_STATE as WALLETSYNC_INITIAL_STATE } from "~/reducers/walletSync import { initialState as WALLET_INITIAL_STATE } from "@ledgerhq/live-wallet/store"; import QueuedDrawersContextProvider from "LLM/components/QueuedDrawer/QueuedDrawersContextProvider"; -import { INITIAL_STATE as TRUSTCHAIN_INITIAL_STATE } from "@ledgerhq/trustchain/store"; +import { INITIAL_STATE as TRUSTCHAIN_INITIAL_STATE } from "@ledgerhq/ledger-key-ring-protocol/store"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; const initialState = { diff --git a/apps/ledger-live-mobile/package.json b/apps/ledger-live-mobile/package.json index 04537efd996f..b6b2c06153cd 100644 --- a/apps/ledger-live-mobile/package.json +++ b/apps/ledger-live-mobile/package.json @@ -87,7 +87,7 @@ "@ledgerhq/ethereum-provider": "workspace:^", "@ledgerhq/hw-transport": "workspace:^", "@ledgerhq/hw-transport-http": "workspace:^", - "@ledgerhq/hw-trustchain": "workspace:^", + "@ledgerhq/hw-ledger-key-ring-protocol": "workspace:^", "@ledgerhq/icons-ui": "workspace:^", "@ledgerhq/live-common": "workspace:^", "@ledgerhq/live-config": "workspace:^", @@ -102,7 +102,7 @@ "@ledgerhq/native-ui": "workspace:^", "@ledgerhq/react-native-hid": "workspace:^", "@ledgerhq/react-native-hw-transport-ble": "workspace:^", - "@ledgerhq/trustchain": "workspace:^", + "@ledgerhq/ledger-key-ring-protocol": "workspace:^", "@ledgerhq/types-cryptoassets": "workspace:^", "@ledgerhq/types-devices": "workspace:^", "@ledgerhq/types-live": "workspace:^", diff --git a/apps/ledger-live-mobile/src/components/RootNavigator/types/WalletSyncNavigator.ts b/apps/ledger-live-mobile/src/components/RootNavigator/types/WalletSyncNavigator.ts index 83fb5ecf2683..ff02f83a2e27 100644 --- a/apps/ledger-live-mobile/src/components/RootNavigator/types/WalletSyncNavigator.ts +++ b/apps/ledger-live-mobile/src/components/RootNavigator/types/WalletSyncNavigator.ts @@ -1,4 +1,4 @@ -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; import { ScreenName } from "~/const"; export type WalletSyncNavigatorStackParamList = { diff --git a/apps/ledger-live-mobile/src/context/LedgerStore.tsx b/apps/ledger-live-mobile/src/context/LedgerStore.tsx index 576561d7acb6..22def70d1012 100644 --- a/apps/ledger-live-mobile/src/context/LedgerStore.tsx +++ b/apps/ledger-live-mobile/src/context/LedgerStore.tsx @@ -23,7 +23,7 @@ import { INITIAL_STATE as settingsState } from "~/reducers/settings"; import { listCachedCurrencyIds, hydrateCurrency } from "~/bridge/cache"; import { getCryptoCurrencyById, listSupportedFiats } from "@ledgerhq/live-common/currencies/index"; import { importMarket } from "~/actions/market"; -import { importTrustchainStoreState } from "@ledgerhq/trustchain/store"; +import { importTrustchainStoreState } from "@ledgerhq/ledger-key-ring-protocol/store"; import { importWalletState } from "@ledgerhq/live-wallet/store"; export default class LedgerStoreProvider extends Component< diff --git a/apps/ledger-live-mobile/src/db.ts b/apps/ledger-live-mobile/src/db.ts index b6e038c1b9e0..8a98a3a64716 100644 --- a/apps/ledger-live-mobile/src/db.ts +++ b/apps/ledger-live-mobile/src/db.ts @@ -12,7 +12,7 @@ import { Dispatch, SetStateAction } from "react"; import store from "./logic/storeWrapper"; import type { User } from "./types/store"; import type { BleState, MarketState, ProtectState, SettingsState } from "./reducers/types"; -import { TrustchainStore } from "@ledgerhq/trustchain/store"; +import { TrustchainStore } from "@ledgerhq/ledger-key-ring-protocol/store"; import { ExportedWalletState } from "@ledgerhq/live-wallet/store"; export type Notifications = { diff --git a/apps/ledger-live-mobile/src/index.tsx b/apps/ledger-live-mobile/src/index.tsx index 12c6fffe5538..18bcd111e6d7 100644 --- a/apps/ledger-live-mobile/src/index.tsx +++ b/apps/ledger-live-mobile/src/index.tsx @@ -88,7 +88,7 @@ import AppProviders from "./AppProviders"; import { useAutoDismissPostOnboardingEntryPoint } from "@ledgerhq/live-common/postOnboarding/hooks/index"; import QueuedDrawersContextProvider from "LLM/components/QueuedDrawer/QueuedDrawersContextProvider"; import { exportMarketSelector } from "./reducers/market"; -import { trustchainStoreSelector } from "@ledgerhq/trustchain/store"; +import { trustchainStoreSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; import { walletSelector } from "~/reducers/wallet"; import { exportWalletState, walletStateExportShouldDiffer } from "@ledgerhq/live-wallet/store"; diff --git a/apps/ledger-live-mobile/src/newArch/features/Accounts/screens/AddAccount/components/StepFlow.tsx b/apps/ledger-live-mobile/src/newArch/features/Accounts/screens/AddAccount/components/StepFlow.tsx index 6d284c4a6852..7cd643d8da4e 100644 --- a/apps/ledger-live-mobile/src/newArch/features/Accounts/screens/AddAccount/components/StepFlow.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/Accounts/screens/AddAccount/components/StepFlow.tsx @@ -17,7 +17,7 @@ import { useCurrentStep } from "LLM/features/WalletSync/hooks/useCurrentStep"; import ScannedInvalidQrCode from "~/newArch/features/WalletSync/screens/Synchronize/ScannedInvalidQrCode"; import ScannedOldImportQrCode from "~/newArch/features/WalletSync/screens/Synchronize/ScannedOldImportQrCode"; import { useSelector } from "react-redux"; -import { trustchainSelector } from "@ledgerhq/trustchain/store"; +import { trustchainSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; type Props = { currency?: CryptoCurrency | TokenCurrency | null; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/manageInstances.integration.test.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/manageInstances.integration.test.tsx index 54589d388ec6..f0c9c1279baa 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/manageInstances.integration.test.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/manageInstances.integration.test.tsx @@ -3,7 +3,7 @@ import { screen, waitFor } from "@testing-library/react-native"; import { render } from "@tests/test-renderer"; import { WalletSyncSettingsNavigator } from "./shared"; import { State } from "~/reducers/types"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; const INSTANCES: Array = [ { diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/manageKey.integration.test.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/manageKey.integration.test.tsx index 24a851318fe8..6e913dad8a2e 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/manageKey.integration.test.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/manageKey.integration.test.tsx @@ -3,7 +3,7 @@ import { screen } from "@testing-library/react-native"; import { render } from "@tests/test-renderer"; import { WalletSyncSettingsNavigator } from "./shared"; import { State } from "~/reducers/types"; -import { crypto } from "@ledgerhq/hw-trustchain"; +import { crypto } from "@ledgerhq/hw-ledger-key-ring-protocol"; jest.mock("../hooks/useDestroyTrustchain", () => ({ useDestroyTrustchain: () => ({ diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/shared.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/shared.tsx index b3e4fd59adf5..76671fea691e 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/shared.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/shared.tsx @@ -3,7 +3,7 @@ import { createStackNavigator } from "@react-navigation/stack"; import { NavigatorName, ScreenName } from "~/const"; import GeneralSettings from "~/screens/Settings/General"; import { SettingsNavigatorStackParamList } from "~/components/RootNavigator/types/SettingsNavigator"; -import { getSdk } from "@ledgerhq/trustchain/index"; +import { getSdk } from "@ledgerhq/ledger-key-ring-protocol/index"; import { WalletSyncNavigatorStackParamList } from "~/components/RootNavigator/types/WalletSyncNavigator"; import WalletSyncNavigator from "../WalletSyncNavigator"; import { BaseNavigatorStackParamList } from "~/components/RootNavigator/types/BaseNavigator"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/synchronizeWithQrCode.integration.test.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/synchronizeWithQrCode.integration.test.tsx index 50d07a1b1bce..054b87796b81 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/synchronizeWithQrCode.integration.test.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/synchronizeWithQrCode.integration.test.tsx @@ -11,7 +11,7 @@ jest.mock("../hooks/useQRCodeHost", () => ({ }), })); -jest.mock("@ledgerhq/trustchain/qrcode/index", () => ({ +jest.mock("@ledgerhq/ledger-key-ring-protocol/qrcode/index", () => ({ createQRCodeHostInstance: () => Promise.resolve({ trustchainApiBaseUrl: getWalletSyncEnvironmentParams("STAGING").trustchainApiBaseUrl, diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/walletSyncActivated.integration.test.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/walletSyncActivated.integration.test.tsx index 25dffa808d72..994d8ed375f9 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/walletSyncActivated.integration.test.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/__integrations__/walletSyncActivated.integration.test.tsx @@ -3,7 +3,7 @@ import { screen } from "@testing-library/react-native"; import { render } from "@tests/test-renderer"; import { WalletSyncSettingsNavigator } from "./shared"; import { State } from "~/reducers/types"; -import { crypto } from "@ledgerhq/hw-trustchain"; +import { crypto } from "@ledgerhq/hw-ledger-key-ring-protocol"; describe("WalletSyncActivated", () => { it("Should open WalletSyncActivated screen", async () => { diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/components/ManageInstances/ListInstances.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/components/ManageInstances/ListInstances.tsx index 09773db612a9..265f6f1707be 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/components/ManageInstances/ListInstances.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/components/ManageInstances/ListInstances.tsx @@ -3,7 +3,7 @@ import React from "react"; import { Flex, Text } from "@ledgerhq/native-ui"; import { FlatList, ListRenderItemInfo } from "react-native"; import { useTranslation } from "react-i18next"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; import { TinyCard } from "../TinyCard"; import { Scene } from "../../screens/ManageInstances/useManageInstanceDrawer"; import { TrackScreen } from "~/analytics"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useAddMember.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useAddMember.ts index 7d92c85140b6..a54d98f44ec5 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useAddMember.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useAddMember.ts @@ -2,7 +2,7 @@ import { memberCredentialsSelector, setTrustchain, trustchainSelector, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useDispatch, useSelector } from "react-redux"; import { useTrustchainSdk } from "./useTrustchainSdk"; import { @@ -10,8 +10,8 @@ import { TrustchainAlreadyInitialized, TrustchainAlreadyInitializedWithOtherSeed, TrustchainNotAllowed, -} from "@ledgerhq/trustchain/errors"; -import { TrustchainResult, TrustchainResultType } from "@ledgerhq/trustchain/types"; +} from "@ledgerhq/ledger-key-ring-protocol/errors"; +import { TrustchainResult, TrustchainResultType } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useCallback, useRef } from "react"; import { Device } from "@ledgerhq/live-common/hw/actions/types"; import { useNavigation } from "@react-navigation/native"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useDestroyTrustchain.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useDestroyTrustchain.ts index 869aa5940ab0..80b53c2e6296 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useDestroyTrustchain.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useDestroyTrustchain.ts @@ -4,7 +4,7 @@ import { trustchainSelector, resetTrustchainStore, memberCredentialsSelector, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useMutation } from "@tanstack/react-query"; import { QueryKey } from "./type.hooks"; import { useCloudSyncSDK } from "./useWatchWalletSync"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useGetMembers.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useGetMembers.ts index 290313a421cc..f942f34e1113 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useGetMembers.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useGetMembers.ts @@ -1,11 +1,14 @@ -import { memberCredentialsSelector, trustchainSelector } from "@ledgerhq/trustchain/store"; +import { + memberCredentialsSelector, + trustchainSelector, +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useSelector } from "react-redux"; import { useTrustchainSdk } from "./useTrustchainSdk"; import { useQuery } from "@tanstack/react-query"; import { QueryKey } from "./type.hooks"; import { useLifeCycle } from "./walletSync.hooks"; import { useEffect } from "react"; -import { TrustchainNotFound } from "@ledgerhq/trustchain/errors"; +import { TrustchainNotFound } from "@ledgerhq/ledger-key-ring-protocol/errors"; export function useGetMembers() { const sdk = useTrustchainSdk(); diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useInitMemberCredentials.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useInitMemberCredentials.ts index 92544d7becdf..987c6deee9d3 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useInitMemberCredentials.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useInitMemberCredentials.ts @@ -1,4 +1,7 @@ -import { memberCredentialsSelector, setMemberCredentials } from "@ledgerhq/trustchain/store"; +import { + memberCredentialsSelector, + setMemberCredentials, +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useCallback, useEffect } from "react"; import { useDispatch, useSelector } from "react-redux"; import { useTrustchainSdk } from "./useTrustchainSdk"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useLedgerSyncStatus.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useLedgerSyncStatus.ts index 36f69b03e807..e10c836f55b4 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useLedgerSyncStatus.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useLedgerSyncStatus.ts @@ -1,6 +1,8 @@ import { useQueries, UseQueryResult } from "@tanstack/react-query"; import { QueryKey } from "./type.hooks"; -import getTrustchainApi, { StatusAPIResponse as TrustchainStatus } from "@ledgerhq/trustchain/api"; +import getTrustchainApi, { + StatusAPIResponse as TrustchainStatus, +} from "@ledgerhq/ledger-key-ring-protocol/api"; import getCloudSyncApi, { StatusAPIResponse as CloudSyncStatus, } from "@ledgerhq/live-wallet/cloudsync/api"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useOnTrustchainRefreshNeeded.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useOnTrustchainRefreshNeeded.ts index b1f771272a32..a02dfd3c052e 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useOnTrustchainRefreshNeeded.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useOnTrustchainRefreshNeeded.ts @@ -1,8 +1,12 @@ import { useCallback } from "react"; import { useDispatch } from "react-redux"; -import { MemberCredentials, Trustchain, TrustchainSDK } from "@ledgerhq/trustchain/types"; -import { setTrustchain, resetTrustchainStore } from "@ledgerhq/trustchain/store"; -import { TrustchainEjected } from "@ledgerhq/trustchain/errors"; +import { + MemberCredentials, + Trustchain, + TrustchainSDK, +} from "@ledgerhq/ledger-key-ring-protocol/types"; +import { setTrustchain, resetTrustchainStore } from "@ledgerhq/ledger-key-ring-protocol/store"; +import { TrustchainEjected } from "@ledgerhq/ledger-key-ring-protocol/errors"; import { log } from "@ledgerhq/logs"; export function useOnTrustchainRefreshNeeded( diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useQRCodeHost.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useQRCodeHost.ts index 5f0cff1a9f9e..afa3c184ab3b 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useQRCodeHost.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useQRCodeHost.ts @@ -1,17 +1,17 @@ import { useCallback, useEffect, useState } from "react"; -import { createQRCodeHostInstance } from "@ledgerhq/trustchain/qrcode/index"; +import { createQRCodeHostInstance } from "@ledgerhq/ledger-key-ring-protocol/qrcode/index"; import { InvalidDigitsError, NoTrustchainInitialized, QRCodeWSClosed, -} from "@ledgerhq/trustchain/errors"; -import { MemberCredentials } from "@ledgerhq/trustchain/types"; +} from "@ledgerhq/ledger-key-ring-protocol/errors"; +import { MemberCredentials } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useDispatch, useSelector } from "react-redux"; import { trustchainSelector, memberCredentialsSelector, setTrustchain, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useTrustchainSdk } from "./useTrustchainSdk"; import { Options, Steps } from "../types/Activation"; import { useNavigation } from "@react-navigation/native"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useRemoveMember.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useRemoveMember.ts index 106fcd1d32b2..326fdea533a1 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useRemoveMember.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useRemoveMember.ts @@ -2,11 +2,11 @@ import { memberCredentialsSelector, setTrustchain, trustchainSelector, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { useDispatch, useSelector } from "react-redux"; import { useTrustchainSdk } from "./useTrustchainSdk"; -import { TrustchainNotAllowed } from "@ledgerhq/trustchain/errors"; -import { TrustchainMember, Trustchain } from "@ledgerhq/trustchain/types"; +import { TrustchainNotAllowed } from "@ledgerhq/ledger-key-ring-protocol/errors"; +import { TrustchainMember, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useCallback } from "react"; import { Device } from "@ledgerhq/live-common/hw/actions/types"; import { useNavigation } from "@react-navigation/native"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useRestoreTrustchain.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useRestoreTrustchain.ts index bcce8916144f..206c35038808 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useRestoreTrustchain.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useRestoreTrustchain.ts @@ -2,8 +2,8 @@ import { memberCredentialsSelector, trustchainSelector, setTrustchain, -} from "@ledgerhq/trustchain/store"; -import { Trustchain, MemberCredentials } from "@ledgerhq/trustchain/types"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; +import { Trustchain, MemberCredentials } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useQuery } from "@tanstack/react-query"; import { useDispatch, useSelector } from "react-redux"; import { QueryKey } from "./type.hooks"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useSyncWithQrCode.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useSyncWithQrCode.ts index e8b7c1da63be..c074790782be 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useSyncWithQrCode.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useSyncWithQrCode.ts @@ -1,6 +1,6 @@ import { useCallback, useState } from "react"; -import { MemberCredentials, TrustchainMember } from "@ledgerhq/trustchain/types"; -import { createQRCodeCandidateInstance } from "@ledgerhq/trustchain/qrcode/index"; +import { MemberCredentials, TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; +import { createQRCodeCandidateInstance } from "@ledgerhq/ledger-key-ring-protocol/qrcode/index"; import { ScannedOldImportQrCode, ScannedInvalidQrCode, @@ -8,8 +8,8 @@ import { NoTrustchainInitialized, TrustchainAlreadyInitialized, TrustchainAlreadyInitializedWithOtherSeed, -} from "@ledgerhq/trustchain/errors"; -import { setTrustchain, trustchainSelector } from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/errors"; +import { setTrustchain, trustchainSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; import { useDispatch, useSelector } from "react-redux"; import { useNavigation } from "@react-navigation/native"; import { Steps } from "../types/Activation"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useTrustchainSdk.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useTrustchainSdk.ts index 5bbfa3f859c3..49295d126975 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useTrustchainSdk.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useTrustchainSdk.ts @@ -1,8 +1,8 @@ import { useMemo } from "react"; import { getEnv } from "@ledgerhq/live-env"; -import { getSdk } from "@ledgerhq/trustchain/index"; +import { getSdk } from "@ledgerhq/ledger-key-ring-protocol/index"; import { withDevice } from "@ledgerhq/live-common/hw/deviceAccess"; -import { TrustchainSDK } from "@ledgerhq/trustchain/types"; +import { TrustchainSDK } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useFeature } from "@ledgerhq/live-common/featureFlags/index"; import getWalletSyncEnvironmentParams from "@ledgerhq/live-common/walletSync/getEnvironmentParams"; import { useInstanceName } from "./useInstanceName"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useWatchWalletSync.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useWatchWalletSync.ts index 8d3598286cb7..fece79e727b7 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useWatchWalletSync.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/useWatchWalletSync.ts @@ -12,7 +12,10 @@ import walletsync, { makeLocalIncrementalUpdate, } from "@ledgerhq/live-wallet/walletsync/index"; import { getAccountBridge } from "@ledgerhq/live-common/bridge/index"; -import { memberCredentialsSelector, trustchainSelector } from "@ledgerhq/trustchain/store"; +import { + memberCredentialsSelector, + trustchainSelector, +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { setAccountNames, setNonImportedAccounts, diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/walletSync.hooks.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/walletSync.hooks.ts index 56c0f07b8c56..7758591821c8 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/walletSync.hooks.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/hooks/walletSync.hooks.ts @@ -1,10 +1,10 @@ -import { resetTrustchainStore } from "@ledgerhq/trustchain/store"; +import { resetTrustchainStore } from "@ledgerhq/ledger-key-ring-protocol/store"; import { useDispatch } from "react-redux"; import { TrustchainEjected, TrustchainNotAllowed, TrustchainOutdated, -} from "@ledgerhq/trustchain/errors"; +} from "@ledgerhq/ledger-key-ring-protocol/errors"; import { ErrorType } from "./type.hooks"; import { StackActions, useNavigation } from "@react-navigation/native"; import { useTrustchainSdk } from "./useTrustchainSdk"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/DeviceSelection/index.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/DeviceSelection/index.tsx index 3fbcd1cb1ac0..198c5f5cd030 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/DeviceSelection/index.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/DeviceSelection/index.tsx @@ -16,7 +16,7 @@ import { import { useAppDeviceAction, useSelectDevice } from "~/hooks/deviceActions"; import { AppResult } from "@ledgerhq/live-common/hw/actions/app"; import { WalletSyncNavigatorStackParamList } from "~/components/RootNavigator/types/WalletSyncNavigator"; -import { TRUSTCHAIN_APP_NAME } from "@ledgerhq/hw-trustchain"; +import { TRUSTCHAIN_APP_NAME } from "@ledgerhq/hw-ledger-key-ring-protocol"; import { SafeAreaView } from "react-native-safe-area-context"; type NavigationProps = BaseComposite< diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/LedgerSyncDeepLinkHandler.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/LedgerSyncDeepLinkHandler.tsx index 95f118a04497..1bdd161d4cc6 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/LedgerSyncDeepLinkHandler.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/LedgerSyncDeepLinkHandler.tsx @@ -1,7 +1,7 @@ import { StackActions, useNavigation } from "@react-navigation/native"; import { useEffect } from "react"; import { useDispatch, useSelector } from "react-redux"; -import { trustchainSelector } from "@ledgerhq/trustchain/store"; +import { trustchainSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; import { setLedgerSyncActivateDrawer } from "~/actions/walletSync"; import { NavigatorName, ScreenName } from "~/const"; diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/Manage/index.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/Manage/index.tsx index 61a0de389624..7f79c2ee8db1 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/Manage/index.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/Manage/index.tsx @@ -19,7 +19,7 @@ import { Steps } from "../../types/Activation"; import { TrackScreen } from "~/analytics"; import { AlertLedgerSyncDown } from "../../components/AlertLedgerSyncDown"; import { useLedgerSyncStatus } from "../../hooks/useLedgerSyncStatus"; -import { TrustchainNotFound } from "@ledgerhq/trustchain/errors"; +import { TrustchainNotFound } from "@ledgerhq/ledger-key-ring-protocol/errors"; import { useCustomTimeOut } from "../../hooks/useCustomTimeOut"; const WalletSyncManage = () => { diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/ManageInstances/DeletionInstructionDrawer.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/ManageInstances/DeletionInstructionDrawer.tsx index 8dd1bbf6e486..244972db7e26 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/ManageInstances/DeletionInstructionDrawer.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/ManageInstances/DeletionInstructionDrawer.tsx @@ -2,7 +2,7 @@ import React from "react"; import { Device } from "@ledgerhq/live-common/hw/actions/types"; import GenericFollowInstructionsDrawer from "../FollowInstructions"; -import { TrustchainMember } from "@ledgerhq/trustchain/types"; +import { TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useRemoveMember } from "../../hooks/useRemoveMember"; type Props = { diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/ManageInstances/useManageInstanceDrawer.ts b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/ManageInstances/useManageInstanceDrawer.ts index 738fd1e8bc27..180b39c7dbc3 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/ManageInstances/useManageInstanceDrawer.ts +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/ManageInstances/useManageInstanceDrawer.ts @@ -2,8 +2,8 @@ import { useState, useCallback } from "react"; import { logDrawer } from "LLM/components/QueuedDrawer/utils/logDrawer"; import { useGetMembers } from "../../hooks/useGetMembers"; import { UseQueryResult } from "@tanstack/react-query"; -import { MemberCredentials, TrustchainMember } from "@ledgerhq/trustchain/types"; -import { memberCredentialsSelector } from "@ledgerhq/trustchain/store"; +import { MemberCredentials, TrustchainMember } from "@ledgerhq/ledger-key-ring-protocol/types"; +import { memberCredentialsSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; import { useSelector } from "react-redux"; import { useNavigation } from "@react-navigation/native"; import { StackNavigatorNavigation } from "~/components/RootNavigator/types/helpers"; diff --git a/apps/ledger-live-mobile/src/reducers/trustchain.ts b/apps/ledger-live-mobile/src/reducers/trustchain.ts index f8ba5a947da3..73b4e66ca452 100644 --- a/apps/ledger-live-mobile/src/reducers/trustchain.ts +++ b/apps/ledger-live-mobile/src/reducers/trustchain.ts @@ -4,7 +4,7 @@ import { trustchainHandlers, TrustchainHandlersPayloads, TrustchainHandlers, -} from "@ledgerhq/trustchain/store"; +} from "@ledgerhq/ledger-key-ring-protocol/store"; import { handleActions } from "redux-actions"; export default handleActions< diff --git a/apps/ledger-live-mobile/src/reducers/types.ts b/apps/ledger-live-mobile/src/reducers/types.ts index 7beffebdd095..015b5927cfc1 100644 --- a/apps/ledger-live-mobile/src/reducers/types.ts +++ b/apps/ledger-live-mobile/src/reducers/types.ts @@ -28,7 +28,7 @@ import { ProtectStateNumberEnum } from "../components/ServicesWidget/types"; import { ImageType } from "../components/CustomImage/types"; import { CLSSupportedDeviceModelId } from "@ledgerhq/live-common/device/use-cases/isCustomLockScreenSupported"; import { WalletState } from "@ledgerhq/live-wallet/store"; -import { TrustchainStore } from "@ledgerhq/trustchain/store"; +import { TrustchainStore } from "@ledgerhq/ledger-key-ring-protocol/store"; import { Steps } from "LLM/features/WalletSync/types/Activation"; // === ACCOUNT STATE === diff --git a/apps/ledger-live-mobile/src/screens/ImportAccounts/Scan.tsx b/apps/ledger-live-mobile/src/screens/ImportAccounts/Scan.tsx index 0f9efb663e5b..13f583e7d9f1 100644 --- a/apps/ledger-live-mobile/src/screens/ImportAccounts/Scan.tsx +++ b/apps/ledger-live-mobile/src/screens/ImportAccounts/Scan.tsx @@ -11,7 +11,7 @@ import { withTheme } from "../../colors"; import type { Theme } from "../../colors"; import type { ImportAccountsNavigatorParamList } from "~/components/RootNavigator/types/ImportAccountsNavigator"; import type { StackNavigatorProps } from "~/components/RootNavigator/types/helpers"; -import { ScannedNewImportQrCode } from "@ledgerhq/trustchain/errors"; +import { ScannedNewImportQrCode } from "@ledgerhq/ledger-key-ring-protocol/errors"; import { AnalyticsPage } from "~/newArch/features/WalletSync/hooks/useLedgerSyncAnalytics"; type NavigationProps = StackNavigatorProps< diff --git a/apps/ledger-live-mobile/src/screens/Settings/General/WalletSyncRow.tsx b/apps/ledger-live-mobile/src/screens/Settings/General/WalletSyncRow.tsx index 82af7b53a5d8..16969a8cf384 100644 --- a/apps/ledger-live-mobile/src/screens/Settings/General/WalletSyncRow.tsx +++ b/apps/ledger-live-mobile/src/screens/Settings/General/WalletSyncRow.tsx @@ -9,7 +9,7 @@ import { AnalyticsButton, } from "LLM/features/WalletSync/hooks/useLedgerSyncAnalytics"; import { useDispatch, useSelector } from "react-redux"; -import { trustchainSelector } from "@ledgerhq/trustchain/store"; +import { trustchainSelector } from "@ledgerhq/ledger-key-ring-protocol/store"; import ActivationDrawer from "LLM/features/WalletSync/screens/Activation/ActivationDrawer"; import { Steps } from "LLM/features/WalletSync/types/Activation"; import { activateDrawerSelector } from "~/reducers/walletSync"; diff --git a/apps/web-tools/package.json b/apps/web-tools/package.json index e9c113162dbd..1763bdf8771c 100644 --- a/apps/web-tools/package.json +++ b/apps/web-tools/package.json @@ -27,13 +27,13 @@ "@ledgerhq/hw-transport-web-ble": "workspace:^", "@ledgerhq/hw-transport-webhid": "workspace:^", "@ledgerhq/hw-transport-webusb": "workspace:^", - "@ledgerhq/hw-trustchain": "workspace:^", + "@ledgerhq/hw-ledger-key-ring-protocol": "workspace:^", "@ledgerhq/live-common": "workspace:^", "@ledgerhq/live-config": "workspace:^", "@ledgerhq/live-env": "workspace:^", "@ledgerhq/live-wallet": "workspace:^", "@ledgerhq/logs": "workspace:^", - "@ledgerhq/trustchain": "workspace:^", + "@ledgerhq/ledger-key-ring-protocol": "workspace:^", "@ledgerhq/types-cryptoassets": "workspace:^", "@ledgerhq/types-live": "workspace:^", "@uiw/react-codemirror": "^4.22.2", diff --git a/apps/web-tools/trustchain/components/App.tsx b/apps/web-tools/trustchain/components/App.tsx index fc601875203c..4afe58572bbb 100644 --- a/apps/web-tools/trustchain/components/App.tsx +++ b/apps/web-tools/trustchain/components/App.tsx @@ -3,11 +3,15 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react" import styled from "styled-components"; import { Tooltip } from "react-tooltip"; import { withDevice } from "@ledgerhq/live-common/hw/deviceAccess"; -import { MemberCredentials, Trustchain, TrustchainMember } from "@ledgerhq/trustchain/types"; -import { getInitialStore } from "@ledgerhq/trustchain/store"; +import { + MemberCredentials, + Trustchain, + TrustchainMember, +} from "@ledgerhq/ledger-key-ring-protocol/types"; +import { getInitialStore } from "@ledgerhq/ledger-key-ring-protocol/store"; import useEnv from "../useEnv"; import Expand from "./Expand"; -import { getSdk } from "@ledgerhq/trustchain"; +import { getSdk } from "@ledgerhq/ledger-key-ring-protocol"; import { DisplayName, IdentityManager } from "./IdentityManager"; import { AppSetDeviceId } from "./AppSetDeviceId"; import { AppSetSupportedCurrencies } from "./AppSetSupportedCurrencies"; diff --git a/apps/web-tools/trustchain/components/AppAccountsSync.tsx b/apps/web-tools/trustchain/components/AppAccountsSync.tsx index d02ad4b7b1f7..579ab67ad64d 100644 --- a/apps/web-tools/trustchain/components/AppAccountsSync.tsx +++ b/apps/web-tools/trustchain/components/AppAccountsSync.tsx @@ -1,6 +1,6 @@ import React, { FormEvent, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { Observable, concat, find, from, ignoreElements, mergeMap, tap } from "rxjs"; -import { MemberCredentials, Trustchain } from "@ledgerhq/trustchain/types"; +import { MemberCredentials, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useTrustchainSDK } from "../context"; import { CloudSyncSDK } from "@ledgerhq/live-wallet/cloudsync/index"; import { @@ -31,7 +31,7 @@ import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies/formatCu import { listSupportedCurrencies } from "@ledgerhq/coin-framework/lib-es/currencies/support"; import { getCurrencyColor } from "@ledgerhq/live-common/currencies/color"; import { Loading } from "./Loading"; -import { TrustchainEjected } from "@ledgerhq/trustchain/lib-es/errors"; +import { TrustchainEjected } from "@ledgerhq/ledger-key-ring-protocol/lib-es/errors"; import { Tick } from "./Tick"; import { State } from "./types"; import { Actionable } from "./Actionable"; diff --git a/apps/web-tools/trustchain/components/AppCloudSync.tsx b/apps/web-tools/trustchain/components/AppCloudSync.tsx index 56bcdb18bc29..3eee1772350f 100644 --- a/apps/web-tools/trustchain/components/AppCloudSync.tsx +++ b/apps/web-tools/trustchain/components/AppCloudSync.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; -import { MemberCredentials, Trustchain } from "@ledgerhq/trustchain/types"; +import { MemberCredentials, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { useTrustchainSDK } from "../context"; import { CloudSyncSDK, UpdateEvent } from "@ledgerhq/live-wallet/cloudsync/index"; import walletsync, { diff --git a/apps/web-tools/trustchain/components/AppDecryptUserData.tsx b/apps/web-tools/trustchain/components/AppDecryptUserData.tsx index f1da73bfb3ec..50bac6995c4f 100644 --- a/apps/web-tools/trustchain/components/AppDecryptUserData.tsx +++ b/apps/web-tools/trustchain/components/AppDecryptUserData.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useState } from "react"; -import { crypto } from "@ledgerhq/hw-trustchain"; -import { JWT, Trustchain } from "@ledgerhq/trustchain/types"; +import { crypto } from "@ledgerhq/hw-ledger-key-ring-protocol"; +import { JWT, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { Actionable } from "./Actionable"; import { Input } from "./Input"; import { useTrustchainSDK } from "../context"; diff --git a/apps/web-tools/trustchain/components/AppDestroyTrustchain.tsx b/apps/web-tools/trustchain/components/AppDestroyTrustchain.tsx index a484e48c65dd..3858bad36232 100644 --- a/apps/web-tools/trustchain/components/AppDestroyTrustchain.tsx +++ b/apps/web-tools/trustchain/components/AppDestroyTrustchain.tsx @@ -1,5 +1,5 @@ import React, { useCallback } from "react"; -import { JWT, MemberCredentials, Trustchain } from "@ledgerhq/trustchain/types"; +import { JWT, MemberCredentials, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { Actionable } from "./Actionable"; import { useTrustchainSDK } from "../context"; diff --git a/apps/web-tools/trustchain/components/AppEncryptUserData.tsx b/apps/web-tools/trustchain/components/AppEncryptUserData.tsx index e93e3ffe0a3b..5e255eb3822a 100644 --- a/apps/web-tools/trustchain/components/AppEncryptUserData.tsx +++ b/apps/web-tools/trustchain/components/AppEncryptUserData.tsx @@ -1,6 +1,6 @@ import React, { useCallback, useState } from "react"; -import { crypto } from "@ledgerhq/hw-trustchain"; -import { Trustchain } from "@ledgerhq/trustchain/types"; +import { crypto } from "@ledgerhq/hw-ledger-key-ring-protocol"; +import { Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { Actionable } from "./Actionable"; import { Input } from "./Input"; import { useTrustchainSDK } from "../context"; diff --git a/apps/web-tools/trustchain/components/AppGetMembers.tsx b/apps/web-tools/trustchain/components/AppGetMembers.tsx index d9c4919346b6..f84934068ca0 100644 --- a/apps/web-tools/trustchain/components/AppGetMembers.tsx +++ b/apps/web-tools/trustchain/components/AppGetMembers.tsx @@ -1,5 +1,10 @@ import React, { useCallback } from "react"; -import { JWT, MemberCredentials, Trustchain, TrustchainMember } from "@ledgerhq/trustchain/types"; +import { + JWT, + MemberCredentials, + Trustchain, + TrustchainMember, +} from "@ledgerhq/ledger-key-ring-protocol/types"; import { Actionable } from "./Actionable"; import { useTrustchainSDK } from "../context"; diff --git a/apps/web-tools/trustchain/components/AppGetOrCreateTrustchain.tsx b/apps/web-tools/trustchain/components/AppGetOrCreateTrustchain.tsx index 69fd61a077a0..be3bc67c5017 100644 --- a/apps/web-tools/trustchain/components/AppGetOrCreateTrustchain.tsx +++ b/apps/web-tools/trustchain/components/AppGetOrCreateTrustchain.tsx @@ -4,7 +4,7 @@ import { MemberCredentials, Trustchain, TrustchainDeviceCallbacks, -} from "@ledgerhq/trustchain/types"; +} from "@ledgerhq/ledger-key-ring-protocol/types"; import { Actionable } from "./Actionable"; import { useTrustchainSDK } from "../context"; diff --git a/apps/web-tools/trustchain/components/AppInitLiveCredentials.tsx b/apps/web-tools/trustchain/components/AppInitLiveCredentials.tsx index a4554d7fcf86..e174e086ec67 100644 --- a/apps/web-tools/trustchain/components/AppInitLiveCredentials.tsx +++ b/apps/web-tools/trustchain/components/AppInitLiveCredentials.tsx @@ -1,5 +1,5 @@ import React, { useCallback } from "react"; -import { MemberCredentials } from "@ledgerhq/trustchain/types"; +import { MemberCredentials } from "@ledgerhq/ledger-key-ring-protocol/types"; import { Actionable } from "./Actionable"; import { useTrustchainSDK } from "../context"; diff --git a/apps/web-tools/trustchain/components/AppMemberRow.tsx b/apps/web-tools/trustchain/components/AppMemberRow.tsx index b3f34cac6667..38da44d57332 100644 --- a/apps/web-tools/trustchain/components/AppMemberRow.tsx +++ b/apps/web-tools/trustchain/components/AppMemberRow.tsx @@ -5,7 +5,7 @@ import { Trustchain, TrustchainDeviceCallbacks, TrustchainMember, -} from "@ledgerhq/trustchain/types"; +} from "@ledgerhq/ledger-key-ring-protocol/types"; import { Actionable } from "./Actionable"; import { DisplayName } from "./IdentityManager"; import { useTrustchainSDK } from "../context"; diff --git a/apps/web-tools/trustchain/components/AppQRCodeCandidate.tsx b/apps/web-tools/trustchain/components/AppQRCodeCandidate.tsx index d1053f74d621..e0acce5c6bf8 100644 --- a/apps/web-tools/trustchain/components/AppQRCodeCandidate.tsx +++ b/apps/web-tools/trustchain/components/AppQRCodeCandidate.tsx @@ -1,7 +1,10 @@ import React, { useCallback, useState } from "react"; -import { createQRCodeCandidateInstance } from "@ledgerhq/trustchain/qrcode/index"; -import { InvalidDigitsError, NoTrustchainInitialized } from "@ledgerhq/trustchain/errors"; -import { MemberCredentials, Trustchain } from "@ledgerhq/trustchain/types"; +import { createQRCodeCandidateInstance } from "@ledgerhq/ledger-key-ring-protocol/qrcode/index"; +import { + InvalidDigitsError, + NoTrustchainInitialized, +} from "@ledgerhq/ledger-key-ring-protocol/errors"; +import { MemberCredentials, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { Actionable } from "./Actionable"; import { memberNameForPubKey } from "./IdentityManager"; import { Input } from "./Input"; diff --git a/apps/web-tools/trustchain/components/AppQRCodeHost.tsx b/apps/web-tools/trustchain/components/AppQRCodeHost.tsx index cbfb3ce6b820..1670182f5e0f 100644 --- a/apps/web-tools/trustchain/components/AppQRCodeHost.tsx +++ b/apps/web-tools/trustchain/components/AppQRCodeHost.tsx @@ -1,7 +1,10 @@ import React, { useCallback, useState } from "react"; -import { createQRCodeHostInstance } from "@ledgerhq/trustchain/qrcode/index"; -import { InvalidDigitsError, NoTrustchainInitialized } from "@ledgerhq/trustchain/errors"; -import { MemberCredentials, Trustchain } from "@ledgerhq/trustchain/types"; +import { createQRCodeHostInstance } from "@ledgerhq/ledger-key-ring-protocol/qrcode/index"; +import { + InvalidDigitsError, + NoTrustchainInitialized, +} from "@ledgerhq/ledger-key-ring-protocol/errors"; +import { MemberCredentials, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { RenderActionable } from "./Actionable"; import QRCode from "./QRCode"; import { useTrustchainSDK } from "../context"; diff --git a/apps/web-tools/trustchain/components/AppRestoreTrustchain.tsx b/apps/web-tools/trustchain/components/AppRestoreTrustchain.tsx index abff5bac13f3..14fff47391d8 100644 --- a/apps/web-tools/trustchain/components/AppRestoreTrustchain.tsx +++ b/apps/web-tools/trustchain/components/AppRestoreTrustchain.tsx @@ -1,5 +1,5 @@ import React, { useCallback } from "react"; -import { JWT, MemberCredentials, Trustchain } from "@ledgerhq/trustchain/types"; +import { JWT, MemberCredentials, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { Actionable } from "./Actionable"; import { useTrustchainSDK } from "../context"; diff --git a/apps/web-tools/trustchain/components/IdentityManager.tsx b/apps/web-tools/trustchain/components/IdentityManager.tsx index 0541c76b23bb..f89047970c62 100644 --- a/apps/web-tools/trustchain/components/IdentityManager.tsx +++ b/apps/web-tools/trustchain/components/IdentityManager.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useState } from "react"; import styled from "styled-components"; -import { TrustchainSDKContext } from "@ledgerhq/trustchain/types"; -import { TrustchainStore, getInitialStore } from "@ledgerhq/trustchain/store"; +import { TrustchainSDKContext } from "@ledgerhq/ledger-key-ring-protocol/types"; +import { TrustchainStore, getInitialStore } from "@ledgerhq/ledger-key-ring-protocol/store"; const IdentityLabel = styled.label` display: block; diff --git a/apps/web-tools/trustchain/context.ts b/apps/web-tools/trustchain/context.ts index 69c69f0a2153..d2541595fccd 100644 --- a/apps/web-tools/trustchain/context.ts +++ b/apps/web-tools/trustchain/context.ts @@ -1,7 +1,7 @@ import React, { useContext } from "react"; import { withDevice } from "@ledgerhq/live-common/hw/deviceAccess"; -import { TrustchainSDK } from "@ledgerhq/trustchain/types"; -import { getSdk } from "@ledgerhq/trustchain/index"; +import { TrustchainSDK } from "@ledgerhq/ledger-key-ring-protocol/types"; +import { getSdk } from "@ledgerhq/ledger-key-ring-protocol/index"; import { getEnv } from "@ledgerhq/live-env"; export const defaultContext = { diff --git a/libs/hw-ledger-key-ring-protocol/package.json b/libs/hw-ledger-key-ring-protocol/package.json index 0cfda77ca88f..27ef1c0a106a 100644 --- a/libs/hw-ledger-key-ring-protocol/package.json +++ b/libs/hw-ledger-key-ring-protocol/package.json @@ -1,7 +1,7 @@ { - "name": "@ledgerhq/hw-trustchain", + "name": "@ledgerhq/hw-ledger-key-ring-protocol", "version": "0.1.6", - "description": "Ledger Live trustchain hardware layer", + "description": "Ledger Key Ring Protocol hardware layer", "private": true, "keywords": [ "Ledger" @@ -13,7 +13,7 @@ "bugs": { "url": "https://github.com/LedgerHQ/ledger-live/issues" }, - "homepage": "https://github.com/LedgerHQ/ledger-live/tree/develop/libs/hw-trustchain", + "homepage": "https://github.com/LedgerHQ/ledger-live/tree/develop/libs/hw-ledger-key-ring-protocol", "main": "lib/index.js", "module": "lib-es/index.js", "types": "lib/index.d.ts", diff --git a/libs/ledger-key-ring-protocol/README.md b/libs/ledger-key-ring-protocol/README.md index cf9b3d1c289d..1e3593f6e4f8 100644 --- a/libs/ledger-key-ring-protocol/README.md +++ b/libs/ledger-key-ring-protocol/README.md @@ -1,3 +1,3 @@ -## trustchain +## ledger key ring protocol -Ledger Live trustchain layer. +Ledger Key Ring Protocol layer. diff --git a/libs/ledger-key-ring-protocol/package.json b/libs/ledger-key-ring-protocol/package.json index 9938edac4120..2192f39e0ac1 100644 --- a/libs/ledger-key-ring-protocol/package.json +++ b/libs/ledger-key-ring-protocol/package.json @@ -1,7 +1,7 @@ { - "name": "@ledgerhq/trustchain", + "name": "@ledgerhq/ledger-key-ring-protocol", "version": "0.4.0", - "description": "Ledger Live trustchain layer", + "description": "Ledger Key Ring Protocol layer", "private": true, "keywords": [ "Ledger" @@ -13,7 +13,7 @@ "bugs": { "url": "https://github.com/LedgerHQ/ledger-live/issues" }, - "homepage": "https://github.com/LedgerHQ/ledger-live/tree/develop/libs/trustchain", + "homepage": "https://github.com/LedgerHQ/ledger-live/tree/develop/libs/ledger-key-ring-protocol", "main": "lib/index.js", "module": "lib-es/index.js", "types": "lib/index.d.ts", @@ -57,7 +57,7 @@ "@ledgerhq/errors": "workspace:*", "@ledgerhq/hw-transport": "workspace:*", "@ledgerhq/hw-transport-mocker": "workspace:*", - "@ledgerhq/hw-trustchain": "workspace:*", + "@ledgerhq/hw-ledger-key-ring-protocol": "workspace:*", "@ledgerhq/live-env": "workspace:*", "@ledgerhq/live-network": "workspace:*", "@ledgerhq/logs": "workspace:*", diff --git a/libs/ledger-key-ring-protocol/src/HWDeviceProvider.ts b/libs/ledger-key-ring-protocol/src/HWDeviceProvider.ts index 1c5c451c9662..484673ada74f 100644 --- a/libs/ledger-key-ring-protocol/src/HWDeviceProvider.ts +++ b/libs/ledger-key-ring-protocol/src/HWDeviceProvider.ts @@ -1,8 +1,8 @@ import { from, lastValueFrom } from "rxjs"; import { UserRefusedOnDevice } from "@ledgerhq/errors"; -import { ApduDevice } from "@ledgerhq/hw-trustchain/ApduDevice"; +import { ApduDevice } from "@ledgerhq/hw-ledger-key-ring-protocol/ApduDevice"; import { StatusCodes, TransportStatusError } from "@ledgerhq/hw-transport"; -import { crypto, device } from "@ledgerhq/hw-trustchain"; +import { crypto, device } from "@ledgerhq/hw-ledger-key-ring-protocol"; import getApi from "./api"; import { genericWithJWT } from "./auth"; import { AuthCachePolicy, JWT, TrustchainDeviceCallbacks, WithDevice } from "./types"; @@ -12,9 +12,9 @@ export class HWDeviceProvider { /** * TODO withDevice should be imported statically from @ledgerhq/live-common/hw/deviceAccess * - * but ATM making @ledgerhq/live-common a dependency of @ledgerhq/trustchain causes: + * but ATM making @ledgerhq/live-common a dependency of @ledgerhq/ledger-key-ring-protocol causes: * > Turbo error: Invalid package dependency graph: cyclic dependency detected: - * > @ledgerhq/trustchain,@ledgerhq/live-wallet,@ledgerhq/live-common + * > @ledgerhq/ledger-key-ring-protocol,@ledgerhq/live-wallet,@ledgerhq/live-common * * Maybe hw/deviceAccess.ts and hw/index.ts could be moved to @ledgerhq/devices * This would break the cyclic dependency as @ledgerhq/live-common would depend on @ledgerhq/devices diff --git a/libs/ledger-key-ring-protocol/src/__tests__/unit/sdk.test.ts b/libs/ledger-key-ring-protocol/src/__tests__/unit/sdk.test.ts index 6b414168cb7e..02b379b02ebc 100644 --- a/libs/ledger-key-ring-protocol/src/__tests__/unit/sdk.test.ts +++ b/libs/ledger-key-ring-protocol/src/__tests__/unit/sdk.test.ts @@ -7,7 +7,7 @@ import { Permissions, SoftwareDevice, StreamTree, -} from "@ledgerhq/hw-trustchain"; +} from "@ledgerhq/hw-ledger-key-ring-protocol"; import { getEnv } from "@ledgerhq/live-env"; import { PutCommandsRequest } from "../../api"; import { HWDeviceProvider } from "../../HWDeviceProvider"; diff --git a/libs/ledger-key-ring-protocol/src/mockSdk.ts b/libs/ledger-key-ring-protocol/src/mockSdk.ts index e7a1980685a2..e55fbd85a245 100644 --- a/libs/ledger-key-ring-protocol/src/mockSdk.ts +++ b/libs/ledger-key-ring-protocol/src/mockSdk.ts @@ -10,7 +10,7 @@ import { TrustchainSDK, TrustchainSDKContext, } from "./types"; -import { Permissions } from "@ledgerhq/hw-trustchain"; +import { Permissions } from "@ledgerhq/hw-ledger-key-ring-protocol"; import { TrustchainEjected } from "./errors"; import getApi from "./api"; diff --git a/libs/ledger-key-ring-protocol/src/qrcode/cipher.test.ts b/libs/ledger-key-ring-protocol/src/qrcode/cipher.test.ts index dba04450f632..2656ceff8ea4 100644 --- a/libs/ledger-key-ring-protocol/src/qrcode/cipher.test.ts +++ b/libs/ledger-key-ring-protocol/src/qrcode/cipher.test.ts @@ -1,4 +1,4 @@ -import { crypto } from "@ledgerhq/hw-trustchain"; +import { crypto } from "@ledgerhq/hw-ledger-key-ring-protocol"; import { makeCipher } from "./cipher"; import { InvalidEncryptionKeyError } from "../errors"; diff --git a/libs/ledger-key-ring-protocol/src/qrcode/cipher.ts b/libs/ledger-key-ring-protocol/src/qrcode/cipher.ts index 79eb4a29abfc..4389ca3184d3 100644 --- a/libs/ledger-key-ring-protocol/src/qrcode/cipher.ts +++ b/libs/ledger-key-ring-protocol/src/qrcode/cipher.ts @@ -1,5 +1,5 @@ import Base64 from "base64-js"; -import { crypto } from "@ledgerhq/hw-trustchain"; +import { crypto } from "@ledgerhq/hw-ledger-key-ring-protocol"; import { DecryptedPayload, Encrypted, ExtractEncryptedPayloads, Message } from "./types"; import { InvalidEncryptionKeyError } from "../errors"; diff --git a/libs/ledger-key-ring-protocol/src/qrcode/index.test.ts b/libs/ledger-key-ring-protocol/src/qrcode/index.test.ts index 4e7d6e2f4a06..e1dd2d225b6b 100644 --- a/libs/ledger-key-ring-protocol/src/qrcode/index.test.ts +++ b/libs/ledger-key-ring-protocol/src/qrcode/index.test.ts @@ -1,7 +1,7 @@ import { createQRCodeHostInstance, createQRCodeCandidateInstance } from "."; import WebSocket from "ws"; import { convertKeyPairToLiveCredentials } from "../sdk"; -import { crypto } from "@ledgerhq/hw-trustchain"; +import { crypto } from "@ledgerhq/hw-ledger-key-ring-protocol"; import { ScannedInvalidQrCode, ScannedOldImportQrCode } from "../errors"; describe("Trustchain QR Code", () => { diff --git a/libs/ledger-key-ring-protocol/src/qrcode/index.ts b/libs/ledger-key-ring-protocol/src/qrcode/index.ts index d4a6135a2aa0..8193694097f0 100644 --- a/libs/ledger-key-ring-protocol/src/qrcode/index.ts +++ b/libs/ledger-key-ring-protocol/src/qrcode/index.ts @@ -1,4 +1,4 @@ -import { Permissions, crypto } from "@ledgerhq/hw-trustchain"; +import { Permissions, crypto } from "@ledgerhq/hw-ledger-key-ring-protocol"; import WebSocket from "isomorphic-ws"; import { MemberCredentials, Trustchain, TrustchainMember } from "../types"; import { makeCipher, makeMessageCipher } from "./cipher"; diff --git a/libs/ledger-key-ring-protocol/src/sdk.ts b/libs/ledger-key-ring-protocol/src/sdk.ts index b3c9b2600f3c..d146005aa7ce 100644 --- a/libs/ledger-key-ring-protocol/src/sdk.ts +++ b/libs/ledger-key-ring-protocol/src/sdk.ts @@ -21,9 +21,9 @@ import { DerivationPath, SoftwareDevice, Device, -} from "@ledgerhq/hw-trustchain"; +} from "@ledgerhq/hw-ledger-key-ring-protocol"; import getApi from "./api"; -import { KeyPair as CryptoKeyPair } from "@ledgerhq/hw-trustchain/Crypto"; +import { KeyPair as CryptoKeyPair } from "@ledgerhq/hw-ledger-key-ring-protocol/Crypto"; import { log } from "@ledgerhq/logs"; import { LedgerAPI4xx } from "@ledgerhq/errors"; import { diff --git a/libs/ledger-key-ring-protocol/src/types.ts b/libs/ledger-key-ring-protocol/src/types.ts index 28db5bb0019b..fd7a5c666500 100644 --- a/libs/ledger-key-ring-protocol/src/types.ts +++ b/libs/ledger-key-ring-protocol/src/types.ts @@ -140,7 +140,7 @@ export type AuthCachePolicy = "no-cache" | "refresh" | "cache"; * * @example * - * import { sdk } from "@ledgerhq/trustchain"; + * import { sdk } from "@ledgerhq/ledger-key-ring-protocol"; * * sdk.getOrCreateTrustchain(deviceId, memberCredentials).then(trustchain => console.log(trustchain)); */ diff --git a/libs/ledger-key-ring-protocol/tests/test-helpers/recordTrustchainSdkTests.ts b/libs/ledger-key-ring-protocol/tests/test-helpers/recordTrustchainSdkTests.ts index 5e7714a6b9c9..68d099e5fad9 100644 --- a/libs/ledger-key-ring-protocol/tests/test-helpers/recordTrustchainSdkTests.ts +++ b/libs/ledger-key-ring-protocol/tests/test-helpers/recordTrustchainSdkTests.ts @@ -3,7 +3,7 @@ import { setupServer } from "msw/node"; import { RecordStore } from "@ledgerhq/hw-transport-mocker"; import { createSpeculosDevice, releaseSpeculosDevice } from "@ledgerhq/speculos-transport"; import { DeviceModelId } from "@ledgerhq/types-devices"; -import { crypto, TRUSTCHAIN_APP_NAME } from "@ledgerhq/hw-trustchain"; +import { crypto, TRUSTCHAIN_APP_NAME } from "@ledgerhq/hw-ledger-key-ring-protocol"; import { getEnv, setEnv } from "@ledgerhq/live-env"; import { RecorderConfig, ScenarioOptions, genSeed, recorderConfigDefaults } from "./types"; import { getSdk } from "../../src"; diff --git a/libs/ledger-key-ring-protocol/tests/test-helpers/replayTrustchainSdkTests.ts b/libs/ledger-key-ring-protocol/tests/test-helpers/replayTrustchainSdkTests.ts index 84adb9a9f688..02c02a5b24c2 100644 --- a/libs/ledger-key-ring-protocol/tests/test-helpers/replayTrustchainSdkTests.ts +++ b/libs/ledger-key-ring-protocol/tests/test-helpers/replayTrustchainSdkTests.ts @@ -1,6 +1,6 @@ import { http, HttpResponse } from "msw"; import { setupServer } from "msw/node"; -import { crypto } from "@ledgerhq/hw-trustchain"; +import { crypto } from "@ledgerhq/hw-ledger-key-ring-protocol"; import { openTransportReplayer, RecordStore } from "@ledgerhq/hw-transport-mocker"; import { getEnv, setEnv } from "@ledgerhq/live-env"; import { ScenarioOptions } from "./types"; diff --git a/libs/live-wallet/package.json b/libs/live-wallet/package.json index 65a9fe7bd787..4e820a281c8b 100644 --- a/libs/live-wallet/package.json +++ b/libs/live-wallet/package.json @@ -29,7 +29,7 @@ "@ledgerhq/live-network": "workspace:*", "@ledgerhq/live-promise": "workspace:*", "@ledgerhq/logs": "workspace:*", - "@ledgerhq/trustchain": "workspace:*", + "@ledgerhq/ledger-key-ring-protocol": "workspace:*", "@ledgerhq/types-cryptoassets": "workspace:*", "@ledgerhq/types-live": "workspace:*", "base64-js": "1", diff --git a/libs/live-wallet/src/cloudsync/__tests__/cipher.test.ts b/libs/live-wallet/src/cloudsync/__tests__/cipher.test.ts index 99bd8bdacf7e..e57b8b1ea024 100644 --- a/libs/live-wallet/src/cloudsync/__tests__/cipher.test.ts +++ b/libs/live-wallet/src/cloudsync/__tests__/cipher.test.ts @@ -1,6 +1,6 @@ import { getEnv } from "@ledgerhq/live-env"; import { makeCipher } from "../cipher"; -import { MockSDK } from "@ledgerhq/trustchain/mockSdk"; +import { MockSDK } from "@ledgerhq/ledger-key-ring-protocol/mockSdk"; describe("makeCipher on static data set", () => { const trustchainSdk = new MockSDK({ diff --git a/libs/live-wallet/src/cloudsync/__tests__/sdk.test.ts b/libs/live-wallet/src/cloudsync/__tests__/sdk.test.ts index 7241427be779..31e6cdf543fc 100644 --- a/libs/live-wallet/src/cloudsync/__tests__/sdk.test.ts +++ b/libs/live-wallet/src/cloudsync/__tests__/sdk.test.ts @@ -3,10 +3,10 @@ import WebSocket from "ws"; import { http, HttpResponse } from "msw"; import { setupServer } from "msw/node"; import { CloudSyncSDK, UpdateEvent } from "../sdk"; -import { MockSDK } from "@ledgerhq/trustchain/mockSdk"; +import { MockSDK } from "@ledgerhq/ledger-key-ring-protocol/mockSdk"; import { getEnv, setEnv } from "@ledgerhq/live-env"; -import { MemberCredentials, Trustchain } from "@ledgerhq/trustchain/types"; -import { TrustchainOutdated } from "@ledgerhq/trustchain/errors"; +import { MemberCredentials, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; +import { TrustchainOutdated } from "@ledgerhq/ledger-key-ring-protocol/errors"; describe("CloudSyncSDK basics", () => { const port = 54034; diff --git a/libs/live-wallet/src/cloudsync/api.ts b/libs/live-wallet/src/cloudsync/api.ts index db6aa81c26b9..16349772dbcf 100644 --- a/libs/live-wallet/src/cloudsync/api.ts +++ b/libs/live-wallet/src/cloudsync/api.ts @@ -4,7 +4,7 @@ import WS from "isomorphic-ws"; import querystring from "querystring"; import type { WebSocket } from "ws"; import { Observable } from "rxjs"; -import { Trustchain } from "@ledgerhq/trustchain/types"; +import { Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; export type JWT = { accessToken: string; diff --git a/libs/live-wallet/src/cloudsync/cipher.ts b/libs/live-wallet/src/cloudsync/cipher.ts index 504772a20f23..86a703aa77d2 100644 --- a/libs/live-wallet/src/cloudsync/cipher.ts +++ b/libs/live-wallet/src/cloudsync/cipher.ts @@ -1,6 +1,6 @@ import Base64 from "base64-js"; import pako from "pako"; -import { TrustchainSDK, Trustchain } from "@ledgerhq/trustchain/types"; +import { TrustchainSDK, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; export type Cipher = { decrypt: (trustchain: Trustchain, base64payload: string) => Promise; diff --git a/libs/live-wallet/src/cloudsync/sdk.ts b/libs/live-wallet/src/cloudsync/sdk.ts index 89ac4c6d238e..b5bd09c11976 100644 --- a/libs/live-wallet/src/cloudsync/sdk.ts +++ b/libs/live-wallet/src/cloudsync/sdk.ts @@ -1,5 +1,9 @@ -import { MemberCredentials, Trustchain, TrustchainSDK } from "@ledgerhq/trustchain/types"; -import { TrustchainOutdated } from "@ledgerhq/trustchain/errors"; +import { + MemberCredentials, + Trustchain, + TrustchainSDK, +} from "@ledgerhq/ledger-key-ring-protocol/types"; +import { TrustchainOutdated } from "@ledgerhq/ledger-key-ring-protocol/errors"; import getApi, { JWT } from "./api"; import { Observable } from "rxjs"; import { z, ZodType } from "zod"; diff --git a/libs/live-wallet/src/walletsync/__mocks__/watchLoop.ts b/libs/live-wallet/src/walletsync/__mocks__/watchLoop.ts index a6ad3b443736..e1109bedae30 100644 --- a/libs/live-wallet/src/walletsync/__mocks__/watchLoop.ts +++ b/libs/live-wallet/src/walletsync/__mocks__/watchLoop.ts @@ -2,7 +2,7 @@ import { CloudSyncSDKInterface } from "../../cloudsync"; import { z } from "zod"; import { Observable, never } from "rxjs"; import { WalletSyncDataManager } from "../types"; -import { Trustchain, MemberCredentials } from "@ledgerhq/trustchain/types"; +import { Trustchain, MemberCredentials } from "@ledgerhq/ledger-key-ring-protocol/types"; import { CreateWalletSyncWatchLoopParams } from "../createWalletSyncWatchLoop"; export const getWalletSyncWatchLoopConfig = () => { diff --git a/libs/live-wallet/src/walletsync/__tests__/trustchainLifecyle.test.ts b/libs/live-wallet/src/walletsync/__tests__/trustchainLifecyle.test.ts index 120124d2cf5c..2a546d718626 100644 --- a/libs/live-wallet/src/walletsync/__tests__/trustchainLifecyle.test.ts +++ b/libs/live-wallet/src/walletsync/__tests__/trustchainLifecyle.test.ts @@ -1,4 +1,4 @@ -import { MockSDK } from "@ledgerhq/trustchain/mockSdk"; +import { MockSDK } from "@ledgerhq/ledger-key-ring-protocol/mockSdk"; import { setupServer } from "msw/node"; import { http, HttpResponse } from "msw"; import { emptyState, convertLocalToDistantState } from "../__mocks__"; diff --git a/libs/live-wallet/src/walletsync/createWalletSyncWatchLoop.test.ts b/libs/live-wallet/src/walletsync/createWalletSyncWatchLoop.test.ts index 459ab825468b..de778cb63869 100644 --- a/libs/live-wallet/src/walletsync/createWalletSyncWatchLoop.test.ts +++ b/libs/live-wallet/src/walletsync/createWalletSyncWatchLoop.test.ts @@ -1,7 +1,7 @@ import { createWalletSyncWatchLoop } from "./createWalletSyncWatchLoop"; import { advanceTimersByTimeAsync, getWalletSyncWatchLoopConfig } from "./__mocks__/watchLoop"; import { Subject } from "rxjs"; -import { TrustchainEjected, TrustchainOutdated } from "@ledgerhq/trustchain/errors"; +import { TrustchainEjected, TrustchainOutdated } from "@ledgerhq/ledger-key-ring-protocol/errors"; jest.useFakeTimers(); diff --git a/libs/live-wallet/src/walletsync/createWalletSyncWatchLoop.ts b/libs/live-wallet/src/walletsync/createWalletSyncWatchLoop.ts index 60c9de17f14c..fbdcb653bf56 100644 --- a/libs/live-wallet/src/walletsync/createWalletSyncWatchLoop.ts +++ b/libs/live-wallet/src/walletsync/createWalletSyncWatchLoop.ts @@ -1,9 +1,9 @@ import { ZodType, z } from "zod"; import { CloudSyncSDKInterface } from "../cloudsync"; -import { MemberCredentials, Trustchain } from "@ledgerhq/trustchain/types"; +import { MemberCredentials, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; import { WalletSyncDataManager } from "./types"; import { log } from "@ledgerhq/logs"; -import { TrustchainEjected, TrustchainOutdated } from "@ledgerhq/trustchain/errors"; +import { TrustchainEjected, TrustchainOutdated } from "@ledgerhq/ledger-key-ring-protocol/errors"; import { Subscription } from "rxjs"; export type WatchConfig = { diff --git a/libs/live-wallet/src/walletsync/index.ts b/libs/live-wallet/src/walletsync/index.ts index 38983ebe434d..668d2d32153b 100644 --- a/libs/live-wallet/src/walletsync/index.ts +++ b/libs/live-wallet/src/walletsync/index.ts @@ -13,7 +13,7 @@ export * from "./incrementalUpdates"; import accounts from "./modules/accounts"; import accountNames from "./modules/accountNames"; import { CloudSyncSDK } from "../cloudsync"; -import { MemberCredentials, Trustchain } from "@ledgerhq/trustchain/types"; +import { MemberCredentials, Trustchain } from "@ledgerhq/ledger-key-ring-protocol/types"; const modules = { accounts, diff --git a/libs/live-wallet/src/walletsync/trustchainLifecyle.ts b/libs/live-wallet/src/walletsync/trustchainLifecyle.ts index 0f71d10eec51..85c5aa91c863 100644 --- a/libs/live-wallet/src/walletsync/trustchainLifecyle.ts +++ b/libs/live-wallet/src/walletsync/trustchainLifecyle.ts @@ -1,4 +1,4 @@ -import { TrustchainLifecycle } from "@ledgerhq/trustchain/types"; +import { TrustchainLifecycle } from "@ledgerhq/ledger-key-ring-protocol/types"; import getCloudSyncApi from "../cloudsync/api"; import { liveSlug } from "."; import { WSState } from "../store"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba18cbf24a56..8456c9c80273 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -289,6 +289,9 @@ importers: '@ledgerhq/ethereum-provider': specifier: workspace:^ version: link:../../libs/ethereum-provider + '@ledgerhq/hw-ledger-key-ring-protocol': + specifier: workspace:^ + version: link:../../libs/hw-ledger-key-ring-protocol '@ledgerhq/hw-transport': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/hw-transport @@ -304,9 +307,9 @@ importers: '@ledgerhq/hw-transport-vault': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/hw-transport-vault - '@ledgerhq/hw-trustchain': + '@ledgerhq/ledger-key-ring-protocol': specifier: workspace:^ - version: link:../../libs/hw-trustchain + version: link:../../libs/ledger-key-ring-protocol '@ledgerhq/live-common': specifier: workspace:^ version: link:../../libs/ledger-live-common @@ -340,9 +343,6 @@ importers: '@ledgerhq/react-ui': specifier: workspace:^ version: link:../../libs/ui/packages/react - '@ledgerhq/trustchain': - specifier: workspace:^ - version: link:../../libs/trustchain '@ledgerhq/types-cryptoassets': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/types-cryptoassets @@ -833,18 +833,21 @@ importers: '@ledgerhq/ethereum-provider': specifier: workspace:^ version: link:../../libs/ethereum-provider + '@ledgerhq/hw-ledger-key-ring-protocol': + specifier: workspace:^ + version: link:../../libs/hw-ledger-key-ring-protocol '@ledgerhq/hw-transport': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/hw-transport '@ledgerhq/hw-transport-http': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/hw-transport-http - '@ledgerhq/hw-trustchain': - specifier: workspace:^ - version: link:../../libs/hw-trustchain '@ledgerhq/icons-ui': specifier: workspace:^ version: link:../../libs/ui/packages/icons + '@ledgerhq/ledger-key-ring-protocol': + specifier: workspace:^ + version: link:../../libs/ledger-key-ring-protocol '@ledgerhq/live-common': specifier: workspace:^ version: link:../../libs/ledger-live-common @@ -884,9 +887,6 @@ importers: '@ledgerhq/react-native-hw-transport-ble': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/react-native-hw-transport-ble - '@ledgerhq/trustchain': - specifier: workspace:^ - version: link:../../libs/trustchain '@ledgerhq/types-cryptoassets': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/types-cryptoassets @@ -1530,6 +1530,9 @@ importers: '@ledgerhq/hw-app-eth': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/hw-app-eth + '@ledgerhq/hw-ledger-key-ring-protocol': + specifier: workspace:^ + version: link:../../libs/hw-ledger-key-ring-protocol '@ledgerhq/hw-transport': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/hw-transport @@ -1545,9 +1548,9 @@ importers: '@ledgerhq/hw-transport-webusb': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/hw-transport-webusb - '@ledgerhq/hw-trustchain': + '@ledgerhq/ledger-key-ring-protocol': specifier: workspace:^ - version: link:../../libs/hw-trustchain + version: link:../../libs/ledger-key-ring-protocol '@ledgerhq/live-common': specifier: workspace:^ version: link:../../libs/ledger-live-common @@ -1563,9 +1566,6 @@ importers: '@ledgerhq/logs': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/logs - '@ledgerhq/trustchain': - specifier: workspace:^ - version: link:../../libs/trustchain '@ledgerhq/types-cryptoassets': specifier: workspace:^ version: link:../../libs/ledgerjs/packages/types-cryptoassets @@ -3351,7 +3351,7 @@ importers: specifier: ^20.2.5 version: 20.12.12 - libs/hw-trustchain: + libs/hw-ledger-key-ring-protocol: dependencies: '@ledgerhq/hw-transport': specifier: workspace:* @@ -3380,7 +3380,7 @@ importers: version: 29.5.12 '@types/lodash': specifier: '4' - version: 4.17.0 + version: 4.17.7 '@types/secp256k1': specifier: ^4.0.6 version: 4.0.6 @@ -3389,7 +3389,71 @@ importers: version: 29.7.0 ts-jest: specifier: ^29.1.1 - version: 29.1.2(jest@29.7.0)(typescript@5.4.3) + version: 29.1.5(jest@29.7.0)(typescript@5.4.3) + + libs/ledger-key-ring-protocol: + dependencies: + '@ledgerhq/errors': + specifier: workspace:* + version: link:../ledgerjs/packages/errors + '@ledgerhq/hw-ledger-key-ring-protocol': + specifier: workspace:* + version: link:../hw-ledger-key-ring-protocol + '@ledgerhq/hw-transport': + specifier: workspace:* + version: link:../ledgerjs/packages/hw-transport + '@ledgerhq/hw-transport-mocker': + specifier: workspace:* + version: link:../ledgerjs/packages/hw-transport-mocker + '@ledgerhq/live-env': + specifier: workspace:* + version: link:../env + '@ledgerhq/live-network': + specifier: workspace:* + version: link:../live-network + '@ledgerhq/logs': + specifier: workspace:* + version: link:../ledgerjs/packages/logs + '@ledgerhq/speculos-transport': + specifier: workspace:* + version: link:../speculos-transport + '@ledgerhq/types-devices': + specifier: workspace:^ + version: link:../ledgerjs/packages/types-devices + base64-js: + specifier: '1' + version: 1.5.1 + isomorphic-ws: + specifier: '5' + version: 5.0.0(ws@8.18.0) + rxjs: + specifier: ^7.8.1 + version: 7.8.1 + ws: + specifier: '8' + version: 8.18.0 + devDependencies: + '@types/jest': + specifier: ^29.5.10 + version: 29.5.12 + bip39: + specifier: ^3.0.4 + version: 3.1.0 + expect: + specifier: ^27.5.1 + version: 27.5.1 + jest: + specifier: ^29.7.0 + version: 29.7.0(ts-node@10.9.2(typescript@5.4.3)) + msw: + specifier: ^2.2.13 + version: 2.3.4(typescript@5.4.3) + ts-jest: + specifier: ^29.1.1 + version: 29.1.5(jest@29.7.0(ts-node@10.9.2(typescript@5.4.3)))(typescript@5.4.3) + ts-node: + specifier: ^10.9.2 + version: 10.9.2(typescript@5.4.3) libs/ledger-live-common: dependencies: @@ -6010,6 +6074,9 @@ importers: '@ledgerhq/devices': specifier: workspace:* version: link:../ledgerjs/packages/devices + '@ledgerhq/ledger-key-ring-protocol': + specifier: workspace:* + version: link:../ledger-key-ring-protocol '@ledgerhq/live-env': specifier: workspace:* version: link:../env @@ -6022,9 +6089,6 @@ importers: '@ledgerhq/logs': specifier: workspace:* version: link:../ledgerjs/packages/logs - '@ledgerhq/trustchain': - specifier: workspace:* - version: link:../trustchain '@ledgerhq/types-cryptoassets': specifier: workspace:* version: link:../ledgerjs/packages/types-cryptoassets @@ -6141,70 +6205,6 @@ importers: specifier: ^6.1.1 version: 6.1.4 - libs/trustchain: - dependencies: - '@ledgerhq/errors': - specifier: workspace:* - version: link:../ledgerjs/packages/errors - '@ledgerhq/hw-transport': - specifier: workspace:* - version: link:../ledgerjs/packages/hw-transport - '@ledgerhq/hw-transport-mocker': - specifier: workspace:* - version: link:../ledgerjs/packages/hw-transport-mocker - '@ledgerhq/hw-trustchain': - specifier: workspace:* - version: link:../hw-trustchain - '@ledgerhq/live-env': - specifier: workspace:* - version: link:../env - '@ledgerhq/live-network': - specifier: workspace:* - version: link:../live-network - '@ledgerhq/logs': - specifier: workspace:* - version: link:../ledgerjs/packages/logs - '@ledgerhq/speculos-transport': - specifier: workspace:* - version: link:../speculos-transport - '@ledgerhq/types-devices': - specifier: workspace:^ - version: link:../ledgerjs/packages/types-devices - base64-js: - specifier: '1' - version: 1.5.1 - isomorphic-ws: - specifier: '5' - version: 5.0.0(ws@8.17.1) - rxjs: - specifier: ^7.8.1 - version: 7.8.1 - ws: - specifier: '8' - version: 8.17.1 - devDependencies: - '@types/jest': - specifier: ^29.5.10 - version: 29.5.12 - bip39: - specifier: ^3.0.4 - version: 3.1.0 - expect: - specifier: ^27.5.1 - version: 27.5.1 - jest: - specifier: ^29.7.0 - version: 29.7.0(ts-node@10.9.2(typescript@5.4.3)) - msw: - specifier: ^2.2.13 - version: 2.2.13(typescript@5.4.3) - ts-jest: - specifier: ^29.1.1 - version: 29.1.2(jest@29.7.0(ts-node@10.9.2(typescript@5.4.3)))(typescript@5.4.3) - ts-node: - specifier: ^10.9.2 - version: 10.9.2(typescript@5.4.3) - libs/ui: devDependencies: '@ledgerhq/crypto-icons-ui': @@ -16739,10 +16739,6 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -20206,10 +20202,6 @@ packages: resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} engines: {node: '>= 0.4.0'} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -32679,13 +32671,13 @@ snapshots: '@babel/template@7.24.0': dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 '@babel/parser': 7.24.1 '@babel/types': 7.24.0 '@babel/traverse@7.24.1': dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 '@babel/generator': 7.24.1 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 @@ -32700,7 +32692,7 @@ snapshots: '@babel/traverse@7.24.1(supports-color@5.5.0)': dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 '@babel/generator': 7.24.1 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 @@ -35047,7 +35039,7 @@ snapshots: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 js-yaml: 3.14.1 - micromatch: 4.0.5 + micromatch: 4.0.7 npm-package-arg: 7.0.0 split: 1.0.1 sudo-prompt: 9.1.1 @@ -35061,7 +35053,7 @@ snapshots: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 js-yaml: 3.14.1 - micromatch: 4.0.5 + micromatch: 4.0.7 npm-package-arg: 7.0.0 ora: 3.4.0 split: 1.0.1 @@ -35833,7 +35825,7 @@ snapshots: jest-util: 27.5.1 jest-validate: 27.5.1 jest-watcher: 27.5.1 - micromatch: 4.0.5 + micromatch: 4.0.7 rimraf: 3.0.2 slash: 3.0.0 strip-ansi: 6.0.1 @@ -35871,7 +35863,7 @@ snapshots: jest-util: 28.1.3 jest-validate: 28.1.3 jest-watcher: 28.1.3 - micromatch: 4.0.5 + micromatch: 4.0.7 pretty-format: 28.1.3 rimraf: 3.0.2 slash: 3.0.0 @@ -36449,7 +36441,7 @@ snapshots: jest-haste-map: 27.5.1 jest-regex-util: 27.5.1 jest-util: 27.5.1 - micromatch: 4.0.5 + micromatch: 4.0.7 pirates: 4.0.6 slash: 3.0.0 source-map: 0.6.1 @@ -36471,7 +36463,7 @@ snapshots: jest-haste-map: 28.1.3 jest-regex-util: 28.0.2 jest-util: 28.1.3 - micromatch: 4.0.5 + micromatch: 4.0.7 pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 @@ -36492,7 +36484,7 @@ snapshots: jest-haste-map: 29.7.0 jest-regex-util: 29.6.3 jest-util: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 @@ -36513,7 +36505,7 @@ snapshots: jest-haste-map: 29.7.0(metro@0.80.8) jest-regex-util: 29.6.3 jest-util: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 @@ -42789,7 +42781,7 @@ snapshots: endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.2.0 - micromatch: 4.0.5 + micromatch: 4.0.7 react-docgen-typescript: 2.2.2(typescript@5.4.3) tslib: 2.6.2 typescript: 5.4.3 @@ -42803,7 +42795,7 @@ snapshots: endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.2.0 - micromatch: 4.0.5 + micromatch: 4.0.7 react-docgen-typescript: 2.2.2(typescript@5.4.3) tslib: 2.6.2 typescript: 5.4.3 @@ -46712,10 +46704,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -47249,7 +47237,7 @@ snapshots: chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -50070,7 +50058,7 @@ snapshots: '@types/eslint': 8.56.6 eslint: 8.57.0 jest-worker: 28.1.3 - micromatch: 4.0.5 + micromatch: 4.0.7 normalize-path: 3.0.0 schema-utils: 4.2.0 webpack: 5.94.0 @@ -50949,7 +50937,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 fast-json-parse@1.0.3: {} @@ -51082,10 +51070,6 @@ snapshots: filesize@8.0.7: {} - fill-range@7.0.1: - dependencies: - to-regex-range: 5.0.1 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -51175,7 +51159,7 @@ snapshots: find-yarn-workspace-root@2.0.0: dependencies: - micromatch: 4.0.5 + micromatch: 4.0.7 firebase@9.23.0: dependencies: @@ -52336,7 +52320,7 @@ snapshots: http-proxy: 1.18.1 is-glob: 4.0.3 is-plain-obj: 3.0.0 - micromatch: 4.0.5 + micromatch: 4.0.7 optionalDependencies: '@types/express': 4.17.21 @@ -52991,6 +52975,10 @@ snapshots: dependencies: ws: 8.17.1 + isomorphic-ws@5.0.0(ws@8.18.0): + dependencies: + ws: 8.18.0 + isstream@0.1.2: {} istanbul-lib-coverage@3.2.2: {} @@ -53525,7 +53513,7 @@ snapshots: jest-runner: 28.1.3 jest-util: 28.1.3 jest-validate: 28.1.3 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 28.1.3 slash: 3.0.0 @@ -53555,7 +53543,7 @@ snapshots: jest-runner: 28.1.3 jest-util: 28.1.3 jest-validate: 28.1.3 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 28.1.3 slash: 3.0.0 @@ -53585,7 +53573,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53614,7 +53602,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53646,7 +53634,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53677,7 +53665,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53709,7 +53697,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53741,7 +53729,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53773,7 +53761,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53805,7 +53793,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53837,7 +53825,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53869,7 +53857,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53901,7 +53889,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -53932,7 +53920,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -54126,7 +54114,7 @@ snapshots: jest-serializer: 27.5.1 jest-util: 27.5.1 jest-worker: 27.5.1 - micromatch: 4.0.5 + micromatch: 4.0.7 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 @@ -54144,7 +54132,7 @@ snapshots: jest-regex-util: 28.0.2 jest-util: 28.1.3 jest-worker: 28.1.3 - micromatch: 4.0.5 + micromatch: 4.0.7 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 @@ -54162,7 +54150,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 jest-worker: 29.7.0 - micromatch: 4.0.5 + micromatch: 4.0.7 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 @@ -54180,7 +54168,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 jest-worker: 29.7.0(metro@0.80.8) - micromatch: 4.0.5 + micromatch: 4.0.7 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 @@ -54253,7 +54241,7 @@ snapshots: '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 pretty-format: 27.5.1 slash: 3.0.0 stack-utils: 2.0.6 @@ -54265,19 +54253,19 @@ snapshots: '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 pretty-format: 28.1.3 slash: 3.0.0 stack-utils: 2.0.6 jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 @@ -55062,7 +55050,7 @@ snapshots: chalk: 4.1.2 flow-parser: 0.232.0 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 neo-async: 2.6.2 node-dir: 0.1.17 recast: 0.21.5 @@ -55087,7 +55075,7 @@ snapshots: chalk: 4.1.2 flow-parser: 0.232.0 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 neo-async: 2.6.2 node-dir: 0.1.17 recast: 0.21.5 @@ -55112,7 +55100,7 @@ snapshots: chalk: 4.1.2 flow-parser: 0.232.0 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.7 neo-async: 2.6.2 node-dir: 0.1.17 recast: 0.23.6 @@ -56619,7 +56607,7 @@ snapshots: graceful-fs: 4.2.11 invariant: 2.2.4 jest-worker: 29.7.0(metro@0.80.8) - micromatch: 4.0.5 + micromatch: 4.0.7 node-abort-controller: 3.1.1 nullthrows: 1.1.1 walker: 1.0.8 @@ -57248,7 +57236,7 @@ snapshots: micromatch@4.0.5: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 micromatch@4.0.7: @@ -63001,7 +62989,7 @@ snapshots: is-glob: 4.0.3 jiti: 1.21.0 lilconfig: 2.1.0 - micromatch: 4.0.5 + micromatch: 4.0.7 normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 @@ -63739,6 +63727,19 @@ snapshots: typescript: 5.4.3 yargs-parser: 21.1.1 + ts-jest@29.1.5(jest@29.7.0(ts-node@10.9.2(typescript@5.4.3)))(typescript@5.4.3): + dependencies: + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(ts-node@10.9.2(typescript@5.4.3)) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.6.3 + typescript: 5.4.3 + yargs-parser: 21.1.1 + ts-jest@29.1.5(jest@29.7.0)(typescript@5.4.3): dependencies: bs-logger: 0.2.6 @@ -63756,7 +63757,7 @@ snapshots: dependencies: chalk: 4.1.2 enhanced-resolve: 5.16.0 - micromatch: 4.0.5 + micromatch: 4.0.7 semver: 7.6.3 source-map: 0.7.4 typescript: 5.1.3 From 64d854687369a63a77f3b31793b87af570e2f3c5 Mon Sep 17 00:00:00 2001 From: Kevin Le Seigle Date: Wed, 2 Oct 2024 11:08:40 +0200 Subject: [PATCH 06/86] fix: fetch feature flags every 5 minutes --- .changeset/strange-news-compete.md | 6 ++++++ .../src/renderer/components/FirebaseRemoteConfig.tsx | 4 ++-- .../src/components/FirebaseRemoteConfig.tsx | 4 ++-- 3 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 .changeset/strange-news-compete.md diff --git a/.changeset/strange-news-compete.md b/.changeset/strange-news-compete.md new file mode 100644 index 000000000000..9f961eafd1c3 --- /dev/null +++ b/.changeset/strange-news-compete.md @@ -0,0 +1,6 @@ +--- +"ledger-live-desktop": minor +"live-mobile": minor +--- + +Fetch FF every 5 minutes for LLM & LLD diff --git a/apps/ledger-live-desktop/src/renderer/components/FirebaseRemoteConfig.tsx b/apps/ledger-live-desktop/src/renderer/components/FirebaseRemoteConfig.tsx index 49a7a162b94e..dda9d5a5abe3 100644 --- a/apps/ledger-live-desktop/src/renderer/components/FirebaseRemoteConfig.tsx +++ b/apps/ledger-live-desktop/src/renderer/components/FirebaseRemoteConfig.tsx @@ -134,8 +134,8 @@ export const FirebaseRemoteConfigProvider = ({ } }; fetchAndActivateConfig(); - // 1 hour fetch interval. TODO: make this configurable - const intervalId = window.setInterval(fetchAndActivateConfig, 1 * 60 * 60 * 1000); + // 5 minutes fetch interval. TODO: make this configurable + const intervalId = window.setInterval(fetchAndActivateConfig, 5 * 60 * 1000); return () => clearInterval(intervalId); }, [setConfig]); diff --git a/apps/ledger-live-mobile/src/components/FirebaseRemoteConfig.tsx b/apps/ledger-live-mobile/src/components/FirebaseRemoteConfig.tsx index b39a1927415f..6f597df22d0e 100644 --- a/apps/ledger-live-mobile/src/components/FirebaseRemoteConfig.tsx +++ b/apps/ledger-live-mobile/src/components/FirebaseRemoteConfig.tsx @@ -38,8 +38,8 @@ export const FirebaseRemoteConfigProvider = ({ } }; fetchConfig(); - // 1 hour fetch interval. TODO: make this configurable - const intervalId = setInterval(fetchConfig, 1 * 60 * 60 * 1000); + // 5 minutes fetch interval. TODO: make this configurable + const intervalId = setInterval(fetchConfig, 5 * 60 * 1000); return () => { clearInterval(intervalId); unmounted = true; From 642c714d52eaaccb1b8ac3a2ee0391b641d19303 Mon Sep 17 00:00:00 2001 From: Theophile Sandoz Date: Wed, 2 Oct 2024 11:25:36 +0200 Subject: [PATCH 07/86] =?UTF-8?q?chore(llm):=20=F0=9F=9A=A6=20create=20`ll?= =?UTF-8?q?mMemoTag`=20feature=20flag=20(#7963)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(llm): create `llmMemoTag` * chore: update change log --- .changeset/bright-months-fold.md | 7 +++++++ .../ledger-live-common/src/featureFlags/defaultFeatures.ts | 1 + libs/ledgerjs/packages/types-live/src/feature.ts | 2 ++ 3 files changed, 10 insertions(+) create mode 100644 .changeset/bright-months-fold.md diff --git a/.changeset/bright-months-fold.md b/.changeset/bright-months-fold.md new file mode 100644 index 000000000000..ac8c25f95df8 --- /dev/null +++ b/.changeset/bright-months-fold.md @@ -0,0 +1,7 @@ +--- +"@ledgerhq/types-live": patch +"live-mobile": patch +"@ledgerhq/live-common": patch +--- + +Create `llmMemoTag` diff --git a/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts b/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts index c4a2adb58540..a75482b0289c 100644 --- a/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts +++ b/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts @@ -496,6 +496,7 @@ export const DEFAULT_FEATURES: Features = { web3hub: DEFAULT_FEATURE, llmMarketQuickActions: DEFAULT_FEATURE, spamFilteringTx: DEFAULT_FEATURE, + llmMemoTag: DEFAULT_FEATURE, }; // Firebase SDK treat JSON values as strings diff --git a/libs/ledgerjs/packages/types-live/src/feature.ts b/libs/ledgerjs/packages/types-live/src/feature.ts index 58a854f2b55d..1772f96e80e7 100644 --- a/libs/ledgerjs/packages/types-live/src/feature.ts +++ b/libs/ledgerjs/packages/types-live/src/feature.ts @@ -191,6 +191,7 @@ export type Features = CurrencyFeatures & { web3hub: Feature_web3hub; llmMarketQuickActions: DefaultFeature; spamFilteringTx: Feature_SpamFilteringTx; + llmMemoTag: Feature_MemoTag; }; /** @@ -515,6 +516,7 @@ export type Feature_web3hub = DefaultFeature; export type Feature_lldNftsGalleryNewArch = DefaultFeature; export type Feature_lldnewArchOrdinals = DefaultFeature; export type Feature_SpamFilteringTx = DefaultFeature; +export type Feature_MemoTag = DefaultFeature; /** * Utils types. From 901d4e85d52faf737163b56242e5bbc51422eee0 Mon Sep 17 00:00:00 2001 From: adammino-ledger Date: Wed, 2 Oct 2024 11:27:29 +0100 Subject: [PATCH 08/86] added entrypoints to ACRE liveApp on lld --- .../families/bitcoin/AccountHeaderManageActions.ts | 9 +++++---- .../renderer/screens/asset/AssetBalanceSummaryHeader.tsx | 8 +++++++- .../src/renderer/screens/market/MarketCoin/index.tsx | 7 ++++++- .../market/MarketList/components/MarketRowItem.tsx | 6 +++++- apps/ledger-live-desktop/static/i18n/en/app.json | 1 + 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts b/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts index 94fbd7e4ed71..2e79ca0f6f13 100644 --- a/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts +++ b/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts @@ -6,6 +6,7 @@ import { track } from "~/renderer/analytics/segment"; import { stakeDefaultTrack } from "~/renderer/screens/stake/constants"; import { BitcoinAccount } from "@ledgerhq/coin-bitcoin/lib/types"; import { TokenAccount } from "@ledgerhq/types-live"; +import IconCoins from "~/renderer/icons/Coins"; type Props = { account: BitcoinAccount | TokenAccount; @@ -41,12 +42,12 @@ const AccountHeaderActions = ({ account, parentAccount }: Props) => { return [ { - key: "Yield", - icon: () => null, - label: t("account.yield"), + key: "Stake", + icon: IconCoins, + label: t("accounts.contextMenu.yield"), event: "button_clicked2", eventProperties: { - button: "yield", + button: "stake", }, onClick: () => stakeOnClick(), }, diff --git a/apps/ledger-live-desktop/src/renderer/screens/asset/AssetBalanceSummaryHeader.tsx b/apps/ledger-live-desktop/src/renderer/screens/asset/AssetBalanceSummaryHeader.tsx index 8480b45dd475..e6ff572af078 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/asset/AssetBalanceSummaryHeader.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/asset/AssetBalanceSummaryHeader.tsx @@ -83,6 +83,12 @@ export default function AssetBalanceSummaryHeader({ const availableOnStake = stakeProgramsEnabled && currency && listFlag.includes(currency?.id); const availableOnSwap = currenciesAll.includes(currency.id); + const yieldStakeLabelCoin = + currency && + (("family" in currency && currency.family === "bitcoin") || + ("parentCurrency" in currency && currency.parentCurrency.family === "bitcoin")) + ? t("accounts.contextMenu.yield") + : t("accounts.contextMenu.stake"); const onBuy = useCallback(() => { setTrackingSource("asset header actions"); @@ -194,7 +200,7 @@ export default function AssetBalanceSummaryHeader({ {availableOnStake && ( )} diff --git a/apps/ledger-live-desktop/src/renderer/screens/market/MarketCoin/index.tsx b/apps/ledger-live-desktop/src/renderer/screens/market/MarketCoin/index.tsx index fb9a89c8bb75..737eb618003d 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/market/MarketCoin/index.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/market/MarketCoin/index.tsx @@ -67,6 +67,11 @@ export default function MarketCoinScreen() { changeCounterCurrency, } = useMarketCoin(); + const yieldStakeLabelCoin = + currency && currency.id === "bitcoin" + ? t("accounts.contextMenu.yield") + : t("accounts.contextMenu.stake"); + const { name, ticker, image, internalCurrency, price } = currency || {}; const currentPriceChangePercentage = currency?.priceChangePercentage[range as KeysPriceChange]; @@ -130,7 +135,7 @@ export default function MarketCoinScreen() { )} {availableOnStake && ( )} diff --git a/apps/ledger-live-desktop/src/renderer/screens/market/MarketList/components/MarketRowItem.tsx b/apps/ledger-live-desktop/src/renderer/screens/market/MarketList/components/MarketRowItem.tsx index 8c02b72e7600..0fbd95c8279f 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/market/MarketList/components/MarketRowItem.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/market/MarketList/components/MarketRowItem.tsx @@ -60,6 +60,10 @@ export const MarketRow = memo(function MarketRowItem({ const { onBuy, onStake, onSwap, availableOnBuy, availableOnSwap, availableOnStake } = useMarketActions({ currency, page: Page.Market, currenciesAll }); + const yieldStakeLabelCoin = + currency && currency.id === "bitcoin" + ? t("accounts.contextMenu.yield") + : t("accounts.contextMenu.stake"); const onCurrencyClick = useCallback(() => { if (currency) { @@ -160,7 +164,7 @@ export const MarketRow = memo(function MarketRowItem({ variant="color" onClick={e => onStake(e)} > - {t("accounts.contextMenu.stake")} + {yieldStakeLabelCoin} )} diff --git a/apps/ledger-live-desktop/static/i18n/en/app.json b/apps/ledger-live-desktop/static/i18n/en/app.json index 52bdf5fe71c2..660294a33573 100644 --- a/apps/ledger-live-desktop/static/i18n/en/app.json +++ b/apps/ledger-live-desktop/static/i18n/en/app.json @@ -1126,6 +1126,7 @@ "send": "Send", "swap": "Swap", "stake": "Stake", + "yield": "Yield", "buy": "Buy", "sell": "Sell", "edit": "Edit account", From e8f309c88af87200047728737d68c413c14bfe38 Mon Sep 17 00:00:00 2001 From: Victor Alber Date: Mon, 30 Sep 2024 16:31:35 +0200 Subject: [PATCH 09/86] =?UTF-8?q?test:=20=F0=9F=92=9A=20Adding=20E2E=20del?= =?UTF-8?q?egate=20test=20-=20Speculos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tests/component/modal.component.ts | 34 - .../ledger-live-desktop/tests/enum/Account.ts | 6 + .../tests/enum/AppInfos.ts | 5 + .../tests/enum/Currency.ts | 1 + .../tests/enum/DeviceLabels.ts | 1 + apps/ledger-live-desktop/tests/page/index.ts | 2 + .../tests/page/modal/delegate.modal.ts | 54 + .../specs/accounts/delegate.smoke.spec.ts | 15 +- .../specs/services/ethereumStaking.spec.ts | 6 +- .../tests/specs/speculos/delegate.spec.ts | 48 + .../tests/userdata/speculos-delegate.json | 14779 ++++++++++++++++ libs/ledger-live-common/src/e2e/speculos.ts | 11 +- 12 files changed, 14917 insertions(+), 45 deletions(-) create mode 100644 apps/ledger-live-desktop/tests/page/modal/delegate.modal.ts create mode 100644 apps/ledger-live-desktop/tests/specs/speculos/delegate.spec.ts create mode 100644 apps/ledger-live-desktop/tests/userdata/speculos-delegate.json diff --git a/apps/ledger-live-desktop/tests/component/modal.component.ts b/apps/ledger-live-desktop/tests/component/modal.component.ts index 05f015b45bf2..ff6a4dc75d52 100644 --- a/apps/ledger-live-desktop/tests/component/modal.component.ts +++ b/apps/ledger-live-desktop/tests/component/modal.component.ts @@ -15,18 +15,10 @@ export class Modal extends Component { protected confirmButton = this.page.getByTestId("modal-confirm-button"); protected closeButton = this.page.getByTestId("modal-close-button"); protected backButton = this.page.getByTestId("modal-back-button"); - protected titleProvider = this.page.getByTestId("modal-provider-title"); - protected rowProvider = this.page.getByTestId("modal-provider-row"); - protected delegateContinueButton = this.page.locator("id=delegate-continue-button"); protected spendableBanner = this.page.getByTestId("modal-spendable-banner"); protected maxAmountCheckbox = this.page.getByTestId("modal-max-checkbox"); protected cryptoAmountField = this.page.getByTestId("modal-amount-field"); protected continueAmountButton = this.page.locator("id=send-amount-continue-button"); - protected searchOpenButton = this.page.getByText("Show all"); - protected searchCloseButton = this.page.getByText("Show less"); - protected inputSearchField = this.page.getByPlaceholder("Search by name or address..."); - protected stakeProviderContainer = (stakeProviderID: string) => - this.page.getByTestId(`stake-provider-container-${stakeProviderID}`); protected signContinueButton = this.page.locator("text=Continue"); protected confirmText = this.page.locator( "text=Please confirm the operation on your device to finalize it", @@ -71,19 +63,6 @@ export class Modal extends Component { await this.container.waitFor({ state: "detached" }); } - async chooseStakeProvider(stakeProvider: string) { - await this.stakeProviderContainer(stakeProvider).click(); - } - - async getTitleProvider() { - await this.titleProvider.waitFor(); - return await this.titleProvider.textContent(); - } - - async continueDelegate() { - await this.delegateContinueButton.click(); - } - async getSpendableBannerValue() { const amountValue = await this.spendableBanner.textContent(); // removing non numerical values @@ -103,19 +82,6 @@ export class Modal extends Component { await this.continueAmountButton.click(); } - async openSearchProviderModal() { - await this.searchOpenButton.click(); - } - - async inputProvider(provider: string) { - await this.inputSearchField.fill(provider); - } - - async selectProvider(providerIndex: number) { - await this.rowProvider.nth(providerIndex).click(); - await this.searchCloseButton.click(); - } - async continueToSignTransaction() { await this.signContinueButton.click({ force: true }); } diff --git a/apps/ledger-live-desktop/tests/enum/Account.ts b/apps/ledger-live-desktop/tests/enum/Account.ts index e42e2ce69cc2..29775f68f5c5 100644 --- a/apps/ledger-live-desktop/tests/enum/Account.ts +++ b/apps/ledger-live-desktop/tests/enum/Account.ts @@ -205,6 +205,12 @@ export class Account { "0xB9051f83AC6e147924377BBEebd1Aa7aB43a67F6", ); + static readonly NEAR_1 = new Account( + Currency.NEAR, + "NEAR 1", + "70b2982a31cfcffc773145d2143392612bb83a22926c912e2ce3ec0634f637e2", + ); + static readonly ETH_USDT_1 = new Account( Currency.ETH_USDT, "Ethereum 1", diff --git a/apps/ledger-live-desktop/tests/enum/AppInfos.ts b/apps/ledger-live-desktop/tests/enum/AppInfos.ts index c7c8c8b8222a..b3cbf78e879a 100644 --- a/apps/ledger-live-desktop/tests/enum/AppInfos.ts +++ b/apps/ledger-live-desktop/tests/enum/AppInfos.ts @@ -124,6 +124,11 @@ export class AppInfos { [DeviceLabels.AMOUT, DeviceLabels.TO, DeviceLabels.APPROVE, DeviceLabels.REJECT], [DeviceLabels.ADDRESS, DeviceLabels.APPROVE, DeviceLabels.REJECT], ); + static readonly NEAR = new AppInfos( + "Near", + [DeviceLabels.AMOUT, DeviceLabels.DESTINATION, DeviceLabels.ACCEPT, DeviceLabels.REJECT], + [DeviceLabels.WALLET_ID, DeviceLabels.APPROVE, DeviceLabels.REJECT], + ); static readonly LS = new AppInfos("LedgerSync", [DeviceLabels.LOGIN_LEDGER_SYNC]); static readonly EXCHANGE = new AppInfos("Exchange", [ DeviceLabels.SEND, diff --git a/apps/ledger-live-desktop/tests/enum/Currency.ts b/apps/ledger-live-desktop/tests/enum/Currency.ts index 0a70443e095a..2ab79bd865bc 100644 --- a/apps/ledger-live-desktop/tests/enum/Currency.ts +++ b/apps/ledger-live-desktop/tests/enum/Currency.ts @@ -42,4 +42,5 @@ export class Currency { static readonly BSC_SHIBA = new Currency("Shiba Inu", "SHIB", AppInfos.BINANCE_SMART_CHAIN); static readonly POL_DAI = new Currency("(PoS) Dai Stablecoin", "DAI", AppInfos.POLYGON); static readonly POL_UNI = new Currency("Uniswap (PoS)", "UNI", AppInfos.POLYGON); + static readonly NEAR = new Currency("NEAR", "NEAR", AppInfos.NEAR); } diff --git a/apps/ledger-live-desktop/tests/enum/DeviceLabels.ts b/apps/ledger-live-desktop/tests/enum/DeviceLabels.ts index 8ed2299b65f2..c008d9e1db97 100644 --- a/apps/ledger-live-desktop/tests/enum/DeviceLabels.ts +++ b/apps/ledger-live-desktop/tests/enum/DeviceLabels.ts @@ -27,4 +27,5 @@ export enum DeviceLabels { GET = "Get", FEES = "Fees", ACCEPT_AND_SEND = "Accept and send", + WALLET_ID = "Wallet ID", } diff --git a/apps/ledger-live-desktop/tests/page/index.ts b/apps/ledger-live-desktop/tests/page/index.ts index 4bc65eca5adb..b26c41b8f2d2 100644 --- a/apps/ledger-live-desktop/tests/page/index.ts +++ b/apps/ledger-live-desktop/tests/page/index.ts @@ -13,6 +13,7 @@ import { SettingsPage } from "tests/page/settings.page"; import { LedgerSyncDrawer } from "./drawer/ledger.sync.drawer"; import { SwapPage } from "tests/page/swap.page"; import { SwapConfirmationDrawer } from "tests/page/drawer/swap.confirmation.drawer"; +import { delegateModal } from "tests/page/modal/delegate.modal"; export class Application extends PageHolder { public account = new AccountPage(this.page); @@ -25,6 +26,7 @@ export class Application extends PageHolder { public receive = new ReceiveModal(this.page); public speculos = new SpeculosPage(this.page); public send = new SendModal(this.page); + public delegate = new delegateModal(this.page); public settings = new SettingsPage(this.page); public ledgerSync = new LedgerSyncDrawer(this.page); public swap = new SwapPage(this.page); diff --git a/apps/ledger-live-desktop/tests/page/modal/delegate.modal.ts b/apps/ledger-live-desktop/tests/page/modal/delegate.modal.ts new file mode 100644 index 000000000000..1df2c2d52bb5 --- /dev/null +++ b/apps/ledger-live-desktop/tests/page/modal/delegate.modal.ts @@ -0,0 +1,54 @@ +import { expect } from "@playwright/test"; +import { Modal } from "../../component/modal.component"; +import { step } from "tests/misc/reporters/step"; + +export class delegateModal extends Modal { + private titleProvider = this.page.getByTestId("modal-provider-title"); + private delegateContinueButton = this.page.locator("id=delegate-continue-button"); + private rowProvider = this.page.getByTestId("modal-provider-row"); + private searchOpenButton = this.page.getByText("Show all"); + private searchCloseButton = this.page.getByText("Show less"); + private inputSearchField = this.page.getByPlaceholder("Search by name or address..."); + private stakeProviderContainer = (stakeProviderID: string) => + this.page.getByTestId(`stake-provider-container-${stakeProviderID}`); + + @step("Get title provider") + async getTitleProvider() { + await this.titleProvider.waitFor(); + return await this.titleProvider.textContent(); + } + + @step("Verify provider is $0") + async verifyProvider(provider: string) { + const providerName = await this.getTitleProvider(); + if (providerName) { + expect(providerName).toBe(provider); + } + } + + @step("Click on continue button - delegate") + async continueDelegate() { + await this.delegateContinueButton.click(); + } + + @step("Click on search provider button") + async openSearchProviderModal() { + await this.searchOpenButton.click(); + } + + @step("Input provider is $0") + async inputProvider(provider: string) { + await this.inputSearchField.fill(provider); + } + + @step("Select provider is $0") + async selectProvider(providerIndex: number) { + await this.rowProvider.nth(providerIndex).click(); + await this.searchCloseButton.click(); + } + + @step("Click on chosen stake provider $0") + async chooseStakeProvider(stakeProvider: string) { + await this.stakeProviderContainer(stakeProvider).click(); + } +} diff --git a/apps/ledger-live-desktop/tests/specs/accounts/delegate.smoke.spec.ts b/apps/ledger-live-desktop/tests/specs/accounts/delegate.smoke.spec.ts index 507682dcf8c3..520064e79b2a 100644 --- a/apps/ledger-live-desktop/tests/specs/accounts/delegate.smoke.spec.ts +++ b/apps/ledger-live-desktop/tests/specs/accounts/delegate.smoke.spec.ts @@ -4,9 +4,11 @@ import { AccountsPage } from "../../page/accounts.page"; import { Layout } from "../../component/layout.component"; import { AccountPage } from "../../page/account.page"; import { Modal } from "../../component/modal.component"; +import { delegateModal } from "tests/page/modal/delegate.modal"; test.use({ userdata: "accountCosmos" }); let modalPage: Modal; +let delegate: delegateModal; test.beforeEach(async ({ page }) => { const layout = new Layout(page); @@ -16,6 +18,7 @@ test.beforeEach(async ({ page }) => { const accountsPage = new AccountsPage(page); await accountsPage.navigateToAccountByName("Cosmos 1"); await accountPage.startCosmosStakingFlow(); + delegate = new delegateModal(page); }); test("Delegate flow using max amount", async () => { @@ -25,12 +28,12 @@ test("Delegate flow using max amount", async () => { await test.step("Check Ledger is the provider by default", async () => { await modalPage.continue(); - const defaultprovider = await modalPage.getTitleProvider(); + const defaultprovider = await delegate.getTitleProvider(); expect(defaultprovider).toEqual("Ledger"); }); await test.step("Toggle max amount to be filled in the amount field", async () => { - await modalPage.continueDelegate(); + await delegate.continueDelegate(); await modalPage.toggleMaxAmount(); const availableMaxAmount = await modalPage.getSpendableBannerValue(); const filledMaxAmount = await modalPage.getCryptoAmount(); @@ -47,10 +50,10 @@ test("The user search and select a provider", async () => { await test.step("search for new provider", async () => { const providerResearched = "Figment"; - await modalPage.openSearchProviderModal(); - await modalPage.inputProvider(providerResearched); - await modalPage.selectProvider(0); - const providerSelected = await modalPage.getTitleProvider(); + await delegate.openSearchProviderModal(); + await delegate.inputProvider(providerResearched); + await delegate.selectProvider(0); + const providerSelected = await delegate.getTitleProvider(); expect(providerSelected).toEqual(providerResearched); }); }); diff --git a/apps/ledger-live-desktop/tests/specs/services/ethereumStaking.spec.ts b/apps/ledger-live-desktop/tests/specs/services/ethereumStaking.spec.ts index 5492c0962e5c..6ee72415313d 100644 --- a/apps/ledger-live-desktop/tests/specs/services/ethereumStaking.spec.ts +++ b/apps/ledger-live-desktop/tests/specs/services/ethereumStaking.spec.ts @@ -11,6 +11,7 @@ import { MarketCoinPage } from "../../page/market.coin.page"; import { AssetPage } from "../../page/asset.page"; import { AccountsPage } from "../../page/accounts.page"; import { AccountPage } from "../../page/account.page"; +import { delegateModal } from "../../page/modal/delegate.modal"; test.use({ env: { @@ -78,6 +79,7 @@ test("Ethereum staking flows via portfolio, asset page and market page @smoke", const marketPage = new MarketPage(page); const marketCoinPage = new MarketCoinPage(page); const analytics = new Analytics(page); + const delegate = new delegateModal(page); const maskItemsInMarket = { mask: [ @@ -126,7 +128,7 @@ test("Ethereum staking flows via portfolio, asset page and market page @smoke", value: "/platform/kiln", }, }); - await modal.chooseStakeProvider("kiln"); + await delegate.chooseStakeProvider("kiln"); await analyticsPromise; await liveAppWebview.waitForCorrectTextInWebview("Ethereum 2"); const dappURL = await liveAppWebview.getLiveAppDappURL(); @@ -198,7 +200,7 @@ test("Ethereum staking flows via portfolio, asset page and market page @smoke", value: "/platform/kiln", }, }); - await modal.chooseStakeProvider("kiln_pooling"); + await delegate.chooseStakeProvider("kiln_pooling"); await analyticsPromise; const dappURL = await liveAppWebview.getLiveAppDappURL(); await liveAppWebview.waitForCorrectTextInWebview("Ethereum 1"); diff --git a/apps/ledger-live-desktop/tests/specs/speculos/delegate.spec.ts b/apps/ledger-live-desktop/tests/specs/speculos/delegate.spec.ts new file mode 100644 index 000000000000..fdf0dbce837c --- /dev/null +++ b/apps/ledger-live-desktop/tests/specs/speculos/delegate.spec.ts @@ -0,0 +1,48 @@ +import { test } from "../../fixtures/common"; +import { Account } from "../../enum/Account"; +import { addTmsLink } from "tests/utils/allureUtils"; +import { getDescription } from "../../utils/customJsonReporter"; + +const accounts = [ + { + account: Account.ATOM_1, + xrayTicket: "B2CQA-2731", + provider: "Ledger", + }, + { + account: Account.SOL_1, + xrayTicket: "B2CQA-2730", + provider: "Ledger by Figment", + }, + { + account: Account.NEAR_1, + xrayTicket: "B2CQA-2732", + provider: "ledgerbyfigment.poolv1.near", + }, +]; + +for (const account of accounts) { + test.describe("Delegate", () => { + test.use({ + userdata: "speculos-delegate", + }); + + test( + `[${account.account.currency.name}] Delegate`, + { + annotation: { + type: "TMS", + description: account.xrayTicket, + }, + }, + async ({ app }) => { + await addTmsLink(getDescription(test.info().annotations).split(", ")); + await app.layout.goToAccounts(); + await app.accounts.navigateToAccountByName(account.account.accountName); + + await app.account.clickBannerCTA(); + await app.delegate.verifyProvider(account.provider); + }, + ); + }); +} diff --git a/apps/ledger-live-desktop/tests/userdata/speculos-delegate.json b/apps/ledger-live-desktop/tests/userdata/speculos-delegate.json new file mode 100644 index 000000000000..1d36d57c9948 --- /dev/null +++ b/apps/ledger-live-desktop/tests/userdata/speculos-delegate.json @@ -0,0 +1,14779 @@ +{ + "data": { + "PLAYWRIGHT_RUN": { + "localStorage": { "acceptedTermsVersion": "2042-01-01" } + }, + "settings": { + "hasCompletedOnboarding": true, + "counterValue": "USD", + "language": "en", + "locale": "en-US", + "theme": null, + "region": null, + "orderAccounts": "balance|desc", + "countervalueFirst": false, + "autoLockTimeout": 10, + "selectedTimeRange": "month", + "currenciesSettings": {}, + "pairExchanges": {}, + "developerMode": false, + "loaded": true, + "shareAnalytics": true, + "sharePersonalizedRecommandations": true, + "hasSeenAnalyticsOptInPrompt": true, + "sentryLogs": true, + "lastUsedVersion": "99.99.99", + "dismissedBanners": [], + "accountsViewMode": "list", + "nftsViewMode": "list", + "collectiblesViewMode": "list", + "showAccountsHelperBanner": true, + "hideEmptyTokenAccounts": false, + "filterTokenOperationsZeroAmount": true, + "sidebarCollapsed": false, + "discreetMode": false, + "preferredDeviceModel": "nanoX", + "hasInstalledApps": true, + "lastSeenDevice": { + "modelId": "nanoX", + "deviceInfo": { + "version": "2.2.4", + "mcuVersion": "2.30", + "seVersion": "2.2.4", + "majMin": "2.2.4", + "providerName": null, + "targetId": 855638020, + "hasDevFirmware": false, + "seTargetId": 855638020, + "isOSU": false, + "isBootloader": false, + "isRecoveryMode": false, + "managerAllowed": false, + "pinValidated": true, + "onboarded": true, + "bootloaderVersion": "1.16", + "hardwareVersion": 1, + "languageId": 0 + }, + "apps": [] + }, + "hasSeenOrdinalsDiscoveryDrawer": false, + "devicesModelList": ["nanoX"], + "lastSeenCustomImage": { "size": 0, "hash": "" }, + "latestFirmware": null, + "blacklistedTokenIds": [], + "hiddenNftCollections": [], + "deepLinkUrl": null, + "firstTimeLend": false, + "showClearCacheBanner": false, + "fullNodeEnabled": false, + "allowDebugApps": false, + "allowReactQueryDebug": false, + "allowExperimentalApps": false, + "enablePlatformDevTools": false, + "catalogProvider": "production", + "enableLearnPageStagingUrl": false, + "swap": { + "hasAcceptedIPSharing": false, + "acceptedProviders": [], + "selectableCurrencies": [] + }, + "overriddenFeatureFlags": {}, + "featureFlagsButtonVisible": false, + "vaultSigner": { + "enabled": false, + "host": "", + "token": "", + "workspace": "" + }, + "supportedCounterValues": [ + { + "value": "AFN", + "label": "Afghan Afghani - AFN", + "currency": { + "type": "FiatCurrency", + "ticker": "AFN", + "name": "Afghan Afghani", + "symbol": "؋", + "units": [ + { + "code": "؋", + "name": "Afghan Afghani", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "ALL", + "label": "Albanian Lek - ALL", + "currency": { + "type": "FiatCurrency", + "ticker": "ALL", + "name": "Albanian Lek", + "symbol": "Lek", + "units": [ + { + "code": "Lek", + "name": "Albanian Lek", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "DZD", + "label": "Algerian Dinar - DZD", + "currency": { + "type": "FiatCurrency", + "ticker": "DZD", + "name": "Algerian Dinar", + "symbol": "د.ج.‏", + "units": [ + { + "code": "د.ج.‏", + "name": "Algerian Dinar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "AOA", + "label": "Angolan Kwanza - AOA", + "currency": { + "type": "FiatCurrency", + "ticker": "AOA", + "name": "Angolan Kwanza", + "symbol": "Kz", + "units": [ + { + "code": "Kz", + "name": "Angolan Kwanza", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "ARS", + "label": "Argentine Peso - ARS", + "currency": { + "type": "FiatCurrency", + "ticker": "ARS", + "name": "Argentine Peso", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Argentine Peso", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "AMD", + "label": "Armenian Dram - AMD", + "currency": { + "type": "FiatCurrency", + "ticker": "AMD", + "name": "Armenian Dram", + "symbol": "֏", + "units": [ + { + "code": "֏", + "name": "Armenian Dram", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "AWG", + "label": "Aruban Florin - AWG", + "currency": { + "type": "FiatCurrency", + "ticker": "AWG", + "name": "Aruban Florin", + "symbol": "ƒ", + "units": [ + { + "code": "ƒ", + "name": "Aruban Florin", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "AUD", + "label": "Australian Dollar - AUD", + "currency": { + "type": "FiatCurrency", + "ticker": "AUD", + "name": "Australian Dollar", + "symbol": "AU$", + "units": [ + { + "code": "AU$", + "name": "Australian Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "AZN", + "label": "Azerbaijani Manat - AZN", + "currency": { + "type": "FiatCurrency", + "ticker": "AZN", + "name": "Azerbaijani Manat", + "symbol": "₼", + "units": [ + { + "code": "₼", + "name": "Azerbaijani Manat", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BSD", + "label": "Bahamian Dollar - BSD", + "currency": { + "type": "FiatCurrency", + "ticker": "BSD", + "name": "Bahamian Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Bahamian Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BHD", + "label": "Bahraini Dinar - BHD", + "currency": { + "type": "FiatCurrency", + "ticker": "BHD", + "name": "Bahraini Dinar", + "symbol": "د.ب.", + "units": [ + { + "code": "د.ب.", + "name": "Bahraini Dinar", + "magnitude": 3, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BDT", + "label": "Bangladeshi Taka - BDT", + "currency": { + "type": "FiatCurrency", + "ticker": "BDT", + "name": "Bangladeshi Taka", + "symbol": "৳", + "units": [ + { + "code": "৳", + "name": "Bangladeshi Taka", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BBD", + "label": "Barbadian Dollar - BBD", + "currency": { + "type": "FiatCurrency", + "ticker": "BBD", + "name": "Barbadian Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Barbadian Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BYN", + "label": "Belarusian Ruble - BYN", + "currency": { + "type": "FiatCurrency", + "ticker": "BYN", + "name": "Belarusian Ruble", + "symbol": "р.", + "units": [ + { + "code": "р.", + "name": "Belarusian Ruble", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BZD", + "label": "Belize Dollar - BZD", + "currency": { + "type": "FiatCurrency", + "ticker": "BZD", + "name": "Belize Dollar", + "symbol": "BZ$", + "units": [ + { + "code": "BZ$", + "name": "Belize Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BMD", + "label": "Bermudian Dollar - BMD", + "currency": { + "type": "FiatCurrency", + "ticker": "BMD", + "name": "Bermudian Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Bermudian Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BTN", + "label": "Bhutanese Ngultrum - BTN", + "currency": { + "type": "FiatCurrency", + "ticker": "BTN", + "name": "Bhutanese Ngultrum", + "symbol": "Nu.", + "units": [ + { + "code": "Nu.", + "name": "Bhutanese Ngultrum", + "magnitude": 1, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BTC", + "label": "Bitcoin - BTC", + "currency": { + "type": "CryptoCurrency", + "id": "bitcoin", + "coinType": 0, + "name": "Bitcoin", + "managerAppName": "Bitcoin", + "ticker": "BTC", + "scheme": "bitcoin", + "color": "#ffae35", + "symbol": "Ƀ", + "units": [ + { "name": "bitcoin", "code": "BTC", "magnitude": 8 }, + { "name": "mBTC", "code": "mBTC", "magnitude": 5 }, + { "name": "bit", "code": "bit", "magnitude": 2 }, + { "name": "satoshi", "code": "sat", "magnitude": 0 } + ], + "supportsSegwit": true, + "supportsNativeSegwit": true, + "family": "bitcoin", + "blockAvgTime": 900, + "bitcoinLikeInfo": { + "P2PKH": 0, + "P2SH": 5, + "XPUBVersion": 76067358 + }, + "explorerViews": [ + { + "address": "https://blockstream.info/address/$address", + "tx": "https://blockstream.info/tx/$hash" + }, + { + "address": "https://www.blockchain.com/btc/address/$address", + "tx": "https://blockchain.info/btc/tx/$hash" + } + ], + "keywords": ["btc", "bitcoin"], + "explorerId": "btc" + } + }, + { + "value": "BOB", + "label": "Bolivian Boliviano - BOB", + "currency": { + "type": "FiatCurrency", + "ticker": "BOB", + "name": "Bolivian Boliviano", + "symbol": "Bs", + "units": [ + { + "code": "Bs", + "name": "Bolivian Boliviano", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BAM", + "label": "Bosnia-Herzegovina Convertible Mark - BAM", + "currency": { + "type": "FiatCurrency", + "ticker": "BAM", + "name": "Bosnia-Herzegovina Convertible Mark", + "symbol": "КМ", + "units": [ + { + "code": "КМ", + "name": "Bosnia-Herzegovina Convertible Mark", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BWP", + "label": "Botswana Pula - BWP", + "currency": { + "type": "FiatCurrency", + "ticker": "BWP", + "name": "Botswana Pula", + "symbol": "P", + "units": [ + { + "code": "P", + "name": "Botswana Pula", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BRL", + "label": "Brazilian Real - BRL", + "currency": { + "type": "FiatCurrency", + "ticker": "BRL", + "name": "Brazilian Real", + "symbol": "R$", + "units": [ + { + "code": "R$", + "name": "Brazilian Real", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "GBP", + "label": "British Pound - GBP", + "currency": { + "type": "FiatCurrency", + "ticker": "GBP", + "name": "British Pound", + "symbol": "£", + "units": [ + { + "code": "£", + "name": "British Pound", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BND", + "label": "Brunei Dollar - BND", + "currency": { + "type": "FiatCurrency", + "ticker": "BND", + "name": "Brunei Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Brunei Dollar", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BGN", + "label": "Bulgarian Lev - BGN", + "currency": { + "type": "FiatCurrency", + "ticker": "BGN", + "name": "Bulgarian Lev", + "symbol": "лв.", + "units": [ + { + "code": "лв.", + "name": "Bulgarian Lev", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "BIF", + "label": "Burundian Franc - BIF", + "currency": { + "type": "FiatCurrency", + "ticker": "BIF", + "name": "Burundian Franc", + "symbol": "FBu", + "units": [ + { + "code": "FBu", + "name": "Burundian Franc", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "XPF", + "label": "CFP Franc - XPF", + "currency": { + "type": "FiatCurrency", + "ticker": "XPF", + "name": "CFP Franc", + "symbol": "F", + "units": [ + { + "code": "F", + "name": "CFP Franc", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "KHR", + "label": "Cambodian Riel - KHR", + "currency": { + "type": "FiatCurrency", + "ticker": "KHR", + "name": "Cambodian Riel", + "symbol": "៛", + "units": [ + { + "code": "៛", + "name": "Cambodian Riel", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CAD", + "label": "Canadian Dollar - CAD", + "currency": { + "type": "FiatCurrency", + "ticker": "CAD", + "name": "Canadian Dollar", + "symbol": "CA$", + "units": [ + { + "code": "CA$", + "name": "Canadian Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CVE", + "label": "Cape Verdean Escudo - CVE", + "currency": { + "type": "FiatCurrency", + "ticker": "CVE", + "name": "Cape Verdean Escudo", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Cape Verdean Escudo", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "KYD", + "label": "Cayman Islands Dollar - KYD", + "currency": { + "type": "FiatCurrency", + "ticker": "KYD", + "name": "Cayman Islands Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Cayman Islands Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "XAF", + "label": "Central African CFA Franc - XAF", + "currency": { + "type": "FiatCurrency", + "ticker": "XAF", + "name": "Central African CFA Franc", + "symbol": "F", + "units": [ + { + "code": "F", + "name": "Central African CFA Franc", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CLP", + "label": "Chilean Peso - CLP", + "currency": { + "type": "FiatCurrency", + "ticker": "CLP", + "name": "Chilean Peso", + "symbol": "CLP$", + "units": [ + { + "code": "CLP$", + "name": "Chilean Peso", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CNY", + "label": "Chinese Yuan Renminbi - CNY", + "currency": { + "type": "FiatCurrency", + "ticker": "CNY", + "name": "Chinese Yuan Renminbi", + "symbol": "¥", + "units": [ + { + "code": "¥", + "name": "Chinese Yuan Renminbi", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "COP", + "label": "Colombian Peso - COP", + "currency": { + "type": "FiatCurrency", + "ticker": "COP", + "name": "Colombian Peso", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Colombian Peso", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "KMF", + "label": "Comorian Franc - KMF", + "currency": { + "type": "FiatCurrency", + "ticker": "KMF", + "name": "Comorian Franc", + "symbol": "CF", + "units": [ + { + "code": "CF", + "name": "Comorian Franc", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CDF", + "label": "Congolese Franc - CDF", + "currency": { + "type": "FiatCurrency", + "ticker": "CDF", + "name": "Congolese Franc", + "symbol": "FC", + "units": [ + { + "code": "FC", + "name": "Congolese Franc", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CRC", + "label": "Costa Rican Colón - CRC", + "currency": { + "type": "FiatCurrency", + "ticker": "CRC", + "name": "Costa Rican Colón", + "symbol": "₡", + "units": [ + { + "code": "₡", + "name": "Costa Rican Colón", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "HRK", + "label": "Croatian Kuna - HRK", + "currency": { + "type": "FiatCurrency", + "ticker": "HRK", + "name": "Croatian Kuna", + "symbol": "kn", + "units": [ + { + "code": "kn", + "name": "Croatian Kuna", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CUC", + "label": "Cuban Convertible Peso - CUC", + "currency": { + "type": "FiatCurrency", + "ticker": "CUC", + "name": "Cuban Convertible Peso", + "symbol": "CUC", + "units": [ + { + "code": "CUC", + "name": "Cuban Convertible Peso", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CUP", + "label": "Cuban Peso - CUP", + "currency": { + "type": "FiatCurrency", + "ticker": "CUP", + "name": "Cuban Peso", + "symbol": "$MN", + "units": [ + { + "code": "$MN", + "name": "Cuban Peso", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CZK", + "label": "Czech Koruna - CZK", + "currency": { + "type": "FiatCurrency", + "ticker": "CZK", + "name": "Czech Koruna", + "symbol": "Kč", + "units": [ + { + "code": "Kč", + "name": "Czech Koruna", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "DKK", + "label": "Danish Krone - DKK", + "currency": { + "type": "FiatCurrency", + "ticker": "DKK", + "name": "Danish Krone", + "symbol": "kr.", + "units": [ + { + "code": "kr.", + "name": "Danish Krone", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "DJF", + "label": "Djiboutian Franc - DJF", + "currency": { + "type": "FiatCurrency", + "ticker": "DJF", + "name": "Djiboutian Franc", + "symbol": "Fdj", + "units": [ + { + "code": "Fdj", + "name": "Djiboutian Franc", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "DOP", + "label": "Dominican Peso - DOP", + "currency": { + "type": "FiatCurrency", + "ticker": "DOP", + "name": "Dominican Peso", + "symbol": "RD$", + "units": [ + { + "code": "RD$", + "name": "Dominican Peso", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "XCD", + "label": "East Caribbean Dollar - XCD", + "currency": { + "type": "FiatCurrency", + "ticker": "XCD", + "name": "East Caribbean Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "East Caribbean Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "EGP", + "label": "Egyptian Pound - EGP", + "currency": { + "type": "FiatCurrency", + "ticker": "EGP", + "name": "Egyptian Pound", + "symbol": "ج.م.‏", + "units": [ + { + "code": "ج.م.‏", + "name": "Egyptian Pound", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "AED", + "label": "Emirati Dirham - AED", + "currency": { + "type": "FiatCurrency", + "ticker": "AED", + "name": "Emirati Dirham", + "symbol": "د.إ.", + "units": [ + { + "code": "د.إ.", + "name": "Emirati Dirham", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "ERN", + "label": "Eritrean Nakfa - ERN", + "currency": { + "type": "FiatCurrency", + "ticker": "ERN", + "name": "Eritrean Nakfa", + "symbol": "Nfk", + "units": [ + { + "code": "Nfk", + "name": "Eritrean Nakfa", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "ETH", + "label": "Ethereum - ETH", + "currency": { + "type": "CryptoCurrency", + "id": "ethereum", + "coinType": 60, + "name": "Ethereum", + "managerAppName": "Ethereum", + "ticker": "ETH", + "scheme": "ethereum", + "color": "#0ebdcd", + "symbol": "Ξ", + "family": "evm", + "blockAvgTime": 15, + "units": [ + { "name": "ether", "code": "ETH", "magnitude": 18 }, + { "name": "Gwei", "code": "Gwei", "magnitude": 9 }, + { "name": "Mwei", "code": "Mwei", "magnitude": 6 }, + { "name": "Kwei", "code": "Kwei", "magnitude": 3 }, + { "name": "wei", "code": "wei", "magnitude": 0 } + ], + "ethereumLikeInfo": { "chainId": 1 }, + "explorerViews": [ + { + "tx": "https://etherscan.io/tx/$hash", + "address": "https://etherscan.io/address/$address", + "token": "https://etherscan.io/token/$contractAddress?a=$address" + } + ], + "keywords": ["eth", "ethereum"], + "explorerId": "eth" + } + }, + { + "value": "ETB", + "label": "Ethiopian Birr - ETB", + "currency": { + "type": "FiatCurrency", + "ticker": "ETB", + "name": "Ethiopian Birr", + "symbol": "ETB", + "units": [ + { + "code": "ETB", + "name": "Ethiopian Birr", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "EUR", + "label": "Euro - EUR", + "currency": { + "type": "FiatCurrency", + "ticker": "EUR", + "name": "Euro", + "symbol": "€", + "units": [ + { + "code": "€", + "name": "Euro", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "FKP", + "label": "Falkland Islands Pound - FKP", + "currency": { + "type": "FiatCurrency", + "ticker": "FKP", + "name": "Falkland Islands Pound", + "symbol": "£", + "units": [ + { + "code": "£", + "name": "Falkland Islands Pound", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "FJD", + "label": "Fijian Dollar - FJD", + "currency": { + "type": "FiatCurrency", + "ticker": "FJD", + "name": "Fijian Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Fijian Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "GMD", + "label": "Gambian Dalasi - GMD", + "currency": { + "type": "FiatCurrency", + "ticker": "GMD", + "name": "Gambian Dalasi", + "symbol": "D", + "units": [ + { + "code": "D", + "name": "Gambian Dalasi", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "GEL", + "label": "Georgian Lari - GEL", + "currency": { + "type": "FiatCurrency", + "ticker": "GEL", + "name": "Georgian Lari", + "symbol": "GEL", + "units": [ + { + "code": "GEL", + "name": "Georgian Lari", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "GHS", + "label": "Ghanaian Cedi - GHS", + "currency": { + "type": "FiatCurrency", + "ticker": "GHS", + "name": "Ghanaian Cedi", + "symbol": "₵", + "units": [ + { + "code": "₵", + "name": "Ghanaian Cedi", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "GIP", + "label": "Gibraltar Pound - GIP", + "currency": { + "type": "FiatCurrency", + "ticker": "GIP", + "name": "Gibraltar Pound", + "symbol": "£", + "units": [ + { + "code": "£", + "name": "Gibraltar Pound", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "GTQ", + "label": "Guatemalan Quetzal - GTQ", + "currency": { + "type": "FiatCurrency", + "ticker": "GTQ", + "name": "Guatemalan Quetzal", + "symbol": "Q", + "units": [ + { + "code": "Q", + "name": "Guatemalan Quetzal", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "GNF", + "label": "Guinean Franc - GNF", + "currency": { + "type": "FiatCurrency", + "ticker": "GNF", + "name": "Guinean Franc", + "symbol": "FG", + "units": [ + { + "code": "FG", + "name": "Guinean Franc", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "GYD", + "label": "Guyanese Dollar - GYD", + "currency": { + "type": "FiatCurrency", + "ticker": "GYD", + "name": "Guyanese Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Guyanese Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "HTG", + "label": "Haitian Gourde - HTG", + "currency": { + "type": "FiatCurrency", + "ticker": "HTG", + "name": "Haitian Gourde", + "symbol": "G", + "units": [ + { + "code": "G", + "name": "Haitian Gourde", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "HNL", + "label": "Honduran Lempira - HNL", + "currency": { + "type": "FiatCurrency", + "ticker": "HNL", + "name": "Honduran Lempira", + "symbol": "L.", + "units": [ + { + "code": "L.", + "name": "Honduran Lempira", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "HKD", + "label": "Hong Kong Dollar - HKD", + "currency": { + "type": "FiatCurrency", + "ticker": "HKD", + "name": "Hong Kong Dollar", + "symbol": "HK$", + "units": [ + { + "code": "HK$", + "name": "Hong Kong Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "HUF", + "label": "Hungarian Forint - HUF", + "currency": { + "type": "FiatCurrency", + "ticker": "HUF", + "name": "Hungarian Forint", + "symbol": "Ft", + "units": [ + { + "code": "Ft", + "name": "Hungarian Forint", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "ISK", + "label": "Iceland Krona - ISK", + "currency": { + "type": "FiatCurrency", + "ticker": "ISK", + "name": "Iceland Krona", + "symbol": "kr.", + "units": [ + { + "code": "kr.", + "name": "Iceland Krona", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "INR", + "label": "Indian Rupee - INR", + "currency": { + "type": "FiatCurrency", + "ticker": "INR", + "name": "Indian Rupee", + "symbol": "₹", + "units": [ + { + "code": "₹", + "name": "Indian Rupee", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "IDR", + "label": "Indonesian Rupiah - IDR", + "currency": { + "type": "FiatCurrency", + "ticker": "IDR", + "name": "Indonesian Rupiah", + "symbol": "Rp", + "units": [ + { + "code": "Rp", + "name": "Indonesian Rupiah", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "IRR", + "label": "Iranian Rial - IRR", + "currency": { + "type": "FiatCurrency", + "ticker": "IRR", + "name": "Iranian Rial", + "symbol": "﷼", + "units": [ + { + "code": "﷼", + "name": "Iranian Rial", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "IQD", + "label": "Iraqi Dinar - IQD", + "currency": { + "type": "FiatCurrency", + "ticker": "IQD", + "name": "Iraqi Dinar", + "symbol": "د.ع.‏", + "units": [ + { + "code": "د.ع.‏", + "name": "Iraqi Dinar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "ILS", + "label": "Israeli Shekel - ILS", + "currency": { + "type": "FiatCurrency", + "ticker": "ILS", + "name": "Israeli Shekel", + "symbol": "₪", + "units": [ + { + "code": "₪", + "name": "Israeli Shekel", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "JMD", + "label": "Jamaican Dollar - JMD", + "currency": { + "type": "FiatCurrency", + "ticker": "JMD", + "name": "Jamaican Dollar", + "symbol": "J$", + "units": [ + { + "code": "J$", + "name": "Jamaican Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "JPY", + "label": "Japanese Yen - JPY", + "currency": { + "type": "FiatCurrency", + "ticker": "JPY", + "name": "Japanese Yen", + "symbol": "¥", + "units": [ + { + "code": "¥", + "name": "Japanese Yen", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "JOD", + "label": "Jordanian Dinar - JOD", + "currency": { + "type": "FiatCurrency", + "ticker": "JOD", + "name": "Jordanian Dinar", + "symbol": "د.ا.‏", + "units": [ + { + "code": "د.ا.‏", + "name": "Jordanian Dinar", + "magnitude": 3, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "KZT", + "label": "Kazakhstani Tenge - KZT", + "currency": { + "type": "FiatCurrency", + "ticker": "KZT", + "name": "Kazakhstani Tenge", + "symbol": "₸", + "units": [ + { + "code": "₸", + "name": "Kazakhstani Tenge", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "KES", + "label": "Kenyan Shilling - KES", + "currency": { + "type": "FiatCurrency", + "ticker": "KES", + "name": "Kenyan Shilling", + "symbol": "KSh", + "units": [ + { + "code": "KSh", + "name": "Kenyan Shilling", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "KWD", + "label": "Kuwaiti Dinar - KWD", + "currency": { + "type": "FiatCurrency", + "ticker": "KWD", + "name": "Kuwaiti Dinar", + "symbol": "د.ك.‏", + "units": [ + { + "code": "د.ك.‏", + "name": "Kuwaiti Dinar", + "magnitude": 3, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "KGS", + "label": "Kyrgyzstani Som - KGS", + "currency": { + "type": "FiatCurrency", + "ticker": "KGS", + "name": "Kyrgyzstani Som", + "symbol": "сом", + "units": [ + { + "code": "сом", + "name": "Kyrgyzstani Som", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "LAK", + "label": "Lao Kip - LAK", + "currency": { + "type": "FiatCurrency", + "ticker": "LAK", + "name": "Lao Kip", + "symbol": "₭", + "units": [ + { + "code": "₭", + "name": "Lao Kip", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "LBP", + "label": "Lebanese Pound - LBP", + "currency": { + "type": "FiatCurrency", + "ticker": "LBP", + "name": "Lebanese Pound", + "symbol": "ل.ل.‏", + "units": [ + { + "code": "ل.ل.‏", + "name": "Lebanese Pound", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "LSL", + "label": "Lesotho Loti - LSL", + "currency": { + "type": "FiatCurrency", + "ticker": "LSL", + "name": "Lesotho Loti", + "symbol": "M", + "units": [ + { + "code": "M", + "name": "Lesotho Loti", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "LRD", + "label": "Liberian Dollar - LRD", + "currency": { + "type": "FiatCurrency", + "ticker": "LRD", + "name": "Liberian Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Liberian Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "LYD", + "label": "Libyan Dinar - LYD", + "currency": { + "type": "FiatCurrency", + "ticker": "LYD", + "name": "Libyan Dinar", + "symbol": "د.ل.‏", + "units": [ + { + "code": "د.ل.‏", + "name": "Libyan Dinar", + "magnitude": 3, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MOP", + "label": "Macanese Pataca - MOP", + "currency": { + "type": "FiatCurrency", + "ticker": "MOP", + "name": "Macanese Pataca", + "symbol": "MOP$", + "units": [ + { + "code": "MOP$", + "name": "Macanese Pataca", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MKD", + "label": "Macedonian Denar - MKD", + "currency": { + "type": "FiatCurrency", + "ticker": "MKD", + "name": "Macedonian Denar", + "symbol": "ден.", + "units": [ + { + "code": "ден.", + "name": "Macedonian Denar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MGA", + "label": "Malagasy Ariary - MGA", + "currency": { + "type": "FiatCurrency", + "ticker": "MGA", + "name": "Malagasy Ariary", + "symbol": "Ar", + "units": [ + { + "code": "Ar", + "name": "Malagasy Ariary", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MWK", + "label": "Malawian Kwacha - MWK", + "currency": { + "type": "FiatCurrency", + "ticker": "MWK", + "name": "Malawian Kwacha", + "symbol": "MK", + "units": [ + { + "code": "MK", + "name": "Malawian Kwacha", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MYR", + "label": "Malaysian Ringgit - MYR", + "currency": { + "type": "FiatCurrency", + "ticker": "MYR", + "name": "Malaysian Ringgit", + "symbol": "RM", + "units": [ + { + "code": "RM", + "name": "Malaysian Ringgit", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MVR", + "label": "Maldivian Rufiyaa - MVR", + "currency": { + "type": "FiatCurrency", + "ticker": "MVR", + "name": "Maldivian Rufiyaa", + "symbol": "MVR", + "units": [ + { + "code": "MVR", + "name": "Maldivian Rufiyaa", + "magnitude": 1, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MUR", + "label": "Mauritian Rupee - MUR", + "currency": { + "type": "FiatCurrency", + "ticker": "MUR", + "name": "Mauritian Rupee", + "symbol": "₨", + "units": [ + { + "code": "₨", + "name": "Mauritian Rupee", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MXN", + "label": "Mexican Peso - MXN", + "currency": { + "type": "FiatCurrency", + "ticker": "MXN", + "name": "Mexican Peso", + "symbol": "Mex$", + "units": [ + { + "code": "Mex$", + "name": "Mexican Peso", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MDL", + "label": "Moldovan Leu - MDL", + "currency": { + "type": "FiatCurrency", + "ticker": "MDL", + "name": "Moldovan Leu", + "symbol": "lei", + "units": [ + { + "code": "lei", + "name": "Moldovan Leu", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MNT", + "label": "Mongolian Tugrik - MNT", + "currency": { + "type": "FiatCurrency", + "ticker": "MNT", + "name": "Mongolian Tugrik", + "symbol": "₮", + "units": [ + { + "code": "₮", + "name": "Mongolian Tugrik", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MAD", + "label": "Moroccan Dirham - MAD", + "currency": { + "type": "FiatCurrency", + "ticker": "MAD", + "name": "Moroccan Dirham", + "symbol": "د.م.‏", + "units": [ + { + "code": "د.م.‏", + "name": "Moroccan Dirham", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MZN", + "label": "Mozambican Metical - MZN", + "currency": { + "type": "FiatCurrency", + "ticker": "MZN", + "name": "Mozambican Metical", + "symbol": "MT", + "units": [ + { + "code": "MT", + "name": "Mozambican Metical", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "MMK", + "label": "Myanmar Kyat - MMK", + "currency": { + "type": "FiatCurrency", + "ticker": "MMK", + "name": "Myanmar Kyat", + "symbol": "K", + "units": [ + { + "code": "K", + "name": "Myanmar Kyat", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "NAD", + "label": "Namibian Dollar - NAD", + "currency": { + "type": "FiatCurrency", + "ticker": "NAD", + "name": "Namibian Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Namibian Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "NPR", + "label": "Nepalese Rupee - NPR", + "currency": { + "type": "FiatCurrency", + "ticker": "NPR", + "name": "Nepalese Rupee", + "symbol": "₨", + "units": [ + { + "code": "₨", + "name": "Nepalese Rupee", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "ANG", + "label": "Netherlands Antillean Guilder - ANG", + "currency": { + "type": "FiatCurrency", + "ticker": "ANG", + "name": "Netherlands Antillean Guilder", + "symbol": "ƒ", + "units": [ + { + "code": "ƒ", + "name": "Netherlands Antillean Guilder", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "TWD", + "label": "New Taiwan Dollar - TWD", + "currency": { + "type": "FiatCurrency", + "ticker": "TWD", + "name": "New Taiwan Dollar", + "symbol": "NT$", + "units": [ + { + "code": "NT$", + "name": "New Taiwan Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "NZD", + "label": "New Zealand Dollar - NZD", + "currency": { + "type": "FiatCurrency", + "ticker": "NZD", + "name": "New Zealand Dollar", + "symbol": "NZ$", + "units": [ + { + "code": "NZ$", + "name": "New Zealand Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "NIO", + "label": "Nicaraguan Córdoba - NIO", + "currency": { + "type": "FiatCurrency", + "ticker": "NIO", + "name": "Nicaraguan Córdoba", + "symbol": "C$", + "units": [ + { + "code": "C$", + "name": "Nicaraguan Córdoba", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "NGN", + "label": "Nigerian Naira - NGN", + "currency": { + "type": "FiatCurrency", + "ticker": "NGN", + "name": "Nigerian Naira", + "symbol": "₦", + "units": [ + { + "code": "₦", + "name": "Nigerian Naira", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "KPW", + "label": "North Korean Won - KPW", + "currency": { + "type": "FiatCurrency", + "ticker": "KPW", + "name": "North Korean Won", + "symbol": "₩", + "units": [ + { + "code": "₩", + "name": "North Korean Won", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "NOK", + "label": "Norwegian Krone - NOK", + "currency": { + "type": "FiatCurrency", + "ticker": "NOK", + "name": "Norwegian Krone", + "symbol": "kr", + "units": [ + { + "code": "kr", + "name": "Norwegian Krone", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "OMR", + "label": "Omani Rial - OMR", + "currency": { + "type": "FiatCurrency", + "ticker": "OMR", + "name": "Omani Rial", + "symbol": "﷼", + "units": [ + { + "code": "﷼", + "name": "Omani Rial", + "magnitude": 3, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "PKR", + "label": "Pakistani Rupee - PKR", + "currency": { + "type": "FiatCurrency", + "ticker": "PKR", + "name": "Pakistani Rupee", + "symbol": "₨", + "units": [ + { + "code": "₨", + "name": "Pakistani Rupee", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "PAB", + "label": "Panamanian Balboa - PAB", + "currency": { + "type": "FiatCurrency", + "ticker": "PAB", + "name": "Panamanian Balboa", + "symbol": "B/.", + "units": [ + { + "code": "B/.", + "name": "Panamanian Balboa", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "PGK", + "label": "Papua New Guinean Kina - PGK", + "currency": { + "type": "FiatCurrency", + "ticker": "PGK", + "name": "Papua New Guinean Kina", + "symbol": "K", + "units": [ + { + "code": "K", + "name": "Papua New Guinean Kina", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "PYG", + "label": "Paraguayan Guarani - PYG", + "currency": { + "type": "FiatCurrency", + "ticker": "PYG", + "name": "Paraguayan Guarani", + "symbol": "₲", + "units": [ + { + "code": "₲", + "name": "Paraguayan Guarani", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "PEN", + "label": "Peruvian Sol - PEN", + "currency": { + "type": "FiatCurrency", + "ticker": "PEN", + "name": "Peruvian Sol", + "symbol": "S/.", + "units": [ + { + "code": "S/.", + "name": "Peruvian Sol", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "PHP", + "label": "Philippine Peso - PHP", + "currency": { + "type": "FiatCurrency", + "ticker": "PHP", + "name": "Philippine Peso", + "symbol": "₱", + "units": [ + { + "code": "₱", + "name": "Philippine Peso", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "PLN", + "label": "Polish Złoty - PLN", + "currency": { + "type": "FiatCurrency", + "ticker": "PLN", + "name": "Polish Złoty", + "symbol": "zł", + "units": [ + { + "code": "zł", + "name": "Polish Złoty", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "QAR", + "label": "Qatari Riyal - QAR", + "currency": { + "type": "FiatCurrency", + "ticker": "QAR", + "name": "Qatari Riyal", + "symbol": "﷼", + "units": [ + { + "code": "﷼", + "name": "Qatari Riyal", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "RON", + "label": "Romanian Leu - RON", + "currency": { + "type": "FiatCurrency", + "ticker": "RON", + "name": "Romanian Leu", + "symbol": "L", + "units": [ + { + "code": "L", + "name": "Romanian Leu", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "RUB", + "label": "Russian Rouble - RUB", + "currency": { + "type": "FiatCurrency", + "ticker": "RUB", + "name": "Russian Rouble", + "symbol": "₽", + "units": [ + { + "code": "₽", + "name": "Russian Rouble", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "RWF", + "label": "Rwandan Franc - RWF", + "currency": { + "type": "FiatCurrency", + "ticker": "RWF", + "name": "Rwandan Franc", + "symbol": "RWF", + "units": [ + { + "code": "RWF", + "name": "Rwandan Franc", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SHP", + "label": "Saint Helena Pound - SHP", + "currency": { + "type": "FiatCurrency", + "ticker": "SHP", + "name": "Saint Helena Pound", + "symbol": "£", + "units": [ + { + "code": "£", + "name": "Saint Helena Pound", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SVC", + "label": "Salvadoran Colón - SVC", + "currency": { + "type": "FiatCurrency", + "ticker": "SVC", + "name": "Salvadoran Colón", + "symbol": "₡", + "units": [ + { + "code": "₡", + "name": "Salvadoran Colón", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "WST", + "label": "Samoan Tala - WST", + "currency": { + "type": "FiatCurrency", + "ticker": "WST", + "name": "Samoan Tala", + "symbol": "WS$", + "units": [ + { + "code": "WS$", + "name": "Samoan Tala", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SAR", + "label": "Saudi Riyal - SAR", + "currency": { + "type": "FiatCurrency", + "ticker": "SAR", + "name": "Saudi Riyal", + "symbol": "﷼", + "units": [ + { + "code": "﷼", + "name": "Saudi Riyal", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "RSD", + "label": "Serbian Dinar - RSD", + "currency": { + "type": "FiatCurrency", + "ticker": "RSD", + "name": "Serbian Dinar", + "symbol": "Дин.", + "units": [ + { + "code": "Дин.", + "name": "Serbian Dinar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SCR", + "label": "Seychellois Rupee - SCR", + "currency": { + "type": "FiatCurrency", + "ticker": "SCR", + "name": "Seychellois Rupee", + "symbol": "₨", + "units": [ + { + "code": "₨", + "name": "Seychellois Rupee", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SLL", + "label": "Sierra Leonean Leone - SLL", + "currency": { + "type": "FiatCurrency", + "ticker": "SLL", + "name": "Sierra Leonean Leone", + "symbol": "Le", + "units": [ + { + "code": "Le", + "name": "Sierra Leonean Leone", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SGD", + "label": "Singapore Dollar - SGD", + "currency": { + "type": "FiatCurrency", + "ticker": "SGD", + "name": "Singapore Dollar", + "symbol": "S$", + "units": [ + { + "code": "S$", + "name": "Singapore Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SBD", + "label": "Solomon Islands Dollar - SBD", + "currency": { + "type": "FiatCurrency", + "ticker": "SBD", + "name": "Solomon Islands Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Solomon Islands Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SOS", + "label": "Somali Shilling - SOS", + "currency": { + "type": "FiatCurrency", + "ticker": "SOS", + "name": "Somali Shilling", + "symbol": "S", + "units": [ + { + "code": "S", + "name": "Somali Shilling", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "ZAR", + "label": "South African Rand - ZAR", + "currency": { + "type": "FiatCurrency", + "ticker": "ZAR", + "name": "South African Rand", + "symbol": "R", + "units": [ + { + "code": "R", + "name": "South African Rand", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "KRW", + "label": "South Korean Won - KRW", + "currency": { + "type": "FiatCurrency", + "ticker": "KRW", + "name": "South Korean Won", + "symbol": "₩", + "units": [ + { + "code": "₩", + "name": "South Korean Won", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "LKR", + "label": "Sri Lankan Rupee - LKR", + "currency": { + "type": "FiatCurrency", + "ticker": "LKR", + "name": "Sri Lankan Rupee", + "symbol": "₨", + "units": [ + { + "code": "₨", + "name": "Sri Lankan Rupee", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SDG", + "label": "Sudanese Pound - SDG", + "currency": { + "type": "FiatCurrency", + "ticker": "SDG", + "name": "Sudanese Pound", + "symbol": "£‏", + "units": [ + { + "code": "£‏", + "name": "Sudanese Pound", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SRD", + "label": "Surinamese Dollar - SRD", + "currency": { + "type": "FiatCurrency", + "ticker": "SRD", + "name": "Surinamese Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "Surinamese Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SZL", + "label": "Swazi Lilangeni - SZL", + "currency": { + "type": "FiatCurrency", + "ticker": "SZL", + "name": "Swazi Lilangeni", + "symbol": "E", + "units": [ + { + "code": "E", + "name": "Swazi Lilangeni", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SEK", + "label": "Swedish Krona - SEK", + "currency": { + "type": "FiatCurrency", + "ticker": "SEK", + "name": "Swedish Krona", + "symbol": "kr", + "units": [ + { + "code": "kr", + "name": "Swedish Krona", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "CHF", + "label": "Swiss Franc - CHF", + "currency": { + "type": "FiatCurrency", + "ticker": "CHF", + "name": "Swiss Franc", + "symbol": "CHF", + "units": [ + { + "code": "CHF", + "name": "Swiss Franc", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "SYP", + "label": "Syrian Pound - SYP", + "currency": { + "type": "FiatCurrency", + "ticker": "SYP", + "name": "Syrian Pound", + "symbol": "£", + "units": [ + { + "code": "£", + "name": "Syrian Pound", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "STD", + "label": "São Tomé and Príncipe Dobra - STD", + "currency": { + "type": "FiatCurrency", + "ticker": "STD", + "name": "São Tomé and Príncipe Dobra", + "symbol": "Db", + "units": [ + { + "code": "Db", + "name": "São Tomé and Príncipe Dobra", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "TJS", + "label": "Tajikistani Somoni - TJS", + "currency": { + "type": "FiatCurrency", + "ticker": "TJS", + "name": "Tajikistani Somoni", + "symbol": "TJS", + "units": [ + { + "code": "TJS", + "name": "Tajikistani Somoni", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "TZS", + "label": "Tanzanian Shilling - TZS", + "currency": { + "type": "FiatCurrency", + "ticker": "TZS", + "name": "Tanzanian Shilling", + "symbol": "TSh", + "units": [ + { + "code": "TSh", + "name": "Tanzanian Shilling", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "THB", + "label": "Thai Baht - THB", + "currency": { + "type": "FiatCurrency", + "ticker": "THB", + "name": "Thai Baht", + "symbol": "฿", + "units": [ + { + "code": "฿", + "name": "Thai Baht", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "TOP", + "label": "Tongan Pa'anga - TOP", + "currency": { + "type": "FiatCurrency", + "ticker": "TOP", + "name": "Tongan Pa'anga", + "symbol": "T$", + "units": [ + { + "code": "T$", + "name": "Tongan Pa'anga", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "TTD", + "label": "Trinidad and Tobago Dollar - TTD", + "currency": { + "type": "FiatCurrency", + "ticker": "TTD", + "name": "Trinidad and Tobago Dollar", + "symbol": "TT$", + "units": [ + { + "code": "TT$", + "name": "Trinidad and Tobago Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "TND", + "label": "Tunisian Dinar - TND", + "currency": { + "type": "FiatCurrency", + "ticker": "TND", + "name": "Tunisian Dinar", + "symbol": "د.ت.‏", + "units": [ + { + "code": "د.ت.‏", + "name": "Tunisian Dinar", + "magnitude": 3, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "TRY", + "label": "Turkish Lira - TRY", + "currency": { + "type": "FiatCurrency", + "ticker": "TRY", + "name": "Turkish Lira", + "symbol": "₺", + "units": [ + { + "code": "₺", + "name": "Turkish Lira", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "TMT", + "label": "Turkmenistani Manat - TMT", + "currency": { + "type": "FiatCurrency", + "ticker": "TMT", + "name": "Turkmenistani Manat", + "symbol": "m", + "units": [ + { + "code": "m", + "name": "Turkmenistani Manat", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "USD", + "label": "US Dollar - USD", + "currency": { + "type": "FiatCurrency", + "ticker": "USD", + "name": "US Dollar", + "symbol": "$", + "units": [ + { + "code": "$", + "name": "US Dollar", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "UGX", + "label": "Ugandan Shilling - UGX", + "currency": { + "type": "FiatCurrency", + "ticker": "UGX", + "name": "Ugandan Shilling", + "symbol": "USh", + "units": [ + { + "code": "USh", + "name": "Ugandan Shilling", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "UAH", + "label": "Ukrainian Hryvnia - UAH", + "currency": { + "type": "FiatCurrency", + "ticker": "UAH", + "name": "Ukrainian Hryvnia", + "symbol": "₴", + "units": [ + { + "code": "₴", + "name": "Ukrainian Hryvnia", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "UYU", + "label": "Uruguayan Peso - UYU", + "currency": { + "type": "FiatCurrency", + "ticker": "UYU", + "name": "Uruguayan Peso", + "symbol": "$U", + "units": [ + { + "code": "$U", + "name": "Uruguayan Peso", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "UZS", + "label": "Uzbekistani Som - UZS", + "currency": { + "type": "FiatCurrency", + "ticker": "UZS", + "name": "Uzbekistani Som", + "symbol": "сўм", + "units": [ + { + "code": "сўм", + "name": "Uzbekistani Som", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "VUV", + "label": "Vanuatu Vatu - VUV", + "currency": { + "type": "FiatCurrency", + "ticker": "VUV", + "name": "Vanuatu Vatu", + "symbol": "VT", + "units": [ + { + "code": "VT", + "name": "Vanuatu Vatu", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "VND", + "label": "Vietnamese Dong - VND", + "currency": { + "type": "FiatCurrency", + "ticker": "VND", + "name": "Vietnamese Dong", + "symbol": "₫", + "units": [ + { + "code": "₫", + "name": "Vietnamese Dong", + "magnitude": 0, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "XOF", + "label": "West African CFA Franc - XOF", + "currency": { + "type": "FiatCurrency", + "ticker": "XOF", + "name": "West African CFA Franc", + "symbol": "F", + "units": [ + { + "code": "F", + "name": "West African CFA Franc", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "YER", + "label": "Yemeni Rial - YER", + "currency": { + "type": "FiatCurrency", + "ticker": "YER", + "name": "Yemeni Rial", + "symbol": "﷼", + "units": [ + { + "code": "﷼", + "name": "Yemeni Rial", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + }, + { + "value": "ZMW", + "label": "Zambian Kwacha - ZMW", + "currency": { + "type": "FiatCurrency", + "ticker": "ZMW", + "name": "Zambian Kwacha", + "symbol": "ZK", + "units": [ + { + "code": "ZK", + "name": "Zambian Kwacha", + "magnitude": 2, + "showAllDigits": true, + "prefixCode": true + } + ] + } + } + ], + "dismissedContentCards": {}, + "anonymousBrazeId": "anonymous_id_4", + "starredMarketCoins": [], + "marketIndicator": "western", + "hasAcceptedSwapKYC": false, + "swapAcceptedProviderIds": [], + "swapProviders": [], + "starredAccountIds": [], + "hasPassword": false + }, + "user": { "id": "08cf3393-c5eb-4ea7-92de-0deea22e3971" }, + "accounts": [ + { + "data": { + "id": "js:2:cosmos:cosmos18sdl4lvyjtvpjkkt5smglux9sf4phdcpaddfae:", + "seedIdentifier": "03e16f914a1130deac2f019db2aca7b1a1ebf8ebc298eae302debe345870e1cb0c", + "used": true, + "derivationMode": "", + "index": 0, + "freshAddress": "cosmos18sdl4lvyjtvpjkkt5smglux9sf4phdcpaddfae", + "freshAddressPath": "44'/118'/0'/0/0", + "blockHeight": 22429293, + "creationDate": "2024-05-29T14:29:02.000Z", + "operationsCount": 1, + "operations": [ + { + "id": "js:2:cosmos:cosmos18sdl4lvyjtvpjkkt5smglux9sf4phdcpaddfae:-FBC96D4F849930063DAC2D9660F592817A6FF24811555A761B2BBD392CE9095A-IN", + "hash": "FBC96D4F849930063DAC2D9660F592817A6FF24811555A761B2BBD392CE9095A", + "type": "IN", + "senders": ["cosmos153lf4zntqt33a4v0sm5cytrxyqn78q7kz8j8x5"], + "recipients": ["cosmos18sdl4lvyjtvpjkkt5smglux9sf4phdcpaddfae"], + "accountId": "js:2:cosmos:cosmos18sdl4lvyjtvpjkkt5smglux9sf4phdcpaddfae:", + "blockHash": null, + "blockHeight": 20638604, + "extra": {}, + "date": "2024-05-29T14:29:02.000Z", + "value": "1386398", + "fee": "100000", + "transactionSequenceNumber": 70493, + "hasFailed": false + } + ], + "pendingOperations": [], + "currencyId": "cosmos", + "lastSyncDate": "2024-10-01T15:12:06.822Z", + "balance": "1386398", + "spendableBalance": "1386398", + "balanceHistoryCache": { + "HOUR": { + "balances": [ + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398 + ], + "latestDate": 1727794800000 + }, + "DAY": { + "balances": [ + 0, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398 + ], + "latestDate": 1727733600000 + }, + "WEEK": { + "balances": [ + 0, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, + 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398, 1386398 + ], + "latestDate": 1727560800000 + } + }, + "xpub": "cosmos18sdl4lvyjtvpjkkt5smglux9sf4phdcpaddfae", + "cosmosResources": { + "delegations": [], + "redelegations": [], + "unbondings": [], + "delegatedBalance": "0", + "pendingRewardsBalance": "0", + "unbondingBalance": "0", + "withdrawAddress": "cosmos18sdl4lvyjtvpjkkt5smglux9sf4phdcpaddfae", + "sequence": 0 + }, + "swapHistory": [], + "name": "Cosmos 1", + "starred": false + }, + "version": 1 + }, + { + "data": { + "id": "js:2:near:70b2982a31cfcffc773145d2143392612bb83a22926c912e2ce3ec0634f637e2:nearbip44h", + "seedIdentifier": "ed25519:8avcVZAL5gfecSPfeRXWpJaN78zcLyRo22apEgzbJFQD", + "used": true, + "derivationMode": "nearbip44h", + "index": 0, + "freshAddress": "70b2982a31cfcffc773145d2143392612bb83a22926c912e2ce3ec0634f637e2", + "freshAddressPath": "44'/397'/0'/0'/0'", + "blockHeight": 129322877, + "creationDate": "2024-10-01T13:15:06.460Z", + "operationsCount": 1, + "operations": [ + { + "id": "js:2:near:70b2982a31cfcffc773145d2143392612bb83a22926c912e2ce3ec0634f637e2:nearbip44h-AT6iqeTMbKQ5jfm4tNYBahx7NYjUUnRaPVhWGXXULF1m-IN", + "hash": "AT6iqeTMbKQ5jfm4tNYBahx7NYjUUnRaPVhWGXXULF1m", + "type": "IN", + "senders": ["76abfdf84f6d707de20a1ff9cdd49ae7f7ebf959d94ed018d29cdd6acff22c30"], + "recipients": ["70b2982a31cfcffc773145d2143392612bb83a22926c912e2ce3ec0634f637e2"], + "accountId": "js:2:near:70b2982a31cfcffc773145d2143392612bb83a22926c912e2ce3ec0634f637e2:nearbip44h", + "blockHash": "68nzYWDVBk8bpSpH5JqRYqEPB9eCHTFMvHzZr7nmTX6C", + "blockHeight": 129316644, + "extra": {}, + "date": "2024-10-01T13:15:06.460Z", + "value": "1199909410000000000000000", + "fee": "834989537500000000000", + "hasFailed": false + } + ], + "pendingOperations": [], + "currencyId": "near", + "lastSyncDate": "2024-10-01T15:11:41.055Z", + "balance": "1199909410000000000000000", + "spendableBalance": "1148089410000000000000000", + "balanceHistoryCache": { + "HOUR": { + "balances": [0, 1.19990941e24, 1.19990941e24], + "latestDate": 1727794800000 + }, + "DAY": { "balances": [0], "latestDate": 1727733600000 }, + "WEEK": { "balances": [0], "latestDate": 1727560800000 } + }, + "nearResources": { + "stakedBalance": "0", + "pendingBalance": "0", + "availableBalance": "0", + "storageUsageBalance": "51820000000000000000000", + "stakingPositions": [] + }, + "swapHistory": [], + "name": "NEAR 1", + "starred": false + }, + "version": 1 + }, + { + "data": { + "id": "js:2:solana:HxoKQ5eu5MkqaAw7DaGVermrJqeNH8XkVnEKEpFuS9id:solanaSub", + "seedIdentifier": "FBT68jpHyemZY4QvcC7fKZUvbCRNcLQfBDME7Zqdza2R", + "used": true, + "derivationMode": "solanaSub", + "index": 0, + "freshAddress": "HxoKQ5eu5MkqaAw7DaGVermrJqeNH8XkVnEKEpFuS9id", + "freshAddressPath": "44'/501'/0'", + "blockHeight": 293098277, + "creationDate": "2024-04-18T13:21:57.000Z", + "operationsCount": 1, + "operations": [ + { + "id": "js:2:solana:HxoKQ5eu5MkqaAw7DaGVermrJqeNH8XkVnEKEpFuS9id:solanaSub-45wpnHxgDNqJ5o566oJmQjgizwPu5Vtyn1YTx3jadZFvR6DD1tGPCs35A1K7CwDbZmjayhzt7bToCMViVVtbrkBK-IN", + "hash": "45wpnHxgDNqJ5o566oJmQjgizwPu5Vtyn1YTx3jadZFvR6DD1tGPCs35A1K7CwDbZmjayhzt7bToCMViVVtbrkBK", + "type": "IN", + "senders": ["AH727xqoLjwUjj9xcUCmHfw2MDU6mvfc9mLCdX21pRq3"], + "recipients": ["HxoKQ5eu5MkqaAw7DaGVermrJqeNH8XkVnEKEpFuS9id"], + "accountId": "js:2:solana:HxoKQ5eu5MkqaAw7DaGVermrJqeNH8XkVnEKEpFuS9id:solanaSub", + "blockHash": "GwoMfGmDH4qA6zfi6vSocvZgRWe9G6PmdxaGAZkpVqcs", + "blockHeight": 260858101, + "extra": {}, + "date": "2024-04-18T13:21:57.000Z", + "value": "20000000", + "fee": "0", + "transactionSequenceNumber": 1, + "hasFailed": false + } + ], + "pendingOperations": [], + "currencyId": "solana", + "lastSyncDate": "2024-10-01T15:12:37.149Z", + "balance": "20000000", + "spendableBalance": "19109120", + "balanceHistoryCache": { + "HOUR": { + "balances": [ + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000 + ], + "latestDate": 1727794800000 + }, + "DAY": { + "balances": [ + 0, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000 + ], + "latestDate": 1727733600000 + }, + "WEEK": { + "balances": [ + 0, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, + 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000 + ], + "latestDate": 1727560800000 + } + }, + "solanaResources": { "stakes": "[]", "unstakeReserve": "0" }, + "swapHistory": [], + "name": "Solana 1", + "starred": false + }, + "version": 1 + } + ], + "countervalues": { + "USD algorand": { + "2024-09-12": 0.12769745387382223, + "2024-09-15": 0.12979334247876348, + "2024-09-22": 0.13251823680966385, + "2024-09-05": 0.11831391578100492, + "2024-09-10": 0.1270943454073197, + "2024-09-11": 0.12588662019472435, + "2024-09-20": 0.13288980711333304, + "2024-09-26": 0.1410994294552377, + "2024-09-16": 0.12460174589240681, + "2024-09-08": 0.1247887241688058, + "2024-09-24": 0.13462079176341557, + "2024-09-29": 0.14071105231972253, + "2024-09-17": 0.12480065878569262, + "2024-09-14": 0.13146883716328847, + "2024-09-03": 0.12335370695587886, + "2024-09-25": 0.13986428183752583, + "2024-09-18": 0.12270238503689695, + "2024-09-07": 0.12082536870338309, + "2024-09-06": 0.11700255736146212, + "2024-09-19": 0.1310190977234529, + "2024-09-30": 0.1366921927668462, + "2024-09-01": 0.12138405433959754, + "2024-08-31": 0.1257084462219071, + "2024-09-02": 0.12235561725752837, + "2024-09-23": 0.13402054009579087, + "2024-09-13": 0.1298616420632316, + "2024-10-01": 0.1353278123841076, + "2024-09-04": 0.1189795562110804, + "2024-09-28": 0.14121888820033193, + "2024-09-21": 0.13430783793586493, + "2024-09-09": 0.12618938829071658, + "2024-09-27": 0.14508300498598622, + "2024-09-27T07": 0.14565223361912943, + "2024-09-27T05": 0.14530223585196061, + "2024-09-30T14": 0.13658993785846893, + "2024-09-27T14": 0.14511164685107078, + "2024-09-27T23": 0.14448941915380809, + "2024-09-28T11": 0.1417345277039333, + "2024-09-29T00": 0.1412029855493885, + "2024-09-28T18": 0.14086488977576023, + "2024-09-29T23": 0.1415348951992798, + "2024-10-01T13": 0.13561888894236104, + "2024-09-30T10": 0.13660733685405496, + "2024-09-25T22": 0.13850641882326822, + "2024-09-29T11": 0.1395942777350017, + "2024-09-28T12": 0.1413305770423326, + "2024-09-26T09": 0.13964447179452807, + "2024-09-28T10": 0.14097869814242328, + "2024-09-27T16": 0.146333325634849, + "2024-09-24T17": 0.13519430493971635, + "2024-09-27T15": 0.14647233269032472, + "2024-09-29T12": 0.14054395897732594, + "2024-09-25T04": 0.1394140303980909, + "2024-09-25T21": 0.13934401338331115, + "2024-09-25T18": 0.13865131808097048, + "2024-09-26T04": 0.138469520309766, + "2024-09-26T05": 0.13767505071047242, + "2024-09-30T04": 0.1380218705268574, + "2024-09-27T13": 0.14550506825932466, + "2024-09-28T13": 0.14053915648675244, + "2024-09-25T08": 0.1417008084128874, + "2024-09-30T03": 0.13731119019850457, + "2024-10-01T10": 0.13656927674287472, + "2024-09-25T13": 0.1399136399453405, + "2024-10-01T01": 0.13549721916804963, + "2024-09-26T17": 0.14319971155367772, + "2024-09-25T15": 0.1411909668343046, + "2024-09-29T22": 0.1425262196165657, + "2024-09-29T01": 0.14042591623605494, + "2024-09-30T06": 0.13858478679525796, + "2024-09-27T12": 0.14470101347071596, + "2024-09-25T23": 0.13745631093414454, + "2024-09-30T05": 0.13781787170841872, + "2024-09-28T23": 0.14086978883398002, + "2024-09-30T19": 0.13615397272787036, + "2024-09-25T00": 0.13824924725305351, + "2024-10-01T12": 0.1360512042020013, + "2024-09-29T10": 0.13961540456005997, + "2024-09-24T22": 0.1373422194387755, + "2024-09-26T08": 0.14069621903273344, + "2024-09-29T20": 0.1432498229630015, + "2024-09-25T12": 0.14073077067483927, + "2024-09-25T05": 0.13889838940501656, + "2024-09-27T09": 0.14569622011342134, + "2024-09-26T02": 0.13605487980585104, + "2024-09-28T05": 0.14399651902577268, + "2024-09-29T03": 0.1411773296618839, + "2024-09-26T23": 0.14329692435656047, + "2024-09-29T16": 0.14127017077396842, + "2024-09-26T21": 0.14099691811910944, + "2024-09-26T16": 0.14329892884445794, + "2024-09-28T03": 0.1446125681962265, + "2024-09-29T21": 0.14262707993239299, + "2024-09-30T09": 0.13861214606222658, + "2024-09-24T16": 0.13308010379736634, + "2024-09-30T07": 0.13824627303677386, + "2024-09-28T17": 0.140550909392208, + "2024-09-28T02": 0.14365273364965117, + "2024-09-28T15": 0.14113369988829177, + "2024-09-29T17": 0.14206195240582056, + "2024-09-25T17": 0.13936069464208856, + "2024-09-25T16": 0.14030083277120747, + "2024-10-01T04": 0.1365682795108442, + "2024-10-01T07": 0.1369385526986627, + "2024-09-30T23": 0.13532414336447512, + "2024-09-29T13": 0.13930036467521195, + "2024-09-26T22": 0.14260628331039427, + "2024-10-01T11": 0.13671184055502758, + "2024-09-30T16": 0.13478808740330792, + "2024-09-28T01": 0.14366070277565846, + "2024-09-27T02": 0.1437796522136944, + "2024-09-30T20": 0.1363483814743317, + "2024-09-28T06": 0.1430721969453457, + "2024-09-27T08": 0.14521881894862565, + "2024-10-01T06": 0.13612018534662831, + "2024-09-27T03": 0.14372649348782537, + "2024-09-25T06": 0.1405171846467428, + "2024-10-01T02": 0.13568957492155084, + "2024-09-27T17": 0.1463849464417749, + "2024-09-30T22": 0.1365501698444948, + "2024-09-29T05": 0.14090271090168227, + "2024-09-28T20": 0.14102019763834234, + "2024-09-30T13": 0.1371948342597874, + "2024-09-26T18": 0.14207192719979309, + "2024-09-25T10": 0.13999546605666102, + "2024-09-25T02": 0.1393042718875351, + "2024-09-29T02": 0.14087974293384753, + "2024-09-28T08": 0.14192030496505256, + "2024-09-30T17": 0.1353118911604667, + "2024-09-30T02": 0.13825340521377363, + "2024-09-28T09": 0.14080345046506526, + "2024-09-25T03": 0.13934576803855034, + "2024-09-29T15": 0.14016548153080632, + "2024-09-29T06": 0.14057051227857473, + "2024-09-24T18": 0.1345139015607723, + "2024-09-26T07": 0.14027314335674462, + "2024-09-26T15": 0.14049439302937985, + "2024-09-27T04": 0.14525009800982097, + "2024-09-27T11": 0.14419259640537016, + "2024-09-26T20": 0.14177238814029985, + "2024-09-30T12": 0.1366542439640474, + "2024-09-27T10": 0.1455304436982139, + "2024-09-26T12": 0.1410972100205115, + "2024-09-24T23": 0.13866294391399, + "2024-09-30T00": 0.14119122170997936, + "2024-09-25T14": 0.14029668265370046, + "2024-09-26T14": 0.14105793141021566, + "2024-09-27T01": 0.14415765124909236, + "2024-09-28T04": 0.14431464681096015, + "2024-09-29T08": 0.13896847300510326, + "2024-09-26T01": 0.13525342442372884, + "2024-09-27T19": 0.1455872089088159, + "2024-09-25T01": 0.1385814093189251, + "2024-09-26T00": 0.1373091037581518, + "2024-09-29T18": 0.14186713240890325, + "2024-09-28T19": 0.14067432040881298, + "2024-09-28T22": 0.14057217031359678, + "2024-09-27T18": 0.1448966460756347, + "2024-09-24T21": 0.13655464253289942, + "2024-09-30T08": 0.13895769742972996, + "2024-09-25T11": 0.14117067804331757, + "2024-09-25T20": 0.13874418357347215, + "2024-10-01T09": 0.1365826178835918, + "2024-10-01T03": 0.13509805484549925, + "2024-09-26T11": 0.14145531054467733, + "2024-09-28T07": 0.14235610606955132, + "2024-09-27T22": 0.1432010594539459, + "2024-09-27T21": 0.14372841301347333, + "2024-09-26T03": 0.13746916199342468, + "2024-09-26T13": 0.14089681968612994, + "2024-09-30T18": 0.13615816474290132, + "2024-10-01T08": 0.13648402954240893, + "2024-09-25T19": 0.13944716060688625, + "2024-09-30T21": 0.136751711008718, + "2024-09-28T14": 0.1407206175091208, + "2024-09-27T20": 0.14461432112730793, + "2024-09-26T06": 0.13947117482481128, + "2024-09-26T10": 0.1400063509914695, + "2024-09-29T04": 0.14155402866669717, + "2024-09-28T16": 0.14117973583490678, + "2024-10-01T00": 0.1343505391384439, + "2024-09-24T20": 0.1363271412340783, + "2024-09-26T19": 0.14276970516705254, + "2024-09-24T15": 0.13404720557377467, + "2024-09-27T06": 0.14576755872650288, + "2024-09-29T14": 0.14054968553217095, + "2024-09-29T07": 0.13993649181279424, + "2024-09-28T00": 0.14412163416550802, + "2024-09-30T01": 0.141009108490226, + "2024-09-29T09": 0.1391461202074569, + "2024-09-25T09": 0.1419152996388484, + "2024-09-30T11": 0.13612915715405433, + "2024-09-25T07": 0.139026755382085, + "2024-09-24T19": 0.13499391845721923, + "2024-09-29T19": 0.14240706873139994, + "2024-09-30T15": 0.13615930939188559, + "2024-09-28T21": 0.1406348865795483, + "2024-10-01T05": 0.13696817969792952, + "2024-10-01T14": 0.13126061, + "2024-09-27T00": 0.14366612251659222, + "latest": 0.126199, + "2024-10-01T15": 0.13126061 + }, + "USD astar": { + "2024-09-12": 0.057748087425410946, + "2024-09-15": 0.060557168498482083, + "2024-09-22": 0.0657676166466089, + "2024-09-05": 0.0549938322919228, + "2024-09-10": 0.0550869333688005, + "2024-09-11": 0.05524280847017435, + "2024-09-20": 0.06548462496160685, + "2024-09-26": 0.06898679729872007, + "2024-09-16": 0.05839352405581626, + "2024-09-08": 0.052220722094747374, + "2024-09-24": 0.06728174661386918, + "2024-09-29": 0.07053569871802252, + "2024-09-17": 0.06149486879239829, + "2024-09-14": 0.06032996226388006, + "2024-09-03": 0.06159320882436453, + "2024-09-25": 0.06919515310553706, + "2024-09-18": 0.06117745262508157, + "2024-09-07": 0.052005227982522904, + "2024-09-06": 0.0521343277274596, + "2024-09-19": 0.06414630846378401, + "2024-09-30": 0.06809296140335383, + "2024-09-01": 0.06089119902280125, + "2024-08-31": 0.0626180054500271, + "2024-09-02": 0.06009644985894251, + "2024-09-23": 0.0662067225136915, + "2024-09-13": 0.05847425289477265, + "2024-10-01": 0.06833714620374232, + "2024-09-04": 0.057598301514480796, + "2024-09-28": 0.071346742591307, + "2024-09-21": 0.06730605699999997, + "2024-09-09": 0.05350255418369332, + "2024-09-27": 0.07173007680830479, + "2024-09-27T07": 0.07161072121150505, + "2024-09-27T05": 0.07145301489354741, + "2024-09-30T14": 0.06802997204116788, + "2024-09-27T14": 0.07208340385414433, + "2024-09-27T23": 0.07267823327291453, + "2024-09-28T11": 0.07147199234478102, + "2024-09-29T00": 0.07089672200688517, + "2024-09-28T18": 0.07093123100049475, + "2024-09-29T23": 0.0712230313598777, + "2024-10-01T13": 0.06787017608091273, + "2024-09-30T10": 0.0673234032241672, + "2024-09-25T22": 0.06761681336148459, + "2024-09-29T11": 0.06968254077459651, + "2024-09-28T12": 0.07144527172108324, + "2024-09-26T09": 0.06846466629012361, + "2024-09-28T10": 0.07089713929372564, + "2024-09-27T16": 0.07181288781771908, + "2024-09-24T17": 0.06682055134540274, + "2024-09-27T15": 0.07250978650101529, + "2024-09-29T12": 0.07008847767073664, + "2024-09-25T04": 0.07080006145843655, + "2024-09-25T21": 0.06817378056227988, + "2024-09-25T18": 0.06792042219382952, + "2024-09-26T04": 0.06780296905204518, + "2024-09-26T05": 0.06765683523092308, + "2024-09-30T04": 0.06922843309803076, + "2024-09-27T13": 0.07260340945104801, + "2024-09-28T13": 0.07142325984051894, + "2024-09-25T08": 0.06888020563834632, + "2024-09-30T03": 0.06842131770442257, + "2024-10-01T10": 0.06815569978695325, + "2024-09-25T13": 0.068887522140389, + "2024-10-01T01": 0.06829960844234083, + "2024-09-26T17": 0.07005022740933359, + "2024-09-25T15": 0.07031475456831017, + "2024-09-29T22": 0.07199294238993847, + "2024-09-29T01": 0.07047592539670017, + "2024-09-30T06": 0.0690592127089264, + "2024-09-27T12": 0.07246265167826607, + "2024-09-25T23": 0.06704894824980627, + "2024-09-30T05": 0.06854611635078595, + "2024-09-28T23": 0.07058843256906103, + "2024-09-30T19": 0.06772942510615136, + "2024-10-01T12": 0.06800355828332524, + "2024-09-29T10": 0.06970626333995873, + "2024-09-24T22": 0.06930694726299078, + "2024-09-26T08": 0.06896477519443753, + "2024-09-29T20": 0.07212273215819574, + "2024-09-25T12": 0.06927162861476842, + "2024-09-25T05": 0.0702181989595833, + "2024-09-27T09": 0.07178298137516119, + "2024-09-26T02": 0.06710706642169018, + "2024-09-28T05": 0.0730739587743795, + "2024-09-29T03": 0.07083228080197909, + "2024-09-26T23": 0.07119845039664985, + "2024-09-29T16": 0.07091709996003877, + "2024-09-26T21": 0.070398056490333, + "2024-09-26T16": 0.07003953920179753, + "2024-09-28T03": 0.07332305971838748, + "2024-09-29T21": 0.07163645874222115, + "2024-09-30T09": 0.06876959615380986, + "2024-09-30T07": 0.06861918081400811, + "2024-09-28T17": 0.07076712305922428, + "2024-09-28T02": 0.0726246910794529, + "2024-09-28T15": 0.07153060030955335, + "2024-09-29T17": 0.07127124114850279, + "2024-09-25T17": 0.06887999207084597, + "2024-09-25T16": 0.0694599845302214, + "2024-10-01T04": 0.06875222518021579, + "2024-10-01T07": 0.06839221321147981, + "2024-09-30T23": 0.0673838709000439, + "2024-09-29T13": 0.06931284608649249, + "2024-09-26T22": 0.07088531713003854, + "2024-10-01T11": 0.06825074929692253, + "2024-09-30T16": 0.06698926764243239, + "2024-09-28T01": 0.07298085003956019, + "2024-09-27T02": 0.07078347723998578, + "2024-09-30T20": 0.06796716539638382, + "2024-09-28T06": 0.07181826923145343, + "2024-09-27T08": 0.07165846544448347, + "2024-10-01T06": 0.06832886762854483, + "2024-09-27T03": 0.07054886175991026, + "2024-09-25T06": 0.07040326046828743, + "2024-10-01T02": 0.06819489898718313, + "2024-09-27T17": 0.07253960620925151, + "2024-09-30T22": 0.06810526011731953, + "2024-09-29T05": 0.07057752219712991, + "2024-09-28T20": 0.07095587641700755, + "2024-09-30T13": 0.06823435558575668, + "2024-09-26T18": 0.07021804572235646, + "2024-09-25T10": 0.069219336039481, + "2024-09-25T02": 0.06988360666554037, + "2024-09-29T02": 0.0706056396414019, + "2024-09-28T08": 0.07113765934768077, + "2024-09-30T17": 0.06704762843401553, + "2024-09-30T02": 0.0696502702099395, + "2024-09-28T09": 0.07057606183259761, + "2024-09-25T03": 0.07026517814767468, + "2024-09-29T15": 0.07007921483053359, + "2024-09-29T06": 0.07019159520181338, + "2024-09-24T18": 0.06721806004799778, + "2024-09-26T07": 0.06876607382538613, + "2024-09-26T15": 0.06886503702705049, + "2024-09-27T04": 0.071674482065168, + "2024-09-27T11": 0.07209329810700939, + "2024-09-26T20": 0.07005112180644373, + "2024-09-30T12": 0.06763467629029041, + "2024-09-27T10": 0.07176365561392074, + "2024-09-26T12": 0.06864964413001978, + "2024-09-24T23": 0.06929953871292936, + "2024-09-30T00": 0.07076538073270297, + "2024-09-25T14": 0.06965503273791163, + "2024-09-26T14": 0.06862946936099228, + "2024-09-27T01": 0.07116525967553143, + "2024-09-28T04": 0.07308387461141884, + "2024-09-29T08": 0.06957576113365059, + "2024-09-26T01": 0.06628643181898006, + "2024-09-27T19": 0.07215525094815754, + "2024-09-25T01": 0.06977504737406369, + "2024-09-29T18": 0.0714918839179133, + "2024-09-28T19": 0.07121034683183622, + "2024-09-28T22": 0.07036825050188637, + "2024-09-27T18": 0.0719171422828391, + "2024-09-30T08": 0.06903210944283907, + "2024-09-25T11": 0.0690412836018991, + "2024-09-25T20": 0.06830193467588538, + "2024-10-01T09": 0.06819252338929602, + "2024-10-01T03": 0.06851319759246492, + "2024-09-26T11": 0.06917529868918673, + "2024-09-28T07": 0.07170044083647643, + "2024-09-27T22": 0.07156887962377749, + "2024-09-27T21": 0.0717058197493413, + "2024-09-26T03": 0.06796805722882164, + "2024-09-26T13": 0.06869446877056044, + "2024-09-30T18": 0.06765231715701635, + "2024-10-01T15": 0.06505812168785385, + "2024-10-01T08": 0.06841302754078593, + "2024-09-25T19": 0.06842905614973152, + "2024-09-30T21": 0.06820371513937996, + "2024-09-28T14": 0.07181046696996034, + "2024-09-27T20": 0.0716184685263665, + "2024-09-26T06": 0.06895326646452214, + "2024-09-26T10": 0.06893206524909137, + "2024-09-29T04": 0.07102149236295677, + "2024-09-28T16": 0.07122237422713103, + "2024-10-01T00": 0.06758587672364165, + "2024-09-24T20": 0.0693469983130922, + "2024-09-26T19": 0.07063045594962555, + "2024-09-24T15": 0.0670234564176783, + "2024-09-27T06": 0.07145488277113814, + "2024-09-29T14": 0.070093604290542, + "2024-09-29T07": 0.06961411884761232, + "2024-09-28T00": 0.07270629380002533, + "2024-09-30T01": 0.0710221921495055, + "2024-09-29T09": 0.06969205925318786, + "2024-09-25T09": 0.06940730915083922, + "2024-09-30T11": 0.0673964248630196, + "2024-09-25T07": 0.06885351575337595, + "2024-09-24T19": 0.06863468747255742, + "2024-09-29T19": 0.07153526005724294, + "2024-09-30T15": 0.06788984151989667, + "2024-09-28T21": 0.07069499556318677, + "2024-10-01T05": 0.06894126127741865, + "2024-10-01T14": 0.06641755761923372, + "2024-09-27T00": 0.07160107632820388, + "latest": 0.063161 + }, + "USD avalanche_c_chain": { + "2024-09-12": 23.65865552455898, + "2024-09-15": 24.69359991692819, + "2024-09-22": 27.14062110534532, + "2024-09-05": 21.687173486589703, + "2024-09-10": 23.918979172422603, + "2024-09-11": 23.506616007552317, + "2024-09-20": 27.589226948590436, + "2024-09-26": 28.51583662428935, + "2024-09-16": 23.592763308139197, + "2024-09-08": 22.847662820826436, + "2024-09-24": 27.45518594062745, + "2024-09-29": 28.972932748848677, + "2024-09-17": 23.87024883357543, + "2024-09-14": 25.01716127632684, + "2024-09-03": 22.222194225387373, + "2024-09-25": 27.67747231286055, + "2024-09-18": 23.50263840512364, + "2024-09-07": 21.648013570882924, + "2024-09-06": 21.41443816831492, + "2024-09-19": 26.196060878918026, + "2024-09-30": 28.286376264934233, + "2024-09-01": 22.204894950491983, + "2024-08-31": 23.000826786208304, + "2024-09-02": 22.065119689600735, + "2024-09-23": 27.41482804698564, + "2024-09-13": 24.169582592405586, + "2024-10-01": 28.032583423763132, + "2024-09-04": 21.573432502128764, + "2024-09-28": 29.461426889839068, + "2024-09-21": 27.506425820603344, + "2024-09-09": 23.783850597715546, + "2024-09-27": 29.970499091267495, + "2024-09-27T07": 29.615882987499255, + "2024-09-27T05": 29.409617510139594, + "2024-09-30T14": 28.227364206828504, + "2024-09-27T14": 30.45622001460722, + "2024-09-27T23": 30.412447511076017, + "2024-09-28T11": 29.49624495111517, + "2024-09-29T00": 29.292661416903083, + "2024-09-28T18": 29.42558474516044, + "2024-09-29T23": 29.032952523555725, + "2024-10-01T13": 28.09634441107514, + "2024-09-30T10": 28.08642853494313, + "2024-09-25T22": 27.422742377698274, + "2024-09-29T11": 28.65972176844729, + "2024-09-28T12": 29.351968149361845, + "2024-09-26T09": 27.833933542796114, + "2024-09-28T10": 29.567456300942393, + "2024-09-27T16": 30.328376130171176, + "2024-09-24T17": 27.43100367891596, + "2024-09-27T15": 30.36457543370178, + "2024-09-29T12": 28.579886174374032, + "2024-09-25T04": 27.713908935084465, + "2024-09-25T21": 27.57495826119454, + "2024-09-25T18": 27.42739206563049, + "2024-09-26T04": 27.51892490871036, + "2024-09-26T05": 27.655728551069146, + "2024-09-30T04": 28.452315804449, + "2024-09-27T13": 30.03742277114897, + "2024-09-28T13": 29.26190829147076, + "2024-09-25T08": 27.67501340666378, + "2024-09-30T03": 28.37669005263675, + "2024-10-01T10": 28.716671242861295, + "2024-09-25T13": 27.633531031304475, + "2024-10-01T01": 28.044205548385428, + "2024-09-26T17": 29.107734635085023, + "2024-09-25T15": 27.973075394259563, + "2024-09-29T22": 29.169712846840607, + "2024-09-29T01": 29.16477642231452, + "2024-09-30T06": 28.741913440288805, + "2024-09-27T12": 30.011326144234125, + "2024-09-25T23": 27.280410399305598, + "2024-09-30T05": 28.624742079733018, + "2024-09-28T23": 29.24973342125599, + "2024-09-30T19": 28.041096508656533, + "2024-09-25T00": 27.979211024017395, + "2024-10-01T12": 28.66886482767956, + "2024-09-29T10": 28.62463776298321, + "2024-09-24T22": 27.9396634218943, + "2024-09-26T08": 27.959306486396795, + "2024-09-29T20": 29.149348846360652, + "2024-09-25T12": 27.757005925748153, + "2024-09-25T05": 27.695389111205277, + "2024-09-27T09": 29.95083943775853, + "2024-09-26T02": 27.403322876797873, + "2024-09-28T05": 30.021943905633332, + "2024-09-29T03": 29.14043226601145, + "2024-09-26T23": 29.088578239639965, + "2024-09-29T16": 28.836899968863253, + "2024-09-26T21": 29.04990144849509, + "2024-09-26T16": 29.304792770201836, + "2024-09-28T03": 30.25670770784145, + "2024-09-29T21": 29.264246627175883, + "2024-09-30T09": 28.617930625115317, + "2024-09-24T16": 27.194791469277803, + "2024-09-30T07": 28.73524685803068, + "2024-09-28T17": 29.362165520192455, + "2024-09-28T02": 30.608360610207363, + "2024-09-28T15": 29.494278218678442, + "2024-09-29T17": 29.098111640008543, + "2024-09-25T17": 27.369325080886373, + "2024-09-25T16": 27.616499912915994, + "2024-10-01T04": 28.439337952142164, + "2024-10-01T07": 28.621931049547538, + "2024-09-30T23": 27.713675814364795, + "2024-09-29T13": 28.49031825437649, + "2024-09-26T22": 29.193478186296204, + "2024-10-01T11": 28.761153817374154, + "2024-09-30T16": 28.17821654507336, + "2024-09-28T01": 30.57580498060325, + "2024-09-27T02": 29.050327097775725, + "2024-09-30T20": 28.224947015315596, + "2024-09-28T06": 29.693380522864924, + "2024-09-27T08": 29.811019183527062, + "2024-10-01T06": 28.568708149932885, + "2024-09-27T03": 29.222780684240213, + "2024-09-25T06": 27.538922891152456, + "2024-10-01T02": 27.983579567119282, + "2024-09-27T17": 30.31511870066466, + "2024-09-30T22": 27.929687521081274, + "2024-09-29T05": 29.023927807623547, + "2024-09-28T20": 29.365154697342337, + "2024-09-30T13": 28.505807030849393, + "2024-09-26T18": 28.981034201641297, + "2024-09-25T10": 27.688965370571328, + "2024-09-25T02": 27.930150608526855, + "2024-09-29T02": 29.22119188500167, + "2024-09-28T08": 29.314031007785808, + "2024-09-30T17": 28.17115443954805, + "2024-09-30T02": 28.392255760056184, + "2024-09-28T09": 29.22315568289555, + "2024-09-25T03": 27.808752782945387, + "2024-09-29T15": 28.663897026346383, + "2024-09-29T06": 28.808539535480875, + "2024-09-24T18": 27.380375511438366, + "2024-09-26T07": 27.949354347274273, + "2024-09-26T15": 29.11820781210927, + "2024-09-27T04": 29.40616955185835, + "2024-09-27T11": 29.83513157861975, + "2024-09-26T20": 28.913023479969485, + "2024-09-30T12": 28.39149406075187, + "2024-09-27T10": 29.706852888959887, + "2024-09-26T12": 28.418681865801506, + "2024-09-24T23": 28.253312835077413, + "2024-09-30T00": 28.861947895179732, + "2024-09-25T14": 27.9094522561902, + "2024-09-26T14": 28.841976939683757, + "2024-09-27T01": 29.09798651900513, + "2024-09-28T04": 30.17931913708446, + "2024-09-29T08": 28.62102551428131, + "2024-09-26T01": 27.080987114367822, + "2024-09-27T19": 30.1135993910079, + "2024-09-25T01": 28.014679746853332, + "2024-09-26T00": 27.24823816805724, + "2024-09-29T18": 29.016669240789916, + "2024-09-28T19": 29.403500838692718, + "2024-09-28T22": 29.297736475189566, + "2024-09-27T18": 30.212333401939397, + "2024-09-24T21": 27.58953585945778, + "2024-09-30T08": 28.778814189395437, + "2024-09-25T11": 27.727535203466402, + "2024-09-25T20": 27.54538553076664, + "2024-10-01T09": 28.72531708787216, + "2024-10-01T03": 28.307907319665915, + "2024-09-26T11": 28.11775516707601, + "2024-09-28T07": 29.495022650108563, + "2024-09-27T22": 30.44755970356421, + "2024-09-27T21": 30.33951263189937, + "2024-09-26T03": 27.508012716084867, + "2024-09-26T13": 28.52915977415853, + "2024-09-30T18": 28.06102864697676, + "2024-10-01T08": 28.653437232211825, + "2024-09-25T19": 27.5761388, + "2024-09-30T21": 28.19534581921033, + "2024-09-28T14": 29.559716141852956, + "2024-09-27T20": 30.156019735506927, + "2024-09-26T06": 27.907503495566854, + "2024-09-26T10": 28.07624040303503, + "2024-09-29T04": 29.046196448302275, + "2024-09-28T16": 29.305410510385027, + "2024-10-01T00": 27.818663665833547, + "2024-09-24T20": 27.631953620615864, + "2024-09-26T19": 29.033329173368696, + "2024-09-24T15": 27.145358055132494, + "2024-09-27T06": 29.602939182359084, + "2024-09-29T14": 28.605587080464307, + "2024-09-29T07": 28.70254513530161, + "2024-09-28T00": 30.584462512652387, + "2024-09-30T01": 28.702611624756678, + "2024-09-29T09": 28.77418878268684, + "2024-09-25T09": 27.69042025654902, + "2024-09-30T11": 28.1837304372608, + "2024-09-25T07": 27.483431754364382, + "2024-09-24T19": 27.483322949096472, + "2024-09-29T19": 29.089256440979135, + "2024-09-30T15": 28.188516628092696, + "2024-09-28T21": 29.25962267092469, + "2024-10-01T05": 28.398229155859273, + "2024-10-01T14": 28.02892861000004, + "2024-09-27T00": 29.184873444458958, + "latest": 26.11, + "2024-10-01T15": 27.264554325513853 + }, + "USD axelar": { + "2024-09-12": 0.5086539981519625, + "2024-09-15": 0.5218047627249943, + "2024-09-22": 0.5573009145257556, + "2024-09-05": 0.532526628920984, + "2024-09-10": 0.506904234437284, + "2024-09-11": 0.5046714630453417, + "2024-09-20": 0.5536542574627409, + "2024-09-26": 0.5901610903629155, + "2024-09-16": 0.4949176044345176, + "2024-09-08": 0.501595397995261, + "2024-09-24": 0.5793425474258233, + "2024-09-29": 0.6811206956012288, + "2024-09-17": 0.48033737941730914, + "2024-09-14": 0.5229189427240647, + "2024-09-03": 0.5377258404123799, + "2024-09-25": 0.6122768150449296, + "2024-09-18": 0.5028564305393978, + "2024-09-07": 0.47839922260448503, + "2024-09-06": 0.49660898665408265, + "2024-09-19": 0.55701533138401, + "2024-09-30": 0.6882952336222331, + "2024-09-01": 0.5223806544715401, + "2024-08-31": 0.5428705179282818, + "2024-09-02": 0.5050900509499149, + "2024-09-23": 0.537333934234623, + "2024-09-13": 0.516757743905522, + "2024-10-01": 0.6266852928627993, + "2024-09-04": 0.5184062457311194, + "2024-09-28": 0.7155180554383818, + "2024-09-21": 0.5478166724563234, + "2024-09-09": 0.5109101748299997, + "2024-09-27": 0.7087958960976191, + "2024-09-27T07": 0.7268500046577331, + "2024-09-27T05": 0.7255039255220253, + "2024-09-30T14": 0.6606181188579345, + "2024-09-27T14": 0.7201532862639581, + "2024-09-27T23": 0.7211984699897057, + "2024-09-28T11": 0.7029427357212222, + "2024-09-29T00": 0.682251522622022, + "2024-09-28T18": 0.6860787635653899, + "2024-09-29T23": 0.6956309839621329, + "2024-10-01T13": 0.6368467459711038, + "2024-09-30T10": 0.6642654429454996, + "2024-09-25T22": 0.6015990118693503, + "2024-09-29T11": 0.6742745795237177, + "2024-09-28T12": 0.7040283894071039, + "2024-09-26T09": 0.6253540763072555, + "2024-09-28T10": 0.7035809172349831, + "2024-09-27T16": 0.718872725304425, + "2024-09-24T17": 0.5948293335407918, + "2024-09-27T15": 0.7209433055367456, + "2024-09-29T12": 0.6732735759717143, + "2024-09-25T04": 0.6115804493894051, + "2024-09-25T21": 0.6025933757425251, + "2024-09-25T18": 0.5899937676964079, + "2024-09-26T04": 0.6028170563080566, + "2024-09-26T05": 0.6037539304007145, + "2024-09-30T04": 0.6775704616916897, + "2024-09-27T13": 0.7228093340390795, + "2024-09-28T13": 0.6967473428653105, + "2024-09-25T08": 0.5916323679125246, + "2024-09-30T03": 0.6718601758905675, + "2024-10-01T10": 0.6469218530225309, + "2024-09-25T13": 0.5939225888766728, + "2024-10-01T01": 0.6357032197556193, + "2024-09-26T17": 0.6988674690472634, + "2024-09-25T15": 0.6062724393743476, + "2024-09-29T22": 0.7031575031170124, + "2024-09-29T01": 0.6787969727609129, + "2024-09-30T06": 0.679506002188596, + "2024-09-27T12": 0.7195218671705805, + "2024-09-25T23": 0.5936572199515409, + "2024-09-30T05": 0.673936715106289, + "2024-09-28T23": 0.680843228639873, + "2024-09-30T19": 0.6321725243281949, + "2024-09-25T00": 0.6107451481532129, + "2024-10-01T12": 0.638373676138189, + "2024-09-29T10": 0.6708654136116985, + "2024-09-24T22": 0.6018663379447899, + "2024-09-26T08": 0.6236876674227139, + "2024-09-29T20": 0.698835958139829, + "2024-09-25T12": 0.5973777892153284, + "2024-09-25T05": 0.6008922117136232, + "2024-09-27T09": 0.7265295778387435, + "2024-09-26T02": 0.5856990009247185, + "2024-09-28T05": 0.715408615710463, + "2024-09-29T03": 0.6863668688218352, + "2024-09-26T23": 0.7087184104584214, + "2024-09-29T16": 0.685595497774016, + "2024-09-26T21": 0.6905368165295671, + "2024-09-26T16": 0.6774883233040265, + "2024-09-28T03": 0.7183593684398252, + "2024-09-29T21": 0.6968562291762596, + "2024-09-30T09": 0.6744249823628, + "2024-09-24T16": 0.5860606896492894, + "2024-09-30T07": 0.6766845515854719, + "2024-09-28T17": 0.6862771946701596, + "2024-09-28T02": 0.7207872690343402, + "2024-09-28T15": 0.6966114909094884, + "2024-09-29T17": 0.6907088290892437, + "2024-09-25T17": 0.5992410366617494, + "2024-09-25T16": 0.5986237369228753, + "2024-10-01T04": 0.6461654145841154, + "2024-10-01T07": 0.6487062640549364, + "2024-09-30T23": 0.628639164686778, + "2024-09-29T13": 0.6674397274514087, + "2024-09-26T22": 0.7030047674209873, + "2024-10-01T11": 0.644977676297226, + "2024-09-30T16": 0.6471221333587949, + "2024-09-28T01": 0.7222651816799053, + "2024-09-27T02": 0.7131104500802142, + "2024-09-30T20": 0.633897296602788, + "2024-09-28T06": 0.7131434329876534, + "2024-09-27T08": 0.7198329584698293, + "2024-10-01T06": 0.6411020618399542, + "2024-09-27T03": 0.7106301523323556, + "2024-09-25T06": 0.5969233703450804, + "2024-10-01T02": 0.6378639776395546, + "2024-09-27T17": 0.726166727847094, + "2024-09-30T22": 0.6409350618866714, + "2024-09-29T05": 0.6772281134648697, + "2024-09-28T20": 0.6808125028877243, + "2024-09-30T13": 0.6604121748607098, + "2024-09-26T18": 0.6894708346293443, + "2024-09-25T10": 0.5980064580634491, + "2024-09-25T02": 0.6197801189742692, + "2024-09-29T02": 0.6877332707504641, + "2024-09-28T08": 0.706096610445024, + "2024-09-30T17": 0.6347017147265661, + "2024-09-30T02": 0.6787868119736198, + "2024-09-28T09": 0.7042963355963675, + "2024-09-25T03": 0.6201184358223867, + "2024-09-29T15": 0.6843241909371949, + "2024-09-29T06": 0.6776212822103571, + "2024-09-24T18": 0.5995807090345423, + "2024-09-26T07": 0.619016557274846, + "2024-09-26T15": 0.653561347637262, + "2024-09-27T04": 0.7245766156148004, + "2024-09-27T11": 0.7187978811510167, + "2024-09-26T20": 0.6894059640184176, + "2024-09-30T12": 0.6628028926057737, + "2024-09-27T10": 0.7231174108923198, + "2024-09-26T12": 0.6448357027316594, + "2024-09-24T23": 0.6155424542514101, + "2024-09-30T00": 0.6893447185954278, + "2024-09-25T14": 0.5984396104538823, + "2024-09-26T14": 0.6417554081063552, + "2024-09-27T01": 0.71094787213502, + "2024-09-28T04": 0.7165517566959128, + "2024-09-29T08": 0.6691661476519944, + "2024-09-26T01": 0.5833597248556884, + "2024-09-27T19": 0.7225813331591828, + "2024-09-25T01": 0.6114036833035398, + "2024-09-26T00": 0.5890896915833059, + "2024-09-29T18": 0.7015871779845084, + "2024-09-28T19": 0.6833188934491791, + "2024-09-28T22": 0.6780981717428364, + "2024-09-27T18": 0.7205924648983731, + "2024-09-24T21": 0.6033233123019498, + "2024-09-30T08": 0.6819985954491773, + "2024-09-25T11": 0.5990485951502342, + "2024-09-25T20": 0.5961251122282885, + "2024-10-01T09": 0.6460915123782057, + "2024-10-01T03": 0.636105401175019, + "2024-09-26T11": 0.6428564575485237, + "2024-09-28T07": 0.707657943517798, + "2024-09-27T22": 0.7221295769507448, + "2024-09-27T21": 0.7238970124237464, + "2024-09-26T03": 0.5967255011940035, + "2024-09-26T13": 0.6461894257808717, + "2024-09-30T18": 0.6366125241610258, + "2024-10-01T08": 0.6500321265226363, + "2024-09-25T19": 0.6006834497211875, + "2024-09-30T21": 0.6368025702009505, + "2024-09-28T14": 0.6915617532866317, + "2024-09-27T20": 0.719057021737714, + "2024-09-26T06": 0.6193786574844187, + "2024-09-26T10": 0.6276140932666257, + "2024-09-29T04": 0.6850905149305535, + "2024-09-28T16": 0.6892831708181679, + "2024-10-01T00": 0.6266852928627993, + "2024-09-24T20": 0.6053544198808941, + "2024-09-26T19": 0.697618533376391, + "2024-09-24T15": 0.5873951954740255, + "2024-09-27T06": 0.7296096380760189, + "2024-09-29T14": 0.676178132965442, + "2024-09-29T07": 0.674565684131115, + "2024-09-28T00": 0.7154276545244282, + "2024-09-30T01": 0.6887415773900636, + "2024-09-29T09": 0.6721563543092197, + "2024-09-25T09": 0.592205883187176, + "2024-09-30T11": 0.6596280789882716, + "2024-09-25T07": 0.5916390492534447, + "2024-09-24T19": 0.5962442110413144, + "2024-09-29T19": 0.6990297749283865, + "2024-09-30T15": 0.6588756236413265, + "2024-09-28T21": 0.6758915566740121, + "2024-10-01T05": 0.650495424855272, + "2024-10-01T14": 0.60741772, + "2024-09-27T00": 0.7087958960976191, + "latest": 0.580931, + "2024-10-01T15": 0.60741772 + }, + "USD bitcoin": { + "2024-09-12": 58054.9532143376, + "2024-09-15": 60035.68813889339, + "2024-09-22": 62947.659119826654, + "2024-09-05": 56715.805252079525, + "2024-09-10": 57036.805613882905, + "2024-09-11": 56783.313909562174, + "2024-09-20": 63208.430226949786, + "2024-09-26": 64468.011968053615, + "2024-09-16": 58385.0083693202, + "2024-09-08": 54375.85978894756, + "2024-09-24": 63486.963338555615, + "2024-09-29": 65736.62756479313, + "2024-09-17": 59332.0580534142, + "2024-09-14": 59995.71846102052, + "2024-09-03": 58822.575951818144, + "2024-09-25": 63720.43941210843, + "2024-09-18": 60177.26758989938, + "2024-09-07": 54267.95911685792, + "2024-09-06": 55332.26533545863, + "2024-09-19": 62781.78161391701, + "2024-09-30": 63827.233844997805, + "2024-09-01": 58173.64515163039, + "2024-08-31": 59085.34660734178, + "2024-09-02": 58331.8131434883, + "2024-09-23": 63465.91049470203, + "2024-09-13": 58268.26087773067, + "2024-10-01": 63644.23385007069, + "2024-09-04": 56752.056971238664, + "2024-09-28": 65732.7992695957, + "2024-09-21": 63110.466013436955, + "2024-09-09": 55328.62875566587, + "2024-09-27": 65674.33950003235, + "2024-09-27T07": 65440.039911375774, + "2024-09-27T05": 65246.87902102978, + "2024-09-30T14": 63773.36250669887, + "2024-09-27T14": 66258.57025733982, + "2024-09-27T23": 65768.31061978471, + "2024-09-28T11": 65757.66488282583, + "2024-09-29T00": 65838.74976692071, + "2024-09-28T18": 65756.25086350524, + "2024-09-29T23": 65614.72001730771, + "2024-10-01T13": 62934.23328445526, + "2024-09-30T10": 63533.42767577061, + "2024-09-25T22": 63354.732503274216, + "2024-09-29T11": 65653.52868410564, + "2024-09-28T12": 65618.33695862094, + "2024-09-26T09": 63761.696799907084, + "2024-09-28T10": 65689.91056524999, + "2024-09-27T16": 66135.91968898589, + "2024-09-24T17": 63671.72558535511, + "2024-09-27T15": 66288.02790603956, + "2024-09-29T12": 65712.40905131775, + "2024-09-25T04": 64354.35428634665, + "2024-09-25T21": 63470.62746098174, + "2024-09-25T18": 63218.301747827165, + "2024-09-26T04": 63406.56384170348, + "2024-09-26T05": 63561.00650067186, + "2024-09-30T04": 64453.58472540519, + "2024-09-27T13": 65626.75075941082, + "2024-09-28T13": 65518.05249164448, + "2024-09-25T08": 63852.06466789746, + "2024-09-30T03": 64418.48966146732, + "2024-10-01T10": 63847.603680845066, + "2024-09-25T13": 63536.69342313748, + "2024-10-01T01": 63496.482286658145, + "2024-09-26T17": 65399.26007355518, + "2024-09-25T15": 63811.61425291112, + "2024-09-29T22": 65732.32267868174, + "2024-09-29T01": 65757.80410840937, + "2024-09-30T06": 64550.229569847404, + "2024-09-27T12": 65628.15241145038, + "2024-09-25T23": 63077.434672266674, + "2024-09-30T05": 64481.148109602414, + "2024-09-28T23": 65696.01514742467, + "2024-09-30T19": 63424.42578788863, + "2024-09-25T00": 64231.803756649264, + "2024-10-01T12": 63720.68030836211, + "2024-09-29T10": 65531.832965946254, + "2024-09-24T22": 64360.86637618695, + "2024-09-26T08": 63795.19354530736, + "2024-09-29T20": 65922.97703716255, + "2024-09-25T12": 63745.89092222262, + "2024-09-25T05": 64212.90257792779, + "2024-09-27T09": 65791.10076422778, + "2024-09-26T02": 63195.64361505063, + "2024-09-28T05": 65989.84040727155, + "2024-09-29T03": 65793.78706059972, + "2024-09-26T23": 64999.24669545528, + "2024-09-29T16": 65740.69264665483, + "2024-09-26T21": 64896.55028131225, + "2024-09-26T16": 65408.012295044304, + "2024-09-28T03": 66080.85198353181, + "2024-09-29T21": 65862.77282000179, + "2024-09-30T09": 63888.373946829335, + "2024-09-24T16": 63213.34782492155, + "2024-09-30T07": 64573.85119461457, + "2024-09-28T17": 65631.78111081588, + "2024-09-28T02": 66086.50467003569, + "2024-09-28T15": 65665.25000667179, + "2024-09-29T17": 65881.31938318438, + "2024-09-25T17": 63170.963518528224, + "2024-09-25T16": 63581.137765671905, + "2024-10-01T04": 63750.22621584976, + "2024-10-01T07": 64010.90339801758, + "2024-09-30T23": 63300.13874303024, + "2024-09-29T13": 65759.92910813547, + "2024-09-26T22": 65099.43622422697, + "2024-10-01T11": 63816.809633055505, + "2024-09-30T16": 63571.41287700207, + "2024-09-28T01": 65861.40459603973, + "2024-09-27T02": 64965.49034182927, + "2024-09-30T20": 63664.68689618911, + "2024-09-28T06": 65851.08961694884, + "2024-09-27T08": 65639.99840262676, + "2024-10-01T06": 63921.833559289036, + "2024-09-27T03": 65128.409270530494, + "2024-09-25T06": 63951.77733694219, + "2024-10-01T02": 63307.75119571091, + "2024-09-27T17": 65879.33814227754, + "2024-09-30T22": 63597.726441727566, + "2024-09-29T05": 65620.4463116188, + "2024-09-28T20": 65741.90966377185, + "2024-09-30T13": 64035.36413330783, + "2024-09-26T18": 65147.72774642389, + "2024-09-25T10": 63642.94266260865, + "2024-09-25T02": 64425.03828860875, + "2024-09-29T02": 65875.15297179081, + "2024-09-28T08": 65676.04810300039, + "2024-09-30T17": 63524.63057704098, + "2024-09-30T02": 64506.41221414879, + "2024-09-28T09": 65568.1773318855, + "2024-09-25T03": 64321.596653382265, + "2024-09-29T15": 65721.7769270415, + "2024-09-29T06": 65550.87281526632, + "2024-09-24T18": 63734.6307839693, + "2024-09-26T07": 63791.574001573616, + "2024-09-26T15": 65118.80804483213, + "2024-09-27T04": 65350.49932099358, + "2024-09-27T11": 65461.13502564854, + "2024-09-26T20": 64749.49246789592, + "2024-09-30T12": 63845.01403749023, + "2024-09-27T10": 65575.23327843544, + "2024-09-26T12": 64496.83679449656, + "2024-09-24T23": 64412.266206004606, + "2024-09-30T00": 65405.120785414765, + "2024-09-25T14": 63783.604854286925, + "2024-09-26T14": 64820.2873699862, + "2024-09-27T01": 65188.71359428934, + "2024-09-28T04": 66043.80819775783, + "2024-09-29T08": 65516.46774069712, + "2024-09-26T01": 62883.51563357037, + "2024-09-27T19": 65794.68256015229, + "2024-09-25T01": 64422.7565587852, + "2024-09-26T00": 63130.14645008196, + "2024-09-29T18": 65804.31000219248, + "2024-09-28T19": 65726.48360859607, + "2024-09-28T22": 65717.5242646275, + "2024-09-27T18": 65736.29888881042, + "2024-09-24T21": 64112.029426144734, + "2024-09-30T08": 64307.972018410874, + "2024-09-25T11": 63679.077002524136, + "2024-09-25T20": 63331.038265301475, + "2024-10-01T09": 64005.026732472186, + "2024-10-01T03": 63574.84700458822, + "2024-09-26T11": 64373.48181157148, + "2024-09-28T07": 65835.05588197337, + "2024-09-27T22": 65891.32399064313, + "2024-09-27T21": 65813.0496909198, + "2024-09-26T03": 63376.84441445148, + "2024-09-26T13": 64362.48759042714, + "2024-09-30T18": 63330.04286775284, + "2024-10-01T08": 63947.31295716866, + "2024-09-25T19": 63276.175168701164, + "2024-09-30T21": 63730.861909845866, + "2024-09-28T14": 65718.4536853182, + "2024-09-27T20": 65755.30136837404, + "2024-09-26T06": 63694.44317586195, + "2024-09-26T10": 64281.685400848226, + "2024-09-29T04": 65734.75847180377, + "2024-09-28T16": 65584.56422512578, + "2024-10-01T00": 63301.92092511556, + "2024-09-24T20": 64258.22192419391, + "2024-09-26T19": 65131.008415638134, + "2024-09-24T15": 63177.832323349656, + "2024-09-27T06": 65436.47629560906, + "2024-09-29T14": 65730.61260222697, + "2024-09-29T07": 65515.29236584165, + "2024-09-28T00": 65825.43586875086, + "2024-09-30T01": 65223.85873027511, + "2024-09-29T09": 65630.26390654134, + "2024-09-25T09": 63743.69030299501, + "2024-09-30T11": 63651.67218667459, + "2024-09-25T07": 63802.261122559255, + "2024-09-24T19": 63858.84481637996, + "2024-09-29T19": 65862.11006388067, + "2024-09-30T15": 63752.5526643316, + "2024-09-28T21": 65623.71926107876, + "2024-10-01T05": 63710.37027712537, + "2024-10-01T14": 62997.651429281315, + "2024-09-27T00": 65164.33906928536, + "latest": 61799, + "2024-10-01T15": 62553.5923628753 + }, + "USD bitcoin_cash": { + "2024-09-12": 334.3013084484531, + "2024-09-15": 325.45046516855126, + "2024-09-22": 341.1720635701383, + "2024-09-05": 308.76774857264553, + "2024-09-10": 323.65985478972067, + "2024-09-11": 327.96866178828606, + "2024-09-20": 338.75575636370377, + "2024-09-26": 350.31235061884877, + "2024-09-16": 313.02398755052735, + "2024-09-08": 302.9539387315301, + "2024-09-24": 342.70157584188047, + "2024-09-29": 350.61003027564436, + "2024-09-17": 314.1061798321126, + "2024-09-14": 330.2275794913679, + "2024-09-03": 315.7724611917873, + "2024-09-25": 347.9645775260749, + "2024-09-18": 312.9443628121194, + "2024-09-07": 300.7426246145518, + "2024-09-06": 304.71707245794335, + "2024-09-19": 343.04404739081406, + "2024-09-30": 343.71187160114107, + "2024-09-01": 319.2017630387557, + "2024-08-31": 323.39614101358427, + "2024-09-02": 320.3363330046645, + "2024-09-23": 341.2471537351617, + "2024-09-13": 331.6097213229911, + "2024-10-01": 340.78507495184766, + "2024-09-04": 311.3028000866409, + "2024-09-28": 352.09270387256896, + "2024-09-21": 339.9719380366045, + "2024-09-09": 311.71663486579837, + "2024-09-27": 359.9795418424307, + "2024-09-27T07": 360.565473330717, + "2024-09-27T05": 360.03811208420655, + "2024-09-30T14": 344.5006763455243, + "2024-09-27T14": 358.25753946493944, + "2024-09-27T23": 359.5331541840001, + "2024-09-28T11": 352.3300051626577, + "2024-09-29T00": 352.35522532513534, + "2024-09-28T18": 351.6453289528669, + "2024-09-29T23": 354.0862833841929, + "2024-10-01T13": 342.67172491931046, + "2024-09-30T10": 346.36078689110974, + "2024-09-25T22": 346.85367653566396, + "2024-09-29T11": 347.4255249477956, + "2024-09-28T12": 352.1374227638028, + "2024-09-26T09": 346.76467976474413, + "2024-09-28T10": 350.4913353111896, + "2024-09-27T16": 363.5990687125544, + "2024-09-24T17": 342.36770585104523, + "2024-09-27T15": 362.8308921689936, + "2024-09-29T12": 348.88941037625517, + "2024-09-25T04": 352.9504092987208, + "2024-09-25T21": 346.4375816283185, + "2024-09-25T18": 344.03597987346336, + "2024-09-26T04": 343.86266502182434, + "2024-09-26T05": 343.66465490009733, + "2024-09-30T04": 345.64882988401655, + "2024-09-27T13": 360.06216979460055, + "2024-09-28T13": 350.733304188445, + "2024-09-25T08": 348.8994427243992, + "2024-09-30T03": 347.3070509251502, + "2024-10-01T10": 344.67697241660557, + "2024-09-25T13": 346.1608198668219, + "2024-10-01T01": 339.6658053531363, + "2024-09-26T17": 355.1384764908, + "2024-09-25T15": 349.15109336996807, + "2024-09-29T22": 355.9788060177929, + "2024-09-29T01": 351.58027478177536, + "2024-09-30T06": 346.99740754089015, + "2024-09-27T12": 358.43300411411155, + "2024-09-25T23": 344.37315341751463, + "2024-09-30T05": 344.93696342016034, + "2024-09-28T23": 352.5811869618867, + "2024-09-30T19": 342.49994537311744, + "2024-09-25T00": 347.8327710164349, + "2024-10-01T12": 343.2417351740325, + "2024-09-29T10": 348.7352704305152, + "2024-09-24T22": 346.0019950921061, + "2024-09-26T08": 348.3028707694756, + "2024-09-29T20": 352.2818435383033, + "2024-09-25T12": 348.1401884534312, + "2024-09-25T05": 349.778971255478, + "2024-09-27T09": 360.63855592242925, + "2024-09-26T02": 342.57090049298665, + "2024-09-28T05": 359.6927565544526, + "2024-09-29T03": 352.8034141094278, + "2024-09-26T23": 353.7962831434875, + "2024-09-29T16": 349.43706963606667, + "2024-09-26T21": 349.6961069434508, + "2024-09-26T16": 353.60475767713694, + "2024-09-28T03": 360.93949644718754, + "2024-09-29T21": 354.6764053615391, + "2024-09-30T09": 347.26606991386393, + "2024-09-24T16": 341.63358838071684, + "2024-09-30T07": 346.57519388648365, + "2024-09-28T17": 349.3739429512253, + "2024-09-28T02": 358.40687538912414, + "2024-09-28T15": 352.1201337767517, + "2024-09-29T17": 348.1681202513523, + "2024-09-25T17": 347.0879482577161, + "2024-09-25T16": 347.50146327566864, + "2024-10-01T04": 344.54801445026203, + "2024-10-01T07": 345.6453283639802, + "2024-09-30T23": 340.27936938411096, + "2024-09-29T13": 348.11818027009645, + "2024-09-26T22": 352.80005855355904, + "2024-10-01T11": 343.94782692831865, + "2024-09-30T16": 342.923361069409, + "2024-09-28T01": 359.94297990078405, + "2024-09-27T02": 358.6902943689553, + "2024-09-30T20": 340.7875365458876, + "2024-09-28T06": 357.04669050787624, + "2024-09-27T08": 360.2469329689974, + "2024-10-01T06": 343.88602839584917, + "2024-09-27T03": 356.94975579500726, + "2024-09-25T06": 351.74109767768397, + "2024-10-01T02": 341.6107232055033, + "2024-09-27T17": 362.57961964177366, + "2024-09-30T22": 342.4870152223158, + "2024-09-29T05": 351.43175977639754, + "2024-09-28T20": 352.2123650153095, + "2024-09-30T13": 343.9732851126418, + "2024-09-26T18": 354.1754647485129, + "2024-09-25T10": 348.5887773489403, + "2024-09-25T02": 355.9140223220125, + "2024-09-29T02": 350.94472637088603, + "2024-09-28T08": 352.648842758216, + "2024-09-30T17": 341.9336889373577, + "2024-09-30T02": 351.362093789864, + "2024-09-28T09": 350.1545422238366, + "2024-09-25T03": 354.72258384967455, + "2024-09-29T15": 348.7760890045393, + "2024-09-29T06": 350.75576723205717, + "2024-09-24T18": 346.42729082837434, + "2024-09-26T07": 348.13482944651787, + "2024-09-26T15": 352.2512817500002, + "2024-09-27T04": 360.5347252815822, + "2024-09-27T11": 357.23276377425475, + "2024-09-26T20": 352.7998823851161, + "2024-09-30T12": 343.47197585118073, + "2024-09-27T10": 360.8141755721111, + "2024-09-26T12": 348.9961577515092, + "2024-09-24T23": 346.678194387903, + "2024-09-30T00": 351.7389230318388, + "2024-09-25T14": 346.96779726763475, + "2024-09-26T14": 349.6155464444733, + "2024-09-27T01": 357.6583735652595, + "2024-09-28T04": 358.8000736567846, + "2024-09-29T08": 347.78868818136743, + "2024-09-26T01": 340.2501395733254, + "2024-09-27T19": 359.5925417062617, + "2024-09-25T01": 350.0101783162345, + "2024-09-26T00": 343.317760290798, + "2024-09-29T18": 351.85787802081705, + "2024-09-28T19": 352.44411389048423, + "2024-09-28T22": 351.36644137133885, + "2024-09-27T18": 359.148788524409, + "2024-09-24T21": 346.5794714575552, + "2024-09-30T08": 347.71069681071816, + "2024-09-25T11": 347.5143748306159, + "2024-09-25T20": 344.8100705717132, + "2024-10-01T09": 344.81065625048467, + "2024-10-01T03": 340.4797851242411, + "2024-09-26T11": 351.2118215207363, + "2024-09-28T07": 351.2968167954832, + "2024-09-27T22": 358.74936989630885, + "2024-09-27T21": 359.78442129228574, + "2024-09-26T03": 343.24218577900825, + "2024-09-26T13": 349.6388940792427, + "2024-09-30T18": 342.7963043032667, + "2024-10-01T15": 330.3615306420592, + "2024-10-01T08": 346.522193117962, + "2024-09-25T19": 345.70079323193886, + "2024-09-30T21": 343.3380404647878, + "2024-09-28T14": 350.86362636547756, + "2024-09-27T20": 359.67016372921296, + "2024-09-26T06": 345.98810652965784, + "2024-09-26T10": 347.78212406760747, + "2024-09-29T04": 352.6867427506851, + "2024-09-28T16": 352.23237670495433, + "2024-10-01T00": 334.9424574540387, + "2024-09-24T20": 346.94451624522884, + "2024-09-26T19": 355.0249502914968, + "2024-09-24T15": 340.5107240797459, + "2024-09-27T06": 361.50161984000897, + "2024-09-29T14": 349.2116937574176, + "2024-09-29T07": 348.68138090419177, + "2024-09-28T00": 358.5664575861578, + "2024-09-30T01": 349.6977603117019, + "2024-09-29T09": 347.831526396001, + "2024-09-25T09": 349.42992608747164, + "2024-09-30T11": 341.20495884066275, + "2024-09-25T07": 348.8144666915082, + "2024-09-24T19": 346.7235428585023, + "2024-09-29T19": 351.2211989786106, + "2024-09-30T15": 343.789127514847, + "2024-09-28T21": 352.5895159207677, + "2024-10-01T05": 345.19784397034624, + "2024-10-01T14": 335.54353858284, + "2024-09-27T00": 351.9585559262042, + "latest": 321.85 + }, + "USD bitcoin_gold": { + "2024-09-12": 21.536184090566724, + "2024-09-15": 22.199460769690262, + "2024-09-22": 23.115296307870075, + "2024-09-05": 20.866568472418983, + "2024-09-10": 21.573363541233896, + "2024-09-11": 21.373216279592274, + "2024-09-20": 23.048338381782145, + "2024-09-26": 24.22841991358166, + "2024-09-16": 21.545183593868437, + "2024-09-08": 20.304468682410313, + "2024-09-24": 23.394382611094347, + "2024-09-29": 24.484892994573908, + "2024-09-17": 21.70587436170197, + "2024-09-14": 22.788164943177488, + "2024-09-03": 21.375255397572246, + "2024-09-25": 24.01569147410707, + "2024-09-18": 21.653834798795486, + "2024-09-07": 20.11272569709923, + "2024-09-06": 20.454906346728226, + "2024-09-19": 22.724431866192806, + "2024-09-30": 24.404426186704065, + "2024-09-01": 21.263249842741473, + "2024-08-31": 21.800642859026897, + "2024-09-02": 21.081731968774655, + "2024-09-23": 23.29109107805811, + "2024-09-13": 21.585509986591774, + "2024-10-01": 24.18583090972382, + "2024-09-04": 20.85760260880654, + "2024-09-28": 24.940271630404876, + "2024-09-21": 23.379252465437904, + "2024-09-09": 20.757596691456165, + "2024-09-27": 25.413209664741128, + "2024-09-27T07": 25.167498336361938, + "2024-09-27T05": 25.25329226996409, + "2024-09-30T14": 23.969912193478518, + "2024-09-27T14": 25.56067850891296, + "2024-09-27T23": 25.347887779139292, + "2024-09-28T11": 24.688207612477953, + "2024-09-29T00": 24.5932887618857, + "2024-09-28T18": 24.71554678980922, + "2024-09-29T23": 24.609194554360695, + "2024-10-01T13": 23.665002899891952, + "2024-09-30T10": 23.83882444855227, + "2024-09-25T22": 23.82832273387688, + "2024-09-29T11": 24.481326922415846, + "2024-09-28T12": 24.626496739894346, + "2024-09-26T09": 24.180212998939822, + "2024-09-28T10": 24.64059906567025, + "2024-09-27T16": 25.51680077085736, + "2024-09-24T17": 23.34055846754697, + "2024-09-27T15": 25.555896166272426, + "2024-09-29T12": 24.44549481674483, + "2024-09-25T04": 24.104812469528092, + "2024-09-25T21": 23.817676975472516, + "2024-09-25T18": 23.73781657998599, + "2024-09-26T04": 23.5999743400982, + "2024-09-26T05": 23.653678613692918, + "2024-09-30T04": 24.493706671555362, + "2024-09-27T13": 25.25881677075857, + "2024-09-28T13": 24.54435014729264, + "2024-09-25T08": 23.855133160880236, + "2024-09-30T03": 24.577459276947135, + "2024-10-01T10": 23.989151250577855, + "2024-09-25T13": 23.925571317862186, + "2024-10-01T01": 23.96559039329008, + "2024-09-26T17": 24.752511610765907, + "2024-09-25T15": 23.947433758082106, + "2024-09-29T22": 24.670271109664995, + "2024-09-29T01": 24.584920910258884, + "2024-09-30T06": 24.56923745289957, + "2024-09-27T12": 25.23316800454071, + "2024-09-25T23": 23.615794179564993, + "2024-09-30T05": 24.49255750627855, + "2024-09-28T23": 24.826347793410644, + "2024-09-30T19": 23.701688449007275, + "2024-09-25T00": 23.90599175027404, + "2024-10-01T12": 23.948936612882424, + "2024-09-29T10": 24.326061005175646, + "2024-09-24T22": 23.758328251097122, + "2024-09-26T08": 24.07975735058798, + "2024-09-29T20": 24.67676990791595, + "2024-09-25T12": 24.063539702514802, + "2024-09-25T05": 24.543745322219856, + "2024-09-27T09": 25.423588104405447, + "2024-09-26T02": 23.535548865875285, + "2024-09-28T05": 25.06757522786042, + "2024-09-29T03": 24.677897186277292, + "2024-09-26T23": 24.726535492470102, + "2024-09-29T16": 24.494680485429434, + "2024-09-26T21": 24.549837648813856, + "2024-09-26T16": 24.642160050791457, + "2024-09-28T03": 25.183302213155642, + "2024-09-29T21": 24.75139185667967, + "2024-09-30T09": 24.185673178872644, + "2024-09-24T16": 23.207789215069166, + "2024-09-30T07": 24.514857357216464, + "2024-09-28T17": 24.739777370812526, + "2024-09-28T02": 25.266869581096845, + "2024-09-28T15": 24.764401579464582, + "2024-09-29T17": 24.582220599185977, + "2024-09-25T17": 23.721104573750686, + "2024-09-25T16": 23.853043410038858, + "2024-10-01T04": 24.027458981509252, + "2024-10-01T07": 23.987758086038035, + "2024-09-30T23": 23.635846417440913, + "2024-09-29T13": 24.386525642202216, + "2024-09-26T22": 24.60465430849888, + "2024-10-01T11": 24.036657824429216, + "2024-09-30T16": 23.759132838144982, + "2024-09-28T01": 25.104032771966146, + "2024-09-27T02": 25.36652809330943, + "2024-09-30T20": 23.784021274942013, + "2024-09-28T06": 24.841229066068493, + "2024-09-27T08": 25.28053583278306, + "2024-10-01T06": 24.037824425662123, + "2024-09-27T03": 25.286204812656226, + "2024-09-25T06": 24.102403358596085, + "2024-10-01T02": 23.84643009127709, + "2024-09-27T17": 25.49337747609476, + "2024-09-30T22": 23.787716494394736, + "2024-09-29T05": 24.704010847819198, + "2024-09-28T20": 24.919626523156662, + "2024-09-30T13": 24.14547298423582, + "2024-09-26T18": 24.728423133156678, + "2024-09-25T10": 23.790509600740606, + "2024-09-25T02": 24.001809318982687, + "2024-09-29T02": 24.64482091068136, + "2024-09-28T08": 24.598524380689096, + "2024-09-30T17": 23.708756396709212, + "2024-09-30T02": 24.584688787378898, + "2024-09-28T09": 24.44865556643066, + "2024-09-25T03": 23.950370639725794, + "2024-09-29T15": 24.47336319103234, + "2024-09-29T06": 24.56577486539965, + "2024-09-24T18": 23.39990431744127, + "2024-09-26T07": 24.054421456351484, + "2024-09-26T15": 24.46113838798473, + "2024-09-27T04": 25.392506252692048, + "2024-09-27T11": 25.19420688589533, + "2024-09-26T20": 24.583720239836108, + "2024-09-30T12": 24.095764852836652, + "2024-09-27T10": 25.20844799260951, + "2024-09-26T12": 24.249532412147204, + "2024-09-24T23": 23.937704459083232, + "2024-09-30T00": 25.284604956879825, + "2024-09-25T14": 24.0234482946743, + "2024-09-26T14": 24.326211271588395, + "2024-09-27T01": 25.37120027165281, + "2024-09-28T04": 25.209072003610476, + "2024-09-29T08": 24.323994305171134, + "2024-09-26T01": 23.28547826981663, + "2024-09-27T19": 25.42438740938813, + "2024-09-25T01": 24.00941566943452, + "2024-09-26T00": 23.50550163041355, + "2024-09-29T18": 24.603964479350747, + "2024-09-28T19": 24.794933249704414, + "2024-09-28T22": 24.82242714723112, + "2024-09-27T18": 25.418196955717523, + "2024-09-24T21": 23.602707061271516, + "2024-09-30T08": 24.301127818584927, + "2024-09-25T11": 24.010439090435714, + "2024-09-25T20": 23.863500876021654, + "2024-10-01T09": 24.009555995595743, + "2024-10-01T03": 23.925103632564383, + "2024-09-26T11": 24.319607788281296, + "2024-09-28T07": 24.910493361081866, + "2024-09-27T22": 25.362396323021173, + "2024-09-27T21": 25.38946065370387, + "2024-09-26T03": 23.577892111229893, + "2024-09-26T13": 24.143852573121134, + "2024-09-30T18": 23.656886837159945, + "2024-10-01T08": 24.080666986100095, + "2024-09-25T19": 23.76682383904288, + "2024-09-30T21": 23.806766351449856, + "2024-09-28T14": 24.71016008000725, + "2024-09-27T20": 25.38464688149005, + "2024-09-26T06": 23.916514424270172, + "2024-09-26T10": 24.304276366553864, + "2024-09-29T04": 24.6646958847698, + "2024-09-28T16": 24.782134643738367, + "2024-10-01T00": 24.311525156084066, + "2024-09-24T20": 23.539545202369386, + "2024-09-26T19": 24.66848037731394, + "2024-09-24T15": 23.198982306191432, + "2024-09-27T06": 25.291100834902583, + "2024-09-29T14": 24.442582267572703, + "2024-09-29T07": 24.437307026749185, + "2024-09-28T00": 25.19389531918807, + "2024-09-30T01": 25.210466370913245, + "2024-09-29T09": 24.45204917200814, + "2024-09-25T09": 23.849195062798668, + "2024-09-30T11": 24.039785954022204, + "2024-09-25T07": 23.959061845981168, + "2024-09-24T19": 23.358883384384256, + "2024-09-29T19": 24.60839902062395, + "2024-09-30T15": 23.927754723402433, + "2024-09-28T21": 24.76391437320426, + "2024-10-01T05": 23.977826064505027, + "2024-10-01T14": 23.508671379227728, + "2024-09-27T00": 25.496325264722824, + "latest": 22.79, + "2024-10-01T15": 23.130322361486876 + }, + "USD bittorrent": { + "2024-09-12": 8.752576551227259e-7, + "2024-09-15": 8.697572883863242e-7, + "2024-09-22": 9.173432228024446e-7, + "2024-09-05": 8.055801420398459e-7, + "2024-09-10": 9.277129867716111e-7, + "2024-09-11": 8.953692666645182e-7, + "2024-09-20": 8.962869169353731e-7, + "2024-09-26": 9.176431763059136e-7, + "2024-09-16": 8.572700261878458e-7, + "2024-09-08": 7.882861758260095e-7, + "2024-09-24": 9.09255578063031e-7, + "2024-09-29": 9.98049545011433e-7, + "2024-09-17": 8.383695387851767e-7, + "2024-09-14": 8.959575181151334e-7, + "2024-09-03": 8.262149592994329e-7, + "2024-09-25": 9.16000005757521e-7, + "2024-09-18": 8.726355310394565e-7, + "2024-09-07": 7.757355565510865e-7, + "2024-09-06": 7.967111836454197e-7, + "2024-09-19": 8.758077148691963e-7, + "2024-09-30": 9.834988140672073e-7, + "2024-09-01": 8.540653801014833e-7, + "2024-08-31": 8.691210598504998e-7, + "2024-09-02": 8.197695058422566e-7, + "2024-09-23": 9.125009281308512e-7, + "2024-09-13": 8.732482132963805e-7, + "2024-10-01": 9.43933806022905e-7, + "2024-09-04": 8.033080202674832e-7, + "2024-09-28": 0.0000010235516130600785, + "2024-09-21": 9.014916805678814e-7, + "2024-09-09": 9.040464249410385e-7, + "2024-09-27": 9.69535365883372e-7, + "2024-09-27T07": 0.0000010235499839199927, + "2024-09-27T05": 0.000001023502204128312, + "2024-09-30T14": 9.604796775352865e-7, + "2024-09-27T14": 0.000001052143154779495, + "2024-09-27T23": 0.000001033579203321401, + "2024-09-28T11": 9.950005500309962e-7, + "2024-09-29T00": 9.984816523957651e-7, + "2024-09-28T18": 9.955955429307653e-7, + "2024-09-29T23": 9.875305658434088e-7, + "2024-10-01T13": 9.561970143610578e-7, + "2024-09-30T10": 9.614867848878794e-7, + "2024-09-25T22": 9.184962680401442e-7, + "2024-09-29T11": 9.856853683186794e-7, + "2024-09-28T12": 9.95577665346357e-7, + "2024-09-26T09": 9.355344599491857e-7, + "2024-09-28T10": 9.917163670563516e-7, + "2024-09-27T16": 0.0000010351799429602268, + "2024-09-24T17": 9.069407632855613e-7, + "2024-09-27T15": 0.000001042925532632562, + "2024-09-29T12": 9.857092948252674e-7, + "2024-09-25T04": 9.26275840406518e-7, + "2024-09-25T21": 9.185930863937921e-7, + "2024-09-25T18": 9.18040449712363e-7, + "2024-09-26T04": 9.179218670070275e-7, + "2024-09-26T05": 9.195008524498344e-7, + "2024-09-30T04": 9.652127615352803e-7, + "2024-09-27T13": 0.0000010274166579709868, + "2024-09-28T13": 9.934764758165366e-7, + "2024-09-25T08": 9.15467387384989e-7, + "2024-09-30T03": 9.652860521920123e-7, + "2024-10-01T10": 9.528988383837929e-7, + "2024-09-25T13": 9.213029737592485e-7, + "2024-10-01T01": 9.476416768300739e-7, + "2024-09-26T17": 9.713869681704638e-7, + "2024-09-25T15": 9.244107929562521e-7, + "2024-09-29T22": 9.926895625417526e-7, + "2024-09-29T01": 9.983494136033941e-7, + "2024-09-30T06": 9.671065175660214e-7, + "2024-09-27T12": 0.0000010209037936924991, + "2024-09-25T23": 9.182053995527716e-7, + "2024-09-30T05": 9.638705954584747e-7, + "2024-09-28T23": 9.988688199192272e-7, + "2024-09-30T19": 9.464021212260442e-7, + "2024-09-25T00": 9.1737058727572e-7, + "2024-10-01T12": 9.57464187018683e-7, + "2024-09-29T10": 9.854696825604106e-7, + "2024-09-24T22": 9.1522653155343e-7, + "2024-09-26T08": 9.274046352255065e-7, + "2024-09-29T20": 9.934036177852965e-7, + "2024-09-25T12": 9.249823762101686e-7, + "2024-09-25T05": 9.236249391875416e-7, + "2024-09-27T09": 0.0000010243784944660411, + "2024-09-26T02": 9.177223646483166e-7, + "2024-09-28T05": 0.0000010277008675830325, + "2024-09-29T03": 9.962631589724096e-7, + "2024-09-26T23": 9.748431192281775e-7, + "2024-09-29T16": 9.90227128629122e-7, + "2024-09-26T21": 9.713884337936917e-7, + "2024-09-26T16": 9.569255166575785e-7, + "2024-09-28T03": 0.000001036710687843588, + "2024-09-29T21": 9.920803605615588e-7, + "2024-09-30T09": 9.648577591460804e-7, + "2024-09-24T16": 9.059439958237154e-7, + "2024-09-30T07": 9.656600340402444e-7, + "2024-09-28T17": 9.928329507787987e-7, + "2024-09-28T02": 0.0000010389640746998079, + "2024-09-28T15": 9.96759835718207e-7, + "2024-09-29T17": 9.884885396776846e-7, + "2024-09-25T17": 9.228115847097307e-7, + "2024-09-25T16": 9.207213949707337e-7, + "2024-10-01T04": 9.530035951413765e-7, + "2024-10-01T07": 9.546328005108129e-7, + "2024-09-30T23": 9.534108847017186e-7, + "2024-09-29T13": 9.83644024531058e-7, + "2024-09-26T22": 9.79118218027449e-7, + "2024-10-01T11": 9.549192563793275e-7, + "2024-09-30T16": 9.534472716228049e-7, + "2024-09-28T01": 0.000001030441943783275, + "2024-09-27T02": 0.0000010452354945193713, + "2024-09-30T20": 9.4912218687854e-7, + "2024-09-28T06": 0.0000010180086460121884, + "2024-09-27T08": 0.000001017919840362822, + "2024-10-01T06": 9.53986186261759e-7, + "2024-09-27T03": 0.0000010458669188699453, + "2024-09-25T06": 9.243413664955455e-7, + "2024-10-01T02": 9.471572604873483e-7, + "2024-09-27T17": 0.0000010371371335383874, + "2024-09-30T22": 9.55857688698282e-7, + "2024-09-29T05": 9.956978900995433e-7, + "2024-09-28T20": 9.956373945799814e-7, + "2024-09-30T13": 9.636828670630334e-7, + "2024-09-26T18": 9.6941840800091e-7, + "2024-09-25T10": 9.160147611854458e-7, + "2024-09-25T02": 9.304895381815694e-7, + "2024-09-29T02": 9.924193620023903e-7, + "2024-09-28T08": 9.997292326190562e-7, + "2024-09-30T17": 9.480296370339539e-7, + "2024-09-30T02": 9.682551424259873e-7, + "2024-09-28T09": 9.876442346230036e-7, + "2024-09-25T03": 9.269293860894177e-7, + "2024-09-29T15": 9.855594659900877e-7, + "2024-09-29T06": 9.94634969000933e-7, + "2024-09-24T18": 9.088810703620615e-7, + "2024-09-26T07": 9.316666463977903e-7, + "2024-09-26T15": 9.472644909242642e-7, + "2024-09-27T04": 0.000001034623824757743, + "2024-09-27T11": 0.0000010169956012255503, + "2024-09-26T20": 9.729889424371725e-7, + "2024-09-30T12": 9.58221109620222e-7, + "2024-09-27T10": 0.0000010267348087036956, + "2024-09-26T12": 9.437359223307322e-7, + "2024-09-24T23": 9.181740339723274e-7, + "2024-09-30T00": 9.869150678273853e-7, + "2024-09-25T14": 9.205475074846675e-7, + "2024-09-26T14": 9.464600161172951e-7, + "2024-09-27T01": 0.0000010565584235518215, + "2024-09-28T04": 0.0000010267403098529955, + "2024-09-29T08": 9.81186544295981e-7, + "2024-09-26T01": 9.149312909977551e-7, + "2024-09-27T19": 0.0000010299866493547713, + "2024-09-25T01": 9.28368416723132e-7, + "2024-09-26T00": 9.175785317431038e-7, + "2024-09-29T18": 9.884874847018126e-7, + "2024-09-28T19": 9.958516367292608e-7, + "2024-09-28T22": 9.966587414724712e-7, + "2024-09-27T18": 0.000001031307141239034, + "2024-09-24T21": 9.162591053325284e-7, + "2024-09-30T08": 9.706978295866173e-7, + "2024-09-25T11": 9.168080846984088e-7, + "2024-09-25T20": 9.174192985130918e-7, + "2024-10-01T09": 9.556109595521093e-7, + "2024-10-01T03": 9.468896617313941e-7, + "2024-09-26T11": 9.465624044107934e-7, + "2024-09-28T07": 0.0000010019370188799685, + "2024-09-27T22": 0.000001030165846643461, + "2024-09-27T21": 0.000001035895756278428, + "2024-09-26T03": 9.180608403055908e-7, + "2024-09-26T13": 9.465119541372639e-7, + "2024-09-30T18": 9.480146535518953e-7, + "2024-10-01T08": 9.554100201966702e-7, + "2024-09-25T19": 9.188882237103475e-7, + "2024-09-30T21": 9.532614853678113e-7, + "2024-09-28T14": 9.930931278856206e-7, + "2024-09-27T20": 0.0000010304878997773649, + "2024-09-26T06": 9.190866377476916e-7, + "2024-09-26T10": 9.362520785576044e-7, + "2024-09-29T04": 9.97987028096153e-7, + "2024-09-28T16": 9.96649325378258e-7, + "2024-10-01T00": 9.43933806022905e-7, + "2024-09-24T20": 9.144833954107285e-7, + "2024-09-26T19": 9.75413677836263e-7, + "2024-09-24T15": 9.064659137527435e-7, + "2024-09-27T06": 0.0000010365307787674366, + "2024-09-29T14": 9.896955573153935e-7, + "2024-09-29T07": 9.877064068929864e-7, + "2024-09-28T00": 0.000001028904306620181, + "2024-09-30T01": 9.786469498419078e-7, + "2024-09-29T09": 9.838827536129895e-7, + "2024-09-25T09": 9.160206037105724e-7, + "2024-09-30T11": 9.566037881984728e-7, + "2024-09-25T07": 9.152792277482817e-7, + "2024-09-24T19": 9.118791304904102e-7, + "2024-09-29T19": 9.883731206759237e-7, + "2024-09-30T15": 9.559031238688005e-7, + "2024-09-28T21": 9.958242673786696e-7, + "2024-10-01T05": 9.546854901681592e-7, + "2024-10-01T14": 9.492716094276627e-7, + "2024-09-27T00": 9.76299441222857e-7, + "latest": 9.25897e-7, + "2024-10-01T15": 9.372804149474685e-7 + }, + "USD bsc": { + "2024-09-12": 542.6148416220758, + "2024-09-15": 556.2535417690342, + "2024-09-22": 583.4047110098539, + "2024-09-05": 504.10592473621074, + "2024-09-10": 518.6662635598267, + "2024-09-11": 515.771374762059, + "2024-09-20": 569.0037018284464, + "2024-09-26": 594.8305437010372, + "2024-09-16": 544.7800214417798, + "2024-09-08": 498.1237722455268, + "2024-09-24": 605.2791264519858, + "2024-09-29": 597.7019724739642, + "2024-09-17": 542.885519292251, + "2024-09-14": 552.6527407172247, + "2024-09-03": 530.8628946453636, + "2024-09-25": 595.6917302213011, + "2024-09-18": 544.9400612353955, + "2024-09-07": 493.4220238103701, + "2024-09-06": 498.3338576312235, + "2024-09-19": 563.0380598873237, + "2024-09-30": 575.917979951693, + "2024-09-01": 519.2572463562257, + "2024-08-31": 536.1701108085365, + "2024-09-02": 518.1833253189199, + "2024-09-23": 595.6337748681648, + "2024-09-13": 549.0914654527651, + "2024-10-01": 572.315358042014, + "2024-09-04": 509.2017783403042, + "2024-09-28": 601.6038264879917, + "2024-09-21": 582.9404238304214, + "2024-09-09": 507.14542727945695, + "2024-09-27": 606.971610366274, + "2024-09-27T07": 605.211563497677, + "2024-09-27T05": 602.6969566366147, + "2024-09-30T14": 575.2808032194872, + "2024-09-27T14": 610.5137161776755, + "2024-09-27T23": 608.5799697917115, + "2024-09-28T11": 601.775357093572, + "2024-09-29T00": 601.0107430609229, + "2024-09-28T18": 601.4002189231653, + "2024-09-29T23": 596.2081537902179, + "2024-10-01T13": 569.6803806430804, + "2024-09-30T10": 572.1295495834071, + "2024-09-25T22": 586.7236546184954, + "2024-09-29T11": 597.4174395195593, + "2024-09-28T12": 600.1765994834027, + "2024-09-26T09": 594.0311186695517, + "2024-09-28T10": 600.1575126551759, + "2024-09-27T16": 609.8797418002944, + "2024-09-24T17": 607.865910380215, + "2024-09-27T15": 610.863745852216, + "2024-09-29T12": 597.307913640106, + "2024-09-25T04": 604.5858057629135, + "2024-09-25T21": 588.8760091884586, + "2024-09-25T18": 589.0755644630289, + "2024-09-26T04": 587.6862642142144, + "2024-09-26T05": 589.9742559105126, + "2024-09-30T04": 576.7846210667706, + "2024-09-27T13": 608.470349532135, + "2024-09-28T13": 599.4883178490805, + "2024-09-25T08": 596.2069530839967, + "2024-09-30T03": 577.3890514052329, + "2024-10-01T10": 578.3987580944558, + "2024-09-25T13": 594.0146788092279, + "2024-10-01T01": 572.7430290939092, + "2024-09-26T17": 606.3204329262092, + "2024-09-25T15": 596.5313885122592, + "2024-09-29T22": 598.7067590976445, + "2024-09-29T01": 599.6376607755476, + "2024-09-30T06": 581.9125080810335, + "2024-09-27T12": 610.6785567494599, + "2024-09-25T23": 585.9747799933646, + "2024-09-30T05": 578.5155692917148, + "2024-09-28T23": 600.4057534237711, + "2024-09-30T19": 571.727925250338, + "2024-09-25T00": 604.5647370174446, + "2024-10-01T12": 577.6978026999793, + "2024-09-29T10": 595.4214711155619, + "2024-09-24T22": 609.7965324137731, + "2024-09-26T08": 595.6682877544066, + "2024-09-29T20": 599.4368994564685, + "2024-09-25T12": 596.134435501545, + "2024-09-25T05": 602.2175332831523, + "2024-09-27T09": 607.068436027667, + "2024-09-26T02": 587.9818876847488, + "2024-09-28T05": 608.8071582592322, + "2024-09-29T03": 599.9680205045343, + "2024-09-26T23": 595.1860307640953, + "2024-09-29T16": 597.3717963001271, + "2024-09-26T21": 595.063215028054, + "2024-09-26T16": 605.4709625493992, + "2024-09-28T03": 616.0798303771228, + "2024-09-29T21": 600.0145226000336, + "2024-09-30T09": 577.7646175621645, + "2024-09-24T16": 606.6403315139625, + "2024-09-30T07": 582.3455963089424, + "2024-09-28T17": 600.530188979546, + "2024-09-28T02": 608.248892518777, + "2024-09-28T15": 602.1499776471315, + "2024-09-29T17": 598.4984019921475, + "2024-09-25T17": 589.4083395842952, + "2024-09-25T16": 594.5387307712356, + "2024-10-01T04": 579.6572934180894, + "2024-10-01T07": 581.2582628842638, + "2024-09-30T23": 567.4242480196474, + "2024-09-29T13": 597.1775283494409, + "2024-09-26T22": 596.9361521610348, + "2024-10-01T11": 578.360080854014, + "2024-09-30T16": 572.3679875858822, + "2024-09-28T01": 608.0244473162196, + "2024-09-27T02": 600.7747865957765, + "2024-09-30T20": 574.2343951093119, + "2024-09-28T06": 602.5336250946114, + "2024-09-27T08": 606.6962863657906, + "2024-10-01T06": 581.5486800154005, + "2024-09-27T03": 602.7149070406797, + "2024-09-25T06": 598.3053362901038, + "2024-10-01T02": 572.2760174627887, + "2024-09-27T17": 609.1608197208782, + "2024-09-30T22": 571.4614454973339, + "2024-09-29T05": 597.825454845613, + "2024-09-28T20": 600.3548204200262, + "2024-09-30T13": 577.3609019925343, + "2024-09-26T18": 596.055059514438, + "2024-09-25T10": 595.3089919466604, + "2024-09-25T02": 606.3637261757281, + "2024-09-29T02": 601.0050374969267, + "2024-09-28T08": 599.9417154105989, + "2024-09-30T17": 571.0024347084887, + "2024-09-30T02": 577.2973161674738, + "2024-09-28T09": 598.2266371567991, + "2024-09-25T03": 605.2052736647936, + "2024-09-29T15": 596.8059863331276, + "2024-09-29T06": 596.6889383422396, + "2024-09-24T18": 607.722801181503, + "2024-09-26T07": 595.0132498680922, + "2024-09-26T15": 599.9957762225476, + "2024-09-27T04": 604.5149123323041, + "2024-09-27T11": 605.2966625809173, + "2024-09-26T20": 592.9844618508354, + "2024-09-30T12": 574.7307485530952, + "2024-09-27T10": 603.8414085152939, + "2024-09-26T12": 594.4513592236301, + "2024-09-24T23": 607.8924065009403, + "2024-09-30T00": 587.3410718464465, + "2024-09-25T14": 597.8424493715722, + "2024-09-26T14": 595.6399760712927, + "2024-09-27T01": 598.4562382995147, + "2024-09-28T04": 611.9646336301789, + "2024-09-29T08": 594.8382765078694, + "2024-09-26T01": 583.4163053547109, + "2024-09-27T19": 606.5455972397324, + "2024-09-25T01": 605.1553637214627, + "2024-09-26T00": 587.0018284613332, + "2024-09-29T18": 597.9738774997493, + "2024-09-28T19": 600.5228909832186, + "2024-09-28T22": 600.2059558197229, + "2024-09-27T18": 608.6496795038747, + "2024-09-24T21": 607.695792792583, + "2024-09-30T08": 580.5393700677339, + "2024-09-25T11": 594.7605294112765, + "2024-09-25T20": 588.4397606322411, + "2024-10-01T09": 580.185579442189, + "2024-10-01T03": 575.207578091784, + "2024-09-26T11": 595.9899601544329, + "2024-09-28T07": 603.1269880843683, + "2024-09-27T22": 608.7213259441603, + "2024-09-27T21": 608.8514167801649, + "2024-09-26T03": 587.586358062209, + "2024-09-26T13": 593.1710452744765, + "2024-09-30T18": 570.3609655761114, + "2024-10-01T08": 580.6338939696617, + "2024-09-25T19": 588.1931913444082, + "2024-09-30T21": 573.9477804524769, + "2024-09-28T14": 602.3904553656093, + "2024-09-27T20": 606.247806099257, + "2024-09-26T06": 593.1895881227885, + "2024-09-26T10": 596.7599866729123, + "2024-09-29T04": 598.3546621899835, + "2024-09-28T16": 600.6028896424054, + "2024-10-01T00": 568.4522234467619, + "2024-09-24T20": 608.5466265621461, + "2024-09-26T19": 595.3996047538255, + "2024-09-24T15": 607.0063374780885, + "2024-09-27T06": 604.8137907439453, + "2024-09-29T14": 597.2940850021914, + "2024-09-29T07": 595.9218147262885, + "2024-09-28T00": 607.4604988897227, + "2024-09-30T01": 584.7169543825529, + "2024-09-29T09": 596.4931799883922, + "2024-09-25T09": 596.0340402643584, + "2024-09-30T11": 573.5890156948723, + "2024-09-25T07": 595.167572393273, + "2024-09-24T19": 607.7372009845725, + "2024-09-29T19": 598.7003697822453, + "2024-09-30T15": 575.0201615988284, + "2024-09-28T21": 598.857531121895, + "2024-10-01T05": 579.4714665319786, + "2024-10-01T14": 569.2535204508858, + "2024-09-27T00": 597.6066079316788, + "latest": 551.05, + "2024-10-01T15": 562.765370335443 + }, + "USD cardano": { + "2024-09-12": 0.35594213521096757, + "2024-09-15": 0.3488551393450573, + "2024-09-22": 0.3518612718040402, + "2024-09-05": 0.3246618562962649, + "2024-09-10": 0.34212942172721, + "2024-09-11": 0.33929105185998726, + "2024-09-20": 0.35548097773821535, + "2024-09-26": 0.3962070118698328, + "2024-09-16": 0.3320631736119278, + "2024-09-08": 0.33495365219490425, + "2024-09-24": 0.37090658700136936, + "2024-09-29": 0.3983478481678086, + "2024-09-17": 0.3338189281360182, + "2024-09-14": 0.35530860678669207, + "2024-09-03": 0.3286036996458474, + "2024-09-25": 0.38348111536800483, + "2024-09-18": 0.3335080590508321, + "2024-09-07": 0.3234703182531467, + "2024-09-06": 0.3188325768397893, + "2024-09-19": 0.3500265493380821, + "2024-09-30": 0.3847682958715014, + "2024-09-01": 0.3401563027904341, + "2024-08-31": 0.3474304847124523, + "2024-09-02": 0.3319200827454856, + "2024-09-23": 0.35570781050062933, + "2024-09-13": 0.356534135823621, + "2024-10-01": 0.3776047540272867, + "2024-09-04": 0.319439746705889, + "2024-09-28": 0.40088782662346917, + "2024-09-21": 0.35523116205691946, + "2024-09-09": 0.342770634731307, + "2024-09-27": 0.40505749494551546, + "2024-09-27T07": 0.4097421377301464, + "2024-09-27T05": 0.41132153391025783, + "2024-09-30T14": 0.3828167294618904, + "2024-09-27T14": 0.40772086571399324, + "2024-09-27T23": 0.40228060333243126, + "2024-09-28T11": 0.40055671332157516, + "2024-09-29T00": 0.399335937, + "2024-09-28T18": 0.40148906002793205, + "2024-09-29T23": 0.3972624269898194, + "2024-10-01T13": 0.37628317275183465, + "2024-09-30T10": 0.382695353494962, + "2024-09-25T22": 0.3819427, + "2024-09-29T11": 0.3964863283587593, + "2024-09-28T12": 0.40090487715554696, + "2024-09-26T09": 0.3939612261170438, + "2024-09-28T10": 0.39948972467869176, + "2024-09-27T16": 0.4049860774379241, + "2024-09-24T17": 0.3806135267914631, + "2024-09-27T15": 0.4067058423542184, + "2024-09-29T12": 0.39667416948183915, + "2024-09-25T04": 0.38717015396238214, + "2024-09-25T21": 0.38294385351346605, + "2024-09-25T18": 0.38289230289038845, + "2024-09-26T04": 0.38529021285878684, + "2024-09-26T05": 0.3871130636955035, + "2024-09-30T04": 0.388905544125767, + "2024-09-27T13": 0.40485219555699486, + "2024-09-28T13": 0.40081279032796835, + "2024-09-25T08": 0.3817357841649728, + "2024-09-30T03": 0.38889500169471863, + "2024-10-01T10": 0.38393856, + "2024-09-25T13": 0.3817464074250977, + "2024-10-01T01": 0.3784581049571838, + "2024-09-26T17": 0.4003233858301824, + "2024-09-25T15": 0.3861613973335567, + "2024-09-29T22": 0.3988911805260652, + "2024-09-29T01": 0.39724436711863953, + "2024-09-30T06": 0.39092649132663715, + "2024-09-27T12": 0.4035773846673324, + "2024-09-25T23": 0.3802353986444788, + "2024-09-30T05": 0.3897559481502879, + "2024-09-28T23": 0.39904389000000007, + "2024-09-30T19": 0.379496804756063, + "2024-09-25T00": 0.3891335183321586, + "2024-10-01T12": 0.384550002, + "2024-09-29T10": 0.39503555, + "2024-09-24T22": 0.3899578321917539, + "2024-09-26T08": 0.3969146531489306, + "2024-09-29T20": 0.40186428799999996, + "2024-09-25T12": 0.38176958718693604, + "2024-09-25T05": 0.38627600378712057, + "2024-09-27T09": 0.40536836017536704, + "2024-09-26T02": 0.38393447350999454, + "2024-09-28T05": 0.4008062884333393, + "2024-09-29T03": 0.39940798799999994, + "2024-09-26T23": 0.4005364096858843, + "2024-09-29T16": 0.4012215871112572, + "2024-09-26T21": 0.39783579869714847, + "2024-09-26T16": 0.4016796214384414, + "2024-09-28T03": 0.40424850399999995, + "2024-09-29T21": 0.40132505791636647, + "2024-09-30T09": 0.38697774173039134, + "2024-09-24T16": 0.37685478584861254, + "2024-09-30T07": 0.3907727051681479, + "2024-09-28T17": 0.40114122662548557, + "2024-09-28T02": 0.4044485279999999, + "2024-09-28T15": 0.4024409636215218, + "2024-09-29T17": 0.4026426549694715, + "2024-09-25T17": 0.38279855888758485, + "2024-09-25T16": 0.385330844724894, + "2024-10-01T04": 0.38185084643230666, + "2024-10-01T07": 0.3844851210236593, + "2024-09-30T23": 0.3740618464245814, + "2024-09-29T13": 0.395255328, + "2024-09-26T22": 0.40177511535126775, + "2024-10-01T11": 0.385042235, + "2024-09-30T16": 0.3811110858738597, + "2024-09-28T01": 0.402848336, + "2024-09-27T02": 0.4055254560877268, + "2024-09-30T20": 0.38023857170786224, + "2024-09-28T06": 0.3980756642695815, + "2024-09-27T08": 0.4075765949974901, + "2024-10-01T06": 0.38289182710531416, + "2024-09-27T03": 0.40822500660902455, + "2024-09-25T06": 0.3831408318749378, + "2024-10-01T02": 0.376815451614039, + "2024-09-27T17": 0.4037685701804376, + "2024-09-30T22": 0.3789108572643788, + "2024-09-29T05": 0.398711961, + "2024-09-28T20": 0.40114011, + "2024-09-30T13": 0.3851765130634564, + "2024-09-26T18": 0.399595221150469, + "2024-09-25T10": 0.3824163105343323, + "2024-09-25T02": 0.3907798973115187, + "2024-09-29T02": 0.39950799, + "2024-09-28T08": 0.3960515700130137, + "2024-09-30T17": 0.38106318836539566, + "2024-09-30T02": 0.38943619638148164, + "2024-09-28T09": 0.3956486519633478, + "2024-09-25T03": 0.3913263700793973, + "2024-09-29T15": 0.3991817521064998, + "2024-09-29T06": 0.395315812, + "2024-09-24T18": 0.38257055739008206, + "2024-09-26T07": 0.3944729270303254, + "2024-09-26T15": 0.3996785611689732, + "2024-09-27T04": 0.4086838189539162, + "2024-09-27T11": 0.40171599790796947, + "2024-09-26T20": 0.39697660865190904, + "2024-09-30T12": 0.3847724645620576, + "2024-09-27T10": 0.40183209186640867, + "2024-09-26T12": 0.39620276213610556, + "2024-09-24T23": 0.38724944380917864, + "2024-09-30T00": 0.39356964498791197, + "2024-09-25T14": 0.3856591063077409, + "2024-09-26T14": 0.3978614669332146, + "2024-09-27T01": 0.4044337945554046, + "2024-09-28T04": 0.4036732153196236, + "2024-09-29T08": 0.3952947945122945, + "2024-09-26T01": 0.3800209116450111, + "2024-09-27T19": 0.4019746828967308, + "2024-09-25T01": 0.3904602763242831, + "2024-09-26T00": 0.3812779016045407, + "2024-09-29T18": 0.40356919379304196, + "2024-09-28T19": 0.40079231725067727, + "2024-09-28T22": 0.39944792799999995, + "2024-09-27T18": 0.4030458892760036, + "2024-09-24T21": 0.3869251285246649, + "2024-09-30T08": 0.38841385252605426, + "2024-09-25T11": 0.38152569375211554, + "2024-09-25T20": 0.383670358522771, + "2024-10-01T09": 0.3842083659489983, + "2024-10-01T03": 0.3805737616035613, + "2024-09-26T11": 0.395663244528513, + "2024-09-28T07": 0.3982835418883197, + "2024-09-27T22": 0.4028631089505848, + "2024-09-27T21": 0.40206783648847816, + "2024-09-26T03": 0.3854167207809812, + "2024-09-26T13": 0.39629902548920504, + "2024-09-30T18": 0.3796604764886612, + "2024-10-01T08": 0.3837565498192807, + "2024-09-25T19": 0.3837909922062491, + "2024-09-30T21": 0.3812194655296363, + "2024-09-28T14": 0.4029240972255986, + "2024-09-27T20": 0.4013193805726815, + "2024-09-26T06": 0.39147843855176767, + "2024-09-26T10": 0.39458591819149647, + "2024-09-29T04": 0.39921197599999997, + "2024-09-28T16": 0.4024217540129785, + "2024-10-01T00": 0.37366624423994604, + "2024-09-24T20": 0.3860405073718437, + "2024-09-26T19": 0.3999848034315572, + "2024-09-24T15": 0.3723330180158332, + "2024-09-27T06": 0.41306836095523247, + "2024-09-29T14": 0.397867626, + "2024-09-29T07": 0.394527615, + "2024-09-28T00": 0.4017547826070673, + "2024-09-30T01": 0.3919086484016392, + "2024-09-29T09": 0.39683174400000004, + "2024-09-25T09": 0.38183254692974017, + "2024-09-30T11": 0.3844230098466676, + "2024-09-25T07": 0.38127350369113444, + "2024-09-24T19": 0.38353111726632666, + "2024-09-29T19": 0.40316635653338007, + "2024-09-30T15": 0.38151105838030713, + "2024-09-28T21": 0.398843868, + "2024-10-01T05": 0.38163568360929434, + "2024-10-01T14": 0.3763161857494883, + "2024-09-27T00": 0.4028540805144008, + "latest": 0.359152, + "2024-10-01T15": 0.369032468619328 + }, + "USD celo": { + "2024-09-12": 0.43861625320726755, + "2024-09-15": 0.4418493881093436, + "2024-09-22": 0.5119466947552443, + "2024-09-05": 0.4224262195117988, + "2024-09-10": 0.44532673875514217, + "2024-09-11": 0.433530008450241, + "2024-09-20": 0.5198789932347739, + "2024-09-26": 0.6447226190593982, + "2024-09-16": 0.43627262797454247, + "2024-09-08": 0.41096665649104475, + "2024-09-24": 0.5348010321146474, + "2024-09-29": 0.6652357369348687, + "2024-09-17": 0.451672952810409, + "2024-09-14": 0.44241759911537415, + "2024-09-03": 0.43876066822878235, + "2024-09-25": 0.657150337951769, + "2024-09-18": 0.4524808446212791, + "2024-09-07": 0.4081401443763904, + "2024-09-06": 0.4105216050714573, + "2024-09-19": 0.4935422032545033, + "2024-09-30": 0.6469904134323683, + "2024-09-01": 0.43994220683214924, + "2024-08-31": 0.46297408154685066, + "2024-09-02": 0.43892289693859454, + "2024-09-23": 0.5299428906819623, + "2024-09-13": 0.4415343908152609, + "2024-10-01": 0.645668983393823, + "2024-09-04": 0.42114354986091623, + "2024-09-28": 0.6451626890703195, + "2024-09-21": 0.5113823024434239, + "2024-09-09": 0.4288973428294123, + "2024-09-27": 0.6325089415063362, + "2024-09-27T07": 0.6334794237286975, + "2024-09-27T05": 0.6352350370633805, + "2024-09-30T14": 0.6398084928494763, + "2024-09-27T14": 0.6230016119659977, + "2024-09-27T23": 0.6506028069501703, + "2024-09-28T11": 0.6375735607140581, + "2024-09-29T00": 0.6681069224753674, + "2024-09-28T18": 0.652090785526853, + "2024-09-29T23": 0.6688761131248072, + "2024-10-01T13": 0.7285247919795869, + "2024-09-30T10": 0.6480260074808093, + "2024-09-25T22": 0.6685261946619013, + "2024-09-29T11": 0.6591209736807214, + "2024-09-28T12": 0.6304167754266056, + "2024-09-26T09": 0.6595946832905301, + "2024-09-28T10": 0.6431140701099123, + "2024-09-27T16": 0.6359205511378986, + "2024-09-24T17": 0.5322317667459824, + "2024-09-27T15": 0.6279262221713158, + "2024-09-29T12": 0.651793244578168, + "2024-09-25T04": 0.5555445359766552, + "2024-09-25T21": 0.6723277248851558, + "2024-09-25T18": 0.6771963044882273, + "2024-09-26T04": 0.6448890991945219, + "2024-09-26T05": 0.6370284051845111, + "2024-09-30T04": 0.6478542813314845, + "2024-09-27T13": 0.6236497109654174, + "2024-09-28T13": 0.6377824799321098, + "2024-09-25T08": 0.6137405923500845, + "2024-09-30T03": 0.6504678747125938, + "2024-10-01T10": 0.7217261555772481, + "2024-09-25T13": 0.6718356058332681, + "2024-10-01T01": 0.6449780284563704, + "2024-09-26T17": 0.6413444285707139, + "2024-09-25T15": 0.6626244156727722, + "2024-09-29T22": 0.6767941663563468, + "2024-09-29T01": 0.6550015662732218, + "2024-09-30T06": 0.64653343379695, + "2024-09-27T12": 0.6198883672330375, + "2024-09-25T23": 0.6695575689346952, + "2024-09-30T05": 0.6448350435339528, + "2024-09-28T23": 0.6594375268596196, + "2024-09-30T19": 0.6357708857468439, + "2024-09-25T00": 0.5455371720460155, + "2024-10-01T12": 0.7293163833647279, + "2024-09-29T10": 0.6586471578632869, + "2024-09-24T22": 0.5426032926459334, + "2024-09-26T08": 0.6636243819950997, + "2024-09-29T20": 0.6753635171677262, + "2024-09-25T12": 0.6622953061499351, + "2024-09-25T05": 0.5465315510009346, + "2024-09-27T09": 0.6377099921520089, + "2024-09-26T02": 0.6352631742977086, + "2024-09-28T05": 0.6451926538359999, + "2024-09-29T03": 0.6621859869627453, + "2024-09-26T23": 0.6351002503354302, + "2024-09-29T16": 0.7012949900882173, + "2024-09-26T21": 0.627762656023335, + "2024-09-26T16": 0.6385382148621584, + "2024-09-28T03": 0.6461249191726972, + "2024-09-29T21": 0.672315511258278, + "2024-09-30T09": 0.6551047283075473, + "2024-09-24T16": 0.5319519862421147, + "2024-09-30T07": 0.6453894023272975, + "2024-09-28T17": 0.6446964858555074, + "2024-09-28T02": 0.6435661519315129, + "2024-09-28T15": 0.6378491232815441, + "2024-09-29T17": 0.6857483728148892, + "2024-09-25T17": 0.668234229571772, + "2024-09-25T16": 0.6522762475077623, + "2024-10-01T04": 0.6549979342010043, + "2024-10-01T07": 0.7227632533825893, + "2024-09-30T23": 0.6371809082394903, + "2024-09-29T13": 0.6577699385787033, + "2024-09-26T22": 0.6336778325877691, + "2024-10-01T11": 0.7308584773827141, + "2024-09-30T16": 0.6375137106365532, + "2024-09-28T01": 0.6466348778962355, + "2024-09-27T02": 0.6304752449064251, + "2024-09-30T20": 0.6377844882263078, + "2024-09-28T06": 0.6415587082952507, + "2024-09-27T08": 0.6314604578262829, + "2024-10-01T06": 0.6917105699923395, + "2024-09-27T03": 0.6322903781456676, + "2024-09-25T06": 0.6199589188837084, + "2024-10-01T02": 0.6488800962036971, + "2024-09-27T17": 0.6366268740716279, + "2024-09-30T22": 0.6408790853204681, + "2024-09-29T05": 0.6589056182636757, + "2024-09-28T20": 0.6663228731717864, + "2024-09-30T13": 0.6539048076892664, + "2024-09-26T18": 0.6401253312896716, + "2024-09-25T10": 0.6322668264663321, + "2024-09-25T02": 0.5528490072933976, + "2024-09-29T02": 0.6509335036920859, + "2024-09-28T08": 0.6364751662378053, + "2024-09-30T17": 0.634693533979888, + "2024-09-30T02": 0.6539078832247736, + "2024-09-28T09": 0.6353161623847869, + "2024-09-25T03": 0.5541534956478523, + "2024-09-29T15": 0.6764756480078243, + "2024-09-29T06": 0.658142917705584, + "2024-09-24T18": 0.540927683705162, + "2024-09-26T07": 0.6635118741986172, + "2024-09-26T15": 0.6403813859423488, + "2024-09-27T04": 0.633864754869338, + "2024-09-27T11": 0.6185337849390616, + "2024-09-26T20": 0.6409029431803964, + "2024-09-30T12": 0.6452795014502859, + "2024-09-27T10": 0.6314949483546776, + "2024-09-26T12": 0.6488251979283396, + "2024-09-24T23": 0.545366617020517, + "2024-09-30T00": 0.6643756146310531, + "2024-09-25T14": 0.6536662090164032, + "2024-09-26T14": 0.6447109586479512, + "2024-09-27T01": 0.6299518860708294, + "2024-09-28T04": 0.6464993260849502, + "2024-09-29T08": 0.637531929850745, + "2024-09-26T01": 0.6393588557441561, + "2024-09-27T19": 0.6418876304037744, + "2024-09-25T01": 0.546395890244737, + "2024-09-26T00": 0.6593014742206392, + "2024-09-29T18": 0.6815789468894072, + "2024-09-28T19": 0.6609798998734256, + "2024-09-28T22": 0.6638804193313295, + "2024-09-27T18": 0.6358756581397146, + "2024-09-24T21": 0.5442405305919514, + "2024-09-30T08": 0.6620176073811219, + "2024-09-25T11": 0.6413139863308276, + "2024-09-25T20": 0.6716891009154309, + "2024-10-01T09": 0.7288805926343785, + "2024-10-01T03": 0.6463232244596014, + "2024-09-26T11": 0.6536441809424424, + "2024-09-28T07": 0.6478468549717318, + "2024-09-27T22": 0.6473622627659921, + "2024-09-27T21": 0.6522045233727101, + "2024-09-26T03": 0.6467960851119737, + "2024-09-26T13": 0.647565221758322, + "2024-09-30T18": 0.6378504833565495, + "2024-10-01T08": 0.7246570182118292, + "2024-09-25T19": 0.6697378185636101, + "2024-09-30T21": 0.6443839899409642, + "2024-09-28T14": 0.6334359203390437, + "2024-09-27T20": 0.6435175727428644, + "2024-09-26T06": 0.6427742962163925, + "2024-09-26T10": 0.6535802886579827, + "2024-09-29T04": 0.666181917310008, + "2024-09-28T16": 0.6451204549277836, + "2024-10-01T00": 0.6444228196320466, + "2024-09-24T20": 0.5403147199529008, + "2024-09-26T19": 0.6456243214085179, + "2024-09-24T15": 0.5277823261940623, + "2024-09-27T06": 0.6397509569897302, + "2024-09-29T14": 0.6743577069470221, + "2024-09-29T07": 0.6462964547004559, + "2024-09-28T00": 0.648499433137975, + "2024-09-30T01": 0.6745052680185094, + "2024-09-29T09": 0.6516348712756347, + "2024-09-25T09": 0.6295020493273019, + "2024-09-30T11": 0.6512611488570543, + "2024-09-25T07": 0.6115632075496108, + "2024-09-24T19": 0.539527351831855, + "2024-09-29T19": 0.6720002757986432, + "2024-09-30T15": 0.6356916659693005, + "2024-09-28T21": 0.6679159668275184, + "2024-10-01T05": 0.6741339632547121, + "2024-10-01T14": 0.7047215825866913, + "2024-09-27T00": 0.6363711965182474, + "latest": 0.674291, + "2024-10-01T15": 0.70448859 + }, + "USD cosmos": { + "2024-09-12": 4.103510391633179, + "2024-09-15": 4.225346601786964, + "2024-09-22": 4.63867144850478, + "2024-09-05": 3.98616604634973, + "2024-09-10": 4.116264451485217, + "2024-09-11": 4.1117834161303835, + "2024-09-20": 4.535677955835925, + "2024-09-26": 4.945968140613872, + "2024-09-16": 3.9826684189570227, + "2024-09-08": 3.702068296669402, + "2024-09-24": 4.606890143927472, + "2024-09-29": 5.034877727097609, + "2024-09-17": 4.0862214972710165, + "2024-09-14": 4.199293455070471, + "2024-09-03": 4.296445837118064, + "2024-09-25": 4.821471943099534, + "2024-09-18": 4.19961754373853, + "2024-09-07": 3.7101038323358555, + "2024-09-06": 3.864067718614368, + "2024-09-19": 4.481639801982145, + "2024-09-30": 4.87966942433585, + "2024-09-01": 4.4832334761999055, + "2024-08-31": 4.59025030441107, + "2024-09-02": 4.375753250918212, + "2024-09-23": 4.578353662015111, + "2024-09-13": 4.212579711384717, + "2024-10-01": 4.838626237414811, + "2024-09-04": 4.04320987661163, + "2024-09-28": 5.028689073579205, + "2024-09-21": 4.569461742018851, + "2024-09-09": 3.947713677475635, + "2024-09-27": 5.124576643340567, + "2024-09-27T07": 5.154690241033735, + "2024-09-27T05": 5.092732019295101, + "2024-09-30T14": 4.879150032171022, + "2024-09-27T14": 5.107871789204721, + "2024-09-27T23": 5.1552903199789695, + "2024-09-28T11": 5.063982379766805, + "2024-09-29T00": 5.011752193316657, + "2024-09-28T18": 5.032998855136254, + "2024-09-29T23": 5.028111599086256, + "2024-10-01T13": 4.878549069872251, + "2024-09-30T10": 4.873441335772965, + "2024-09-25T22": 4.807252994769319, + "2024-09-29T11": 5.006213787662629, + "2024-09-28T12": 5.041375424350945, + "2024-09-26T09": 4.873692507959528, + "2024-09-28T10": 5.006346723158828, + "2024-09-27T16": 5.154411377223299, + "2024-09-24T17": 4.64722643032937, + "2024-09-27T15": 5.156381847389104, + "2024-09-29T12": 5.041240722974995, + "2024-09-25T04": 4.934441987308863, + "2024-09-25T21": 4.846874977359539, + "2024-09-25T18": 4.789063087803293, + "2024-09-26T04": 4.834938990461967, + "2024-09-26T05": 4.824171689715012, + "2024-09-30T04": 4.918848983060217, + "2024-09-27T13": 5.120185674051419, + "2024-09-28T13": 5.008689483495371, + "2024-09-25T08": 4.82598192251867, + "2024-09-30T03": 4.940536762439492, + "2024-10-01T10": 4.8643995754953195, + "2024-09-25T13": 4.761797501409838, + "2024-10-01T01": 4.7671819485581395, + "2024-09-26T17": 5.0580496137198665, + "2024-09-25T15": 4.81775403581582, + "2024-09-29T22": 5.082336226949776, + "2024-09-29T01": 4.992762230743351, + "2024-09-30T06": 4.951911673162805, + "2024-09-27T12": 5.0957336462386795, + "2024-09-25T23": 4.781912225313226, + "2024-09-30T05": 4.8922681415412255, + "2024-09-28T23": 5.012501860492793, + "2024-09-30T19": 4.840850332158605, + "2024-09-25T00": 4.81362201464269, + "2024-10-01T12": 4.8740534905656085, + "2024-09-29T10": 5.0203265630603005, + "2024-09-24T22": 4.826645885301348, + "2024-09-26T08": 4.896819399777402, + "2024-09-29T20": 5.102540214389699, + "2024-09-25T12": 4.802833614623601, + "2024-09-25T05": 4.900420386180768, + "2024-09-27T09": 5.165372650870172, + "2024-09-26T02": 4.767563281002585, + "2024-09-28T05": 5.113952653323657, + "2024-09-29T03": 5.040758216940839, + "2024-09-26T23": 5.011547204708828, + "2024-09-29T16": 5.106613114688093, + "2024-09-26T21": 4.960238804312516, + "2024-09-26T16": 5.057007778789613, + "2024-09-28T03": 5.156565822760225, + "2024-09-29T21": 5.075479907248684, + "2024-09-30T09": 4.976910659126263, + "2024-09-24T16": 4.633070780475752, + "2024-09-30T07": 4.9471826399324215, + "2024-09-28T17": 5.013422828964399, + "2024-09-28T02": 5.121767587243567, + "2024-09-28T15": 5.03972601402589, + "2024-09-29T17": 5.091275311041741, + "2024-09-25T17": 4.796666138558895, + "2024-09-25T16": 4.799520672420787, + "2024-10-01T04": 4.842900078922347, + "2024-10-01T07": 4.883610648467603, + "2024-09-30T23": 4.750985128073323, + "2024-09-29T13": 4.990421656335159, + "2024-09-26T22": 4.998278932244071, + "2024-10-01T11": 4.885440982736115, + "2024-09-30T16": 4.811645558242281, + "2024-09-28T01": 5.130532481312892, + "2024-09-27T02": 5.03288194239319, + "2024-09-30T20": 4.839889968208585, + "2024-09-28T06": 5.05930831160314, + "2024-09-27T08": 5.171599521397315, + "2024-10-01T06": 4.844989663946119, + "2024-09-27T03": 5.032469859656925, + "2024-09-25T06": 4.83868746407861, + "2024-10-01T02": 4.769704036550081, + "2024-09-27T17": 5.17792624002635, + "2024-09-30T22": 4.815751707015835, + "2024-09-29T05": 5.043710780131521, + "2024-09-28T20": 5.009586648453581, + "2024-09-30T13": 4.898254249035711, + "2024-09-26T18": 5.007980164342835, + "2024-09-25T10": 4.811444774748852, + "2024-09-25T02": 4.919805720331393, + "2024-09-29T02": 5.017061110351554, + "2024-09-28T08": 4.9952943712897, + "2024-09-30T17": 4.799055615322359, + "2024-09-30T02": 4.959005686146801, + "2024-09-28T09": 4.984874148601448, + "2024-09-25T03": 4.927074033404457, + "2024-09-29T15": 5.0713258071782255, + "2024-09-29T06": 5.025835121086788, + "2024-09-24T18": 4.698390808096748, + "2024-09-26T07": 4.8686749551419, + "2024-09-26T15": 4.968119713097081, + "2024-09-27T04": 5.081501940767724, + "2024-09-27T11": 5.086344856544902, + "2024-09-26T20": 4.989709962098588, + "2024-09-30T12": 4.894575739735507, + "2024-09-27T10": 5.1431492946879285, + "2024-09-26T12": 4.939819035631079, + "2024-09-24T23": 4.82130302939256, + "2024-09-30T00": 5.027694940493386, + "2024-09-25T14": 4.784445514036457, + "2024-09-26T14": 4.960666264588739, + "2024-09-27T01": 5.032789996851313, + "2024-09-28T04": 5.1314244483244895, + "2024-09-29T08": 4.972753403415407, + "2024-09-26T01": 4.72757541571435, + "2024-09-27T19": 5.140073152637329, + "2024-09-25T01": 4.850566545828386, + "2024-09-26T00": 4.784588648902583, + "2024-09-29T18": 5.08363068909872, + "2024-09-28T19": 5.01895881633638, + "2024-09-28T22": 4.980669292305783, + "2024-09-27T18": 5.125349771415396, + "2024-09-24T21": 4.771955829370197, + "2024-09-30T08": 4.992354096862272, + "2024-09-25T11": 4.80407274497955, + "2024-09-25T20": 4.827359392252787, + "2024-10-01T09": 4.853677891103861, + "2024-10-01T03": 4.786329405248474, + "2024-09-26T11": 4.942887287599752, + "2024-09-28T07": 5.037269886089556, + "2024-09-27T22": 5.12525924670404, + "2024-09-27T21": 5.114699891394217, + "2024-09-26T03": 4.8002978445413635, + "2024-09-26T13": 4.968318869355643, + "2024-09-30T18": 4.822892843229229, + "2024-10-01T08": 4.866712829969807, + "2024-09-25T19": 4.831964615134146, + "2024-09-30T21": 4.856112315360828, + "2024-09-28T14": 5.006290266432305, + "2024-09-27T20": 5.122295624724559, + "2024-09-26T06": 4.852220795354819, + "2024-09-26T10": 4.883907550538896, + "2024-09-29T04": 5.051125337275133, + "2024-09-28T16": 5.046917263956751, + "2024-10-01T00": 4.728917888690265, + "2024-09-24T20": 4.776081661798538, + "2024-09-26T19": 5.02370514965602, + "2024-09-24T15": 4.630454542353065, + "2024-09-27T06": 5.137038227228535, + "2024-09-29T14": 5.035583176843202, + "2024-09-29T07": 5.022716019027621, + "2024-09-28T00": 5.150137249822639, + "2024-09-30T01": 5.02844029972606, + "2024-09-29T09": 4.975649054965699, + "2024-09-25T09": 4.821040586271275, + "2024-09-30T11": 4.865049966242842, + "2024-09-25T07": 4.824509443173308, + "2024-09-24T19": 4.723816646767323, + "2024-09-29T19": 5.080543142740392, + "2024-09-30T15": 4.847909385475219, + "2024-09-28T21": 4.998699716603675, + "2024-10-01T05": 4.872891720559586, + "2024-10-01T14": 4.7125858, + "2024-09-27T00": 5.0090361464856095, + "latest": 4.49, + "2024-10-01T15": 4.7125858, + "2023-10-23": 6.733946874845574, + "2024-02-23": 9.851772965681617, + "2024-04-05": 10.872125736366009, + "2023-12-19": 10.6846975974307, + "2024-05-17": 8.647700048301136, + "2023-12-02": 9.525082365681579, + "2024-06-11": 7.631657709607452, + "2024-04-26": 8.282553167972337, + "2024-01-08": 9.495965462794816, + "2023-10-31": 7.943333873978431, + "2023-10-01": 7.3217972823129225, + "2024-03-07": 13.835012401259707, + "2023-10-12": 6.5454254696082055, + "2024-04-22": 8.884219023888473, + "2024-06-24": 6.655374668497718, + "2023-12-05": 9.629582281123866, + "2024-02-19": 10.628366404465314, + "2024-07-31": 5.980391683603718, + "2024-08-11": 5.0490429595992286, + "2024-01-07": 9.777948760697697, + "2024-04-28": 8.362294470895774, + "2023-10-18": 6.3948674267924055, + "2023-10-07": 6.934428768757504, + "2024-06-28": 6.921262066693637, + "2024-05-19": 8.377027992145802, + "2024-05-12": 8.56337463789839, + "2024-08-24": 5.277268515443763, + "2024-03-09": 13.625722984188695, + "2024-08-02": 5.53744591908073, + "2024-04-29": 8.08901121121884, + "2024-04-25": 8.387321414103951, + "2024-06-12": 7.750880018726601, + "2024-05-30": 8.598608485549503, + "2024-06-05": 8.583786708812386, + "2024-08-21": 4.756679126208093, + "2024-03-22": 11.43188658187532, + "2023-11-18": 9.204535278852937, + "2024-07-30": 6.140420760140405, + "2023-12-07": 9.764619078609197, + "2024-06-30": 6.635924592760371, + "2024-06-20": 6.923588136486875, + "2024-07-08": 5.869515284454324, + "2024-07-07": 6.000062525763628, + "2024-03-26": 12.244401103660381, + "2024-05-14": 8.319182910197297, + "2024-06-16": 7.1667663075080315, + "2024-02-22": 9.881794487216292, + "2024-04-15": 8.279691614610153, + "2023-12-30": 10.8092633958349, + "2024-04-17": 8.11014339593089, + "2024-02-12": 9.762241825280334, + "2023-10-26": 7.152951387916232, + "2024-01-03": 10.18553178313707, + "2024-05-07": 9.229999044670713, + "2024-01-22": 9.36652092237671, + "2024-08-16": 4.540906021161238, + "2024-07-13": 6.208455523781979, + "2023-12-24": 11.527451730134088, + "2023-10-03": 7.177846602787016, + "2024-05-26": 8.4027153095649, + "2024-04-30": 7.930230954797292, + "2024-08-22": 4.722176164911949, + "2024-07-09": 5.86866250489695, + "2024-01-16": 10.339975963303434, + "2023-10-17": 6.504592064095537, + "2024-04-24": 8.70748827403247, + "2024-03-18": 12.000924787163417, + "2024-02-17": 10.213687811282863, + "2023-12-27": 11.708296492831384, + "2024-08-01": 5.764166744846545, + "2024-02-24": 10.32698971892523, + "2024-01-06": 9.909073059469216, + "2024-03-20": 11.187067940729527, + "2023-11-21": 8.828841788244096, + "2023-12-25": 11.587990783797421, + "2024-03-01": 11.357518366636558, + "2023-10-02": 7.403535146522609, + "2024-03-27": 12.47000485040029, + "2024-05-13": 8.500030250990871, + "2024-05-06": 9.369877451640992, + "2024-06-19": 6.828591612666571, + "2024-02-09": 9.987812812711491, + "2023-10-06": 6.885257134649369, + "2023-10-13": 6.608394480793959, + "2024-02-05": 9.039392953185342, + "2023-12-10": 10.39209376935472, + "2023-11-23": 8.838363410538639, + "2024-01-13": 10.08221210224093, + "2024-03-28": 12.361357670567555, + "2023-10-09": 6.737408817030294, + "2024-01-09": 9.773297047353568, + "2024-05-10": 9.033838067813216, + "2024-08-06": 4.865281599019498, + "2023-11-05": 8.377167672100732, + "2024-08-25": 5.119473559706037, + "2024-04-18": 8.156810306204267, + "2023-10-22": 6.620958699546588, + "2024-08-27": 4.905084684321178, + "2023-11-01": 7.7190135591612785, + "2024-05-20": 8.331877116067144, + "2023-12-08": 10.03438094502124, + "2024-04-12": 10.402785711258016, + "2024-03-12": 13.388762277747821, + "2024-07-02": 6.881025220263112, + "2024-08-19": 4.574799996965734, + "2024-07-20": 6.522445989006485, + "2024-02-04": 9.049741870368232, + "2024-01-28": 9.553596466828896, + "2024-03-03": 12.001474152071902, + "2024-01-26": 9.551467727421956, + "2023-11-07": 8.458373537995351, + "2023-11-25": 9.057526739965748, + "2024-06-29": 6.766485934121564, + "2024-02-28": 11.38543682437042, + "2024-07-21": 6.444132020971223, + "2023-12-01": 9.39235285629245, + "2024-08-07": 4.920770867794718, + "2024-02-25": 10.298097735987, + "2023-12-21": 10.82481623455219, + "2024-08-30": 4.611312779053597, + "2024-06-01": 8.311732769132398, + "2024-03-06": 12.447220730778701, + "2024-07-15": 6.3152267640252315, + "2023-09-30": 7.22049732272155, + "2023-12-12": 11.183512641219105, + "2023-10-04": 6.969895652337666, + "2024-02-13": 10.06841733422792, + "2024-04-16": 8.059732135642387, + "2024-03-02": 11.946333503357996, + "2024-06-02": 8.328306263815048, + "2023-10-08": 6.915294153638585, + "2023-11-20": 9.37678748969673, + "2023-12-20": 10.679536244326387, + "2023-12-31": 10.856079362756597, + "2023-11-06": 8.558198262173772, + "2024-08-03": 5.2832014852967655, + "2024-05-29": 8.733300706902613, + "2024-03-17": 12.148218028275348, + "2024-07-23": 6.228597125848731, + "2024-07-10": 6.002992907518935, + "2024-07-01": 6.771969794179513, + "2024-04-01": 11.761325537629915, + "2024-05-21": 8.835231049213366, + "2024-01-19": 9.631259784560601, + "2023-11-11": 9.184796773896279, + "2024-07-18": 6.438789730012257, + "2023-11-19": 9.167075917979636, + "2024-08-08": 5.0154444558053655, + "2024-01-25": 9.217357189107593, + "2024-03-13": 13.65719470646821, + "2024-02-01": 9.111759969476593, + "2024-08-17": 4.613427796730458, + "2024-03-16": 12.42658930781612, + "2024-06-23": 6.778414568033956, + "2023-11-27": 9.314360604644307, + "2024-01-10": 9.784688042518706, + "2024-01-21": 9.78656036594125, + "2024-03-15": 12.522624020340341, + "2024-06-03": 8.412830150232768, + "2024-01-02": 11.25394806413284, + "2024-07-14": 6.1784897591244565, + "2023-10-25": 7.04958290269098, + "2024-01-01": 10.896003378873857, + "2024-07-29": 6.27414215135665, + "2024-07-27": 6.2868635768261845, + "2024-02-14": 10.210215733604615, + "2024-07-28": 6.297687478227745, + "2024-04-03": 11.009805987745235, + "2024-06-15": 7.137775894549102, + "2023-11-28": 9.128112635461465, + "2023-12-03": 9.504868398652528, + "2024-07-11": 6.074354615172453, + "2024-04-11": 10.764131058012614, + "2023-10-20": 6.386351514752846, + "2023-10-10": 6.861715098142682, + "2024-05-03": 8.73445392588574, + "2024-03-08": 13.426967090174182, + "2024-01-14": 10.204881060515417, + "2023-12-15": 11.228160846797573, + "2023-10-19": 6.233986010667521, + "2024-02-08": 9.57779089046804, + "2023-11-12": 9.427819849547328, + "2023-12-22": 11.306110362255133, + "2024-06-21": 6.848597541931366, + "2024-03-23": 11.486461336234436, + "2024-03-04": 12.466454840714334, + "2024-04-13": 8.900400668072706, + "2024-02-29": 11.699867874109694, + "2023-11-08": 8.595292534924855, + "2024-07-19": 6.336338516841229, + "2024-08-10": 5.151235999999999, + "2023-12-29": 11.310663096335741, + "2023-12-04": 9.61176272804933, + "2024-04-10": 10.739235510372582, + "2024-05-08": 9.034536405823468, + "2024-08-04": 5.066057676496645, + "2024-04-21": 8.660134083383804, + "2023-10-11": 6.655839292445894, + "2024-05-05": 8.881291835499672, + "2024-03-21": 11.739552749046284, + "2024-05-23": 8.4161012666204, + "2024-04-08": 11.317386949948654, + "2024-05-18": 8.668574835327545, + "2024-06-10": 7.842261034645205, + "2023-10-05": 6.920453914776588, + "2023-10-16": 6.6288421813801754, + "2024-05-22": 8.648706446446296, + "2024-02-10": 10.02298035227111, + "2024-04-07": 11.142953238047857, + "2024-02-20": 10.44276032626062, + "2023-11-17": 9.544113976600945, + "2023-12-11": 9.924152169427245, + "2023-11-26": 9.7013866091749, + "2023-10-27": 7.044214287944622, + "2024-01-27": 9.559727739081849, + "2024-03-30": 12.635134095007174, + "2023-11-22": 8.649424584278577, + "2024-06-04": 8.381538200160609, + "2023-11-16": 9.841161092478748, + "2024-02-02": 9.168052079920892, + "2024-06-26": 6.838040518147024, + "2024-01-18": 9.975180643765391, + "2024-02-15": 10.268896547412242, + "2024-08-09": 5.063033529211306, + "2023-10-28": 7.163193913346451, + "2024-03-24": 11.460325257886966, + "2024-07-17": 6.6359892328275, + "2024-04-27": 8.256757631657345, + "2023-12-06": 9.907618281235559, + "2024-01-30": 9.616620135104952, + "2023-11-14": 9.19162452666052, + "2024-07-22": 6.377054100757235, + "2024-06-06": 8.637433937093284, + "2024-07-04": 6.188513555433249, + "2024-08-28": 4.59551413529536, + "2024-05-15": 8.238011508837547, + "2023-11-10": 9.212053669249459, + "2024-01-23": 9.0346216177748, + "2024-01-31": 9.22487082938887, + "2024-05-11": 8.607137679622543, + "2024-01-11": 10.598775280957987, + "2024-02-18": 10.39731794147546, + "2024-07-12": 5.980065162227088, + "2024-03-11": 13.556624823478396, + "2023-10-30": 7.509774593049595, + "2023-12-17": 11.44140014966896, + "2024-02-26": 10.71170627275965, + "2024-06-17": 7.072260026331346, + "2024-01-05": 10.16063438044642, + "2024-06-14": 7.2920394914873405, + "2024-06-13": 7.598778551942556, + "2024-03-14": 13.686110606396252, + "2024-02-21": 9.943979137879197, + "2023-12-13": 11.153283447872415, + "2024-02-27": 11.199572720521099, + "2024-08-29": 4.633180886975363, + "2024-03-31": 12.293004650538524, + "2023-12-09": 10.74207242187459, + "2024-04-02": 11.051394350095403, + "2024-02-06": 9.126923558120167, + "2024-05-31": 8.403602719491968, + "2024-04-09": 11.036697145232838, + "2024-05-25": 8.476984674756373, + "2023-11-04": 7.861660124708586, + "2024-04-20": 8.32870223006027, + "2024-01-15": 10.137286250470055, + "2023-12-28": 11.703457894307807, + "2024-06-09": 7.835242345456857, + "2024-02-07": 9.341745227437846, + "2024-03-19": 11.16698377176898, + "2024-03-10": 13.32493474559137, + "2024-05-02": 8.700210436048103, + "2024-07-24": 6.223129952176763, + "2024-01-12": 10.552956231035626, + "2024-04-19": 8.246086249498061, + "2023-11-29": 9.220788268169555, + "2023-10-15": 6.577350000023673, + "2024-05-28": 8.620116535601895, + "2024-01-24": 9.246725391806747, + "2024-02-11": 10.101545120176096, + "2024-06-08": 7.923908501112131, + "2023-11-30": 9.286047714361551, + "2024-05-24": 8.395197633404328, + "2023-11-15": 9.526147910742205, + "2023-12-16": 11.424569469800012, + "2024-08-26": 5.011200814779105, + "2024-04-04": 11.061908531211804, + "2024-08-23": 4.8561020629311304, + "2023-11-03": 7.681404544107326, + "2024-07-26": 6.12076902008204, + "2024-01-20": 9.675604817282059, + "2024-08-05": 4.4662529519793255, + "2024-08-13": 4.984894912633569, + "2024-03-29": 12.364037232977008, + "2024-06-25": 6.962375568172373, + "2024-08-18": 4.621013594698737, + "2023-10-21": 6.490596541344455, + "2024-01-04": 10.06959346734126, + "2024-08-20": 4.739453793469878, + "2023-11-13": 9.781838287138573, + "2023-10-24": 7.115702658524846, + "2023-11-24": 8.915789400635672, + "2024-07-25": 5.852348855779187, + "2024-07-16": 6.5212687317753035, + "2024-05-16": 8.442908851537338, + "2024-01-29": 9.562546838333711, + "2024-07-03": 6.52653667632072, + "2024-05-04": 8.741746355387884, + "2024-05-27": 8.565980176716314, + "2023-11-02": 7.839102155406684, + "2023-12-18": 10.671412232123085, + "2024-07-05": 5.528629527282242, + "2024-03-25": 11.865781952970368, + "2023-10-29": 7.219223560797927, + "2024-06-18": 6.51070536961074, + "2024-05-01": 8.376816444936466, + "2024-02-16": 10.305986494442935, + "2024-06-22": 6.75379592010588, + "2024-08-12": 5.0351966411264515, + "2024-07-06": 5.849371073304179, + "2024-03-05": 12.511500843561413, + "2024-04-06": 11.017839967615366, + "2023-12-23": 11.20772619721851, + "2023-12-14": 11.465750172594602, + "2024-02-03": 9.163867176672966, + "2024-06-27": 6.849222756384331, + "2024-08-14": 4.888920865149528, + "2024-06-07": 8.567202561071031, + "2024-04-14": 8.203230249649986, + "2023-12-26": 12.02899903467562, + "2023-11-09": 8.794164487109128, + "2023-10-14": 6.611220409324148, + "2024-05-09": 9.04888345246908, + "2024-01-17": 10.137877105992615, + "2024-08-15": 4.678671179130535, + "2024-04-23": 8.774710361386234 + }, + "USD cronos": { + "2024-09-12": 0.07835175151810252, + "2024-09-15": 0.08240094847621954, + "2024-09-22": 0.08798190043254124, + "2024-09-05": 0.07870919952325219, + "2024-09-10": 0.07955043622428322, + "2024-09-11": 0.07942010725185226, + "2024-09-20": 0.08271336472521913, + "2024-09-26": 0.08487102329265003, + "2024-09-16": 0.08032453496579584, + "2024-09-08": 0.07602463910429254, + "2024-09-24": 0.08597449273336365, + "2024-09-29": 0.08634053264006335, + "2024-09-17": 0.07913741054340939, + "2024-09-14": 0.08374367024095633, + "2024-09-03": 0.08085972471152938, + "2024-09-25": 0.0864778751982594, + "2024-09-18": 0.07960487760706501, + "2024-09-07": 0.07490661858069156, + "2024-09-06": 0.07763841890915296, + "2024-09-19": 0.08093320494587723, + "2024-09-30": 0.08618762422124947, + "2024-09-01": 0.0813191748273855, + "2024-08-31": 0.08141037270753564, + "2024-09-02": 0.0786563366302302, + "2024-09-23": 0.08436309534684396, + "2024-09-13": 0.07970569151140339, + "2024-10-01": 0.08345091830863292, + "2024-09-04": 0.07867787259409423, + "2024-09-28": 0.08788272115721493, + "2024-09-21": 0.08458343218308206, + "2024-09-09": 0.07841039302025567, + "2024-09-27": 0.08721594753517825, + "2024-09-27T07": 0.08697066762175414, + "2024-09-27T05": 0.08722450219180136, + "2024-09-30T14": 0.08483699526256246, + "2024-09-27T14": 0.08710198815361807, + "2024-09-27T23": 0.08775352947530587, + "2024-09-28T11": 0.086808577932957, + "2024-09-29T00": 0.08642496239540708, + "2024-09-28T18": 0.08612766275074211, + "2024-09-29T23": 0.08631881779112016, + "2024-10-01T13": 0.08545287457030372, + "2024-09-30T10": 0.08442418156129501, + "2024-09-25T22": 0.08523647745914179, + "2024-09-29T11": 0.08540514251333858, + "2024-09-28T12": 0.08647438227982021, + "2024-09-26T09": 0.08586399505131168, + "2024-09-28T10": 0.08636704313902142, + "2024-09-27T16": 0.08799019524495096, + "2024-09-24T17": 0.08425371259182943, + "2024-09-27T15": 0.08810581884470607, + "2024-09-29T12": 0.08619687138111985, + "2024-09-25T04": 0.08662590518915186, + "2024-09-25T21": 0.0852391172819305, + "2024-09-25T18": 0.0848613701533298, + "2024-09-26T04": 0.08549854468310449, + "2024-09-26T05": 0.08526794804690731, + "2024-09-30T04": 0.0853004724684086, + "2024-09-27T13": 0.08718109995314366, + "2024-09-28T13": 0.08627535950364298, + "2024-09-25T08": 0.08596658905626936, + "2024-09-30T03": 0.08544317074605519, + "2024-10-01T10": 0.08539977997258726, + "2024-09-25T13": 0.08597307851567015, + "2024-10-01T01": 0.0840896044530506, + "2024-09-26T17": 0.0870934517899182, + "2024-09-25T15": 0.08584280188838923, + "2024-09-29T22": 0.08657249078498848, + "2024-09-29T01": 0.0860846782776721, + "2024-09-30T06": 0.08523350474514858, + "2024-09-27T12": 0.08695767838341681, + "2024-09-25T23": 0.08476033824501987, + "2024-09-30T05": 0.08505363920953761, + "2024-09-28T23": 0.08582525238365467, + "2024-09-30T19": 0.08414214255072813, + "2024-09-25T00": 0.08659508532462822, + "2024-10-01T12": 0.08536655809173091, + "2024-09-29T10": 0.08572819592260242, + "2024-09-24T22": 0.08526743939118592, + "2024-09-26T08": 0.08589077529605467, + "2024-09-29T20": 0.08689373733720389, + "2024-09-25T12": 0.0862720049965222, + "2024-09-25T05": 0.08619688893235536, + "2024-09-27T09": 0.08722174443401919, + "2024-09-26T02": 0.0848382023154216, + "2024-09-28T05": 0.08795486606234512, + "2024-09-29T03": 0.08632643969260809, + "2024-09-26T23": 0.0871157053936849, + "2024-09-29T16": 0.08595547411285737, + "2024-09-26T21": 0.08634992680966816, + "2024-09-26T16": 0.08704511432542361, + "2024-09-28T03": 0.08831514052994648, + "2024-09-29T21": 0.08668647996789262, + "2024-09-30T09": 0.08512357458930521, + "2024-09-24T16": 0.08407224640977698, + "2024-09-30T07": 0.08506061636357366, + "2024-09-28T17": 0.08610498168558353, + "2024-09-28T02": 0.08822522185734934, + "2024-09-28T15": 0.08702821742340493, + "2024-09-29T17": 0.08641130232057428, + "2024-09-25T17": 0.08537016443098477, + "2024-09-25T16": 0.08534823827216607, + "2024-10-01T04": 0.08444102267377296, + "2024-10-01T07": 0.08479491385908232, + "2024-09-30T23": 0.08427647971660492, + "2024-09-29T13": 0.08555293002031297, + "2024-09-26T22": 0.08682410929613277, + "2024-10-01T11": 0.0853686351429367, + "2024-09-30T16": 0.08444181400956291, + "2024-09-28T01": 0.08819209992631916, + "2024-09-27T02": 0.08682644994361695, + "2024-09-30T20": 0.08407675739451159, + "2024-09-28T06": 0.08745923815214429, + "2024-09-27T08": 0.08678255947410222, + "2024-10-01T06": 0.08464160465906247, + "2024-09-27T03": 0.08685223696086697, + "2024-09-25T06": 0.08643974949533181, + "2024-10-01T02": 0.08430114334552802, + "2024-09-27T17": 0.08829787663134395, + "2024-09-30T22": 0.08434037744215304, + "2024-09-29T05": 0.08612060945230947, + "2024-09-28T20": 0.08599629479708684, + "2024-09-30T13": 0.08472250849234594, + "2024-09-26T18": 0.0867537751658123, + "2024-09-25T10": 0.08597985639365714, + "2024-09-25T02": 0.08676554960693146, + "2024-09-29T02": 0.08616249421395016, + "2024-09-28T08": 0.08711260999682095, + "2024-09-30T17": 0.08426950582795127, + "2024-09-30T02": 0.08537332871348982, + "2024-09-28T09": 0.08646464624056939, + "2024-09-25T03": 0.0868915111024756, + "2024-09-29T15": 0.08577460655342421, + "2024-09-29T06": 0.08583958264874429, + "2024-09-24T18": 0.08459615761925125, + "2024-09-26T07": 0.08586073671355852, + "2024-09-26T15": 0.0864849460160521, + "2024-09-27T04": 0.08712919737986567, + "2024-09-27T11": 0.08696243966850284, + "2024-09-26T20": 0.08666775321714815, + "2024-09-30T12": 0.08458279153555479, + "2024-09-27T10": 0.08727050007656749, + "2024-09-26T12": 0.08635258752381103, + "2024-09-24T23": 0.08617756846091498, + "2024-09-30T00": 0.08618762422124947, + "2024-09-25T14": 0.08581891558570666, + "2024-09-26T14": 0.08647835459077668, + "2024-09-27T01": 0.08705129540711544, + "2024-09-28T04": 0.08807305917385622, + "2024-09-29T08": 0.08561081310981272, + "2024-09-26T01": 0.08430641724837648, + "2024-09-27T19": 0.08808067789752175, + "2024-09-25T01": 0.08667959156195816, + "2024-09-26T00": 0.08458308875905127, + "2024-09-29T18": 0.08645731295753036, + "2024-09-28T19": 0.08609149421461507, + "2024-09-28T22": 0.08592861181725976, + "2024-09-27T18": 0.0878030218742057, + "2024-09-24T21": 0.08561579362681584, + "2024-09-30T08": 0.08535842992333527, + "2024-09-25T11": 0.08631738243542773, + "2024-09-25T20": 0.08480374065935894, + "2024-10-01T09": 0.08507253452164337, + "2024-10-01T03": 0.08407798880002328, + "2024-09-26T11": 0.08625872806816712, + "2024-09-28T07": 0.08710216760458461, + "2024-09-27T22": 0.08745042636933598, + "2024-09-27T21": 0.0875343936510083, + "2024-09-26T03": 0.08526208907877696, + "2024-09-26T13": 0.08647644854997823, + "2024-09-30T18": 0.08454029629271655, + "2024-10-01T08": 0.08488013549741613, + "2024-09-25T19": 0.08498901502483952, + "2024-09-30T21": 0.08450751566950043, + "2024-09-28T14": 0.08657887779292171, + "2024-09-27T20": 0.0876380614383128, + "2024-09-26T06": 0.0856243520020252, + "2024-09-26T10": 0.08580384757492357, + "2024-09-29T04": 0.0862391778392759, + "2024-09-28T16": 0.0867875002198308, + "2024-10-01T00": 0.08345091830863292, + "2024-09-24T20": 0.08553184189033325, + "2024-09-26T19": 0.08706046991278378, + "2024-09-24T15": 0.0845008162467806, + "2024-09-27T06": 0.08721320692609671, + "2024-09-29T14": 0.0859961931247928, + "2024-09-29T07": 0.08577575599769503, + "2024-09-28T00": 0.08788272115721493, + "2024-09-30T01": 0.08606633022930281, + "2024-09-29T09": 0.08568976792228994, + "2024-09-25T09": 0.08616149337354376, + "2024-09-30T11": 0.08462333726421638, + "2024-09-25T07": 0.08560701192083806, + "2024-09-24T19": 0.08476525492326044, + "2024-09-29T19": 0.08691325507505927, + "2024-09-30T15": 0.0849501901361008, + "2024-09-28T21": 0.08603548487048503, + "2024-10-01T05": 0.08467883754043873, + "2024-10-01T14": 0.08380896885983789, + "2024-09-27T00": 0.08721594753517825, + "latest": 0.0809, + "2024-10-01T15": 0.08246301488224919 + }, + "USD crypto_org": { + "2024-09-12": 0.07835175151810252, + "2024-09-15": 0.08240094847621954, + "2024-09-22": 0.08798190043254124, + "2024-09-05": 0.07870919952325219, + "2024-09-10": 0.07955043622428322, + "2024-09-11": 0.07942010725185226, + "2024-09-20": 0.08271336472521913, + "2024-09-26": 0.08487102329265003, + "2024-09-16": 0.08032453496579584, + "2024-09-08": 0.07602463910429254, + "2024-09-24": 0.08597449273336365, + "2024-09-29": 0.08634053264006335, + "2024-09-17": 0.07913741054340939, + "2024-09-14": 0.08374367024095633, + "2024-09-03": 0.08085972471152938, + "2024-09-25": 0.0864778751982594, + "2024-09-18": 0.07960487760706501, + "2024-09-07": 0.07490661858069156, + "2024-09-06": 0.07763841890915296, + "2024-09-19": 0.08093320494587723, + "2024-09-30": 0.08618762422124947, + "2024-09-01": 0.0813191748273855, + "2024-08-31": 0.08141037270753564, + "2024-09-02": 0.0786563366302302, + "2024-09-23": 0.08436309534684396, + "2024-09-13": 0.07970569151140339, + "2024-10-01": 0.08345091830863292, + "2024-09-04": 0.07867787259409423, + "2024-09-28": 0.08788272115721493, + "2024-09-21": 0.08458343218308206, + "2024-09-09": 0.07841039302025567, + "2024-09-27": 0.08721594753517825, + "2024-09-27T07": 0.08697066762175414, + "2024-09-27T05": 0.08722450219180136, + "2024-09-30T14": 0.08483699526256246, + "2024-09-27T14": 0.08710198815361807, + "2024-09-27T23": 0.08775352947530587, + "2024-09-28T11": 0.086808577932957, + "2024-09-29T00": 0.08642496239540708, + "2024-09-28T18": 0.08612766275074211, + "2024-09-29T23": 0.08631881779112016, + "2024-10-01T13": 0.08545287457030372, + "2024-09-30T10": 0.08442418156129501, + "2024-09-25T22": 0.08523647745914179, + "2024-09-29T11": 0.08540514251333858, + "2024-09-28T12": 0.08647438227982021, + "2024-09-26T09": 0.08586399505131168, + "2024-09-28T10": 0.08636704313902142, + "2024-09-27T16": 0.08799019524495096, + "2024-09-24T17": 0.08425371259182943, + "2024-09-27T15": 0.08810581884470607, + "2024-09-29T12": 0.08619687138111985, + "2024-09-25T04": 0.08662590518915186, + "2024-09-25T21": 0.0852391172819305, + "2024-09-25T18": 0.0848613701533298, + "2024-09-26T04": 0.08549854468310449, + "2024-09-26T05": 0.08526794804690731, + "2024-09-30T04": 0.0853004724684086, + "2024-09-27T13": 0.08718109995314366, + "2024-09-28T13": 0.08627535950364298, + "2024-09-25T08": 0.08596658905626936, + "2024-09-30T03": 0.08544317074605519, + "2024-10-01T10": 0.08539977997258726, + "2024-09-25T13": 0.08597307851567015, + "2024-10-01T01": 0.0840896044530506, + "2024-09-26T17": 0.0870934517899182, + "2024-09-25T15": 0.08584280188838923, + "2024-09-29T22": 0.08657249078498848, + "2024-09-29T01": 0.0860846782776721, + "2024-09-30T06": 0.08523350474514858, + "2024-09-27T12": 0.08695767838341681, + "2024-09-25T23": 0.08476033824501987, + "2024-09-30T05": 0.08505363920953761, + "2024-09-28T23": 0.08582525238365467, + "2024-09-30T19": 0.08414214255072813, + "2024-09-25T00": 0.08659508532462822, + "2024-10-01T12": 0.08536655809173091, + "2024-09-29T10": 0.08572819592260242, + "2024-09-24T22": 0.08526743939118592, + "2024-09-26T08": 0.08589077529605467, + "2024-09-29T20": 0.08689373733720389, + "2024-09-25T12": 0.0862720049965222, + "2024-09-25T05": 0.08619688893235536, + "2024-09-27T09": 0.08722174443401919, + "2024-09-26T02": 0.0848382023154216, + "2024-09-28T05": 0.08795486606234512, + "2024-09-29T03": 0.08632643969260809, + "2024-09-26T23": 0.0871157053936849, + "2024-09-29T16": 0.08595547411285737, + "2024-09-26T21": 0.08634992680966816, + "2024-09-26T16": 0.08704511432542361, + "2024-09-28T03": 0.08831514052994648, + "2024-09-29T21": 0.08668647996789262, + "2024-09-30T09": 0.08512357458930521, + "2024-09-24T16": 0.08407224640977698, + "2024-09-30T07": 0.08506061636357366, + "2024-09-28T17": 0.08610498168558353, + "2024-09-28T02": 0.08822522185734934, + "2024-09-28T15": 0.08702821742340493, + "2024-09-29T17": 0.08641130232057428, + "2024-09-25T17": 0.08537016443098477, + "2024-09-25T16": 0.08534823827216607, + "2024-10-01T04": 0.08444102267377296, + "2024-10-01T07": 0.08479491385908232, + "2024-09-30T23": 0.08427647971660492, + "2024-09-29T13": 0.08555293002031297, + "2024-09-26T22": 0.08682410929613277, + "2024-10-01T11": 0.0853686351429367, + "2024-09-30T16": 0.08444181400956291, + "2024-09-28T01": 0.08819209992631916, + "2024-09-27T02": 0.08682644994361695, + "2024-09-30T20": 0.08407675739451159, + "2024-09-28T06": 0.08745923815214429, + "2024-09-27T08": 0.08678255947410222, + "2024-10-01T06": 0.08464160465906247, + "2024-09-27T03": 0.08685223696086697, + "2024-09-25T06": 0.08643974949533181, + "2024-10-01T02": 0.08430114334552802, + "2024-09-27T17": 0.08829787663134395, + "2024-09-30T22": 0.08434037744215304, + "2024-09-29T05": 0.08612060945230947, + "2024-09-28T20": 0.08599629479708684, + "2024-09-30T13": 0.08472250849234594, + "2024-09-26T18": 0.0867537751658123, + "2024-09-25T10": 0.08597985639365714, + "2024-09-25T02": 0.08676554960693146, + "2024-09-29T02": 0.08616249421395016, + "2024-09-28T08": 0.08711260999682095, + "2024-09-30T17": 0.08426950582795127, + "2024-09-30T02": 0.08537332871348982, + "2024-09-28T09": 0.08646464624056939, + "2024-09-25T03": 0.0868915111024756, + "2024-09-29T15": 0.08577460655342421, + "2024-09-29T06": 0.08583958264874429, + "2024-09-24T18": 0.08459615761925125, + "2024-09-26T07": 0.08586073671355852, + "2024-09-26T15": 0.0864849460160521, + "2024-09-27T04": 0.08712919737986567, + "2024-09-27T11": 0.08696243966850284, + "2024-09-26T20": 0.08666775321714815, + "2024-09-30T12": 0.08458279153555479, + "2024-09-27T10": 0.08727050007656749, + "2024-09-26T12": 0.08635258752381103, + "2024-09-24T23": 0.08617756846091498, + "2024-09-30T00": 0.08618762422124947, + "2024-09-25T14": 0.08581891558570666, + "2024-09-26T14": 0.08647835459077668, + "2024-09-27T01": 0.08705129540711544, + "2024-09-28T04": 0.08807305917385622, + "2024-09-29T08": 0.08561081310981272, + "2024-09-26T01": 0.08430641724837648, + "2024-09-27T19": 0.08808067789752175, + "2024-09-25T01": 0.08667959156195816, + "2024-09-26T00": 0.08458308875905127, + "2024-09-29T18": 0.08645731295753036, + "2024-09-28T19": 0.08609149421461507, + "2024-09-28T22": 0.08592861181725976, + "2024-09-27T18": 0.0878030218742057, + "2024-09-24T21": 0.08561579362681584, + "2024-09-30T08": 0.08535842992333527, + "2024-09-25T11": 0.08631738243542773, + "2024-09-25T20": 0.08480374065935894, + "2024-10-01T09": 0.08507253452164337, + "2024-10-01T03": 0.08407798880002328, + "2024-09-26T11": 0.08625872806816712, + "2024-09-28T07": 0.08710216760458461, + "2024-09-27T22": 0.08745042636933598, + "2024-09-27T21": 0.0875343936510083, + "2024-09-26T03": 0.08526208907877696, + "2024-09-26T13": 0.08647644854997823, + "2024-09-30T18": 0.08454029629271655, + "2024-10-01T08": 0.08488013549741613, + "2024-09-25T19": 0.08498901502483952, + "2024-09-30T21": 0.08450751566950043, + "2024-09-28T14": 0.08657887779292171, + "2024-09-27T20": 0.0876380614383128, + "2024-09-26T06": 0.0856243520020252, + "2024-09-26T10": 0.08580384757492357, + "2024-09-29T04": 0.0862391778392759, + "2024-09-28T16": 0.0867875002198308, + "2024-10-01T00": 0.08345091830863292, + "2024-09-24T20": 0.08553184189033325, + "2024-09-26T19": 0.08706046991278378, + "2024-09-24T15": 0.0845008162467806, + "2024-09-27T06": 0.08721320692609671, + "2024-09-29T14": 0.0859961931247928, + "2024-09-29T07": 0.08577575599769503, + "2024-09-28T00": 0.08788272115721493, + "2024-09-30T01": 0.08606633022930281, + "2024-09-29T09": 0.08568976792228994, + "2024-09-25T09": 0.08616149337354376, + "2024-09-30T11": 0.08462333726421638, + "2024-09-25T07": 0.08560701192083806, + "2024-09-24T19": 0.08476525492326044, + "2024-09-29T19": 0.08691325507505927, + "2024-09-30T15": 0.0849501901361008, + "2024-09-28T21": 0.08603548487048503, + "2024-10-01T05": 0.08467883754043873, + "2024-10-01T14": 0.0827, + "2024-09-27T00": 0.08721594753517825, + "latest": 0.0809, + "2024-10-01T15": 0.0827 + }, + "USD dash": { + "2024-09-12": 24.16827702312874, + "2024-09-15": 24.290439420996268, + "2024-09-22": 24.9790606908022, + "2024-09-05": 23.72162706436017, + "2024-09-10": 24.01306553150084, + "2024-09-11": 23.695676894460295, + "2024-09-20": 25.007151250688146, + "2024-09-26": 25.84028149769567, + "2024-09-16": 23.37151885023888, + "2024-09-08": 23.974316580946976, + "2024-09-24": 25.4627163861945, + "2024-09-29": 25.543068145131382, + "2024-09-17": 23.77436662618987, + "2024-09-14": 24.29826597671331, + "2024-09-03": 24.617248035835892, + "2024-09-25": 25.811509745880993, + "2024-09-18": 23.881945667231207, + "2024-09-07": 23.42042311606237, + "2024-09-06": 23.587117142531838, + "2024-09-19": 25.144103536373763, + "2024-09-30": 25.021268194309034, + "2024-09-01": 23.25218130314183, + "2024-08-31": 23.61050450429378, + "2024-09-02": 23.326892076080973, + "2024-09-23": 25.062688054357835, + "2024-09-13": 23.965735699010622, + "2024-10-01": 24.479406267378174, + "2024-09-04": 23.903966396285725, + "2024-09-28": 25.99350377503207, + "2024-09-21": 25.19369803256403, + "2024-09-09": 24.051354920087952, + "2024-09-27": 26.1909265926129, + "2024-09-27T07": 26.22182399248827, + "2024-09-27T05": 26.24881943016028, + "2024-09-30T14": 24.9752538, + "2024-09-27T14": 26.34440753431831, + "2024-09-27T23": 26.11001477343192, + "2024-09-28T11": 26.6115966, + "2024-09-29T00": 25.712313899999998, + "2024-09-28T18": 25.605376000000003, + "2024-09-29T23": 25.494619393845966, + "2024-10-01T13": 24.1373446, + "2024-09-30T10": 25.0084994, + "2024-09-25T22": 25.756233485956216, + "2024-09-29T11": 25.40254, + "2024-09-28T12": 26.432378699999997, + "2024-09-26T09": 25.906377409802246, + "2024-09-28T10": 26.403432, + "2024-09-27T16": 26.297139290867726, + "2024-09-24T17": 25.45808761317928, + "2024-09-27T15": 26.38307283609364, + "2024-09-29T12": 25.4430528, + "2024-09-25T04": 25.818709000000002, + "2024-09-25T21": 25.896114999999998, + "2024-09-25T18": 25.765103699999997, + "2024-09-26T04": 25.812812139957487, + "2024-09-26T05": 25.88461206251702, + "2024-09-30T04": 24.898754999999998, + "2024-09-27T13": 26.270833528288797, + "2024-09-28T13": 26.282365199999997, + "2024-09-25T08": 25.658241380859334, + "2024-09-30T03": 24.818510800000002, + "2024-10-01T10": 24.796032, + "2024-09-25T13": 25.6466655, + "2024-10-01T01": 24.5269938, + "2024-09-26T17": 26.02486773350052, + "2024-09-25T15": 25.978441200000002, + "2024-09-29T22": 25.5330636, + "2024-09-29T01": 25.5728127, + "2024-09-30T06": 25.240504799999997, + "2024-09-27T12": 26.275604411006864, + "2024-09-25T23": 25.5543768, + "2024-09-30T05": 25.1302513, + "2024-09-28T23": 25.6228182, + "2024-09-30T19": 24.730598799999996, + "2024-09-25T00": 25.8192254, + "2024-10-01T12": 24.6567942, + "2024-09-29T10": 25.332279699999997, + "2024-09-24T22": 25.918120889690478, + "2024-09-26T08": 26.038964053197738, + "2024-09-29T20": 25.684108799999997, + "2024-09-25T12": 25.827933599999998, + "2024-09-25T05": 25.7287135, + "2024-09-27T09": 26.184858104162657, + "2024-09-26T02": 25.601787087222153, + "2024-09-28T05": 26.1662784, + "2024-09-29T03": 25.578427932694975, + "2024-09-26T23": 25.902199808138928, + "2024-09-29T16": 25.672567, + "2024-09-26T21": 25.776909771737227, + "2024-09-26T16": 26.161561333172067, + "2024-09-28T03": 26.293154799999996, + "2024-09-29T21": 25.703855, + "2024-09-30T09": 25.230252300000004, + "2024-09-24T16": 25.405444490835972, + "2024-09-30T07": 25.280505599999998, + "2024-09-28T17": 25.6753907, + "2024-09-28T02": 26.353161999999998, + "2024-09-28T15": 26.0423436, + "2024-09-29T17": 25.7133423, + "2024-09-25T17": 25.695631, + "2024-09-25T16": 25.858707, + "2024-10-01T04": 24.7261456, + "2024-10-01T07": 24.817725643914105, + "2024-09-30T23": 24.4038975, + "2024-09-29T13": 25.4835672, + "2024-09-26T22": 25.9291054481096, + "2024-10-01T11": 24.7662845, + "2024-09-30T16": 24.8555252, + "2024-09-28T01": 26.153137999999995, + "2024-09-27T02": 25.914734097355694, + "2024-09-30T20": 24.7223337, + "2024-09-28T06": 25.923888000000005, + "2024-09-27T08": 26.23630736152992, + "2024-10-01T06": 24.7795882, + "2024-09-27T03": 25.89516847096433, + "2024-09-25T06": 25.5784652, + "2024-10-01T02": 24.4258248, + "2024-09-27T17": 26.25777529562951, + "2024-09-30T22": 24.7028341, + "2024-09-29T05": 25.490764699999996, + "2024-09-28T20": 25.622562000000002, + "2024-09-30T13": 25.187481000000002, + "2024-09-26T18": 25.896221779203497, + "2024-09-25T10": 25.848449000000002, + "2024-09-25T02": 26.1184328, + "2024-09-29T02": 25.6705134, + "2024-09-28T08": 25.7346314, + "2024-09-30T17": 24.8735312, + "2024-09-30T02": 24.981249000000002, + "2024-09-28T09": 25.67001988482449, + "2024-09-25T03": 25.958702000000002, + "2024-09-29T15": 25.543320199999997, + "2024-09-29T06": 25.391015600000003, + "2024-09-24T18": 25.474849475169382, + "2024-09-26T07": 26.024410529681973, + "2024-09-26T15": 26.047628061537583, + "2024-09-27T04": 26.176358038781725, + "2024-09-27T11": 26.048051607065403, + "2024-09-26T20": 25.83504749469047, + "2024-09-30T12": 25.128240899999998, + "2024-09-27T10": 25.967792378260434, + "2024-09-26T12": 26.057740785187452, + "2024-09-24T23": 25.919548308263046, + "2024-09-30T00": 25.303036, + "2024-09-25T14": 25.8671543, + "2024-09-26T14": 25.961374271860695, + "2024-09-27T01": 26.140674151310026, + "2024-09-28T04": 26.3234216, + "2024-09-29T08": 25.303542, + "2024-09-26T01": 25.622262963736897, + "2024-09-27T19": 26.186283658940614, + "2024-09-25T01": 26.03987063312084, + "2024-09-26T00": 25.522423479728616, + "2024-09-29T18": 25.75515, + "2024-09-28T19": 25.652565, + "2024-09-28T22": 25.4830576, + "2024-09-27T18": 26.13675243819102, + "2024-09-24T21": 25.77303582931018, + "2024-09-30T08": 25.231009200000003, + "2024-09-25T11": 25.7881947, + "2024-09-25T20": 25.8863754, + "2024-10-01T09": 24.796528, + "2024-10-01T03": 24.6234912, + "2024-09-26T11": 26.064818779333272, + "2024-09-28T07": 25.905179999999998, + "2024-09-27T22": 26.218157815876896, + "2024-09-27T21": 26.299477793056795, + "2024-09-26T03": 25.755801291421047, + "2024-09-26T13": 25.87372001135171, + "2024-09-30T18": 24.821557799999997, + "2024-10-01T15": 23.972806000000002, + "2024-10-01T08": 24.7570288, + "2024-09-25T19": 25.8563796, + "2024-09-30T21": 24.8020608, + "2024-09-28T14": 26.192619, + "2024-09-27T20": 26.203487595297055, + "2024-09-26T06": 25.968224482798917, + "2024-09-26T10": 26.09836427274438, + "2024-09-29T04": 25.500764999999998, + "2024-09-28T16": 25.872587, + "2024-10-01T00": 24.3492816, + "2024-09-24T20": 25.696862947485144, + "2024-09-26T19": 25.941088700737517, + "2024-09-24T15": 25.454348643077576, + "2024-09-27T06": 26.243235807916367, + "2024-09-29T14": 25.604352000000002, + "2024-09-29T07": 25.421779400000002, + "2024-09-28T00": 26.113133199999996, + "2024-09-30T01": 25.143095643057986, + "2024-09-29T09": 25.422033600000002, + "2024-09-25T09": 25.7381982, + "2024-09-30T11": 25.102656044747548, + "2024-09-25T07": 25.49898, + "2024-09-24T19": 25.49220425422818, + "2024-09-29T19": 25.7346314, + "2024-09-30T15": 24.9267591, + "2024-09-28T21": 25.4327973, + "2024-10-01T05": 24.6786426, + "2024-10-01T14": 23.972806000000002, + "2024-09-27T00": 26.065735627714144, + "latest": 23.19 + }, + "USD dogecoin": { + "2024-09-12": 0.10205162915685234, + "2024-09-15": 0.10538603615157362, + "2024-09-22": 0.10672888513389571, + "2024-09-05": 0.09764711038313549, + "2024-09-10": 0.10291497403677378, + "2024-09-11": 0.10064324213198791, + "2024-09-20": 0.10542739121388557, + "2024-09-26": 0.11451869671837535, + "2024-09-16": 0.10099932090135126, + "2024-09-08": 0.09548972694820047, + "2024-09-24": 0.10847169423776824, + "2024-09-29": 0.12695421755764424, + "2024-09-17": 0.1008483844636321, + "2024-09-14": 0.10603354564489337, + "2024-09-03": 0.09901993569871309, + "2024-09-25": 0.10958923515458055, + "2024-09-18": 0.10087727087433851, + "2024-09-07": 0.09447596627313815, + "2024-09-06": 0.09450605949445133, + "2024-09-19": 0.1047148363440945, + "2024-09-30": 0.12037722456507595, + "2024-09-01": 0.09884894273072754, + "2024-08-31": 0.10131460538565377, + "2024-09-02": 0.09702647299376044, + "2024-09-23": 0.10710925879812899, + "2024-09-13": 0.10563738115778637, + "2024-10-01": 0.11615699943484717, + "2024-09-04": 0.09624902048976253, + "2024-09-28": 0.12605727575272674, + "2024-09-21": 0.10690705045248734, + "2024-09-09": 0.09823445773061858, + "2024-09-27": 0.12361705620181092, + "2024-09-27T07": 0.12284512467133724, + "2024-09-27T05": 0.12129611354230961, + "2024-09-30T14": 0.11922039430830704, + "2024-09-27T14": 0.12678440386506387, + "2024-09-27T23": 0.12398670333713649, + "2024-09-28T11": 0.12400932825723673, + "2024-09-29T00": 0.12828209702044827, + "2024-09-28T18": 0.13048415469537303, + "2024-09-29T23": 0.12499608014232046, + "2024-10-01T13": 0.11494662798870486, + "2024-09-30T10": 0.11982722822191981, + "2024-09-25T22": 0.10928269959939042, + "2024-09-29T11": 0.1270538310103196, + "2024-09-28T12": 0.12370643004725404, + "2024-09-26T09": 0.11359914153030512, + "2024-09-28T10": 0.1226489740117878, + "2024-09-27T16": 0.12617942937937424, + "2024-09-24T17": 0.10878049880358368, + "2024-09-27T15": 0.12651178079543118, + "2024-09-29T12": 0.12678659675904802, + "2024-09-25T04": 0.11019941465922821, + "2024-09-25T21": 0.11022327969266517, + "2024-09-25T18": 0.10953765515309626, + "2024-09-26T04": 0.10884980863151042, + "2024-09-26T05": 0.10975602926622995, + "2024-09-30T04": 0.12222474393972486, + "2024-09-27T13": 0.12445528892163196, + "2024-09-28T13": 0.12335646001656918, + "2024-09-25T08": 0.10906532771894381, + "2024-09-30T03": 0.12171439271599475, + "2024-10-01T10": 0.11810512078009476, + "2024-09-25T13": 0.10895337146542745, + "2024-10-01T01": 0.11636911538743733, + "2024-09-26T17": 0.11914400278856238, + "2024-09-25T15": 0.1095454079684722, + "2024-09-29T22": 0.12638088396762204, + "2024-09-29T01": 0.1283836200799622, + "2024-09-30T06": 0.12298159087561561, + "2024-09-27T12": 0.12316537241203444, + "2024-09-25T23": 0.10850132386000502, + "2024-09-30T05": 0.12281134785214029, + "2024-09-28T23": 0.12838166203868126, + "2024-09-30T19": 0.11781551142236465, + "2024-09-25T00": 0.10999254617591939, + "2024-10-01T12": 0.1180306760108536, + "2024-09-29T10": 0.1265692186565683, + "2024-09-24T22": 0.10983121644205843, + "2024-09-26T08": 0.1140457188493733, + "2024-09-29T20": 0.12745370119564978, + "2024-09-25T12": 0.10948392482300762, + "2024-09-25T05": 0.10992385353385882, + "2024-09-27T09": 0.12402429683279845, + "2024-09-26T02": 0.10858036569319758, + "2024-09-28T05": 0.12506489794299494, + "2024-09-29T03": 0.12919232129813463, + "2024-09-26T23": 0.1176352301444705, + "2024-09-29T16": 0.12573938447370206, + "2024-09-26T21": 0.1165400202505201, + "2024-09-26T16": 0.11813678973758979, + "2024-09-28T03": 0.12606191526497548, + "2024-09-29T21": 0.12719093955459143, + "2024-09-30T09": 0.12139279171528666, + "2024-09-24T16": 0.10743376417236283, + "2024-09-30T07": 0.1228337141805195, + "2024-09-28T17": 0.12935295361948534, + "2024-09-28T02": 0.125960792816229, + "2024-09-28T15": 0.130839848818726, + "2024-09-29T17": 0.1265993286786015, + "2024-09-25T17": 0.10953038424670351, + "2024-09-25T16": 0.11005214409720147, + "2024-10-01T04": 0.11780367790043361, + "2024-10-01T07": 0.11862132072951835, + "2024-09-30T23": 0.11456910114038478, + "2024-09-29T13": 0.12618007382229884, + "2024-09-26T22": 0.11754300591344298, + "2024-10-01T11": 0.11865377291038745, + "2024-09-30T16": 0.11744024641823299, + "2024-09-28T01": 0.12455707980870472, + "2024-09-27T02": 0.11738379600111955, + "2024-09-30T20": 0.11853119668680796, + "2024-09-28T06": 0.12360544365388185, + "2024-09-27T08": 0.12377442374795639, + "2024-10-01T06": 0.11840676776063802, + "2024-09-27T03": 0.11800243788950737, + "2024-09-25T06": 0.10912348384908006, + "2024-10-01T02": 0.11603870025491572, + "2024-09-27T17": 0.12402281972539603, + "2024-09-30T22": 0.11633863787530965, + "2024-09-29T05": 0.12810159192640616, + "2024-09-28T20": 0.13067860775093273, + "2024-09-30T13": 0.12058237204916827, + "2024-09-26T18": 0.1178986703173041, + "2024-09-25T10": 0.10894162585919219, + "2024-09-25T02": 0.11049622737510263, + "2024-09-29T02": 0.12963729899035986, + "2024-09-28T08": 0.121816348876721, + "2024-09-30T17": 0.11745318834720941, + "2024-09-30T02": 0.12212889599387071, + "2024-09-28T09": 0.12152666530285824, + "2024-09-25T03": 0.11027235845023473, + "2024-09-29T15": 0.12592311560636218, + "2024-09-29T06": 0.12732947711281647, + "2024-09-24T18": 0.10914686679166995, + "2024-09-26T07": 0.11351374430291372, + "2024-09-26T15": 0.11614375330959707, + "2024-09-27T04": 0.1202473527416921, + "2024-09-27T11": 0.12277063511481057, + "2024-09-26T20": 0.11694164713896466, + "2024-09-30T12": 0.12011346161990605, + "2024-09-27T10": 0.12359063356448086, + "2024-09-26T12": 0.11406206837147091, + "2024-09-24T23": 0.10978845497685286, + "2024-09-30T00": 0.12360213466173564, + "2024-09-25T14": 0.10949935530799196, + "2024-09-26T14": 0.11493166191541757, + "2024-09-27T01": 0.11845346361366309, + "2024-09-28T04": 0.12596655377755384, + "2024-09-29T08": 0.12637554024658865, + "2024-09-26T01": 0.1074757972985511, + "2024-09-27T19": 0.12419552396473112, + "2024-09-25T01": 0.11041843879623879, + "2024-09-26T00": 0.10838190780636688, + "2024-09-29T18": 0.12698475014360616, + "2024-09-28T19": 0.13080640961909348, + "2024-09-28T22": 0.12916079150785162, + "2024-09-27T18": 0.12396573282697508, + "2024-09-24T21": 0.10897070262503057, + "2024-09-30T08": 0.12239609872542652, + "2024-09-25T11": 0.109780211802575, + "2024-09-25T20": 0.11024192168656868, + "2024-10-01T09": 0.11835340533844259, + "2024-10-01T03": 0.11717265295755179, + "2024-09-26T11": 0.114246042469097, + "2024-09-28T07": 0.12270175803978461, + "2024-09-27T22": 0.12400350042608091, + "2024-09-27T21": 0.12375538234057445, + "2024-09-26T03": 0.10870779575361053, + "2024-09-26T13": 0.11438172521393693, + "2024-09-30T18": 0.11749650168921405, + "2024-10-01T08": 0.11837124929544977, + "2024-09-25T19": 0.10979472853092077, + "2024-09-30T21": 0.11850784267677923, + "2024-09-28T14": 0.12925383922892444, + "2024-09-27T20": 0.12393098387752108, + "2024-09-26T06": 0.113042637256066, + "2024-09-26T10": 0.11467976162699893, + "2024-09-29T04": 0.12895396507884838, + "2024-09-28T16": 0.1306468088792241, + "2024-10-01T00": 0.11491969971073303, + "2024-09-24T20": 0.10934612533504709, + "2024-09-26T19": 0.11825260448016538, + "2024-09-24T15": 0.10774471949483228, + "2024-09-27T06": 0.12322436330172244, + "2024-09-29T14": 0.12595192850336223, + "2024-09-29T07": 0.12650251292275586, + "2024-09-28T00": 0.12411575524450341, + "2024-09-30T01": 0.12346427965839585, + "2024-09-29T09": 0.12689611888189825, + "2024-09-25T09": 0.10881904042508045, + "2024-09-30T11": 0.12031070967171252, + "2024-09-25T07": 0.10886679332472245, + "2024-09-24T19": 0.10924669865671115, + "2024-09-29T19": 0.12767323516815304, + "2024-09-30T15": 0.11883735913790577, + "2024-09-28T21": 0.1290466934999875, + "2024-10-01T05": 0.11788227746251609, + "2024-10-01T14": 0.11482886644284952, + "2024-09-27T00": 0.11821579185700987, + "latest": 0.108873, + "2024-10-01T15": 0.11192349951930533 + }, + "USD elrond": { + "2024-09-12": 26.59911905655293, + "2024-09-15": 26.31172005651452, + "2024-09-22": 28.009382385004102, + "2024-09-05": 25.805286224300964, + "2024-09-10": 26.4947970750987, + "2024-09-11": 25.94784097121474, + "2024-09-20": 27.793981482863163, + "2024-09-26": 29.574375956809472, + "2024-09-16": 24.84983375438192, + "2024-09-08": 24.887884614476835, + "2024-09-24": 28.554928425063338, + "2024-09-29": 28.98338176027723, + "2024-09-17": 25.589999429672947, + "2024-09-14": 26.4979370052703, + "2024-09-03": 27.72742904303625, + "2024-09-25": 29.117960381983227, + "2024-09-18": 25.853542044396196, + "2024-09-07": 24.76772730488545, + "2024-09-06": 24.41528108476023, + "2024-09-19": 27.198726025331435, + "2024-09-30": 28.391254593416235, + "2024-09-01": 28.006320939473866, + "2024-08-31": 29.55834524951383, + "2024-09-02": 27.66768912872355, + "2024-09-23": 28.6078211716058, + "2024-09-13": 26.623870548180676, + "2024-10-01": 27.607052942441502, + "2024-09-04": 26.505611015768892, + "2024-09-28": 29.430776947821897, + "2024-09-21": 28.371314529933496, + "2024-09-09": 25.879838551772675, + "2024-09-27": 30.135185814082565, + "2024-09-27T07": 30.146482280729455, + "2024-09-27T05": 29.89606743524551, + "2024-09-30T14": 28.385120212543008, + "2024-09-27T14": 30.292602453965156, + "2024-09-27T23": 30.299648308038936, + "2024-09-28T11": 29.531337405019762, + "2024-09-29T00": 29.26763693621603, + "2024-09-28T18": 29.32403113791334, + "2024-09-29T23": 29.510439726134624, + "2024-10-01T13": 27.830185762404973, + "2024-09-30T10": 28.346669929229616, + "2024-09-25T22": 29.107989787155216, + "2024-09-29T11": 28.555054100815415, + "2024-09-28T12": 29.543607107213823, + "2024-09-26T09": 29.315848466178977, + "2024-09-28T10": 29.173133330912254, + "2024-09-27T16": 30.24155592891437, + "2024-09-24T17": 28.12052545802811, + "2024-09-27T15": 30.330885584578088, + "2024-09-29T12": 28.716749733427243, + "2024-09-25T04": 29.303532050777296, + "2024-09-25T21": 29.36359111908421, + "2024-09-25T18": 28.862321065477037, + "2024-09-26T04": 28.97920320430683, + "2024-09-26T05": 28.860512799548008, + "2024-09-30T04": 28.674037143856587, + "2024-09-27T13": 30.180192835057166, + "2024-09-28T13": 29.42560061050913, + "2024-09-25T08": 28.98949421118973, + "2024-09-30T03": 28.532496948910143, + "2024-10-01T10": 28.17011703538751, + "2024-09-25T13": 29.023222641382826, + "2024-10-01T01": 27.632080163198868, + "2024-09-26T17": 29.906614667747874, + "2024-09-25T15": 29.329214554272262, + "2024-09-29T22": 29.950800854624468, + "2024-09-29T01": 29.027224375633754, + "2024-09-30T06": 28.879273268089385, + "2024-09-27T12": 30.149662521782464, + "2024-09-25T23": 29.06464358532849, + "2024-09-30T05": 28.55167726309747, + "2024-09-28T23": 29.123424926043327, + "2024-09-30T19": 28.03575859351308, + "2024-10-01T12": 27.971690948025486, + "2024-09-29T10": 28.596398463849816, + "2024-09-24T22": 28.912827724462765, + "2024-09-26T08": 29.428156516848592, + "2024-09-29T20": 29.989727527812295, + "2024-09-25T12": 29.091659050005518, + "2024-09-25T05": 29.047321120447812, + "2024-09-27T09": 30.228178905623572, + "2024-09-26T02": 28.728637235205635, + "2024-09-28T05": 30.230753573161056, + "2024-09-29T03": 29.118742931000135, + "2024-09-26T23": 29.708080373966776, + "2024-09-29T16": 29.101666707834266, + "2024-09-26T21": 29.33818949856952, + "2024-09-26T16": 29.825981818012004, + "2024-09-28T03": 30.38428169243075, + "2024-09-29T21": 30.021333669625523, + "2024-09-30T09": 28.739381783560923, + "2024-09-24T16": 28.086078457244668, + "2024-09-30T07": 28.674046023651954, + "2024-09-28T17": 29.2685853809501, + "2024-09-28T02": 30.31524837180637, + "2024-09-28T15": 29.511351775980103, + "2024-09-29T17": 28.93188602167207, + "2024-09-25T17": 29.02382851617228, + "2024-09-25T16": 29.254994710469173, + "2024-10-01T04": 27.994434812325387, + "2024-10-01T07": 28.191483226046696, + "2024-09-30T23": 27.718481443736724, + "2024-09-29T13": 28.54145193972226, + "2024-09-26T22": 29.63630188473834, + "2024-10-01T11": 28.235181374854662, + "2024-09-30T16": 27.995632927274983, + "2024-09-28T01": 30.288847870668153, + "2024-09-27T02": 29.528034244673336, + "2024-09-30T20": 28.00016377233016, + "2024-09-28T06": 30.003629029745955, + "2024-09-27T08": 30.139624408531215, + "2024-10-01T06": 28.065884906389513, + "2024-09-27T03": 29.484209108135474, + "2024-09-25T06": 29.128412181967203, + "2024-10-01T02": 27.55344289812151, + "2024-09-27T17": 30.36319522831118, + "2024-09-30T22": 28.11907997167408, + "2024-09-29T05": 29.05026182572838, + "2024-09-28T20": 29.25926181038288, + "2024-09-30T13": 28.473419619862124, + "2024-09-26T18": 29.648839418224647, + "2024-09-25T10": 29.132673493064512, + "2024-09-25T02": 29.276533167383505, + "2024-09-29T02": 29.08097072248759, + "2024-09-28T08": 29.505632142274045, + "2024-09-30T17": 27.960716417083486, + "2024-09-30T02": 28.90441587192151, + "2024-09-28T09": 29.061143748474496, + "2024-09-25T03": 29.18534460998642, + "2024-09-29T15": 28.881092345425436, + "2024-09-29T06": 28.952641091510145, + "2024-09-24T18": 28.100729610831277, + "2024-09-26T07": 29.347189023037835, + "2024-09-26T15": 29.584021948153303, + "2024-09-27T04": 29.82142186723788, + "2024-09-27T11": 29.936358449087596, + "2024-09-26T20": 29.69500995148185, + "2024-09-30T12": 28.40323255981166, + "2024-09-27T10": 30.13471113897458, + "2024-09-26T12": 29.656305291097116, + "2024-09-24T23": 29.117256484769293, + "2024-09-30T00": 29.373627587656987, + "2024-09-25T14": 29.331473596504164, + "2024-09-26T14": 29.540798142664595, + "2024-09-27T01": 29.68598131248647, + "2024-09-28T04": 30.22765242914041, + "2024-09-29T08": 28.557402124688494, + "2024-09-26T01": 28.57061042745005, + "2024-09-27T19": 30.275444104814635, + "2024-09-25T01": 29.279158822879268, + "2024-09-26T00": 29.018484863548082, + "2024-09-29T18": 29.103308223302967, + "2024-09-28T19": 29.264519822080768, + "2024-09-28T22": 29.071589114716755, + "2024-09-27T18": 30.113515802430456, + "2024-09-24T21": 28.655212433644333, + "2024-09-30T08": 28.91785091430571, + "2024-09-25T11": 29.03725008890008, + "2024-09-25T20": 29.26012404390723, + "2024-10-01T09": 28.11587130057664, + "2024-10-01T03": 27.64410475465139, + "2024-09-26T11": 29.71518330383504, + "2024-09-28T07": 29.779393897273565, + "2024-09-27T22": 30.011538058961627, + "2024-09-27T21": 30.06323114390814, + "2024-09-26T03": 28.870956074547454, + "2024-09-26T13": 29.655144037831796, + "2024-09-30T18": 28.086138155392497, + "2024-10-01T08": 28.207309739359165, + "2024-09-25T19": 29.287234906124787, + "2024-09-30T21": 28.132529873372032, + "2024-09-28T14": 29.431597389487326, + "2024-09-27T20": 30.152590975409026, + "2024-09-26T06": 29.346488699197597, + "2024-09-26T10": 29.47042491360303, + "2024-09-29T04": 29.196308226765655, + "2024-09-28T16": 29.427771071321484, + "2024-10-01T00": 27.298283219295364, + "2024-09-24T20": 28.663841086607377, + "2024-09-26T19": 29.808103430937805, + "2024-09-24T15": 28.10833095750237, + "2024-09-27T06": 30.070794338670968, + "2024-09-29T14": 28.74910901966445, + "2024-09-29T07": 28.761150235283004, + "2024-09-28T00": 30.258191171718398, + "2024-09-30T01": 29.41849223805193, + "2024-09-29T09": 28.564295494813436, + "2024-09-25T09": 29.153879800773073, + "2024-09-30T11": 28.29178630468284, + "2024-09-25T07": 28.84197103756849, + "2024-09-24T19": 28.345941125706076, + "2024-09-29T19": 29.139873093157615, + "2024-09-30T15": 28.40107511772076, + "2024-09-28T21": 29.209592740061606, + "2024-10-01T05": 28.154553702320193, + "2024-10-01T14": 26.9919, + "2024-09-27T00": 29.715662043011157, + "latest": 25.73, + "2024-10-01T15": 26.9919 + }, + "USD eos": { + "2024-09-12": 0.49548363766611064, + "2024-09-15": 0.495239038603055, + "2024-09-22": 0.515661484232045, + "2024-09-05": 0.46324857725330065, + "2024-09-10": 0.4904937056746054, + "2024-09-11": 0.4827995764580779, + "2024-09-20": 0.5138317073154197, + "2024-09-26": 0.5373832439714077, + "2024-09-16": 0.47472024851954714, + "2024-09-08": 0.46725491841282385, + "2024-09-24": 0.5199547109045731, + "2024-09-29": 0.5359643781901297, + "2024-09-17": 0.47678100344230856, + "2024-09-14": 0.49941043483911174, + "2024-09-03": 0.4714313536272208, + "2024-09-25": 0.5296757908107895, + "2024-09-18": 0.47917542039665, + "2024-09-07": 0.46366799043499635, + "2024-09-06": 0.46013279176181865, + "2024-09-19": 0.49892035336443213, + "2024-09-30": 0.5337376433971015, + "2024-09-01": 0.46848878663517296, + "2024-08-31": 0.4847728877692099, + "2024-09-02": 0.467061421124309, + "2024-09-23": 0.5208038850761826, + "2024-09-13": 0.5018782604778121, + "2024-10-01": 0.51903464188094, + "2024-09-04": 0.4554170200043739, + "2024-09-28": 0.5373715340763816, + "2024-09-21": 0.520055362456634, + "2024-09-09": 0.48331202894165964, + "2024-09-27": 0.5424707228662061, + "2024-09-27T07": 0.5420358782703282, + "2024-09-27T05": 0.5417569776535248, + "2024-09-30T14": 0.5374340712193987, + "2024-09-27T14": 0.5430403640091701, + "2024-09-27T23": 0.5446835808714806, + "2024-09-28T11": 0.5390250022689639, + "2024-09-29T00": 0.5356551738076968, + "2024-09-28T18": 0.5370398539830127, + "2024-09-29T23": 0.5370572181991098, + "2024-10-01T13": 0.519429440992598, + "2024-09-30T10": 0.5367214531566096, + "2024-09-25T22": 0.5281418714596111, + "2024-09-29T11": 0.5314989138691396, + "2024-09-28T12": 0.5369293687756923, + "2024-09-26T09": 0.5340840274083778, + "2024-09-28T10": 0.5365885233605155, + "2024-09-27T16": 0.544537326770069, + "2024-09-24T17": 0.5195816101210454, + "2024-09-27T15": 0.5464104189105252, + "2024-09-29T12": 0.5341167027558937, + "2024-09-25T04": 0.5298548276649582, + "2024-09-25T21": 0.5367243721807976, + "2024-09-25T18": 0.5325159214201033, + "2024-09-26T04": 0.5309071309473824, + "2024-09-26T05": 0.5297437196747142, + "2024-09-30T04": 0.534929526688263, + "2024-09-27T13": 0.5418243028600143, + "2024-09-28T13": 0.5349342415683943, + "2024-09-25T08": 0.5249901073279293, + "2024-09-30T03": 0.5324140880551752, + "2024-10-01T10": 0.5218232180419224, + "2024-09-25T13": 0.5275018427358374, + "2024-10-01T01": 0.5199399868335716, + "2024-09-26T17": 0.5425649181641863, + "2024-09-25T15": 0.5340928200704345, + "2024-09-29T22": 0.5409678668838866, + "2024-09-29T01": 0.5345970204777784, + "2024-09-30T06": 0.5369452921593432, + "2024-09-27T12": 0.539820806545926, + "2024-09-25T23": 0.5286491099881274, + "2024-09-30T05": 0.5322973635755347, + "2024-09-28T23": 0.5347791591180646, + "2024-09-30T19": 0.5260099667352918, + "2024-09-25T00": 0.5269944109747308, + "2024-10-01T12": 0.5202271833109255, + "2024-09-29T10": 0.5308553080724503, + "2024-09-24T22": 0.5258587444983709, + "2024-09-26T08": 0.536051313493755, + "2024-09-29T20": 0.5420325157212124, + "2024-09-25T12": 0.5296889768823583, + "2024-09-25T05": 0.5254323829986794, + "2024-09-27T09": 0.5429715328536747, + "2024-09-26T02": 0.52452391526436, + "2024-09-28T05": 0.5465284412108515, + "2024-09-29T03": 0.5361170804272024, + "2024-09-26T23": 0.5384729522847115, + "2024-09-29T16": 0.5398319566756119, + "2024-09-26T21": 0.533160702757112, + "2024-09-26T16": 0.5430363880952709, + "2024-09-28T03": 0.5494797092219451, + "2024-09-29T21": 0.5414558854600443, + "2024-09-30T09": 0.543656454474201, + "2024-09-24T16": 0.5159242093288665, + "2024-09-30T07": 0.5376771633511941, + "2024-09-28T17": 0.5347265296606825, + "2024-09-28T02": 0.5456527212782064, + "2024-09-28T15": 0.5379125693784291, + "2024-09-29T17": 0.5401139619303452, + "2024-09-25T17": 0.5323111379740372, + "2024-09-25T16": 0.5297788258761257, + "2024-10-01T04": 0.5225370874672354, + "2024-10-01T07": 0.5231398516797663, + "2024-09-30T23": 0.5185439554719644, + "2024-09-29T13": 0.5321958273839855, + "2024-09-26T22": 0.5370971200547963, + "2024-10-01T11": 0.5231042480478577, + "2024-09-30T16": 0.5257904331300279, + "2024-09-28T01": 0.5450554324357832, + "2024-09-27T02": 0.5383511044920021, + "2024-09-30T20": 0.528260535562639, + "2024-09-28T06": 0.5419853849111927, + "2024-09-27T08": 0.5407178794887537, + "2024-10-01T06": 0.5210869767832657, + "2024-09-27T03": 0.538020956251872, + "2024-09-25T06": 0.5272801967523882, + "2024-10-01T02": 0.519205504015461, + "2024-09-27T17": 0.5457928753152141, + "2024-09-30T22": 0.5262302169729765, + "2024-09-29T05": 0.5356660458857517, + "2024-09-28T20": 0.5363065367305675, + "2024-09-30T13": 0.5381692166823256, + "2024-09-26T18": 0.5388353082381536, + "2024-09-25T10": 0.5261893466285144, + "2024-09-25T02": 0.5305154843974444, + "2024-09-29T02": 0.5341860023564411, + "2024-09-28T08": 0.5372018472547038, + "2024-09-30T17": 0.5333035872719816, + "2024-09-30T02": 0.5342419023321349, + "2024-09-28T09": 0.5315015951664425, + "2024-09-25T03": 0.5314084253859784, + "2024-09-29T15": 0.5360291413544214, + "2024-09-29T06": 0.5343021169427256, + "2024-09-24T18": 0.5183932397950881, + "2024-09-26T07": 0.5348247025891404, + "2024-09-26T15": 0.538141534760232, + "2024-09-27T04": 0.5415283496597788, + "2024-09-27T11": 0.5379047476494414, + "2024-09-26T20": 0.5377671645592431, + "2024-09-30T12": 0.5374961189857353, + "2024-09-27T10": 0.5429062053074752, + "2024-09-26T12": 0.5389799425215502, + "2024-09-24T23": 0.5270796815457284, + "2024-09-30T00": 0.5397031478037495, + "2024-09-25T14": 0.530172762682444, + "2024-09-26T14": 0.5381736203726315, + "2024-09-27T01": 0.5404464194180515, + "2024-09-28T04": 0.5474818951379484, + "2024-09-29T08": 0.5286721360168197, + "2024-09-26T01": 0.5208988214396919, + "2024-09-27T19": 0.5439580004032329, + "2024-09-25T01": 0.527559424495033, + "2024-09-26T00": 0.5256868984658558, + "2024-09-29T18": 0.5393779249739445, + "2024-09-28T19": 0.5369651552976746, + "2024-09-28T22": 0.5337813419665435, + "2024-09-27T18": 0.5434512252395785, + "2024-09-24T21": 0.5236954773683312, + "2024-09-30T08": 0.5428111201738405, + "2024-09-25T11": 0.5276978062281297, + "2024-09-25T20": 0.5288004968692271, + "2024-10-01T09": 0.5209159415842954, + "2024-10-01T03": 0.5196916721203106, + "2024-09-26T11": 0.5387970343655865, + "2024-09-28T07": 0.5407923153570185, + "2024-09-27T22": 0.543136410650844, + "2024-09-27T21": 0.5425685414257392, + "2024-09-26T03": 0.5296973060687215, + "2024-09-26T13": 0.5381281637669502, + "2024-09-30T18": 0.528696533402747, + "2024-10-01T08": 0.5222828827686832, + "2024-09-25T19": 0.5359337213901595, + "2024-09-30T21": 0.5287809142991128, + "2024-09-28T14": 0.535360007813906, + "2024-09-27T20": 0.5417144190666403, + "2024-09-26T06": 0.533677742946766, + "2024-09-26T10": 0.5358880882372207, + "2024-09-29T04": 0.5378368307311181, + "2024-09-28T16": 0.5371704611277477, + "2024-10-01T00": 0.515548722684387, + "2024-09-24T20": 0.5223293642538754, + "2024-09-26T19": 0.540512331135299, + "2024-09-24T15": 0.51827417588281, + "2024-09-27T06": 0.5438445589619187, + "2024-09-29T14": 0.5365577533667895, + "2024-09-29T07": 0.5321793299899977, + "2024-09-28T00": 0.54375792133013, + "2024-09-30T01": 0.5387586662176909, + "2024-09-29T09": 0.5295884817810217, + "2024-09-25T09": 0.527425471096183, + "2024-09-30T11": 0.5345047127356378, + "2024-09-25T07": 0.5243940265965867, + "2024-09-24T19": 0.5197173576972527, + "2024-09-29T19": 0.5397959850796435, + "2024-09-30T15": 0.5334308628014983, + "2024-09-28T21": 0.5342071120577463, + "2024-10-01T05": 0.5232567930650506, + "2024-10-01T14": 0.5054483200000001, + "2024-09-27T00": 0.5390264777614459, + "latest": 0.48521, + "2024-10-01T15": 0.5054483200000001 + }, + "USD ethereum": { + "2024-09-12": 2354.2134859953567, + "2024-09-15": 2406.6841547406134, + "2024-09-22": 2581.4438892396897, + "2024-09-05": 2391.6226860118227, + "2024-09-10": 2349.5184264791906, + "2024-09-11": 2335.6336844290145, + "2024-09-20": 2544.5254831493576, + "2024-09-26": 2628.510893665826, + "2024-09-16": 2289.9526500597417, + "2024-09-08": 2283.7056967843014, + "2024-09-24": 2639.093607041562, + "2024-09-29": 2661.156875593571, + "2024-09-17": 2318.827484147634, + "2024-09-14": 2418.544450356054, + "2024-09-03": 2478.2404500329526, + "2024-09-25": 2620.7710063923996, + "2024-09-18": 2320.438829377811, + "2024-09-07": 2281.345769920238, + "2024-09-06": 2329.655348649306, + "2024-09-19": 2433.4968489662847, + "2024-09-30": 2615.5153478740044, + "2024-09-01": 2475.640323268133, + "2024-08-31": 2520.897556089576, + "2024-09-02": 2512.0312352759634, + "2024-09-23": 2653.8413519727605, + "2024-09-13": 2365.039310376597, + "2024-10-01": 2628.4693173507812, + "2024-09-04": 2401.862383862184, + "2024-09-28": 2675.5585078418694, + "2024-09-21": 2559.557420131307, + "2024-09-09": 2316.707471990902, + "2024-09-27": 2663.096195455968, + "2024-09-27T07": 2659.784275793055, + "2024-09-27T05": 2644.774792393698, + "2024-09-30T14": 2612.3010567894894, + "2024-09-27T14": 2683.8051476873816, + "2024-09-27T23": 2699.6959866836014, + "2024-09-28T11": 2673.418507396885, + "2024-09-29T00": 2675.1991558755753, + "2024-09-28T18": 2680.2292783671855, + "2024-09-29T23": 2654.427146220055, + "2024-10-01T13": 2589.6240590572643, + "2024-09-30T10": 2603.110444827469, + "2024-09-25T22": 2573.454210061153, + "2024-09-29T11": 2651.248626658687, + "2024-09-28T12": 2662.190103258957, + "2024-09-26T09": 2618.3825693690046, + "2024-09-28T10": 2673.2723113776224, + "2024-09-27T16": 2709.3847129905553, + "2024-09-24T17": 2642.139127823608, + "2024-09-27T15": 2689.678178079298, + "2024-09-29T12": 2653.311516801103, + "2024-09-25T04": 2634.4042594461484, + "2024-09-25T21": 2582.598689070129, + "2024-09-25T18": 2579.6518090609948, + "2024-09-26T04": 2599.781994764048, + "2024-09-26T05": 2610.4472093808577, + "2024-09-30T04": 2626.996477409096, + "2024-09-27T13": 2654.420028245805, + "2024-09-28T13": 2657.9499861546738, + "2024-09-25T08": 2624.5037488238527, + "2024-09-30T03": 2621.015427206783, + "2024-10-01T10": 2635.0382530406755, + "2024-09-25T13": 2615.6117552652613, + "2024-10-01T01": 2623.1601087376785, + "2024-09-26T17": 2646.672319163032, + "2024-09-25T15": 2615.7161911691933, + "2024-09-29T22": 2662.1293230511487, + "2024-09-29T01": 2670.1351220649663, + "2024-09-30T06": 2638.04966521697, + "2024-09-27T12": 2657.33508876243, + "2024-09-25T23": 2573.525904759208, + "2024-09-30T05": 2632.120662305188, + "2024-09-28T23": 2674.139053808163, + "2024-09-30T19": 2591.142126735575, + "2024-09-25T00": 2648.376692604442, + "2024-10-01T12": 2627.042924525449, + "2024-09-29T10": 2644.8004768416276, + "2024-09-24T22": 2659.16526900152, + "2024-09-26T08": 2625.830771952317, + "2024-09-29T20": 2663.3562929603295, + "2024-09-25T12": 2622.558470725411, + "2024-09-25T05": 2626.782932191841, + "2024-09-27T09": 2666.3219841169225, + "2024-09-26T02": 2594.005523074261, + "2024-09-28T05": 2690.602741630079, + "2024-09-29T03": 2673.538028103398, + "2024-09-26T23": 2629.496601029847, + "2024-09-29T16": 2663.241903304972, + "2024-09-26T21": 2638.2700373172147, + "2024-09-26T16": 2653.3762961338903, + "2024-09-28T03": 2694.51274844731, + "2024-09-29T21": 2664.1829111507263, + "2024-09-30T09": 2629.3092861703954, + "2024-09-24T16": 2616.935335326755, + "2024-09-30T07": 2638.5384691403965, + "2024-09-28T17": 2675.702235270806, + "2024-09-28T02": 2698.406952279711, + "2024-09-28T15": 2669.9782593062537, + "2024-09-29T17": 2667.5454332344534, + "2024-09-25T17": 2581.1647905869436, + "2024-09-25T16": 2601.6682292631954, + "2024-10-01T04": 2635.211810899137, + "2024-10-01T07": 2646.9704085894273, + "2024-09-30T23": 2596.419408285599, + "2024-09-29T13": 2655.200293504305, + "2024-09-26T22": 2638.5571818516646, + "2024-10-01T11": 2632.0337424424733, + "2024-09-30T16": 2604.137337461018, + "2024-09-28T01": 2695.3082914215333, + "2024-09-27T02": 2622.2123604863255, + "2024-09-30T20": 2608.9921856583937, + "2024-09-28T06": 2681.033782385596, + "2024-09-27T08": 2666.2747013980415, + "2024-10-01T06": 2644.2446432593606, + "2024-09-27T03": 2628.58925217171, + "2024-09-25T06": 2619.046261342083, + "2024-10-01T02": 2614.100956338189, + "2024-09-27T17": 2698.296350030815, + "2024-09-30T22": 2606.587162601063, + "2024-09-29T05": 2668.6485526735682, + "2024-09-28T20": 2678.059420508791, + "2024-09-30T13": 2631.867071420317, + "2024-09-26T18": 2638.0921147858407, + "2024-09-25T10": 2624.719257033802, + "2024-09-25T02": 2647.879900439615, + "2024-09-29T02": 2677.5387729589174, + "2024-09-28T08": 2671.877825511789, + "2024-09-30T17": 2602.945585925091, + "2024-09-30T02": 2616.1121030538256, + "2024-09-28T09": 2663.9012263269183, + "2024-09-25T03": 2643.065367243993, + "2024-09-29T15": 2662.458703468137, + "2024-09-29T06": 2658.6529738806516, + "2024-09-24T18": 2639.857509854994, + "2024-09-26T07": 2620.1864394130052, + "2024-09-26T15": 2647.5929606493587, + "2024-09-27T04": 2645.9691325914537, + "2024-09-27T11": 2648.8980285372922, + "2024-09-26T20": 2640.2629364904697, + "2024-09-30T12": 2629.922856601102, + "2024-09-27T10": 2645.892869178656, + "2024-09-26T12": 2629.9223752410253, + "2024-09-24T23": 2658.017846857175, + "2024-09-30T00": 2643.549263480502, + "2024-09-25T14": 2623.0648836438854, + "2024-09-26T14": 2633.702326628844, + "2024-09-27T01": 2632.6464126151022, + "2024-09-28T04": 2695.0238766293305, + "2024-09-29T08": 2641.6923116268317, + "2024-09-26T01": 2572.343514789772, + "2024-09-27T19": 2701.1223268683193, + "2024-09-25T01": 2653.184155782341, + "2024-09-26T00": 2579.9361583029918, + "2024-09-29T18": 2663.4930859398746, + "2024-09-28T19": 2677.983197692661, + "2024-09-28T22": 2674.3735778131745, + "2024-09-27T18": 2696.243500911387, + "2024-09-24T21": 2648.5761007961373, + "2024-09-30T08": 2636.739953461685, + "2024-09-25T11": 2620.9604248045734, + "2024-09-25T20": 2578.437622504681, + "2024-10-01T09": 2640.8390738664843, + "2024-10-01T03": 2626.236487345839, + "2024-09-26T11": 2627.2560872065815, + "2024-09-28T07": 2680.633353354697, + "2024-09-27T22": 2700.771398993157, + "2024-09-27T21": 2693.991936122332, + "2024-09-26T03": 2598.4330973559995, + "2024-09-26T13": 2621.658695390707, + "2024-09-30T18": 2586.544785261975, + "2024-10-01T08": 2642.019881612013, + "2024-09-25T19": 2581.064966322771, + "2024-09-30T21": 2610.6329323868868, + "2024-09-28T14": 2671.469273706611, + "2024-09-27T20": 2695.3285204106496, + "2024-09-26T06": 2616.0751290622848, + "2024-09-26T10": 2630.850837852529, + "2024-09-29T04": 2668.7222936085786, + "2024-09-28T16": 2667.934800687174, + "2024-10-01T00": 2608.4121709589185, + "2024-09-24T20": 2649.032340641476, + "2024-09-26T19": 2652.754550307685, + "2024-09-24T15": 2612.980313032199, + "2024-09-27T06": 2660.268980637851, + "2024-09-29T14": 2653.298811088948, + "2024-09-29T07": 2647.240238412806, + "2024-09-28T00": 2695.9079490973054, + "2024-09-30T01": 2638.053340865093, + "2024-09-29T09": 2649.7897995979306, + "2024-09-25T09": 2624.123460324333, + "2024-09-30T11": 2617.4520794978844, + "2024-09-25T07": 2621.8056092896613, + "2024-09-24T19": 2641.942136677671, + "2024-09-29T19": 2665.472685099668, + "2024-09-30T15": 2612.0369871490266, + "2024-09-28T21": 2667.533162324228, + "2024-10-01T05": 2637.8080571552596, + "2024-10-01T14": 2584.325175113214, + "2024-09-27T00": 2634.7169900767863, + "latest": 2495.52, + "2024-10-01T15": 2549.9822537490013 + }, + "USD ethereum_classic": { + "2024-09-12": 18.471811745592596, + "2024-09-15": 18.372755500000004, + "2024-09-22": 18.906527948135544, + "2024-09-05": 17.78802273593202, + "2024-09-10": 18.341270310060867, + "2024-09-11": 18.32906614244048, + "2024-09-20": 18.970070403892198, + "2024-09-26": 20.06541948066614, + "2024-09-16": 17.700125978120173, + "2024-09-08": 17.74852201065733, + "2024-09-24": 19.093275334619, + "2024-09-29": 20.503496314602746, + "2024-09-17": 17.917279488463233, + "2024-09-14": 18.649937662327545, + "2024-09-03": 18.03801115570676, + "2024-09-25": 19.489046833569326, + "2024-09-18": 17.820395946661353, + "2024-09-07": 17.558388836244994, + "2024-09-06": 17.538431916361922, + "2024-09-19": 18.60666445947526, + "2024-09-30": 19.895602661658916, + "2024-09-01": 18.032479648701486, + "2024-08-31": 18.386214919509577, + "2024-09-02": 17.97489198901555, + "2024-09-23": 19.10905565170351, + "2024-09-13": 18.46452456115446, + "2024-10-01": 19.615505552393277, + "2024-09-04": 17.7617661527769, + "2024-09-28": 20.50111925261979, + "2024-09-21": 19.152687452207868, + "2024-09-09": 18.054595245557508, + "2024-09-27": 20.694265490282117, + "2024-09-27T07": 20.648297058489582, + "2024-09-27T05": 20.572245262134174, + "2024-09-30T14": 19.814789239937895, + "2024-09-27T14": 20.823555030340135, + "2024-09-27T23": 20.925398251858265, + "2024-09-28T11": 20.43046638859775, + "2024-09-29T00": 20.581961462034823, + "2024-09-28T18": 20.55631137459258, + "2024-09-29T23": 20.50298862341925, + "2024-10-01T13": 19.665082144164227, + "2024-09-30T10": 19.845162877032145, + "2024-09-25T22": 19.481970424932175, + "2024-09-29T11": 20.340492565258252, + "2024-09-28T12": 20.35745627496819, + "2024-09-26T09": 19.932305588248134, + "2024-09-28T10": 20.47165267071265, + "2024-09-27T16": 20.852605589309707, + "2024-09-24T17": 18.977183470805944, + "2024-09-27T15": 20.85009641272761, + "2024-09-29T12": 20.38156754751113, + "2024-09-25T04": 19.666749264138833, + "2024-09-25T21": 19.569877332066117, + "2024-09-25T18": 19.429064897243773, + "2024-09-26T04": 19.403272389646045, + "2024-09-26T05": 19.335392718164986, + "2024-09-30T04": 20.04266256139427, + "2024-09-27T13": 20.71879522520772, + "2024-09-28T13": 20.282171212477458, + "2024-09-25T08": 19.334989527974688, + "2024-09-30T03": 19.966746621153426, + "2024-10-01T10": 19.761792660861254, + "2024-09-25T13": 19.372219691921366, + "2024-10-01T01": 19.62266946712919, + "2024-09-26T17": 20.235926877989826, + "2024-09-25T15": 19.639145334686567, + "2024-09-29T22": 20.67872182960388, + "2024-09-29T01": 20.50942821834549, + "2024-09-30T06": 20.142550649972257, + "2024-09-27T12": 20.662931381849535, + "2024-09-25T23": 19.382518969816786, + "2024-09-30T05": 20.005844462167097, + "2024-09-28T23": 20.592374952261157, + "2024-09-30T19": 19.678978644715844, + "2024-09-25T00": 19.420317077976048, + "2024-10-01T12": 19.747833248249965, + "2024-09-29T10": 20.334995567360693, + "2024-09-24T22": 19.271260240745626, + "2024-09-26T08": 19.86867114736677, + "2024-09-29T20": 20.666093331090202, + "2024-09-25T12": 19.443922619462946, + "2024-09-25T05": 19.484714805487783, + "2024-09-27T09": 20.701342908554732, + "2024-09-26T02": 19.21036423696005, + "2024-09-28T05": 20.717367415017556, + "2024-09-29T03": 20.590490396518724, + "2024-09-26T23": 20.31169534719915, + "2024-09-29T16": 20.53540812826879, + "2024-09-26T21": 20.030971136454845, + "2024-09-26T16": 20.26003239690196, + "2024-09-28T03": 20.89176693307305, + "2024-09-29T21": 20.598889597579735, + "2024-09-30T09": 20.093109299145418, + "2024-09-24T16": 18.891229800529054, + "2024-09-30T07": 19.99230577033337, + "2024-09-28T17": 20.451711916183804, + "2024-09-28T02": 20.798683813011046, + "2024-09-28T15": 20.469246499055444, + "2024-09-29T17": 20.564022732365704, + "2024-09-25T17": 19.608493994015625, + "2024-09-25T16": 19.519113888557737, + "2024-10-01T04": 19.71824425188694, + "2024-10-01T07": 19.796445461934457, + "2024-09-30T23": 19.556847720296258, + "2024-09-29T13": 20.229556583624554, + "2024-09-26T22": 20.235233402442432, + "2024-10-01T11": 19.819729691638656, + "2024-09-30T16": 19.55863363360384, + "2024-09-28T01": 20.83828241191407, + "2024-09-27T02": 20.27492995258118, + "2024-09-30T20": 19.695629923043395, + "2024-09-28T06": 20.561573496947418, + "2024-09-27T08": 20.646262101593425, + "2024-10-01T06": 19.671069463645917, + "2024-09-27T03": 20.359420812596888, + "2024-09-25T06": 19.48342768491042, + "2024-10-01T02": 19.63454962795885, + "2024-09-27T17": 20.837359914174456, + "2024-09-30T22": 19.69084572922792, + "2024-09-29T05": 20.5412689313732, + "2024-09-28T20": 20.581240869584484, + "2024-09-30T13": 19.898707834698854, + "2024-09-26T18": 20.159818490848856, + "2024-09-25T10": 19.27920403208498, + "2024-09-25T02": 19.63295327339353, + "2024-09-29T02": 20.614455854094523, + "2024-09-28T08": 20.30835079578433, + "2024-09-30T17": 19.617517200826086, + "2024-09-30T02": 19.97775745822982, + "2024-09-28T09": 20.24820797603223, + "2024-09-25T03": 19.67290377822435, + "2024-09-29T15": 20.372019008582956, + "2024-09-29T06": 20.595867831536555, + "2024-09-24T18": 19.137972149751423, + "2024-09-26T07": 19.704438042615223, + "2024-09-26T15": 20.03447257149197, + "2024-09-27T04": 20.607581714633977, + "2024-09-27T11": 20.57952333654515, + "2024-09-26T20": 20.217637178419835, + "2024-09-30T12": 19.918139755546502, + "2024-09-27T10": 20.76067225749983, + "2024-09-26T12": 20.029894499973313, + "2024-09-24T23": 19.485090611255306, + "2024-09-30T00": 20.450598992031374, + "2024-09-25T14": 19.50424012998932, + "2024-09-26T14": 20.111773761159238, + "2024-09-27T01": 20.394589909664145, + "2024-09-28T04": 20.762907050609417, + "2024-09-29T08": 20.21762880010276, + "2024-09-26T01": 19.183690675038342, + "2024-09-27T19": 20.771170979854944, + "2024-09-25T01": 19.456525773888128, + "2024-09-26T00": 19.298596280702647, + "2024-09-29T18": 20.61641085503314, + "2024-09-28T19": 20.550063914807776, + "2024-09-28T22": 20.574097285984976, + "2024-09-27T18": 20.80603175528877, + "2024-09-24T21": 19.354590826261436, + "2024-09-30T08": 20.091657348013364, + "2024-09-25T11": 19.361079940323293, + "2024-09-25T20": 19.463155451104843, + "2024-10-01T09": 19.75220782275599, + "2024-10-01T03": 19.634426300344916, + "2024-09-26T11": 20.08446907131648, + "2024-09-28T07": 20.486356814151076, + "2024-09-27T22": 20.859738158776928, + "2024-09-27T21": 20.786492367593706, + "2024-09-26T03": 19.263554928143865, + "2024-09-26T13": 20.116867326060422, + "2024-09-30T18": 19.695503880016574, + "2024-10-01T08": 19.78985017740914, + "2024-09-25T19": 19.47241848817014, + "2024-09-30T21": 19.731985832222147, + "2024-09-28T14": 20.417075558376716, + "2024-09-27T20": 20.753232618254046, + "2024-09-26T06": 19.53994662285151, + "2024-09-26T10": 19.909314719712434, + "2024-09-29T04": 20.655275243524226, + "2024-09-28T16": 20.40893312312379, + "2024-10-01T00": 19.48462877178173, + "2024-09-24T20": 19.346584334260594, + "2024-09-26T19": 20.331237417295753, + "2024-09-24T15": 18.978871798593598, + "2024-09-27T06": 20.56976377076345, + "2024-09-29T14": 20.385430487186444, + "2024-09-29T07": 20.380284538013708, + "2024-09-28T00": 20.81818992090199, + "2024-09-30T01": 20.394510840350037, + "2024-09-29T09": 20.27035020272937, + "2024-09-25T09": 19.34083198816999, + "2024-09-30T11": 19.799183291968294, + "2024-09-25T07": 19.34452473426389, + "2024-09-24T19": 19.198900099448363, + "2024-09-29T19": 20.640358868863537, + "2024-09-30T15": 19.754384301584018, + "2024-09-28T21": 20.64285140731683, + "2024-10-01T05": 19.775497303979048, + "2024-10-01T14": 19.410471339944465, + "2024-09-27T00": 20.311741628834444, + "latest": 18.59, + "2024-10-01T15": 19.101786526143943 + }, + "USD fantom": { + "2024-09-12": 0.4878638209944769, + "2024-09-15": 0.5082521918050191, + "2024-09-22": 0.6556205361215611, + "2024-09-05": 0.38986793071959175, + "2024-09-10": 0.48800018087295155, + "2024-09-11": 0.4867398434437089, + "2024-09-20": 0.6429740160321854, + "2024-09-26": 0.7012494894424511, + "2024-09-16": 0.5113015246092609, + "2024-09-08": 0.40470801546856056, + "2024-09-24": 0.6421034091608249, + "2024-09-29": 0.6783097287771457, + "2024-09-17": 0.5631380979634842, + "2024-09-14": 0.4750890089465083, + "2024-09-03": 0.4131380906077132, + "2024-09-25": 0.6740200370717858, + "2024-09-18": 0.5776312313711779, + "2024-09-07": 0.3853987451951565, + "2024-09-06": 0.3815136219626256, + "2024-09-19": 0.6454677681355804, + "2024-09-30": 0.6923267972721493, + "2024-09-01": 0.41428571214462634, + "2024-08-31": 0.4271771451684716, + "2024-09-02": 0.41885603189061205, + "2024-09-23": 0.6486585879238008, + "2024-09-13": 0.4849494037227187, + "2024-10-01": 0.7174041221324513, + "2024-09-04": 0.3898797077220547, + "2024-09-28": 0.6738424178417032, + "2024-09-21": 0.6459930262145467, + "2024-09-09": 0.4443273795499336, + "2024-09-27": 0.6984240236196168, + "2024-09-27T07": 0.7062846698160622, + "2024-09-27T05": 0.7047533652578731, + "2024-09-30T14": 0.6997968076323936, + "2024-09-27T14": 0.7010483888200468, + "2024-09-27T23": 0.7022831823630399, + "2024-09-28T11": 0.6720564143758525, + "2024-09-29T00": 0.6746607139999999, + "2024-09-28T18": 0.6716410150000001, + "2024-09-29T23": 0.6786174888944494, + "2024-10-01T13": 0.7339231420112914, + "2024-09-30T10": 0.6881126819628054, + "2024-09-25T22": 0.656801465, + "2024-09-29T11": 0.671737167, + "2024-09-28T12": 0.6687028042851692, + "2024-09-26T09": 0.6892999112010946, + "2024-09-28T10": 0.6771333284657849, + "2024-09-27T16": 0.7006772986649902, + "2024-09-24T17": 0.6429722257070941, + "2024-09-27T15": 0.6988499949441489, + "2024-09-29T12": 0.672980748, + "2024-09-25T04": 0.6936704378133735, + "2024-09-25T21": 0.6675619238854756, + "2024-09-25T18": 0.6703226145, + "2024-09-26T04": 0.653910311, + "2024-09-26T05": 0.657109383, + "2024-09-30T04": 0.6711403577533788, + "2024-09-27T13": 0.6947038137341708, + "2024-09-28T13": 0.6665938357242164, + "2024-09-25T08": 0.6694237624902191, + "2024-09-30T03": 0.6685885497417109, + "2024-10-01T10": 0.7485258080406231, + "2024-09-25T13": 0.674512302, + "2024-10-01T01": 0.7184485916871409, + "2024-09-26T17": 0.7211672506935315, + "2024-09-25T15": 0.6749211991842208, + "2024-09-29T22": 0.686077847361436, + "2024-09-29T01": 0.668273502, + "2024-09-30T06": 0.6845495571771636, + "2024-09-27T12": 0.6963980844501146, + "2024-09-25T23": 0.65335623, + "2024-09-30T05": 0.6705333568931079, + "2024-09-28T23": 0.6726739860000001, + "2024-09-30T19": 0.6977460240472871, + "2024-09-25T00": 0.6664375855837128, + "2024-10-01T12": 0.7522930363460211, + "2024-09-29T10": 0.663959751, + "2024-09-24T22": 0.6711086055736201, + "2024-09-26T08": 0.6777112083339608, + "2024-09-29T20": 0.7139790719664929, + "2024-09-25T12": 0.6748675355752198, + "2024-09-25T05": 0.6812128546550933, + "2024-09-27T09": 0.7034080551341584, + "2024-09-26T02": 0.6485313380000001, + "2024-09-28T05": 0.6796862548592076, + "2024-09-29T03": 0.665113302, + "2024-09-26T23": 0.6891569154979962, + "2024-09-29T16": 0.6836415705112087, + "2024-09-26T21": 0.691440130172916, + "2024-09-26T16": 0.7283865823822916, + "2024-09-28T03": 0.69089338553927, + "2024-09-29T21": 0.700986480370123, + "2024-09-30T09": 0.6918060181674837, + "2024-09-24T16": 0.637754845751016, + "2024-09-30T07": 0.6951447884146126, + "2024-09-28T17": 0.67214112, + "2024-09-28T02": 0.7008840959999999, + "2024-09-28T15": 0.6716604439999999, + "2024-09-29T17": 0.695978952454616, + "2024-09-25T17": 0.6663308823474067, + "2024-09-25T16": 0.6708088713567286, + "2024-10-01T04": 0.7300089637149373, + "2024-10-01T07": 0.7496979898589097, + "2024-09-30T23": 0.6896548932741633, + "2024-09-29T13": 0.673523199619645, + "2024-09-26T22": 0.6918252408527719, + "2024-10-01T11": 0.756677290005878, + "2024-09-30T16": 0.6988498390480372, + "2024-09-28T01": 0.7001913724296805, + "2024-09-27T02": 0.6797665187137482, + "2024-09-30T20": 0.7029269692713463, + "2024-09-28T06": 0.6754148955809527, + "2024-09-27T08": 0.7026775611215336, + "2024-10-01T06": 0.7366898418551119, + "2024-09-27T03": 0.6785549496103377, + "2024-09-25T06": 0.6739824628114429, + "2024-10-01T02": 0.7107967699617006, + "2024-09-27T17": 0.6936969032128129, + "2024-09-30T22": 0.6947299882840385, + "2024-09-29T05": 0.6593197789999999, + "2024-09-28T20": 0.67296729, + "2024-09-30T13": 0.702011620529726, + "2024-09-26T18": 0.7068517228152357, + "2024-09-25T10": 0.6794915049323401, + "2024-09-25T02": 0.6991616478839516, + "2024-09-29T02": 0.6698133959999999, + "2024-09-28T08": 0.6746540433916783, + "2024-09-30T17": 0.6988437737720715, + "2024-09-30T02": 0.667051064683355, + "2024-09-28T09": 0.6722874853768736, + "2024-09-25T03": 0.7097241269954419, + "2024-09-29T15": 0.6805538335769633, + "2024-09-29T06": 0.65902636, + "2024-09-24T18": 0.6495007893523586, + "2024-09-26T07": 0.6656214057950421, + "2024-09-26T15": 0.7266515238761281, + "2024-09-27T04": 0.6936734129609442, + "2024-09-27T11": 0.6906714875179967, + "2024-09-26T20": 0.6895487731210564, + "2024-09-30T12": 0.6971714766556084, + "2024-09-27T10": 0.6909155818437439, + "2024-09-26T12": 0.7243853670144969, + "2024-09-24T23": 0.6673326641669145, + "2024-09-30T00": 0.675555051170621, + "2024-09-25T14": 0.6768755355, + "2024-09-26T14": 0.7275213380081924, + "2024-09-27T01": 0.6804394976653694, + "2024-09-28T04": 0.6846889979999999, + "2024-09-29T08": 0.658692204, + "2024-09-26T01": 0.643739025, + "2024-09-27T19": 0.7021335065403709, + "2024-09-25T01": 0.6911488114793469, + "2024-09-26T00": 0.64923765, + "2024-09-29T18": 0.7183131574416456, + "2024-09-28T19": 0.6722987513706291, + "2024-09-28T22": 0.670980508, + "2024-09-27T18": 0.6956194464439855, + "2024-09-24T21": 0.662644194071425, + "2024-09-30T08": 0.6888308192365031, + "2024-09-25T11": 0.6765420413163764, + "2024-09-25T20": 0.6665066759999999, + "2024-10-01T09": 0.7464574829212391, + "2024-10-01T03": 0.7270549810702681, + "2024-09-26T11": 0.7138623026159854, + "2024-09-28T07": 0.6789086240300383, + "2024-09-27T22": 0.7019653542112569, + "2024-09-27T21": 0.7046078670240495, + "2024-09-26T03": 0.6493116449999999, + "2024-09-26T13": 0.7208680881642869, + "2024-09-30T18": 0.6944567241200276, + "2024-10-01T08": 0.7432701930759187, + "2024-09-25T19": 0.6673912689413937, + "2024-09-30T21": 0.7115480034390536, + "2024-09-28T14": 0.6711464508635626, + "2024-09-27T20": 0.697204097964359, + "2024-09-26T06": 0.663864784900693, + "2024-09-26T10": 0.7160152608002401, + "2024-09-29T04": 0.661319839, + "2024-09-28T16": 0.66866686, + "2024-10-01T00": 0.7028679403400319, + "2024-09-24T20": 0.6558956430594968, + "2024-09-26T19": 0.7044338192613703, + "2024-09-24T15": 0.6278070335413114, + "2024-09-27T06": 0.7170364239260137, + "2024-09-29T14": 0.6799403833892604, + "2024-09-29T07": 0.6553558717, + "2024-09-28T00": 0.7018326602320935, + "2024-09-30T01": 0.6730216709439371, + "2024-09-29T09": 0.6630530400000001, + "2024-09-25T09": 0.672024188305466, + "2024-09-30T11": 0.6845369935122765, + "2024-09-25T07": 0.6647175109581137, + "2024-09-24T19": 0.657044666432946, + "2024-09-29T19": 0.7198498109716839, + "2024-09-30T15": 0.701097419668637, + "2024-09-28T21": 0.6680734800000001, + "2024-10-01T05": 0.7275186307330084, + "2024-10-01T14": 0.7306966616162602, + "2024-09-27T00": 0.6900123942997423, + "latest": 0.69324 + }, + "USD filecoin": { + "2024-09-12": 3.6322932607513416, + "2024-09-15": 3.5740174120671835, + "2024-09-22": 3.7166951216317856, + "2024-09-05": 3.36527933155899, + "2024-09-10": 3.5995038753945217, + "2024-09-11": 3.5767640142884827, + "2024-09-20": 3.7659345513022933, + "2024-09-26": 4.089020756791431, + "2024-09-16": 3.422547115554694, + "2024-09-08": 3.3807256807496984, + "2024-09-24": 3.7742750804660004, + "2024-09-29": 4.0833296474575596, + "2024-09-17": 3.4577536476513346, + "2024-09-14": 3.6771014130378874, + "2024-09-03": 3.4611510757662196, + "2024-09-25": 3.9370805489130025, + "2024-09-18": 3.4662441394116916, + "2024-09-07": 3.336686179558845, + "2024-09-06": 3.3321094058050083, + "2024-09-19": 3.6851465955293534, + "2024-09-30": 3.9467603142555254, + "2024-09-01": 3.4605369229961163, + "2024-08-31": 3.6027318478214068, + "2024-09-02": 3.4269598184669454, + "2024-09-23": 3.750476734003228, + "2024-09-13": 3.6771495500135787, + "2024-10-01": 3.860541368545364, + "2024-09-04": 3.3556012340769334, + "2024-09-28": 4.122645426159092, + "2024-09-21": 3.79530454623623, + "2024-09-09": 3.4517305943683434, + "2024-09-27": 4.183341340597307, + "2024-09-27T07": 4.196433936581486, + "2024-09-27T05": 4.20521025, + "2024-09-30T14": 3.92125482, + "2024-09-27T14": 4.252360320000001, + "2024-09-27T23": 4.20350436, + "2024-09-28T11": 4.09224552, + "2024-09-29T00": 4.116370439999999, + "2024-09-28T18": 4.15287192, + "2024-09-29T23": 4.075945249345568, + "2024-10-01T13": 3.8315784799999997, + "2024-09-30T10": 3.9297642, + "2024-09-25T22": 3.9614057, + "2024-09-29T11": 4.0554055, + "2024-09-28T12": 4.0803671999999995, + "2024-09-26T09": 4.08714152, + "2024-09-28T10": 4.079530269999999, + "2024-09-27T16": 4.1984198, + "2024-09-24T17": 3.79043135, + "2024-09-27T15": 4.237932140000001, + "2024-09-29T12": 4.059487079999999, + "2024-09-25T04": 3.94880255, + "2024-09-25T21": 4.01639745, + "2024-09-25T18": 3.94225083, + "2024-09-26T04": 3.98384435, + "2024-09-26T05": 4.042827239999999, + "2024-09-30T04": 3.97480125, + "2024-09-27T13": 4.164791159999999, + "2024-09-28T13": 4.0723664799999995, + "2024-09-25T08": 3.92472525, + "2024-09-30T03": 3.96776192, + "2024-10-01T10": 3.92637168, + "2024-09-25T13": 3.91049157, + "2024-10-01T01": 3.87094731, + "2024-09-26T17": 4.110287700000001, + "2024-09-25T15": 3.97776132, + "2024-09-29T22": 4.095491399999999, + "2024-09-29T01": 4.10445144, + "2024-09-30T06": 4.02208044, + "2024-09-27T12": 4.14970533, + "2024-09-25T23": 3.933853433698315, + "2024-09-30T05": 3.9900399000000006, + "2024-09-28T23": 4.1304543, + "2024-09-30T19": 3.8965187599999997, + "2024-09-25T00": 3.87588372, + "2024-10-01T12": 3.9174906600000003, + "2024-09-29T10": 4.04536405, + "2024-09-24T22": 3.8648454, + "2024-09-26T08": 4.0861826, + "2024-09-29T20": 4.12165936, + "2024-09-25T12": 3.92368608, + "2024-09-25T05": 3.9396151708496046, + "2024-09-27T09": 4.17975222, + "2024-09-26T02": 3.95697092, + "2024-09-28T05": 4.14299408, + "2024-09-29T03": 4.11308226, + "2024-09-26T23": 4.082489839999999, + "2024-09-29T16": 4.0774077, + "2024-09-26T21": 4.0714071, + "2024-09-26T16": 4.13520675, + "2024-09-28T03": 4.1905028, + "2024-09-29T21": 4.116340160100473, + "2024-09-30T09": 3.989839898, + "2024-09-24T16": 3.7495125000000002, + "2024-09-30T07": 4.02608052, + "2024-09-28T17": 4.14887108, + "2024-09-28T02": 4.210505199999999, + "2024-09-28T15": 4.114370259999999, + "2024-09-29T17": 4.09753261, + "2024-09-25T17": 3.9333312200000004, + "2024-09-25T16": 3.9578021000000003, + "2024-10-01T04": 3.9098092799999997, + "2024-10-01T07": 3.9192944, + "2024-09-30T23": 3.80604825, + "2024-09-29T13": 4.05256728, + "2024-09-26T22": 4.0903272, + "2024-10-01T11": 3.9274108, + "2024-09-30T16": 3.8813012400000004, + "2024-09-28T01": 4.19150292, + "2024-09-27T02": 4.12146380327978, + "2024-09-30T20": 3.9027897599999997, + "2024-09-28T06": 4.115617250000001, + "2024-09-27T08": 4.198629700000001, + "2024-10-01T06": 3.908457758, + "2024-09-27T03": 4.161249659999999, + "2024-09-25T06": 3.91576504, + "2024-10-01T02": 3.85176468, + "2024-09-27T17": 4.1798358, + "2024-09-30T22": 3.85288234, + "2024-09-29T05": 4.09412282, + "2024-09-28T20": 4.150415000000001, + "2024-09-30T13": 3.9546045000000003, + "2024-09-26T18": 4.093517374158141, + "2024-09-25T10": 3.9297642, + "2024-09-25T02": 3.944963288, + "2024-09-29T02": 4.127082539999999, + "2024-09-28T08": 4.07973422, + "2024-09-30T17": 3.8999857399999995, + "2024-09-30T02": 3.9951997500000007, + "2024-09-28T09": 4.05156714, + "2024-09-25T03": 3.94680265, + "2024-09-29T15": 4.06652858, + "2024-09-29T06": 4.073162920000001, + "2024-09-24T18": 3.7953167200000006, + "2024-09-26T07": 4.09109976, + "2024-09-26T15": 4.112041120000001, + "2024-09-27T04": 4.18208364, + "2024-09-27T11": 4.121700570000001, + "2024-09-26T20": 4.0706512, + "2024-09-30T12": 3.94572378, + "2024-09-27T10": 4.137744660000001, + "2024-09-26T12": 4.11075334, + "2024-09-24T23": 3.86076834, + "2024-09-30T00": 4.048485759999999, + "2024-09-25T14": 3.9595643999999997, + "2024-09-26T14": 4.096959030000001, + "2024-09-27T01": 4.13457876, + "2024-09-28T04": 4.17654288, + "2024-09-29T08": 4.0495668600000005, + "2024-09-26T01": 3.9080227499999998, + "2024-09-27T19": 4.1956292500000005, + "2024-09-25T01": 3.92688219, + "2024-09-26T00": 3.9410145, + "2024-09-29T18": 4.10082, + "2024-09-28T19": 4.1494149, + "2024-09-28T22": 4.133495959999999, + "2024-09-27T18": 4.17937611, + "2024-09-24T21": 3.83876966, + "2024-09-30T08": 4.0151606, + "2024-09-25T11": 3.92772504, + "2024-09-25T20": 3.97544336, + "2024-10-01T09": 3.91845134, + "2024-10-01T03": 3.8933896800000003, + "2024-09-26T11": 4.11650596, + "2024-09-28T07": 4.1078214, + "2024-09-27T22": 4.19475492, + "2024-09-27T21": 4.183669279999999, + "2024-09-26T03": 3.96784899, + "2024-09-26T13": 4.09591808, + "2024-09-30T18": 3.9036723, + "2024-10-01T15": 3.79846012, + "2024-10-01T08": 3.9085309199999996, + "2024-09-25T19": 3.9894414, + "2024-09-30T21": 3.8967526400000003, + "2024-09-28T14": 4.1064106, + "2024-09-27T20": 4.1897540200000005, + "2024-09-26T06": 4.090977, + "2024-09-26T10": 4.11130096, + "2024-09-29T04": 4.09812294, + "2024-09-28T16": 4.148414799999999, + "2024-10-01T00": 3.83431216, + "2024-09-24T20": 3.83177008, + "2024-09-26T19": 4.1074107, + "2024-09-24T15": 3.74155096, + "2024-09-27T06": 4.221117798166499, + "2024-09-29T14": 4.07769309, + "2024-09-29T07": 4.0602842, + "2024-09-28T00": 4.201504119999999, + "2024-09-30T01": 4.03848456, + "2024-09-29T09": 4.065325200000001, + "2024-09-25T09": 3.90772644, + "2024-09-30T11": 3.94576324, + "2024-09-25T07": 3.9098436, + "2024-09-24T19": 3.8155420799999997, + "2024-09-29T19": 4.115740700000001, + "2024-09-30T15": 3.899493, + "2024-09-28T21": 4.107460698338914, + "2024-10-01T05": 3.89620692, + "2024-10-01T14": 3.79846012, + "2024-09-27T00": 4.11853534, + "latest": 3.63 + }, + "USD flare": { + "2024-09-12": 0.01455, + "2024-09-15": 0.01522, + "2024-09-22": 0.014931584606254595, + "2024-09-05": 0.01475, + "2024-09-10": 0.014796853973119393, + "2024-09-11": 0.01454599861544067, + "2024-09-20": 0.01499, + "2024-09-26": 0.015221462013593022, + "2024-09-16": 0.014598379972405503, + "2024-09-08": 0.014499542156945202, + "2024-09-24": 0.01501, + "2024-09-29": 0.01642, + "2024-09-17": 0.01462, + "2024-09-14": 0.015293629129252122, + "2024-09-03": 0.01536, + "2024-09-25": 0.01504, + "2024-09-18": 0.01431, + "2024-09-07": 0.014419949753015717, + "2024-09-06": 0.014456228201305455, + "2024-09-19": 0.01496, + "2024-09-30": 0.01564, + "2024-09-01": 0.01582, + "2024-08-31": 0.01601, + "2024-09-02": 0.01533, + "2024-09-23": 0.014918306056602888, + "2024-09-13": 0.01482, + "2024-10-01": 0.01527, + "2024-09-04": 0.01476, + "2024-09-28": 0.01656217491872693, + "2024-09-21": 0.0151, + "2024-09-09": 0.014486078260535102, + "2024-09-27": 0.01577, + "2024-09-27T07": 0.015630130386015493, + "2024-09-27T05": 0.01569083902355318, + "2024-09-30T14": 0.015641201845551168, + "2024-09-27T14": 0.015660894208380138, + "2024-09-27T23": 0.015850482756505566, + "2024-09-28T11": 0.015649475868298065, + "2024-09-29T00": 0.0165219698668063, + "2024-09-28T18": 0.016699088483647543, + "2024-09-29T23": 0.01621809764357821, + "2024-10-01T13": 0.01564035300897873, + "2024-09-30T10": 0.015553316212331325, + "2024-09-25T22": 0.015037742747042596, + "2024-09-29T11": 0.016320640748964305, + "2024-09-28T12": 0.015603442643123381, + "2024-09-26T09": 0.015015189917601684, + "2024-09-28T10": 0.015589695604890994, + "2024-09-27T16": 0.01577933162757341, + "2024-09-24T17": 0.01500142142911149, + "2024-09-27T15": 0.01591551586245741, + "2024-09-29T12": 0.016561780393189413, + "2024-09-25T04": 0.015340549647038204, + "2024-09-25T21": 0.015029552201562909, + "2024-09-25T18": 0.01493153175429148, + "2024-09-26T04": 0.014960013169162744, + "2024-09-26T05": 0.01496340908151271, + "2024-09-30T04": 0.016111646451052352, + "2024-09-27T13": 0.01573347241124716, + "2024-09-28T13": 0.015499399843565308, + "2024-09-25T08": 0.015086455462805995, + "2024-09-30T03": 0.016035362603791452, + "2024-10-01T10": 0.01564010455562809, + "2024-09-25T13": 0.015186133557809588, + "2024-10-01T01": 0.01529378702863645, + "2024-09-26T17": 0.015330282320995096, + "2024-09-25T15": 0.015047781290935295, + "2024-09-29T22": 0.016319101800742343, + "2024-09-29T01": 0.01638477509169115, + "2024-09-30T06": 0.01598523883570669, + "2024-09-27T12": 0.015659958256051883, + "2024-09-25T23": 0.014966336006493068, + "2024-09-30T05": 0.015945485147407314, + "2024-09-28T23": 0.01665943223731693, + "2024-09-30T19": 0.0155916225948084, + "2024-09-25T00": 0.015232555158263756, + "2024-10-01T12": 0.015591023354755453, + "2024-09-29T10": 0.01633597710724203, + "2024-09-24T22": 0.01525945444126309, + "2024-09-26T08": 0.015104375790148897, + "2024-09-29T20": 0.016416957749234004, + "2024-09-25T12": 0.015166560247383602, + "2024-09-25T05": 0.015236742938092705, + "2024-09-27T09": 0.015783644493736673, + "2024-09-26T02": 0.014819255794611536, + "2024-09-28T05": 0.01606865823678993, + "2024-09-29T03": 0.01672881444428934, + "2024-09-26T23": 0.015665221545843176, + "2024-09-29T16": 0.01644309376836413, + "2024-09-26T21": 0.015210115077468278, + "2024-09-26T16": 0.0152632750506942, + "2024-09-28T03": 0.01603022350663994, + "2024-09-29T21": 0.016389900390339433, + "2024-09-30T09": 0.015872866659139284, + "2024-09-24T16": 0.014974821759269763, + "2024-09-30T07": 0.015827888191188237, + "2024-09-28T17": 0.017056659537651824, + "2024-09-28T02": 0.015951356977208526, + "2024-09-28T15": 0.015542619190294076, + "2024-09-29T17": 0.016301233568581697, + "2024-09-25T17": 0.015029910159396344, + "2024-09-25T16": 0.015035104596300307, + "2024-10-01T04": 0.015540619401888608, + "2024-10-01T07": 0.015630922932300447, + "2024-09-30T23": 0.015420199439994559, + "2024-09-29T13": 0.01624504928824586, + "2024-09-26T22": 0.015310311921081734, + "2024-10-01T11": 0.015635394577276737, + "2024-09-30T16": 0.015531339281789916, + "2024-09-28T01": 0.01598634642797271, + "2024-09-27T02": 0.015607579748818096, + "2024-09-30T20": 0.015558114559626626, + "2024-09-28T06": 0.01588843478449384, + "2024-09-27T08": 0.015620942876004814, + "2024-10-01T06": 0.01555108880941598, + "2024-09-27T03": 0.015646584213143088, + "2024-09-25T06": 0.015252675658540512, + "2024-10-01T02": 0.015345840452768003, + "2024-09-27T17": 0.01592652483457687, + "2024-09-30T22": 0.015522787254164215, + "2024-09-29T05": 0.016826601882160883, + "2024-09-28T20": 0.016467802639201768, + "2024-09-30T13": 0.015697969178780243, + "2024-09-26T18": 0.015284366247914478, + "2024-09-25T10": 0.015061843007425198, + "2024-09-25T02": 0.015357915188579053, + "2024-09-29T02": 0.016299065290477362, + "2024-09-28T08": 0.015668853857952185, + "2024-09-30T17": 0.015580266009488244, + "2024-09-30T02": 0.015991145398041296, + "2024-09-28T09": 0.01553494862614115, + "2024-09-25T03": 0.015340970647737073, + "2024-09-29T15": 0.016400874830514858, + "2024-09-29T06": 0.016657263670409917, + "2024-09-24T18": 0.015011800399797761, + "2024-09-26T07": 0.015067385724585818, + "2024-09-26T15": 0.015223118668877137, + "2024-09-27T04": 0.015714913326285943, + "2024-09-27T11": 0.01566626049073669, + "2024-09-26T20": 0.01522386548537985, + "2024-09-30T12": 0.01570975903070538, + "2024-09-27T10": 0.015801278179881664, + "2024-09-26T12": 0.015184365178886721, + "2024-09-24T23": 0.015250291340399255, + "2024-09-30T00": 0.01619719454167914, + "2024-09-25T14": 0.014990857851297393, + "2024-09-26T14": 0.015374969081243414, + "2024-09-27T01": 0.015675360405237614, + "2024-09-28T04": 0.01601102792107145, + "2024-09-29T08": 0.016307748745944636, + "2024-09-26T01": 0.014820756421735522, + "2024-09-27T19": 0.01592356243949939, + "2024-09-25T01": 0.01523598959835112, + "2024-09-26T00": 0.014927855599488145, + "2024-09-29T18": 0.016366070000900068, + "2024-09-28T19": 0.016522873237795464, + "2024-09-28T22": 0.016290908642583406, + "2024-09-27T18": 0.01582329398052984, + "2024-09-24T21": 0.015257939973627526, + "2024-09-30T08": 0.01592364632404562, + "2024-09-25T11": 0.015111054445015912, + "2024-09-25T20": 0.0150609683062414, + "2024-10-01T09": 0.015650396083361003, + "2024-10-01T03": 0.015368531535001563, + "2024-09-26T11": 0.015176009726493205, + "2024-09-28T07": 0.015827567641401724, + "2024-09-27T22": 0.015808940717964057, + "2024-09-27T21": 0.01584751293675678, + "2024-09-26T03": 0.014931473830276312, + "2024-09-26T13": 0.015224814527586018, + "2024-09-30T18": 0.015572006914223153, + "2024-10-01T08": 0.015607655611894125, + "2024-09-25T19": 0.01500266621871181, + "2024-09-30T21": 0.015535263879318901, + "2024-09-28T14": 0.015435381505726582, + "2024-09-27T20": 0.015810458275525456, + "2024-09-26T06": 0.015002113929530981, + "2024-09-26T10": 0.015114773903394432, + "2024-09-29T04": 0.01694567717370935, + "2024-09-28T16": 0.01577213045349618, + "2024-10-01T00": 0.01529137709501603, + "2024-09-24T20": 0.015339158767802496, + "2024-09-26T19": 0.015220360385848586, + "2024-09-24T15": 0.014913544580775465, + "2024-09-27T06": 0.01564808483902637, + "2024-09-29T14": 0.01630953385725754, + "2024-09-29T07": 0.016404469203791103, + "2024-09-28T00": 0.015843356101441608, + "2024-09-30T01": 0.016105133629137146, + "2024-09-29T09": 0.016363013441389566, + "2024-09-25T09": 0.015108480897074495, + "2024-09-30T11": 0.015596442467943256, + "2024-09-25T07": 0.015105771687606706, + "2024-09-24T19": 0.015000597815655681, + "2024-09-29T19": 0.016418058031004445, + "2024-09-30T15": 0.015604709303622117, + "2024-09-28T21": 0.016457519829815356, + "2024-10-01T05": 0.01556474442015381, + "2024-10-01T14": 0.015357356348059977, + "2024-09-27T00": 0.01583222478569472, + "latest": 0.01505782, + "2024-10-01T15": 0.015215081255054176 + }, + "USD flow": { + "2024-09-12": 0.5471105229640434, + "2024-09-15": 0.5600116635139768, + "2024-09-22": 0.595744342333378, + "2024-09-05": 0.5564591445182031, + "2024-09-10": 0.5409585120249819, + "2024-09-11": 0.5435646684399033, + "2024-09-20": 0.5660196270747141, + "2024-09-26": 0.6012898149852152, + "2024-09-16": 0.5397498847046762, + "2024-09-08": 0.5156877726205223, + "2024-09-24": 0.5898940885176728, + "2024-09-29": 0.6171127627612207, + "2024-09-17": 0.5251490403818199, + "2024-09-14": 0.564633575837419, + "2024-09-03": 0.566047761275702, + "2024-09-25": 0.6046008023122502, + "2024-09-18": 0.5349435136959635, + "2024-09-07": 0.5146407958437089, + "2024-09-06": 0.5325163487169201, + "2024-09-19": 0.5427908151425841, + "2024-09-30": 0.6148457858269686, + "2024-09-01": 0.5535368214550344, + "2024-08-31": 0.5553139355263871, + "2024-09-02": 0.5287605317512613, + "2024-09-23": 0.5724979655801838, + "2024-09-13": 0.5593388250664265, + "2024-10-01": 0.5821534977751697, + "2024-09-04": 0.5547860287075268, + "2024-09-28": 0.6276766194766439, + "2024-09-21": 0.5766823387174491, + "2024-09-09": 0.5235606539869619, + "2024-09-27": 0.622551131112209, + "2024-09-27T07": 0.6325861429620475, + "2024-09-27T05": 0.6324655150008696, + "2024-09-30T14": 0.5974792005498011, + "2024-09-27T14": 0.6286938048333628, + "2024-09-27T23": 0.6305213633467968, + "2024-09-28T11": 0.6163761772935622, + "2024-09-29T00": 0.6179760809161853, + "2024-09-28T18": 0.6146118805227277, + "2024-09-29T23": 0.6178906555077897, + "2024-10-01T13": 0.5915256504800811, + "2024-09-30T10": 0.5965456503342703, + "2024-09-25T22": 0.6109308761083343, + "2024-09-29T11": 0.6079668030022953, + "2024-09-28T12": 0.6137713377263762, + "2024-09-26T09": 0.609231477312196, + "2024-09-28T10": 0.6129983148601349, + "2024-09-27T16": 0.6307159590023647, + "2024-09-24T17": 0.5904623561048944, + "2024-09-27T15": 0.6344207904843291, + "2024-09-29T12": 0.6094757789871585, + "2024-09-25T04": 0.6120640076305129, + "2024-09-25T21": 0.6096596772295816, + "2024-09-25T18": 0.6048779869472818, + "2024-09-26T04": 0.6017487733221683, + "2024-09-26T05": 0.6023886949005819, + "2024-09-30T04": 0.603497037324722, + "2024-09-27T13": 0.6308917612820548, + "2024-09-28T13": 0.6098760073062027, + "2024-09-25T08": 0.6132764047223094, + "2024-09-30T03": 0.6027350715060874, + "2024-10-01T10": 0.5934750097917643, + "2024-09-25T13": 0.6102358216050274, + "2024-10-01T01": 0.5882942711024005, + "2024-09-26T17": 0.6256130675647139, + "2024-09-25T15": 0.6149150656454552, + "2024-09-29T22": 0.6182333352540493, + "2024-09-29T01": 0.6116458013851069, + "2024-09-30T06": 0.6064564106268053, + "2024-09-27T12": 0.6267380833567319, + "2024-09-25T23": 0.6074438274612264, + "2024-09-30T05": 0.6029723917800633, + "2024-09-28T23": 0.6150925818263703, + "2024-09-30T19": 0.5894109961082465, + "2024-09-25T00": 0.6048616815978624, + "2024-10-01T12": 0.5924049601895242, + "2024-09-29T10": 0.6120748422575628, + "2024-09-24T22": 0.5983387196967191, + "2024-09-26T08": 0.6133504149375892, + "2024-09-29T20": 0.6224314972908045, + "2024-09-25T12": 0.6135820409058907, + "2024-09-25T05": 0.6051721232097503, + "2024-09-27T09": 0.6332201981690271, + "2024-09-26T02": 0.5979189035490431, + "2024-09-28T05": 0.6287383141289477, + "2024-09-29T03": 0.6124748151111603, + "2024-09-26T23": 0.6229586916955245, + "2024-09-29T16": 0.611735455235992, + "2024-09-26T21": 0.6126082292834433, + "2024-09-26T16": 0.6254633054830235, + "2024-09-28T03": 0.6305615503752011, + "2024-09-29T21": 0.6185633686237706, + "2024-09-30T09": 0.6049582620098015, + "2024-09-24T16": 0.5904956179520535, + "2024-09-30T07": 0.602734319500341, + "2024-09-28T17": 0.6120784237049344, + "2024-09-28T02": 0.6273848155638118, + "2024-09-28T15": 0.6140248593452684, + "2024-09-29T17": 0.6128226710925331, + "2024-09-25T17": 0.607652680698624, + "2024-09-25T16": 0.6088690500789886, + "2024-10-01T04": 0.5919199405025868, + "2024-10-01T07": 0.5938830154537071, + "2024-09-30T23": 0.5840378210274015, + "2024-09-29T13": 0.6056212467430877, + "2024-09-26T22": 0.6181516724346384, + "2024-10-01T11": 0.5942423963495113, + "2024-09-30T16": 0.5880707288852878, + "2024-09-28T01": 0.6274549644243151, + "2024-09-27T02": 0.624404140754014, + "2024-09-30T20": 0.5879175752578542, + "2024-09-28T06": 0.6250471715923963, + "2024-09-27T08": 0.6314846877580874, + "2024-10-01T06": 0.5884781443955752, + "2024-09-27T03": 0.6224317548684433, + "2024-09-25T06": 0.615338770565654, + "2024-10-01T02": 0.5871706399948953, + "2024-09-27T17": 0.636221290452706, + "2024-09-30T22": 0.5886538746392631, + "2024-09-29T05": 0.6160229676965631, + "2024-09-28T20": 0.6153927144073982, + "2024-09-30T13": 0.6003144576230259, + "2024-09-26T18": 0.6184188316826448, + "2024-09-25T10": 0.6079566802096485, + "2024-09-25T02": 0.6152429360279092, + "2024-09-29T02": 0.6122459206271582, + "2024-09-28T08": 0.6165822780660052, + "2024-09-30T17": 0.58787145389706, + "2024-09-30T02": 0.607813148716445, + "2024-09-28T09": 0.6102476512208304, + "2024-09-25T03": 0.6117434595355511, + "2024-09-29T15": 0.6102418613008489, + "2024-09-29T06": 0.6152005847281955, + "2024-09-24T18": 0.59395142062417, + "2024-09-26T07": 0.6122788971254921, + "2024-09-26T15": 0.6178064064530493, + "2024-09-27T04": 0.6284628721187776, + "2024-09-27T11": 0.6248892871464994, + "2024-09-26T20": 0.6168333246088711, + "2024-09-30T12": 0.5992970346477974, + "2024-09-27T10": 0.6325840029457409, + "2024-09-26T12": 0.6154231450027666, + "2024-09-24T23": 0.6081381305588459, + "2024-09-30T00": 0.6161269181263475, + "2024-09-25T14": 0.6102528738545818, + "2024-09-26T14": 0.6193180072804959, + "2024-09-27T01": 0.6256795080296949, + "2024-09-28T04": 0.627475715483147, + "2024-09-29T08": 0.6094632500697674, + "2024-09-26T01": 0.5969170765605352, + "2024-09-27T19": 0.6282056172810493, + "2024-09-25T01": 0.6077721529899947, + "2024-09-26T00": 0.6012898149852152, + "2024-09-29T18": 0.6159693052610018, + "2024-09-28T19": 0.6172932615257397, + "2024-09-28T22": 0.6126016035706385, + "2024-09-27T18": 0.6286511180548018, + "2024-09-24T21": 0.5983289005051416, + "2024-09-30T08": 0.6076960843220506, + "2024-09-25T11": 0.6082320365113392, + "2024-09-25T20": 0.6075122753989957, + "2024-10-01T09": 0.5928097726854272, + "2024-10-01T03": 0.5869162209615577, + "2024-09-26T11": 0.6162500662653063, + "2024-09-28T07": 0.6194366933268709, + "2024-09-27T22": 0.6273570601345961, + "2024-09-27T21": 0.6275248099248109, + "2024-09-26T03": 0.6022619409536274, + "2024-09-26T13": 0.6153889414101563, + "2024-09-30T18": 0.5909273714503676, + "2024-10-01T08": 0.5936957437520377, + "2024-09-25T19": 0.6070682410103323, + "2024-09-30T21": 0.5915252100177941, + "2024-09-28T14": 0.6101619024004122, + "2024-09-27T20": 0.6245375401147817, + "2024-09-26T06": 0.608024501996394, + "2024-09-26T10": 0.6095856664210135, + "2024-09-29T04": 0.6177446112063805, + "2024-09-28T16": 0.6127862048561704, + "2024-10-01T00": 0.5821534977751697, + "2024-09-24T20": 0.5980836142187499, + "2024-09-26T19": 0.6198148686737943, + "2024-09-24T15": 0.594125129711575, + "2024-09-27T06": 0.6352217491594719, + "2024-09-29T14": 0.6134243654427769, + "2024-09-29T07": 0.6121948887911549, + "2024-09-28T00": 0.6291607951140862, + "2024-09-30T01": 0.6168734960046423, + "2024-09-29T09": 0.6091710925384947, + "2024-09-25T09": 0.611147767009736, + "2024-09-30T11": 0.5983414356375337, + "2024-09-25T07": 0.6045908192091297, + "2024-09-24T19": 0.5924856223082917, + "2024-09-29T19": 0.615884067365416, + "2024-09-30T15": 0.594138363414155, + "2024-09-28T21": 0.6132370002351547, + "2024-10-01T05": 0.5924242214415522, + "2024-10-01T14": 0.57572723, + "2024-09-27T00": 0.6235161908856843, + "latest": 0.55198, + "2024-10-01T15": 0.57572723 + }, + "USD hedera": { + "2024-09-12": 0.050411918175366686, + "2024-09-15": 0.05146368232686661, + "2024-09-22": 0.05380771850936903, + "2024-09-05": 0.04840329376168728, + "2024-09-10": 0.05062781089694891, + "2024-09-11": 0.0497551189306506, + "2024-09-20": 0.05225950770171817, + "2024-09-26": 0.05939587271145768, + "2024-09-16": 0.04973707791104296, + "2024-09-08": 0.04921666583372976, + "2024-09-24": 0.056995447403197966, + "2024-09-29": 0.06090731597644877, + "2024-09-17": 0.04965971445815973, + "2024-09-14": 0.051952845109918835, + "2024-09-03": 0.04956, + "2024-09-25": 0.058895874536360304, + "2024-09-18": 0.04943678806733236, + "2024-09-07": 0.04802881363844134, + "2024-09-06": 0.04752364962453954, + "2024-09-19": 0.05194501941549923, + "2024-09-30": 0.059500291869040725, + "2024-09-01": 0.04890635597401176, + "2024-08-31": 0.05055548404134093, + "2024-09-02": 0.0498008470418846, + "2024-09-23": 0.055902225839844576, + "2024-09-13": 0.051601512726979305, + "2024-10-01": 0.058073920968491635, + "2024-09-04": 0.04887774751832845, + "2024-09-28": 0.061292880480533135, + "2024-09-21": 0.054297265452373136, + "2024-09-09": 0.050626966368268696, + "2024-09-27": 0.06161070446599349, + "2024-09-27T07": 0.062077567291187186, + "2024-09-27T05": 0.06187758433646001, + "2024-09-30T14": 0.059577284391175586, + "2024-09-27T14": 0.06132328795485055, + "2024-09-27T23": 0.061847793641883544, + "2024-09-28T11": 0.06149296929823828, + "2024-09-29T00": 0.061173669864376716, + "2024-09-28T18": 0.061102595755726984, + "2024-09-29T23": 0.06169041359446699, + "2024-10-01T13": 0.05846981334377109, + "2024-09-30T10": 0.05931118918325295, + "2024-09-25T22": 0.05908838409356888, + "2024-09-29T11": 0.06034585261738596, + "2024-09-28T12": 0.061393990340104405, + "2024-09-26T09": 0.0582330046461146, + "2024-09-28T10": 0.06112801895968118, + "2024-09-27T16": 0.06168287623423073, + "2024-09-24T17": 0.05651331408896898, + "2024-09-27T15": 0.06205401399629724, + "2024-09-29T12": 0.06075692235396166, + "2024-09-25T04": 0.05903158423957086, + "2024-09-25T21": 0.058761867261558465, + "2024-09-25T18": 0.058115357350343115, + "2024-09-26T04": 0.057918240197768554, + "2024-09-26T05": 0.057599470798661186, + "2024-09-30T04": 0.06010439510387799, + "2024-09-27T13": 0.06128513369848296, + "2024-09-28T13": 0.060787782546024495, + "2024-09-25T08": 0.05911409546783817, + "2024-09-30T03": 0.06014396665043487, + "2024-10-01T10": 0.05894974263168106, + "2024-09-25T13": 0.05896102029601581, + "2024-10-01T01": 0.05800243654670808, + "2024-09-26T17": 0.06125563573007235, + "2024-09-25T15": 0.05925522965418611, + "2024-09-29T22": 0.062005422036401386, + "2024-09-29T01": 0.060797156211581445, + "2024-09-30T06": 0.060079004007140065, + "2024-09-27T12": 0.061158395679778495, + "2024-09-25T23": 0.05903088713563695, + "2024-09-30T05": 0.05960986852997681, + "2024-09-28T23": 0.060945658308660854, + "2024-09-30T19": 0.05859854742254621, + "2024-09-25T00": 0.057419621530758844, + "2024-10-01T12": 0.05861770053124331, + "2024-09-29T10": 0.06047343183024773, + "2024-09-24T22": 0.0575231477798969, + "2024-09-26T08": 0.05868671179645958, + "2024-09-29T20": 0.062269392046605525, + "2024-09-25T12": 0.05974525324864648, + "2024-09-25T05": 0.05874511044147496, + "2024-09-27T09": 0.061485921744227456, + "2024-09-26T02": 0.05764626605746023, + "2024-09-28T05": 0.06354326147961792, + "2024-09-29T03": 0.06112840135410306, + "2024-09-26T23": 0.0616445570345296, + "2024-09-29T16": 0.060816413659945286, + "2024-09-26T21": 0.06088330640765561, + "2024-09-26T16": 0.06114246860564689, + "2024-09-28T03": 0.06273612840461479, + "2024-09-29T21": 0.061730552879036456, + "2024-09-30T09": 0.060348984973908365, + "2024-09-24T16": 0.05627142412175568, + "2024-09-30T07": 0.05999259508508028, + "2024-09-28T17": 0.060606023283793505, + "2024-09-28T02": 0.062140941724857665, + "2024-09-28T15": 0.0612519215977989, + "2024-09-29T17": 0.061429445807916226, + "2024-09-25T17": 0.05873666088547553, + "2024-09-25T16": 0.05854223170399264, + "2024-10-01T04": 0.05870467843582946, + "2024-10-01T07": 0.05919184701007178, + "2024-09-30T23": 0.05787649491496873, + "2024-09-29T13": 0.06001092847232046, + "2024-09-26T22": 0.06120527172558159, + "2024-10-01T11": 0.05904599400723357, + "2024-09-30T16": 0.058532412945666704, + "2024-09-28T01": 0.061814882243373885, + "2024-09-27T02": 0.06127248281537658, + "2024-09-30T20": 0.05860829475039379, + "2024-09-28T06": 0.06311391920399124, + "2024-09-27T08": 0.06150017194804487, + "2024-10-01T06": 0.05851251174277982, + "2024-09-27T03": 0.06106275970841904, + "2024-09-25T06": 0.059081920461164436, + "2024-10-01T02": 0.057995538492567694, + "2024-09-27T17": 0.06202291118942634, + "2024-09-30T22": 0.058857579870147676, + "2024-09-29T05": 0.06106210868976636, + "2024-09-28T20": 0.06112024609878018, + "2024-09-30T13": 0.059838562568775615, + "2024-09-26T18": 0.06113759403709285, + "2024-09-25T10": 0.05957079259094902, + "2024-09-25T02": 0.05827189332234788, + "2024-09-29T02": 0.06082392894696358, + "2024-09-28T08": 0.06138682316017294, + "2024-09-30T17": 0.05849258107358402, + "2024-09-30T02": 0.06067913898726282, + "2024-09-28T09": 0.060771521368951684, + "2024-09-25T03": 0.05830399171121009, + "2024-09-29T15": 0.0603628889546326, + "2024-09-29T06": 0.06090349680554854, + "2024-09-26T07": 0.0584093725606713, + "2024-09-26T15": 0.059701730486573484, + "2024-09-27T04": 0.06202800429186963, + "2024-09-27T11": 0.06068306816655782, + "2024-09-26T20": 0.061371523291560176, + "2024-09-30T12": 0.05954911823264379, + "2024-09-27T10": 0.06140034906383144, + "2024-09-26T12": 0.05896011720486923, + "2024-09-24T23": 0.057790304557627015, + "2024-09-30T00": 0.06142029268062493, + "2024-09-25T14": 0.05877104421391199, + "2024-09-26T14": 0.05980323187069111, + "2024-09-27T01": 0.06202515730110298, + "2024-09-28T04": 0.06333366684481741, + "2024-09-29T08": 0.06000909296517796, + "2024-09-26T01": 0.05724494498871166, + "2024-09-27T19": 0.06214495125000892, + "2024-09-25T01": 0.05753918169078827, + "2024-09-26T00": 0.058481251754837246, + "2024-09-29T18": 0.06179737069406662, + "2024-09-28T19": 0.06105756821238703, + "2024-09-28T22": 0.0610845022058426, + "2024-09-27T18": 0.061239985341185556, + "2024-09-24T21": 0.05711417502986657, + "2024-09-30T08": 0.060624007105437895, + "2024-09-25T11": 0.060118741531345984, + "2024-09-25T20": 0.05813191169665759, + "2024-10-01T09": 0.05894957016335375, + "2024-10-01T03": 0.05835085655985837, + "2024-09-26T11": 0.059064843330925466, + "2024-09-28T07": 0.06211527205391477, + "2024-09-27T22": 0.06160649986205081, + "2024-09-27T21": 0.061368753482820546, + "2024-09-26T03": 0.05792093771769813, + "2024-09-26T13": 0.059218162081623116, + "2024-09-30T18": 0.058831914134051096, + "2024-10-01T08": 0.05918058799189227, + "2024-09-25T19": 0.05824511087784976, + "2024-09-30T21": 0.059079871662639574, + "2024-09-28T14": 0.06078025657162312, + "2024-09-27T20": 0.06142267244055978, + "2024-09-26T06": 0.05831839659540759, + "2024-09-26T10": 0.05826381952230304, + "2024-09-29T04": 0.06163271095023572, + "2024-09-28T16": 0.061129524731980404, + "2024-10-01T00": 0.05748270321945978, + "2024-09-24T20": 0.05729628263378359, + "2024-09-26T19": 0.06193347405369156, + "2024-09-24T15": 0.05635364509929929, + "2024-09-27T06": 0.06262950427575593, + "2024-09-29T14": 0.060648338170474304, + "2024-09-29T07": 0.0604785475918022, + "2024-09-28T00": 0.061937533693061604, + "2024-09-30T01": 0.061602514514581236, + "2024-09-29T09": 0.06018133066339019, + "2024-09-25T09": 0.05984499290634022, + "2024-09-30T11": 0.05906492208777867, + "2024-09-25T07": 0.05865222484414919, + "2024-09-24T19": 0.05655610804303293, + "2024-09-29T19": 0.062008148728470075, + "2024-09-30T15": 0.059230276481408516, + "2024-09-28T21": 0.06103647535601697, + "2024-10-01T05": 0.05881834633472645, + "2024-10-01T14": 0.05705196579589891, + "2024-09-27T00": 0.061703462120263744, + "latest": 0.054517, + "2024-10-01T15": 0.05705196579589891 + }, + "USD injective": { + "2024-09-12": 19.17955598838202, + "2024-09-15": 19.795090974298702, + "2024-09-22": 21.13134850444247, + "2024-09-05": 17.091592364927052, + "2024-09-10": 17.858758917187096, + "2024-09-11": 18.252657249136266, + "2024-09-20": 20.834965283297777, + "2024-09-26": 23.18419909655185, + "2024-09-16": 18.248641457674843, + "2024-09-08": 16.234720717781844, + "2024-09-24": 22.147992555857595, + "2024-09-29": 22.702369769460617, + "2024-09-17": 18.499996813654633, + "2024-09-14": 19.54219091333102, + "2024-09-03": 16.739091912086497, + "2024-09-25": 21.86653842927309, + "2024-09-18": 19.027820383815598, + "2024-09-07": 16.237473272031373, + "2024-09-06": 16.628671063092234, + "2024-09-19": 20.612627088285556, + "2024-09-30": 23.13825999478347, + "2024-09-01": 17.022431582844455, + "2024-08-31": 17.342264112806703, + "2024-09-02": 16.847633772384455, + "2024-09-23": 22.103521679050996, + "2024-09-13": 19.120793893627837, + "2024-10-01": 23.734400135244464, + "2024-09-04": 16.152743677626827, + "2024-09-28": 23.085708049601916, + "2024-09-21": 20.963939779188326, + "2024-09-09": 16.56474287661661, + "2024-09-27": 23.281499572421975, + "2024-09-27T07": 23.172317000000003, + "2024-09-27T05": 23.301165000000005, + "2024-09-30T14": 22.922837460042647, + "2024-09-27T14": 23.255439360000004, + "2024-09-27T23": 23.657838599999998, + "2024-09-28T11": 23.28939728, + "2024-09-29T00": 22.8220538, + "2024-09-28T18": 22.93381509, + "2024-09-29T23": 23.203480000000003, + "2024-10-01T13": 23.57040697, + "2024-09-30T10": 22.7686338, + "2024-09-25T22": 22.673565021035937, + "2024-09-29T11": 22.60226, + "2024-09-28T12": 23.0920781, + "2024-09-26T09": 23.18629562829629, + "2024-09-28T10": 23.2330199, + "2024-09-27T16": 23.572357, + "2024-09-24T17": 22.003520565874222, + "2024-09-27T15": 23.295123800000002, + "2024-09-29T12": 22.552705999999997, + "2024-09-25T04": 21.659569194808014, + "2024-09-25T21": 23.053786612193527, + "2024-09-25T18": 22.634710197212904, + "2024-09-26T04": 22.853240511816047, + "2024-09-26T05": 23.07598899805504, + "2024-09-30T04": 22.718864, + "2024-09-27T13": 23.064381399999995, + "2024-09-28T13": 22.902060999999996, + "2024-09-25T08": 21.438499200000003, + "2024-09-30T03": 22.700884008131094, + "2024-10-01T10": 24.2061264, + "2024-09-25T13": 21.5172024, + "2024-10-01T01": 23.732101516074334, + "2024-09-26T17": 23.28018177716617, + "2024-09-25T15": 22.0686758, + "2024-09-29T22": 23.492818799999995, + "2024-09-29T01": 22.6524915, + "2024-09-30T06": 23.530470599999997, + "2024-09-27T12": 23.00391, + "2024-09-25T23": 22.45456720130826, + "2024-09-30T05": 23.1402314, + "2024-09-28T23": 22.8325113, + "2024-09-30T19": 23.16919236, + "2024-09-25T00": 21.65635029, + "2024-10-01T12": 24.0468735, + "2024-09-29T10": 22.5120259, + "2024-09-24T22": 22.049118, + "2024-09-26T08": 23.45792676514177, + "2024-09-29T20": 23.548184290192637, + "2024-09-25T12": 21.56727448, + "2024-09-25T05": 21.612580245951815, + "2024-09-27T09": 23.16934836000388, + "2024-09-26T02": 22.636959138264444, + "2024-09-28T05": 23.6656784, + "2024-09-29T03": 22.7604552, + "2024-09-26T23": 23.018798426750973, + "2024-09-29T16": 22.732273, + "2024-09-26T21": 22.862285999999997, + "2024-09-26T16": 23.449902666504535, + "2024-09-28T03": 23.844861039999998, + "2024-09-29T21": 23.5935385, + "2024-09-30T09": 23.190231900000004, + "2024-09-24T16": 21.827451117366834, + "2024-09-30T07": 23.520470399999997, + "2024-09-28T17": 22.84079556, + "2024-09-28T02": 23.842860799999997, + "2024-09-28T15": 23.152083499999996, + "2024-09-29T17": 22.98598779, + "2024-09-25T17": 22.29160313098223, + "2024-09-25T16": 22.02674768995958, + "2024-10-01T04": 24.631096968179257, + "2024-10-01T07": 24.485591799999998, + "2024-09-30T23": 23.094225, + "2024-09-29T13": 22.533154200000002, + "2024-09-26T22": 23.095847520000003, + "2024-10-01T11": 24.09055410930315, + "2024-09-30T16": 23.113726571427186, + "2024-09-28T01": 23.612833199999997, + "2024-09-27T02": 23.01358980278355, + "2024-09-30T20": 23.7626313, + "2024-09-28T06": 23.233484500000003, + "2024-09-27T08": 23.24048555, + "2024-10-01T06": 24.21720976577295, + "2024-09-27T03": 23.341400399999998, + "2024-09-25T06": 21.4288907893229, + "2024-10-01T02": 23.720035007061593, + "2024-09-27T17": 23.5047, + "2024-09-30T22": 23.5631647, + "2024-09-29T05": 22.6306789, + "2024-09-28T20": 22.922292000000002, + "2024-09-30T13": 23.266501026354398, + "2024-09-26T18": 22.969956438366992, + "2024-09-25T10": 21.37671732, + "2024-09-25T02": 21.8177165158055, + "2024-09-29T02": 22.800455999999997, + "2024-09-28T08": 22.9641328, + "2024-09-30T17": 23.048306464600433, + "2024-09-30T02": 22.736136750000004, + "2024-09-28T09": 22.8932046, + "2024-09-25T03": 21.744187539696917, + "2024-09-29T15": 22.652944499999997, + "2024-09-29T06": 22.530901200000002, + "2024-09-24T18": 21.880449173573894, + "2024-09-26T07": 23.640016641011737, + "2024-09-26T15": 23.273270097719234, + "2024-09-27T04": 23.3604672, + "2024-09-27T11": 22.9238964, + "2024-09-26T20": 22.74078047477751, + "2024-09-30T12": 23.1383802, + "2024-09-27T10": 22.854113, + "2024-09-26T12": 23.463257125228353, + "2024-09-24T23": 22.0386776, + "2024-09-30T00": 22.99311485922785, + "2024-09-25T14": 21.9375866, + "2024-09-26T14": 23.360496692822085, + "2024-09-27T01": 23.052651336118927, + "2024-09-28T04": 23.85610089, + "2024-09-29T08": 22.454143140000003, + "2024-09-26T01": 22.208467481111363, + "2024-09-27T19": 23.622309127107123, + "2024-09-25T01": 21.87535056514672, + "2024-09-26T00": 22.508411854896327, + "2024-09-29T18": 23.05461, + "2024-09-28T19": 22.932292999999998, + "2024-09-28T22": 22.7677318, + "2024-09-27T18": 23.46202216578751, + "2024-09-24T21": 22.048677, + "2024-09-30T08": 23.4309372, + "2024-09-25T11": 21.542767567722755, + "2024-09-25T20": 22.926625144053475, + "2024-10-01T09": 24.216609199999997, + "2024-10-01T03": 24.314074852996708, + "2024-09-26T11": 23.227432842596148, + "2024-09-28T07": 23.131625399999997, + "2024-09-27T22": 23.60224764, + "2024-09-27T21": 23.603776, + "2024-09-26T03": 22.686542123505856, + "2024-09-26T13": 23.25561799740951, + "2024-09-30T18": 23.02222259622574, + "2024-10-01T15": 23.133058000000002, + "2024-10-01T08": 24.38007404, + "2024-09-25T19": 22.829578213008848, + "2024-09-30T21": 23.802380799999998, + "2024-09-28T14": 23.092309, + "2024-09-27T20": 23.545237380000003, + "2024-09-26T06": 23.55347748129848, + "2024-09-26T10": 23.23580746118267, + "2024-09-29T04": 22.6906807, + "2024-09-28T16": 22.8812879, + "2024-10-01T00": 23.11672190336553, + "2024-09-24T20": 22.125065700815814, + "2024-09-26T19": 22.99480761282322, + "2024-09-24T15": 21.734591713844907, + "2024-09-27T06": 23.314466279999998, + "2024-09-29T14": 22.5938403, + "2024-09-29T07": 22.4515715, + "2024-09-28T00": 23.614833439999995, + "2024-09-30T01": 22.99283090031436, + "2024-09-29T09": 22.611808800000002, + "2024-09-25T09": 21.3085083, + "2024-09-30T11": 22.85262876, + "2024-09-25T07": 21.341895719279265, + "2024-09-24T19": 21.972717145552014, + "2024-09-29T19": 23.254185000000003, + "2024-09-30T15": 23.33173785623057, + "2024-09-28T21": 22.6824948, + "2024-10-01T05": 24.210344198140003, + "2024-10-01T14": 23.133058000000002, + "2024-09-27T00": 23.0729991, + "latest": 21.89 + }, + "USD internet_computer": { + "2024-09-12": 8.492045134345949, + "2024-09-15": 8.585325842766986, + "2024-09-22": 8.26214488932667, + "2024-09-05": 7.353763983647169, + "2024-09-10": 7.99902796738896, + "2024-09-11": 8.672663997067115, + "2024-09-20": 8.374718455556703, + "2024-09-26": 9.266705610163044, + "2024-09-16": 8.036640871789022, + "2024-09-08": 7.309618316125813, + "2024-09-24": 9.053768410753852, + "2024-09-29": 9.6408769294003, + "2024-09-17": 7.962311482564102, + "2024-09-14": 8.635711854146738, + "2024-09-03": 7.440730836068655, + "2024-09-25": 9.251958330825214, + "2024-09-18": 7.817864962204788, + "2024-09-07": 7.087276026652283, + "2024-09-06": 7.10870942492901, + "2024-09-19": 8.235907699898656, + "2024-09-30": 9.277692692829454, + "2024-09-01": 7.366675594675391, + "2024-08-31": 7.555577019801302, + "2024-09-02": 7.342426018901828, + "2024-09-23": 8.483050710974268, + "2024-09-13": 8.405381802884737, + "2024-10-01": 9.088493601606455, + "2024-09-04": 7.253629576475999, + "2024-09-28": 9.773464081677119, + "2024-09-21": 8.435503256708833, + "2024-09-09": 7.529264988350635, + "2024-09-27": 9.58291064238436, + "2024-09-27T07": 9.5359535, + "2024-09-27T05": 9.4524726, + "2024-09-30T14": 9.179255609999998, + "2024-09-27T14": 9.678416854368693, + "2024-09-27T23": 9.91518968, + "2024-09-28T11": 9.80758842, + "2024-09-29T00": 9.628634244042834, + "2024-09-28T18": 9.671030490000001, + "2024-09-29T23": 9.617306539294406, + "2024-10-01T13": 9.0490045, + "2024-09-30T10": 9.222446620000001, + "2024-09-25T22": 9.0746386, + "2024-09-29T11": 9.640964, + "2024-09-28T12": 9.728875519999999, + "2024-09-26T09": 9.15707661, + "2024-09-28T10": 9.78527192, + "2024-09-27T16": 9.781242647303666, + "2024-09-24T17": 9.09060059085521, + "2024-09-27T15": 9.76053231852542, + "2024-09-29T12": 9.600351903999998, + "2024-09-25T04": 9.317055813845462, + "2024-09-25T21": 9.1426284, + "2024-09-25T18": 9.24724269, + "2024-09-26T04": 9.17233925, + "2024-09-26T05": 9.23132214, + "2024-09-30T04": 9.334630256633032, + "2024-09-27T13": 9.579914242680555, + "2024-09-28T13": 9.691672171999999, + "2024-09-25T08": 9.20135586, + "2024-09-30T03": 9.361458842550853, + "2024-10-01T10": 9.27051648, + "2024-09-25T13": 9.1888053, + "2024-10-01T01": 9.100721892433363, + "2024-09-26T17": 9.549851892508546, + "2024-09-25T15": 9.39743612, + "2024-09-29T22": 9.758170839999998, + "2024-09-29T01": 9.58805457, + "2024-09-30T06": 9.479643604589524, + "2024-09-27T12": 9.575627579999999, + "2024-09-25T23": 9.04600944, + "2024-09-30T05": 9.39273014406704, + "2024-09-28T23": 9.653897549288178, + "2024-09-30T19": 9.1115363, + "2024-09-25T00": 9.448229012759546, + "2024-10-01T12": 9.21080244, + "2024-09-29T10": 9.58586265, + "2024-09-24T22": 9.414911038754383, + "2024-09-26T08": 9.130507852506794, + "2024-09-29T20": 9.686753607842336, + "2024-09-25T12": 9.23826088, + "2024-09-25T05": 9.261244474753637, + "2024-09-27T09": 9.590726020000002, + "2024-09-26T02": 9.15161996, + "2024-09-28T05": 9.935035132362563, + "2024-09-29T03": 9.700193999999998, + "2024-09-26T23": 9.492138919999999, + "2024-09-29T16": 9.534728765730078, + "2024-09-26T21": 9.499073488513389, + "2024-09-26T16": 9.587915022332357, + "2024-09-28T03": 9.936192199999999, + "2024-09-29T21": 9.7714655, + "2024-09-30T09": 9.35409354, + "2024-09-24T16": 9.043060380579602, + "2024-09-30T07": 9.447491139086933, + "2024-09-28T17": 9.672852988189899, + "2024-09-28T02": 9.924190759999998, + "2024-09-28T15": 9.76787903, + "2024-09-29T17": 9.65958803078575, + "2024-09-25T17": 9.224331596999999, + "2024-09-25T16": 9.330533449999999, + "2024-10-01T04": 9.26280992, + "2024-10-01T07": 9.3433179, + "2024-09-30T23": 8.99775, + "2024-09-29T13": 9.5813412, + "2024-09-26T22": 9.55776456, + "2024-10-01T11": 9.24761265, + "2024-09-30T16": 9.11635876, + "2024-09-28T01": 9.835180079999999, + "2024-09-27T02": 9.373054783872384, + "2024-09-30T20": 9.17215575, + "2024-09-28T06": 9.8294742, + "2024-09-27T08": 9.581437000000001, + "2024-10-01T06": 9.28909694, + "2024-09-27T03": 9.37456244, + "2024-09-25T06": 9.204688645478502, + "2024-10-01T02": 9.056982111630496, + "2024-09-27T17": 9.78065357675805, + "2024-09-30T22": 9.068369409999999, + "2024-09-29T05": 9.71429142, + "2024-09-28T20": 9.65386529, + "2024-09-30T13": 9.2680731, + "2024-09-26T18": 9.516826109618389, + "2024-09-25T10": 9.16245022, + "2024-09-25T02": 9.49813846304048, + "2024-09-29T02": 9.665193299999999, + "2024-09-28T08": 9.76575752, + "2024-09-30T17": 9.117628799999999, + "2024-09-30T02": 9.370809016426422, + "2024-09-28T09": 9.653351279999999, + "2024-09-25T03": 9.413697320487023, + "2024-09-29T15": 9.5212376, + "2024-09-29T06": 9.64838592, + "2024-09-24T18": 9.21486584846715, + "2024-09-26T07": 9.227969400000001, + "2024-09-26T15": 9.480507155604938, + "2024-09-27T04": 9.45118902, + "2024-09-27T11": 9.4216014, + "2024-09-26T20": 9.460120941066478, + "2024-09-30T12": 9.23635341, + "2024-09-27T10": 9.40173660302771, + "2024-09-26T12": 9.26927963165039, + "2024-09-24T23": 9.403199936241098, + "2024-09-30T00": 9.47413676, + "2024-09-25T14": 9.33497304, + "2024-09-26T14": 9.39382383958652, + "2024-09-27T01": 9.41531796, + "2024-09-28T04": 9.97229623, + "2024-09-29T08": 9.5813412, + "2024-09-26T01": 9.029742, + "2024-09-27T19": 9.842766109315422, + "2024-09-25T01": 9.485131246919893, + "2024-09-26T00": 9.045738, + "2024-09-29T18": 9.714042607114335, + "2024-09-28T19": 9.687968699999999, + "2024-09-28T22": 9.639156559999998, + "2024-09-27T18": 9.828515154998408, + "2024-09-24T21": 9.344125216396584, + "2024-09-30T08": 9.409376360000001, + "2024-09-25T11": 9.2593518, + "2024-09-25T20": 9.108724599999999, + "2024-10-01T09": 9.32169478, + "2024-10-01T03": 9.205927893, + "2024-09-26T11": 9.255889159999999, + "2024-09-28T07": 9.85197, + "2024-09-27T22": 9.88377876, + "2024-09-27T21": 9.845575039999998, + "2024-09-26T03": 9.17333896, + "2024-09-26T13": 9.299580215002061, + "2024-09-30T18": 9.081911100000001, + "2024-10-01T08": 9.36465271758461, + "2024-09-25T19": 9.19571242, + "2024-09-30T21": 9.15007104, + "2024-09-28T14": 9.8189818, + "2024-09-27T20": 9.82534491755542, + "2024-09-26T06": 9.2516865, + "2024-09-26T10": 9.22643124, + "2024-09-29T04": 9.690290699999998, + "2024-09-28T16": 9.6489648, + "2024-10-01T00": 9.0160312, + "2024-09-24T20": 9.393442966943393, + "2024-09-26T19": 9.521609374368605, + "2024-09-24T15": 9.016104411715045, + "2024-09-27T06": 9.61719234, + "2024-09-29T14": 9.601632, + "2024-09-29T07": 9.573290613174851, + "2024-09-28T00": 9.889186559999999, + "2024-09-30T01": 9.478366036550122, + "2024-09-29T09": 9.686774880000002, + "2024-09-25T09": 9.177357540000001, + "2024-09-30T11": 9.22844626, + "2024-09-25T07": 9.17663292, + "2024-09-24T19": 9.245925924395262, + "2024-09-29T19": 9.668227209672095, + "2024-09-30T15": 9.20980257, + "2024-09-28T21": 9.56805237, + "2024-10-01T05": 9.218757420000001, + "2024-10-01T14": 8.926343780207315, + "2024-09-27T00": 9.46222993, + "latest": 8.53, + "2024-10-01T15": 8.926349769568422 + }, + "USD iota": { + "2024-09-12": 0.1260783449441795, + "2024-09-15": 0.12841495723342414, + "2024-09-22": 0.14427884516416065, + "2024-09-05": 0.12474968798705975, + "2024-09-10": 0.1265085380099429, + "2024-09-11": 0.1293387743146965, + "2024-09-20": 0.13227733974648445, + "2024-09-26": 0.14284278933512443, + "2024-09-16": 0.12340088217010743, + "2024-09-08": 0.11877608716574108, + "2024-09-24": 0.14202700835171028, + "2024-09-29": 0.14334934204544747, + "2024-09-17": 0.12035789158167452, + "2024-09-14": 0.13118892645634983, + "2024-09-03": 0.12806131964450151, + "2024-09-25": 0.14373479109164014, + "2024-09-18": 0.12273654237232848, + "2024-09-07": 0.11715313254729462, + "2024-09-06": 0.12052050343775639, + "2024-09-19": 0.12551335949060455, + "2024-09-30": 0.1430585228081669, + "2024-09-01": 0.12469821617585727, + "2024-08-31": 0.1251525072009801, + "2024-09-02": 0.12056988351745299, + "2024-09-23": 0.13684872710437196, + "2024-09-13": 0.1304808987560765, + "2024-10-01": 0.13333469712636864, + "2024-09-04": 0.12259013289054617, + "2024-09-28": 0.14906440185677952, + "2024-09-21": 0.13899895236277862, + "2024-09-09": 0.120885435017393, + "2024-09-27": 0.1466661915588895, + "2024-09-27T07": 0.14831200249499388, + "2024-09-27T05": 0.14770630611100416, + "2024-09-30T14": 0.13881836571702919, + "2024-09-27T14": 0.14846066834746105, + "2024-09-27T23": 0.1490568014101189, + "2024-09-28T11": 0.1452449455475146, + "2024-09-29T00": 0.1432604785227304, + "2024-09-28T18": 0.1437827555950072, + "2024-09-29T23": 0.14321458785068228, + "2024-10-01T13": 0.13518138977357871, + "2024-09-30T10": 0.13818041220592844, + "2024-09-25T22": 0.14498237172543357, + "2024-09-29T11": 0.1407237877748516, + "2024-09-28T12": 0.14492176539988907, + "2024-09-26T09": 0.14518245352030637, + "2024-09-28T10": 0.14532416459918251, + "2024-09-27T16": 0.1489710494126422, + "2024-09-24T17": 0.14036925488579044, + "2024-09-27T15": 0.14914009841262674, + "2024-09-29T12": 0.14135814713400385, + "2024-09-25T04": 0.14498905757138958, + "2024-09-25T21": 0.1445222063699178, + "2024-09-25T18": 0.1433572671342752, + "2024-09-26T04": 0.14302087037132982, + "2024-09-26T05": 0.1425228840778839, + "2024-09-30T04": 0.1402276933138722, + "2024-09-27T13": 0.1485182061728597, + "2024-09-28T13": 0.14437826360186065, + "2024-09-25T08": 0.14328552857439286, + "2024-09-30T03": 0.13990270938562072, + "2024-10-01T10": 0.13535910790886554, + "2024-09-25T13": 0.1433160250806503, + "2024-10-01T01": 0.1347132987247212, + "2024-09-26T17": 0.14735928079813362, + "2024-09-25T15": 0.1452375440610555, + "2024-09-29T22": 0.14426275190700816, + "2024-09-29T01": 0.14237841057054904, + "2024-09-30T06": 0.1406640539181238, + "2024-09-27T12": 0.14731919316922645, + "2024-09-25T23": 0.14394119152226634, + "2024-09-30T05": 0.13949046285527575, + "2024-09-28T23": 0.14284438102963581, + "2024-09-30T19": 0.1359684043504939, + "2024-09-25T00": 0.14323653697735023, + "2024-10-01T12": 0.13514803781586288, + "2024-09-29T10": 0.1405385354573801, + "2024-09-24T22": 0.1431202009471677, + "2024-09-26T08": 0.14695084824554755, + "2024-09-29T20": 0.14583113070675285, + "2024-09-25T12": 0.14472616183555212, + "2024-09-25T05": 0.14363150674136851, + "2024-09-27T09": 0.149361498077231, + "2024-09-26T02": 0.14123870574482475, + "2024-09-28T05": 0.15052528672523413, + "2024-09-29T03": 0.1431826244581442, + "2024-09-26T23": 0.14584175730067114, + "2024-09-29T16": 0.14366488493374382, + "2024-09-26T21": 0.14370192085723107, + "2024-09-26T16": 0.1469100662842021, + "2024-09-28T03": 0.15072348295029314, + "2024-09-29T21": 0.14371298659186799, + "2024-09-30T09": 0.141690639562511, + "2024-09-24T16": 0.13960513419589496, + "2024-09-30T07": 0.1405162333428025, + "2024-09-28T17": 0.14378480322821832, + "2024-09-28T02": 0.14839749158906354, + "2024-09-28T15": 0.1450473015772728, + "2024-09-29T17": 0.14374323638838749, + "2024-09-25T17": 0.14558027246332478, + "2024-09-25T16": 0.14465201419249837, + "2024-10-01T04": 0.13517469584262784, + "2024-10-01T07": 0.13552742958857122, + "2024-09-30T23": 0.13441767199344914, + "2024-09-29T13": 0.1408580138570168, + "2024-09-26T22": 0.14478590052565665, + "2024-10-01T11": 0.13544676688928486, + "2024-09-30T16": 0.13597631324362708, + "2024-09-28T01": 0.14860964599455342, + "2024-09-27T02": 0.1464654712359449, + "2024-09-30T20": 0.13583588317244633, + "2024-09-28T06": 0.14884944545053955, + "2024-09-27T08": 0.14809070902184598, + "2024-10-01T06": 0.13449403591499978, + "2024-09-27T03": 0.14629174421750957, + "2024-09-25T06": 0.1445415468392623, + "2024-10-01T02": 0.1343981911754711, + "2024-09-27T17": 0.1497696997888136, + "2024-09-30T22": 0.1358238474029146, + "2024-09-29T05": 0.14231764169994032, + "2024-09-28T20": 0.14310188066745433, + "2024-09-30T13": 0.13971589693480982, + "2024-09-26T18": 0.14576526549555982, + "2024-09-25T10": 0.14328754289131265, + "2024-09-25T02": 0.14421019666611506, + "2024-09-29T02": 0.14320672396056477, + "2024-09-28T08": 0.14751469733923542, + "2024-09-30T17": 0.1360010320750475, + "2024-09-30T02": 0.14027888120912954, + "2024-09-28T09": 0.14487482621540212, + "2024-09-25T03": 0.14464775851011974, + "2024-09-29T15": 0.14219181134346498, + "2024-09-29T06": 0.14171771646560224, + "2024-09-24T18": 0.14206607657724238, + "2024-09-26T07": 0.145932219069721, + "2024-09-26T15": 0.14423127824540996, + "2024-09-27T04": 0.14793208470231678, + "2024-09-27T11": 0.14709941906015656, + "2024-09-26T20": 0.14541892344064275, + "2024-09-30T12": 0.13900072265436536, + "2024-09-27T10": 0.14868258877777704, + "2024-09-26T12": 0.14594645218377206, + "2024-09-24T23": 0.14455505221222115, + "2024-09-30T00": 0.1430585228081669, + "2024-09-25T14": 0.14337172293174416, + "2024-09-26T14": 0.14532052014218014, + "2024-09-27T01": 0.1462505946782492, + "2024-09-28T04": 0.1504581745676825, + "2024-09-29T08": 0.13970639605257082, + "2024-09-26T01": 0.14124291232986924, + "2024-09-27T19": 0.14851733397188044, + "2024-09-25T01": 0.14393498780673605, + "2024-09-26T00": 0.14284278933512443, + "2024-09-29T18": 0.1442186982890661, + "2024-09-28T19": 0.14417088929593655, + "2024-09-28T22": 0.14211566700813294, + "2024-09-27T18": 0.14866065161987127, + "2024-09-24T21": 0.14241835799397431, + "2024-09-30T08": 0.14152441984654499, + "2024-09-25T11": 0.14329433876909645, + "2024-09-25T20": 0.14416390412114508, + "2024-10-01T09": 0.13500071174364148, + "2024-10-01T03": 0.13419019116513434, + "2024-09-26T11": 0.14675086676840568, + "2024-09-28T07": 0.1475326155832921, + "2024-09-27T22": 0.1482238348677103, + "2024-09-27T21": 0.14755497929533046, + "2024-09-26T03": 0.14250733581031302, + "2024-09-26T13": 0.1454936816384184, + "2024-09-30T18": 0.13579912130685218, + "2024-10-01T08": 0.13554747784007634, + "2024-09-25T19": 0.14456718807275523, + "2024-09-30T21": 0.13624859863708963, + "2024-09-28T14": 0.14422237720198122, + "2024-09-27T20": 0.14809816010859236, + "2024-09-26T06": 0.14484042983631568, + "2024-09-26T10": 0.14553598666116377, + "2024-09-29T04": 0.14296739096194194, + "2024-09-28T16": 0.1440924483401803, + "2024-10-01T00": 0.13333469712636864, + "2024-09-24T20": 0.14285724419397627, + "2024-09-26T19": 0.1463372022325557, + "2024-09-24T15": 0.14023444235054727, + "2024-09-27T06": 0.14848195377764617, + "2024-09-29T14": 0.14197618425290068, + "2024-09-29T07": 0.1410016936668044, + "2024-09-28T00": 0.1493001407817279, + "2024-09-30T01": 0.14243045654446465, + "2024-09-29T09": 0.1408538596058054, + "2024-09-25T09": 0.14378570621598355, + "2024-09-30T11": 0.1382528921427843, + "2024-09-25T07": 0.14320277946757137, + "2024-09-24T19": 0.14100322157482886, + "2024-09-29T19": 0.14479646986530118, + "2024-09-30T15": 0.13769022486081536, + "2024-09-28T21": 0.14253795928709123, + "2024-10-01T05": 0.13529905212188528, + "2024-10-01T14": 0.13032004523622176, + "2024-09-27T00": 0.1465817972888302, + "latest": 0.123305, + "2024-10-01T15": 0.1274766665396896 + }, + "USD klaytn": { + "2024-09-12": 0.13205230708178897, + "2024-09-15": 0.13320726615792253, + "2024-09-22": 0.13559310076881614, + "2024-09-05": 0.12912073542484467, + "2024-09-10": 0.13341318205977365, + "2024-09-11": 0.12983242024933037, + "2024-09-20": 0.13655236701917026, + "2024-09-26": 0.13640669834509198, + "2024-09-16": 0.12760679596912358, + "2024-09-08": 0.12708968767325834, + "2024-09-24": 0.13552444563353125, + "2024-09-29": 0.14387147297262495, + "2024-09-17": 0.12918397566705758, + "2024-09-14": 0.13474936799513787, + "2024-09-03": 0.1368767081123662, + "2024-09-25": 0.1369904079173292, + "2024-09-18": 0.12991242879479956, + "2024-09-07": 0.12642055872154057, + "2024-09-06": 0.12687268201024743, + "2024-09-19": 0.13451701247298653, + "2024-09-30": 0.13983133134561426, + "2024-09-01": 0.1404178419996906, + "2024-08-31": 0.14138093556045814, + "2024-09-02": 0.13725230367528343, + "2024-09-23": 0.136184514801591, + "2024-09-13": 0.13429635339977705, + "2024-10-01": 0.1355909546362445, + "2024-09-04": 0.12854489256322815, + "2024-09-28": 0.14519985146802375, + "2024-09-21": 0.13629578800248776, + "2024-09-09": 0.1323265776702017, + "2024-09-27": 0.14092425095267952, + "2024-09-27T07": 0.14031577863651162, + "2024-09-27T05": 0.14022498518099746, + "2024-09-30T14": 0.13944960107062035, + "2024-09-27T14": 0.14048452096044672, + "2024-09-27T23": 0.1464892050314013, + "2024-09-28T11": 0.145322702210138, + "2024-09-29T00": 0.145765457399244, + "2024-09-28T18": 0.14473825839022045, + "2024-09-29T23": 0.14395944466757235, + "2024-10-01T13": 0.13631000889882927, + "2024-09-30T10": 0.14121287507614505, + "2024-09-25T22": 0.13569533542823212, + "2024-09-29T11": 0.1426917855924561, + "2024-09-28T12": 0.14414284254715848, + "2024-09-26T09": 0.13495843411169633, + "2024-09-28T10": 0.14447617403064866, + "2024-09-27T16": 0.1410009583987372, + "2024-09-24T17": 0.13492003546040315, + "2024-09-27T15": 0.1413125190437189, + "2024-09-29T12": 0.1432263593420718, + "2024-09-25T04": 0.13784585949062242, + "2024-09-25T21": 0.13662093397836084, + "2024-09-25T18": 0.13566429719880035, + "2024-09-26T04": 0.13506134564792457, + "2024-09-26T05": 0.13495691786849517, + "2024-09-30T04": 0.1415699422057603, + "2024-09-27T13": 0.1400448206729252, + "2024-09-28T13": 0.14347440448344792, + "2024-09-25T08": 0.13709732139829592, + "2024-09-30T03": 0.14094777488497964, + "2024-10-01T10": 0.13698744034544, + "2024-09-25T13": 0.1360600294456529, + "2024-10-01T01": 0.1355982991798944, + "2024-09-26T17": 0.1389253348343081, + "2024-09-25T15": 0.1371045669302604, + "2024-09-29T22": 0.14417396797252968, + "2024-09-29T01": 0.14524488259765347, + "2024-09-30T06": 0.14233579953778952, + "2024-09-27T12": 0.13934831357321062, + "2024-09-25T23": 0.1349246217102307, + "2024-09-30T05": 0.14163404926714004, + "2024-09-28T23": 0.14499602995564081, + "2024-09-30T19": 0.13638762531006057, + "2024-09-25T00": 0.1365175246899334, + "2024-10-01T12": 0.13626157442422782, + "2024-09-29T10": 0.14267853759174848, + "2024-09-24T22": 0.13608594514962105, + "2024-09-26T08": 0.1360795054714952, + "2024-09-29T20": 0.14502949518929562, + "2024-09-25T12": 0.13665331213953882, + "2024-09-25T05": 0.13732459209044168, + "2024-09-27T09": 0.14098712473026462, + "2024-09-26T02": 0.13430919391518786, + "2024-09-28T05": 0.1478193668499773, + "2024-09-29T03": 0.14472052570947222, + "2024-09-26T23": 0.1388591179293669, + "2024-09-29T16": 0.14346681639741918, + "2024-09-26T21": 0.13874230812772698, + "2024-09-26T16": 0.13811700129951532, + "2024-09-28T03": 0.1465800593635892, + "2024-09-29T21": 0.14392412227800325, + "2024-09-30T09": 0.142619711366674, + "2024-09-24T16": 0.1345588987229904, + "2024-09-30T07": 0.1415039673804321, + "2024-09-28T17": 0.1447918404849418, + "2024-09-28T02": 0.14595817290846397, + "2024-09-28T15": 0.14462606481284823, + "2024-09-29T17": 0.14402678745194436, + "2024-09-25T17": 0.13628020626812623, + "2024-09-25T16": 0.13664942986635994, + "2024-10-01T04": 0.13739924402985035, + "2024-10-01T07": 0.13778751315508966, + "2024-09-30T23": 0.13577161773426255, + "2024-09-29T13": 0.14182369697787092, + "2024-09-26T22": 0.13923427421581705, + "2024-10-01T11": 0.13709512908085825, + "2024-09-30T16": 0.1372480375401394, + "2024-09-28T01": 0.14590020567536924, + "2024-09-27T02": 0.13913055306799274, + "2024-09-30T20": 0.13678347512081432, + "2024-09-28T06": 0.1474620544039142, + "2024-09-27T08": 0.14061629107109522, + "2024-10-01T06": 0.13705491349435203, + "2024-09-27T03": 0.1386925450994491, + "2024-09-25T06": 0.13728348121395445, + "2024-10-01T02": 0.13543579620510565, + "2024-09-27T17": 0.1433285112568606, + "2024-09-30T22": 0.13702966093225544, + "2024-09-29T05": 0.14485111740917336, + "2024-09-28T20": 0.1453751088304508, + "2024-09-30T13": 0.13994438181785976, + "2024-09-26T18": 0.13887621751258736, + "2024-09-25T10": 0.13710979754456928, + "2024-09-25T02": 0.1374360588363079, + "2024-09-29T02": 0.14461136288577647, + "2024-09-28T08": 0.14546806542447843, + "2024-09-30T17": 0.13658144992853388, + "2024-09-30T02": 0.14202981022519104, + "2024-09-28T09": 0.14372959047554212, + "2024-09-25T03": 0.13740427509724393, + "2024-09-29T15": 0.14258783236516281, + "2024-09-29T06": 0.14492864935895852, + "2024-09-24T18": 0.13533330980580557, + "2024-09-26T07": 0.1360546723242246, + "2024-09-26T15": 0.13647796347482216, + "2024-09-27T04": 0.13982404808771517, + "2024-09-27T11": 0.13951987571706875, + "2024-09-26T20": 0.1393808102093104, + "2024-09-30T12": 0.13910244679263106, + "2024-09-27T10": 0.14049684345601224, + "2024-09-26T12": 0.13657156881928337, + "2024-09-24T23": 0.13629855990647885, + "2024-09-30T00": 0.1436996545964293, + "2024-09-25T14": 0.13742745616274615, + "2024-09-26T14": 0.13656620368592132, + "2024-09-27T01": 0.13945860219249565, + "2024-09-28T04": 0.14872811247961687, + "2024-09-29T08": 0.14272344512698676, + "2024-09-26T01": 0.13339036311782954, + "2024-09-27T19": 0.14374400460136072, + "2024-09-25T01": 0.13680814495183133, + "2024-09-26T00": 0.13562997644787614, + "2024-09-29T18": 0.14430235601907576, + "2024-09-28T19": 0.14499537635323656, + "2024-09-28T22": 0.14463632012077382, + "2024-09-27T18": 0.1431606292284056, + "2024-09-24T21": 0.13535128562924253, + "2024-09-30T08": 0.14296823654765264, + "2024-09-25T11": 0.13751366145966612, + "2024-09-25T20": 0.13580837222719783, + "2024-10-01T09": 0.1371079179255919, + "2024-10-01T03": 0.13620144546498117, + "2024-09-26T11": 0.13627040566061152, + "2024-09-28T07": 0.14655198479150958, + "2024-09-27T22": 0.14493355282728557, + "2024-09-27T21": 0.14388909470911762, + "2024-09-26T03": 0.13454556816177296, + "2024-09-26T13": 0.13663630211118227, + "2024-09-30T18": 0.13677560024304583, + "2024-10-01T15": 0.13190389135944527, + "2024-10-01T08": 0.13777207750949322, + "2024-09-25T19": 0.13606127454424724, + "2024-09-30T21": 0.13729579724732388, + "2024-09-28T14": 0.14352449792929795, + "2024-09-27T20": 0.1437152239078471, + "2024-09-26T06": 0.1357114783166675, + "2024-09-26T10": 0.1354167411842046, + "2024-09-29T04": 0.1453640637079377, + "2024-09-28T16": 0.14538282940496633, + "2024-10-01T00": 0.13458785150644395, + "2024-09-24T20": 0.1355019820443892, + "2024-09-26T19": 0.1404771566506293, + "2024-09-24T15": 0.13485784996931663, + "2024-09-27T06": 0.14086877697331426, + "2024-09-29T14": 0.14283304023476193, + "2024-09-29T07": 0.14369963949682146, + "2024-09-28T00": 0.14638604668869643, + "2024-09-30T01": 0.1432576478738715, + "2024-09-29T09": 0.14247824527669042, + "2024-09-25T09": 0.13737884756392815, + "2024-09-30T11": 0.1395799439036911, + "2024-09-25T07": 0.13614600872974764, + "2024-09-24T19": 0.13467783911299872, + "2024-09-29T19": 0.1447447777448319, + "2024-09-30T15": 0.13824291741635183, + "2024-09-28T21": 0.14483214534030775, + "2024-10-01T05": 0.13725894240178246, + "2024-10-01T14": 0.13477700648352778, + "2024-09-27T00": 0.13902635873507233, + "latest": 0.128491 + }, + "USD kusama": { + "2024-09-12": 19.70934724077662, + "2024-09-15": 20.864885028593445, + "2024-09-22": 20.667044254740677, + "2024-09-05": 17.7248128821886, + "2024-09-10": 20.099196, + "2024-09-11": 19.87034016060394, + "2024-09-20": 20.796983412691826, + "2024-09-26": 22.29134674691035, + "2024-09-16": 19.77292862042634, + "2024-09-08": 18.021330411679205, + "2024-09-24": 20.95441014435134, + "2024-09-29": 21.653572945828138, + "2024-09-17": 19.945459682042394, + "2024-09-14": 19.849701715572728, + "2024-09-03": 18.160160536820925, + "2024-09-25": 21.82683479645064, + "2024-09-18": 20.050118148291244, + "2024-09-07": 17.54346695059768, + "2024-09-06": 17.21203717607577, + "2024-09-19": 20.95376118433191, + "2024-09-30": 20.94835136493157, + "2024-09-01": 18.031289161787576, + "2024-08-31": 18.364971882698615, + "2024-09-02": 18.1251124052033, + "2024-09-23": 20.899370735765192, + "2024-09-13": 19.724632452161064, + "2024-10-01": 20.146964537894764, + "2024-09-04": 17.703871721048234, + "2024-09-28": 21.84796977449505, + "2024-09-21": 20.73184944449017, + "2024-09-09": 19.273458033485664, + "2024-09-27": 22.438770305396467, + "2024-09-27T07": 22.595696244621752, + "2024-09-27T05": 22.446570269895844, + "2024-09-30T14": 21.06139693120652, + "2024-09-27T14": 22.413482673795464, + "2024-09-27T23": 22.59191373013678, + "2024-09-28T11": 21.89457241444533, + "2024-09-29T00": 21.88975188842658, + "2024-09-28T18": 21.771399425877014, + "2024-09-29T23": 21.80892475961776, + "2024-10-01T13": 20.34297035524059, + "2024-09-30T10": 20.92094147889662, + "2024-09-25T22": 21.759850312486797, + "2024-09-29T11": 21.220568044336655, + "2024-09-28T12": 21.863250501603858, + "2024-09-26T09": 22.26839177003798, + "2024-09-28T10": 21.857171732844176, + "2024-09-27T16": 22.48196196263384, + "2024-09-24T17": 20.700684120142004, + "2024-09-27T15": 22.497376197393923, + "2024-09-29T12": 21.32572479508909, + "2024-09-25T04": 21.616117843879756, + "2024-09-25T21": 21.854342404921944, + "2024-09-25T18": 21.792544569755282, + "2024-09-26T04": 21.698395908490276, + "2024-09-26T05": 21.856102243138572, + "2024-09-30T04": 21.12655946925584, + "2024-09-27T13": 22.41905482113945, + "2024-09-28T13": 21.677926878765582, + "2024-09-25T08": 21.550023981853226, + "2024-09-30T03": 21.153541668766465, + "2024-10-01T10": 20.502856806080064, + "2024-09-25T13": 21.962850795071617, + "2024-10-01T01": 20.20593813865466, + "2024-09-26T17": 22.36703557094477, + "2024-09-25T15": 22.09311996342692, + "2024-09-29T22": 21.949009047164076, + "2024-09-29T01": 21.774123920255988, + "2024-09-30T06": 21.15096925903493, + "2024-09-27T12": 22.200443335301554, + "2024-09-25T23": 21.59300430840968, + "2024-09-30T05": 21.131081726251292, + "2024-09-28T23": 21.8611991493393, + "2024-09-30T19": 20.665977543527006, + "2024-09-25T00": 21.360955899132072, + "2024-10-01T12": 20.414852524462358, + "2024-09-29T10": 21.228139520919814, + "2024-09-24T22": 21.248796735327222, + "2024-09-26T08": 22.418479030188124, + "2024-09-29T20": 22.057276831269558, + "2024-09-25T12": 22.082048629612462, + "2024-09-25T05": 21.69639223855301, + "2024-09-27T09": 22.537626284830697, + "2024-09-26T02": 21.548746896045554, + "2024-09-28T05": 22.47730501590789, + "2024-09-29T03": 21.812746506621256, + "2024-09-26T23": 22.14555332146369, + "2024-09-29T16": 21.59372101610714, + "2024-09-26T21": 21.966354820673427, + "2024-09-26T16": 22.419252205517434, + "2024-09-28T03": 22.792754012350517, + "2024-09-29T21": 21.8545721960455, + "2024-09-30T09": 21.26794439501873, + "2024-09-24T16": 20.789371881895356, + "2024-09-30T07": 21.142931897238434, + "2024-09-28T17": 21.701992162543675, + "2024-09-28T02": 22.625368362354934, + "2024-09-28T15": 21.820030178330583, + "2024-09-29T17": 21.799673832361034, + "2024-09-25T17": 22.219817864957687, + "2024-09-25T16": 22.31712939108053, + "2024-10-01T04": 20.367509238168523, + "2024-10-01T07": 20.674464551203542, + "2024-09-30T23": 20.325666886701082, + "2024-09-29T13": 21.28835249227813, + "2024-09-26T22": 22.149106812141948, + "2024-10-01T11": 20.45567378093236, + "2024-09-30T16": 20.84318337376328, + "2024-09-28T01": 22.513416311143654, + "2024-09-27T02": 22.21527678295297, + "2024-09-30T20": 20.67054856602632, + "2024-09-28T06": 22.17947835556876, + "2024-09-27T08": 22.51596927481535, + "2024-10-01T06": 20.442785851858165, + "2024-09-27T03": 22.16093108741979, + "2024-09-25T06": 21.697387313755748, + "2024-10-01T02": 20.120111526279906, + "2024-09-27T17": 22.55740906392606, + "2024-09-30T22": 20.634171390618278, + "2024-09-29T05": 21.67235535856285, + "2024-09-28T20": 21.84139198828658, + "2024-09-30T13": 21.08074127356927, + "2024-09-26T18": 22.123365911766076, + "2024-09-25T10": 21.80441146087197, + "2024-09-25T02": 21.732501309649123, + "2024-09-29T02": 21.78611903368563, + "2024-09-28T08": 21.84765862422378, + "2024-09-30T17": 20.70433436363268, + "2024-09-30T02": 21.299495183244918, + "2024-09-28T09": 21.64578344117688, + "2024-09-25T03": 21.58448257250824, + "2024-09-29T15": 21.353112698161436, + "2024-09-29T06": 21.586301623457214, + "2024-09-24T18": 20.922939849758926, + "2024-09-26T07": 22.295668982962603, + "2024-09-26T15": 22.265629004215715, + "2024-09-27T04": 22.482746904325428, + "2024-09-27T11": 22.048674378789883, + "2024-09-26T20": 21.98729606782338, + "2024-09-30T12": 20.963918950298133, + "2024-09-27T10": 22.54268655403206, + "2024-09-26T12": 22.404205727051846, + "2024-09-24T23": 21.427003042815386, + "2024-09-30T00": 21.726715688787074, + "2024-09-25T14": 21.956034564167673, + "2024-09-26T14": 22.315122983645796, + "2024-09-27T01": 22.286842897120696, + "2024-09-28T04": 22.62608358867572, + "2024-09-29T08": 21.20586641484491, + "2024-09-26T01": 21.445282178646988, + "2024-09-27T19": 22.43677566598547, + "2024-09-25T01": 21.35633009410806, + "2024-09-26T00": 21.589370607055677, + "2024-09-29T18": 21.7453560260055, + "2024-09-28T19": 21.772603460548975, + "2024-09-28T22": 21.728518339977683, + "2024-09-27T18": 22.32210220137832, + "2024-09-24T21": 21.296166964333093, + "2024-09-30T08": 21.3512495976364, + "2024-09-25T11": 21.911076844836614, + "2024-09-25T20": 21.874939206527948, + "2024-10-01T09": 20.505920516658907, + "2024-10-01T03": 20.144866503188137, + "2024-09-26T11": 22.609573698711245, + "2024-09-28T07": 22.1056859352813, + "2024-09-27T22": 22.43743476821151, + "2024-09-27T21": 22.393006353740574, + "2024-09-26T03": 21.62119887931735, + "2024-09-26T13": 22.346673576149097, + "2024-09-30T18": 20.790403917557825, + "2024-10-01T15": 19.714745586429274, + "2024-10-01T08": 20.579571155983615, + "2024-09-25T19": 21.79812274206509, + "2024-09-30T21": 20.706638233712386, + "2024-09-28T14": 21.682667875368697, + "2024-09-27T20": 22.325519590189828, + "2024-09-26T06": 22.287379923480767, + "2024-09-26T10": 22.253394693542944, + "2024-09-29T04": 21.87091384156473, + "2024-09-28T16": 21.76645674458878, + "2024-10-01T00": 20.07377144688508, + "2024-09-24T20": 21.11407947576169, + "2024-09-26T19": 22.185592323842318, + "2024-09-24T15": 20.611198404119406, + "2024-09-27T06": 22.59364911929763, + "2024-09-29T14": 21.523718579693885, + "2024-09-29T07": 21.447894007550484, + "2024-09-28T00": 22.474307370064924, + "2024-09-30T01": 21.741121885621986, + "2024-09-29T09": 21.205587340854407, + "2024-09-25T09": 21.765446708658043, + "2024-09-30T11": 20.786418295861974, + "2024-09-25T07": 21.547323228593847, + "2024-09-24T19": 20.98260275737352, + "2024-09-29T19": 21.777788508820663, + "2024-09-30T15": 21.020165454834633, + "2024-09-28T21": 21.776966680686925, + "2024-10-01T05": 20.45374150795852, + "2024-10-01T14": 19.992180505974268, + "2024-09-27T00": 22.178700344611926, + "latest": 19.05 + }, + "USD litecoin": { + "2024-09-12": 62.18329171469112, + "2024-09-15": 64.68461863533379, + "2024-09-22": 67.25099292396668, + "2024-09-05": 65.64850200489903, + "2024-09-10": 60.96578715150918, + "2024-09-11": 61.387967187501864, + "2024-09-20": 65.4355404164028, + "2024-09-26": 67.62078378918939, + "2024-09-16": 62.848383444551686, + "2024-09-08": 61.219310554402625, + "2024-09-24": 66.52073706121408, + "2024-09-29": 69.45334681013286, + "2024-09-17": 63.17223622594057, + "2024-09-14": 65.7990480664199, + "2024-09-03": 65.5230679611752, + "2024-09-25": 66.81114405963038, + "2024-09-18": 63.75940526796247, + "2024-09-07": 63.10230242673887, + "2024-09-06": 65.09089273350335, + "2024-09-19": 65.29852490943387, + "2024-09-30": 67.41377846469302, + "2024-09-01": 64.30976499944786, + "2024-08-31": 65.4392652832044, + "2024-09-02": 63.978042311923744, + "2024-09-23": 67.55386000249615, + "2024-09-13": 63.74470371428829, + "2024-10-01": 67.50591101818607, + "2024-09-04": 65.35319411716779, + "2024-09-28": 69.85535614571441, + "2024-09-21": 65.89138010468876, + "2024-09-09": 60.607731295375864, + "2024-09-27": 69.82464533659432, + "2024-09-27T07": 68.94174350844605, + "2024-09-27T05": 69.35229743399258, + "2024-09-30T14": 67.19152468922299, + "2024-09-27T14": 70.19488360293178, + "2024-09-27T23": 70.99316168615374, + "2024-09-28T11": 69.86016829944904, + "2024-09-29T00": 69.94573873451886, + "2024-09-28T18": 69.737398267483, + "2024-09-29T23": 69.37394854186593, + "2024-10-01T13": 67.20314525064241, + "2024-09-30T10": 66.8512041511529, + "2024-09-25T22": 66.83850348538033, + "2024-09-29T11": 68.94561191217693, + "2024-09-28T12": 69.4118703933975, + "2024-09-26T09": 67.32781795954675, + "2024-09-28T10": 69.72978763115806, + "2024-09-27T16": 70.27675398589925, + "2024-09-24T17": 66.36119185333841, + "2024-09-27T15": 70.15438060812652, + "2024-09-29T12": 68.97467561034364, + "2024-09-25T04": 66.78914612780449, + "2024-09-25T21": 67.26123193543013, + "2024-09-25T18": 67.22401272426252, + "2024-09-26T04": 66.54074907875376, + "2024-09-26T05": 66.98935894906327, + "2024-09-30T04": 67.70996879592472, + "2024-09-27T13": 70.17042938534998, + "2024-09-28T13": 69.25360695147405, + "2024-09-25T08": 66.27154714628107, + "2024-09-30T03": 67.8488981063355, + "2024-10-01T10": 68.3764696398681, + "2024-09-25T13": 66.53787120171128, + "2024-10-01T01": 67.49566664550338, + "2024-09-26T17": 68.1218814109155, + "2024-09-25T15": 67.5007619926339, + "2024-09-29T22": 69.75969277354582, + "2024-09-29T01": 69.59209806426772, + "2024-09-30T06": 68.2561317002244, + "2024-09-27T12": 70.07870431610935, + "2024-09-25T23": 66.5893889575195, + "2024-09-30T05": 67.98845078176973, + "2024-09-28T23": 69.7776747, + "2024-09-30T19": 67.30398461204754, + "2024-09-25T00": 66.61950112001865, + "2024-10-01T12": 68.06117140379712, + "2024-09-29T10": 68.81134307798345, + "2024-09-24T22": 66.73074895950171, + "2024-09-26T08": 67.34977709344253, + "2024-09-29T20": 70.12086366961869, + "2024-09-25T12": 66.43419444545863, + "2024-09-25T05": 66.60305310489227, + "2024-09-27T09": 69.36533880861742, + "2024-09-26T02": 66.36842915231139, + "2024-09-28T05": 70.89778923530005, + "2024-09-29T03": 69.55771569393858, + "2024-09-26T23": 68.3088082956169, + "2024-09-29T16": 69.70166878800514, + "2024-09-26T21": 67.90413489874106, + "2024-09-26T16": 68.32201647015611, + "2024-09-28T03": 71.31045477816807, + "2024-09-29T21": 70.09189620342843, + "2024-09-30T09": 67.64167422558721, + "2024-09-24T16": 66.00949168865857, + "2024-09-30T07": 68.25079588202445, + "2024-09-28T17": 69.5939104306848, + "2024-09-28T02": 71.2672789992643, + "2024-09-28T15": 69.78473369164261, + "2024-09-29T17": 69.83149078724928, + "2024-09-25T17": 67.42899938762204, + "2024-09-25T16": 67.51187085572587, + "2024-10-01T04": 67.91134662599312, + "2024-10-01T07": 68.21444810387415, + "2024-09-30T23": 66.75374490478522, + "2024-09-29T13": 69.14649595803101, + "2024-09-26T22": 68.30803157266098, + "2024-10-01T11": 68.26422269828382, + "2024-09-30T16": 66.94718727078399, + "2024-09-28T01": 71.03997160898727, + "2024-09-27T02": 68.52891392810525, + "2024-09-30T20": 67.49296379523501, + "2024-09-28T06": 70.26316117167057, + "2024-09-27T08": 69.00489110397007, + "2024-10-01T06": 67.97863011550177, + "2024-09-27T03": 68.78421683233528, + "2024-09-25T06": 66.22636339765627, + "2024-10-01T02": 67.62315739613226, + "2024-09-27T17": 70.20854755429804, + "2024-09-30T22": 67.12448756133239, + "2024-09-29T05": 69.12277786628863, + "2024-09-28T20": 69.82654623420345, + "2024-09-30T13": 67.41261841814212, + "2024-09-26T18": 68.20599807525285, + "2024-09-25T10": 66.34044094858879, + "2024-09-25T02": 66.98239227268162, + "2024-09-29T02": 69.72702553117404, + "2024-09-28T08": 70.1004041145019, + "2024-09-30T17": 67.15402503273769, + "2024-09-30T02": 68.2182054980601, + "2024-09-28T09": 69.68260294552715, + "2024-09-25T03": 66.87488758863019, + "2024-09-29T15": 69.62852903851653, + "2024-09-29T06": 68.94206092879948, + "2024-09-24T18": 66.29769925600459, + "2024-09-26T07": 67.47793301219087, + "2024-09-26T15": 68.01462250725221, + "2024-09-27T04": 69.1841474704029, + "2024-09-27T11": 69.7301537223086, + "2024-09-26T20": 67.95651253582456, + "2024-09-30T12": 67.17924411432352, + "2024-09-27T10": 69.43356000268864, + "2024-09-26T12": 67.41319429575783, + "2024-09-24T23": 66.71084086100055, + "2024-09-30T00": 68.99011622991698, + "2024-09-25T14": 67.0015575763933, + "2024-09-26T14": 67.69907059198877, + "2024-09-27T01": 68.72951969359619, + "2024-09-28T04": 71.37948671543519, + "2024-09-29T08": 68.80967126934033, + "2024-09-26T01": 65.94340336304232, + "2024-09-27T19": 70.40385932512046, + "2024-09-25T01": 66.8503301205191, + "2024-09-26T00": 66.47592688040605, + "2024-09-29T18": 69.8102898001278, + "2024-09-28T19": 69.74579379327011, + "2024-09-28T22": 69.80985064056819, + "2024-09-27T18": 70.15430083151595, + "2024-09-24T21": 66.30719659802978, + "2024-09-30T08": 67.90690321331384, + "2024-09-25T11": 66.3737377752059, + "2024-09-25T20": 67.09532340177867, + "2024-10-01T09": 68.26340687801597, + "2024-10-01T03": 67.86154601449368, + "2024-09-26T11": 67.67115729218403, + "2024-09-28T07": 70.47234378151069, + "2024-09-27T22": 70.87759941147526, + "2024-09-27T21": 70.65658552096147, + "2024-09-26T03": 66.38640919273115, + "2024-09-26T13": 67.54632008623136, + "2024-09-30T18": 67.09833904066285, + "2024-10-01T08": 68.13760211216976, + "2024-09-25T19": 67.19981557259796, + "2024-09-30T21": 67.34426116352421, + "2024-09-28T14": 69.86403100097651, + "2024-09-27T20": 70.61838105116013, + "2024-09-26T06": 67.1935849802291, + "2024-09-26T10": 67.69200576683555, + "2024-09-29T04": 69.1820754, + "2024-09-28T16": 69.67479509842977, + "2024-10-01T00": 66.96058548958159, + "2024-09-24T20": 66.39517813005956, + "2024-09-26T19": 68.21631025420508, + "2024-09-24T15": 66.09281789632337, + "2024-09-27T06": 69.4883583455313, + "2024-09-29T14": 69.37398015855716, + "2024-09-29T07": 68.87888742674663, + "2024-09-28T00": 71.1728882461188, + "2024-09-30T01": 68.6044684734554, + "2024-09-29T09": 69.061096735623, + "2024-09-25T09": 66.25867035222005, + "2024-09-30T11": 67.03939354255952, + "2024-09-25T07": 66.11193715961018, + "2024-09-24T19": 66.31053859989562, + "2024-09-29T19": 69.98843911734207, + "2024-09-30T15": 67.30688755551877, + "2024-09-28T21": 69.6083882466818, + "2024-10-01T05": 67.95684293896707, + "2024-10-01T14": 67.32371099426582, + "2024-09-27T00": 68.72459332326187, + "latest": 64.25, + "2024-10-01T15": 66.10093498189397 + }, + "USD monero": { + "2024-09-12": 170.73578068936894, + "2024-09-15": 170.43179134444685, + "2024-09-22": 176.48282587808185, + "2024-09-05": 172.87880521911603, + "2024-09-10": 169.87600661697954, + "2024-09-11": 168.23244067121448, + "2024-09-20": 177.10091291106107, + "2024-09-26": 164.878180474196, + "2024-09-16": 170.18129136647758, + "2024-09-08": 171.46608800410922, + "2024-09-24": 168.40793448446206, + "2024-09-29": 154.98968303805296, + "2024-09-17": 171.29554767857857, + "2024-09-14": 169.67282171725847, + "2024-09-03": 173.065070286485, + "2024-09-25": 167.69125666166713, + "2024-09-18": 171.67679593250273, + "2024-09-07": 166.81165101216894, + "2024-09-06": 170.34869542194264, + "2024-09-19": 173.85848550545498, + "2024-09-30": 153.9813638014511, + "2024-09-01": 166.575934315898, + "2024-08-31": 169.18892559514074, + "2024-09-02": 168.39766087350597, + "2024-09-23": 174.1775217381234, + "2024-09-13": 170.67854711473393, + "2024-10-01": 152.08015035225938, + "2024-09-04": 173.77612573052824, + "2024-09-28": 159.128276361402, + "2024-09-21": 176.95494879165972, + "2024-09-09": 171.89506227419346, + "2024-09-27": 162.874187486907, + "2024-09-27T07": 163.55699290869157, + "2024-09-27T05": 162.42399103795537, + "2024-09-30T14": 153.752175004343, + "2024-09-27T14": 162.66044252879118, + "2024-09-27T23": 163.47792860150597, + "2024-09-28T11": 158.51778399137493, + "2024-09-29T00": 158.4768510116493, + "2024-09-28T18": 158.02925109383756, + "2024-09-29T23": 153.93312046862025, + "2024-10-01T13": 153.20344512998636, + "2024-09-30T10": 151.08872978878884, + "2024-09-25T22": 165.72670423120533, + "2024-09-29T11": 155.81157888717647, + "2024-09-28T12": 159.30698071197168, + "2024-09-26T09": 164.01516759164346, + "2024-09-28T10": 158.88556157545855, + "2024-09-27T16": 162.98579191487215, + "2024-09-24T17": 169.00323538306142, + "2024-09-27T15": 163.08735448954323, + "2024-09-29T12": 155.4117167568521, + "2024-09-25T04": 167.72729483920213, + "2024-09-25T21": 166.42644474540464, + "2024-09-25T18": 166.71901682244234, + "2024-09-26T04": 165.74733295298836, + "2024-09-26T05": 164.9952218689211, + "2024-09-30T04": 152.7743234080442, + "2024-09-27T13": 163.4978365794384, + "2024-09-28T13": 159.45309468823586, + "2024-09-25T08": 169.18083586609495, + "2024-09-30T03": 151.4757993397687, + "2024-10-01T10": 152.4770777390511, + "2024-09-25T13": 168.4259114168376, + "2024-10-01T01": 154.03551420690877, + "2024-09-26T17": 165.42514494742886, + "2024-09-25T15": 167.07550930902545, + "2024-09-29T22": 154.4064089721304, + "2024-09-29T01": 157.6626828027144, + "2024-09-30T06": 155.29582053694256, + "2024-09-27T12": 162.76226361706108, + "2024-09-25T23": 165.1108262004509, + "2024-09-30T05": 154.89589408088318, + "2024-09-28T23": 158.50181719979918, + "2024-09-30T19": 154.63010275800178, + "2024-09-25T00": 168.85631655217261, + "2024-10-01T12": 153.28302832137504, + "2024-09-29T10": 156.82820516670952, + "2024-09-24T22": 169.01731900292313, + "2024-09-26T08": 164.40126459157347, + "2024-09-29T20": 154.77719085714546, + "2024-09-25T12": 168.77660488151395, + "2024-09-25T05": 167.25060994264393, + "2024-09-27T09": 163.0613829658493, + "2024-09-26T02": 165.92077991591236, + "2024-09-28T05": 162.659673801172, + "2024-09-29T03": 158.03715792892336, + "2024-09-26T23": 163.4864655713117, + "2024-09-29T16": 154.64446534916414, + "2024-09-26T21": 164.70016959712947, + "2024-09-26T16": 165.13473663471186, + "2024-09-28T03": 164.29425277230183, + "2024-09-29T21": 154.33607511072003, + "2024-09-30T09": 152.33976247157236, + "2024-09-24T16": 168.6904992523639, + "2024-09-30T07": 154.50905520277126, + "2024-09-28T17": 158.37128620167692, + "2024-09-28T02": 163.76960457400455, + "2024-09-28T15": 159.3031927597918, + "2024-09-29T17": 154.56801173144842, + "2024-09-25T17": 167.25018331713076, + "2024-09-25T16": 166.9104659434579, + "2024-10-01T04": 150.18246352403267, + "2024-10-01T07": 151.13005069341028, + "2024-09-30T23": 153.48959627859938, + "2024-09-29T13": 155.29761611998245, + "2024-09-26T22": 163.87036493017172, + "2024-10-01T11": 154.06084721504203, + "2024-09-30T16": 153.7789592903084, + "2024-09-28T01": 163.14005103463734, + "2024-09-27T02": 162.9093800611485, + "2024-09-30T20": 153.8015044192754, + "2024-09-28T06": 161.43386077150612, + "2024-09-27T08": 163.08663851825497, + "2024-10-01T06": 151.06752164654355, + "2024-09-27T03": 162.57496832025544, + "2024-09-25T06": 168.05424457589768, + "2024-10-01T02": 152.11047187488072, + "2024-09-27T17": 163.12927744730524, + "2024-09-30T22": 153.94905967245774, + "2024-09-29T05": 156.9696884702222, + "2024-09-28T20": 158.13908191100782, + "2024-09-30T13": 154.81117460897693, + "2024-09-26T18": 164.87430662459298, + "2024-09-25T10": 168.73724335932852, + "2024-09-25T02": 168.0790958682433, + "2024-09-29T02": 158.07799689683864, + "2024-09-28T08": 160.60182458590347, + "2024-09-30T17": 154.92274731534314, + "2024-09-30T02": 150.58641633437455, + "2024-09-28T09": 159.58681676500942, + "2024-09-25T03": 168.17869930978532, + "2024-09-29T15": 155.27746640118465, + "2024-09-29T06": 156.24748298592425, + "2024-09-24T18": 168.8104168902205, + "2024-09-26T07": 164.31036216585102, + "2024-09-26T15": 164.35455625349263, + "2024-09-27T04": 162.5439905583649, + "2024-09-27T11": 161.50158933548923, + "2024-09-26T20": 164.66020490409153, + "2024-09-30T12": 153.29972567485564, + "2024-09-27T10": 162.64826128142562, + "2024-09-26T12": 164.81993250943236, + "2024-09-30T00": 152.8151427078904, + "2024-09-25T14": 168.11539987351048, + "2024-09-26T14": 163.8844298798234, + "2024-09-27T01": 163.01821469403453, + "2024-09-28T04": 164.582308699328, + "2024-09-29T08": 153.25335398466783, + "2024-09-26T01": 165.3721118552244, + "2024-09-27T19": 162.8892963403525, + "2024-09-25T01": 168.62485535896934, + "2024-09-26T00": 165.59653277782186, + "2024-09-29T18": 154.63714801797735, + "2024-09-28T19": 158.3800354880118, + "2024-09-28T22": 159.21369288669618, + "2024-09-27T18": 163.05225680457974, + "2024-09-24T21": 168.57722722196064, + "2024-09-30T08": 152.86486942544394, + "2024-09-25T11": 168.33907347044004, + "2024-09-25T20": 166.3301664130514, + "2024-10-01T09": 153.84232645788953, + "2024-10-01T03": 152.18075511025324, + "2024-09-26T11": 166.09652452307174, + "2024-09-28T07": 160.98503300892742, + "2024-09-27T22": 163.57288414176682, + "2024-09-27T21": 163.13558663556776, + "2024-09-26T03": 166.07520547814224, + "2024-09-26T13": 163.83294722095536, + "2024-09-30T18": 155.43115845267724, + "2024-10-01T15": 151.62157990694777, + "2024-10-01T08": 151.61772458452344, + "2024-09-25T19": 166.54193555169374, + "2024-09-30T21": 154.2186184063389, + "2024-09-28T14": 159.29024356967258, + "2024-09-27T20": 162.8920543849106, + "2024-09-26T06": 165.6172755827069, + "2024-09-26T10": 165.46055055385955, + "2024-09-29T04": 157.8420541175614, + "2024-09-28T16": 158.66753978642163, + "2024-10-01T00": 154.0459596408534, + "2024-09-24T20": 169.6198573044687, + "2024-09-26T19": 165.05791009962692, + "2024-09-24T15": 168.3236481373796, + "2024-09-27T06": 162.8608893429181, + "2024-09-29T14": 155.2123942946579, + "2024-09-29T07": 155.74855733593975, + "2024-09-28T00": 163.9079388957648, + "2024-09-30T01": 152.93941800023572, + "2024-09-29T09": 152.89205440242645, + "2024-09-25T09": 169.3032017817948, + "2024-09-30T11": 153.84270850037828, + "2024-09-24T19": 169.72216707149119, + "2024-09-29T19": 154.6487065365313, + "2024-09-30T15": 153.96209120889733, + "2024-09-28T21": 157.98119173596638, + "2024-10-01T05": 151.12863444764596, + "2024-10-01T14": 153.8869938985959, + "2024-09-27T00": 164.08711142190847, + "latest": 150.33 + }, + "USD near": { + "2024-09-12": 4.178118468554163, + "2024-09-15": 4.187221839480161, + "2024-09-22": 4.52341803462517, + "2024-09-05": 3.8087141932250086, + "2024-09-10": 4.015925322555691, + "2024-09-11": 3.945115504406795, + "2024-09-20": 4.4006929828084065, + "2024-09-26": 5.546050402033854, + "2024-09-16": 3.9333105332442293, + "2024-09-08": 3.717612342270617, + "2024-09-24": 5.228422611358404, + "2024-09-29": 5.467735413692053, + "2024-09-17": 4.090405232062073, + "2024-09-14": 4.205549240264081, + "2024-09-03": 3.931058019583154, + "2024-09-25": 5.248300782340443, + "2024-09-18": 4.059188411897892, + "2024-09-07": 3.641742921921447, + "2024-09-06": 3.6362064169823314, + "2024-09-19": 4.483115438447135, + "2024-09-30": 5.352843406963865, + "2024-09-01": 3.9794852042381734, + "2024-08-31": 4.099731286026769, + "2024-09-02": 3.927671950257477, + "2024-09-23": 4.902812155007063, + "2024-09-13": 4.230630319237644, + "2024-10-01": 5.398786041430354, + "2024-09-04": 3.75935511113226, + "2024-09-28": 5.479706363508929, + "2024-09-21": 4.442401615273117, + "2024-09-09": 3.893456357832639, + "2024-09-27": 5.526627978836177, + "2024-09-27T07": 5.654094647156265, + "2024-09-27T05": 5.647305550018161, + "2024-09-30T14": 5.327962867193094, + "2024-09-27T14": 5.57819635118155, + "2024-09-27T23": 5.460177458362107, + "2024-09-28T11": 5.466335483139834, + "2024-09-29T00": 5.528466716205436, + "2024-09-28T18": 5.502081130359923, + "2024-09-29T23": 5.466089803154985, + "2024-10-01T13": 5.277373694056562, + "2024-09-30T10": 5.2892351979206795, + "2024-09-25T22": 5.175339774408861, + "2024-09-29T11": 5.404728857790051, + "2024-09-28T12": 5.415506298575436, + "2024-09-26T09": 5.4284793695937745, + "2024-09-28T10": 5.480688830094067, + "2024-09-27T16": 5.493365528832361, + "2024-09-24T17": 5.297456001413457, + "2024-09-27T15": 5.469665907143064, + "2024-09-29T12": 5.410831899867075, + "2024-09-25T04": 5.30156792683689, + "2024-09-25T21": 5.235904976570444, + "2024-09-25T18": 5.215012044173726, + "2024-09-26T04": 5.26121138706488, + "2024-09-26T05": 5.322232540186782, + "2024-09-30T04": 5.267254826530127, + "2024-09-27T13": 5.525956955453539, + "2024-09-28T13": 5.454222146155081, + "2024-09-25T08": 5.213038541749363, + "2024-09-30T03": 5.325643356879856, + "2024-10-01T10": 5.448066756717017, + "2024-09-25T13": 5.22868386006982, + "2024-10-01T01": 5.360661960899632, + "2024-09-26T17": 5.693899383070783, + "2024-09-25T15": 5.3129863099152885, + "2024-09-29T22": 5.504280118295467, + "2024-09-29T01": 5.471907219611265, + "2024-09-30T06": 5.36763977266342, + "2024-09-27T12": 5.557628645014887, + "2024-09-25T23": 5.140551017828135, + "2024-09-30T05": 5.303018281799277, + "2024-09-28T23": 5.5544690171692315, + "2024-09-30T19": 5.414290398168395, + "2024-09-25T00": 5.364579233803001, + "2024-10-01T12": 5.462413634706886, + "2024-09-29T10": 5.386973966910662, + "2024-09-24T22": 5.338877528132732, + "2024-09-26T08": 5.3781239758246615, + "2024-09-29T20": 5.54737369506467, + "2024-09-25T12": 5.240167714456092, + "2024-09-25T05": 5.295298014932753, + "2024-09-27T09": 5.624788213722862, + "2024-09-26T02": 5.280923370703109, + "2024-09-28T05": 5.474491914175314, + "2024-09-29T03": 5.481709097917338, + "2024-09-26T23": 5.555250672242202, + "2024-09-29T16": 5.4405837797769765, + "2024-09-26T21": 5.593491094124866, + "2024-09-26T16": 5.823561456213394, + "2024-09-28T03": 5.492288247114344, + "2024-09-29T21": 5.51062371618776, + "2024-09-30T09": 5.3067037024265185, + "2024-09-24T16": 5.229551823596072, + "2024-09-30T07": 5.352676318177238, + "2024-09-28T17": 5.498242138547439, + "2024-09-28T02": 5.502329912072046, + "2024-09-28T15": 5.51162343804675, + "2024-09-29T17": 5.561108689303734, + "2024-09-25T17": 5.1799028243635306, + "2024-09-25T16": 5.2398948759119115, + "2024-10-01T04": 5.435210585407437, + "2024-10-01T07": 5.5267088930406105, + "2024-09-30T23": 5.288729285644926, + "2024-09-29T13": 5.4233217216197716, + "2024-09-26T22": 5.59744776, + "2024-10-01T11": 5.484101568435368, + "2024-09-30T16": 5.3636391490251025, + "2024-09-28T01": 5.456324099711989, + "2024-09-27T02": 5.4961017176318325, + "2024-09-30T20": 5.364021403988702, + "2024-09-28T06": 5.423691077686741, + "2024-09-27T08": 5.651552289536293, + "2024-10-01T06": 5.47851136989018, + "2024-09-27T03": 5.490860024695741, + "2024-09-25T06": 5.255632263563953, + "2024-10-01T02": 5.2843905881031406, + "2024-09-27T17": 5.455403452067588, + "2024-09-30T22": 5.32601342317983, + "2024-09-29T05": 5.455148911739506, + "2024-09-28T20": 5.504192637845625, + "2024-09-30T13": 5.352004941777151, + "2024-09-26T18": 5.644464438696517, + "2024-09-25T10": 5.256920897207252, + "2024-09-25T02": 5.385669021845012, + "2024-09-29T02": 5.473072163768356, + "2024-09-28T08": 5.398052019021246, + "2024-09-30T17": 5.419545094269786, + "2024-09-30T02": 5.3828076561322336, + "2024-09-28T09": 5.39662083690742, + "2024-09-25T03": 5.331816063982668, + "2024-09-29T15": 5.465959926125133, + "2024-09-29T06": 5.4276348873935705, + "2024-09-24T18": 5.276023930314201, + "2024-09-26T07": 5.41937233221425, + "2024-09-26T15": 5.789553798542854, + "2024-09-27T04": 5.561977078026508, + "2024-09-27T11": 5.51627515451063, + "2024-09-26T20": 5.592017962004705, + "2024-09-30T12": 5.335025683646574, + "2024-09-27T10": 5.543494842583999, + "2024-09-26T12": 5.544040812617316, + "2024-09-24T23": 5.365856586068668, + "2024-09-30T00": 5.434681421836483, + "2024-09-25T14": 5.295817453745669, + "2024-09-26T14": 5.736630425544446, + "2024-09-27T01": 5.545454951209295, + "2024-09-28T04": 5.501807233901269, + "2024-09-29T08": 5.4297751934916425, + "2024-09-26T01": 5.2294717639238835, + "2024-09-27T19": 5.431797358532323, + "2024-09-25T01": 5.40980429888979, + "2024-09-26T00": 5.163449590971746, + "2024-09-29T18": 5.596329097749427, + "2024-09-28T19": 5.496609821404222, + "2024-09-28T22": 5.526854258766547, + "2024-09-27T18": 5.460778698628746, + "2024-09-24T21": 5.335588918507481, + "2024-09-30T08": 5.306095195034222, + "2024-09-25T11": 5.249102680457841, + "2024-09-25T20": 5.21772398402986, + "2024-10-01T09": 5.466218573868327, + "2024-10-01T03": 5.376717973462092, + "2024-09-26T11": 5.525881567697258, + "2024-09-28T07": 5.408003222038987, + "2024-09-27T22": 5.43484602677395, + "2024-09-27T21": 5.387429247758689, + "2024-09-26T03": 5.280627329402091, + "2024-09-26T13": 5.62480529998441, + "2024-09-30T18": 5.407957156466236, + "2024-10-01T08": 5.490867508399201, + "2024-09-25T19": 5.2370893875076145, + "2024-09-30T21": 5.405266619434022, + "2024-09-28T14": 5.513462187873392, + "2024-09-27T20": 5.382751114363007, + "2024-09-26T06": 5.514946303224915, + "2024-09-26T10": 5.492165515390441, + "2024-09-29T04": 5.475196830181446, + "2024-09-28T16": 5.496915037194067, + "2024-10-01T00": 5.296243519380784, + "2024-09-24T20": 5.298633877986199, + "2024-09-26T19": 5.634858423484716, + "2024-09-24T15": 5.19944061492068, + "2024-09-27T06": 5.709107776933872, + "2024-09-29T14": 5.4467002946619765, + "2024-09-29T07": 5.399308209333767, + "2024-09-28T00": 5.467437202975653, + "2024-09-30T01": 5.424378239411132, + "2024-09-29T09": 5.432213313818926, + "2024-09-25T09": 5.212459914321384, + "2024-09-30T11": 5.309199837351168, + "2024-09-25T07": 5.209860388817941, + "2024-09-24T19": 5.294972574803801, + "2024-09-29T19": 5.566584346677055, + "2024-09-30T15": 5.356461063405368, + "2024-09-28T21": 5.462380493772299, + "2024-10-01T05": 5.427789731167603, + "2024-10-01T14": 5.26617315759337, + "2024-09-27T00": 5.55415576898, + "latest": 4.87, + "2024-10-01T15": 5.078765923017266, + "2023-10-23": 1.0680825785348642, + "2024-02-23": 3.254549905240416, + "2024-04-05": 6.812157889888433, + "2023-12-19": 2.3971986993707537, + "2024-05-17": 8.095487380950258, + "2023-12-02": 1.9842656027647727, + "2024-06-11": 6.177613220457879, + "2024-04-26": 7.182310755889022, + "2024-01-08": 3.2125393477333812, + "2023-10-31": 1.303760800445926, + "2023-10-01": 1.140766488427112, + "2024-03-07": 5.618489125511497, + "2023-10-12": 1.0101093817847835, + "2024-04-22": 6.898121432360752, + "2024-06-24": 5.293170802476057, + "2023-12-05": 2.22567326256506, + "2024-02-19": 3.544356339200902, + "2024-07-31": 5.169010919518756, + "2024-08-11": 4.0088439968314145, + "2024-01-07": 3.386454416641497, + "2024-04-28": 7.270142628337525, + "2023-10-18": 1.0033695597469756, + "2023-10-07": 1.0926016909928675, + "2024-06-28": 5.1189698936704655, + "2024-05-19": 7.8581228536266385, + "2024-05-12": 6.976045774331901, + "2024-08-24": 4.945034347315318, + "2024-03-09": 6.117743261137994, + "2024-08-02": 4.798345187353719, + "2024-04-29": 6.870040283777848, + "2024-04-25": 6.870628879101422, + "2024-06-12": 6.324125598653028, + "2024-05-30": 7.409634435163389, + "2024-06-05": 7.566340535991733, + "2024-08-21": 4.089421360510016, + "2024-03-22": 6.4830353732470565, + "2023-11-18": 1.757146920615653, + "2024-07-30": 5.244874674356381, + "2023-12-07": 2.268046416080464, + "2024-06-30": 5.048656221808104, + "2024-06-20": 5.270353825997295, + "2024-07-08": 4.473692947537101, + "2024-07-07": 4.692149494687023, + "2024-03-26": 7.784667839936219, + "2024-05-14": 7.151781833055857, + "2024-06-16": 5.620800643110577, + "2024-02-22": 3.246777652942298, + "2024-04-15": 5.456997440159033, + "2023-12-30": 3.6731605602162545, + "2024-04-17": 5.425398797030326, + "2024-02-12": 3.1929580376184354, + "2023-10-26": 1.178495002470962, + "2024-01-03": 3.8147428530396654, + "2024-05-07": 7.468788803604317, + "2024-01-22": 2.762070695519851, + "2024-08-16": 3.9848025165158547, + "2024-07-13": 5.179164852764435, + "2023-12-24": 3.807177763793938, + "2023-10-03": 1.1087677656806063, + "2024-05-26": 8.037887965876175, + "2024-04-30": 6.241310682388657, + "2024-08-22": 4.260837814744921, + "2024-07-09": 4.517294070559305, + "2024-01-16": 3.271066057069839, + "2023-10-17": 1.0302128788512779, + "2024-04-24": 6.985849193768894, + "2024-03-18": 7.625256304535106, + "2024-02-17": 3.2543359783360613, + "2023-12-27": 4.150420093179403, + "2024-08-01": 4.992419839586975, + "2024-02-24": 3.5551443906393274, + "2024-01-06": 3.403275471259292, + "2024-03-20": 6.431684649833105, + "2023-11-21": 1.91995428377254, + "2023-12-25": 3.9499041235910095, + "2024-03-01": 3.9762993866672343, + "2023-10-02": 1.142285519519648, + "2024-03-27": 7.56952697020486, + "2024-05-13": 7.13482722853404, + "2024-05-06": 7.396853029093122, + "2024-06-19": 4.98771191263261, + "2024-02-09": 2.979060140781238, + "2023-10-06": 1.08797961148466, + "2023-10-13": 1.0061184221179478, + "2024-02-05": 2.7600712455704985, + "2023-12-10": 2.4461181212879666, + "2023-11-23": 1.8074425847996873, + "2024-01-13": 3.4138514587348143, + "2024-03-28": 7.27663488835769, + "2023-10-09": 1.0442947291583757, + "2024-01-09": 3.33222587109972, + "2024-05-10": 7.45748779911197, + "2024-08-06": 3.7043639137640585, + "2023-11-05": 1.6270951993516802, + "2024-08-25": 4.937721689539472, + "2024-04-18": 5.605910538411527, + "2023-10-22": 1.0384820958354097, + "2024-08-27": 4.779164691571626, + "2023-11-01": 1.4406645448318887, + "2024-05-20": 8.026475764081667, + "2023-12-08": 2.264655852994727, + "2024-04-12": 6.539219011255494, + "2024-03-12": 7.191207797528925, + "2024-07-02": 5.433824296609034, + "2024-08-19": 3.894860443687435, + "2024-07-20": 6.331931099910532, + "2024-02-04": 2.7848766557866207, + "2024-01-28": 2.982700490847148, + "2024-03-03": 4.329617685495044, + "2024-01-26": 2.8805509102041205, + "2023-11-07": 1.5038083579301287, + "2023-11-25": 1.8521003040718544, + "2024-06-29": 4.978703732808046, + "2024-02-28": 3.93177036391023, + "2024-07-21": 6.184654545679756, + "2023-12-01": 1.876510621951113, + "2024-08-07": 3.7428284161284804, + "2024-02-25": 3.738263858742936, + "2023-12-21": 3.36448561472388, + "2024-08-30": 4.1862732495865345, + "2024-06-01": 7.2509138433896, + "2024-03-06": 4.554386978982408, + "2024-07-15": 5.600690091115816, + "2023-09-30": 1.1345594227795655, + "2023-12-12": 2.2966386419921148, + "2023-10-04": 1.088178147224983, + "2024-02-13": 3.3017937206501338, + "2024-04-16": 5.157542099736683, + "2024-03-02": 4.128852903018115, + "2024-06-02": 7.376285637747993, + "2023-10-08": 1.0912392937991582, + "2023-11-20": 2.066783477956778, + "2023-12-20": 2.8242868233416636, + "2023-12-31": 3.7075615930908894, + "2023-11-06": 1.5980395669833354, + "2024-08-03": 4.545577964514977, + "2024-05-29": 7.688832611006733, + "2024-03-17": 7.64252271582962, + "2024-07-23": 5.867564319629732, + "2024-07-10": 4.625896691697447, + "2024-07-01": 5.30998427265361, + "2024-04-01": 6.816267802127186, + "2024-05-21": 8.066316682849642, + "2024-01-19": 2.991203032009808, + "2023-11-11": 1.5559697628273437, + "2024-07-18": 6.083681760155467, + "2023-11-19": 1.8373194109155355, + "2024-08-08": 3.778496620972063, + "2024-01-25": 2.668389557949906, + "2024-03-13": 7.942354228926991, + "2024-02-01": 2.793329713963553, + "2024-08-17": 3.9789585972618466, + "2024-03-16": 7.348806910437667, + "2024-06-23": 5.330906865523042, + "2023-11-27": 1.7672227926426678, + "2024-01-10": 3.2381041000679747, + "2024-01-21": 2.9815745668554277, + "2024-03-15": 7.5129628169105285, + "2024-06-03": 7.263531367833146, + "2024-01-02": 3.963452953813446, + "2024-07-14": 5.366981733124768, + "2023-10-25": 1.1396282555839956, + "2024-01-01": 3.6617499482446276, + "2024-07-29": 5.53087813169511, + "2024-07-27": 5.728219722351934, + "2024-02-14": 3.3263959378070207, + "2024-07-28": 5.531026155040114, + "2024-04-03": 6.67577922133389, + "2024-06-15": 5.617181930907223, + "2023-11-28": 1.7793708998374556, + "2023-12-03": 1.9824263609451818, + "2024-07-11": 4.8935711581139865, + "2024-04-11": 6.972372630751877, + "2023-10-20": 1.0056940130200451, + "2023-10-10": 1.043315567083731, + "2024-05-03": 6.402006745678222, + "2024-03-08": 5.3991498633307, + "2024-01-14": 3.4120465504225916, + "2023-12-15": 2.2471728655081358, + "2023-10-19": 0.981305085051497, + "2024-02-08": 2.9355140382638765, + "2023-11-12": 1.6887335583645102, + "2023-12-22": 3.409204330086614, + "2024-06-21": 5.286086076635488, + "2024-03-23": 6.662014246637509, + "2024-03-04": 4.498551954476633, + "2024-04-13": 5.558489352507792, + "2024-02-29": 3.9433723731513037, + "2023-11-08": 1.4570738446545097, + "2024-07-19": 6.112062773860554, + "2024-08-10": 4.046854571638315, + "2023-12-29": 3.7642703446866634, + "2023-12-04": 2.1139244022428594, + "2024-04-10": 6.935023564142074, + "2024-05-08": 7.121512336045603, + "2024-08-04": 4.241795578398128, + "2024-04-21": 6.2893520483305885, + "2023-10-11": 1.0240349580898906, + "2024-05-05": 7.108646968438157, + "2024-03-21": 6.64985815316129, + "2024-05-23": 7.803292757364551, + "2024-04-08": 7.353788311334597, + "2024-05-18": 7.979068186878109, + "2024-06-10": 6.454589913076461, + "2023-10-05": 1.0941394866675338, + "2023-10-16": 1.0349517924572176, + "2024-05-22": 7.924256781893937, + "2024-02-10": 3.041635504557843, + "2024-04-07": 6.973616504210478, + "2024-02-20": 3.431996898260808, + "2023-11-17": 1.8440767053498592, + "2023-12-11": 2.304550837684291, + "2023-11-26": 1.8561907977253589, + "2023-10-27": 1.210765394254972, + "2024-01-27": 2.903555855914734, + "2024-03-30": 7.123578993086909, + "2023-11-22": 1.8243175790850412, + "2024-06-04": 7.144503166966505, + "2023-11-16": 1.7475929411440985, + "2024-02-02": 2.88034975556738, + "2024-06-26": 5.26670299642383, + "2024-01-18": 3.2180291700433266, + "2024-02-15": 3.3414566893701068, + "2024-08-09": 4.027277574704795, + "2023-10-28": 1.2284842634193653, + "2024-03-24": 6.568162419413257, + "2024-07-17": 6.198297891551166, + "2024-04-27": 7.1373794423668055, + "2023-12-06": 2.311948510494999, + "2024-01-30": 3.0639896380762774, + "2023-11-14": 1.5668152124706178, + "2024-07-22": 6.163948987506248, + "2024-06-06": 7.499868763771733, + "2024-07-04": 4.854114342503813, + "2024-08-28": 4.4526253056563325, + "2024-05-15": 7.5955106675460495, + "2023-11-10": 1.4612561859015896, + "2024-01-23": 2.5984204765915955, + "2024-01-31": 2.912049894573682, + "2024-05-11": 7.157744767607473, + "2024-01-11": 3.636287081199662, + "2024-02-18": 3.4233526656590993, + "2024-07-12": 4.942653891495454, + "2024-03-11": 6.851018963819408, + "2023-10-30": 1.274999300535876, + "2023-12-17": 2.365648956220669, + "2024-02-26": 3.9123896738208614, + "2024-06-17": 5.271958008350538, + "2024-01-05": 3.65838863748761, + "2024-06-14": 5.843896356044477, + "2024-06-13": 6.145571222067523, + "2024-03-14": 7.94711886482819, + "2024-02-21": 3.198323920616614, + "2023-12-13": 2.199452209236713, + "2024-02-27": 3.999895162673172, + "2024-08-29": 4.381267776412833, + "2024-03-31": 7.178773642003636, + "2023-12-09": 2.500235886832073, + "2024-04-02": 6.286779856598933, + "2024-02-06": 2.735359965981414, + "2024-05-31": 7.271382993341327, + "2024-04-09": 7.387577475279324, + "2024-05-25": 8.014789651199154, + "2023-11-04": 1.4979329118021207, + "2024-04-20": 5.756811181698787, + "2024-01-15": 3.348635820015811, + "2023-12-28": 3.992211320662116, + "2024-06-09": 6.599360688820481, + "2024-02-07": 2.7442945226707596, + "2024-03-19": 6.704899247064352, + "2024-03-10": 6.01693321456876, + "2024-05-02": 6.041394173843164, + "2024-07-24": 5.758837512946294, + "2024-01-12": 3.5667428349093946, + "2024-04-19": 5.60308943903456, + "2023-11-29": 1.8294660603140296, + "2023-10-15": 1.0203633489749082, + "2024-05-28": 7.717543126474734, + "2024-01-24": 2.5982717504186783, + "2024-02-11": 3.150043362247806, + "2024-06-08": 6.709115328713888, + "2023-11-30": 1.8552633093867767, + "2024-05-24": 7.792360734611342, + "2023-11-15": 1.6641354155316646, + "2023-12-16": 2.328325606682768, + "2024-08-26": 4.856096242755824, + "2024-04-04": 6.765719287643795, + "2024-08-23": 4.611252187063778, + "2023-11-03": 1.4886600574920614, + "2024-07-26": 5.640285919218731, + "2024-01-20": 2.9328672819950397, + "2024-08-05": 3.4895673688708064, + "2024-08-13": 4.072901285483615, + "2024-03-29": 7.0414697121471965, + "2024-06-25": 5.529868773258216, + "2024-08-18": 3.999896953282215, + "2023-10-21": 1.0242208550099736, + "2024-01-04": 3.7307847480511094, + "2024-08-20": 4.084138109703256, + "2023-11-13": 1.6780582103059116, + "2023-10-24": 1.123011297185177, + "2023-11-24": 1.825134927994318, + "2024-07-25": 5.456761984966314, + "2024-07-16": 6.0902523251247125, + "2024-05-16": 8.099691789979572, + "2024-01-29": 2.9259643283373813, + "2024-07-03": 5.190362509651767, + "2024-05-04": 6.860593651681063, + "2024-05-27": 7.8351333193009385, + "2023-11-02": 1.4987598730173934, + "2023-12-18": 2.185662091578081, + "2024-07-05": 4.372825402080473, + "2024-03-25": 7.399312584543455, + "2023-10-29": 1.2262034780695084, + "2024-06-18": 4.711214843031273, + "2024-05-01": 6.059669363565581, + "2024-02-16": 3.3410509735533775, + "2024-06-22": 5.250247745315005, + "2024-08-12": 4.017601887297848, + "2024-07-06": 4.563987564281788, + "2024-03-05": 4.304438644043825, + "2024-04-06": 7.052630410081021, + "2023-12-23": 3.402134235805802, + "2023-12-14": 2.282385450706646, + "2024-02-03": 2.841423123020562, + "2024-06-27": 5.193219419929176, + "2024-08-14": 4.240502093713502, + "2024-06-07": 7.293296729031598, + "2024-04-14": 5.381430300034119, + "2023-12-26": 4.31162885376218, + "2023-11-09": 1.4888831559605695, + "2023-10-14": 1.0099238923172622, + "2024-05-09": 7.195732480696747, + "2024-01-17": 3.284834764176755, + "2024-08-15": 4.121442365666032, + "2024-04-23": 7.035713797850911 + }, + "USD neo": { + "2024-09-12": 9.552944767036799, + "2024-09-15": 9.502102133879616, + "2024-09-22": 10.046224957400876, + "2024-09-05": 9.5540610314099, + "2024-09-10": 9.418358781717462, + "2024-09-11": 9.429819987469527, + "2024-09-20": 10.016101078923827, + "2024-09-26": 10.725038950732188, + "2024-09-16": 9.227910206493036, + "2024-09-08": 9.254604321138258, + "2024-09-24": 10.375859317964975, + "2024-09-29": 10.845097873210756, + "2024-09-17": 9.26689710667653, + "2024-09-14": 9.69290334394372, + "2024-09-03": 9.708929507866552, + "2024-09-25": 10.422140809714627, + "2024-09-18": 9.213455517981282, + "2024-09-07": 9.149160469911259, + "2024-09-06": 9.217823614126226, + "2024-09-19": 9.68769678416905, + "2024-09-30": 11.042682404876636, + "2024-09-01": 9.509750748137662, + "2024-08-31": 10.081489645942002, + "2024-09-02": 9.549986560813064, + "2024-09-23": 10.069588355407424, + "2024-09-13": 9.575714514779845, + "2024-10-01": 10.693490850913685, + "2024-09-04": 9.326187904174382, + "2024-09-28": 10.910719887273707, + "2024-09-21": 10.341150975421863, + "2024-09-09": 9.469903026012704, + "2024-09-27": 10.997513052378054, + "2024-09-27T07": 11.141921299493752, + "2024-09-27T05": 11.070263475895201, + "2024-09-30T14": 11.097329761039369, + "2024-09-27T14": 10.970700155086384, + "2024-09-27T23": 11.018060145829608, + "2024-09-28T11": 10.933376400665466, + "2024-09-29T00": 10.8220770614344, + "2024-09-28T18": 10.90530815910484, + "2024-09-29T23": 10.86563944228337, + "2024-10-01T13": 10.737912584252314, + "2024-09-30T10": 11.176556918830547, + "2024-09-25T22": 10.51651558374348, + "2024-09-29T11": 10.74547678136145, + "2024-09-28T12": 10.89620803124161, + "2024-09-26T09": 10.644655621528889, + "2024-09-28T10": 10.831705645970832, + "2024-09-27T16": 11.057302897544536, + "2024-09-24T17": 10.275064580708086, + "2024-09-27T15": 11.107082687580037, + "2024-09-29T12": 10.840059167460236, + "2024-09-25T04": 10.487186566651278, + "2024-09-25T21": 10.502656511360714, + "2024-09-25T18": 10.329803426199451, + "2024-09-26T04": 10.364114397714857, + "2024-09-26T05": 10.39397530715072, + "2024-09-30T04": 10.639535758241378, + "2024-09-27T13": 11.064451300228326, + "2024-09-28T13": 10.890837362350558, + "2024-09-25T08": 10.333026890196695, + "2024-09-30T03": 10.601756962635163, + "2024-10-01T10": 10.807742740857059, + "2024-09-25T13": 10.395159322755717, + "2024-10-01T01": 10.707017886688215, + "2024-09-26T17": 10.897561026406276, + "2024-09-25T15": 10.455573379728046, + "2024-09-29T22": 10.905066107376607, + "2024-09-29T01": 10.841038672206604, + "2024-09-30T06": 10.922323941308088, + "2024-09-27T12": 10.948494123853497, + "2024-09-25T23": 10.405329284696569, + "2024-09-30T05": 10.582363797245517, + "2024-09-28T23": 10.85418833042646, + "2024-09-30T19": 10.927776526921948, + "2024-09-25T00": 10.541258962531252, + "2024-10-01T12": 10.748633529147192, + "2024-09-29T10": 10.803471863087537, + "2024-09-24T22": 10.367614210405335, + "2024-09-26T08": 10.63274623927881, + "2024-09-29T20": 10.913274252519079, + "2024-09-25T12": 10.407079071269496, + "2024-09-25T05": 10.447439564706462, + "2024-09-27T09": 11.088816951625333, + "2024-09-26T02": 10.18667352220852, + "2024-09-28T05": 11.205077053003524, + "2024-09-29T03": 10.870783396176243, + "2024-09-26T23": 10.912316716300863, + "2024-09-29T16": 10.874573838281089, + "2024-09-26T21": 10.77017342647322, + "2024-09-26T16": 10.8389657302375, + "2024-09-28T03": 11.155503976790822, + "2024-09-29T21": 10.913224265876377, + "2024-09-30T09": 11.55617294159967, + "2024-09-24T16": 10.308548095393574, + "2024-09-30T07": 11.19053788745805, + "2024-09-28T17": 10.865459890518466, + "2024-09-28T02": 10.97425272568047, + "2024-09-28T15": 11.023122227242526, + "2024-09-29T17": 10.851272946226736, + "2024-09-25T17": 10.433737063403969, + "2024-09-25T16": 10.400328862843768, + "2024-10-01T04": 10.792404697348328, + "2024-10-01T07": 10.866520873690822, + "2024-09-30T23": 10.743225223083437, + "2024-09-29T13": 10.848587425490054, + "2024-09-26T22": 10.8250326851643, + "2024-10-01T11": 10.802476564348876, + "2024-09-30T16": 10.920350651988466, + "2024-09-28T01": 10.950068828091306, + "2024-09-27T02": 10.98543587883097, + "2024-09-30T20": 10.901507676198921, + "2024-09-28T06": 11.135255689275594, + "2024-09-27T08": 11.021575559116812, + "2024-10-01T06": 10.780860302377578, + "2024-09-27T03": 10.96517290592527, + "2024-09-25T06": 10.497295936336842, + "2024-10-01T02": 10.74458359553918, + "2024-09-27T17": 11.011487164613714, + "2024-09-30T22": 10.940226648433637, + "2024-09-29T05": 10.837313449290525, + "2024-09-28T20": 10.867231877564764, + "2024-09-30T13": 11.219464391433227, + "2024-09-26T18": 10.824010947794193, + "2024-09-25T10": 10.384564218458017, + "2024-09-25T02": 10.551749731044167, + "2024-09-29T02": 10.78307837187744, + "2024-09-28T08": 11.180307180330175, + "2024-09-30T17": 10.903493022193384, + "2024-09-30T02": 10.610223705567703, + "2024-09-28T09": 10.843865473240001, + "2024-09-25T03": 10.608126307700658, + "2024-09-29T15": 10.870909989166998, + "2024-09-29T06": 10.831833700756274, + "2024-09-24T18": 10.365802749226496, + "2024-09-26T07": 10.549352016354575, + "2024-09-26T15": 10.702490663625412, + "2024-09-27T04": 11.07058853864274, + "2024-09-27T11": 10.940361037131217, + "2024-09-26T20": 10.855129141874219, + "2024-09-30T12": 11.142174490763544, + "2024-09-27T10": 11.043059242052657, + "2024-09-26T12": 10.720521919123149, + "2024-09-24T23": 10.494425504280747, + "2024-09-30T00": 10.782836018710563, + "2024-09-25T14": 10.396583798079385, + "2024-09-26T14": 10.744908730992801, + "2024-09-27T01": 10.970505162280825, + "2024-09-28T04": 11.107108507576974, + "2024-09-29T08": 10.740758118359691, + "2024-09-26T01": 10.292132295111502, + "2024-09-27T19": 10.922388790609947, + "2024-09-25T01": 10.489272414150227, + "2024-09-26T00": 10.295454103973919, + "2024-09-29T18": 10.917964799506821, + "2024-09-28T19": 10.911572398068767, + "2024-09-28T22": 10.814575284221965, + "2024-09-27T18": 10.892512316741026, + "2024-09-24T21": 10.39609394144412, + "2024-09-30T08": 11.383878954205388, + "2024-09-25T11": 10.405751153063644, + "2024-09-25T20": 10.471559601308131, + "2024-10-01T09": 10.794262510455717, + "2024-10-01T03": 10.661026557644089, + "2024-09-26T11": 10.775246614002842, + "2024-09-28T07": 11.05044107535676, + "2024-09-27T22": 10.920428097928422, + "2024-09-27T21": 10.939124520876788, + "2024-09-26T03": 10.360827152028294, + "2024-09-26T13": 10.731798207560926, + "2024-09-30T18": 10.95614038949213, + "2024-10-01T08": 10.798149575799608, + "2024-09-25T19": 10.417090865018118, + "2024-09-30T21": 10.912500032057842, + "2024-09-28T14": 10.949754236736004, + "2024-09-27T20": 10.941408245670951, + "2024-09-26T06": 10.497297106806272, + "2024-09-26T10": 10.706863114722774, + "2024-09-29T04": 10.87263524812011, + "2024-09-28T16": 10.976498387271466, + "2024-10-01T00": 10.649005504064501, + "2024-09-24T20": 10.389549515274055, + "2024-09-26T19": 10.849847479193743, + "2024-09-24T15": 10.270212000616336, + "2024-09-27T06": 11.06748493552755, + "2024-09-29T14": 10.834559037659105, + "2024-09-29T07": 10.8080731786256, + "2024-09-28T00": 10.933304997216831, + "2024-09-30T01": 10.770681599109013, + "2024-09-29T09": 10.715147115183028, + "2024-09-25T09": 10.376401718658899, + "2024-09-30T11": 11.176193764999702, + "2024-09-25T07": 10.316518771532806, + "2024-09-24T19": 10.383733497980744, + "2024-09-29T19": 10.898980376316347, + "2024-09-30T15": 11.046352639308902, + "2024-09-28T21": 10.882375720630398, + "2024-10-01T05": 10.880919793567882, + "2024-10-01T14": 10.366888999999999, + "2024-09-27T00": 10.87990022286301, + "latest": 9.94, + "2024-10-01T15": 10.366888999999999 + }, + "USD nervos": { + "2024-09-12": 0.008723119709694393, + "2024-09-15": 0.014665293982939214, + "2024-09-22": 0.015934679229513665, + "2024-09-05": 0.008191479890058964, + "2024-09-10": 0.008848584532040713, + "2024-09-11": 0.00863322173322656, + "2024-09-20": 0.01813498089767627, + "2024-09-26": 0.016392455092187216, + "2024-09-16": 0.017067735259699554, + "2024-09-08": 0.007888215943296258, + "2024-09-24": 0.016422506919133238, + "2024-09-29": 0.01856468367409571, + "2024-09-17": 0.015863738978622262, + "2024-09-14": 0.013770984647968, + "2024-09-03": 0.008297985596907672, + "2024-09-25": 0.016979303902234563, + "2024-09-18": 0.016738602997940936, + "2024-09-07": 0.007556155741353435, + "2024-09-06": 0.007780700331630759, + "2024-09-19": 0.01780235470853984, + "2024-09-30": 0.017788880840504034, + "2024-09-01": 0.00809130567472389, + "2024-08-31": 0.008471252781920768, + "2024-09-02": 0.007661536722558323, + "2024-09-23": 0.016084870305944906, + "2024-09-13": 0.009110382878001633, + "2024-10-01": 0.01676752538465363, + "2024-09-04": 0.008039976520201237, + "2024-09-28": 0.01754268261600207, + "2024-09-21": 0.016698929878993674, + "2024-09-09": 0.008098548519634464, + "2024-09-27": 0.016835241600979895, + "2024-09-27T07": 0.017005547210109554, + "2024-09-27T05": 0.016811906173465563, + "2024-09-30T14": 0.017056977682645656, + "2024-09-27T14": 0.016994250352386244, + "2024-09-27T23": 0.017203684965909686, + "2024-09-28T11": 0.018683896371466932, + "2024-09-29T00": 0.01856468367409571, + "2024-09-28T18": 0.01826798009115579, + "2024-09-29T23": 0.01799518514796515, + "2024-10-01T13": 0.01710749319932729, + "2024-09-30T10": 0.01706126835442121, + "2024-09-25T22": 0.016474844770712337, + "2024-09-29T11": 0.018002305266180834, + "2024-09-28T12": 0.018573745962483585, + "2024-09-26T09": 0.016439410839479127, + "2024-09-28T10": 0.01846211562240219, + "2024-09-27T16": 0.017152359321278475, + "2024-09-24T17": 0.016735011108834984, + "2024-09-27T15": 0.017123419071711502, + "2024-09-29T12": 0.01803654291689781, + "2024-09-25T04": 0.016743491646052402, + "2024-09-25T21": 0.01641545433822157, + "2024-09-25T18": 0.016433920927132476, + "2024-09-26T04": 0.016335243430293692, + "2024-09-26T05": 0.016345712661114866, + "2024-09-30T04": 0.017402366635904658, + "2024-09-27T13": 0.016979896758766135, + "2024-09-28T13": 0.018440105628367214, + "2024-09-25T08": 0.016316112406440243, + "2024-09-30T03": 0.017208136297224425, + "2024-10-01T10": 0.017055824873625895, + "2024-09-25T13": 0.016267487618089996, + "2024-10-01T01": 0.016982605940298066, + "2024-09-26T17": 0.016885972066833236, + "2024-09-25T15": 0.016404239088785626, + "2024-09-29T22": 0.017981773507856496, + "2024-09-29T01": 0.018168123338386615, + "2024-09-30T06": 0.017310902810796044, + "2024-09-27T12": 0.016823957925639007, + "2024-09-25T23": 0.016430384275576273, + "2024-09-30T05": 0.017255864369388016, + "2024-09-28T23": 0.018555528146178814, + "2024-09-30T19": 0.01690858163964077, + "2024-09-25T00": 0.017028664221517734, + "2024-10-01T12": 0.017206477236269346, + "2024-09-29T10": 0.018112059766166227, + "2024-09-24T22": 0.016970681655268056, + "2024-09-26T08": 0.01651216374466536, + "2024-09-29T20": 0.017968571943919442, + "2024-09-25T12": 0.016299630185098824, + "2024-09-25T05": 0.016487297188325947, + "2024-09-27T09": 0.01711797072705868, + "2024-09-26T02": 0.01625032692515108, + "2024-09-28T05": 0.01861279512823546, + "2024-09-29T03": 0.01822424890173149, + "2024-09-26T23": 0.01680213832917606, + "2024-09-29T16": 0.017819955071386496, + "2024-09-26T21": 0.016785915356750128, + "2024-09-26T16": 0.016774496247470697, + "2024-09-28T03": 0.018112519765749416, + "2024-09-29T21": 0.017841368679273936, + "2024-09-30T09": 0.01731733437793797, + "2024-09-24T16": 0.016812073011363657, + "2024-09-30T07": 0.01734082679529951, + "2024-09-28T17": 0.01828578518253403, + "2024-09-28T02": 0.017718631461408788, + "2024-09-28T15": 0.018538058887400996, + "2024-09-29T17": 0.017848494956417302, + "2024-09-25T17": 0.016297222664509274, + "2024-09-25T16": 0.01627019745075832, + "2024-10-01T04": 0.01704324258708921, + "2024-10-01T07": 0.01709408539902822, + "2024-09-30T23": 0.0169250090425, + "2024-09-29T13": 0.017828052913483213, + "2024-09-26T22": 0.016898868476428353, + "2024-10-01T11": 0.01719723714584672, + "2024-09-30T16": 0.016799145236913032, + "2024-09-28T01": 0.01747519346144102, + "2024-09-27T02": 0.01662702428665294, + "2024-09-30T20": 0.016977416837705782, + "2024-09-28T06": 0.019150548597546908, + "2024-09-27T08": 0.01719369883079252, + "2024-10-01T06": 0.016990039334055074, + "2024-09-27T03": 0.016577403099966456, + "2024-09-25T06": 0.01636558025858657, + "2024-10-01T02": 0.01695422482127585, + "2024-09-27T17": 0.017195295803266928, + "2024-09-30T22": 0.017004084283417816, + "2024-09-29T05": 0.018184868503906253, + "2024-09-28T20": 0.018363084116855194, + "2024-09-30T13": 0.017012679363226264, + "2024-09-26T18": 0.0168440207538276, + "2024-09-25T10": 0.01630253255962322, + "2024-09-25T02": 0.016832161241966077, + "2024-09-29T02": 0.01826025284850443, + "2024-09-28T08": 0.018301790802040373, + "2024-09-30T17": 0.016815661150784054, + "2024-09-30T02": 0.017432424486838852, + "2024-09-28T09": 0.01824222838027087, + "2024-09-25T03": 0.016747103683097342, + "2024-09-29T15": 0.017831928261294382, + "2024-09-29T06": 0.018172961378869885, + "2024-09-24T18": 0.016744758054733883, + "2024-09-26T07": 0.01650952223163479, + "2024-09-26T15": 0.016619621401892083, + "2024-09-27T04": 0.016676698686820153, + "2024-09-27T11": 0.016836231076640038, + "2024-09-26T20": 0.016844410818116048, + "2024-09-30T12": 0.017066819657806875, + "2024-09-27T10": 0.017112762127958415, + "2024-09-26T12": 0.01651455726618614, + "2024-09-24T23": 0.017065571986262754, + "2024-09-30T00": 0.017975421475321586, + "2024-09-25T14": 0.01632731850114677, + "2024-09-26T14": 0.016703217760642763, + "2024-09-27T01": 0.016675134218010743, + "2024-09-28T04": 0.017994946544604762, + "2024-09-29T08": 0.017971736024965206, + "2024-09-26T01": 0.016195237223959977, + "2024-09-27T19": 0.017321845260247628, + "2024-09-25T01": 0.016795067096279474, + "2024-09-26T00": 0.016467874981290022, + "2024-09-29T18": 0.01790804738040447, + "2024-09-28T19": 0.018307347006634726, + "2024-09-28T22": 0.018402008449186713, + "2024-09-27T18": 0.017062825732763028, + "2024-09-24T21": 0.016962679820040953, + "2024-09-30T08": 0.017440162121829295, + "2024-09-25T11": 0.016366657979364933, + "2024-09-25T20": 0.016466746522673315, + "2024-10-01T09": 0.01701049696091483, + "2024-10-01T03": 0.016940552307849827, + "2024-09-26T11": 0.016576331490812224, + "2024-09-28T07": 0.0188892568038984, + "2024-09-27T22": 0.017336469122924032, + "2024-09-27T21": 0.01725055039653538, + "2024-09-26T03": 0.016337281235036014, + "2024-09-26T13": 0.016642171646948107, + "2024-09-30T18": 0.016959833261644595, + "2024-10-01T08": 0.017029165452329537, + "2024-09-25T19": 0.01648751193365881, + "2024-09-30T21": 0.017044015348314293, + "2024-09-28T14": 0.01841388154946903, + "2024-09-27T20": 0.017112876867775545, + "2024-09-26T06": 0.016408642141439403, + "2024-09-26T10": 0.016427923410216306, + "2024-09-29T04": 0.01830597950298569, + "2024-09-28T16": 0.01831855208163566, + "2024-10-01T00": 0.01676752538465363, + "2024-09-24T20": 0.01697451810007034, + "2024-09-26T19": 0.01697347793289778, + "2024-09-24T15": 0.016738605984280248, + "2024-09-27T06": 0.016882650489833017, + "2024-09-29T14": 0.017959868112028494, + "2024-09-29T07": 0.01788620884523859, + "2024-09-28T00": 0.01731270708620307, + "2024-09-30T01": 0.01762093009203897, + "2024-09-29T09": 0.018087832865804152, + "2024-09-25T09": 0.016301620475973323, + "2024-09-30T11": 0.016948775775513774, + "2024-09-25T07": 0.016370273019731797, + "2024-09-24T19": 0.01676560710812504, + "2024-09-29T19": 0.017898569271579443, + "2024-09-30T15": 0.016938883862947746, + "2024-09-28T21": 0.018389674245967047, + "2024-10-01T05": 0.01710472202302295, + "2024-10-01T14": 0.016873618403198273, + "2024-09-27T00": 0.016941832736469216, + "latest": 0.01587366, + "2024-10-01T15": 0.01638879254776951 + }, + "USD osmo": { + "2024-09-12": 0.39823565374910136, + "2024-09-15": 0.43941879472094086, + "2024-09-22": 0.5275755184559832, + "2024-09-05": 0.38105302160426574, + "2024-09-10": 0.39688799944194436, + "2024-09-11": 0.3920146304274471, + "2024-09-20": 0.5299036391603856, + "2024-09-26": 0.6405246079121616, + "2024-09-16": 0.4288032506884606, + "2024-09-08": 0.36957770569836235, + "2024-09-24": 0.5647454889559417, + "2024-09-29": 0.6453275145123738, + "2024-09-17": 0.46399744005433163, + "2024-09-14": 0.41962569172181546, + "2024-09-03": 0.39730981389808845, + "2024-09-25": 0.5923656603143443, + "2024-09-18": 0.4740343062815445, + "2024-09-07": 0.367502019326309, + "2024-09-06": 0.3743984001371972, + "2024-09-19": 0.5156663859026376, + "2024-09-30": 0.6291837302660866, + "2024-09-01": 0.39054869542872156, + "2024-08-31": 0.40167751308287236, + "2024-09-02": 0.3900538619513858, + "2024-09-23": 0.54661004340891, + "2024-09-13": 0.40580727621841106, + "2024-10-01": 0.6008210877415773, + "2024-09-04": 0.375713413037905, + "2024-09-28": 0.643097743139996, + "2024-09-21": 0.5322386449423891, + "2024-09-09": 0.3831970292406849, + "2024-09-27": 0.671815609403228, + "2024-09-27T07": 0.68066806, + "2024-09-27T05": 0.6708335400000001, + "2024-09-30T14": 0.6267085302050419, + "2024-09-27T14": 0.680817792, + "2024-09-27T23": 0.6645797399999999, + "2024-09-28T11": 0.6465387899999999, + "2024-09-29T00": 0.6466581939999999, + "2024-09-28T18": 0.641834757, + "2024-09-29T23": 0.6550982500000001, + "2024-10-01T13": 0.597234297, + "2024-09-30T10": 0.6277623320000001, + "2024-09-25T22": 0.59691045, + "2024-09-29T11": 0.63566356, + "2024-09-28T12": 0.6435579149999999, + "2024-09-26T09": 0.620669632, + "2024-09-28T10": 0.641583395, + "2024-09-27T16": 0.6721726257937949, + "2024-09-24T17": 0.5708143649999999, + "2024-09-27T15": 0.6750484780000001, + "2024-09-29T12": 0.6385766199999999, + "2024-09-25T04": 0.595470225, + "2024-09-25T21": 0.601209805, + "2024-09-25T18": 0.5940188374918464, + "2024-09-26T04": 0.604224724, + "2024-09-26T05": 0.6074237960000001, + "2024-09-30T04": 0.63751708670867, + "2024-09-27T13": 0.6759284019999999, + "2024-09-28T13": 0.6389575009999999, + "2024-09-25T08": 0.580259379, + "2024-09-30T03": 0.640161588, + "2024-10-01T10": 0.61140216, + "2024-09-25T13": 0.581424405, + "2024-10-01T01": 0.602780357, + "2024-09-26T17": 0.6567459689999999, + "2024-09-25T15": 0.595664258, + "2024-09-29T22": 0.658879056, + "2024-09-29T01": 0.645170961, + "2024-09-30T06": 0.6448440247429879, + "2024-09-27T12": 0.679515498, + "2024-09-25T23": 0.591969738, + "2024-09-30T05": 0.640406404, + "2024-09-28T23": 0.641970609, + "2024-09-30T19": 0.62076402, + "2024-09-25T00": 0.5907007693373841, + "2024-10-01T12": 0.610620609, + "2024-09-29T10": 0.6331821762582234, + "2024-09-24T22": 0.586376544, + "2024-09-26T08": 0.6235878040370327, + "2024-09-29T20": 0.6602056159999999, + "2024-09-25T12": 0.582753376, + "2024-09-25T05": 0.58957052, + "2024-09-27T09": 0.681022562, + "2024-09-26T02": 0.5980444679999999, + "2024-09-28T05": 0.653856888, + "2024-09-29T03": 0.6473129459999999, + "2024-09-26T23": 0.6534784079999999, + "2024-09-29T16": 0.6504650399999999, + "2024-09-26T21": 0.65236523, + "2024-09-26T16": 0.659332965, + "2024-09-28T03": 0.6602792239999999, + "2024-09-29T21": 0.660599075, + "2024-09-30T09": 0.635406354, + "2024-09-24T16": 0.5642266410000001, + "2024-09-30T07": 0.6445128899999999, + "2024-09-28T17": 0.6399343580000001, + "2024-09-28T02": 0.663156457494983, + "2024-09-28T15": 0.643157879, + "2024-09-29T17": 0.6568853840000001, + "2024-09-25T17": 0.593099156, + "2024-09-25T16": 0.594070295, + "2024-10-01T04": 0.6073596880000001, + "2024-10-01T07": 0.6144181078804656, + "2024-09-30T23": 0.5991818800348316, + "2024-09-29T13": 0.63658911, + "2024-09-26T22": 0.6570525600000001, + "2024-10-01T11": 0.61290805, + "2024-09-30T16": 0.618088724, + "2024-09-28T01": 0.6590790799999999, + "2024-09-27T02": 0.6568739204062508, + "2024-09-30T20": 0.6222070559999999, + "2024-09-28T06": 0.6470970500000001, + "2024-09-27T08": 0.6848027050000001, + "2024-10-01T06": 0.6100436739999999, + "2024-09-27T03": 0.6587888483745007, + "2024-09-25T06": 0.582665038, + "2024-10-01T02": 0.6007513619999999, + "2024-09-27T17": 0.6656331, + "2024-09-30T22": 0.609423216, + "2024-09-29T05": 0.643819314, + "2024-09-28T20": 0.64146414, + "2024-09-30T13": 0.63383661, + "2024-09-26T18": 0.650065, + "2024-09-25T10": 0.583165008, + "2024-09-25T02": 0.599664018, + "2024-09-29T02": 0.6485129699999999, + "2024-09-28T08": 0.64311574, + "2024-09-30T17": 0.6179392939999999, + "2024-09-30T02": 0.6440322, + "2024-09-28T09": 0.638489376, + "2024-09-25T03": 0.59697015, + "2024-09-29T15": 0.645783941, + "2024-09-29T06": 0.639225568, + "2024-09-24T18": 0.574296608, + "2024-09-26T07": 0.618163974, + "2024-09-26T15": 0.6482064820000001, + "2024-09-27T04": 0.6653133059999999, + "2024-09-27T11": 0.677915226, + "2024-09-26T20": 0.6471035199999999, + "2024-09-30T12": 0.631055823, + "2024-09-27T10": 0.6720209420000001, + "2024-09-26T12": 0.643761372, + "2024-09-24T23": 0.587364756, + "2024-09-30T00": 0.652378276, + "2024-09-25T14": 0.590735012, + "2024-09-26T14": 0.6419935800000001, + "2024-09-27T01": 0.655891812, + "2024-09-28T04": 0.657385449, + "2024-09-29T08": 0.6308883120000001, + "2024-09-26T01": 0.589152675, + "2024-09-27T19": 0.6647997050000001, + "2024-09-25T01": 0.5982267594169788, + "2024-09-26T00": 0.58925265, + "2024-09-29T18": 0.66033204, + "2024-09-28T19": 0.64156415, + "2024-09-28T22": 0.637776524, + "2024-09-27T18": 0.6627596429999999, + "2024-09-24T21": 0.58146511, + "2024-09-30T08": 0.6402256080000001, + "2024-09-25T11": 0.581459295, + "2024-09-25T20": 0.5957165879999999, + "2024-10-01T09": 0.6103145440000001, + "2024-10-01T03": 0.6049943820000001, + "2024-09-26T11": 0.6368235720000001, + "2024-09-28T07": 0.64492896, + "2024-09-27T22": 0.6641195200000001, + "2024-09-27T21": 0.6648063519999999, + "2024-09-26T03": 0.6029454131060515, + "2024-09-26T13": 0.644587108, + "2024-09-30T18": 0.620588928, + "2024-10-01T15": 0.58842342, + "2024-10-01T08": 0.611726584, + "2024-09-25T19": 0.597516336, + "2024-09-30T21": 0.621501056, + "2024-09-28T14": 0.64146414, + "2024-09-27T20": 0.6610189620000001, + "2024-09-26T06": 0.6105473250000001, + "2024-09-26T10": 0.626393495, + "2024-09-29T04": 0.64301929, + "2024-09-28T16": 0.6424642399999999, + "2024-10-01T00": 0.596437452, + "2024-09-24T20": 0.5811651280000001, + "2024-09-26T19": 0.65056505, + "2024-09-24T15": 0.5616325959999999, + "2024-09-27T06": 0.6767135339999999, + "2024-09-29T14": 0.641409021, + "2024-09-29T07": 0.632744289, + "2024-09-28T00": 0.6610793199999999, + "2024-09-30T01": 0.6537784439999998, + "2024-09-29T09": 0.634350744, + "2024-09-25T09": 0.580159386, + "2024-09-30T11": 0.629580680585346, + "2024-09-25T07": 0.578776848, + "2024-09-24T19": 0.576130856, + "2024-09-29T19": 0.6590186020000001, + "2024-09-30T15": 0.624618789, + "2024-09-28T21": 0.6355132730227092, + "2024-10-01T05": 0.6078202739999999, + "2024-10-01T14": 0.58952309, + "2024-09-27T00": 0.6566853579999999, + "latest": 0.563585 + }, + "USD polkadot": { + "2024-09-12": 4.230736893367224, + "2024-09-15": 4.49550168949808, + "2024-09-22": 4.354026749627451, + "2024-09-05": 4.0360116169711135, + "2024-09-10": 4.241304504776069, + "2024-09-11": 4.149077739364984, + "2024-09-20": 4.309025568083445, + "2024-09-26": 4.7849976556033615, + "2024-09-16": 4.271832428386335, + "2024-09-08": 4.135749929016587, + "2024-09-24": 4.54531009630691, + "2024-09-29": 4.777573865673165, + "2024-09-17": 4.184292424097821, + "2024-09-14": 4.404319238739341, + "2024-09-03": 4.208380535011228, + "2024-09-25": 4.6704467697440135, + "2024-09-18": 4.0812602378726845, + "2024-09-07": 4.0593115129345945, + "2024-09-06": 3.9859334555838752, + "2024-09-19": 4.233142495851812, + "2024-09-30": 4.613871126867028, + "2024-09-01": 4.176451358949744, + "2024-08-31": 4.276746462210312, + "2024-09-02": 4.149653411066235, + "2024-09-23": 4.382595712306765, + "2024-09-13": 4.323839066295821, + "2024-10-01": 4.486240208503905, + "2024-09-04": 4.067637238727524, + "2024-09-28": 4.813302367594223, + "2024-09-21": 4.367393029999999, + "2024-09-09": 4.193690858925892, + "2024-09-27": 4.898247749484631, + "2024-09-27T07": 4.9084908, + "2024-09-27T05": 4.929246450000001, + "2024-09-30T14": 4.56213303, + "2024-09-27T14": 4.91057088, + "2024-09-27T23": 4.900588, + "2024-09-28T11": 4.8202892, + "2024-09-29T00": 4.800432, + "2024-09-28T18": 4.811010100000001, + "2024-09-29T23": 4.76371445, + "2024-10-01T13": 4.4165141299999995, + "2024-09-30T10": 4.606723580000001, + "2024-09-25T22": 4.67229905, + "2024-09-29T11": 4.730473000000001, + "2024-09-28T12": 4.80543245, + "2024-09-26T09": 4.771997669999999, + "2024-09-28T10": 4.82662738, + "2024-09-27T16": 4.9134913000000005, + "2024-09-24T17": 4.56431525, + "2024-09-27T15": 4.91007998, + "2024-09-29T12": 4.7285673599999996, + "2024-09-25T04": 4.67076645, + "2024-09-25T21": 4.7112932, + "2024-09-25T18": 4.7490974999999995, + "2024-09-26T04": 4.67764309, + "2024-09-26T05": 4.74962221, + "2024-09-30T04": 4.6717664, + "2024-09-27T13": 4.904931759999999, + "2024-09-28T13": 4.790431099999999, + "2024-09-25T08": 4.627718104911322, + "2024-09-30T03": 4.66871986, + "2024-10-01T10": 4.52527584, + "2024-09-25T13": 4.67439225, + "2024-10-01T01": 4.490618710000001, + "2024-09-26T17": 4.821948650215766, + "2024-09-25T15": 4.73071614, + "2024-09-29T22": 4.792575039999999, + "2024-09-29T01": 4.785569223365457, + "2024-09-30T06": 4.688093759999999, + "2024-09-27T12": 4.90183317, + "2024-09-25T23": 4.64097876, + "2024-09-30T05": 4.67504675, + "2024-09-28T23": 4.8015281100000005, + "2024-09-30T19": 4.529278219999999, + "2024-09-25T00": 4.64286071, + "2024-10-01T12": 4.50641409, + "2024-09-29T10": 4.71942471, + "2024-09-24T22": 4.64281428, + "2024-09-26T08": 4.795040800000001, + "2024-09-29T20": 4.834773439999999, + "2024-09-25T12": 4.665626720000001, + "2024-09-25T05": 4.662766850000001, + "2024-09-27T09": 4.8958810999999995, + "2024-09-26T02": 4.6317954199999996, + "2024-09-28T05": 4.87216904, + "2024-09-29T03": 4.813096259999999, + "2024-09-26T23": 4.79457528, + "2024-09-29T16": 4.7804780000000004, + "2024-09-26T21": 4.78797875, + "2024-09-26T16": 4.855242750000001, + "2024-09-28T03": 4.9015881199999995, + "2024-09-29T21": 4.816133660890529, + "2024-09-30T09": 4.658046580000001, + "2024-09-24T16": 4.51641279, + "2024-09-30T07": 4.709094179999999, + "2024-09-28T17": 4.801008, + "2024-09-28T02": 4.91862534387312, + "2024-09-28T15": 4.80743263, + "2024-09-29T17": 4.8056246499999995, + "2024-09-25T17": 4.71719794, + "2024-09-25T16": 4.74076295, + "2024-10-01T04": 4.52546432, + "2024-10-01T07": 4.54818118, + "2024-09-30T23": 4.43189175, + "2024-09-29T13": 4.72966206, + "2024-09-26T22": 4.80638448, + "2024-10-01T11": 4.5233214, + "2024-09-30T16": 4.5321840600000005, + "2024-09-28T01": 4.886586319999999, + "2024-09-27T02": 4.885549788648804, + "2024-09-30T20": 4.53759291, + "2024-09-28T06": 4.833724950000001, + "2024-09-27T08": 4.9047356, + "2024-10-01T06": 4.545090259999999, + "2024-09-27T03": 4.89929394, + "2024-09-25T06": 4.633721960000001, + "2024-10-01T02": 4.485396959999999, + "2024-09-27T17": 4.8999798, + "2024-09-30T22": 4.4886979, + "2024-09-29T05": 4.78414352, + "2024-09-28T20": 4.8144814, + "2024-09-30T13": 4.607252079374052, + "2024-09-26T18": 4.81668162, + "2024-09-25T10": 4.6547207, + "2024-09-25T02": 4.66372016, + "2024-09-29T02": 4.8200964, + "2024-09-28T08": 4.80286436, + "2024-09-30T17": 4.5388196, + "2024-09-30T02": 4.6802340000000004, + "2024-09-28T09": 4.78366962, + "2024-09-25T03": 4.67076645, + "2024-09-29T15": 4.77162023, + "2024-09-29T06": 4.7661906400000005, + "2024-09-24T18": 4.56028495962357, + "2024-09-26T07": 4.797944220000001, + "2024-09-26T15": 4.827048270000001, + "2024-09-27T04": 4.917098339999999, + "2024-09-27T11": 4.87882926, + "2024-09-26T20": 4.775764, + "2024-09-30T12": 4.6226763900000005, + "2024-09-27T10": 4.8688762400000005, + "2024-09-26T12": 4.777713320000001, + "2024-09-24T23": 4.65672058, + "2024-09-30T00": 4.738568559999999, + "2024-09-25T14": 4.71448135, + "2024-09-26T14": 4.80895191, + "2024-09-27T01": 4.86168054, + "2024-09-28T04": 4.901637129999999, + "2024-09-29T08": 4.71866052, + "2024-09-26T01": 4.587852750000001, + "2024-09-27T19": 4.87573125, + "2024-09-25T01": 4.6628601100000004, + "2024-09-26T00": 4.61584575, + "2024-09-29T18": 4.8069612, + "2024-09-28T19": 4.8114811, + "2024-09-28T22": 4.792575039999999, + "2024-09-27T18": 4.882439379999999, + "2024-09-24T21": 4.59372436, + "2024-09-30T08": 4.69218768, + "2024-09-25T11": 4.66167366, + "2024-09-25T20": 4.726338220000001, + "2024-10-01T09": 4.52536636, + "2024-10-01T03": 4.52296758, + "2024-09-26T11": 4.7704274799999995, + "2024-09-28T07": 4.830966, + "2024-09-27T22": 4.90288236, + "2024-09-27T21": 4.8887820799999995, + "2024-09-26T03": 4.65065092, + "2024-09-26T13": 4.77890442, + "2024-09-30T18": 4.520462520000001, + "2024-10-01T15": 4.3836845, + "2024-10-01T08": 4.530456279999999, + "2024-09-25T19": 4.72833794, + "2024-09-30T21": 4.53154944, + "2024-09-28T14": 4.8244824, + "2024-09-27T20": 4.86987642, + "2024-09-26T06": 4.782804, + "2024-09-26T10": 4.79118536, + "2024-09-29T04": 4.78414352, + "2024-09-28T16": 4.79627958, + "2024-10-01T00": 4.42905036, + "2024-09-24T20": 4.59072454, + "2024-09-26T19": 4.8114811, + "2024-09-24T15": 4.51145856, + "2024-09-27T06": 4.943098859999999, + "2024-09-29T14": 4.751807670000001, + "2024-09-29T07": 4.73833166, + "2024-09-28T00": 4.886586319999999, + "2024-09-30T01": 4.702578986223494, + "2024-09-29T09": 4.74137928, + "2024-09-25T09": 4.63367562, + "2024-09-30T11": 4.62272262, + "2024-09-25T07": 4.60781568, + "2024-09-24T19": 4.5694516, + "2024-09-29T19": 4.8158667, + "2024-09-30T15": 4.5494085, + "2024-09-28T21": 4.77552525, + "2024-10-01T05": 4.520919419999999, + "2024-10-01T14": 4.408677, + "2024-09-27T00": 4.84963037, + "latest": 4.22 + }, + "USD polygon": { + "2024-09-12": 0.3775000790734009, + "2024-09-15": 0.400791469869452, + "2024-09-22": 0.40098030296152587, + "2024-09-05": 0.37284627924546243, + "2024-09-10": 0.37937915272453127, + "2024-09-11": 0.37458568964207617, + "2024-09-20": 0.40031191402587174, + "2024-09-26": 0.4230903120028148, + "2024-09-16": 0.3788579791582967, + "2024-09-08": 0.3725697688989462, + "2024-09-24": 0.40508819678780317, + "2024-09-29": 0.4218072729888126, + "2024-09-17": 0.38333152179510915, + "2024-09-14": 0.4108008811681073, + "2024-09-03": 0.4076134578569064, + "2024-09-25": 0.4114826846526699, + "2024-09-18": 0.37906816058870973, + "2024-09-07": 0.3728959549462348, + "2024-09-06": 0.3678922093450388, + "2024-09-19": 0.3969954355574452, + "2024-09-30": 0.4078096069289482, + "2024-09-01": 0.40962394466588614, + "2024-08-31": 0.420977298965017, + "2024-09-02": 0.4045153164519922, + "2024-09-23": 0.40463878716677715, + "2024-09-13": 0.4191630498402945, + "2024-10-01": 0.3981, + "2024-09-04": 0.38214674103348883, + "2024-09-28": 0.4243241210833073, + "2024-09-21": 0.4050518718900339, + "2024-09-09": 0.37748698596665914, + "2024-09-27": 0.4330065887056025, + "2024-09-27T07": 0.4339, + "2024-09-27T05": 0.4311, + "2024-09-30T14": 0.4075, + "2024-09-27T14": 0.4363, + "2024-09-27T23": 0.4342, + "2024-09-28T11": 0.4235, + "2024-09-29T00": 0.4237, + "2024-09-28T18": 0.4252, + "2024-09-29T23": 0.421, + "2024-10-01T13": 0.3959, + "2024-09-30T10": 0.4066875485003716, + "2024-09-25T22": 0.4131, + "2024-09-29T11": 0.419, + "2024-09-28T12": 0.4213111987222377, + "2024-09-26T09": 0.4195, + "2024-09-28T10": 0.4235, + "2024-09-27T16": 0.4353, + "2024-09-24T17": 0.405, + "2024-09-27T15": 0.4359, + "2024-09-29T12": 0.4187, + "2024-09-25T04": 0.4112, + "2024-09-25T21": 0.41402868012927374, + "2024-09-25T18": 0.4107, + "2024-09-26T04": 0.411, + "2024-09-26T05": 0.4114, + "2024-09-30T04": 0.4114453337213038, + "2024-09-27T13": 0.43328873114885114, + "2024-09-28T13": 0.4212, + "2024-09-25T08": 0.4084, + "2024-09-30T03": 0.4101, + "2024-10-01T10": 0.40311418656681586, + "2024-09-25T13": 0.414231578810616, + "2024-10-01T01": 0.3988, + "2024-09-26T17": 0.4294092550782008, + "2024-09-25T15": 0.4166, + "2024-09-29T22": 0.42282662346399424, + "2024-09-29T01": 0.4218, + "2024-09-30T06": 0.4144, + "2024-09-27T12": 0.433, + "2024-09-25T23": 0.41000102199156846, + "2024-09-30T05": 0.4128, + "2024-09-28T23": 0.4228, + "2024-09-30T19": 0.4015, + "2024-09-25T00": 0.4099, + "2024-10-01T12": 0.4033, + "2024-09-29T10": 0.4182386792582937, + "2024-09-24T22": 0.4086, + "2024-09-26T08": 0.4175001874833931, + "2024-09-29T20": 0.42453313765100364, + "2024-09-25T12": 0.4107, + "2024-09-25T05": 0.4099, + "2024-09-27T09": 0.4347, + "2024-09-26T02": 0.4093, + "2024-09-28T05": 0.4323, + "2024-09-29T03": 0.4224, + "2024-09-26T23": 0.42463207869496356, + "2024-09-29T16": 0.421, + "2024-09-26T21": 0.424, + "2024-09-26T16": 0.43, + "2024-09-28T03": 0.436, + "2024-09-29T21": 0.4238, + "2024-09-30T09": 0.4110387548189204, + "2024-09-24T16": 0.4019, + "2024-09-30T07": 0.4148, + "2024-09-28T17": 0.4243, + "2024-09-28T02": 0.437, + "2024-09-28T15": 0.4253, + "2024-09-29T17": 0.423, + "2024-09-25T17": 0.4111183824153024, + "2024-09-25T16": 0.4137, + "2024-10-01T04": 0.4031, + "2024-10-01T07": 0.4046, + "2024-09-30T23": 0.3966256471847046, + "2024-09-29T13": 0.4175, + "2024-09-26T22": 0.4252, + "2024-10-01T11": 0.40411709949743657, + "2024-09-30T16": 0.4034, + "2024-09-28T01": 0.4345, + "2024-09-27T02": 0.4254, + "2024-09-30T20": 0.4024, + "2024-09-28T06": 0.4293, + "2024-09-27T08": 0.4347, + "2024-10-01T06": 0.40375754530595653, + "2024-09-27T03": 0.4262498414253343, + "2024-09-25T06": 0.4071, + "2024-10-01T02": 0.3978225162665804, + "2024-09-27T17": 0.4324, + "2024-09-30T22": 0.3997210590532278, + "2024-09-29T05": 0.4227, + "2024-09-28T20": 0.4242, + "2024-09-30T13": 0.4095, + "2024-09-26T18": 0.4268, + "2024-09-25T10": 0.4088, + "2024-09-25T02": 0.4114, + "2024-09-29T02": 0.4233, + "2024-09-28T08": 0.4226, + "2024-09-30T17": 0.4032, + "2024-09-30T02": 0.4124, + "2024-09-28T09": 0.4186, + "2024-09-25T03": 0.4117, + "2024-09-29T15": 0.4207, + "2024-09-29T06": 0.4199, + "2024-09-24T18": 0.4043, + "2024-09-26T07": 0.4178, + "2024-09-26T15": 0.42740669182889046, + "2024-09-27T04": 0.4293, + "2024-09-27T11": 0.4311, + "2024-09-26T20": 0.4232, + "2024-09-30T12": 0.4085128692972627, + "2024-09-27T10": 0.43103793951142033, + "2024-09-26T12": 0.4221, + "2024-09-24T23": 0.409, + "2024-09-30T00": 0.4179, + "2024-09-25T14": 0.4161, + "2024-09-26T14": 0.4238, + "2024-09-27T01": 0.4259, + "2024-09-28T04": 0.435, + "2024-09-29T08": 0.4191, + "2024-09-26T01": 0.4045, + "2024-09-27T19": 0.4323019019076174, + "2024-09-25T01": 0.4106, + "2024-09-26T00": 0.4066, + "2024-09-29T18": 0.423, + "2024-09-28T19": 0.424, + "2024-09-28T22": 0.4232, + "2024-09-27T18": 0.4319, + "2024-09-24T21": 0.4072, + "2024-09-30T08": 0.4131, + "2024-09-25T11": 0.4076, + "2024-09-25T20": 0.41113897397939747, + "2024-10-01T09": 0.4029, + "2024-10-01T03": 0.4012, + "2024-09-26T11": 0.4217, + "2024-09-28T07": 0.4268, + "2024-09-27T22": 0.43412672193753366, + "2024-09-27T21": 0.4324, + "2024-09-26T03": 0.4111, + "2024-09-26T13": 0.4230354226087572, + "2024-09-30T18": 0.4009, + "2024-10-01T15": 0.39248220120667, + "2024-10-01T08": 0.4034, + "2024-09-25T19": 0.4122, + "2024-09-30T21": 0.4014, + "2024-09-28T14": 0.4255, + "2024-09-27T20": 0.4328, + "2024-09-26T06": 0.4153, + "2024-09-26T10": 0.4239, + "2024-09-29T04": 0.4225455352289138, + "2024-09-28T16": 0.4237, + "2024-10-01T00": 0.3956, + "2024-09-24T20": 0.407, + "2024-09-26T19": 0.428, + "2024-09-24T15": 0.404, + "2024-09-27T06": 0.4342628142625361, + "2024-09-29T14": 0.41890118593709724, + "2024-09-29T07": 0.4195, + "2024-09-28T00": 0.4345, + "2024-09-30T01": 0.4129, + "2024-09-29T09": 0.42, + "2024-09-25T09": 0.4084, + "2024-09-30T11": 0.4084, + "2024-09-25T07": 0.4057, + "2024-09-24T19": 0.4052, + "2024-09-29T19": 0.4236, + "2024-09-30T15": 0.40719, + "2024-09-28T21": 0.42144666819749266, + "2024-10-01T05": 0.4026, + "2024-10-01T14": 0.39248220120667, + "2024-09-27T00": 0.4269, + "latest": 0.378786 + }, + "USD qtum": { + "2024-09-12": 2.2554007122061783, + "2024-09-15": 2.279375323283207, + "2024-09-22": 2.4717094334853553, + "2024-09-05": 2.1817574861245688, + "2024-09-10": 2.248693507553689, + "2024-09-11": 2.223945881218077, + "2024-09-20": 2.442618234078918, + "2024-09-26": 2.6086016565919232, + "2024-09-16": 2.1878758113624315, + "2024-09-08": 2.1325708153344305, + "2024-09-24": 2.5547689580060413, + "2024-09-29": 2.6520986854165125, + "2024-09-17": 2.2263622719642613, + "2024-09-14": 2.3078772158378302, + "2024-09-03": 2.2419542796521976, + "2024-09-25": 2.565820272670637, + "2024-09-18": 2.249337935954291, + "2024-09-07": 2.105802529071075, + "2024-09-06": 2.1310072977960477, + "2024-09-19": 2.3364944512091506, + "2024-09-30": 2.6884841075571533, + "2024-09-01": 2.2197084071985715, + "2024-08-31": 2.312870519693014, + "2024-09-02": 2.2062447026352356, + "2024-09-23": 2.499188840168788, + "2024-09-13": 2.267066460311281, + "2024-10-01": 2.6270655740887707, + "2024-09-04": 2.1587352728225566, + "2024-09-28": 2.6567232623257437, + "2024-09-21": 2.516428666346087, + "2024-09-09": 2.220516521658369, + "2024-09-27": 2.6931685064041107, + "2024-09-27T07": 2.6812693788592097, + "2024-09-27T05": 2.6741337, + "2024-09-30T14": 2.67149232, + "2024-09-27T14": 2.7108672, + "2024-09-27T23": 2.7103251999999998, + "2024-09-28T11": 2.637001051284421, + "2024-09-29T00": 2.6502384999999995, + "2024-09-28T18": 2.6615588100000003, + "2024-09-29T23": 2.6523978000000006, + "2024-10-01T13": 2.63571004, + "2024-09-30T10": 2.7088374600000003, + "2024-09-25T22": 2.5382536696822764, + "2024-09-29T11": 2.630263, + "2024-09-28T12": 2.62523625, + "2024-09-26T09": 2.59145568, + "2024-09-28T10": 2.6403432000000002, + "2024-09-27T16": 2.7192719, + "2024-09-24T17": 2.5556166, + "2024-09-27T15": 2.7155973, + "2024-09-29T12": 2.636116296, + "2024-09-25T04": 2.5818708999999997, + "2024-09-25T21": 2.5556166, + "2024-09-25T18": 2.5516525607218403, + "2024-09-26T04": 2.5389634869999997, + "2024-09-26T05": 2.55825789, + "2024-09-30T04": 2.587576804185241, + "2024-09-27T13": 2.6945118599999995, + "2024-09-28T13": 2.6182672693908926, + "2024-09-25T08": 2.55645221900789, + "2024-09-30T03": 2.59284442, + "2024-10-01T10": 2.70856656, + "2024-09-25T13": 2.56666629, + "2024-10-01T01": 2.63060504, + "2024-09-26T17": 2.63618452, + "2024-09-25T15": 2.58184508, + "2024-09-29T22": 2.671380561172105, + "2024-09-29T01": 2.64129051, + "2024-09-30T06": 2.7140542799999996, + "2024-09-27T12": 2.68745679, + "2024-09-25T23": 2.534265056203189, + "2024-09-30T05": 2.6133858498221776, + "2024-09-28T23": 2.6552920500000003, + "2024-09-30T19": 2.6839797, + "2024-09-25T00": 2.59192224, + "2024-10-01T12": 2.69564952, + "2024-09-29T10": 2.6222764660434925, + "2024-09-24T22": 2.57789688, + "2024-09-26T08": 2.5924814, + "2024-09-29T20": 2.6774283199999998, + "2024-09-25T12": 2.5693344927548916, + "2024-09-25T05": 2.5668733412024585, + "2024-09-27T09": 2.6844831200000003, + "2024-09-26T02": 2.52334376, + "2024-09-28T05": 2.6926460800000003, + "2024-09-29T03": 2.6560531199999997, + "2024-09-26T23": 2.6373164399999998, + "2024-09-29T16": 2.670267, + "2024-09-26T21": 2.6242624, + "2024-09-26T16": 2.6401320000000004, + "2024-09-28T03": 2.7143256799999995, + "2024-09-29T21": 2.6794018500000005, + "2024-09-30T09": 2.76102761, + "2024-09-24T16": 2.5316708400000003, + "2024-09-30T07": 2.7650552999999998, + "2024-09-28T17": 2.65155671, + "2024-09-28T02": 2.72232664, + "2024-09-28T15": 2.6412376899999996, + "2024-09-29T17": 2.67934827, + "2024-09-25T17": 2.5495664999999996, + "2024-09-25T16": 2.57287135, + "2024-10-01T04": 2.66650592, + "2024-10-01T07": 2.6675197600000002, + "2024-09-30T23": 2.60738061989217, + "2024-09-29T13": 2.6443701600000002, + "2024-09-26T22": 2.6426412826479537, + "2024-10-01T11": 2.707833245623522, + "2024-09-30T16": 2.67151904, + "2024-09-28T01": 2.700326395642256, + "2024-09-27T02": 2.6542986978656966, + "2024-09-30T20": 2.68516734, + "2024-09-28T06": 2.6784017, + "2024-09-27T08": 2.68340245, + "2024-10-01T06": 2.6448886799999998, + "2024-09-27T03": 2.67916074, + "2024-09-25T06": 2.5518468800000003, + "2024-10-01T02": 2.6244769199999998, + "2024-09-27T17": 2.710542, + "2024-09-30T22": 2.650142741338518, + "2024-09-29T05": 2.6430792899999997, + "2024-09-28T20": 2.6612661, + "2024-09-30T13": 2.7147285, + "2024-09-26T18": 2.6292629, + "2024-09-25T10": 2.5648461, + "2024-09-25T02": 2.6078435200000003, + "2024-09-29T02": 2.66105322, + "2024-09-28T08": 2.632883062025246, + "2024-09-30T17": 2.68530164, + "2024-09-30T02": 2.60313015, + "2024-09-28T09": 2.61936666, + "2024-09-25T03": 2.5958702000000002, + "2024-09-29T15": 2.65834554, + "2024-09-29T06": 2.627992942585295, + "2024-09-24T18": 2.55054082, + "2024-09-26T07": 2.59642866, + "2024-09-26T15": 2.62902629, + "2024-09-27T04": 2.68205364, + "2024-09-27T11": 2.675717243357381, + "2024-09-26T20": 2.62141936, + "2024-09-30T12": 2.7358084799999998, + "2024-09-27T10": 2.6644795200000004, + "2024-09-26T12": 2.60884346, + "2024-09-24T23": 2.57884526, + "2024-09-30T00": 2.6423170399999996, + "2024-09-25T14": 2.58371576, + "2024-09-26T14": 2.62297377, + "2024-09-27T01": 2.65337142, + "2024-09-28T04": 2.71735321, + "2024-09-29T08": 2.6143659599999998, + "2024-09-26T01": 2.4973755000000004, + "2024-09-27T19": 2.7176577333902223, + "2024-09-25T01": 2.60092197, + "2024-09-26T00": 2.51937, + "2024-09-29T18": 2.6785356, + "2024-09-28T19": 2.6662665999999997, + "2024-09-28T22": 2.65231824, + "2024-09-27T18": 2.70824372, + "2024-09-24T21": 2.55784652, + "2024-09-30T08": 2.75711028, + "2024-09-25T11": 2.56595800520532, + "2024-09-25T20": 2.55164272, + "2024-10-01T09": 2.7116203199999998, + "2024-10-01T03": 2.6512224900000003, + "2024-09-26T11": 2.608986884, + "2024-09-28T07": 2.6725344, + "2024-09-27T22": 2.7104878, + "2024-09-27T21": 2.7054328, + "2024-09-26T03": 2.52726688, + "2024-09-26T13": 2.60794784, + "2024-09-30T18": 2.6740904999999997, + "2024-10-01T15": 2.609217, + "2024-10-01T08": 2.705775268, + "2024-09-25T19": 2.5545562821959376, + "2024-09-30T21": 2.6901388799999997, + "2024-09-28T14": 2.6382724884949034, + "2024-09-27T20": 2.706211173999945, + "2024-09-26T06": 2.5733565, + "2024-09-26T10": 2.6065568100000003, + "2024-09-29T04": 2.6470794100000004, + "2024-09-28T16": 2.6452645, + "2024-10-01T00": 2.5938581999999997, + "2024-09-24T20": 2.56084634, + "2024-09-26T19": 2.6372637, + "2024-09-24T15": 2.5446945999999997, + "2024-09-27T06": 2.6910538199999996, + "2024-09-29T14": 2.6594520299999997, + "2024-09-29T07": 2.62118347, + "2024-09-28T00": 2.6993238799999997, + "2024-09-30T01": 2.6363163199999997, + "2024-09-29T09": 2.6312104800000005, + "2024-09-25T09": 2.5598208000000002, + "2024-09-30T11": 2.72083674, + "2024-09-25T07": 2.5397266492971364, + "2024-09-24T19": 2.555993244, + "2024-09-29T19": 2.6794822200000006, + "2024-09-30T15": 2.6636536800000004, + "2024-09-28T21": 2.6420905980000002, + "2024-10-01T05": 2.6368621086576116, + "2024-10-01T14": 2.6112164, + "2024-09-27T00": 2.6413433299999998, + "latest": 2.51 + }, + "USD ravencoin": { + "2024-09-12": 0.01750015551679726, + "2024-09-15": 0.01706713439769961, + "2024-09-22": 0.017731590196199475, + "2024-09-05": 0.016332765374057447, + "2024-09-10": 0.017259310012254312, + "2024-09-11": 0.016886344823436976, + "2024-09-20": 0.017939759410488712, + "2024-09-26": 0.018339743075945537, + "2024-09-16": 0.016228200264142085, + "2024-09-08": 0.016228683170235902, + "2024-09-24": 0.018010869803674077, + "2024-09-29": 0.018732250053183668, + "2024-09-17": 0.016428216677143608, + "2024-09-14": 0.017455228416080285, + "2024-09-03": 0.016081586985197426, + "2024-09-25": 0.0181472107625926, + "2024-09-18": 0.016683792224800025, + "2024-09-07": 0.015712555080993208, + "2024-09-06": 0.015751446342109295, + "2024-09-19": 0.017462252354482663, + "2024-09-30": 0.01846370192789511, + "2024-09-01": 0.01589791156507085, + "2024-08-31": 0.016494868856779706, + "2024-09-02": 0.01586578563746653, + "2024-09-23": 0.017947585136704244, + "2024-09-13": 0.017429440052292036, + "2024-10-01": 0.017912180582203476, + "2024-09-04": 0.015440050576046364, + "2024-09-28": 0.018912529574137943, + "2024-09-21": 0.018021621799999995, + "2024-09-09": 0.017354134249592215, + "2024-09-27": 0.018849405602320134, + "2024-09-27T07": 0.018771877, + "2024-09-27T05": 0.018750937500000002, + "2024-09-30T14": 0.018396503999999998, + "2024-09-27T14": 0.018966067200000002, + "2024-09-27T23": 0.0192423088, + "2024-09-28T11": 0.01900114, + "2024-09-29T00": 0.0188716983, + "2024-09-28T18": 0.0188539585, + "2024-09-29T23": 0.019042856000000004, + "2024-10-01T13": 0.0179380266, + "2024-09-30T10": 0.0183189008, + "2024-09-25T22": 0.017977303, + "2024-09-29T11": 0.018581858, + "2024-09-28T12": 0.0189617064, + "2024-09-26T09": 0.0183161528, + "2024-09-28T10": 0.0190224726, + "2024-09-27T16": 0.018961896000000002, + "2024-09-24T17": 0.0180472925, + "2024-09-27T15": 0.019004180000000002, + "2024-09-29T12": 0.018552225999999998, + "2024-09-25T04": 0.018380483350865364, + "2024-09-25T21": 0.018137279, + "2024-09-25T18": 0.018096561, + "2024-09-26T04": 0.0179347974, + "2024-09-26T05": 0.0181847249, + "2024-09-30T04": 0.0185690715, + "2024-09-27T13": 0.0187335587, + "2024-09-28T13": 0.0187816902, + "2024-09-25T08": 0.0181687281, + "2024-09-30T03": 0.0185088894, + "2024-10-01T10": 0.018447048, + "2024-09-25T13": 0.018097647, + "2024-10-01T01": 0.01795109403133142, + "2024-09-26T17": 0.0185612992, + "2024-09-25T15": 0.01818012827869704, + "2024-09-29T22": 0.019132295599999998, + "2024-09-29T01": 0.018702057, + "2024-09-30T06": 0.018800376, + "2024-09-27T12": 0.0188332011, + "2024-09-25T23": 0.0178860642, + "2024-09-30T05": 0.018700187000000004, + "2024-09-28T23": 0.018902079000000002, + "2024-09-30T19": 0.018153099199999998, + "2024-09-25T00": 0.0181894543, + "2024-10-01T12": 0.0183676119, + "2024-09-29T10": 0.018511665899999998, + "2024-09-24T22": 0.0181392744, + "2024-09-26T08": 0.01829634, + "2024-09-29T20": 0.019193070399999998, + "2024-09-25T12": 0.0180285576, + "2024-09-25T05": 0.018349082500000002, + "2024-09-27T09": 0.0189434092, + "2024-09-26T02": 0.0178553564, + "2024-09-28T05": 0.0191746008, + "2024-09-29T03": 0.0187303746, + "2024-09-26T23": 0.018602231999999996, + "2024-09-29T16": 0.018881888, + "2024-09-26T21": 0.01842457970196138, + "2024-09-26T16": 0.01860093, + "2024-09-28T03": 0.019342320799999996, + "2024-09-29T21": 0.019242886, + "2024-09-30T09": 0.0185506099547091, + "2024-09-24T16": 0.0178176834, + "2024-09-30T07": 0.018740374799999997, + "2024-09-28T17": 0.0188239522, + "2024-09-28T02": 0.019342320799999996, + "2024-09-28T15": 0.0188316947, + "2024-09-29T17": 0.0191324869, + "2024-09-25T17": 0.0180769264, + "2024-09-25T16": 0.018169091499999998, + "2024-10-01T04": 0.018239779999999997, + "2024-10-01T07": 0.0184666754, + "2024-09-30T23": 0.017695575, + "2024-09-29T13": 0.018562792846457277, + "2024-09-26T22": 0.018601488, + "2024-10-01T11": 0.0184672295, + "2024-09-30T16": 0.0182067222, + "2024-09-28T01": 0.019202303999999996, + "2024-09-27T02": 0.018582091110152466, + "2024-09-30T20": 0.0182343456, + "2024-09-28T06": 0.0190232323248921, + "2024-09-27T08": 0.018902835000000003, + "2024-10-01T06": 0.0185821922, + "2024-09-27T03": 0.0186211172, + "2024-09-25T06": 0.018148911, + "2024-10-01T02": 0.017909606399999996, + "2024-09-27T17": 0.018893778, + "2024-09-30T22": 0.0180047771, + "2024-09-29T05": 0.018670560099999997, + "2024-09-28T20": 0.018821881999999998, + "2024-09-30T13": 0.018588141, + "2024-09-26T18": 0.018441844000000002, + "2024-09-25T10": 0.018149339549666, + "2024-09-25T02": 0.0184288942, + "2024-09-29T02": 0.0187803756, + "2024-09-28T08": 0.0188833984, + "2024-09-30T17": 0.018195268, + "2024-09-30T02": 0.018680934, + "2024-09-28T09": 0.018802632, + "2024-09-25T03": 0.018459077, + "2024-09-29T15": 0.0186824284, + "2024-09-29T06": 0.0185907436, + "2024-09-24T18": 0.018006758200000004, + "2024-09-26T07": 0.0183359652, + "2024-09-26T15": 0.018440184400000004, + "2024-09-27T04": 0.0187803756, + "2024-09-27T11": 0.0187831926, + "2024-09-26T20": 0.0183829408, + "2024-09-30T12": 0.018508704299999998, + "2024-09-27T10": 0.018793382200000004, + "2024-09-26T12": 0.0182389056, + "2024-09-24T23": 0.0181389116, + "2024-09-30T00": 0.018922270399999996, + "2024-09-25T14": 0.0182079969, + "2024-09-26T14": 0.0183498165, + "2024-09-27T01": 0.0186926166, + "2024-09-28T04": 0.0193125103, + "2024-09-29T08": 0.0184125774, + "2024-09-26T01": 0.017695575, + "2024-09-27T19": 0.019052857500000003, + "2024-09-25T01": 0.0183794486, + "2024-09-26T00": 0.01779555, + "2024-09-29T18": 0.019143828, + "2024-09-28T19": 0.018821881999999998, + "2024-09-28T22": 0.018802256, + "2024-09-27T18": 0.0189217028, + "2024-09-24T21": 0.018108913400000003, + "2024-09-30T08": 0.0186707468, + "2024-09-25T11": 0.018098733000000002, + "2024-09-25T20": 0.0181274618, + "2024-10-01T09": 0.01849741, + "2024-10-01T03": 0.018117852900000002, + "2024-09-26T11": 0.0183278004, + "2024-09-28T07": 0.019033805999999997, + "2024-09-27T22": 0.019203456, + "2024-09-27T21": 0.019113057599999997, + "2024-09-26T03": 0.0179447945, + "2024-09-26T13": 0.0182796344, + "2024-09-30T18": 0.0182038086, + "2024-10-01T15": 0.017694690000000002, + "2024-10-01T08": 0.01835896837988365, + "2024-09-25T19": 0.018097466, + "2024-09-30T21": 0.01824416, + "2024-09-28T14": 0.018832329818496966, + "2024-09-27T20": 0.019073432600000002, + "2024-09-26T06": 0.018335415, + "2024-09-26T10": 0.0183768754, + "2024-09-29T04": 0.018680560399999997, + "2024-09-28T16": 0.018821881999999998, + "2024-10-01T00": 0.017742189999999998, + "2024-09-24T20": 0.0181689098, + "2024-09-26T19": 0.018511851, + "2024-09-24T15": 0.0178378592, + "2024-09-27T06": 0.0188103762, + "2024-09-29T14": 0.0186531705, + "2024-09-29T07": 0.0184112887, + "2024-09-28T00": 0.019272312399999998, + "2024-09-30T01": 0.018972276399999998, + "2024-09-29T09": 0.018551484000000003, + "2024-09-25T09": 0.0181587288, + "2024-09-30T11": 0.0184188948, + "2024-09-25T07": 0.0181192752, + "2024-09-24T19": 0.0181378232, + "2024-09-29T19": 0.0191934542, + "2024-09-30T15": 0.0183676119, + "2024-09-28T21": 0.018722059200000002, + "2024-10-01T05": 0.0181816326, + "2024-10-01T14": 0.017694690000000002, + "2024-09-27T00": 0.0187424362, + "latest": 0.0171323 + }, + "USD ripple": { + "2024-09-12": 0.5588431170413547, + "2024-09-15": 0.5868608839650761, + "2024-09-22": 0.592106436571618, + "2024-09-05": 0.5506009137516708, + "2024-09-10": 0.5379215930909195, + "2024-09-11": 0.5334857187946987, + "2024-09-20": 0.5853700528299375, + "2024-09-26": 0.5892602209633383, + "2024-09-16": 0.5716443234853928, + "2024-09-08": 0.5269170357706665, + "2024-09-24": 0.5871225294978734, + "2024-09-29": 0.6302578860315697, + "2024-09-17": 0.5864019836831967, + "2024-09-14": 0.5866120077414355, + "2024-09-03": 0.5660842428227734, + "2024-09-25": 0.5881666241786387, + "2024-09-18": 0.576392308923306, + "2024-09-07": 0.5273926366723266, + "2024-09-06": 0.5343827705315676, + "2024-09-19": 0.5865803759797694, + "2024-09-30": 0.6324948811799221, + "2024-09-01": 0.5574019230449386, + "2024-08-31": 0.566635775340776, + "2024-09-02": 0.5545262252826971, + "2024-09-23": 0.5872781712714331, + "2024-09-13": 0.5681524889091436, + "2024-10-01": 0.6196730746203629, + "2024-09-04": 0.554136967192761, + "2024-09-28": 0.6151498974163584, + "2024-09-21": 0.5861732574855822, + "2024-09-09": 0.5314627391245376, + "2024-09-27": 0.5885284816159975, + "2024-09-27T07": 0.5889970268527702, + "2024-09-27T05": 0.5891503244535626, + "2024-09-30T14": 0.6240233006361828, + "2024-09-27T14": 0.5932834437354408, + "2024-09-27T23": 0.5884278265705104, + "2024-09-28T11": 0.6179511289299009, + "2024-09-29T00": 0.6126585082468782, + "2024-09-28T18": 0.6243606795592269, + "2024-09-29T23": 0.6408681824877657, + "2024-10-01T13": 0.6195917477172779, + "2024-09-30T10": 0.6290345704725268, + "2024-09-25T22": 0.584866938095727, + "2024-09-29T11": 0.6260853377064235, + "2024-09-28T12": 0.6136211668495389, + "2024-09-26T09": 0.587150578207672, + "2024-09-28T10": 0.6125109459563147, + "2024-09-27T16": 0.5892877899921343, + "2024-09-24T17": 0.5865491319343088, + "2024-09-27T15": 0.5918158310892445, + "2024-09-29T12": 0.6253758432626203, + "2024-09-25T04": 0.5913047257599644, + "2024-09-25T21": 0.5867868849304212, + "2024-09-25T18": 0.5849145877209269, + "2024-09-26T04": 0.5821545111445081, + "2024-09-26T05": 0.5838456708446711, + "2024-09-30T04": 0.6465083650983169, + "2024-09-27T13": 0.5887222054978621, + "2024-09-28T13": 0.6187062227674271, + "2024-09-25T08": 0.5879004035220861, + "2024-09-30T03": 0.6448337749953187, + "2024-10-01T10": 0.6318429241401018, + "2024-09-25T13": 0.5892388592508583, + "2024-10-01T01": 0.6200056997330345, + "2024-09-26T17": 0.5943559656899458, + "2024-09-25T15": 0.5888659011152523, + "2024-09-29T22": 0.6413102629078459, + "2024-09-29T01": 0.6106647960117951, + "2024-09-30T06": 0.6465938733058866, + "2024-09-27T12": 0.5883137862753404, + "2024-09-25T23": 0.583421444355458, + "2024-09-30T05": 0.6475418173205885, + "2024-09-28T23": 0.6139936783815495, + "2024-09-30T19": 0.6225481850928509, + "2024-09-25T00": 0.5908593999663516, + "2024-10-01T12": 0.6288678706412485, + "2024-09-29T10": 0.628023984274687, + "2024-09-24T22": 0.5911543307304667, + "2024-09-26T08": 0.5867820617809154, + "2024-09-29T20": 0.6453859093225734, + "2024-09-25T12": 0.5903726379164794, + "2024-09-25T05": 0.5895596193010346, + "2024-09-27T09": 0.5895646655950312, + "2024-09-26T02": 0.5812313311827667, + "2024-09-28T05": 0.5884239106161927, + "2024-09-29T03": 0.6109217471670364, + "2024-09-26T23": 0.5895197811843218, + "2024-09-29T16": 0.6551104708373651, + "2024-09-26T21": 0.5906451124789242, + "2024-09-26T16": 0.5931983409011462, + "2024-09-28T03": 0.5909221815457317, + "2024-09-29T21": 0.6430307609584079, + "2024-09-30T09": 0.6489044423600724, + "2024-09-24T16": 0.5839913462955514, + "2024-09-30T07": 0.6450070147357515, + "2024-09-28T17": 0.62454863982024, + "2024-09-28T02": 0.5917457359007688, + "2024-09-28T15": 0.6185856098592234, + "2024-09-29T17": 0.6522324455475905, + "2024-09-25T17": 0.5842878676191958, + "2024-09-25T16": 0.5864788851736015, + "2024-10-01T04": 0.6215354980004266, + "2024-10-01T07": 0.6260817055006157, + "2024-09-30T23": 0.6129885648979074, + "2024-09-29T13": 0.6272309406804402, + "2024-09-26T22": 0.5917862660040464, + "2024-10-01T11": 0.6308443749862046, + "2024-09-30T16": 0.6199684295357538, + "2024-09-28T01": 0.5891992472144693, + "2024-09-27T02": 0.5852585237086201, + "2024-09-30T20": 0.6232792577498343, + "2024-09-28T06": 0.5870961860503925, + "2024-09-27T08": 0.5907717963354886, + "2024-10-01T06": 0.6212287193175642, + "2024-09-27T03": 0.5856419015464709, + "2024-09-25T06": 0.5865389417194891, + "2024-10-01T02": 0.6203703259786553, + "2024-09-27T17": 0.5883108698781678, + "2024-09-30T22": 0.6203285125934012, + "2024-09-29T05": 0.6145094512469649, + "2024-09-28T20": 0.6209851795356247, + "2024-09-30T13": 0.6314383944457885, + "2024-09-26T18": 0.5920969670407713, + "2024-09-25T10": 0.5879678326992115, + "2024-09-25T02": 0.5931490841938909, + "2024-09-29T02": 0.6112767025439788, + "2024-09-28T08": 0.604623128224648, + "2024-09-30T17": 0.6193309813899162, + "2024-09-30T02": 0.6424841808433168, + "2024-09-28T09": 0.6033426140876704, + "2024-09-25T03": 0.5922707088766023, + "2024-09-29T15": 0.649494431077303, + "2024-09-29T06": 0.6243560367139301, + "2024-09-24T18": 0.5875445245649151, + "2024-09-26T07": 0.5854738421731264, + "2024-09-26T15": 0.592118101975015, + "2024-09-27T04": 0.5878733317831217, + "2024-09-27T11": 0.5869836830690026, + "2024-09-26T20": 0.5903346574550917, + "2024-09-30T12": 0.6305539449434211, + "2024-09-27T10": 0.5865916493305564, + "2024-09-26T12": 0.5892957097687528, + "2024-09-24T23": 0.5914797630650727, + "2024-09-30T00": 0.6416572073325187, + "2024-09-25T14": 0.5907011672420261, + "2024-09-26T14": 0.5908603862825607, + "2024-09-27T01": 0.588321862147536, + "2024-09-28T04": 0.5903389713803274, + "2024-09-29T08": 0.624185269379028, + "2024-09-26T01": 0.5780086968446146, + "2024-09-27T19": 0.5878425443410319, + "2024-09-25T01": 0.5930554597777915, + "2024-09-26T00": 0.5813363103036823, + "2024-09-29T18": 0.6530984300589137, + "2024-09-28T19": 0.6224347196572563, + "2024-09-28T22": 0.6167810752105714, + "2024-09-27T18": 0.5873053133646218, + "2024-09-24T21": 0.5895935705295198, + "2024-09-30T08": 0.6481827683939241, + "2024-09-25T11": 0.5882509730155859, + "2024-09-25T20": 0.5859860037000579, + "2024-10-01T09": 0.629163798057816, + "2024-10-01T03": 0.6233988149421854, + "2024-09-26T11": 0.5897325314857049, + "2024-09-28T07": 0.6028769908422992, + "2024-09-27T22": 0.5878823689564687, + "2024-09-27T21": 0.586715847878797, + "2024-09-26T03": 0.5821896656810454, + "2024-09-26T13": 0.5891969018811681, + "2024-09-30T18": 0.6194549356809138, + "2024-10-01T08": 0.6273368988845911, + "2024-09-25T19": 0.5858183105782049, + "2024-09-30T21": 0.623658478162902, + "2024-09-28T14": 0.6217480134372605, + "2024-09-27T20": 0.5863232796669057, + "2024-09-26T06": 0.5845583225436487, + "2024-09-26T10": 0.5897846058240236, + "2024-09-29T04": 0.6131668067474301, + "2024-09-28T16": 0.6216107114909185, + "2024-10-01T00": 0.6155890232668264, + "2024-09-24T20": 0.589914918740241, + "2024-09-26T19": 0.5935047126144541, + "2024-09-24T15": 0.5844931125205016, + "2024-09-27T06": 0.5904358862903129, + "2024-09-29T14": 0.6364837408502301, + "2024-09-29T07": 0.6282916803836511, + "2024-09-28T00": 0.5889154519004053, + "2024-09-30T01": 0.6460558753047165, + "2024-09-29T09": 0.626641669014347, + "2024-09-25T09": 0.588678813404418, + "2024-09-30T11": 0.629540943127814, + "2024-09-25T07": 0.5868500560808064, + "2024-09-24T19": 0.5891782535472798, + "2024-09-29T19": 0.6531913172168587, + "2024-09-30T15": 0.6213313762250293, + "2024-09-28T21": 0.6160273025494277, + "2024-10-01T05": 0.6200510051369953, + "2024-10-01T14": 0.6191193370712129, + "2024-09-27T00": 0.5897939655582134, + "latest": 0.598225, + "2024-10-01T15": 0.6094152654000206 + }, + "USD solana": { + "2024-09-12": 134.96377073806008, + "2024-09-15": 135.58188843247737, + "2024-09-22": 144.92284485894288, + "2024-09-05": 132.1590621546563, + "2024-09-10": 134.8017904890431, + "2024-09-11": 132.05030703689087, + "2024-09-20": 147.75453476054832, + "2024-09-26": 152.87622242601958, + "2024-09-16": 130.9778609094536, + "2024-09-08": 128.77768182213256, + "2024-09-24": 146.80259939112275, + "2024-09-29": 157.3405605242065, + "2024-09-17": 132.30395406906078, + "2024-09-14": 137.34070751137654, + "2024-09-03": 133.61012999888104, + "2024-09-25": 150.44645613859134, + "2024-09-18": 130.64945236833685, + "2024-09-07": 127.20891908768483, + "2024-09-06": 128.491389389357, + "2024-09-19": 139.67588250398813, + "2024-09-30": 156.04497680757146, + "2024-09-01": 132.38732803375376, + "2024-08-31": 136.8050010588501, + "2024-09-02": 131.5996410286171, + "2024-09-23": 144.16308936631262, + "2024-09-13": 134.82211843131316, + "2024-10-01": 154.92200773157265, + "2024-09-04": 129.53060496132946, + "2024-09-28": 156.9520901092524, + "2024-09-21": 147.41021025982818, + "2024-09-09": 129.91070940935592, + "2024-09-27": 157.67487261186542, + "2024-09-27T07": 157.66444490853334, + "2024-09-27T05": 156.65112053654195, + "2024-09-30T14": 156.57401743779423, + "2024-09-27T14": 160.0504492800966, + "2024-09-27T23": 157.75400286886486, + "2024-09-28T11": 157.08567192584732, + "2024-09-29T00": 156.9669214402308, + "2024-09-28T18": 156.89944275471052, + "2024-09-29T23": 158.58776504476458, + "2024-10-01T13": 153.74634403795855, + "2024-09-30T10": 154.13998265690208, + "2024-09-25T22": 149.04059167394917, + "2024-09-29T11": 156.5272898347079, + "2024-09-28T12": 156.90162106459553, + "2024-09-26T09": 150.85951625064547, + "2024-09-28T10": 157.10819576700115, + "2024-09-27T16": 159.0767602410879, + "2024-09-24T17": 147.7001951252946, + "2024-09-27T15": 160.43847454139933, + "2024-09-29T12": 156.90160837282698, + "2024-09-25T04": 151.36209512545582, + "2024-09-25T21": 149.99566234357977, + "2024-09-25T18": 149.96082899012308, + "2024-09-26T04": 149.04376087529994, + "2024-09-26T05": 149.76501005917078, + "2024-09-30T04": 155.87670040226425, + "2024-09-27T13": 156.7571093485408, + "2024-09-28T13": 156.75263478223184, + "2024-09-25T08": 150.10530448317152, + "2024-09-30T03": 156.16644150086015, + "2024-10-01T10": 156.94886405663584, + "2024-09-25T13": 150.0502869870462, + "2024-10-01T01": 154.36064727392005, + "2024-09-26T17": 156.7330616949531, + "2024-09-25T15": 151.59280057669042, + "2024-09-29T22": 159.8799967049765, + "2024-09-29T01": 157.32327468355945, + "2024-09-30T06": 157.02359045096773, + "2024-09-27T12": 156.67993700573948, + "2024-09-25T23": 147.85800301457624, + "2024-09-30T05": 156.5572167093243, + "2024-09-28T23": 156.48974520227, + "2024-09-30T19": 154.71775333586842, + "2024-09-25T00": 152.43332677752127, + "2024-10-01T12": 156.33887572144968, + "2024-09-29T10": 155.8169883892941, + "2024-09-24T22": 151.03423193186663, + "2024-09-26T08": 151.39983772041077, + "2024-09-29T20": 160.01050004729765, + "2024-09-25T12": 150.1107897355353, + "2024-09-25T05": 150.8874807557441, + "2024-09-27T09": 158.24537838499833, + "2024-09-26T02": 148.71985250054462, + "2024-09-28T05": 158.15553752033236, + "2024-09-29T03": 157.5248003380529, + "2024-09-26T23": 155.20665471871553, + "2024-09-29T16": 157.13760910868194, + "2024-09-26T21": 155.3007789714625, + "2024-09-26T16": 157.35829302980025, + "2024-09-28T03": 158.58964290461927, + "2024-09-29T21": 160.62460376587765, + "2024-09-30T09": 155.8137042746989, + "2024-09-24T16": 145.858833600634, + "2024-09-30T07": 157.17440710228337, + "2024-09-28T17": 156.88612159413435, + "2024-09-28T02": 158.84436097496663, + "2024-09-28T15": 157.2189927462809, + "2024-09-29T17": 157.80684459509715, + "2024-09-25T17": 149.88747671295235, + "2024-09-25T16": 151.13829703702967, + "2024-10-01T04": 155.15222220027476, + "2024-10-01T07": 156.54584648185167, + "2024-09-30T23": 152.64939829774525, + "2024-09-29T13": 156.96995027543025, + "2024-09-26T22": 155.926406603704, + "2024-10-01T11": 156.80056894729958, + "2024-09-30T16": 154.66612689382677, + "2024-09-28T01": 158.15323143092104, + "2024-09-27T02": 154.36216324554175, + "2024-09-30T20": 156.22848471663053, + "2024-09-28T06": 157.16106980344995, + "2024-09-27T08": 158.48271109667883, + "2024-10-01T06": 156.30447486942987, + "2024-09-27T03": 154.7859067820036, + "2024-09-25T06": 150.0111284056329, + "2024-10-01T02": 153.5293728150643, + "2024-09-27T17": 157.6798192560396, + "2024-09-30T22": 155.1713084608053, + "2024-09-29T05": 157.3213879944482, + "2024-09-28T20": 156.87132843981956, + "2024-09-30T13": 156.95296530571727, + "2024-09-26T18": 156.07243684722584, + "2024-09-25T10": 150.1101254089424, + "2024-09-25T02": 152.09184200846937, + "2024-09-29T02": 158.02800548893188, + "2024-09-28T08": 155.76713861275203, + "2024-09-30T17": 154.93908472475837, + "2024-09-30T02": 157.06124429395774, + "2024-09-28T09": 156.08505026237822, + "2024-09-25T03": 151.51788807017562, + "2024-09-29T15": 157.0986220011079, + "2024-09-29T06": 155.90891313355652, + "2024-09-24T18": 147.17023369228892, + "2024-09-26T07": 150.92369434502143, + "2024-09-26T15": 156.5614219905618, + "2024-09-27T04": 156.36783946953312, + "2024-09-27T11": 156.09781699315667, + "2024-09-26T20": 155.17183162597337, + "2024-09-30T12": 155.84755465142035, + "2024-09-27T10": 156.77754165658547, + "2024-09-26T12": 152.77569931089235, + "2024-09-24T23": 153.02562581972282, + "2024-09-30T00": 158.15391388261682, + "2024-09-25T14": 151.13830541827656, + "2024-09-26T14": 154.1512875729568, + "2024-09-27T01": 155.33608323303844, + "2024-09-28T04": 158.50702719410728, + "2024-09-29T08": 155.6977881097728, + "2024-09-26T01": 147.53278069046107, + "2024-09-27T19": 157.854596167273, + "2024-09-25T01": 152.5636308741823, + "2024-09-26T00": 147.86207079949403, + "2024-09-29T18": 157.99777146466081, + "2024-09-28T19": 156.84932559662937, + "2024-09-28T22": 156.74591477949676, + "2024-09-27T18": 157.58523120047175, + "2024-09-24T21": 148.54332508999255, + "2024-09-30T08": 156.33522035066682, + "2024-09-25T11": 150.3731198130219, + "2024-09-25T20": 150.45242510993148, + "2024-10-01T09": 156.86078058022918, + "2024-10-01T03": 154.56725744271696, + "2024-09-26T11": 152.77531021370802, + "2024-09-28T07": 156.6088233589737, + "2024-09-27T22": 158.10132122244386, + "2024-09-27T21": 157.9037106912636, + "2024-09-26T03": 149.214760198964, + "2024-09-26T13": 152.06379244160362, + "2024-09-30T18": 154.6857494140952, + "2024-10-01T08": 156.4005261772849, + "2024-09-25T19": 150.45977976032873, + "2024-09-30T21": 156.4051744030804, + "2024-09-28T14": 157.72554636468848, + "2024-09-27T20": 157.8168833504834, + "2024-09-26T06": 150.66379687692014, + "2024-09-26T10": 152.15947432337512, + "2024-09-29T04": 157.21697045123443, + "2024-09-28T16": 156.9199339933527, + "2024-10-01T00": 152.70030548664064, + "2024-09-24T20": 148.67299092717244, + "2024-09-26T19": 156.20896510387024, + "2024-09-24T15": 145.62766559473332, + "2024-09-27T06": 158.0723049020243, + "2024-09-29T14": 157.17748367392855, + "2024-09-29T07": 155.51131499782375, + "2024-09-28T00": 157.9884924882844, + "2024-09-30T01": 158.52764894805188, + "2024-09-29T09": 156.40449386880124, + "2024-09-25T09": 149.98677159334565, + "2024-09-30T11": 154.82400759201718, + "2024-09-25T07": 149.65840089783447, + "2024-09-24T19": 147.20656176575517, + "2024-09-29T19": 158.7132152068218, + "2024-09-30T15": 156.0187934429057, + "2024-09-28T21": 156.39312659756158, + "2024-10-01T05": 155.31236694551822, + "2024-10-01T14": 153.76596479102588, + "2024-09-27T00": 155.84333432206128, + "latest": 147.46, + "2024-10-01T15": 151.18216821868756, + "2023-10-23": 29.879746070869103, + "2024-02-23": 101.64291215841217, + "2024-04-05": 175.10670138642723, + "2023-12-19": 74.66528740821448, + "2024-05-17": 167.9519381847823, + "2023-12-02": 62.04968334980835, + "2024-06-11": 153.21436153597122, + "2024-04-26": 143.34202556837585, + "2024-01-08": 93.33527592861115, + "2023-10-31": 36.191599455594286, + "2023-10-01": 22.860671009273467, + "2024-03-07": 141.33784892504994, + "2023-10-12": 21.344947328564643, + "2024-04-22": 153.86800880553358, + "2024-06-24": 127.14015966071814, + "2023-12-05": 60.50526731741026, + "2024-02-19": 112.35571494683266, + "2024-07-31": 180.60113229518754, + "2024-08-11": 150.5837035984004, + "2024-01-07": 94.35175997156664, + "2024-04-28": 142.38167526916928, + "2023-10-18": 23.853457015489678, + "2023-10-07": 23.510894175103203, + "2024-06-28": 144.22095901988305, + "2024-05-19": 171.02823066161318, + "2024-05-12": 145.1313337929807, + "2024-08-24": 157.96546938494143, + "2024-03-09": 146.3573355413762, + "2024-08-02": 160.87907862283578, + "2024-04-29": 135.57480502984293, + "2024-04-25": 146.46092487636045, + "2024-06-12": 153.8290064293191, + "2024-05-30": 167.9780323282347, + "2024-06-05": 173.2186590524532, + "2024-08-21": 142.26287391445175, + "2024-03-22": 173.3654393897946, + "2023-11-18": 57.27602991211688, + "2024-07-30": 180.88542132452105, + "2023-12-07": 64.14257656645725, + "2024-06-30": 141.2399075092633, + "2024-06-20": 134.8204874617509, + "2024-07-08": 137.58007638882842, + "2024-07-07": 138.97661513469637, + "2024-03-26": 191.5807609942654, + "2024-05-14": 145.9676628896916, + "2024-06-16": 145.459003329103, + "2024-02-22": 104.24655809127876, + "2024-04-15": 147.8964607217989, + "2023-12-30": 103.42521695978837, + "2024-04-17": 135.3651338277658, + "2024-02-12": 107.67846444810004, + "2023-10-26": 32.193720938185116, + "2024-01-03": 99.70418917022963, + "2024-05-07": 154.65542087995604, + "2024-01-22": 87.4577433516582, + "2024-08-16": 141.0158834793979, + "2024-07-13": 139.72368678681542, + "2023-12-24": 113.07106375552202, + "2023-10-03": 23.9158921090279, + "2024-05-26": 163.9232201563034, + "2024-04-30": 128.8707173345529, + "2024-08-22": 143.02169992997105, + "2024-07-09": 141.32558690457228, + "2024-01-16": 96.75096638862036, + "2023-10-17": 24.05407140194171, + "2024-04-24": 156.15324769173122, + "2024-03-18": 202.04070897169518, + "2024-02-17": 109.12793965884981, + "2023-12-27": 110.01315953902689, + "2024-08-01": 167.87131993398756, + "2024-02-24": 102.19768460420161, + "2024-01-06": 95.04627553722617, + "2024-03-20": 173.3117326502187, + "2023-11-21": 55.399842692967944, + "2023-12-25": 114.85471604633909, + "2024-03-01": 132.93486909650517, + "2023-10-02": 24.004338627884735, + "2024-03-27": 186.1622281829703, + "2024-05-13": 145.5923584232473, + "2024-05-06": 152.81883506269745, + "2024-06-19": 138.07132371250657, + "2024-02-09": 105.28685790136916, + "2023-10-06": 23.249706885184462, + "2023-10-13": 21.451705156087097, + "2024-02-05": 96.08055472163565, + "2023-12-10": 73.02323317766664, + "2023-11-23": 57.69103216313879, + "2024-01-13": 92.46092427164828, + "2024-03-28": 186.30287425956496, + "2023-10-09": 22.28313377961463, + "2024-01-09": 100.16206103602677, + "2024-05-10": 152.3503801574188, + "2024-08-06": 141.008429087249, + "2023-11-05": 41.504583619908445, + "2024-08-25": 158.8386619481629, + "2024-04-18": 135.23740057906338, + "2023-10-22": 28.844261192688, + "2024-08-27": 154.64149576482137, + "2023-11-01": 40.43238666735443, + "2024-05-20": 178.04265918181963, + "2023-12-08": 72.15666058821625, + "2024-04-12": 167.11081408997327, + "2024-03-12": 149.98286906459515, + "2024-07-02": 148.87457753536492, + "2024-08-19": 143.02137769753645, + "2024-07-20": 170.00120311213877, + "2024-02-04": 97.26311096156947, + "2024-01-28": 96.32130538580829, + "2024-03-03": 129.70275948815356, + "2024-01-26": 91.28356545142186, + "2023-11-07": 41.61537420877233, + "2023-11-25": 58.661057898398305, + "2024-06-29": 141.64900081042543, + "2024-02-28": 111.7522089297422, + "2024-07-21": 174.30663001117313, + "2023-12-01": 60.52224227892606, + "2024-08-07": 148.96709876641833, + "2024-02-25": 103.13007441842072, + "2023-12-21": 87.09492088597884, + "2024-08-30": 138.27455194197535, + "2024-06-01": 166.91558496394953, + "2024-03-06": 129.7066175246686, + "2024-07-15": 152.82719095318745, + "2023-09-30": 21.03021983555983, + "2023-12-12": 70.51305148492436, + "2023-10-04": 23.120581312175634, + "2024-02-13": 113.35546825173567, + "2024-04-16": 133.90028127132922, + "2024-03-02": 129.08215112095445, + "2024-06-02": 164.98063450128566, + "2023-10-08": 23.370671887556053, + "2023-11-20": 59.65768097299825, + "2023-12-20": 78.66522414223984, + "2023-12-31": 103.29102292711484, + "2023-11-06": 40.35418703097928, + "2024-08-03": 149.95206028092613, + "2024-05-29": 169.12993706766895, + "2024-03-17": 190.61269323338047, + "2024-07-23": 175.43000481529808, + "2024-07-10": 141.7637203517348, + "2024-07-01": 147.47683934383747, + "2024-04-01": 195.96267041406907, + "2024-05-21": 180.72600518109712, + "2024-01-19": 93.27167199127055, + "2023-11-11": 57.0584535835252, + "2024-07-18": 158.50415635266378, + "2023-11-19": 60.14543140632104, + "2024-08-08": 155.46553104624877, + "2024-01-25": 87.43460196075365, + "2024-03-13": 153.4463046866378, + "2024-02-01": 95.65619579147595, + "2024-08-17": 139.81717054648763, + "2024-03-16": 188.6273981520976, + "2024-06-23": 133.440401195104, + "2023-11-27": 54.99012000597197, + "2024-01-10": 97.26137604941523, + "2024-01-21": 92.42527793392941, + "2024-03-15": 178.69436264950824, + "2024-06-03": 165.0651814449767, + "2024-01-02": 111.43844743507174, + "2024-07-14": 145.10964434939723, + "2023-10-25": 32.19116241272951, + "2024-01-01": 104.59202871931976, + "2024-07-29": 189.0639568748908, + "2024-07-27": 184.16239059682584, + "2024-02-14": 115.74909988189972, + "2024-07-28": 184.447944328903, + "2024-04-03": 187.80425339102408, + "2024-06-15": 144.4427367904371, + "2023-11-28": 55.90537160653003, + "2023-12-03": 63.49660841632766, + "2024-07-11": 140.80362460352, + "2024-04-11": 173.06654549568822, + "2023-10-20": 26.777469075013293, + "2023-10-10": 22.111794725058058, + "2024-05-03": 141.07056310367605, + "2024-03-08": 146.15650225572418, + "2024-01-14": 97.15921213158008, + "2023-12-15": 75.90867949953598, + "2023-10-19": 24.234388058515396, + "2024-02-08": 102.11248942325243, + "2023-11-12": 57.7654073331353, + "2023-12-22": 95.39887310560604, + "2024-06-21": 132.36263580204533, + "2024-03-23": 175.20408872017333, + "2024-03-04": 130.51607547421546, + "2024-04-13": 147.4797586151578, + "2024-02-29": 128.4924401564808, + "2023-11-08": 43.19703003075047, + "2024-07-19": 164.41713918369447, + "2024-08-10": 154.49373589020078, + "2023-12-29": 105.85404965400224, + "2023-12-04": 61.73127849851598, + "2024-04-10": 170.8716778479497, + "2024-05-08": 146.37329067663728, + "2024-08-04": 141.54095053233974, + "2024-04-21": 150.0584485735712, + "2023-10-11": 22.07988132293472, + "2024-05-05": 145.73213216717167, + "2024-03-21": 188.5600477182979, + "2024-05-23": 175.46858970177854, + "2024-04-08": 180.57840269301718, + "2024-05-18": 172.7906230306305, + "2024-06-10": 159.83148373965724, + "2023-10-05": 23.068663546163158, + "2023-10-16": 23.238960219558315, + "2024-05-22": 179.02626846052198, + "2024-02-10": 108.95041440799562, + "2024-04-07": 180.19460788856702, + "2024-02-20": 109.06083578195695, + "2023-11-17": 58.19678226606033, + "2023-12-11": 69.44522478933557, + "2023-11-26": 57.85210464968245, + "2023-10-27": 32.35797351834887, + "2024-01-27": 92.61619043418467, + "2024-03-30": 196.12666725990917, + "2023-11-22": 54.88258076759454, + "2024-06-04": 166.3375872094106, + "2023-11-16": 63.72953931867354, + "2024-02-02": 99.67150661020587, + "2024-06-26": 136.96527197332048, + "2024-01-18": 98.58333062140058, + "2024-02-15": 115.67262610089068, + "2024-08-09": 156.11138512137575, + "2023-10-28": 31.948485999607296, + "2024-03-24": 175.6230715715617, + "2024-07-17": 160.72787219588676, + "2024-04-27": 137.19367613444842, + "2023-12-06": 63.38637961928273, + "2024-01-30": 104.0050954283894, + "2023-11-14": 54.586918599957535, + "2024-07-22": 180.05165510740602, + "2024-06-06": 172.55699055110225, + "2024-07-04": 134.51047963755633, + "2024-08-28": 145.54853693471313, + "2024-05-15": 150.90589314054284, + "2023-11-10": 50.39108169580409, + "2024-01-23": 81.75608990737472, + "2024-01-31": 100.15143609458943, + "2024-05-11": 145.29885530319825, + "2024-01-11": 100.5826545611854, + "2024-02-18": 111.64498630264424, + "2024-07-12": 136.69258017571224, + "2024-03-11": 147.24559769792734, + "2023-10-30": 34.77974186900726, + "2023-12-17": 72.97598433590638, + "2024-02-26": 103.92813361677793, + "2024-06-17": 144.10934373324275, + "2024-01-05": 100.44762338613585, + "2024-06-14": 146.9278245955733, + "2024-06-13": 150.3795349579858, + "2024-03-14": 168.25921374823025, + "2024-02-21": 103.73159129587592, + "2023-12-13": 66.86205405957634, + "2024-02-27": 110.14029709298899, + "2024-08-29": 144.24200695969986, + "2024-03-31": 196.5401384602085, + "2023-12-09": 74.7174374863229, + "2024-04-02": 182.926950596747, + "2024-02-06": 95.59244586605303, + "2024-05-31": 166.4582088030258, + "2024-04-09": 175.3814815392858, + "2024-05-25": 168.26852943111953, + "2023-11-04": 41.55767739226187, + "2024-04-20": 143.42101733324964, + "2024-01-15": 95.33053306341411, + "2023-12-28": 102.95197040087557, + "2024-06-09": 159.63335940700577, + "2024-02-07": 96.46907459433297, + "2024-03-19": 181.7487540376293, + "2024-03-10": 145.419909938474, + "2024-05-02": 136.28503457711096, + "2024-07-24": 177.56079559758552, + "2024-01-12": 97.89325490923196, + "2024-04-19": 143.69859359839694, + "2023-11-29": 59.605265610888836, + "2023-10-15": 21.906462342927494, + "2024-05-28": 168.44098421236444, + "2024-01-24": 86.30839070865274, + "2024-02-11": 109.04899282374669, + "2024-06-08": 160.70595168474244, + "2023-11-30": 59.806140999570644, + "2024-05-24": 167.30125178037642, + "2023-11-15": 61.86351311195825, + "2023-12-16": 74.13210691327559, + "2024-08-26": 158.9086491059006, + "2024-04-04": 185.51657977107382, + "2024-08-23": 145.2629491819404, + "2023-11-03": 39.058818282317546, + "2024-07-26": 178.8064043299791, + "2024-01-20": 92.150272810291, + "2024-08-05": 126.78081381999534, + "2024-08-13": 146.2285574162972, + "2024-03-29": 186.93780817814135, + "2024-06-25": 136.98773315742696, + "2024-08-18": 144.4796426191287, + "2023-10-21": 28.960732576229248, + "2024-01-04": 100.94630688632397, + "2024-08-20": 145.50081588641916, + "2023-11-13": 56.945125465768804, + "2023-10-24": 31.4229730324428, + "2023-11-24": 57.439843083978104, + "2024-07-25": 170.45816241429048, + "2024-07-16": 157.61957500139138, + "2024-05-16": 161.2147827052279, + "2024-01-29": 97.4693771608052, + "2024-07-03": 143.56959077565654, + "2024-05-04": 145.990026773785, + "2024-05-27": 167.43272608396268, + "2023-11-02": 41.95110867376813, + "2023-12-18": 70.04218593964492, + "2024-07-05": 128.23833708467987, + "2024-03-25": 189.0928265254814, + "2023-10-29": 32.356608449674006, + "2024-06-18": 136.13173010293906, + "2024-05-01": 124.8858309259435, + "2024-02-16": 111.56875107753797, + "2024-06-22": 134.29683408877924, + "2024-08-12": 145.12992493170827, + "2024-07-06": 139.07188345561624, + "2024-03-05": 131.29712171383602, + "2024-04-06": 177.04839565029062, + "2023-12-23": 96.41124815222368, + "2023-12-14": 72.30186225823043, + "2024-02-03": 98.53895405300015, + "2024-06-27": 147.10050811632738, + "2024-08-14": 145.44454580566648, + "2024-06-07": 169.93090560287447, + "2024-04-14": 140.46759975784246, + "2023-12-26": 113.4258813308874, + "2023-11-09": 44.93858230098137, + "2023-10-14": 22.001340693213855, + "2024-05-09": 144.36239279351378, + "2024-01-17": 100.05061396256342, + "2024-08-15": 143.25263007943883, + "2024-04-23": 156.36685483544818 + }, + "USD stacks": { + "2024-09-12": 1.6304142458933983, + "2024-09-15": 1.5952392500000003, + "2024-09-22": 1.7000393826281972, + "2024-09-05": 1.4305323830169268, + "2024-09-10": 1.5588426867299325, + "2024-09-11": 1.5685572592257404, + "2024-09-20": 1.7536525605032636, + "2024-09-26": 1.9960045701032063, + "2024-09-16": 1.5044062780187315, + "2024-09-08": 1.4042102607587004, + "2024-09-24": 1.9303621389686694, + "2024-09-29": 1.9376132001163349, + "2024-09-17": 1.5248999660143912, + "2024-09-14": 1.6103131938181519, + "2024-09-03": 1.504818862417341, + "2024-09-25": 1.947817337909959, + "2024-09-18": 1.5189151667902039, + "2024-09-07": 1.3958197070970315, + "2024-09-06": 1.3797460360826166, + "2024-09-19": 1.6912055324840103, + "2024-09-30": 1.8812357171327452, + "2024-09-01": 1.4743016430602196, + "2024-08-31": 1.539231421797105, + "2024-09-02": 1.4598127818306337, + "2024-09-23": 1.8105600855070554, + "2024-09-13": 1.6206958768923339, + "2024-10-01": 1.8754975554617026, + "2024-09-04": 1.4289301064484492, + "2024-09-28": 1.9496086132907053, + "2024-09-21": 1.747957547418703, + "2024-09-09": 1.4512659556563157, + "2024-09-27": 2.009407128375647, + "2024-09-27T07": 2.0114619256204023, + "2024-09-27T05": 2.0194461162899, + "2024-09-30T14": 1.878067699207535, + "2024-09-27T14": 2.019838789786481, + "2024-09-27T23": 2.000869170516136, + "2024-09-28T11": 1.9610315604413422, + "2024-09-29T00": 1.9678256845744981, + "2024-09-28T18": 1.9404780080070667, + "2024-09-29T23": 1.9640532972903433, + "2024-10-01T13": 1.8987761186008183, + "2024-09-30T10": 1.8637165813429324, + "2024-09-25T22": 1.8969919319681319, + "2024-09-29T11": 1.9295591514950596, + "2024-09-28T12": 1.9523512091362993, + "2024-09-26T09": 1.966045828288289, + "2024-09-28T10": 1.9527572732602194, + "2024-09-27T16": 2.0085526206278757, + "2024-09-24T17": 1.9218397169085115, + "2024-09-27T15": 2.0293426370228675, + "2024-09-29T12": 1.942616454086033, + "2024-09-25T04": 2.032978710921245, + "2024-09-25T21": 1.9077062708956514, + "2024-09-25T18": 1.9180178799799614, + "2024-09-26T04": 1.9211887785616455, + "2024-09-26T05": 1.9459360722539762, + "2024-09-30T04": 1.9362251392785839, + "2024-09-27T13": 2.0062018168697264, + "2024-09-28T13": 1.9458297731553633, + "2024-09-25T08": 1.951081098156092, + "2024-09-30T03": 1.918445052442293, + "2024-10-01T10": 1.915849272511023, + "2024-09-25T13": 1.9350446880096783, + "2024-10-01T01": 1.874657747736254, + "2024-09-26T17": 2.0623421461590414, + "2024-09-25T15": 1.953455726111475, + "2024-09-29T22": 1.9909072977676916, + "2024-09-29T01": 1.9364094046737643, + "2024-09-30T06": 1.9375195478189982, + "2024-09-27T12": 1.9804076275304, + "2024-09-25T23": 1.8883971492517044, + "2024-09-30T05": 1.9303910394124595, + "2024-09-28T23": 1.9525350869320302, + "2024-09-30T19": 1.8627043033035178, + "2024-09-25T00": 1.9668348676072385, + "2024-10-01T12": 1.9198633673996226, + "2024-09-29T10": 1.9207463540065928, + "2024-09-24T22": 1.9508682407241333, + "2024-09-26T08": 1.9941746924088124, + "2024-09-29T20": 1.9749676511848107, + "2024-09-25T12": 1.938481309067772, + "2024-09-25T05": 2.0061132214660087, + "2024-09-27T09": 2.0262441128795503, + "2024-09-26T02": 1.8898308583865358, + "2024-09-28T05": 1.9932578301904766, + "2024-09-29T03": 1.9470394981714958, + "2024-09-26T23": 2.0102621131131775, + "2024-09-29T16": 1.93249190433387, + "2024-09-26T21": 1.9889520241028427, + "2024-09-26T16": 2.0567116997977264, + "2024-09-28T03": 2.0183369704978382, + "2024-09-29T21": 1.971832875367494, + "2024-09-30T09": 1.9187987447610224, + "2024-09-24T16": 1.9368165743180006, + "2024-09-30T07": 1.924867538095063, + "2024-09-28T17": 1.9322476476418229, + "2024-09-28T02": 2.0016326850934147, + "2024-09-28T15": 1.9436120783179551, + "2024-09-29T17": 1.9436111557881286, + "2024-09-25T17": 1.93506336611216, + "2024-09-25T16": 1.9398937575793234, + "2024-10-01T04": 1.896088374748253, + "2024-10-01T07": 1.92743236954859, + "2024-09-30T23": 1.857684308529032, + "2024-09-29T13": 1.919180401112873, + "2024-09-26T22": 2.009155283493786, + "2024-10-01T11": 1.921441645681491, + "2024-09-30T16": 1.8549474754288957, + "2024-09-28T01": 2.0020328600108313, + "2024-09-27T02": 2.018048456385448, + "2024-09-30T20": 1.8687672855576962, + "2024-09-28T06": 1.9857239094198609, + "2024-09-27T08": 2.015064869498426, + "2024-10-01T06": 1.8955937917001628, + "2024-09-27T03": 2.006089838487515, + "2024-09-25T06": 1.9767540507081183, + "2024-10-01T02": 1.8843271496633482, + "2024-09-27T17": 2.0256662671452745, + "2024-09-30T22": 1.8737874241928978, + "2024-09-29T05": 1.9389225202423943, + "2024-09-28T20": 1.9483470321929361, + "2024-09-30T13": 1.8867580320500235, + "2024-09-26T18": 2.0427222490170984, + "2024-09-25T10": 1.944931512604234, + "2024-09-25T02": 1.9895385108511867, + "2024-09-29T02": 1.9512223613224808, + "2024-09-28T08": 1.9493050243192656, + "2024-09-30T17": 1.858070896921391, + "2024-09-30T02": 1.9370292852476023, + "2024-09-28T09": 1.939998811878269, + "2024-09-25T03": 2.0265270628622356, + "2024-09-29T15": 1.9279217423589023, + "2024-09-29T06": 1.926008891721597, + "2024-09-24T18": 1.9339579322406344, + "2024-09-26T07": 1.9779649245663413, + "2024-09-26T15": 1.9992021021479935, + "2024-09-27T04": 2.0225618028655363, + "2024-09-27T11": 1.9738035043039686, + "2024-09-26T20": 2.0077686705901487, + "2024-09-30T12": 1.8764208094723844, + "2024-09-27T10": 2.016347957119505, + "2024-09-26T12": 2.0081863734773124, + "2024-09-24T23": 1.9776143280410872, + "2024-09-30T00": 1.9636293776087963, + "2024-09-25T14": 1.940465170108691, + "2024-09-26T14": 1.9946115484578915, + "2024-09-27T01": 2.02989768200964, + "2024-09-28T04": 1.9926898928535546, + "2024-09-29T08": 1.909186758849985, + "2024-09-26T01": 1.86011905370869, + "2024-09-27T19": 2.020351486867167, + "2024-09-25T01": 1.9663049750468462, + "2024-09-26T00": 1.876090549852075, + "2024-09-29T18": 1.9531335181259033, + "2024-09-28T19": 1.9490813821963047, + "2024-09-28T22": 1.9435903939759727, + "2024-09-27T18": 1.9960869039891307, + "2024-09-24T21": 1.9505038088265036, + "2024-09-30T08": 1.9419202772965212, + "2024-09-25T11": 1.9498949435895108, + "2024-09-25T20": 1.905327259490232, + "2024-10-01T09": 1.9198819512494423, + "2024-10-01T03": 1.887519702743039, + "2024-09-26T11": 2.0048595247753167, + "2024-09-28T07": 1.9848695890903152, + "2024-09-27T22": 1.9980881779193607, + "2024-09-27T21": 1.997619742862293, + "2024-09-26T03": 1.902936445070033, + "2024-09-26T13": 2.0153235848459867, + "2024-09-30T18": 1.8732745999900422, + "2024-10-01T15": 1.7928364020732632, + "2024-10-01T08": 1.9257933263349514, + "2024-09-25T19": 1.9258351935422209, + "2024-09-30T21": 1.8763367720916941, + "2024-09-28T14": 1.944516601657347, + "2024-09-27T20": 1.996307378227381, + "2024-09-26T06": 1.9767519247272316, + "2024-09-26T10": 1.9762493466037128, + "2024-09-29T04": 1.945970161833149, + "2024-09-28T16": 1.9349215805654032, + "2024-10-01T00": 1.8406613946499462, + "2024-09-24T20": 1.9609011622420445, + "2024-09-26T19": 2.03225359293702, + "2024-09-24T15": 1.9217324319624378, + "2024-09-27T06": 2.028817373693334, + "2024-09-29T14": 1.9395763761685356, + "2024-09-29T07": 1.9147874603782253, + "2024-09-28T00": 1.9987395777605832, + "2024-09-30T01": 1.9835310322792659, + "2024-09-29T09": 1.9154979421240923, + "2024-09-25T09": 1.9456967095351987, + "2024-09-30T11": 1.85523361917743, + "2024-09-25T07": 1.9454182814871095, + "2024-09-24T19": 1.955261170015399, + "2024-09-29T19": 1.948678704142552, + "2024-09-30T15": 1.8739162151073425, + "2024-09-28T21": 1.940443232448348, + "2024-10-01T05": 1.8987879636964407, + "2024-10-01T14": 1.861208124494064, + "2024-09-27T00": 1.9950292741738673, + "latest": 1.72 + }, + "USD stellar": { + "2024-09-12": 0.09372179000031387, + "2024-09-15": 0.09639223266241498, + "2024-09-22": 0.09636705429777488, + "2024-09-05": 0.09080028876129803, + "2024-09-10": 0.09349229963255345, + "2024-09-11": 0.09284737430491671, + "2024-09-20": 0.09641182512923083, + "2024-09-26": 0.09780379747560017, + "2024-09-16": 0.09467714767856658, + "2024-09-08": 0.08945299327181158, + "2024-09-24": 0.09601309736264511, + "2024-09-29": 0.09993730066438217, + "2024-09-17": 0.095376, + "2024-09-14": 0.09661851705471508, + "2024-09-03": 0.09272899084310485, + "2024-09-25": 0.0965558575047553, + "2024-09-18": 0.09407672214220354, + "2024-09-07": 0.08885268948869582, + "2024-09-06": 0.08839630363723636, + "2024-09-19": 0.09600133312451306, + "2024-09-30": 0.10145765280143819, + "2024-09-01": 0.090683, + "2024-08-31": 0.09241639818228603, + "2024-09-02": 0.09176758807052629, + "2024-09-23": 0.09613152390375306, + "2024-09-13": 0.09557079403271976, + "2024-10-01": 0.09940995406349823, + "2024-09-04": 0.09052489800624483, + "2024-09-28": 0.10040303560969528, + "2024-09-21": 0.09743334320217978, + "2024-09-09": 0.09144036194452987, + "2024-09-27": 0.09858, + "2024-09-27T07": 0.09860172160949522, + "2024-09-27T05": 0.09831653868739121, + "2024-09-30T14": 0.10175998475244853, + "2024-09-27T14": 0.09820162493311449, + "2024-09-27T23": 0.09935744803348877, + "2024-09-28T11": 0.10149890877037997, + "2024-09-29T00": 0.09950186872538218, + "2024-09-28T18": 0.10078663749702411, + "2024-09-29T23": 0.10175122690282386, + "2024-10-01T13": 0.09987336526655262, + "2024-09-30T10": 0.10151291476268745, + "2024-09-25T22": 0.0961276942167686, + "2024-09-29T11": 0.09942598523269562, + "2024-09-28T12": 0.10057447726848703, + "2024-09-26T09": 0.09672587786438096, + "2024-09-28T10": 0.10031403294394681, + "2024-09-27T16": 0.09855154845679802, + "2024-09-24T17": 0.09525033319382546, + "2024-09-27T15": 0.09915399447091897, + "2024-09-29T12": 0.09950725833293009, + "2024-09-25T04": 0.09688066268814591, + "2024-09-25T21": 0.09635501859917048, + "2024-09-25T18": 0.09604626753500459, + "2024-09-26T04": 0.09571666605944727, + "2024-09-26T05": 0.09564378080061398, + "2024-09-30T04": 0.10128920901436525, + "2024-09-27T13": 0.09839715534911041, + "2024-09-28T13": 0.10116702916520366, + "2024-09-25T08": 0.09646935787206823, + "2024-09-30T03": 0.10088468564118303, + "2024-10-01T10": 0.10018930087390458, + "2024-09-25T13": 0.09650807083371801, + "2024-10-01T01": 0.09937944189378008, + "2024-09-26T17": 0.09846674783652529, + "2024-09-25T15": 0.09708954100699786, + "2024-09-29T22": 0.10187215321806756, + "2024-09-29T01": 0.09884359239635954, + "2024-09-30T06": 0.10253650964936377, + "2024-09-27T12": 0.09798800760231063, + "2024-09-25T23": 0.09601173104935871, + "2024-09-30T05": 0.10163227974686358, + "2024-09-28T23": 0.0997162614519525, + "2024-09-30T19": 0.10028191993095882, + "2024-09-25T00": 0.09679097027632964, + "2024-10-01T12": 0.10010188729265343, + "2024-09-29T10": 0.09919782518696343, + "2024-09-24T22": 0.09633223997698583, + "2024-09-26T08": 0.09705409817369513, + "2024-09-29T20": 0.10238569979939822, + "2024-09-25T12": 0.0967218254840968, + "2024-09-25T05": 0.09654279429000265, + "2024-09-27T09": 0.09930276037547495, + "2024-09-26T02": 0.09538922254922545, + "2024-09-28T05": 0.09983089636136426, + "2024-09-29T03": 0.09907205730341453, + "2024-09-26T23": 0.09839425372881692, + "2024-09-29T16": 0.10318456798955572, + "2024-09-26T21": 0.0976586835022882, + "2024-09-26T16": 0.09850810517203507, + "2024-09-28T03": 0.0996238017183315, + "2024-09-29T21": 0.10183438129034757, + "2024-09-30T09": 0.10326423052028745, + "2024-09-24T16": 0.09530853631613007, + "2024-09-30T07": 0.10185046137867694, + "2024-09-28T17": 0.1007253003743263, + "2024-09-28T02": 0.09947189395175342, + "2024-09-28T15": 0.10152758795142522, + "2024-09-29T17": 0.10185514211397717, + "2024-09-25T17": 0.09650620442051573, + "2024-09-25T16": 0.09629589972567587, + "2024-10-01T04": 0.09975862668301541, + "2024-10-01T07": 0.10023592139813563, + "2024-09-30T23": 0.09955935876597291, + "2024-09-29T13": 0.09925400192488419, + "2024-09-26T22": 0.09836521133588373, + "2024-10-01T11": 0.10062157527602501, + "2024-09-30T16": 0.10025822851320551, + "2024-09-28T01": 0.09944461750696999, + "2024-09-27T02": 0.09793566507386665, + "2024-09-30T20": 0.09996976256071496, + "2024-09-28T06": 0.09925781162783366, + "2024-09-27T08": 0.09888146547488993, + "2024-10-01T06": 0.09977048089126817, + "2024-09-27T03": 0.09771857478738097, + "2024-09-25T06": 0.09674517075702792, + "2024-10-01T02": 0.09936861488931593, + "2024-09-27T17": 0.09921914996082404, + "2024-09-30T22": 0.10000318003455379, + "2024-09-29T05": 0.09869021867451966, + "2024-09-28T20": 0.1006978633201749, + "2024-09-30T13": 0.1022142542252007, + "2024-09-26T18": 0.09829017655036207, + "2024-09-25T10": 0.0965222337280655, + "2024-09-25T02": 0.09663281226621856, + "2024-09-29T02": 0.09898315948429315, + "2024-09-28T08": 0.0999368348067755, + "2024-09-30T17": 0.09997298427823419, + "2024-09-30T02": 0.1014515102975056, + "2024-09-28T09": 0.09948670380946203, + "2024-09-25T03": 0.09688804870107037, + "2024-09-29T15": 0.10141214063631958, + "2024-09-29T06": 0.09887668180618728, + "2024-09-24T18": 0.09575633945365782, + "2024-09-26T07": 0.09637079358137317, + "2024-09-26T15": 0.09783816813258438, + "2024-09-27T04": 0.09841357305703663, + "2024-09-27T11": 0.09785393676010903, + "2024-09-26T20": 0.09832892196775257, + "2024-09-30T12": 0.10150462514253791, + "2024-09-27T10": 0.09888740238942323, + "2024-09-26T12": 0.0976497821797343, + "2024-09-24T23": 0.09681669435865446, + "2024-09-30T00": 0.10196458826010421, + "2024-09-25T14": 0.09662207425482161, + "2024-09-26T14": 0.09836297564090113, + "2024-09-27T01": 0.09836964468656194, + "2024-09-28T04": 0.09953563765982308, + "2024-09-29T08": 0.0995188116900133, + "2024-09-26T01": 0.09496255209104347, + "2024-09-27T19": 0.09842674859726133, + "2024-09-25T01": 0.09663235815272367, + "2024-09-26T00": 0.09592356490946707, + "2024-09-29T18": 0.10203227268752733, + "2024-09-28T19": 0.10071885729306074, + "2024-09-28T22": 0.0999877219374233, + "2024-09-27T18": 0.09849198253872958, + "2024-09-24T21": 0.09609747027910925, + "2024-09-30T08": 0.1023903431950697, + "2024-09-25T11": 0.0962940214916045, + "2024-09-25T20": 0.09592952997962755, + "2024-10-01T09": 0.1001154237726783, + "2024-10-01T03": 0.09979478592922311, + "2024-09-26T11": 0.09771330366903601, + "2024-09-28T07": 0.09876457593915429, + "2024-09-27T22": 0.09912481221874414, + "2024-09-27T21": 0.0993553160596978, + "2024-09-26T03": 0.09578001971183196, + "2024-09-26T13": 0.09788589732522768, + "2024-09-30T18": 0.10043493996494363, + "2024-10-01T15": 0.09737275680635993, + "2024-10-01T08": 0.10031069678927941, + "2024-09-25T19": 0.09609777266438999, + "2024-09-30T21": 0.10011900060902035, + "2024-09-28T14": 0.10142648735102332, + "2024-09-27T20": 0.09890201237385846, + "2024-09-26T06": 0.09622246547048742, + "2024-09-26T10": 0.09698349689667722, + "2024-09-29T04": 0.09920032569214786, + "2024-09-28T16": 0.10059665892569955, + "2024-10-01T00": 0.09854742075965153, + "2024-09-24T20": 0.09631839469785618, + "2024-09-26T19": 0.09881076433437672, + "2024-09-24T15": 0.09569124486227597, + "2024-09-27T06": 0.09863241344275303, + "2024-09-29T14": 0.10019797082995856, + "2024-09-29T07": 0.09939544368057533, + "2024-09-28T00": 0.09944712827935283, + "2024-09-30T01": 0.1023882139108958, + "2024-09-29T09": 0.09905588102449091, + "2024-09-25T09": 0.09673760130108441, + "2024-09-30T11": 0.10124324374698725, + "2024-09-25T07": 0.09643702067636518, + "2024-09-24T19": 0.09547915769045114, + "2024-09-29T19": 0.10236595615379136, + "2024-09-30T15": 0.10161692927827792, + "2024-09-28T21": 0.10027202591729882, + "2024-10-01T05": 0.09989734723085925, + "2024-10-01T14": 0.0986465758660493, + "2024-09-27T00": 0.09802874502225621, + "latest": 0.09491 + }, + "USD tezos": { + "2024-09-12": 0.6387788441100003, + "2024-09-15": 0.6481424882784893, + "2024-09-22": 0.6893968227477921, + "2024-09-05": 0.625430703835374, + "2024-09-10": 0.6398378084229128, + "2024-09-11": 0.6317438545392968, + "2024-09-20": 0.6860049938423598, + "2024-09-26": 0.729999464173226, + "2024-09-16": 0.6259836281076828, + "2024-09-08": 0.6130645941873301, + "2024-09-24": 0.6976369088065811, + "2024-09-29": 0.7391890699590888, + "2024-09-17": 0.6349999858476874, + "2024-09-14": 0.6498329817831947, + "2024-09-03": 0.6501222471663576, + "2024-09-25": 0.7079504103861306, + "2024-09-18": 0.6326762363875311, + "2024-09-07": 0.6079438987956944, + "2024-09-06": 0.6143551722259865, + "2024-09-19": 0.6718792499486163, + "2024-09-30": 0.7234969732069879, + "2024-09-01": 0.6453152279306116, + "2024-08-31": 0.6648627793099374, + "2024-09-02": 0.6483458486109268, + "2024-09-23": 0.6949720970962688, + "2024-09-13": 0.6475793415790344, + "2024-10-01": 0.7101229905016507, + "2024-09-04": 0.6277452564552564, + "2024-09-28": 0.7449022729594338, + "2024-09-21": 0.6992206049562166, + "2024-09-09": 0.6279018854659786, + "2024-09-27": 0.7502291031909504, + "2024-09-27T07": 0.7490749, + "2024-09-27T05": 0.7495374750000001, + "2024-09-30T14": 0.720263124, + "2024-09-27T14": 0.75374112, + "2024-09-27T23": 0.7551906119999999, + "2024-09-28T11": 0.746244772, + "2024-09-29T00": 0.740966681, + "2024-09-28T18": 0.743256051, + "2024-09-29T23": 0.7450117350000001, + "2024-10-01T13": 0.69592344, + "2024-09-30T10": 0.721856686, + "2024-09-25T22": 0.7098935, + "2024-09-29T11": 0.7360736, + "2024-09-28T12": 0.742766843, + "2024-09-26T09": 0.7228481699999999, + "2024-09-28T10": 0.74609698, + "2024-09-27T16": 0.75447544, + "2024-09-24T17": 0.7048942499999999, + "2024-09-27T15": 0.7531656600000001, + "2024-09-29T12": 0.7360883199999999, + "2024-09-25T04": 0.7079645999999999, + "2024-09-25T21": 0.715592645, + "2024-09-25T18": 0.70886529, + "2024-09-26T04": 0.7127932299999999, + "2024-09-26T05": 0.71779178, + "2024-09-30T04": 0.7339633, + "2024-09-27T13": 0.74914231, + "2024-09-28T13": 0.740166609, + "2024-09-25T08": 0.7039507199999999, + "2024-09-30T03": 0.73295602, + "2024-10-01T10": 0.7136857919999999, + "2024-09-25T13": 0.703708506, + "2024-10-01T01": 0.711422746, + "2024-09-26T17": 0.73405138, + "2024-09-25T15": 0.712857226, + "2024-09-29T22": 0.7473896759999998, + "2024-09-29T01": 0.73808118, + "2024-09-30T06": 0.74051481, + "2024-09-27T12": 0.75212784, + "2024-09-25T23": 0.70684446, + "2024-09-30T05": 0.736807368, + "2024-09-28T23": 0.738181191, + "2024-09-30T19": 0.7153280719999999, + "2024-09-25T00": 0.7079787599999999, + "2024-10-01T12": 0.711407505, + "2024-09-29T10": 0.7323659069999999, + "2024-09-24T22": 0.7089716399999999, + "2024-09-26T08": 0.7238552, + "2024-09-29T20": 0.75412064, + "2024-09-25T12": 0.704243656, + "2024-09-25T05": 0.707664615, + "2024-09-27T09": 0.750140311247298, + "2024-09-26T02": 0.70881566, + "2024-09-28T05": 0.755281224, + "2024-09-29T03": 0.7393147859999999, + "2024-09-26T23": 0.7365059905856539, + "2024-09-29T16": 0.7450745, + "2024-09-26T21": 0.7340734, + "2024-09-26T16": 0.7380369000000001, + "2024-09-28T03": 0.7600912, + "2024-09-29T21": 0.751012635, + "2024-09-30T09": 0.7361073610000001, + "2024-09-24T16": 0.699909, + "2024-09-30T07": 0.74051481, + "2024-09-28T17": 0.74215582, + "2024-09-28T02": 0.7612913439999999, + "2024-09-28T15": 0.7451803478075965, + "2024-09-29T17": 0.74909737, + "2024-09-25T17": 0.707479708, + "2024-09-25T16": 0.71296435, + "2024-10-01T04": 0.715399152, + "2024-10-01T07": 0.71587112, + "2024-09-30T23": 0.7030242000000001, + "2024-09-29T13": 0.735802998, + "2024-09-26T22": 0.7374589920000001, + "2024-10-01T11": 0.713992885, + "2024-09-30T16": 0.7132737014122136, + "2024-09-28T01": 0.75809096, + "2024-09-27T02": 0.7410833968042506, + "2024-09-30T20": 0.7171898092567882, + "2024-09-28T06": 0.7501125000000001, + "2024-09-27T08": 0.7527128900000001, + "2024-10-01T06": 0.7156992799999999, + "2024-09-27T03": 0.74604476, + "2024-09-25T06": 0.70395776, + "2024-10-01T02": 0.707789244, + "2024-09-27T17": 0.7503500399999999, + "2024-09-30T22": 0.710993752, + "2024-09-29T05": 0.73702211, + "2024-09-28T20": 0.7403740299999999, + "2024-09-30T13": 0.7259274, + "2024-09-26T18": 0.73067306, + "2024-09-25T10": 0.70395776, + "2024-09-25T02": 0.7115573040000001, + "2024-09-29T02": 0.7414485777686772, + "2024-09-28T08": 0.7436588476710947, + "2024-09-30T17": 0.714614152, + "2024-09-30T02": 0.73503675, + "2024-09-28T09": 0.7401036, + "2024-09-25T03": 0.71056447, + "2024-09-29T15": 0.741796421, + "2024-09-29T06": 0.7344293760000001, + "2024-09-24T18": 0.70237355, + "2024-09-26T07": 0.72384072, + "2024-09-26T15": 0.73600736, + "2024-09-27T04": 0.7490149799999999, + "2024-09-27T11": 0.74512665, + "2024-09-26T20": 0.7311169599999999, + "2024-09-30T12": 0.7216709747662435, + "2024-09-27T10": 0.7446340100000001, + "2024-09-26T12": 0.73095614, + "2024-09-24T23": 0.709557424, + "2024-09-30T00": 0.7410889199999999, + "2024-09-25T14": 0.7084220649999999, + "2024-09-26T14": 0.7339926600000001, + "2024-09-27T01": 0.7445042159999999, + "2024-09-28T04": 0.7592317262484238, + "2024-09-29T08": 0.73110234, + "2024-09-26T01": 0.702724275, + "2024-09-27T19": 0.753613025, + "2024-09-25T01": 0.712878804951486, + "2024-09-26T00": 0.70682325, + "2024-09-29T18": 0.7500638813647281, + "2024-09-28T19": 0.74217421, + "2024-09-28T22": 0.7382885839999999, + "2024-09-27T18": 0.751167599, + "2024-09-24T21": 0.705657658, + "2024-09-30T08": 0.7398295920000001, + "2024-09-25T11": 0.7049506499999999, + "2024-09-25T20": 0.712600222, + "2024-10-01T09": 0.71390004, + "2024-10-01T03": 0.714421017, + "2024-09-26T11": 0.729512448, + "2024-09-28T07": 0.7507501200000001, + "2024-09-27T22": 0.7541357200000001, + "2024-09-27T21": 0.751920288, + "2024-09-26T03": 0.708904667415176, + "2024-09-26T13": 0.7319853599999999, + "2024-09-30T18": 0.71325741, + "2024-10-01T15": 0.68739372, + "2024-10-01T08": 0.71341438, + "2024-09-25T19": 0.71090046, + "2024-09-30T21": 0.717370368, + "2024-09-28T14": 0.74487448, + "2024-09-27T20": 0.750435054, + "2024-09-26T06": 0.7203398822822915, + "2024-09-26T10": 0.72787624, + "2024-09-29T04": 0.73702211, + "2024-09-28T16": 0.74337433, + "2024-10-01T00": 0.7078883920000001, + "2024-09-24T20": 0.70695758, + "2024-09-26T19": 0.7350734999999999, + "2024-09-24T15": 0.6989161199999999, + "2024-09-27T06": 0.75301506, + "2024-09-29T14": 0.73912563, + "2024-09-29T07": 0.7317512190000001, + "2024-09-28T00": 0.7570908399999999, + "2024-09-30T01": 0.7412912685216618, + "2024-09-29T09": 0.7337586960000001, + "2024-09-25T09": 0.703750734, + "2024-09-30T11": 0.7214567100000001, + "2024-09-25T07": 0.70097196, + "2024-09-24T19": 0.703615556, + "2024-09-29T19": 0.75213536, + "2024-09-30T15": 0.71690679, + "2024-09-28T21": 0.73608096, + "2024-10-01T05": 0.71267202, + "2024-10-01T14": 0.68739372, + "2024-09-27T00": 0.739832209463178, + "latest": 0.666191 + }, + "USD ton": { + "2024-09-12": 5.42540313096094, + "2024-09-15": 5.635485655163144, + "2024-09-22": 5.59689974329598, + "2024-09-05": 4.668326764032751, + "2024-09-10": 5.3044819004423385, + "2024-09-11": 5.294347586587879, + "2024-09-20": 5.654602615510652, + "2024-09-26": 5.793633532495207, + "2024-09-16": 5.477230807121499, + "2024-09-08": 4.732557540741119, + "2024-09-24": 5.593217375201951, + "2024-09-29": 5.8202913054033, + "2024-09-17": 5.499737488046546, + "2024-09-14": 5.70720816072711, + "2024-09-03": 5.1498743207127164, + "2024-09-25": 5.692199191630618, + "2024-09-18": 5.517944672187066, + "2024-09-07": 4.627690558754265, + "2024-09-06": 4.782069272438912, + "2024-09-19": 5.735251649239982, + "2024-09-30": 5.809148960188712, + "2024-09-01": 5.331969425241275, + "2024-08-31": 5.37242906366725, + "2024-09-02": 5.181803038690555, + "2024-09-23": 5.64479288651117, + "2024-09-13": 5.64926411258865, + "2024-10-01": 5.757308941122535, + "2024-09-04": 4.6704413317073765, + "2024-09-28": 5.9047955268464225, + "2024-09-21": 5.58347007830635, + "2024-09-09": 5.09814933854344, + "2024-09-27": 5.977131486466214, + "2024-09-27T07": 5.833369842040192, + "2024-09-27T05": 5.805274792805273, + "2024-09-30T14": 5.809637708056035, + "2024-09-27T14": 6.00839181109432, + "2024-09-27T23": 6.0019762778738075, + "2024-09-28T11": 5.930269019149081, + "2024-09-29T00": 5.866779728891366, + "2024-09-28T18": 5.856775138884554, + "2024-09-29T23": 5.826416695471385, + "2024-10-01T13": 5.799940670788956, + "2024-09-30T10": 5.767974192856774, + "2024-09-25T22": 5.725224890034811, + "2024-09-29T11": 5.820439047328091, + "2024-09-28T12": 5.941759201976086, + "2024-09-26T09": 5.801297637240028, + "2024-09-28T10": 5.92272462147556, + "2024-09-27T16": 5.982632970578002, + "2024-09-24T17": 5.5138495425887735, + "2024-09-27T15": 6.022492745341438, + "2024-09-29T12": 5.82400823495955, + "2024-09-25T04": 5.7416693619413275, + "2024-09-25T21": 5.722612890352456, + "2024-09-25T18": 5.642883099145666, + "2024-09-26T04": 5.771062006583474, + "2024-09-26T05": 5.729227654739539, + "2024-09-30T04": 5.800108472307581, + "2024-09-27T13": 5.955880939446367, + "2024-09-28T13": 5.898963250325901, + "2024-09-25T08": 5.639437951108503, + "2024-09-30T03": 5.753421835423094, + "2024-10-01T10": 5.831427325739877, + "2024-09-25T13": 5.676527295508652, + "2024-10-01T01": 5.73780689080062, + "2024-09-26T17": 5.878914110192539, + "2024-09-25T15": 5.7130028110993765, + "2024-09-29T22": 5.8905360021527144, + "2024-09-29T01": 5.833518495411153, + "2024-09-30T06": 5.821219771633123, + "2024-09-27T12": 5.8777884922027965, + "2024-09-25T23": 5.76294767250916, + "2024-09-30T05": 5.792071779010829, + "2024-09-28T23": 5.8874627535519615, + "2024-09-30T19": 5.841126870405561, + "2024-09-25T00": 5.606556003968412, + "2024-10-01T12": 5.79853321107307, + "2024-09-29T10": 5.8043626558362975, + "2024-09-24T22": 5.648092163557459, + "2024-09-26T08": 5.825448002683801, + "2024-09-29T20": 5.881442826900973, + "2024-09-25T12": 5.707553869283315, + "2024-09-25T05": 5.741258143924543, + "2024-09-27T09": 5.8868603177496315, + "2024-09-26T02": 5.694489938517775, + "2024-09-28T05": 6.0359759994663, + "2024-09-29T03": 5.847213429943378, + "2024-09-26T23": 5.784805709310775, + "2024-09-29T16": 5.838031809696561, + "2024-09-26T21": 5.7561108893645105, + "2024-09-26T16": 5.828152315569762, + "2024-09-28T03": 6.047171549620177, + "2024-09-29T21": 5.892339700270349, + "2024-09-30T09": 5.830972568933842, + "2024-09-24T16": 5.50569177049572, + "2024-09-30T07": 5.804766023212773, + "2024-09-28T17": 5.844609423455758, + "2024-09-28T02": 6.030119873922439, + "2024-09-28T15": 5.842815281766182, + "2024-09-29T17": 5.838054462721206, + "2024-09-25T17": 5.686229389643477, + "2024-09-25T16": 5.659670352366935, + "2024-10-01T04": 5.8012264068164665, + "2024-10-01T07": 5.816445629186717, + "2024-09-30T23": 5.803089113444598, + "2024-09-29T13": 5.781083107981131, + "2024-09-26T22": 5.79552331760668, + "2024-10-01T11": 5.833852416020375, + "2024-09-30T16": 5.77884619735598, + "2024-09-28T01": 5.987994693840064, + "2024-09-27T02": 5.7544878614619215, + "2024-09-30T20": 5.852674323447319, + "2024-09-28T06": 5.977187043876542, + "2024-09-27T08": 5.803465794296883, + "2024-10-01T06": 5.790260900892184, + "2024-09-27T03": 5.7357730548727694, + "2024-09-25T06": 5.695107780061391, + "2024-10-01T02": 5.7444063590184555, + "2024-09-27T17": 6.106699701944976, + "2024-09-30T22": 5.829412721321439, + "2024-09-29T05": 5.82112105897934, + "2024-09-28T20": 5.8875161722307405, + "2024-09-30T13": 5.823992094676927, + "2024-09-26T18": 5.778403649627482, + "2024-09-25T10": 5.649513406882884, + "2024-09-25T02": 5.648448879070763, + "2024-09-29T02": 5.832446802651931, + "2024-09-28T08": 5.942593202833764, + "2024-09-30T17": 5.801869070591863, + "2024-09-30T02": 5.802471553693522, + "2024-09-28T09": 5.9064664702776675, + "2024-09-25T03": 5.711458456597907, + "2024-09-29T15": 5.815730978765712, + "2024-09-29T06": 5.808122841812714, + "2024-09-24T18": 5.5467212345790005, + "2024-09-26T07": 5.795824770368792, + "2024-09-26T15": 5.7715856435220685, + "2024-09-27T04": 5.791545011221883, + "2024-09-27T11": 5.854392974056895, + "2024-09-26T20": 5.767845784936413, + "2024-09-30T12": 5.8101041388280725, + "2024-09-27T10": 5.8913278749249, + "2024-09-26T12": 5.831765332451638, + "2024-09-24T23": 5.603326644533613, + "2024-09-30T00": 5.842205183354037, + "2024-09-25T14": 5.703364026213429, + "2024-09-26T14": 5.8060635411027715, + "2024-09-27T01": 5.817473000108431, + "2024-09-28T04": 6.043988728683504, + "2024-09-29T08": 5.747506983760358, + "2024-09-26T01": 5.6488201837049745, + "2024-09-27T19": 6.093507693568889, + "2024-09-25T01": 5.639385666424357, + "2024-09-26T00": 5.734816411856744, + "2024-09-29T18": 5.8596435597437, + "2024-09-28T19": 5.875506529747521, + "2024-09-28T22": 5.85887457447113, + "2024-09-27T18": 6.073065754096877, + "2024-09-24T21": 5.618490329200159, + "2024-09-30T08": 5.832829421934421, + "2024-09-25T11": 5.702466702852456, + "2024-09-25T20": 5.698344531339845, + "2024-10-01T09": 5.802365560745748, + "2024-10-01T03": 5.761763566397955, + "2024-09-26T11": 5.8359398760381165, + "2024-09-28T07": 5.928760257345564, + "2024-09-27T22": 6.008203303000138, + "2024-09-27T21": 6.038607744209105, + "2024-09-26T03": 5.7700323613221345, + "2024-09-26T13": 5.807734251463586, + "2024-09-30T18": 5.835211494763091, + "2024-10-01T15": 5.5586949104592, + "2024-10-01T08": 5.811876183821935, + "2024-09-25T19": 5.702342705514916, + "2024-09-30T21": 5.835563359503135, + "2024-09-28T14": 5.854565632266407, + "2024-09-27T20": 6.035286658972273, + "2024-09-26T06": 5.766035200313054, + "2024-09-26T10": 5.789658359600895, + "2024-09-29T04": 5.863931198090341, + "2024-09-28T16": 5.865085969072893, + "2024-10-01T00": 5.719238835495657, + "2024-09-24T20": 5.595814268928242, + "2024-09-26T19": 5.805843771522967, + "2024-09-24T15": 5.52012355077598, + "2024-09-27T06": 5.817675588848107, + "2024-09-29T14": 5.804096178874497, + "2024-09-29T07": 5.78681718149027, + "2024-09-28T00": 5.985765348581655, + "2024-09-30T01": 5.849666177747298, + "2024-09-29T09": 5.774967780606231, + "2024-09-25T09": 5.664480814842368, + "2024-09-30T11": 5.776422234587196, + "2024-09-25T07": 5.583634052927284, + "2024-09-24T19": 5.59118477568363, + "2024-09-29T19": 5.857878636138714, + "2024-09-30T15": 5.814791807153702, + "2024-09-28T21": 5.876551733002501, + "2024-10-01T05": 5.812816843561006, + "2024-10-01T14": 5.700107922016793, + "2024-09-27T00": 5.791633915907263, + "latest": 5.37 + }, + "USD tron": { + "2024-09-12": 0.15341038293623133, + "2024-09-15": 0.14785907977494736, + "2024-09-22": 0.15161180398662322, + "2024-09-05": 0.150063100248319, + "2024-09-10": 0.15285116291570702, + "2024-09-11": 0.1525556831053159, + "2024-09-20": 0.15201492983675194, + "2024-09-26": 0.15238478939297703, + "2024-09-16": 0.14861005836787616, + "2024-09-08": 0.15209821950651994, + "2024-09-24": 0.1518128372635492, + "2024-09-29": 0.15629462767247504, + "2024-09-17": 0.15004870241808613, + "2024-09-14": 0.14785172811372832, + "2024-09-03": 0.15226159286820656, + "2024-09-25": 0.1505761109557835, + "2024-09-18": 0.14969126915069225, + "2024-09-07": 0.1504845479415141, + "2024-09-06": 0.14914012656369818, + "2024-09-19": 0.15047857558052, + "2024-09-30": 0.1556882315220007, + "2024-09-01": 0.15638591748843725, + "2024-08-31": 0.15752298414584448, + "2024-09-02": 0.15590110553719383, + "2024-09-23": 0.15239388164811196, + "2024-09-13": 0.1508201064859144, + "2024-10-01": 0.15611422638801448, + "2024-09-04": 0.1499828714145216, + "2024-09-28": 0.15467962214410816, + "2024-09-21": 0.15199991591355166, + "2024-09-09": 0.15406923864858174, + "2024-09-27": 0.15480440984353402, + "2024-09-27T07": 0.15416266536967652, + "2024-09-27T05": 0.15440405813476596, + "2024-09-30T14": 0.15600569492829883, + "2024-09-27T14": 0.1551498928483411, + "2024-09-27T23": 0.1550980281149198, + "2024-09-28T11": 0.15439935843663338, + "2024-09-29T00": 0.154913941, + "2024-09-28T18": 0.15481008081183556, + "2024-09-29T23": 0.1565763339761023, + "2024-10-01T13": 0.15658241750478888, + "2024-09-30T10": 0.15509446025456286, + "2024-09-25T22": 0.14996266184930124, + "2024-09-29T11": 0.15596636331518163, + "2024-09-28T12": 0.15430068261989102, + "2024-09-26T09": 0.15192637980064433, + "2024-09-28T10": 0.1541200893140866, + "2024-09-27T16": 0.15533418106333713, + "2024-09-24T17": 0.15149242385494902, + "2024-09-27T15": 0.1551456258572217, + "2024-09-29T12": 0.15632344717918947, + "2024-09-25T04": 0.15095174680149567, + "2024-09-25T21": 0.15032709238697367, + "2024-09-25T18": 0.15027804739503636, + "2024-09-26T04": 0.15055481974490928, + "2024-09-26T05": 0.151021858515988, + "2024-09-30T04": 0.1549354850719426, + "2024-09-27T13": 0.15483971003524652, + "2024-09-28T13": 0.15441512202403293, + "2024-09-25T08": 0.1504843543650867, + "2024-09-30T03": 0.1552851491993884, + "2024-10-01T10": 0.15669708123759807, + "2024-09-25T13": 0.15064903410175334, + "2024-10-01T01": 0.15636522438620457, + "2024-09-26T17": 0.15310898964638317, + "2024-09-25T15": 0.1506900639937806, + "2024-09-29T22": 0.15681872170042324, + "2024-09-29T01": 0.15490703790000002, + "2024-09-30T06": 0.15515679094587834, + "2024-09-27T12": 0.15478934779351577, + "2024-09-25T23": 0.1498899478851231, + "2024-09-30T05": 0.15511135805261267, + "2024-09-28T23": 0.15497009413437385, + "2024-09-30T19": 0.1565468154273072, + "2024-09-25T00": 0.15103054211043296, + "2024-10-01T12": 0.15687400017157835, + "2024-09-29T10": 0.15587755926957514, + "2024-09-24T22": 0.15117097045715744, + "2024-09-26T08": 0.15177522981215721, + "2024-09-29T20": 0.15727266624150688, + "2024-09-25T12": 0.15073454800928582, + "2024-09-25T05": 0.15057288727170928, + "2024-09-27T09": 0.15463748519074905, + "2024-09-26T02": 0.14965108059999999, + "2024-09-28T05": 0.15515722880000002, + "2024-09-29T03": 0.15494309879999998, + "2024-09-26T23": 0.15324456118672986, + "2024-09-29T16": 0.15698286884097185, + "2024-09-26T21": 0.1531956650236317, + "2024-09-26T16": 0.15299406210163435, + "2024-09-28T03": 0.15513861439999999, + "2024-09-29T21": 0.15705164274500005, + "2024-09-30T09": 0.15537186732342068, + "2024-09-24T16": 0.15160442215187186, + "2024-09-30T07": 0.15512378341772443, + "2024-09-28T17": 0.154632466, + "2024-09-28T02": 0.15514861559999998, + "2024-09-28T15": 0.15466870344814784, + "2024-09-29T17": 0.15710298188208444, + "2024-09-25T17": 0.1504895363751398, + "2024-09-25T16": 0.15058414337659953, + "2024-10-01T04": 0.15633568365998915, + "2024-10-01T07": 0.1565139421892071, + "2024-09-30T23": 0.1561640536380144, + "2024-09-29T13": 0.1563690844685018, + "2024-09-26T22": 0.1534203336971625, + "2024-10-01T11": 0.1567225738544515, + "2024-09-30T16": 0.15606956007442765, + "2024-09-28T01": 0.15509529978344821, + "2024-09-27T02": 0.1536063929393454, + "2024-09-30T20": 0.15655144997960305, + "2024-09-28T06": 0.1547524710324134, + "2024-09-27T08": 0.15443404383574916, + "2024-10-01T06": 0.15653665508121226, + "2024-09-27T03": 0.15387719186718005, + "2024-09-25T06": 0.15044261803671258, + "2024-10-01T02": 0.15590955391163394, + "2024-09-27T17": 0.15512725900858038, + "2024-09-30T22": 0.15646748004994654, + "2024-09-29T05": 0.15500465, + "2024-09-28T20": 0.1548125261398236, + "2024-09-30T13": 0.15588440999999997, + "2024-09-26T18": 0.15321518412216806, + "2024-09-25T10": 0.15060555160008468, + "2024-09-25T02": 0.15088046204595226, + "2024-09-29T02": 0.15500309999999998, + "2024-09-28T08": 0.15424263852990427, + "2024-09-30T17": 0.15609695306965954, + "2024-09-30T02": 0.15550568970623185, + "2024-09-28T09": 0.1541199318682786, + "2024-09-25T03": 0.1509298931526943, + "2024-09-29T15": 0.156720371, + "2024-09-29T06": 0.155106204, + "2024-09-24T18": 0.15124314858223845, + "2024-09-26T07": 0.15172229553908623, + "2024-09-26T15": 0.15269749682564515, + "2024-09-27T04": 0.15484208285129278, + "2024-09-27T11": 0.15479881031313042, + "2024-09-26T20": 0.1531365360991949, + "2024-09-30T12": 0.15557323286108266, + "2024-09-27T10": 0.1545693498716456, + "2024-09-26T12": 0.15237810265830076, + "2024-09-24T23": 0.15122777944289353, + "2024-09-30T00": 0.1562154387388806, + "2024-09-25T14": 0.15066386874601792, + "2024-09-26T14": 0.15257467488219437, + "2024-09-27T01": 0.15364151768903864, + "2024-09-28T04": 0.155320189, + "2024-09-29T08": 0.15522038352869919, + "2024-09-26T01": 0.1495725975, + "2024-09-27T19": 0.15498169759217684, + "2024-09-25T01": 0.15098615825137063, + "2024-09-26T00": 0.1498525275, + "2024-09-29T18": 0.15715163338216953, + "2024-09-28T19": 0.1547768653702684, + "2024-09-28T22": 0.154719249236204, + "2024-09-27T18": 0.15511672825648407, + "2024-09-24T21": 0.15111963636801318, + "2024-09-30T08": 0.15527753594068477, + "2024-09-25T11": 0.15063531409128583, + "2024-09-25T20": 0.15035163494436446, + "2024-10-01T09": 0.15671188677846032, + "2024-10-01T03": 0.15613742014468965, + "2024-09-26T11": 0.15233904512603055, + "2024-09-28T07": 0.15465122736984951, + "2024-09-27T22": 0.15499209413236534, + "2024-09-27T21": 0.15487537744362698, + "2024-09-26T03": 0.1496965754, + "2024-09-26T13": 0.15247810650890875, + "2024-09-30T18": 0.15633181080108874, + "2024-10-01T08": 0.15660085174959665, + "2024-09-25T19": 0.1502635797712602, + "2024-09-30T21": 0.15661783383056735, + "2024-09-28T14": 0.1546116403459196, + "2024-09-27T20": 0.15489358546264456, + "2024-09-26T06": 0.15136210968946268, + "2024-09-26T10": 0.15227134653263427, + "2024-09-29T04": 0.15500465, + "2024-09-28T16": 0.154698666189386, + "2024-10-01T00": 0.15602113402480342, + "2024-09-24T20": 0.1510927843828458, + "2024-09-26T19": 0.153130206579539, + "2024-09-24T15": 0.15196632984311859, + "2024-09-27T06": 0.15431187891721462, + "2024-09-29T14": 0.15651550109049875, + "2024-09-29T07": 0.15506085349999998, + "2024-09-28T00": 0.15501859999999998, + "2024-09-30T01": 0.15582299537609456, + "2024-09-29T09": 0.15568745112028246, + "2024-09-25T09": 0.1503514514639183, + "2024-09-30T11": 0.15535983076884372, + "2024-09-25T07": 0.15025863293015232, + "2024-09-24T19": 0.15099337718306133, + "2024-09-29T19": 0.1573841144775988, + "2024-09-30T15": 0.15636026843153875, + "2024-09-28T21": 0.154498987746089, + "2024-10-01T05": 0.1565026805227341, + "2024-10-01T14": 0.15653693366518856, + "2024-09-27T00": 0.15355898904040605, + "latest": 0.154045, + "2024-10-01T15": 0.15558268103493772 + }, + "USD vechain": { + "2024-09-12": 0.021700105441658915, + "2024-09-15": 0.022343998374076, + "2024-09-22": 0.024232948487620705, + "2024-09-05": 0.021364793905314823, + "2024-09-10": 0.021510007543254106, + "2024-09-11": 0.02185638705692195, + "2024-09-20": 0.02265495218625564, + "2024-09-26": 0.02462797629883255, + "2024-09-16": 0.021410271333412653, + "2024-09-08": 0.020172738796102666, + "2024-09-24": 0.02400435576845551, + "2024-09-29": 0.02582147193603784, + "2024-09-17": 0.02090718405527371, + "2024-09-14": 0.0227661327552624, + "2024-09-03": 0.021773328791689372, + "2024-09-25": 0.02472188103011101, + "2024-09-18": 0.021204742170340747, + "2024-09-07": 0.020038799194093054, + "2024-09-06": 0.020568697728105885, + "2024-09-19": 0.022061526598079795, + "2024-09-30": 0.025758122488227612, + "2024-09-01": 0.021782966591237365, + "2024-08-31": 0.02232990080109863, + "2024-09-02": 0.021025996755112502, + "2024-09-23": 0.023561616516233865, + "2024-09-13": 0.022344869068837474, + "2024-10-01": 0.024301611705237904, + "2024-09-04": 0.020805932936192553, + "2024-09-28": 0.02672374262991204, + "2024-09-21": 0.023950214971396055, + "2024-09-09": 0.02085883845178641, + "2024-09-27": 0.02565708099008708, + "2024-09-27T07": 0.026482514943507746, + "2024-09-27T05": 0.02641267597256956, + "2024-09-30T14": 0.024981354392095124, + "2024-09-27T14": 0.02645653872848118, + "2024-09-27T23": 0.02669181293332315, + "2024-09-28T11": 0.026038919104796915, + "2024-09-29T00": 0.02583438944722803, + "2024-09-28T18": 0.025997769417595837, + "2024-09-29T23": 0.02576283352704401, + "2024-10-01T13": 0.024773749935190728, + "2024-09-30T10": 0.024984834706268114, + "2024-09-25T22": 0.025076454649771186, + "2024-09-29T11": 0.025332691261102318, + "2024-09-28T12": 0.025942221495495202, + "2024-09-26T09": 0.02509356146267443, + "2024-09-28T10": 0.02593017903103057, + "2024-09-27T16": 0.026617927508262192, + "2024-09-24T17": 0.02424199056413231, + "2024-09-27T15": 0.02661857149802986, + "2024-09-29T12": 0.025453472973282907, + "2024-09-25T04": 0.024781384460065968, + "2024-09-25T21": 0.02509199950248429, + "2024-09-25T18": 0.025000903870919987, + "2024-09-26T04": 0.024678208069192114, + "2024-09-26T05": 0.024686990007642372, + "2024-09-30T04": 0.02497878967840928, + "2024-09-27T13": 0.026523958357027467, + "2024-09-28T13": 0.025945272010537028, + "2024-09-25T08": 0.024489677838052844, + "2024-09-30T03": 0.02497341421965896, + "2024-10-01T10": 0.02488101649974318, + "2024-09-25T13": 0.02481205148671024, + "2024-10-01T01": 0.02447293183238096, + "2024-09-26T17": 0.02535712253143484, + "2024-09-25T15": 0.025358036225450572, + "2024-09-29T22": 0.025947056986663254, + "2024-09-29T01": 0.025701452078308144, + "2024-09-30T06": 0.02519542517041784, + "2024-09-27T12": 0.02626924790737557, + "2024-09-25T23": 0.024786083768392038, + "2024-09-30T05": 0.02502281627603009, + "2024-09-28T23": 0.02580848807331264, + "2024-09-30T19": 0.024506234489582987, + "2024-09-25T00": 0.024774280020198092, + "2024-10-01T12": 0.024816318526204653, + "2024-09-29T10": 0.025379490896172585, + "2024-09-24T22": 0.0245260993614485, + "2024-09-26T08": 0.02533120068627694, + "2024-09-29T20": 0.025941400390108317, + "2024-09-25T12": 0.025123164023369178, + "2024-09-25T05": 0.024565873812908378, + "2024-09-27T09": 0.02663861161557361, + "2024-09-26T02": 0.024496259368425227, + "2024-09-28T05": 0.026823245145824993, + "2024-09-29T03": 0.02580157693711359, + "2024-09-26T23": 0.02554147438940959, + "2024-09-29T16": 0.025460066736998504, + "2024-09-26T21": 0.02520684303641476, + "2024-09-26T16": 0.02524092957773961, + "2024-09-28T03": 0.026917128846005663, + "2024-09-29T21": 0.025932864692312593, + "2024-09-30T09": 0.02544743684186865, + "2024-09-24T16": 0.02412082965779538, + "2024-09-30T07": 0.025348605897448407, + "2024-09-28T17": 0.025760966214425318, + "2024-09-28T02": 0.02678680839301676, + "2024-09-28T15": 0.026061083489012055, + "2024-09-29T17": 0.025517592978264496, + "2024-09-25T17": 0.02536250296489711, + "2024-09-25T16": 0.02509989016768266, + "2024-10-01T04": 0.02481443920502455, + "2024-10-01T07": 0.024958037700179184, + "2024-09-30T23": 0.024439595222856884, + "2024-09-29T13": 0.025346992629847628, + "2024-09-26T22": 0.025503436523321977, + "2024-10-01T11": 0.024950661674230445, + "2024-09-30T16": 0.024418810157358282, + "2024-09-28T01": 0.026637394157830653, + "2024-09-27T02": 0.025820022987009725, + "2024-09-30T20": 0.024508337034148123, + "2024-09-28T06": 0.02652941836298241, + "2024-09-27T08": 0.026498709918784544, + "2024-10-01T06": 0.0247401529195698, + "2024-09-27T03": 0.025958172290981674, + "2024-09-25T06": 0.024688202228035007, + "2024-10-01T02": 0.024576180255150615, + "2024-09-27T17": 0.026836000477842483, + "2024-09-30T22": 0.024758265264787437, + "2024-09-29T05": 0.02580263312159245, + "2024-09-28T20": 0.025901700188839572, + "2024-09-30T13": 0.025088011480758333, + "2024-09-26T18": 0.025452004678593577, + "2024-09-25T10": 0.024795240552885605, + "2024-09-25T02": 0.024841531844015437, + "2024-09-29T02": 0.025804131417005046, + "2024-09-28T08": 0.02626152784557314, + "2024-09-30T17": 0.024541471675729582, + "2024-09-30T02": 0.025167149059313106, + "2024-09-28T09": 0.025935695206344228, + "2024-09-25T03": 0.02479779372894987, + "2024-09-29T15": 0.0255006616850297, + "2024-09-29T06": 0.02575280976289767, + "2024-09-24T18": 0.02440676752005213, + "2024-09-26T07": 0.025170433470470464, + "2024-09-26T15": 0.025019528945194654, + "2024-09-27T04": 0.026557068366666357, + "2024-09-27T11": 0.02608070050394006, + "2024-09-26T20": 0.025405409670811653, + "2024-09-30T12": 0.025176374699984374, + "2024-09-27T10": 0.026473146823025793, + "2024-09-26T12": 0.025225580434248798, + "2024-09-24T23": 0.02477166072299386, + "2024-09-30T00": 0.025758122488227612, + "2024-09-25T14": 0.0251052090791712, + "2024-09-26T14": 0.02510323784534965, + "2024-09-27T01": 0.025888448897506477, + "2024-09-28T04": 0.026832176562162295, + "2024-09-29T08": 0.02524037340241459, + "2024-09-26T01": 0.02433939845891095, + "2024-09-27T19": 0.026779912923167656, + "2024-09-25T01": 0.02483373523141564, + "2024-09-26T00": 0.024609330484777377, + "2024-09-29T18": 0.025765457862425664, + "2024-09-28T19": 0.025905312948420932, + "2024-09-28T22": 0.025681069583263706, + "2024-09-27T18": 0.02660162651003221, + "2024-09-24T21": 0.024562898747280154, + "2024-09-30T08": 0.02564274618582511, + "2024-09-25T11": 0.024893550912820174, + "2024-09-25T20": 0.024918098535877772, + "2024-10-01T09": 0.024909796882610382, + "2024-10-01T03": 0.024647434858974436, + "2024-09-26T11": 0.02531617743239639, + "2024-09-28T07": 0.026346358878335873, + "2024-09-27T22": 0.02650825546451925, + "2024-09-27T21": 0.026649741446225044, + "2024-09-26T03": 0.024580236599005767, + "2024-09-26T13": 0.025149653707647115, + "2024-09-30T18": 0.02466759211444181, + "2024-10-01T15": 0.024017907127756043, + "2024-10-01T08": 0.024981395974123, + "2024-09-25T19": 0.02522020589069361, + "2024-09-30T21": 0.024634423155098603, + "2024-09-28T14": 0.025800876863091342, + "2024-09-27T20": 0.02667835028123104, + "2024-09-26T06": 0.025110228443754767, + "2024-09-26T10": 0.025112044411589995, + "2024-09-29T04": 0.025953726424261067, + "2024-09-28T16": 0.025941596750038317, + "2024-10-01T00": 0.024301611705237904, + "2024-09-24T20": 0.02472265332070198, + "2024-09-26T19": 0.02564611133719619, + "2024-09-24T15": 0.02454905675236046, + "2024-09-27T06": 0.026496037938506935, + "2024-09-29T14": 0.02561263640159643, + "2024-09-29T07": 0.025488729264424213, + "2024-09-28T00": 0.026665033702039022, + "2024-09-30T01": 0.02561032352060822, + "2024-09-29T09": 0.025466997259125247, + "2024-09-25T09": 0.024761754653006254, + "2024-09-30T11": 0.02488706956097957, + "2024-09-25T07": 0.024433894324925844, + "2024-09-24T19": 0.024354315312367692, + "2024-09-29T19": 0.02592199127241583, + "2024-09-30T15": 0.024749018036821953, + "2024-09-28T21": 0.025797983976164392, + "2024-10-01T05": 0.024856464098679233, + "2024-10-01T14": 0.024160659686411973, + "2024-09-27T00": 0.025495452607665742, + "latest": 0.02331657 + }, + "USD zcash": { + "2024-09-12": 29.787254970162955, + "2024-09-15": 30.768290171182866, + "2024-09-22": 30.3596559934924, + "2024-09-05": 29.253013556416132, + "2024-09-10": 30.21900595227534, + "2024-09-11": 29.811239802520138, + "2024-09-20": 31.593587998932612, + "2024-09-26": 29.913908803619147, + "2024-09-16": 29.249142976451164, + "2024-09-08": 27.620375363165948, + "2024-09-24": 29.648411879105474, + "2024-09-29": 29.455150334760802, + "2024-09-17": 29.571097733821638, + "2024-09-14": 30.55581941219775, + "2024-09-03": 29.766308683208376, + "2024-09-25": 29.438843008394098, + "2024-09-18": 29.942145264634483, + "2024-09-07": 28.04568127159217, + "2024-09-06": 27.316581123192105, + "2024-09-19": 31.769548029711085, + "2024-09-30": 28.523868077500374, + "2024-09-01": 31.51848094315335, + "2024-08-31": 32.94008073359305, + "2024-09-02": 29.13336227488568, + "2024-09-23": 29.524907209290717, + "2024-09-13": 29.740120351993735, + "2024-10-01": 28.20339250969287, + "2024-09-04": 29.170557283216674, + "2024-09-28": 30.323465224743504, + "2024-09-21": 31.184629853393567, + "2024-09-09": 28.406918277683197, + "2024-09-27": 30.663349112565108, + "2024-09-27T07": 30.68167747114595, + "2024-09-27T05": 30.319510387132727, + "2024-09-30T14": 28.37914720328815, + "2024-09-27T14": 30.918803380055284, + "2024-09-27T23": 30.583320007628664, + "2024-09-28T11": 30.425356909133054, + "2024-09-29T00": 29.48791061210283, + "2024-09-28T18": 29.466091254589706, + "2024-09-29T23": 29.41319613678184, + "2024-10-01T13": 28.13201522046594, + "2024-09-30T10": 28.52304192443957, + "2024-09-25T22": 28.91759733574551, + "2024-09-29T11": 29.22343211964931, + "2024-09-28T12": 30.363198991218127, + "2024-09-26T09": 28.833039292917984, + "2024-09-28T10": 30.388152627484644, + "2024-09-27T16": 30.814857428830887, + "2024-09-24T17": 29.349416988889544, + "2024-09-27T15": 30.870924800256446, + "2024-09-29T12": 29.261735750551793, + "2024-09-25T04": 29.729137506120694, + "2024-09-25T21": 29.010851298806635, + "2024-09-25T18": 28.80858010648484, + "2024-09-26T04": 28.725075617206926, + "2024-09-26T05": 28.798136099792966, + "2024-09-30T04": 28.933449410386142, + "2024-09-27T13": 30.671785885319494, + "2024-09-28T13": 30.07933789891398, + "2024-09-25T08": 29.631683798116818, + "2024-09-30T03": 28.7448001161768, + "2024-10-01T10": 28.426884172994654, + "2024-09-25T13": 29.56112308385145, + "2024-10-01T01": 28.21294895421468, + "2024-09-26T17": 30.594257081343905, + "2024-09-25T15": 29.62951145285282, + "2024-09-29T22": 29.316939389690223, + "2024-09-29T01": 29.560892023093604, + "2024-09-30T06": 29.015328191646407, + "2024-09-27T12": 30.7096161282712, + "2024-09-25T23": 28.50017751469907, + "2024-09-30T05": 28.99529473082278, + "2024-09-28T23": 29.54027328405949, + "2024-09-30T19": 28.23346391050663, + "2024-09-25T00": 29.581226467645966, + "2024-10-01T12": 28.34295860115947, + "2024-09-29T10": 29.365946422269655, + "2024-09-24T22": 29.449981937790017, + "2024-09-26T08": 28.91927546241598, + "2024-09-29T20": 29.324147635052803, + "2024-09-25T12": 29.699573338732325, + "2024-09-25T05": 29.672199933532518, + "2024-09-27T09": 31.001677873077156, + "2024-09-26T02": 28.46998711225987, + "2024-09-28T05": 30.821214860620252, + "2024-09-29T03": 29.680054717958434, + "2024-09-26T23": 30.46839688849466, + "2024-09-29T16": 29.54673382297376, + "2024-09-26T21": 30.432687679062774, + "2024-09-26T16": 30.595752742766052, + "2024-09-28T03": 30.920552260134205, + "2024-09-29T21": 29.19696719110679, + "2024-09-30T09": 28.650838157523417, + "2024-09-24T16": 29.109746673376375, + "2024-09-30T07": 29.046585548562593, + "2024-09-28T17": 29.842852888521726, + "2024-09-28T02": 30.859074388980435, + "2024-09-28T15": 30.23925108495578, + "2024-09-29T17": 29.635496980538864, + "2024-09-25T17": 28.780690979041463, + "2024-09-25T16": 29.410705926237316, + "2024-10-01T04": 28.356100620809976, + "2024-10-01T07": 28.47204983143822, + "2024-09-30T23": 28.102335331550748, + "2024-09-29T13": 29.540669101568035, + "2024-09-26T22": 30.51536073010639, + "2024-10-01T11": 28.420767947607523, + "2024-09-30T16": 28.27661016124486, + "2024-09-28T01": 30.757275946350553, + "2024-09-27T02": 30.12086895717485, + "2024-09-30T20": 28.31816513710664, + "2024-09-28T06": 30.812941006128693, + "2024-09-27T08": 30.728765057430113, + "2024-10-01T06": 28.458000300595476, + "2024-09-27T03": 30.226274465804735, + "2024-09-25T06": 29.433430362620182, + "2024-10-01T02": 28.153097220949547, + "2024-09-27T17": 30.5833586753339, + "2024-09-30T22": 28.19964203803181, + "2024-09-29T05": 29.623842631285534, + "2024-09-28T20": 29.314317519075864, + "2024-09-30T13": 28.495737039321984, + "2024-09-26T18": 30.475455562499633, + "2024-09-25T10": 29.654429133642505, + "2024-09-25T02": 29.766892961588095, + "2024-09-29T02": 29.64974775677652, + "2024-09-28T08": 30.91940104644568, + "2024-09-30T17": 28.421037542752288, + "2024-09-30T02": 28.677910935325315, + "2024-09-28T09": 30.272827474131535, + "2024-09-25T03": 29.729441973193286, + "2024-09-29T15": 29.515048165196074, + "2024-09-29T06": 29.248799450171834, + "2024-09-24T18": 29.281496693844964, + "2024-09-26T07": 28.898499870773602, + "2024-09-26T15": 30.410483356936606, + "2024-09-27T04": 30.33570178480522, + "2024-09-27T11": 30.682671192184134, + "2024-09-26T20": 30.447658951362047, + "2024-09-30T12": 28.538721274758135, + "2024-09-27T10": 30.741669360930537, + "2024-09-26T12": 29.146120547432997, + "2024-09-24T23": 29.6219129828174, + "2024-09-30T00": 28.94636182479437, + "2024-09-25T14": 29.64867892174339, + "2024-09-26T14": 30.47850811773406, + "2024-09-27T01": 30.237120741440854, + "2024-09-28T04": 30.90321873189484, + "2024-09-29T08": 29.136571010672906, + "2024-09-26T01": 28.336842949794697, + "2024-09-27T19": 30.533536465892475, + "2024-09-25T01": 29.774931318777135, + "2024-09-26T00": 28.466471672695643, + "2024-09-29T18": 29.620716799637655, + "2024-09-28T19": 29.314011689433848, + "2024-09-28T22": 29.267834265308757, + "2024-09-27T18": 30.474386902275302, + "2024-09-24T21": 29.299197447748142, + "2024-09-30T08": 28.922921299454618, + "2024-09-25T11": 29.62637323721068, + "2024-09-25T20": 28.89893207337605, + "2024-10-01T09": 28.495037901296612, + "2024-10-01T03": 28.270598641784805, + "2024-09-26T11": 29.15216765360373, + "2024-09-28T07": 31.036160388709618, + "2024-09-27T22": 30.645251641298977, + "2024-09-27T21": 30.57719341115854, + "2024-09-26T03": 28.706995997035822, + "2024-09-26T13": 29.291933885664246, + "2024-09-30T18": 28.208219469243886, + "2024-10-01T08": 28.44376480334862, + "2024-09-25T19": 28.831709586533307, + "2024-09-30T21": 28.346658777035874, + "2024-09-28T14": 30.22505106158322, + "2024-09-27T20": 30.522065784514645, + "2024-09-26T06": 28.92664172932589, + "2024-09-26T10": 29.068178138263566, + "2024-09-29T04": 29.586557440574158, + "2024-09-28T16": 29.905783477405087, + "2024-10-01T00": 28.053581213778582, + "2024-09-24T20": 29.327452486202098, + "2024-09-26T19": 30.663678762082434, + "2024-09-24T15": 29.106027351367185, + "2024-09-27T06": 30.698777052780034, + "2024-09-29T14": 29.21873349281067, + "2024-09-29T07": 29.036778299073166, + "2024-09-28T00": 30.63088955252794, + "2024-09-30T01": 29.08875730360792, + "2024-09-29T09": 29.59125661367222, + "2024-09-25T09": 29.62445332790019, + "2024-09-30T11": 28.64116395988787, + "2024-09-25T07": 29.48383368105472, + "2024-09-24T19": 29.164988356027152, + "2024-09-29T19": 29.574586724370878, + "2024-09-30T15": 28.418737227692752, + "2024-09-28T21": 29.156618467697296, + "2024-10-01T05": 28.338372699265364, + "2024-10-01T14": 28.15955339621787, + "2024-09-27T00": 30.266645243723428, + "latest": 27.57, + "2024-10-01T15": 28.094436339081536 + }, + "USD zilliqa": { + "2024-09-12": 0.013439554891732004, + "2024-09-15": 0.013764570354940456, + "2024-09-22": 0.014912041961335715, + "2024-09-05": 0.013198532913310865, + "2024-09-10": 0.013282654115579893, + "2024-09-11": 0.01314764303830974, + "2024-09-20": 0.014565505507658515, + "2024-09-26": 0.01603012284543073, + "2024-09-16": 0.013164275677014503, + "2024-09-08": 0.012845517468262513, + "2024-09-24": 0.015575660142636076, + "2024-09-29": 0.01597862978746794, + "2024-09-17": 0.013369767604764214, + "2024-09-14": 0.013694136235259233, + "2024-09-03": 0.013576201636657764, + "2024-09-25": 0.015746213370311127, + "2024-09-18": 0.01342028125557997, + "2024-09-07": 0.012808330163331934, + "2024-09-06": 0.012941099433457164, + "2024-09-19": 0.014031809881637559, + "2024-09-30": 0.015486303788458885, + "2024-09-01": 0.013118276712813178, + "2024-08-31": 0.013429248196920526, + "2024-09-02": 0.013188898431798466, + "2024-09-23": 0.01527868224451738, + "2024-09-13": 0.013600398703234855, + "2024-10-01": 0.015304300753346147, + "2024-09-04": 0.013104046079887353, + "2024-09-28": 0.0162422388696596, + "2024-09-21": 0.01534658941824337, + "2024-09-09": 0.013098767762566434, + "2024-09-27": 0.016612858824159027, + "2024-09-27T07": 0.01660166, + "2024-09-27T05": 0.016650832500000004, + "2024-09-30T14": 0.015398452575142395, + "2024-09-27T14": 0.016695340800000003, + "2024-09-27T23": 0.016712005199999998, + "2024-09-28T11": 0.016250975, + "2024-09-29T00": 0.0161214508, + "2024-09-28T18": 0.0161933999, + "2024-09-29T23": 0.016002400000000003, + "2024-10-01T13": 0.0150083489, + "2024-09-30T10": 0.015439073600000002, + "2024-09-25T22": 0.0156476525, + "2024-09-29T11": 0.01587162171918924, + "2024-09-28T12": 0.016221459799999997, + "2024-09-26T09": 0.01599664, + "2024-09-28T10": 0.016292117699999997, + "2024-09-27T16": 0.016771677, + "2024-09-24T17": 0.0157276405, + "2024-09-27T15": 0.0167836916, + "2024-09-29T12": 0.015871904399999998, + "2024-09-25T04": 0.0158092095, + "2024-09-25T21": 0.015757647124764323, + "2024-09-25T18": 0.015667022699999998, + "2024-09-26T04": 0.015705444099999997, + "2024-09-26T05": 0.015795418000000002, + "2024-09-30T04": 0.0155492225, + "2024-09-27T13": 0.016503135, + "2024-09-28T13": 0.016111449899999998, + "2024-09-25T08": 0.0156789024, + "2024-09-30T03": 0.015569065800000002, + "2024-10-01T10": 0.0154575264, + "2024-09-25T13": 0.0156879603, + "2024-10-01T01": 0.0153218751, + "2024-09-26T17": 0.016301140999999998, + "2024-09-25T15": 0.0158790472, + "2024-09-29T22": 0.016121946257343173, + "2024-09-29T01": 0.01600176, + "2024-09-30T06": 0.0158103162, + "2024-09-27T12": 0.01652799877713018, + "2024-09-25T23": 0.015606565800000001, + "2024-09-30T05": 0.015590155900000001, + "2024-09-28T23": 0.0160917699, + "2024-09-30T19": 0.015204220199999998, + "2024-09-25T00": 0.0158095257, + "2024-10-01T12": 0.0154179954, + "2024-09-29T10": 0.0158414256, + "2024-09-24T22": 0.0158393664, + "2024-09-26T08": 0.015936811999999998, + "2024-09-29T20": 0.016172587199999998, + "2024-09-25T12": 0.0157387408, + "2024-09-25T05": 0.015779210999999998, + "2024-09-27T09": 0.016662998800000002, + "2024-09-26T02": 0.015609799256800406, + "2024-09-28T05": 0.016684003200000002, + "2024-09-29T03": 0.0160603212, + "2024-09-26T23": 0.016101932, + "2024-09-29T16": 0.015981598, + "2024-09-26T21": 0.016043281788429408, + "2024-09-26T16": 0.016340817, + "2024-09-28T03": 0.0168320196, + "2024-09-29T21": 0.016142421000000004, + "2024-09-30T09": 0.015630156300000003, + "2024-09-24T16": 0.015597972, + "2024-09-30T07": 0.0158203164, + "2024-09-28T17": 0.0161233852, + "2024-09-28T02": 0.016852021999999998, + "2024-09-28T15": 0.0162314607, + "2024-09-29T17": 0.016042085199999997, + "2024-09-25T17": 0.015697331, + "2024-09-25T16": 0.015859207, + "2024-10-01T04": 0.015501314399999999, + "2024-10-01T07": 0.0154672154, + "2024-09-30T23": 0.01499625, + "2024-09-29T13": 0.0158722218, + "2024-09-26T22": 0.0161312904, + "2024-10-01T11": 0.0154476825, + "2024-09-30T16": 0.015247255, + "2024-09-28T01": 0.0167620112, + "2024-09-27T02": 0.01606180749349024, + "2024-09-30T20": 0.015256987342809138, + "2024-09-28T06": 0.016532479500000002, + "2024-09-27T08": 0.016702505, + "2024-10-01T06": 0.0154235194, + "2024-09-27T03": 0.016058337401184494, + "2024-09-25T06": 0.015718074117020978, + "2024-10-01T02": 0.015381073799999999, + "2024-09-27T17": 0.016663332, + "2024-09-30T22": 0.015165600699999999, + "2024-09-29T05": 0.015960478799999997, + "2024-09-28T20": 0.016123362922781662, + "2024-09-30T13": 0.015628437000000002, + "2024-09-26T18": 0.016151615, + "2024-09-25T10": 0.015739055600000003, + "2024-09-25T02": 0.0159290442, + "2024-09-29T02": 0.0161103222, + "2024-09-28T08": 0.0162629268, + "2024-09-30T17": 0.0152560324, + "2024-09-30T02": 0.0157107855, + "2024-09-28T09": 0.0161822652, + "2024-09-25T03": 0.015879238708233167, + "2024-09-29T15": 0.015912097105577037, + "2024-09-29T06": 0.0158606344, + "2024-09-24T18": 0.0157671614, + "2024-09-26T07": 0.015986482200000002, + "2024-09-26T15": 0.016210162099999998, + "2024-09-27T04": 0.0164903298, + "2024-09-27T11": 0.0164327931, + "2024-09-26T20": 0.016052567999999996, + "2024-09-30T12": 0.0154889157, + "2024-09-27T10": 0.0164229556, + "2024-09-26T12": 0.0160390376, + "2024-09-24T23": 0.0158790472, + "2024-09-30T00": 0.015951913999999998, + "2024-09-25T14": 0.0158282587, + "2024-09-26T14": 0.016099839, + "2024-09-27T01": 0.0161222568, + "2024-09-28T04": 0.016802183999999998, + "2024-09-29T08": 0.0157922106, + "2024-09-26T01": 0.015476130000000001, + "2024-09-27T19": 0.0166324945, + "2024-09-25T01": 0.0159495215, + "2024-09-26T00": 0.0155061225, + "2024-09-29T18": 0.016093218, + "2024-09-28T19": 0.016131613, + "2024-09-28T22": 0.01606356258522359, + "2024-09-27T18": 0.016621495799999997, + "2024-09-24T21": 0.015759150131278814, + "2024-09-30T08": 0.015730629200000002, + "2024-09-25T11": 0.015718899600000003, + "2024-09-25T20": 0.0157377964, + "2024-10-01T09": 0.015440177141267592, + "2024-10-01T03": 0.015469628400000001, + "2024-09-26T11": 0.0160780704, + "2024-09-28T07": 0.016443288, + "2024-09-27T22": 0.016712836519149517, + "2024-09-27T21": 0.016632660799999997, + "2024-09-26T03": 0.01569004779143492, + "2024-09-26T13": 0.01599968, + "2024-09-30T18": 0.015244815, + "2024-10-01T15": 0.014925521, + "2024-10-01T08": 0.015398152, + "2024-09-25T19": 0.0157377964, + "2024-09-30T21": 0.0153150976, + "2024-09-28T14": 0.0162313348964305, + "2024-09-27T20": 0.016602988000000003, + "2024-09-26T06": 0.015896025, + "2024-09-26T10": 0.016057269800000003, + "2024-09-29T04": 0.015981046029767406, + "2024-09-28T16": 0.016131613, + "2024-10-01T00": 0.015083360399999999, + "2024-09-24T20": 0.0158290502, + "2024-09-26T19": 0.01621985824872453, + "2024-09-24T15": 0.015538140175719247, + "2024-09-27T06": 0.016730334599999997, + "2024-09-29T14": 0.0159727149, + "2024-09-29T07": 0.0157611032, + "2024-09-28T00": 0.016692002799999998, + "2024-09-30T01": 0.015901908, + "2024-09-29T09": 0.015876270582635275, + "2024-09-25T09": 0.0156689031, + "2024-09-30T11": 0.0154690718, + "2024-09-25T07": 0.015599375999999998, + "2024-09-24T19": 0.015818101600000002, + "2024-09-29T19": 0.0161329034, + "2024-09-30T15": 0.015329834575598033, + "2024-09-28T21": 0.015971756700000003, + "2024-10-01T05": 0.0153729252, + "2024-10-01T14": 0.014925521, + "2024-09-27T00": 0.0161420982, + "latest": 0.0143541 + }, + "status": { + "USD astar": { + "timestamp": 1727795462536, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD algorand": { + "timestamp": 1727795466440, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD bittorrent": { + "timestamp": 1727795466439, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD axelar": { + "timestamp": 1727795466446, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD cardano": { + "timestamp": 1727795466445, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD bitcoin": { + "timestamp": 1727795466441, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD bitcoin_gold": { + "timestamp": 1727795466441, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD bitcoin_cash": { + "timestamp": 1727795462569, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD avalanche_c_chain": { + "timestamp": 1727795466443, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD bsc": { + "timestamp": 1727795466445, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD cronos": { + "timestamp": 1727795466496, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD celo": { + "timestamp": 1727795466444, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD cosmos": { + "timestamp": 1727795530871, + "oldestDateRequested": "2023-09-30T22:00:00.000Z" + }, + "USD dogecoin": { + "timestamp": 1727795466495, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD crypto_org": { + "timestamp": 1727795466500, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD dash": { + "timestamp": 1727795462621, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD ethereum": { + "timestamp": 1727795466500, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD elrond": { + "timestamp": 1727795466499, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD ethereum_classic": { + "timestamp": 1727795466498, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD eos": { + "timestamp": 1727795466497, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD flow": { + "timestamp": 1727795466501, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD hedera": { + "timestamp": 1727795466549, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD injective": { + "timestamp": 1727795462674, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD fantom": { + "timestamp": 1727795567676, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD flare": { + "timestamp": 1727795466506, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD filecoin": { + "timestamp": 1727795462648, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD internet_computer": { + "timestamp": 1727795466555, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD iota": { + "timestamp": 1727795466558, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD kusama": { + "timestamp": 1727795462688, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD klaytn": { + "timestamp": 1727795462687, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD litecoin": { + "timestamp": 1727795466557, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD monero": { + "timestamp": 1727795462703, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD nervos": { + "timestamp": 1727795466555, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD neo": { + "timestamp": 1727795466554, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD near": { + "timestamp": 1727795506895, + "oldestDateRequested": "2023-09-30T22:00:00.000Z" + }, + "USD osmo": { + "timestamp": 1727795462750, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD polkadot": { + "timestamp": 1727795462749, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD ravencoin": { + "timestamp": 1727795462750, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD polygon": { + "timestamp": 1727795462751, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD qtum": { + "timestamp": 1727795462751, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD stacks": { + "timestamp": 1727795462759, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD ripple": { + "timestamp": 1727795466558, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD ton": { + "timestamp": 1727795462809, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD solana": { + "timestamp": 1727795567746, + "oldestDateRequested": "2023-09-30T22:00:00.000Z" + }, + "USD tezos": { + "timestamp": 1727795462804, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD tron": { + "timestamp": 1727795466570, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD stellar": { + "timestamp": 1727795462759, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD zcash": { + "timestamp": 1727795466594, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD vechain": { + "timestamp": 1727795462804, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + }, + "USD zilliqa": { + "timestamp": 1727795462807, + "oldestDateRequested": "2024-08-31T22:00:00.000Z" + } + } + }, + "announcements": { + "announcements": [], + "seenIds": [], + "lastUpdateTime": 1727795521259 + }, + "market": { + "marketParams": { + "range": "24h", + "limit": 50, + "starred": [], + "order": "desc", + "search": "", + "liveCompatible": false, + "page": 1, + "counterCurrency": "USD" + }, + "currentPage": 1 + } + } +} diff --git a/libs/ledger-live-common/src/e2e/speculos.ts b/libs/ledger-live-common/src/e2e/speculos.ts index d14cb5d20e81..64ca13d49fb2 100644 --- a/libs/ledger-live-common/src/e2e/speculos.ts +++ b/libs/ledger-live-common/src/e2e/speculos.ts @@ -52,7 +52,6 @@ export const specs: Specs = { }, dependency: "", }, - Exchange: { appQuery: { model: DeviceModelId.nanoSP, @@ -60,7 +59,6 @@ export const specs: Specs = { }, dependencies: [], }, - LedgerSync: { appQuery: { model: DeviceModelId.nanoX, @@ -68,7 +66,6 @@ export const specs: Specs = { }, dependency: "", }, - Dogecoin: { currency: getCryptoCurrencyById("dogecoin"), appQuery: { @@ -221,6 +218,14 @@ export const specs: Specs = { }, dependency: "", }, + Near: { + currency: getCryptoCurrencyById("near"), + appQuery: { + model: DeviceModelId.nanoSP, + appName: "NEAR", + }, + dependency: "", + }, }; export async function startSpeculos( From 07a242d9c54a4b70d9fec7ef390b8e8ab7de4df7 Mon Sep 17 00:00:00 2001 From: Hedi EDELBLOUTE Date: Wed, 2 Oct 2024 16:03:28 +0200 Subject: [PATCH 10/86] Support/fix ada fees (#7965) * cardano high fees checks * add custom CardanoFeeTooHigh error * display feeTooHigh error * validate protocol params * handle fee error in delegation * fee warning in delegation * show tx status warnings and errors * update * tx error update * sync proto params in tx prepare * add coinconfig + update translations * fix cc * update texts * add changeset --------- Co-authored-by: pavanvora Co-authored-by: Prashanth Co-authored-by: Pavan Vora Co-authored-by: mehulcs --- .changeset/thick-foxes-repair.md | 8 ++ .../steps/StepDelegation.tsx | 2 +- .../DelegationFlowModal/steps/StepSummary.tsx | 24 ++++- .../MemoField.tsx} | 8 +- .../{ => SendAmountFields}/MemoValueField.tsx | 1 + .../cardano/SendAmountFields/index.tsx | 27 ++++++ .../UndelegateFlowModal/steps/StepSummary.tsx | 52 ++++++---- .../static/i18n/en/app.json | 12 +++ .../cardano/DelegationFlow/02-Summary.tsx | 52 +++++++++- .../cardano/UndelegationFlow/01-Summary.tsx | 97 +++++++++++++++---- .../src/locales/en/common.json | 12 +++ .../coin-cardano/src/bridge/index.ts | 8 +- .../coin-cardano/src/buildTransaction.ts | 16 ++- libs/coin-modules/coin-cardano/src/config.ts | 12 +++ libs/coin-modules/coin-cardano/src/errors.ts | 8 ++ .../coin-cardano/src/estimateMaxSpendable.ts | 4 +- .../coin-cardano/src/getTransactionStatus.ts | 22 ++++- libs/coin-modules/coin-cardano/src/logic.ts | 24 +++++ .../coin-cardano/src/logic.unit.test.ts | 19 +++- .../coin-cardano/src/prepareTransaction.ts | 9 ++ .../coin-cardano/src/signOperation.ts | 5 + .../coin-cardano/src/transaction.ts | 2 + libs/coin-modules/coin-cardano/src/types.ts | 2 + .../src/families/cardano/config.ts | 9 +- .../src/families/cardano/setup.ts | 8 ++ 25 files changed, 383 insertions(+), 60 deletions(-) create mode 100644 .changeset/thick-foxes-repair.md rename apps/ledger-live-desktop/src/renderer/families/cardano/{SendAmountFields.tsx => SendAmountFields/MemoField.tsx} (91%) rename apps/ledger-live-desktop/src/renderer/families/cardano/{ => SendAmountFields}/MemoValueField.tsx (99%) create mode 100644 apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/index.tsx create mode 100644 libs/coin-modules/coin-cardano/src/config.ts diff --git a/.changeset/thick-foxes-repair.md b/.changeset/thick-foxes-repair.md new file mode 100644 index 000000000000..7b06f99fa1d9 --- /dev/null +++ b/.changeset/thick-foxes-repair.md @@ -0,0 +1,8 @@ +--- +"@ledgerhq/coin-cardano": patch +"ledger-live-desktop": patch +"live-mobile": patch +"@ledgerhq/live-common": patch +--- + +Cardano fees warning + fix high fees issue diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/DelegationFlowModal/steps/StepDelegation.tsx b/apps/ledger-live-desktop/src/renderer/families/cardano/DelegationFlowModal/steps/StepDelegation.tsx index 9729c15951e8..7fa3dd1cf29f 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/DelegationFlowModal/steps/StepDelegation.tsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/DelegationFlowModal/steps/StepDelegation.tsx @@ -77,7 +77,7 @@ export function StepDelegationFooter({ }: StepProps) { invariant(account, "account required"); const { errors } = status; - const canNext = !bridgePending && !errors.amount && transaction; + const canNext = !bridgePending && Object.keys(errors).length === 0 && transaction; return ( diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/DelegationFlowModal/steps/StepSummary.tsx b/apps/ledger-live-desktop/src/renderer/families/cardano/DelegationFlowModal/steps/StepSummary.tsx index 5bbfa729d979..edb9f62b4e06 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/DelegationFlowModal/steps/StepSummary.tsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/DelegationFlowModal/steps/StepSummary.tsx @@ -12,6 +12,8 @@ import { StepProps } from "../types"; import CardanoLedgerPoolIcon from "../LedgerPoolIcon"; import BigNumber from "bignumber.js"; import { useMaybeAccountUnit } from "~/renderer/hooks/useAccountUnit"; +import IconExclamationCircle from "~/renderer/icons/ExclamationCircle"; +import TranslatedError from "~/renderer/components/TranslatedError"; const FromToWrapper = styled.div``; const Separator = styled.div` @@ -27,8 +29,8 @@ function StepSummary(props: StepProps) { const feesUnit = useMaybeAccountUnit(account); if (!account || !transaction) return null; - const { estimatedFees } = status; - + const { estimatedFees, warnings } = status; + const { feeTooHigh } = warnings; const feesCurrency = getAccountCurrency(account); const showDeposit = !account.cardanoResources?.delegation?.status; const stakeKeyDeposit = account.cardanoResources?.protocolParams.stakeKeyDeposit; @@ -105,7 +107,7 @@ function StepSummary(props: StepProps) { + {feeTooHigh ? ( + + + + + + + ) : null} ); diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.tsx b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/MemoField.tsx similarity index 91% rename from apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.tsx rename to apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/MemoField.tsx index ca36eb021a8c..0c379939cfae 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.tsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/MemoField.tsx @@ -8,7 +8,8 @@ import { Transaction, TransactionStatus, } from "@ledgerhq/live-common/families/cardano/types"; -const Root = (props: { + +const MemoField = (props: { account: CardanoAccount; transaction: Transaction; status: TransactionStatus; @@ -32,7 +33,4 @@ const Root = (props: { ); }; -export default { - component: Root, - fields: ["memo"], -}; +export default MemoField; diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.tsx b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/MemoValueField.tsx similarity index 99% rename from apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.tsx rename to apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/MemoValueField.tsx index 64880c147205..69072f358fa6 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.tsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/MemoValueField.tsx @@ -9,6 +9,7 @@ import { TransactionStatus, } from "@ledgerhq/live-common/families/cardano/types"; import { track } from "~/renderer/analytics/segment"; + const MemoValueField = ({ onChange, account, diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/index.tsx b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/index.tsx new file mode 100644 index 000000000000..859bea084385 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields/index.tsx @@ -0,0 +1,27 @@ +import React from "react"; +import { + CardanoAccount, + Transaction, + TransactionStatus, +} from "@ledgerhq/live-common/families/cardano/types"; + +import MemoField from "./MemoField"; + +const Root = (props: { + account: CardanoAccount; + transaction: Transaction; + status: TransactionStatus; + onChange: (t: Transaction) => void; + trackProperties?: Record; +}) => { + return ( + <> + + + ); +}; + +export default { + component: Root, + fields: ["memo"], +}; diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/UndelegateFlowModal/steps/StepSummary.tsx b/apps/ledger-live-desktop/src/renderer/families/cardano/UndelegateFlowModal/steps/StepSummary.tsx index 3f491b4686cf..c0974c7a6b3b 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/UndelegateFlowModal/steps/StepSummary.tsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/UndelegateFlowModal/steps/StepSummary.tsx @@ -13,6 +13,7 @@ import { StepProps } from "../types"; import BigNumber from "bignumber.js"; import Alert from "~/renderer/components/Alert"; import { useMaybeAccountUnit } from "~/renderer/hooks/useAccountUnit"; +import IconExclamationCircle from "~/renderer/icons/ExclamationCircle"; const FromToWrapper = styled.div``; const Separator = styled.div` @@ -24,7 +25,8 @@ const Separator = styled.div` function StepSummary(props: StepProps) { const { account, transaction, status, error } = props; - const { estimatedFees, errors } = status; + const { estimatedFees, errors, warnings } = status; + const { feeTooHigh } = warnings; const displayError = errors.amount?.message ? errors.amount : ""; const accountUnit = useMaybeAccountUnit(account); @@ -72,7 +74,7 @@ function StepSummary(props: StepProps) { + {feeTooHigh ? ( + + + + + + + ) : null} {displayError ? ( @@ -114,22 +130,20 @@ export function StepSummaryFooter({ onClose, }: StepProps) { const { errors } = status; - const canNext = !errors.amount && !bridgePending && !errors.validators && transaction; + const canNext = Object.keys(errors).length === 0 && !bridgePending && transaction; return ( - <> - - - - - + + + + ); } diff --git a/apps/ledger-live-desktop/static/i18n/en/app.json b/apps/ledger-live-desktop/static/i18n/en/app.json index f3239d24d7f8..76c1ee9a3bb3 100644 --- a/apps/ledger-live-desktop/static/i18n/en/app.json +++ b/apps/ledger-live-desktop/static/i18n/en/app.json @@ -6084,6 +6084,18 @@ "CardanoStakeKeyDepositError": { "title": "Ensure that you have {{depositAmount}} ADA available for the deposit" }, + "CardanoFeeHigh": { + "title": "Abnormally high network fees.", + "description": "Network fees unusually high please double check your transaction." + }, + "CardanoFeeTooHigh": { + "title": "Abnormally high network fees.", + "description": "ADA transactions are temporarily unavailable. Please resync your account and try again or contact Support if you need assistance." + }, + "CardanoInvalidProtoParams": { + "title": "Cardano invalid protocol parameters", + "description": "ADA transactions are temporarily unavailable. Please resync your account and try again or contact Support if you need assistance." + }, "StacksMemoTooLong": { "title": "Memo length is too long" }, diff --git a/apps/ledger-live-mobile/src/families/cardano/DelegationFlow/02-Summary.tsx b/apps/ledger-live-mobile/src/families/cardano/DelegationFlow/02-Summary.tsx index 6211f832a940..358abca3cfba 100644 --- a/apps/ledger-live-mobile/src/families/cardano/DelegationFlow/02-Summary.tsx +++ b/apps/ledger-live-mobile/src/families/cardano/DelegationFlow/02-Summary.tsx @@ -40,6 +40,9 @@ import { StackNavigatorProps } from "~/components/RootNavigator/types/helpers"; import { CardanoDelegationFlowParamList } from "./types"; import TranslatedError from "~/components/TranslatedError"; import { useAccountUnit } from "~/hooks/useAccountUnit"; +import GenericErrorBottomModal from "~/components/GenericErrorBottomModal"; +import RetryButton from "~/components/RetryButton"; +import CancelButton from "~/components/CancelButton"; type Props = StackNavigatorProps< CardanoDelegationFlowParamList, @@ -100,6 +103,21 @@ export default function DelegationSummary({ navigation, route }: Props) { return { account, transaction: tx }; }); + const [bridgeErr, setBridgeErr] = useState(bridgeError); + useEffect(() => setBridgeErr(bridgeError), [bridgeError]); + + const onBridgeErrorCancel = useCallback(() => { + setBridgeErr(null); + const parent = navigation.getParent(); + if (parent) parent.goBack(); + }, [navigation]); + const onBridgeErrorRetry = useCallback(() => { + setBridgeErr(null); + if (!transaction) return; + const bridge = getAccountBridge(account, parentAccount); + setTransaction(bridge.updateTransaction(transaction, {})); + }, [setTransaction, account, parentAccount, transaction]); + invariant(transaction, "transaction must be defined"); invariant(transaction.family === "cardano", "transaction cardano"); @@ -141,6 +159,9 @@ export default function DelegationSummary({ navigation, route }: Props) { const displayError = useMemo(() => { return status.errors.amount ? status.errors.amount : ""; }, [status]); + const displayWarning = useMemo(() => { + return status.warnings.feeTooHigh ? status.warnings.feeTooHigh : ""; + }, [status]); return ( @@ -181,6 +202,15 @@ export default function DelegationSummary({ navigation, route }: Props) { ) : ( <> )} + {displayWarning ? ( + + + + + + ) : ( + <> + )} + + + )} + /> + ); +}; +export default Body; diff --git a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/HideModal/index.tsx b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/HideModal/index.tsx new file mode 100644 index 000000000000..745d4df848d7 --- /dev/null +++ b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/HideModal/index.tsx @@ -0,0 +1,21 @@ +import React from "react"; +import Modal from "~/renderer/components/Modal"; +import Body from "./Body"; + +const HideNftCollectionModal = () => ( + ( + { + onClose?.(); + data?.onClose?.(); + }} + /> + )} + /> +); +export default HideNftCollectionModal; diff --git a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/Item/index.tsx b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/Item/index.tsx index b9c404527346..d0b946e5fd8b 100644 --- a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/Item/index.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/Item/index.tsx @@ -4,10 +4,14 @@ import TableRow from "LLD/features/Collectibles/components/Collection/TableRow"; import { GroupedNftOrdinals } from "@ledgerhq/live-nft-react/index"; import { findCorrespondingSat } from "LLD/features/Collectibles/utils/findCorrespondingSat"; import { processRareSat } from "../helpers"; +import { CollectibleTypeEnum } from "LLD/features/Collectibles/types/enum/Collectibles"; +import { BitcoinAccount } from "@ledgerhq/coin-bitcoin/lib/types"; +import CollectionContextMenu from "LLD/components/ContextMenu/CollectibleContextMenu"; type ItemProps = { isLoading: boolean; inscriptionsGroupedWithRareSats: GroupedNftOrdinals[]; + account: BitcoinAccount; } & InscriptionsItemProps; const Item: React.FC = ({ @@ -17,6 +21,7 @@ const Item: React.FC = ({ media, nftId, inscriptionsGroupedWithRareSats, + account, onClick, }) => { const correspondingRareSat = findCorrespondingSat(inscriptionsGroupedWithRareSats, nftId); @@ -25,15 +30,23 @@ const Item: React.FC = ({ }, [correspondingRareSat]); return ( - + + + ); }; diff --git a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/helpers.ts b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/helpers.ts index 695f0a214b1d..775becabc731 100644 --- a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/helpers.ts +++ b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/helpers.ts @@ -7,7 +7,7 @@ export function getInscriptionsData( ) { return inscriptions.map(item => ({ tokenName: item.name || item.contract.name || "", - nftId: item.nft_id, + nftId: String(item.extra_metadata?.ordinal_details?.inscription_id), collectionName: item.collection.name, media: { uri: item.image_url || item.previews?.image_small_url, diff --git a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/index.tsx b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/index.tsx index e6269cb4034b..96a42869d625 100644 --- a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/index.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/index.tsx @@ -14,12 +14,14 @@ import { CollectibleTypeEnum } from "LLD/features/Collectibles/types/enum/Collec import Button from "~/renderer/components/Button"; import { useTranslation } from "react-i18next"; import { GroupedNftOrdinals } from "@ledgerhq/live-nft-react/index"; +import { BitcoinAccount } from "@ledgerhq/coin-bitcoin/lib/types"; type ViewProps = ReturnType & { isLoading: boolean; isError: boolean; error: Error | null; inscriptionsGroupedWithRareSats: GroupedNftOrdinals[]; + account: BitcoinAccount; onReceive: () => void; }; @@ -29,6 +31,7 @@ type Props = { isError: boolean; error: Error | null; inscriptionsGroupedWithRareSats: GroupedNftOrdinals[]; + account: BitcoinAccount; onReceive: () => void; onInscriptionClick: (inscription: SimpleHashNft) => void; }; @@ -40,6 +43,7 @@ const View: React.FC = ({ inscriptions, error, inscriptionsGroupedWithRareSats, + account, onShowMore, onReceive, }) => { @@ -57,6 +61,7 @@ const View: React.FC = ({ {hasInscriptions && inscriptions.map((item, index) => ( = ({ isError, error, inscriptionsGroupedWithRareSats, + account, onReceive, onInscriptionClick, }) => ( @@ -92,6 +98,7 @@ const Inscriptions: React.FC = ({ isLoading={isLoading} isError={isError} error={error} + account={account} onReceive={onReceive} inscriptionsGroupedWithRareSats={inscriptionsGroupedWithRareSats} {...useInscriptionsModel({ inscriptions, onInscriptionClick })} diff --git a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/useInscriptionsModel.tsx b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/useInscriptionsModel.tsx index 431e3234b68f..6bddf828d1bc 100644 --- a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/useInscriptionsModel.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/components/Inscriptions/useInscriptionsModel.tsx @@ -22,11 +22,17 @@ export const useInscriptionsModel = ({ inscriptions, onInscriptionClick }: Props useState(initialDisplayedObjects); useEffect(() => { - if (displayedObjects.length === 0) { - if (items.length > 3) setDisplayShowMore(true); + const filteredDisplayedObjects = displayedObjects.filter(displayedObject => + items.some(item => item.nftId === displayedObject.nftId), + ); + if (filteredDisplayedObjects.length !== displayedObjects.length) { + setDisplayedObjects(items.slice(0, filteredDisplayedObjects.length + 1)); + } else if (displayedObjects.length === 0 && items.length > 3) { + setDisplayShowMore(true); setDisplayedObjects(items.slice(0, 3)); } - }, [items, displayedObjects.length]); + if (displayedObjects.length === items.length) setDisplayShowMore(false); + }, [items, displayedObjects]); const onShowMore = () => { setDisplayedObjects(prevDisplayedObjects => { diff --git a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/screens/Account/index.tsx b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/screens/Account/index.tsx index 372d2c1a5e18..5664ebebbc9e 100644 --- a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/screens/Account/index.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/screens/Account/index.tsx @@ -36,6 +36,7 @@ const View: React.FC = ({ onReceive={onReceive} onInscriptionClick={onInscriptionClick} inscriptionsGroupedWithRareSats={inscriptionsGroupedWithRareSats} + account={account} /> diff --git a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/screens/Account/useBitcoinAccountModel.ts b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/screens/Account/useBitcoinAccountModel.ts index c1c8d0ad620b..162e52665131 100644 --- a/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/screens/Account/useBitcoinAccountModel.ts +++ b/apps/ledger-live-desktop/src/newArch/features/Collectibles/Ordinals/screens/Account/useBitcoinAccountModel.ts @@ -7,6 +7,7 @@ import { openModal } from "~/renderer/actions/modals"; import { setHasSeenOrdinalsDiscoveryDrawer } from "~/renderer/actions/settings"; import { hasSeenOrdinalsDiscoveryDrawerSelector } from "~/renderer/reducers/settings"; import { findCorrespondingSat } from "LLD/features/Collectibles/utils/findCorrespondingSat"; +import { useHideInscriptions } from "LLD/features/Collectibles/hooks/useHideInscriptions"; interface Props { account: BitcoinAccount; @@ -14,6 +15,7 @@ interface Props { export const useBitcoinAccountModel = ({ account }: Props) => { const dispatch = useDispatch(); + const hasSeenDiscoveryDrawer = useSelector(hasSeenOrdinalsDiscoveryDrawerSelector); const [selectedInscription, setSelectedInscription] = useState(null); const [correspondingRareSat, setCorrespondingRareSat] = useState< @@ -24,6 +26,8 @@ export const useBitcoinAccountModel = ({ account }: Props) => { account, }); + const { filterInscriptions } = useHideInscriptions(); + const filteredInscriptions = filterInscriptions(inscriptions); const [isDrawerOpen, setIsDrawerOpen] = useState(!hasSeenDiscoveryDrawer); useEffect(() => { @@ -56,7 +60,7 @@ export const useBitcoinAccountModel = ({ account }: Props) => { return { rareSats, - inscriptions, + inscriptions: filteredInscriptions, rest, isDrawerOpen, selectedInscription, diff --git a/apps/ledger-live-desktop/src/newArch/features/Collectibles/__integration__/bitcoinPage.test.tsx b/apps/ledger-live-desktop/src/newArch/features/Collectibles/__integration__/bitcoinPage.test.tsx index a34984d96302..9af4e6aeab3b 100644 --- a/apps/ledger-live-desktop/src/newArch/features/Collectibles/__integration__/bitcoinPage.test.tsx +++ b/apps/ledger-live-desktop/src/newArch/features/Collectibles/__integration__/bitcoinPage.test.tsx @@ -6,6 +6,7 @@ import { render, screen, waitFor } from "tests/testUtils"; import { BitcoinPage } from "./shared"; import { openURL } from "~/renderer/linking"; import { DeviceModelId } from "@ledgerhq/devices"; +import { INITIAL_STATE as INITIAL_STATE_SETTINGS } from "~/renderer/reducers/settings"; jest.mock( "electron", @@ -22,20 +23,22 @@ describe("displayBitcoinPage", () => { const { user } = render(, { initialState: { settings: { + ...INITIAL_STATE_SETTINGS, hasSeenOrdinalsDiscoveryDrawer: true, devicesModelList: [DeviceModelId.stax, DeviceModelId.europa], + hiddenOrdinalsAsset: [], }, }, }); await waitFor(() => expect(screen.getByText(/the great war #3695/i)).toBeVisible()); - await waitFor(() => expect(screen.getByText(/see more inscriptions/i)).toBeVisible()); + expect(screen.getByText(/see more inscriptions/i)).toBeVisible(); await user.click(screen.getByText(/see more inscriptions/i)); await user.click(screen.getByText(/see more inscriptions/i)); - await waitFor(() => expect(screen.getByText(/bitcoin puppet #71/i)).toBeVisible()); - await waitFor(() => expect(screen.queryAllByTestId(/raresaticon-pizza-0/i)).toHaveLength(2)); - await user.hover(screen.queryAllByTestId(/raresaticon-pizza-0/i)[0]); - await waitFor(() => expect(screen.getByText(/papa john's pizza/i)).toBeVisible()); + expect(screen.getByText(/bitcoin puppet #71/i)).toBeVisible(); + expect(screen.getByTestId(/raresaticon-pizza-0/i)).toBeVisible(); + await user.hover(screen.getByTestId(/raresaticon-pizza-0/i)); + expect(screen.getByText(/papa john's pizza/i)).toBeVisible(); }); it("should open discovery drawer when it is the first time feature is activated", async () => { @@ -50,16 +53,34 @@ describe("displayBitcoinPage", () => { const { user } = render(, { initialState: { settings: { + ...INITIAL_STATE_SETTINGS, hasSeenOrdinalsDiscoveryDrawer: true, devicesModelList: [DeviceModelId.stax, DeviceModelId.europa], + hiddenOrdinalsAsset: [], }, }, }); await waitFor(() => expect(screen.getByText(/the great war #3695/i)).toBeVisible()); await user.click(screen.getByText(/the great war #3695/i)); - await expect(screen.getByText(/hide/i)).toBeVisible(); - // sat name - await expect(screen.getByText(/dlngbapxjdv/i)).toBeVisible(); + expect(screen.getByText(/hide/i)).toBeVisible(); + expect(screen.getByText(/dlngbapxjdv/i)).toBeVisible(); + }); + + it("should open context menu", async () => { + const { user } = render(, { + initialState: { + settings: { + ...INITIAL_STATE_SETTINGS, + hasSeenOrdinalsDiscoveryDrawer: true, + devicesModelList: [DeviceModelId.stax, DeviceModelId.europa], + hiddenOrdinalsAsset: [], + }, + }, + }); + + await waitFor(() => expect(screen.getByText(/the great war #3695/i)).toBeVisible()); + await user.pointer({ keys: "[MouseRight>]", target: screen.getByText(/the great war #3695/i) }); + expect(screen.getByText(/hide inscription/i)); }); }); diff --git a/apps/ledger-live-desktop/src/newArch/features/Collectibles/hooks/useHideInscriptions.ts b/apps/ledger-live-desktop/src/newArch/features/Collectibles/hooks/useHideInscriptions.ts new file mode 100644 index 000000000000..879a29e7ee3b --- /dev/null +++ b/apps/ledger-live-desktop/src/newArch/features/Collectibles/hooks/useHideInscriptions.ts @@ -0,0 +1,48 @@ +import { SimpleHashNft } from "@ledgerhq/live-nft/api/types"; +import { useDispatch, useSelector } from "react-redux"; +import { openModal } from "~/renderer/actions/modals"; +import { hideOrdinalsAsset, unhideOrdinalsAsset } from "~/renderer/actions/settings"; +import { hiddenOrdinalsAssetSelector } from "~/renderer/reducers/settings"; + +export const useHideInscriptions = () => { + const dispatch = useDispatch(); + const hiddenOrdinalAssets = useSelector(hiddenOrdinalsAssetSelector); + + const filterInscriptions = (inscriptions: SimpleHashNft[]) => { + return inscriptions.filter(inscription => { + return !hiddenOrdinalAssets.includes( + String(inscription.extra_metadata?.ordinal_details?.inscription_id), + ); + }); + }; + + const hideInscription = (inscriptionId: string) => { + dispatch(hideOrdinalsAsset(inscriptionId)); + }; + + const unHideInscription = (inscriptionId: string) => { + dispatch(unhideOrdinalsAsset(inscriptionId)); + }; + + const openConfirmHideInscriptionModal = ( + inscriptionName: string, + inscriptionId: string, + onModalClose: () => void, + ) => { + dispatch( + openModal("MODAL_HIDE_INSCRIPTION", { + inscriptionName, + inscriptionId, + onClose: () => onModalClose(), + }), + ); + }; + + return { + filterInscriptions, + hideInscription, + unHideInscription, + openConfirmHideInscriptionModal, + hiddenOrdinalAssets, + }; +}; diff --git a/apps/ledger-live-desktop/src/renderer/actions/settings.ts b/apps/ledger-live-desktop/src/renderer/actions/settings.ts index ad3a94577590..e90520966f32 100644 --- a/apps/ledger-live-desktop/src/renderer/actions/settings.ts +++ b/apps/ledger-live-desktop/src/renderer/actions/settings.ts @@ -218,6 +218,11 @@ export const hideNftCollection = (collectionId: string) => ({ type: "HIDE_NFT_COLLECTION", payload: collectionId, }); +export const hideOrdinalsAsset = (inscriptionId: string) => ({ + type: "HIDE_ORDINALS_ASSET", + payload: inscriptionId, +}); + export const setLastSeenCustomImage = (lastSeenCustomImage: { imageSize: number; imageHash: string; @@ -247,6 +252,10 @@ export const unhideNftCollection = (collectionId: string) => ({ type: "UNHIDE_NFT_COLLECTION", payload: collectionId, }); +export const unhideOrdinalsAsset = (inscriptionId: string) => ({ + type: "UNHIDE_ORDINALS_ASSET", + payload: inscriptionId, +}); type FetchSettings = (a: SettingsState) => (a: Dispatch>) => void; export const fetchSettings: FetchSettings = (settings: SettingsState) => dispatch => { dispatch({ diff --git a/apps/ledger-live-desktop/src/renderer/modals/index.ts b/apps/ledger-live-desktop/src/renderer/modals/index.ts index b9a57c49123c..5a8e78f49503 100644 --- a/apps/ledger-live-desktop/src/renderer/modals/index.ts +++ b/apps/ledger-live-desktop/src/renderer/modals/index.ts @@ -30,6 +30,7 @@ import MODAL_PROTECT_DISCOVER from "./ProtectDiscover"; import MODAL_CONFIRM from "./ConfirmModal"; import MODAL_ERROR from "./ErrorModal"; import MODAL_VAULT_SIGNER from "./VaultSigner"; +import MODAL_HIDE_INSCRIPTION from "LLD/features/Collectibles/Ordinals/components/Inscriptions/HideModal"; import MODAL_WALLET_SYNC_DEBUGGER from "./WalletSyncDebugger"; import MODAL_SIMPLEHASH_TOOLS from "./SimpleHashTools"; @@ -63,6 +64,7 @@ const globalModals: GlobalModals = { MODAL_CREATE_LOCAL_APP, MODAL_WALLET_SYNC_DEBUGGER, MODAL_SIMPLEHASH_TOOLS, + MODAL_HIDE_INSCRIPTION, // Platform MODAL_PLATFORM_EXCHANGE_START, diff --git a/apps/ledger-live-desktop/src/renderer/modals/types.ts b/apps/ledger-live-desktop/src/renderer/modals/types.ts index 1d86c6af1fbb..5b4a110dffca 100644 --- a/apps/ledger-live-desktop/src/renderer/modals/types.ts +++ b/apps/ledger-live-desktop/src/renderer/modals/types.ts @@ -88,6 +88,11 @@ export type GlobalModalData = { MODAL_CONFIRM: ConfirmProps; MODAL_ERROR: ErrorProps; MODAL_VAULT_SIGNER: undefined; + MODAL_HIDE_INSCRIPTION: { + inscriptionName: string; + inscriptionId: string; + onClose?: () => void; + }; }; /** diff --git a/apps/ledger-live-desktop/src/renderer/reducers/settings.ts b/apps/ledger-live-desktop/src/renderer/reducers/settings.ts index 24f033dc2cba..38cabc8fb56e 100644 --- a/apps/ledger-live-desktop/src/renderer/reducers/settings.ts +++ b/apps/ledger-live-desktop/src/renderer/reducers/settings.ts @@ -82,6 +82,7 @@ export type SettingsState = { starredAccountIds?: string[]; blacklistedTokenIds: string[]; hiddenNftCollections: string[]; + hiddenOrdinalsAsset: string[]; deepLinkUrl: string | undefined | null; lastSeenCustomImage: { size: number; @@ -181,6 +182,7 @@ export const INITIAL_STATE: SettingsState = { latestFirmware: null, blacklistedTokenIds: [], hiddenNftCollections: [], + hiddenOrdinalsAsset: [], deepLinkUrl: null, firstTimeLend: false, showClearCacheBanner: false, @@ -226,6 +228,8 @@ type HandlersPayloads = { BLACKLIST_TOKEN: string; UNHIDE_NFT_COLLECTION: string; HIDE_NFT_COLLECTION: string; + UNHIDE_ORDINALS_ASSET: string; + HIDE_ORDINALS_ASSET: string; LAST_SEEN_DEVICE_INFO: { lastSeenDevice: DeviceModelInfo; latestFirmware: FirmwareUpdateContext; @@ -333,6 +337,20 @@ const handlers: SettingsHandlers = { hiddenNftCollections: [...collections, collectionId], }; }, + UNHIDE_ORDINALS_ASSET: (state, { payload: inscriptionId }) => { + const ids = state.hiddenOrdinalsAsset; + return { + ...state, + hiddenOrdinalsAsset: ids.filter(id => id !== inscriptionId), + }; + }, + HIDE_ORDINALS_ASSET: (state, { payload: inscriptionId }) => { + const collections = state.hiddenOrdinalsAsset; + return { + ...state, + hiddenOrdinalsAsset: [...collections, inscriptionId], + }; + }, LAST_SEEN_DEVICE_INFO: (state, { payload }) => ({ ...state, lastSeenDevice: Object.assign({}, state.lastSeenDevice, payload.lastSeenDevice), @@ -743,6 +761,7 @@ export const enableLearnPageStagingUrlSelector = (state: State) => state.settings.enableLearnPageStagingUrl; export const blacklistedTokenIdsSelector = (state: State) => state.settings.blacklistedTokenIds; export const hiddenNftCollectionsSelector = (state: State) => state.settings.hiddenNftCollections; +export const hiddenOrdinalsAssetSelector = (state: State) => state.settings.hiddenOrdinalsAsset; export const hasCompletedOnboardingSelector = (state: State) => state.settings.hasCompletedOnboarding || getEnv("SKIP_ONBOARDING"); export const dismissedBannersSelector = (state: State) => state.settings.dismissedBanners || []; diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/components/Row.tsx b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/components/Row.tsx new file mode 100644 index 000000000000..abe770e5b005 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/components/Row.tsx @@ -0,0 +1,54 @@ +import React from "react"; +import { HiddenNftCollectionRowContainer, IconContainer } from "./styledComponents"; +import { Flex, Icons } from "@ledgerhq/react-ui"; +import { Media } from "LLD/features/Collectibles/components"; +import Skeleton from "~/renderer/components/Nft/Skeleton"; +import Text from "~/renderer/components/Text"; +import { useRowModel } from "./useRowModel"; + +type Props = { + inscriptionId: string; + unHideInscription: () => void; +}; + +type ViewProps = ReturnType; + +function View({ unHideInscription, isLoading, previewUri, inscriptionName }: ViewProps) { + return ( + + + + + + + {inscriptionName} + + + + + + + + + ); +} + +export const Row = ({ inscriptionId, unHideInscription }: Props) => { + return ; +}; diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/components/styledComponents.ts b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/components/styledComponents.ts new file mode 100644 index 000000000000..49509a091114 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/components/styledComponents.ts @@ -0,0 +1,32 @@ +import styled from "styled-components"; +import Box from "~/renderer/components/Box"; + +export const IconContainer = styled.div` + color: ${p => p.theme.colors.palette.text.shade60}; + text-align: center; + &:hover { + cursor: pointer; + color: ${p => p.theme.colors.palette.text.shade40}; + } +`; +export const HiddenNftCollectionRowContainer = styled(Box).attrs({ + alignItems: "center", + horizontal: true, + flow: 1, + py: 1, +})` + margin: 0px; + &:not(:last-child) { + border-bottom: 1px solid ${p => p.theme.colors.palette.text.shade10}; + } + padding: 14px 6px; +`; +export const Body = styled(Box)` + &:not(:empty) { + padding: 0 20px; + } +`; + +export const Show = styled(Box).attrs<{ visible?: boolean }>({})<{ visible?: boolean }>` + transform: rotate(${p => (p.visible ? 0 : 270)}deg); +`; diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/components/useRowModel.ts b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/components/useRowModel.ts new file mode 100644 index 000000000000..8ef8e71be25c --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/components/useRowModel.ts @@ -0,0 +1,19 @@ +import { useFetchOrdinalByTokenId } from "@ledgerhq/live-nft-react"; + +type Props = { + inscriptionId: string; + unHideInscription: () => void; +}; +export const useRowModel = ({ inscriptionId, unHideInscription }: Props) => { + const { data, isLoading } = useFetchOrdinalByTokenId(inscriptionId); + + const inscriptionName = data?.name || data?.contract.name || inscriptionId; + const previewUri = data?.previews?.image_large_url || data?.image_url; + + return { + inscriptionName, + previewUri, + isLoading, + unHideInscription, + }; +}; diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/index.tsx b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/index.tsx new file mode 100644 index 000000000000..22aed95cc441 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/index.tsx @@ -0,0 +1,74 @@ +import React from "react"; +import useHiddenInscriptionsModel from "./useHiddenInscriptionsModel"; +import { useTranslation } from "react-i18next"; +import { SettingsSection as Section, SettingsSectionRow as Row } from "../../../SettingsSection"; +import Box from "~/renderer/components/Box"; +import Track from "~/renderer/analytics/Track"; +import { Show, Body } from "./components/styledComponents"; +import { Row as HiddenInscriptionRow } from "./components/Row"; +import { Icons } from "@ledgerhq/react-ui"; +type ViewProps = ReturnType; + +function View({ + hiddenOrdinalAssets, + sectionVisible, + unHideInscription, + toggleCurrencySection, +}: ViewProps) { + const { t } = useTranslation(); + + return ( +
+ + + {hiddenOrdinalAssets.length ? ( + + + {t("settings.accounts.hiddenOrdinalsAsset.count", { + count: hiddenOrdinalAssets.length, + })} + + + + + + ) : null} + + + {sectionVisible && ( + + {hiddenOrdinalAssets.map(inscriptionId => { + return ( + unHideInscription(inscriptionId)} + inscriptionId={inscriptionId} + /> + ); + })} + + )} +
+ ); +} + +const HiddenInscriptions = () => { + return ; +}; + +export default HiddenInscriptions; diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/useHiddenInscriptionsModel.ts b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/useHiddenInscriptionsModel.ts new file mode 100644 index 000000000000..c9580bd14b00 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenInscriptions/useHiddenInscriptionsModel.ts @@ -0,0 +1,20 @@ +import { useCallback, useState } from "react"; +import { useHideInscriptions } from "~/newArch/features/Collectibles/hooks/useHideInscriptions"; + +const useHiddenInscriptionsModel = () => { + const { hiddenOrdinalAssets, unHideInscription } = useHideInscriptions(); + const [sectionVisible, setSectionVisible] = useState(false); + + const toggleCurrencySection = useCallback(() => { + setSectionVisible(prevState => !prevState); + }, [setSectionVisible]); + + return { + hiddenOrdinalAssets, + sectionVisible, + unHideInscription, + toggleCurrencySection, + }; +}; + +export default useHiddenInscriptionsModel; diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenNFTCollections.tsx b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenNFTCollections.tsx index ce9187f260c9..31c56de3dc5c 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenNFTCollections.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/HiddenNFTCollections.tsx @@ -6,16 +6,15 @@ import { useNftMetadata, useNftCollectionMetadata } from "@ledgerhq/live-nft-rea import { SettingsSection as Section, SettingsSectionRow as Row } from "../../SettingsSection"; import Text from "~/renderer/components/Text"; import Box from "~/renderer/components/Box"; -import IconCross from "~/renderer/icons/Cross"; import Media from "~/renderer/components/Nft/Media"; import Skeleton from "~/renderer/components/Nft/Skeleton"; import { unhideNftCollection } from "~/renderer/actions/settings"; import { hiddenNftCollectionsSelector } from "~/renderer/reducers/settings"; import { accountSelector } from "~/renderer/reducers/accounts"; import Track from "~/renderer/analytics/Track"; -import IconAngleDown from "~/renderer/icons/AngleDown"; import { State } from "~/renderer/reducers"; import { NFTMetadata } from "@ledgerhq/types-live"; +import { Icons } from "@ledgerhq/react-ui"; const HiddenNftCollectionRow = ({ contractAddress, @@ -69,7 +68,7 @@ const HiddenNftCollectionRow = ({ {collectionMetadata?.tokenName || contractAddress} - + ); @@ -115,7 +114,7 @@ export default function HiddenNftCollections() { })} - + ) : null} diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/index.tsx b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/index.tsx index cd5aff1b899c..259780f7d30a 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/index.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Accounts/index.tsx @@ -8,8 +8,12 @@ import SectionExport from "./Export"; import Currencies from "./Currencies"; import BlacklistedTokens from "./BlacklistedTokens"; import HiddenNftCollections from "./HiddenNFTCollections"; +import HiddenInscriptions from "./HiddenInscriptions"; +import { useFeature } from "@ledgerhq/live-common/featureFlags/index"; export default function SectionAccounts() { const { t } = useTranslation(); + const ordinalsFeatureFlag = useFeature("lldnewArchOrdinals"); + const isOrdinalsEnabled = ordinalsFeatureFlag?.enabled; return ( @@ -25,6 +29,7 @@ export default function SectionAccounts() { + {isOrdinalsEnabled && } ); diff --git a/apps/ledger-live-desktop/static/i18n/en/app.json b/apps/ledger-live-desktop/static/i18n/en/app.json index 76c1ee9a3bb3..6de71edcc09a 100644 --- a/apps/ledger-live-desktop/static/i18n/en/app.json +++ b/apps/ledger-live-desktop/static/i18n/en/app.json @@ -4354,14 +4354,20 @@ "tokenBlacklist": { "title": "Hidden tokens", "desc": "You can hide tokens by going to the parent account then right-clicking on the token and selecting 'Hide token'.", - "count": "{{count}} token", - "count_plural": "{{count}} tokens" + "count": "1 token", + "count_other": "{{count}} tokens" }, "hiddenNftCollections": { "title": "Hidden NFT Collections", "desc": "You can hide NFT Collections by right-clicking on the collection name and selecting 'Hide NFT Collection'.", - "count": "{{count}} collection", - "count_plural": "{{count}} collections" + "count": "1 collection", + "count_other": "{{count}} collections" + }, + "hiddenOrdinalsAsset": { + "title": "Hidden Inscriptions", + "desc": "You can hide Inscription by right-clicking on the inscription and selecting 'Hide Inscription'.", + "count": "1 inscription", + "count_other": "{{count}} inscriptions" }, "fullNode": { "title": "Connect Bitcoin full node", @@ -6608,6 +6614,11 @@ "seeMore": "See more inscriptions", "empty": "To add Inscriptions, simply send them to your Bitcoin address.", "receive": "Receive Inscription", + "hide": "Hide Inscription", + "modal": { + "title": "Hide Inscription", + "desc": "This action will hide the following inscription <0>{{inscriptionName}} from your account. You can unhide it at any time from the settings." + }, "discoveryDrawer": { "title": "Discover Ordinals", "description": "Do you know that you may own valuable rare sats and inscriptions?", diff --git a/apps/ledger-live-desktop/tests/testUtils.tsx b/apps/ledger-live-desktop/tests/testUtils.tsx index 3c7d407da406..a516d67977af 100644 --- a/apps/ledger-live-desktop/tests/testUtils.tsx +++ b/apps/ledger-live-desktop/tests/testUtils.tsx @@ -16,6 +16,7 @@ import { getCurrencyBridge } from "@ledgerhq/live-common/bridge/index"; import DrawerProvider from "~/renderer/drawers/Provider"; import { FirebaseFeatureFlagsProvider } from "~/renderer/components/FirebaseFeatureFlags"; import { getFeature } from "./featureFlags"; +import ContextMenuWrapper from "~/renderer/components/ContextMenu/ContextMenuWrapper"; config.disabled = true; @@ -58,7 +59,9 @@ function render( - {children} + + {children} + diff --git a/libs/live-nft-react/src/hooks/__tests__/useFetchOrdinalByTokenId.test.tsx b/libs/live-nft-react/src/hooks/__tests__/useFetchOrdinalByTokenId.test.tsx new file mode 100644 index 000000000000..28c597507c36 --- /dev/null +++ b/libs/live-nft-react/src/hooks/__tests__/useFetchOrdinalByTokenId.test.tsx @@ -0,0 +1,39 @@ +import { renderHook } from "@testing-library/react"; +import { wrapper } from "../../tools/helperTests"; +import { useQuery } from "@tanstack/react-query"; +import { useFetchOrdinalByTokenId } from "../useFetchOrdinalByTokenId"; + +jest.mock("@tanstack/react-query", () => ({ + ...jest.requireActual("@tanstack/react-query"), + useQuery: jest.fn(), +})); + +const mockedInscriptionID = "51fb634f0fefa3441e1a60090d9e292ce1f0803258c2dae818410db4192c89f6i0"; + +const mockQueryResult = { + data: {}, + isLoading: false, + isError: false, + fetchNextPage: jest.fn(), + hasNextPage: false, +}; + +describe("useFetchOrdinals", () => { + it("calls useInfiniteQuery with correct arguments", async () => { + (useQuery as jest.Mock).mockReturnValue(mockQueryResult); + + renderHook(() => useFetchOrdinalByTokenId(mockedInscriptionID), { + wrapper, + }); + + expect(useQuery).toHaveBeenCalledWith({ + queryKey: [ + "FectchOrdinalsByTokenId", + "51fb634f0fefa3441e1a60090d9e292ce1f0803258c2dae818410db4192c89f6i0", + ["bitcoin"], + "0", + ], + queryFn: expect.any(Function), + }); + }); +}); diff --git a/libs/live-nft-react/src/hooks/useFetchOrdinalByTokenId.ts b/libs/live-nft-react/src/hooks/useFetchOrdinalByTokenId.ts new file mode 100644 index 000000000000..f871c1ef488a --- /dev/null +++ b/libs/live-nft-react/src/hooks/useFetchOrdinalByTokenId.ts @@ -0,0 +1,21 @@ +import { fetchNftsFromSimpleHashById } from "@ledgerhq/live-nft/api/simplehash"; +import { useQuery, UseQueryResult } from "@tanstack/react-query"; +import { OrdinalsChainsEnum } from "./types"; +import { SimpleHashNft } from "@ledgerhq/live-nft/api/types"; +import { NFTS_QUERY_KEY } from "../queryKeys"; + +export const useFetchOrdinalByTokenId = ( + contractAddress: string, +): UseQueryResult => { + const chain = [OrdinalsChainsEnum.INSCRIPTIONS]; + const tokenId = "0"; + return useQuery({ + queryKey: [NFTS_QUERY_KEY.FectchOrdinalsByTokenId, contractAddress, chain, tokenId], + queryFn: () => + fetchNftsFromSimpleHashById({ + chains: chain, + contract_address: contractAddress, + token_id: tokenId, + }), + }); +}; diff --git a/libs/live-nft-react/src/index.ts b/libs/live-nft-react/src/index.ts index db82f03c1f90..0fe3e2c0d1f5 100644 --- a/libs/live-nft-react/src/index.ts +++ b/libs/live-nft-react/src/index.ts @@ -5,4 +5,5 @@ export * from "./hooks/useNftFloorPrice"; export * from "./hooks/useRefreshMetadata"; export * from "./hooks/useCheckSpamScore"; export * from "./hooks/useFetchOrdinals"; +export * from "./hooks/useFetchOrdinalByTokenId"; export * from "./hooks/helpers/ordinals"; diff --git a/libs/live-nft-react/src/queryKeys.ts b/libs/live-nft-react/src/queryKeys.ts index 78730a322ce0..a83b71103635 100644 --- a/libs/live-nft-react/src/queryKeys.ts +++ b/libs/live-nft-react/src/queryKeys.ts @@ -4,4 +4,5 @@ export const NFTS_QUERY_KEY = { FloorPrice: "FloorPrice", CheckSpamScore: "CheckSpamScore", FetchOrdinals: "FetchOrdinals", + FectchOrdinalsByTokenId: "FectchOrdinalsByTokenId", }; diff --git a/libs/live-nft/src/api/simplehash.ts b/libs/live-nft/src/api/simplehash.ts index ac8d73f85dac..ddad4d81a658 100644 --- a/libs/live-nft/src/api/simplehash.ts +++ b/libs/live-nft/src/api/simplehash.ts @@ -1,4 +1,4 @@ -import network from "@ledgerhq/live-network/network"; +import network from "@ledgerhq/live-network"; import { SimpleHashRefreshResponse, SimpleHashResponse, @@ -37,7 +37,7 @@ type NftFetchOpts = { /** * wallet addresses to get NFTs from. separated by a "," */ - addresses: string; + addresses?: string; /** * cursor used to paginate the API */ @@ -54,6 +54,14 @@ type NftFetchOpts = { * spam filtering threshold, defaults to a constant % */ threshold?: number; + /** + * token id to look for + */ + token_id?: string; + /** + * contract address to look for + */ + contract_address?: string; }; const defaultOpts = { limit: PAGE_SIZE, @@ -191,3 +199,17 @@ export async function getSpamScore(opts: CheckSpamScoreOpts): Promise { + const { chains, contract_address, token_id } = { ...defaultOpts, ...opts }; + const { data } = await network({ + method: "GET", + url: `${getEnv("SIMPLE_HASH_API_BASE")}/nfts/${chains[0]}/${contract_address}/${token_id}`, + }); + + return data; +} From 8b60b9d5c80937edd1e82edca9880adb90cbb57e Mon Sep 17 00:00:00 2001 From: Angus Bayley Date: Thu, 3 Oct 2024 14:29:23 +0100 Subject: [PATCH 24/86] Revert "Send nightly iOS builds to new "Ledger Live (nightly)" app in Testflight" --- .../fastlane/.env.ios.nightly | 5 +- apps/ledger-live-mobile/fastlane/Fastfile | 42 +++-- .../project.pbxproj | 145 +++--------------- .../NightlyAppIcon.appiconset/Contents.json | 116 -------------- .../Icon-App-20x20@2x.png | Bin 923 -> 0 bytes .../Icon-App-20x20@3x.png | Bin 1438 -> 0 bytes .../Icon-App-29x29@2x.png | Bin 1343 -> 0 bytes .../Icon-App-29x29@3x.png | Bin 2058 -> 0 bytes .../Icon-App-40x40@2x.png | Bin 1952 -> 0 bytes .../Icon-App-40x40@3x.png | Bin 2755 -> 0 bytes .../Icon-App-57x57@2x.png | Bin 1319 -> 0 bytes .../Icon-App-60x60@2x 1.png | Bin 2755 -> 0 bytes .../Icon-App-60x60@3x.png | Bin 4072 -> 0 bytes .../Icon-App-76x76@1x.png | Bin 1730 -> 0 bytes .../Icon-App-76x76@2x.png | Bin 3584 -> 0 bytes .../Icon-App-83.5x83.5@2x.png | Bin 3955 -> 0 bytes .../ItunesArtwork@2x.png | Bin 10317 -> 0 bytes apps/ledger-live-mobile/mobile-env.md | 4 +- .../scripts/mobile-env-md.mjs | 2 +- 19 files changed, 45 insertions(+), 269 deletions(-) delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Contents.json delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-20x20@2x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-20x20@3x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-29x29@2x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-29x29@3x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-40x40@2x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-40x40@3x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-57x57@2x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-60x60@2x 1.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-60x60@3x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-76x76@1x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-76x76@2x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-83.5x83.5@2x.png delete mode 100644 apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/ItunesArtwork@2x.png diff --git a/apps/ledger-live-mobile/fastlane/.env.ios.nightly b/apps/ledger-live-mobile/fastlane/.env.ios.nightly index f66c9c5a2c9d..bdafb9c14760 100644 --- a/apps/ledger-live-mobile/fastlane/.env.ios.nightly +++ b/apps/ledger-live-mobile/fastlane/.env.ios.nightly @@ -1,8 +1,7 @@ ENVFILE=.env.ios.nightly -APP_IDENTIFIER="com.ledger.live.nightly" -MY_APP_BUNDLE_ID="com.ledger.live.nightly" +APP_IDENTIFIER="com.ledger.live" +MY_APP_BUNDLE_ID="com.ledger.live" APP_NAME="LL NIGHTLY" -APP_CONFIGURATION="Nightly" SENTRY_ENVIRONMENT=nightly SENTRY_PROJECT=llm-ios-nightly FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT=180 diff --git a/apps/ledger-live-mobile/fastlane/Fastfile b/apps/ledger-live-mobile/fastlane/Fastfile index ff8650476a88..01154e7e50bf 100644 --- a/apps/ledger-live-mobile/fastlane/Fastfile +++ b/apps/ledger-live-mobile/fastlane/Fastfile @@ -130,18 +130,6 @@ platform :ios do keychain_password: ENV["CI_KEYCHAIN_PASSWORD"], git_basic_authorization: Base64.strict_encode64("#{ENV["GIT_REPO_USER"]}:#{ENV["GH_TOKEN"]}"), ) - match( - type: "appstore", - app_identifier: "com.ledger.live.nightly", - force: true, - generate_apple_certs: true, - git_url: ENV["GIT_REPO_URL"], - username: ENV["APPLE_ID"], - team_id: ENV["DEVELOPER_TEAM_ID"], - keychain_name: ENV["CI_KEYCHAIN_NAME"], - keychain_password: ENV["CI_KEYCHAIN_PASSWORD"], - git_basic_authorization: Base64.strict_encode64("#{ENV["GIT_REPO_USER"]}:#{ENV["GH_TOKEN"]}"), - ) end desc "buid for deployment (app-store or ad-hoc)" @@ -163,10 +151,7 @@ platform :ios do build_number = latest_testflight_build_number( version: trim_version_number(package["version"]), - # we are moving to using ENV["APP_IDENTIFIER"] but staging + prerelease still override their own - # app identifier to publish to com.ledger.live . This will be removed once we are are fully publishing - # to separate apps - app_identifier: options[:nightly] ? ENV["APP_IDENTIFIER"] : "com.ledger.live" + app_identifier: "com.ledger.live" ) increment_build_number({ @@ -258,9 +243,6 @@ platform :ios do gym( scheme: PROJECT_NAME, workspace: XCODE_WORKSPACE, - # This should come from env files - as we move each release type to its own app we will - # move them away from "Release" and to their own .env-file defined configuration - configuration: options[:nightly] ? ENV["APP_CONFIGURATION"] : "Release", silent: true, xcargs: `#{settings_to_override} -UseNewBuildSystem=YES`, output_directory: OUTPUT_DIRECTORY, @@ -297,8 +279,9 @@ platform :ios do begin pilot( skip_submission: false, - app_identifier: ENV["APP_IDENTIFIER"], + app_identifier: "com.ledger.live", skip_waiting_for_build_processing: true, + # wait_processing_timeout_duration: 1800, # 30mn ipa: IPA_DIRECTORY, changelog: "Nightly Build v#{package['version']} (#{build_number})", beta_app_review_info: { @@ -307,6 +290,20 @@ platform :ios do notes: "test nightly builds" } ) + + # pilot( + # distribute_only: true, + # groups: ["External Nightly"], + # distribute_external: true, + # app_identifier: "com.ledger.live", + # app_platform: 'ios', + # app_version: package["version"], + # build_number: get_build_number(xcodeproj: "ios/ledgerlivemobile.xcodeproj"), + # notify_external_testers: true, + # reject_build_waiting_for_review: !options[:ci], + # skip_waiting_for_build_processing: false, + # wait_processing_timeout_duration: 1800, # 30mn + # ) rescue => e raise unless e.message.include? "Another build is in review" @@ -344,10 +341,7 @@ platform :ios do desc "ci: create nightly version" lane :ci_nightly do |options| setup_ios_ci - build( - nightly: true, - ci: true - ) + build(ci: true) upload( nightly: true, ci: true diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile.xcodeproj/project.pbxproj b/apps/ledger-live-mobile/ios/ledgerlivemobile.xcodeproj/project.pbxproj index f03a5c5a6601..d1f16db9828c 100644 --- a/apps/ledger-live-mobile/ios/ledgerlivemobile.xcodeproj/project.pbxproj +++ b/apps/ledger-live-mobile/ios/ledgerlivemobile.xcodeproj/project.pbxproj @@ -815,8 +815,14 @@ ); MTL_ENABLE_DEBUG_INFO = NO; ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited) "; - OTHER_CPLUSPLUSFLAGS = "$(inherited) "; + OTHER_CFLAGS = ( + "$(inherited)", + " ", + ); + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + " ", + ); OTHER_LDFLAGS = "$(inherited)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -937,8 +943,14 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited) "; - OTHER_CPLUSPLUSFLAGS = "$(inherited) "; + OTHER_CFLAGS = ( + "$(inherited)", + " ", + ); + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + " ", + ); OTHER_LDFLAGS = "$(inherited)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -1003,76 +1015,14 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited) "; - OTHER_CPLUSPLUSFLAGS = "$(inherited) "; - OTHER_LDFLAGS = "$(inherited)"; - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_VERSION = 5.0; - USE_HERMES = true; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - BB0B80012CAAB47600AF2B0C /* Nightly */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = 5HK2Q4J4X4; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( + OTHER_CFLAGS = ( "$(inherited)", - _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, + " ", ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_OTHER_PREPROCESSOR_FLAGS = "-traditional"; - INFOPLIST_PREPROCESS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LIBRARY_SEARCH_PATHS = ( - "$(SDKROOT)/usr/lib/swift", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + " ", ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited) "; - OTHER_CPLUSPLUSFLAGS = "$(inherited) "; OTHER_LDFLAGS = "$(inherited)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -1081,56 +1031,7 @@ USE_HERMES = true; VALIDATE_PRODUCT = YES; }; - name = Nightly; - }; - BB0B80022CAAB47600AF2B0C /* Nightly */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F77638C1F4BC132FB97FEEAF /* Pods-ledgerlivemobile.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = NightlyAppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = ledgerlivemobile/ledgerlivemobile.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 381; - DEVELOPMENT_TEAM = X6LFS5BQKN; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PROJECT_DIR)", - "$(PROJECT_DIR)/ledgerlivemobile", - "$(SRCROOT)", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = ledgerlivemobile/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - /usr/lib/swift, - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(SDKROOT)/usr/lib/swift", - "$(inherited)", - ); - OTHER_CFLAGS = "$(inherited)"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; - PRODUCT_BUNDLE_IDENTIFIER = com.ledger.live.nightly; - PRODUCT_NAME = ledgerlivemobile; - PROVISIONING_PROFILE = ""; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OBJC_BRIDGING_HEADER = "ledgerlivemobile-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VALID_ARCHS = "$(ARCHS_STANDARD)"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Nightly; + name = Release; }; /* End XCBuildConfiguration section */ @@ -1140,7 +1041,6 @@ buildConfigurations = ( 13B07F941A680F5B00A75B9A /* Debug */, 13B07F951A680F5B00A75B9A /* Release */, - BB0B80022CAAB47600AF2B0C /* Nightly */, 76138D0A243CBC8E00264435 /* Staging */, ); defaultConfigurationIsVisible = 0; @@ -1151,7 +1051,6 @@ buildConfigurations = ( 83CBBA201A601CBA00E9B192 /* Debug */, 83CBBA211A601CBA00E9B192 /* Release */, - BB0B80012CAAB47600AF2B0C /* Nightly */, 76138D09243CBC8E00264435 /* Staging */, ); defaultConfigurationIsVisible = 0; diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Contents.json b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Contents.json deleted file mode 100644 index 10f2165abf47..000000000000 --- a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Contents.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "images" : [ - { - "filename" : "Icon-App-20x20@2x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "Icon-App-20x20@3x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "3x", - "size" : "20x20" - }, - { - "filename" : "Icon-App-29x29@2x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "Icon-App-29x29@3x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "3x", - "size" : "29x29" - }, - { - "filename" : "Icon-App-76x76@1x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "2x", - "size" : "38x38" - }, - { - "filename" : "Icon-App-57x57@2x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "3x", - "size" : "38x38" - }, - { - "filename" : "Icon-App-40x40@2x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "Icon-App-40x40@3x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "3x", - "size" : "40x40" - }, - { - "filename" : "Icon-App-60x60@2x 1.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "2x", - "size" : "60x60" - }, - { - "filename" : "Icon-App-60x60@3x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "universal", - "platform" : "ios", - "scale" : "2x", - "size" : "64x64" - }, - { - "idiom" : "universal", - "platform" : "ios", - "scale" : "3x", - "size" : "64x64" - }, - { - "idiom" : "universal", - "platform" : "ios", - "scale" : "2x", - "size" : "68x68" - }, - { - "filename" : "Icon-App-76x76@2x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "2x", - "size" : "76x76" - }, - { - "filename" : "Icon-App-83.5x83.5@2x.png", - "idiom" : "universal", - "platform" : "ios", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "filename" : "ItunesArtwork@2x.png", - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-20x20@2x.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index cfbb5d4214cac20140c00eed1052acd95addae9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 923 zcmV;M17!S(P)(hKL`d(8&METZLPNuu@S74bYdmuKWJy+KhRnP8;gLJDzY&~ zK~~x5D%oAKGjHL$xo_~so7p5>@5KiehRK{c&z>{qIg=%vbB=Ee`fn5XC;Sj>7e55s z#Sg)D@k6j(2or3l@r1D@-@VmETV2RG2O$JYOG_vgi-<;}V2put4oQ-5aBzVB{(b;} zX`0Y=9iHcb5CTdmYPA}MhljDhzhB?06$nRgYHA8QJ3AN|8L6j?Qi`FWAw;7e?^~n&=gUvUMMlm`%+At?c5>!UD5{U#Nk%*8Z-}h0eRFF(2h3tf7 zCYek&kPF@~pU>mr;h|yfPedXSVRE4eHVgR4$q8OxUqjh`1!02C-oPe!x=xS~f^xYG;G38Ma1KA+~410etsUu$H$1pVo0S@xVX5$U15Ow)vEnuy2akR%E3@9)TDGMJs6MLL~^=Xsc$o5Rh` z4N|ETR8@uV`$E1#RdKmoMmn8_ZQFQ!e8lz$X7^{yx&*Ozcfxo@IeOl)@4lk8TVcqah5#+zmBL6KNfA?o8 x7ze-ckowp$p=OLVm6EXJfd9a!k8l5V>lb>ganEr-MaBRC002ovPDHLkV1gb|ur2@q diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-20x20@3x.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index d7b9bb62013fbe5a1534eb519559d28e3a4827a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1438 zcmV;P1!4M$P)~PuonqPt9U8(WKV*H zf*{y~pkBn%Q<369Y!1yusuDkHr6!whc6U7J#wJbLrkUn_N%Dui%ub$p{?E)jUmHzI zDXAfd|5|}cqfWTmQ72sOs1vSs)CpHR>V&Hub;8w-I^k-Ep-PbFd2Cc#>$+ZW+;!b` zf2V00La5mrt=1X)6-a%h39$M_nM|5r9{_t9zT9eC=|-R7eesy z<3}Qq2(Ig9=lT#r(Ad~WS63I&Xf(T4IVhX3ui%RpFIZSu;PmO!IF7SMF(Cw|X##(Y z;KMXc4jnp_VI0Lf$$$8m5R2g6t^TG#cQ-TiCuf=vNr9^N|9R%Dq1|~x?VJ&t`sUtcq?97H7Z^nN-6O?FZ)#507^5h%^(m6AcWX3 zW^WfNN?1zC=g*&s#bP*)gRblB+_{rbD1?+!xq~VMWrQ~qKHA#an3$O0%$YMtDRCT! z^XJcV|Nebk*DdJ5RfnaDCLXqJlgVUq#tg%tp`oEtD%4(TsjMFE?(UYoy}eRODKnW& z!MUF26?_W8m(knXE4#b9bJi*c%I2%R1-q6qx&CSg@q2|k% zFANS2uG_?GZEaPhX8DBuBYNu8DW<2VdH?=>(Kf9gl2#MWWHQXn%@u9awzs#_)zy`= zR$2N=S#QK|2{rqv#lOEoh@7LHudwU7IR@}N4^7kXJa1cT=50IDGOrkrf6GFD%r`(j zarpQ7#-FdUs8DiFe48yVFB6GGn3|eG(=;X~CV2Gd5o2RxXqtwu>)G9pMx)raoh7@l zu)xa73b$|HMhJnF5+Q{03QB1lUR+#cYHEsDEXK^t470Pd7>2>IW5@XQ>lc%gleD$9 zv3vJ!UcP)uYilb94jdpD4084ARR#wKnVg*DbaZqOi^XtV7t6BPzkffeREk6*fn`}7IdX*8uU``mhk5nt6_H4U z+1XhVi3ATGJmBu#yPQ3HmY$xTf=7QVP}<@#41-UfK5_l}bu7zbWMqVvmKK(mmwEH% z4R`L`;lhOrc%Fx8nhXyQbK=Aa_U_%w(W6J{@9ziT%9ShJym=GbwmEn1TsDrYfKtN# zPD&{m9UbN8&z~$UEg^*9+O=z3zI>U74$;4Ok8}L^apvdedHeP) z{r&xPbaW7p$Jw`UA78(IB_59x3WaEHZlBUYjY!Okaw0YSvV!rIm*h(uc(g%l!K*oq*&3c)HO z;sXR@6QZJm!Jz1Q%q{LcheQ(}$(rArz9L5K*ds(vWLIR|4*$aCp{h4pKn{n4Y&IKNtyZ$xY{tiGwNfw`BqAb3QAkk~A|eU~gGps=HXAt{4gx^S%gYIK zr3+y`>U260i9{etQqt9zq<`Zc=iIp0)YOE#ySsN|F~*>28mg+QQtpuNLTE55D*FC# z`T``oud3?rBFY#u6ia2%RQ~mrNW4WQNfHuq0YOA%S;phzBN$_bVqaA-nVde(BvbgK zt)~UJ<}2aAzN49dShc_cz%9{%jH66XD61Hmhk7#AK2}7tgf!Y?RKNQyc|bIM@A;) za=Ea&x{AKOKAfDKps}$LKA#WcG#R8&;JVzFRtZ4KdY7@Tv&Vll|F3{BH;etwR@!9g&_;PH6S z(9nR2iVED`-lDs^8#OgGsIRX_b8|C@NLbq?E5}P95WwEv9$sHx(c9aLo}QkRM~c_$ zMSFWYMn^|eb{^7!P@?gz4?S7et#Wg71I{@d4u?TNmyh?u=jUgXl$3~4$v{?8zF2yDDpUM41M=)=a`n>r=Re@-(;U5E9#LE2$tX%*A002ovPDHLkV1h0{ Bh?W2V diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-29x29@3x.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-29x29@3x.png deleted file mode 100644 index f19949f6803b588bc79b049825fa999224f5bd03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2058 zcmbVNdpy%^8(%bY&a#Q{I7VfL_((ad_{}tiIiJFa7NR+h@Vrk=wqYfEK4VVtzEmrc z6wSGK^psYbNG#@%at=Am`+NU*KkxtVANPHKuKRO;?(2J9*Z2Bf40l(Yg6v^g2n3>V z&I#}UPv8G6X(@20yc&vuKwy36fU{oIlKGN2C(jVop7!+xLBE+}MWp{VqAu~8BJ*}# zT0xfn{;f(6#7rJ?6Rkiy%A6?$Xz&PpcSAo}+Y9h$qx(3`di$ubWdf@R*v6}iD_7wc zF`Vk+Q~^o=llp?0wn-T+ElnuHch9e(#Ri=2mXJ0QyLf_-#^X_!CuM%aWXcnSro+?s zdB7H~uk{x;CeV4sMZd7TMigjEbZ&oPqaAn!}B8 zJqx1d@Tl$C%D-6VCr;F*EPlDSRW}qvCX)-3@LV?<l9YYoFBv% z<$|FWRx{j>>h~I?P==h&5eQfx9~BKnTvsY_O;Zt8UtfQV%RS!PW_lp+dHWM%j{=h1 zKzh@|l_B2-r*)2=J?A|cgG(Om=zws!+@-H?)gkm#OXj}YD_QQ8f0im1(py_w@9}sq zcDL8{1S`)lA*gTESbKX33xY#fSXhfzge!_nDSEThh?bKJ7-`r1A1|n0F=!CxOVdzQ z$FAh#Wq;fuZy0qw9g3;*L$$vRLV2k)Gy(g)y?^X%CZPQ5^)=Mp5m12E(qe-OX-mgT zBy@JzI-i93Ni2V9y=rct{^)$OBM^2wFX1eC>_(*qX|8Q?w0+{|>>ymYFWL=wB@j5` z@%Y|droCggm2OMPu>tCWODESaSq_m+MW+~{tcO2+qR-96G>I1IE9MnP@l=kf$mlSs zNV9P`54^Xqv~;|@=O#v@i<8prw6?al&1`HmD8cMqv6!^FzW#E0Mdpb~ufvmo8u+E8 zzPeTZ$0%f^XJJ#!uiU{cwFBEPvf<8;a0OxIkC^I_z7{XKBcQ1(X10JQ}=;N6*d89UYj?{I#Pd5{Zbur=qw9{R|}ov{6SinM~*By_vH2 z_xGp%-W%FuYis+dF)pO{osR6nc)h~5pwv2_%|>`eq-JJj0$S~BMdjr;g?HV0g8c2y zm)qQ0Fu_eeO109(p>Y=!^Yke2l+$sHT>@Z^rV7s&k3>FO)6Ex3;AnY4&k8qpGh;qC z$W&ETiLnAxc?1$E{w}9v&t=4G^zyKaLfhF0oEgoPJlHEsE{g z`Z=4=;bgyljh9zYAkBY%x|G&Rj*H7Cse+w%m=}FmGA|)m!h7Q$7_&pATGIMgy0`_vw$k}DuQ2&K}i&MP2JSOD9KBS6HoW`_tU`e_g_D|k#2_yZc%l;tDKRMAy{1oo40wKhjY$%&dXW;|Nl;=x2KD&l$sO(0FXtwA}$D{ z_umGT5PAw|y$S%3j6fkAFU3DyDhzbJcpb`bpTW)3THOl@dV{ngd^gXlrlNclh#(b@ zhb6h{<+Ct_P}M*pC{W-Lcuxle0_PExP-94C9}g+F=c<0^=fF=)im;!o+kYaT@wR_P z*lw&rXNosc*`y^qqZ!UP@!9ywUv^3v86jp79qGrpp?vT|C5(gTRS|2pxS-?zND!wv zzo5}{7He|hBq~iEm~ueLD1m29HX(fO!JkBFrnOdmAVq?iEM0^TA~DhS*_lKMM+F(b zPvvg;-T?tJuzwr)=%ws$%ceT0Uptzsm73v=MyFq7c+O!>#7#31Fh>L;xxE+wN#5Gp z0)cW$;RzW3mYN!)vZjONl#jmM+)Zm^d;1f0`qS?osKRx1&qv83kx0P9*zC*IOeVLl zukXdJ#wHhM=UT#yr(kC0(?DQ1WlmH#OSBVmxh6=K%I6Kz^t)CQS|e+^dV0jM`eot~ zy;##$(mz7k1#PgOJ)#3W=oCzUV-uD={FMJ#hX#ZLowD5Cn9&)Pm0MwO z#L(@#yX|9cW~5oeHU|L%$;ip6Q4I0n8wXxSWk)y3Cc*+tG4nb3opSfr<$)%}g@uI= zlQDg(tHz-6=wEv+{YQ8_o*>4G+17Rzrym~jipqtYgXPqkS9u{^wG?R`pJ~tQ!Ee9S zvVz@`M4q5nYS#D;PSw9!F}O9F^+itxAqXa|nfTF@@u-sOZXD=<%2n?&b)qXwt-Yj| z9jmwgKsF(h$=&{zyLgg**F&w$#Dh8GKrY@~suOa1arnyYp0M-P;aUwOzRJ$n_)hjw z%ka<5UkXl@+}_y#YlWYC(oN>XbpmG;@URYm$2E^+PxGmaYnr?9m~|m7DF`bzbtg6y zqpnTE=~*nG4qMGrmaZpbY>Ew)7Ea$qMy6(!LdI$>kGfHA1KR6Nje^_UGau~l@2~yX zj}yD=nDk>0O}+A{-e_g4l{Y&JhhRgwV!u+Wh=)&@&0j9v&XRbSEpqcNqwFR;WfVFL}{a?#~%=!&nX+rmZc> zVwF}^$!cn9#;*&G*d3Qw%oL*;1ykbfD3;g9LSkbT>E5pP$DiisOLjtH34|P1En^cC zx{(^$L|IjJ`hAWj9*@7nn{@E-$fjq%Ahs9{Bo=6ZA58vH6Rdy)5sAc?gc-T1HLFlI z#M#BgM>v^Kg65}Bm$KPDRG9E~CKeXrezdJv9PXq)26JQSs|7qOt=K+gYVk{b{MNk6 z_R@%CepfliCLD{hkp{>ev$=O|q)B9FiGS^D!x8EUd*{eV9bG-W$(uGe7KRLN#>JJ@ z)hSBKLAf0rVurzOT0<= zEl2K!fxB}KF9y}VdZi}3`pm{;f0@hd@^a@;6=tBx!q^zlK2BX;BJ^Yb_o3}dHWOLCAwoipfb=3FD@7ob00N;45u^pANFV~j0|6;&5P?us zxDYa->|=7AA|mYZ99TLwqbuPyhygL&gh zIAbGFCV$2w_Wvjld)~jmBNu0@ROLyOWem}2*$YaTM+!7FUX?{SHN$D+GNQ3cjsgo+ zmSc$cYuDyRA36*pMDh-{H8eEZ@azEbkq2i!b5^!jnY-J}sCnmnJ>K^ydwct~gjKI~ z->h_=!454b^l@Y3X^_BCczC!H6w2&WbsFO|x3s|2uYMdKC-xi%i<5c!9yB!2bcG?= z;EA{qn3KA?`j}`*aWOYd_Y380yiX2}Y3t%bLajI|Rbik691}yV>*+bcFh4rD^I-)K z2|NWg*{LA;%Q2&1qA%prE%r5EYn))UDs^z);rw3He6Zb6xhyrf0K3S4gT8?8c-&Gn8 zLM)w~ogGWW;Oro&B1m*dZEtVy?V1`=spjPX37O-&Ut(3s!f@H&mXK-mNbFK8`9BorkK)tr3( z%)DCT@`80)G~q*W^;c-sY!H0PThhrM4qiB6GScz+xG$cov9U3Rj*|NVE#jy64QQ`) zc>4c9C&JuQQcMMfgj_FO$~rtu1qDzZ#%_*JOytzpL#1S7>Z#O|pyG}|mkx33wt(OZ z|6M>}awP&hGXJI>E?3$1QZlj=>=m7qwAYM_msr;}gGQ#x6butuefoIE5cAXgFc=Ky z9s{YS^7M*$!C_8wU!R-~bvMAm z`@}6ol5{~d!Lm*~f|-qD3cL#R{MB(nrTAWDS#D*$fYPTFGLG3PVpgLwx0-b<<3%~X z!CqgSf40QMEYG-QX*KJ}@9vX=@h5hI8TM`YlcVN6kAP$aa9C1y|KWqI<10u}z;N5! zuhc^L;gQ=M^|geb5o7FG0V|ZNf=J4d?t+Fy1VKK2|FUlpD zqoV}BG>-IKG^C}aW$F9(6OyU*NMmE;5f+PRs|@#_?4=~f;+WPB4njsoMk)oD@x=*f z7l|18oZMU>7i-maTcZv-;6;{ki5f&$0;BTXjb88H6a|AT$aZDeBCKZ+(*RXy zNxmwvSmm3%dX^iVxW+pDwnI%K?>3J45~VtZ0CJqC?bB;jh8>yeOB4V--}})7ys99h zRB9q+p-L>Y4WgH#boQ)tz6@+gXW)SFB!uy0ywPp?1(mUwNm<4(RD=wVjAWc~C`->( zxe~T~_-=g%;HmW+WcI`gt4GqiEAkb|{BX%f|1&dho|d0`+x=-iWtl&RrlzAqUz_TS z+1t7rpO8S%`6B*e|h zNdy}lJUab6xv`_87&N>-aO7-7QdBffSUFYSNE)tm$kHCv9>j=ydU_($4o#AhlU?22 zZ$5pBST9I%8pA+%%d|WRz?V(%8=!)Mf^Iw;I>}@fm6RN#>Go?(b>ePp4Dv0lt-W?J z=kUCSP_Fb4?%g}N)LRJi?wtMD;*H;#O4NhHxuHYJ>(BW>p`oE55W>KK8{}MLW*Rc{ zHXaY)vP2aOPrh(R53l|qLNT8a!`Z;BZ3>;HUQ**QM zZJaj)fB+o1_#1=42cD}*J7kaM`$oNjSn5KoA|tiSbo>fise6J}S->@k3^XYGV>1_6 zVBeQ5c^Zv(Bt>GWbfv>(&u%44GS5D4S$!6rk` z!~`gxFD-qs4u?f)Uvx@;s&+sLxk0mok7m>n$tHObyy z5E6)AZt0rc*^gQIq_@jS?dNPWK`-ylDw4WUG@8a}Cypoc9Ee1UNtrJ&jNV#uMHXga zbeDV#k;q)9N`pC?nEA`70Zw*{cUOITJD5*Yeq)G4Boa~T<08rH)21M_t1DRBk4j{* zuH4xB-q5Bcw6i|L2h#HH6vkq)yUVQu8w-_D0pCX-M$6lT4q7C9WsR0rROHRmN%y}gk5;9oz#ed><6-?m&!S1QGTN>bTudALHjEEF1~qzPtO zdu&nf5Zkl(plV^>Dz1EIRV;cXnj!h!3dr*p|IwcQ$FNs*#5IaV_ar_@G6sfIkllG_ JD~bh%@NXGPC>{U+ diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-57x57@2x.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-57x57@2x.png deleted file mode 100644 index 47acd810b7fc7eeb185b191cca36de66d660fc02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1319 zcmeAS@N?(olHy`uVBq!ia0vp^MIg)pBp6n0yR{HVDI|LY`7$t6sWC7#v@kII0tz*} zU|=XUU|@Kaz`$TNgMmT3V9u^U8=wSJlDE4H!~gdFGy8!&_7YEDSN0cNOq`OeMh9DK z85mf&JzX3_GVZ;d8JiOlDscRN@%wkv>U2Z8bD}ddc8h39X|tL(UHy=#qOp~KiQ%uN zz&{>6id{#KBwS&a%aXswE_AtrS0lm0q;W!<#N~{PHJ8}5f?TdiZTDTldv%xhw%hOS z8Sir_UoU_2=Iz;SH;nziKYsJ)-5E>c=Vx>bpGEaps%I^6!$iB3=Dl%Nsy%roX!eUf z>-4-jiIm&c?`L_LPq_c?-{r8ov)8X-Vq}n*-@4{Z_?8W4MVE;7{uED9+WRs)-%-s- zP*r=k9ivdz#nsuDR&kh`6z{Axy(DMw`&KYhsgOzy@9h7NeGO(*9=GER+Lk2BvRA52 zNOLk9=T0LP^(Ea!#Y&!UjBk1{UfQH{b63MAo$^OTFCXt~;MtjS`b$uw{-*VHQ&sv6 zrUkt@YZuh;XZZ#Tg@3*-H=n;h=Ci6segAGfzowLu`|B9X?pc*J^~|#{vFT3RDy&jz zb4*9=^RqK{QY$BZmVRjve(yxNpHY*u_Sv1=CQWh&#-Xb2p|jQ7Ji<=;b298$RoFLS z>G}AbcJkY&Sbw~@=f~-g2NB!*qnToDt;^<3uKj=DoUHA-2+Nv93tZb|-genftDSPd z>#|9!ao&t&3ho?J3{|c!t$Fh2hUXHGz=!YDE=>@9XOy}~#`>=RHZ`AJyh8shH*;RL ze=BxrM#ko?v*K-c_mRGXpxZ3HOyy(iz>yz0hpNZdp=l8$Y%4g05 zbY8d@nD*d%x8c79r7GOymx>yy9$h zT&nWy^!tBT95U#c+IYyms%`ppo@h+ly{yTSAK1}ypS^1B)`_j@;|4)4U(HJjWnclz6+;!f~67$`c`&k*nZqK&f?Q_8B z(ERnkcbu*770kE%^yTI4`LRE~MZ5kfIQcQ;`_^Mjo%Kf@gZAv!5ixWWnRzQ<@1sDr zEU9eiPkThuQm3Y`+Vk+u)8Nx`Q_fBjS-I*y2QUtk8G8@!;yRFEU}((Pv+Tvig}vS` zuft;A2sw+l;htvP}5@$Zhh1yxPsrE`;+- zcJVauYFFHzcRk5Yukz9Mt6Mi+Ydmu*b*-a-)_2}3`nL+Ues2v;RloWDN`>aT`seGq zE*#x-D5GIj*LG1(*<(9T?c8;CZ~Cm}zuVe{w=*{C1NdWz!(#|KTV0Gklj2YdX?y?E)+*R7+eV zN>UO_QmvAUQh^kMk%5tkuAzahfl-KorInGfm8rS5fq|8Q0eA6baTE=?`6-!cm1r6a zjI4~!AR5-r*qsj4paHj`Br`X)xFj*R08NjPsg;2#M9=>y)jFUa22WQ%mvv4FO#m+| BPlx~j diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-60x60@2x 1.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-60x60@2x 1.png deleted file mode 100644 index c697f9b0f407daac6f56ac36b43b26ded7348996..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2755 zcmcImXH?VK5)a7ITWCg#Xh3=>Awoipfb=3FD@7ob00N;45u^pANFV~j0|6;&5P?us zxDYa->|=7AA|mYZ99TLwqbuPyhygL&gh zIAbGFCV$2w_Wvjld)~jmBNu0@ROLyOWem}2*$YaTM+!7FUX?{SHN$D+GNQ3cjsgo+ zmSc$cYuDyRA36*pMDh-{H8eEZ@azEbkq2i!b5^!jnY-J}sCnmnJ>K^ydwct~gjKI~ z->h_=!454b^l@Y3X^_BCczC!H6w2&WbsFO|x3s|2uYMdKC-xi%i<5c!9yB!2bcG?= z;EA{qn3KA?`j}`*aWOYd_Y380yiX2}Y3t%bLajI|Rbik691}yV>*+bcFh4rD^I-)K z2|NWg*{LA;%Q2&1qA%prE%r5EYn))UDs^z);rw3He6Zb6xhyrf0K3S4gT8?8c-&Gn8 zLM)w~ogGWW;Oro&B1m*dZEtVy?V1`=spjPX37O-&Ut(3s!f@H&mXK-mNbFK8`9BorkK)tr3( z%)DCT@`80)G~q*W^;c-sY!H0PThhrM4qiB6GScz+xG$cov9U3Rj*|NVE#jy64QQ`) zc>4c9C&JuQQcMMfgj_FO$~rtu1qDzZ#%_*JOytzpL#1S7>Z#O|pyG}|mkx33wt(OZ z|6M>}awP&hGXJI>E?3$1QZlj=>=m7qwAYM_msr;}gGQ#x6butuefoIE5cAXgFc=Ky z9s{YS^7M*$!C_8wU!R-~bvMAm z`@}6ol5{~d!Lm*~f|-qD3cL#R{MB(nrTAWDS#D*$fYPTFGLG3PVpgLwx0-b<<3%~X z!CqgSf40QMEYG-QX*KJ}@9vX=@h5hI8TM`YlcVN6kAP$aa9C1y|KWqI<10u}z;N5! zuhc^L;gQ=M^|geb5o7FG0V|ZNf=J4d?t+Fy1VKK2|FUlpD zqoV}BG>-IKG^C}aW$F9(6OyU*NMmE;5f+PRs|@#_?4=~f;+WPB4njsoMk)oD@x=*f z7l|18oZMU>7i-maTcZv-;6;{ki5f&$0;BTXjb88H6a|AT$aZDeBCKZ+(*RXy zNxmwvSmm3%dX^iVxW+pDwnI%K?>3J45~VtZ0CJqC?bB;jh8>yeOB4V--}})7ys99h zRB9q+p-L>Y4WgH#boQ)tz6@+gXW)SFB!uy0ywPp?1(mUwNm<4(RD=wVjAWc~C`->( zxe~T~_-=g%;HmW+WcI`gt4GqiEAkb|{BX%f|1&dho|d0`+x=-iWtl&RrlzAqUz_TS z+1t7rpO8S%`6B*e|h zNdy}lJUab6xv`_87&N>-aO7-7QdBffSUFYSNE)tm$kHCv9>j=ydU_($4o#AhlU?22 zZ$5pBST9I%8pA+%%d|WRz?V(%8=!)Mf^Iw;I>}@fm6RN#>Go?(b>ePp4Dv0lt-W?J z=kUCSP_Fb4?%g}N)LRJi?wtMD;*H;#O4NhHxuHYJ>(BW>p`oE55W>KK8{}MLW*Rc{ zHXaY)vP2aOPrh(R53l|qLNT8a!`Z;BZ3>;HUQ**QM zZJaj)fB+o1_#1=42cD}*J7kaM`$oNjSn5KoA|tiSbo>fise6J}S->@k3^XYGV>1_6 zVBeQ5c^Zv(Bt>GWbfv>(&u%44GS5D4S$!6rk` z!~`gxFD-qs4u?f)Uvx@;s&+sLxk0mok7m>n$tHObyy z5E6)AZt0rc*^gQIq_@jS?dNPWK`-ylDw4WUG@8a}Cypoc9Ee1UNtrJ&jNV#uMHXga zbeDV#k;q)9N`pC?nEA`70Zw*{cUOITJD5*Yeq)G4Boa~T<08rH)21M_t1DRBk4j{* zuH4xB-q5Bcw6i|L2h#HH6vkq)yUVQu8w-_D0pCX-M$6lT4q7C9WsR0rROHRmN%y}gk5;9oz#ed><6-?m&!S1QGTN>bTudALHjEEF1~qzPtO zdu&nf5Zkl(plV^>Dz1EIRV;cXnj!h!3dr*p|IwcQ$FNs*#5IaV_ar_@G6sfIkllG_ JD~bh%@NXGPC>{U+ diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-60x60@3x.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index 7b7f165cbefee1ac3b72c6867551e972af94c35f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4072 zcmdT{X*g8>-#!?OY@srwY)SoO%P#v8vP4-z_B6)6%f5t0B2<>KG^8=s5gLrGh{+Nr zyRj>~A!`W#)AR1RuIG8K>$(1~{x8ls*XPAK=llKK_vgOvZ-TLr4)YoAGXMZE>*;FU z1D`d2FDM;&SN=wK698CodRpqHPjc2Lt=-R=!RR+ndyHyp^b^l3{e!CNz5DtSGDuhI=sc+<8;e0(S8fG~~lI&f+^I#u5*% zm9OJ-yBBG49BN-vulrx04r_TtBYF$|_}OWmg4ALTR}vDcA(3xKVLscc&+hX1ImD_` zAo@a?E}B;4KdE$lNMVK$Mnjq!vtu=!J z0}Jx=`NdYdy1F!6UH?HYrMbC&G;nhh;l6m09>M7Jb78@8w9>)H(qe*53h%+eW)dE* zOoi-ro9{@{(t2b$EaZi=dJGmmW+J~wE;?D|`i^41E$qcB^O+s^&oK5;j%hK$+5dwd zl`J(Vy}9-mX(Cx~_h`s@8j4cy^#YC#i;rrB2c(_$XcwvOtYPd)SzLUVE?pX}hOkaqe5yoUmo}-5cYrDF<)M7o}Y3m#@76NHo>FN7rV58+US@#Mx0F!i#y(Oyu zC1bFkrm*6iLAES&L(m2tFyYsyj4ds__;^`dkXa z_m&NRh4GrJOYoI;%ZRWmv`8*8J^_hsZq5Vha0lCq9Bir1mKlEAb9cgr!IHR^cz75h zpxA(ucOYX;gGhIEb-hn_N|(Yv9WPV6(=g|R*JOtrya7>ORbxE;-`f;7`5<{aKVrga z#&MaTGBYJ7urjh!-i+<*YLXH{c~R%4q(~HciJ}pxMKY#q`+lwJky@#h>(SnN-4Uf> zRz4Z-#5KsYF;r?HsH)1FJpXVj)9qtVZ|<#Mt&HNIB$)bKT?Jw)R!2WL(F06fBm~xh z*Cn7%Ib`RW%Hh&GbxY#+_xh=C-%jH+8>|*^Ehnu+-pI9G%q~H!ca+|Wt4x#NL59*j zr4bW>F||rC)f$M8;nx!-XkO4vZmXss#SZ8sI19SA3le7JS#ET1g&(do8Fq zpH?KSrKC0Ef96+Q0P&7jfp~)*R!XbMq6xRycWkq-rs&Xk?WvSqP}vTAEe^91)v^NuW?XT~P7h!~|Iax&{WZ4iCpG62-)?Utf-~yCSn=G<*0|)c$zeCtk3kd^7k3`lV=#2>?d^4^Cr1wCz#d4{@US`0tw1IZ4-X(} zZ!eHXB@705&wWYo>uNS8?+q5;_Y77R#@((Z$rx$|1LcAmz#*e{x)|{4hrGevr50daOmpmYwGJWri2rCP_W( z4U2cMAH#ee({%9rM{97j3q>e?OComrn64wC>}YzIYP^7$pRV43}Hew@LJ7 z^)1S?q@|^KZ_cQ{e*GFH+QGX?`+s+_y~r=}u${f?1eb5k!tAt@--bC8}&M{Cvn0hd5C{(ZQL z^I7WWmzI&qud9RchHX+&M+5P!yp(h*z|hc8-uDNz`EW&KjaHd3Jt{>$HnIR4S? zSC3SmJ*W{NIe@74L{6vfbkW~)iQ*E$TaWg?JLu@po0mO^HogWi9N3(F#!D?94p~}S z`n2#Zn+*!toO#OX*pn$K=@HudJF<1#*ke-f)zy3gfg7mwnpP>Z`q-sBmU!EwmYp$9 zV-)Xk5o{$7@$+_{>dUcexS)^_ty9N~&)Hth2@?|&wyeKUm{}0YjvNI)@8jK(d9Yu% zO-$H$i0Yb}G`_yRl`bTKAokTly;l-Jl!rapa;$eyese@FIY&sOV*0 z2U!S8Ae4;%@TfEG^F)$nvKLLce?Wjk`}6Y;>b&`Z8PL%`1x<%PbE~LdXzT{XO7-M- zThq9N--5v?o|))lkGhJ49vmD{Lf@Sl7#aq&O$`mvlJTi;-p~RR52o?)@rhEw+}vCW zXJ=Jerhb@KEJ)rMWM$~SCup6Fz~)rwhWdcCL9XI?aOC+4_(K_`aR(~>D=QtVxRzu$ zT+;<`w&Al{1=Bc`B59;Pm8pzd22BwfiNm&0%nGFbY`-GP`lBO9beRbmkKj zY-x~l@l!w*3lwtss$P;^%(Bt)^KwA3kt z<6Xvv=);n%d_{{vGuAeV%HZwC?qgN7Ad-Scxr%Z260quH48n0`usBoFi4K*W{R?Cl zh>`o)O*rdFc9ki%e)m-LC(1@BGT5A zCG`u$y0z-Ye(XIDPC#j=U(+)f9M()ZuPO8d+84V$^dK2D$sUvpW4d#_g=9#c%NRZ> zCWhM7)O6-}e_96|e}5bB{yemMg7i*j9@G{WclR$bw2Xf@0Rq93Zwv)j1Q@Y;-uubH z*71_}B{)u8#l^**L3LI^wzikIwzpGLQ)lTa!Kr+w^Ri=aolF9$O!V>I9kO@_#(Pj5 zV5$*HK;7hQ&{VK62>dvi>@yv{&wu?oL%Orgmc)pNZP=k##SJj`Y%1fL4@=1UwICk* z`xpc}n~9|*7Xo!#Zqk21`;DA&ww%{ho004M{Ly=BW13ngOI&N67KSV{a}<6~W#fd9 z9CWc}n2*l~@}8);c+j&f?)YfKY}whPjg}zd3#{bGqIKXcerQs9)zT=sgbhy3sZF=^ejATetuHy92}CK6Y`H9 zJpw+VFCUt{YV+YK#9#y@B}w}nkwX16gMJGM1!C*%)t5q>J$`X8)X-yzdbuc3c3gl+ pL`Bx$bl?7LBme^cH_x_Rr)R{gY{H*4h=3<}Ku_C9t3ty*=3m}mywU&w diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-76x76@1x.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-76x76@1x.png deleted file mode 100644 index 32942d2be4722674d8c7f6459a5554ab19a2f2e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1730 zcmbuAdpy(oAIHBxX=$0|xXUGe4y&UwmxFRiCKJ+fnH3I+#~hnT*(67q%S2cl#E!D{ zbD5tN(zcN6a@u71ncrMSM`E&OrsERPS%011|G&@U^?ASld0!sy$NTa8eDcnn^@e~A z!2ke2e2|FqO7HjWs)3Ytpd9rB0D$s*5FSB9s;tr<85FKR@O3?!ifWuWuGOcmJAd+_ z?piiXczObPz;WV?UczCJIBQpvb(KG-KHIBi|I^lPi-v=JULK`hcuNqRq>C4#_|5kf zzqrV0>l%yFg6fZ9vbirOjhM*-jzrQaNF7QpLLgLoYALKOm7O26Y)=0_3aY-#diwMr z1$nUKRd>t3uXoX5V84<6ri-jMLZRx2eGLo@ymxa?TT`bXE!L-2i(?E-iuMEt2NO4z z%~$Z;v0SKW@vF-_zqd&|-+eZB zG}7pke2ThxlZw`BtZ!`ew7uUi6l$~F*wax6)jpd@jIK35(^>+(f6v0>-lGng_GZ@v z{y+|DIW0ql*^9%Wva@t(#e;3>%Q^AK7>s!pwifJ;O7L77G!dVklJet~;`tu2*l1oN z;jHxphXw>dT}+?=ZUZ@H(k}BYKe|2D`u?jX6Fz8D;O~B~Aqbp@P#MRqv9|2| zwQ{1qtbMMEnk2nAat()59~~X7sHgyLb>tI8C$lzA97t+<63rZpFmxp@16%9z+!)L`?cHTDH8nN=(9zL3NW*uHq!c`% z(af=xIZI0k3(qzFK)-909$$LfRdnYLxT2OLBbbWX9!2RFTf_x^ZxSwQX0taQ5WNtv zLx&E9_CACAYa#lB8KF1rdL5b;q|(0bZUDeBuHgon+uW<1p#TU3dLt6C+VZCXCLt7q zF|haV6AFbn4%kx9&i`Zl^^V@6;MsZB4uOglotkGtZck4~P~FmR zOm*rUi|9CsMvH2nfrCOqt{#APW5$N*-ZKi~6XltS)jrYw6Es|;*xp))IMRdAXgY(j zSQM7#hIq##*XP2`v*7Q@HvEU7ce7^@0A`q=Lf2O!7nNCS&DKe)%zlY|>FbhjJoTPut4M zO0g!J6ej_NA0e%KxR5>@GP%CFnF73-9Vp5pW3gDWhVgMkk%=o!nfW+v=|%b$mPjOy zHh+=`v^0lbS2;G+)Z8YMt@-Bs79wQE-KoWXh3JCCGKYJ%YLc&D^AYjJ|(8DC$xt!?Hc>k7TKRZBrM8YnXLwm0OK zSOq*}9JaKwLZQ*Qg@qaxB|gfQMox*q(eiz651=FxN#DSrMQE@XtIJd-lP%xqwDB*I-uRDZ6ra!M;QhWeHa6z=_NtVX zmn+|tMX6LXpS%3$hd`H%9V0H6%Q5VV(*OOkE%IOIk(MRof!U4EpR8hIV-x2G4J^Lf zD{d!1DaiMtTTb%p*AbyGZ6##Dt%->X{g>dSWo5nc^=Lu0E1Re==kfW9rKuA_ktjMY zZf{TI{&s>qhrv+GKBcCrf{lyo$=;`D1Bc&US-HxdN}#%=ey5zq!NDP{@wqd#0%LpM zFX5%Ve+ik~GHxByiaAp^A{-k-qM2bemu-ENaoYJ@Sk>$EmL+E9v}?zItJ<6KWy8bQ z*SGX+-G`C7fS`*PeF^gE@A)lA(eZ5VdGL0iMrtw2dhX=&+u zS3zxK<32k(y9K$N@JJWrRQlnu@d7Vex{a4POVfu4CRb7rsRKj*jltx^RVuj)w6*4| sXgWU+o6zjtu|%ZiYMK@NuP7NnxM0Wi*QH(!<=+JOc%4NsPeo?_1w?sHw*UYD diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-76x76@2x.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-76x76@2x.png deleted file mode 100644 index 724b074d84a0be6cf555b850d1b5ccc07417ef88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3584 zcmd5c`5T(jb2@sGH zkkBJ#OXwvaU?>U-(nLV|Kc2he)ww(uGxL09zUN)E;7l{bwLZU^ifqO+UmPzt{qQwx)Yh6_xZpJd0@P+Q82YM9=krMab>ocmB8D>0i zufJ_Ki4Jxf*p4h!`PS+0LB_3pJ3LA^xv3ep1U(+i&Q@_7kU=0&#=L670;qqJ8M})X zqLs?jQO0tdu#Ct5zlL=PYgA1<_tP!Bl)gniA!B-@*eQqCWIoeTDchSC%Px^mkR$oh zQ!=E@I_EL%@FdwxuNT{sPN@ZN-VECfB36FPv7Ly5r#?`3!9nr5M1jMp(SIZN`H7Nq%0 z^I8Vjw$ZuT=;E0>z8{-~92^|{WaZPm#o+)O6T?uTXcJLyw3uZ0xDY(cc!i90G=BTC za|Ww(9{wNy;wMFHSpLE6*P>2C;&& ziKombPE)U*`l_Rpvbb6ZgvZ6jm+I>3X8d;%NTef-#mLC0+HcVy%ydkihxJdE?E-5G zd6!MI5^mbQ>){OB*w;hiU zc7SjDn^ivc)g2wWP$(1tuvjdwy%0P2*xaK>F~aCpUY4Em-M5ut6GqY>D%BXzdsEk@lKftV)wTmU9YT3T`v6CXM> zyzub!lmvc^-7(|g8LqIcWdkDiKW8Ek{2U24*>szT8N}6#@#iHaC76b=+j zpULW&#Ki9I?whngWhjM^!5y0-rft;U-~VuHL0=gf7tgI4brQ~?gX0u^ET@vr-Fa{^ zuIMVO%HQ>_Zf>vJ+Qb#xj+C34nn3oW>z$XBg@lBF=!nDJd3w}o*T{cvLGI?gRQrC^ zuQk?mR{>beVDQ3Yg;ZR1*c^|w{B89uHbJBdNBi6EK0aOFrfMPWc(vihEgg$zr5pJ4 zH4I)Aa)+O}iTIjC63kR^=mZIzip8>=Q^&MxAhMnI`rF6H$2;aRI!GipkE#jfxx6*z zPL^m?>+7dN84x^q_Ze1m*rY69N zV~o)OG8OM*dluhJh_f-l;c!6m#=U!DfX$si76u3t14KQ?)a&nRmFc{=Y^pZ>v;X|4 z+4Y2;#g2|R*5R2MXv4JVwx)o9z)dr=9?(NsL2%>N_Z?4;_GRSdDPTFVFgK3|&8?uh z`JBGKK1@`!e(4eD{8g<7a*v-pdGqk=ZLOnCiaKTvIQhBA* zJRbivJDVMViHRAwxJZGo_$^U|09px$O>6j74i1i?4<9@$dj`@kp^6I%B>4IH=W>ES zLI71&)%=o@9=w{yNWB-0n~iBMh&)WA;g)m5I3pq=O3TVRhz?|PYirgvdg_xu6dyP{ zUnIyo@2$_Ohkm~(EG%3dvh^S-DG5cvo^5>imDj4m#<8DfXJv(z&I{-5>guwx3BM*z zAP_L0-wS}|3Bbh9hJlgQH8fDZJ}fLQX3+^3yJ%SYF6X2R7s}8Uux!epqu9I|8yI`^ zj?au6Ae5G#mn=-Zellr?O)M=cis#oa7#J`;n2Y0L13)?JKX3D*DKO~B%F3#0X&Hm` zWr`NOZ0B6*77~)RG>~%(_|ltp0fDGN}tx94hyJEN62au(i!;ZeXML#-8wk}w5AM5p}ZnpefcmhO& z2=6vxAllm6Hq|JI(XCsRrgr38AEG_*EDp3cuKmJVr$^hcbLZZj93Mhv&cRDYJ?eGV z*4E6C<0~WXzP>m|n38miie3Pj$eh_1IJ(iV3H6$&h#?Tv|M?+v?er)BXuqY{!ry>1 zD2^*)x2bs18IIY>FuT^#9J&qH&=9Uqni}VZvb^yem*eKq(9o#QCPPtV!NyUAd%kU$yvM{JYB^@k@aA@<%!K#dcLihSCdHz>4jQEL4d$;idke30V2aNEo zj3%#X+Vu-wkd|fzb$O*lrB`dl5-k5926r^NJC5rb8z3Vm7wZV?egD1_tVjt2g4`>0 zKL#-En74OrYMj}jl=h~;Rj_yMoQJy(=AO+P#IcHnocBCVNJwZ5-&d}wt%U$4CMIBG z)pmNKiN)b~pe*y-`$M1(laiq2(?y`cg@%TH+1Tg-jrn!)fHBA3ZXq&PbC&X?xeB(w zVGg$Vh^prA9FY75dZgw`nA>2k6po?`8m_9k`b~uMtbJ1b3AxOv=*%Aq=0-*wpO=?M zzkG4GbjZ;4ucI_Zif>s-&n%TPVzQu!-{U@c5O)+|VT<>Z_~UDH|!xBCcnCu2!`b*4FZY2umv~_0eeb-S>HDbrcW! z3WwFM_;n!)Go~HQ8*1NkRF$Um?dtdLP-U+2C9tnbUy@5VG5f88|DT3C*SAmK?3Vo< RLkIut07HFK1n~wc_P@7f)q?;4 diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index 1ce79eb4e0b942a136126e138afa76c4c8e65d9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3955 zcmd6qX*^W#`^S$-86q>u(lnN&MOo%MvhPy%K}y-m&d@NH?E4ZD3MsN?ONESK#!ixD zvXm?tOM|h-*q4ak>Hqlqzw_^SBf|E zExY;pI))s^1Uwr1c7UBv%@zpBDKPU<4D=}q+WwL*<<$cf7Dg2b+11_&tEj-sr4!^b z_05o&BC!(}O?YBbMB`gKQ`>0vU6XjUgUA2gYX{6Wn_s6#rl|ORDAUDGwrv6d5ZNwL*N9OsCJzp1XLl{m+xtWXksDW?p5bSJ$8+ zH2mms9w8Xi&vc9U`gBhQV`3{eG#MJIF zs#QK*%>l&T$WOU^5s~n*8b?wp7jY+Hh-}60|KV>}fA~;ZAn?~eh6nxZtziykZ{EN6 z&N1Bh0~nc^#aY$)v|R1h3H6`$k(QRGeJ?RVu}8XM20E>FO$?QzhwcU9bXBH&TFp#N z9}x&>!=dw1Qe4HDthIe1y`v-1CI}=l%E9b|*zuzIZbwXY>6~1mQ#VJARb*sjc51OO zt`*Do=!|apM|rb*0#K$_YN3UqRC=SuXGf)fQ3RG7`zkJ0}851 z-imU3l#bf##Y;08UJ;kD%!P?s9hYgKR_DKZHXfPwB{wz-aC39NdGn@uHYfDN&*k~* z+J2&o7v}tL_c@%GmsG~9S4_Y=(^AjS_WE{OX0FjC=A2#@!1wx{0q;pX=INB&vRkI> zmy$Nz|KAhuk}tG)Ablf7EZ`dC7b6v`G(1KF#TSLmFi+sV!+LnzJp~3){jt{3s7(k4Lh!RdBGfge4iZym!zs_WQkAvBOmC_tY~aVmOBeYmq?bBdeWrZf5cB?*boyX&(|&HWYuhP*fz4294)FhEz~ zjA`vB%lKmCkT(nsllCl&CG%xyr!>g2Dpk0>GI{jYZjhT{*p!?(KdgIaEC4NE;kw3L zUfb{gstOF{_`k4+I6sTT3P<*S*4xU*IA+x=c%38Z#Ym~!eU-_~Gt#bUaZ2IvMb}v6 z8Fi$r-74rg%+#{i+8|AY#A}O8CjLohZ$(*~@m#)g#n{wThK8oEh3>DiAkLhz$(Si{ zRWfrlG2sFXV#52_ov1Q!comWO)P|3_Ie6o@(@>d}re>j4W8h+u_QhlG>-7-Q5jYi|^R`@9yq)batlWVbg2D!NGICeq|CixiqX>B920t zA=%HBv;I%{rgfVoZe9jk2MhOPq(8r=z&OHOF-550Mn`?ce*yQmw>e$~&l>FQHjTf< z#(lV<(v;O(KX%a98C31I{5Ax`->bT)znJ0W>F4*fQihiAMMFfG`@Q`w$y?I0T2j;(XCriBO~SjNk#l}=){j7aascY z%+b-&JG2-5a`>bFrGkUFFqBg*+-?umz7C?RJU6k zEM5Ncsk1a4FZX18{NBdqCKC`45YX4(AKBB>le&g%564kOE6-36Mk+qOzWF2)@2VdX z7^SC_*N6!3Z&BTc2@b~>78X!)a&u)S_wNe^1O~!S#F%sm%pd;2@S4Z;Up0W9MY)eF z**iH+4c!lI+ha6w=JdX}ncvy@VY<*!(dSn)qvbh_ULD7MU9SN8ZSiQRat=j zkfuF%VGSYJUon)|5OHTTpx)lzKZh&q<9DY0#~FQr}6&Zr4%n42S_V9suCpPLR3;v*s;scC5+QS6pAo=26Hl~D#< z^78UzJPkr15b%tK?V_li$+q~vpG!HNh-k^JlK?<3M{A2j5Q$g6WGQa<9C|RA-L-<> zs3-pTQR&3Vl>6=5OH>`DCvFCfVr}Rv_ z?~HrBdbnCMKPlz;^XnkQ_;267{cM6!tQ@#ybQMv!vEdC-i{TV3l6D;|c(Um~U-+Vf zAZAW<{`$r)YioH-Z(v}6Icz+Tq5QU_Bu`C9t*WX@l*)Y~ri4s>so!6~sj?$P_f_~B zK$7@T&C!2#b-p-9n2-H+X(`9%=B8Vzd@}OJS!#k{$j;d<#zc~zQsV7*rZ(+~{C+d( zPDUmskxd7`kH=|#RK`E+j+UJW;^OD$A0}eC9zT8zunXp9$$3ED-6_9eYz&WuhBOJ% z>GVsIlI{Du>tmkZ`ui*V*Bw7id1Na2pR}^FTE_pZbn1OwRmEL|wVnE$0BqDI_DhdV zB$lAeyRl|GaQM{Tmpr`OFNr$a zHa3VF2M33}84nmL98mC_hRP>i)6@jZX3uvFG-6`x1|L=)!O`TFzrGs;t_jMU4iw(L zeG32&A3h}eEFnNyxS3}kxXRuG1@l6}DgsCKqeb%q?A!4p)d>c#Wb$%zg$fzBRKPUi zfk%N5$KLD&2TEGuMr0QvITm&G>U8yO`kq|{A2@eq2XC1{&#nyIxvvflUtV?#TJM&{ zBU%0q;-A9W8rP4kqkM&aD?inz>GZtva!xAA-Ir0To}amlL?XR?2SBNU%|n_dls$WU zdVF3ONSuQ~!(vB^uB{nwcF+XYb~}auYf73p@W_`A0(6J|;(p)QSOTberPWVd<`Y4S zWygzg)R(gE0xG-HTtM^cRQoE}2tux@9IM7n&&<@)mgeU0PKPiJAw!iV;2(xTkglz*8ChDgpJfJh93RgsDXgr_53KYkGRVFwe7oZo&u9;kEa1eo zG=wxu#AduHDPaPTa(G}O^iUZfmt*~fHUxu7?Ar5J4KFa1R=;Wq+R#2mFP9k~Xi>JA zTF<&TI|FdqXpNU22+#`0ZiLv~55WD-ROzqkjLyyYg=NSw` zf2%>G?NKkzM5O#=wk?v64?qRM?5Nd&PQ-*WvXj%DDVMHXxh8V5rC0UvNn1Q`en|;y zO-&8p_T8G0aJeo|WVg0n^`^hSykmDpG-$!vT7}f-&uNvtDqgPyo@p~Tuh_%aXM5ZG z4ON%Ys&G^p;J1OQRC1bAtbOV2n>QmC7F@(E$ty(;)1qGzx=kZ?&{{3vR) zXOY3s0&_XW!s79J0}J9h9~>eYp6~SO(=U|+Wx{Ae$In_*W!PJry?T{nG=;-KbP6^n z^p#oGoYaiszG4ahGd)@HQcgWTo5PQg12!*%)47fg>+7$V&{9(1vf-FDdCb*}XRy>F zW~x2u9Jo{i)2y%KFt4-AGJTvJ9Aj7GJ)caK4EQx%kvg%ty=@W_qQaCL$-)`%yXM@$ z;9xQ=q8dlNp*g)pUC>{|D zS@h+LK19vHz+hQn5wnQLq~WO3awkB$8Qa+8Swt2U78ZU<5Op;uhnzbSv^-jq>cvgCIp7EUwMZ&$r}Vi@}4%v}_DIoo58qdm(WhhZ6_2p{(qgmg7(F;;!FY zu3Om+x+E&v@~*sb;oe}e>x3iv#H`%tWxrbAd3|2+_G{?S-L6+Bo&>2p&k;=+41Fv0 jcQ?U^fB9eTHxF2ntQ&c40v)j6W*X4Bj?paBu#Wf-2=J?C diff --git a/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/ItunesArtwork@2x.png b/apps/ledger-live-mobile/ios/ledgerlivemobile/Images.xcassets/NightlyAppIcon.appiconset/ItunesArtwork@2x.png deleted file mode 100644 index e64b6cdceac9f56d8031932a8b2cef034ab8b99c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10317 zcmeHNYgAKby8ZyUh$wXiFO{3EBcdWyD+IX(N0B-LiWnk708uUiA!rE%2qb8g3PoyZ zp@Im7A_@`^lshDpL8{12paBsAMXoUfjDg&9Uh4cfKhBS{X3d;6XDwNaP1yPNx4->f zp67YrZ(l#*=Db#Wi#9@N?a?m|pG0UCd|ZXJRN>D8t+5{=Q@x{y51yjj=8X*F^tqR- z-9^cK!VQ+ws?2SUDd=moUgcBO>sqY!Tb=0!Dwp7FzRi`F>lge&%+f70iT7S4eMgyY zoEt4`-N9<$?o3E-EiNurLuhNOk{bs%VR6^P@uS0VaQsLGjtBo(!H1I{4DuluAQe9( z!iPlokO==|B77S|&_$G?@$s|lL;ia*o}RZeim^|zk4#9gzvWVIq#hO<7dIED#acrJ zM*2Ttp7$$S8|W2n|5XT|!{o zA3sh=2Sr2Keiy0y2aB6gvOS_(lL>5c)5|YY3rtf2G743;egg|9`ZZH;xtNsN$JpfF z$;%@}S)=oN)wK}148KV0Q#fq>8V>ZWD{}F}$qxqkmjy%PN^$V$vz*S7lDRm&oT$V^ z-^@UE;U7V_^fcTmr!$C<9*}V(JzX8K!uI_;f|6fvgdA^YWMrfpW25a;2=1_eL+IB_ zqId85g_|Mj@d5u|aCjxf#{#dk_~#aHa=J*PG4Hn^(qLPg6As61{H3+E_1Y8F@Q(4m zJ`eUeAj?9Lzv)Y+A9ZQ7;`WJlJB z-+7pu=)KC(#Dh-Xq?6oQX_kXc+`nbd##CaO20ERNknah-w$4u1(&F2>xt7WoAhBFk zp+1?Ny->RP^JsN-dhT{a-(-eas%vNnBX_ZRJRa47)Aco?53EM{H!IDY3*AeLeSCa= z1j95OLC7_&eZsReskFq#)^_-1B%m=e1yrGUfFyK~3L*f{kN9Ur9qQIDIu z9&v{%n5?w4bWd8aC3rnKtxRx4Af|q{nJQX1yMIe(P}L^9lf}l=*(e)>by%t>^5Vrs zYDnj_;F|H-&o)00?9BeLGYH7;v&}9h8Jld28Qh_8D}#0EH*WaKeqVbQTcAl(DiS8tL=s_` zK(of?t?r-)?<;GQ2(a$u!6pO_goGpW1E14OxKh*ZD|NbpaO&twI_*%-yP3}ZJ zqXzTMWGcTu#*iCkxn>4(P@l@3dP>NgjI@3==B;LX3{v-k?fQERE`UVY+TzbUjtTI! z;eY7%3XwmX&D%%L2wnLsmi9|BcJTv&>u86QRr9iABo$hvzP<+}+^D6V)iKO!@kTiOE za*h?LY z(aAk?veG-H;2yVL(*BIJ%p0z$*}qr*`t{G_=6UZEsWbJhC(Vd7JFV0B1wuIw?Tl&% z%%>n|VB+|MNq5{p=%0UYpI8jpAD8I%g}WZ~*WqVkQ3R`A#=N|#|GIU2K_-)tnC&Gc zK~+Op7JiN#zi6&MS)1kp$)KlTvZmBPx(oj zC1O3%ThXbUxt;M%yJxg(l%Pf_ln}B|*%4_CpH7QYA}5|qEVi~DYNhN>`F(0C=<04h zWKp%z&^lWzmZZ@42~NS6@|4RGZ)^V*O#c~BDEf?2F|YkHTBGaj94)up7Cb#NGV<&= zCx4OB_{)pwr{`bDTwWE`Jo4@bymQy<6p(Uv`c@4+7~eLmI6}ujBI#HEvd97w5cCo8 zJ)s%GD_5?-wTkn_eSLjh<%7>EePSmHtFd1hdQDdx>||3lu+_U#7?8(F@8 zMy#o_NV|ohp`qWdRc$EiI&E)lJtK_kWZ!WhL3he_{S0)gCZ{(#_3rXtdZ?4fo^zxF zFqbcEW;g*ilONH<5%`5ueyLKQa0SsoS%yt9(c56?g`r~niAe8$@->js>RsA z;7$J%XZ>DTaP2G2`va*M8nx8WJ*ft^XND``!E|MoW zx|MDk%EDfsI-`D8AhtW!nRRzirWpV^?48-JRulI(98OxfJERm1KC$UYb9VZ3DbZij z;29`dQXR|hEH58O8TCBoVIwnIJ(G!0bx5pTWNES4@wAbyNUOUHt|z`|xOPA?+gF^% zoJzIYfXdtkW>Kw7jsy*` zod_^DSV}l(`w3bi2(F6+Vwsq>Mj&n+-{hf>{XumQ1QKQYZUbE(98NHqUVg!Osc1ct zG6rJTb(0o2R4FZ)rUFCk0sn|DtKxt|*oUmGL+bRBM*165Ae%o|;srGN6bP4+c|M{BuBeljsLROzij@e2>!l=;zW}N55!4`mZRPusW|SHxe*~vRW$Q= z80P2WWANrV29;?rPn%Wmy;jdiP+PD9d2lW4oPzS{=~6MaOhcm)2g6w~9MprD+Ptll z|~_PETr zMw#Td3iT9KH(Z|YYRvLf`7GBBW4k8g;psPB>6g<&YV~RvTv`nWl#G6JGc+J9VDc9$ zmiT&NVq!{{!L1h`=9wh&QlI7Y${gu5+E4Ffv;It-3bKuCvHK2@2`Q{NM z5=OY4<>q=d;L4VWbSbw$iREb6wJs@HOi+FC0IIf?%-}Db+#eBG(7JBAS!1N5p&x4) z?b>=lg2U~ZmSb)!Ju)X9tgI^RVI{s^nZy|N5p^OSH#$1Xz^NM4HlNZ{4A<^5Sz z^z3e>SAq-6`!9%|8yOe(a)~n5WtsO#-T^F6>0NRL(M4Q#o5V)jG^M)tBwGj&ru}8oTzzwW{Usr@*%0ecH~#WF5QJf$_6Pv|6XjK^z7Qkt zubO}R_R`gXH5pG|&&=E#kIJuS6!*=7j3EJ!H?L=c=*VKO3ZZOuB(T@UT)reV7UjaF zUobhG^6QSfsjDkM&qP|=+1S+A*JpQ6GdY=zl2EH00)b#?Xh`t!ku7GE`JQh4uMM$> z>&BCiYxLz^9WPYTSPW$N9?)QA(d^k*larIrJj_Z;>YJJjbu^3}sL*7$leE93tw@X@ zK~JR_bZzm5LT>@^+m!C;qU$MO!;B)9>(ss>nWku)3VL(9`n?fya&podPYKgabQ39* z!C!Nl*TQ@uim~^g+|=@b3A#t|MU#eXb5fQO5wT-JIdi(Z8w4)N*Q0{tV z(V|;!V8BOg?hk==R0%&_4B~somor(Kst>Bpy-9-frXDIR(mx3A}2$IiB zX=5LQ{VzysUkazDrsn4(uC$tWyd58JX;e<{neK$$7}qlgEJqE7vlB|HB@NqQ=$S-X8>~yl;h=O_ zseLx4mXsuNM(&xWOg>LLp638WI^XLaVjH;c)+wA&$YnD$D?bL!g2&^_mVTLAmd0bk z)=>iC`E&s-rH^;d&}6%kCY7M`nb>3QdJGXJ&?Yxgv@lK#&pe~o7HJ(W^m?Vx^gXZr zQHAl+JY{Tp4}V$t`y8#xs(D?*A<%Q3#*J^Dm!+vwwt*=yM+$E~uGqidV4bnCG2Wa0 z&;z_Az{V>b=_W4lEKeb(Txt|eXae#Gkc+{^GFk=$LB&#E58LXf3|?D#*MiZGDuPQ& zY;0^oMJpn^=)w@xMo_@Vo@a7s5V=n_4_1q*4x4qd?JCVWpu`0#qNu?QLWq2mEdB^x zTqM46gmmGiP6c4Ie?xXRC!|!|d~f5&{QLEc;3}_HO>czu{{UfCTg*21H596h!sb;)3i!p6wg9j4vp3K0OfYm;U9R7aM@+N|_tX#!^fm1!aRhR58{@r9sImjSwC(cu z!0ihPOpmOT^Ux{yVS1(H?ass2jGXv&wj%!g0o)tGba$tIx2mqc`aim6{(b}Ggs7R?CMZzx^R$wZW~%r_=&15Vq;(^-45Vh&Q0-dyHOmxvc--Sx=G8pTi;0Osb>!#` zuG<4e0|f7GyNh)((x*?4dSx>CeSU0Vz(WyKwBc6XJky7jX2wQFK8Ew(mz3PNal=X& zs;avJ{ioUfpPg3La%g_{VV_7*{S%~HP%=NeQ-cmr6Z*#9K0F6lJ%d=lPGv8$Hus8|Pf+}qK>Cs?v3 zCyPpz7|_rd>|ZvIr9(8C?AZ~_e7oq~VTi?Bo6_aK&lwMD!3D8ELW_%w8skm*V<1v08q25`^hDCOUW&@ER(3)TZS z02Wusr2!95n{8a%z1Fm&lFc;)cK=-$ifFcMkz70R43SJcMR y{)FINslS^;9rEFgsSkVE|JuFm|GhoGRq9q3t9>iMv_PvCp`%W2hZ%qMzx-cp;lafK diff --git a/apps/ledger-live-mobile/mobile-env.md b/apps/ledger-live-mobile/mobile-env.md index 8903ec177531..421715fdf004 100644 --- a/apps/ledger-live-mobile/mobile-env.md +++ b/apps/ledger-live-mobile/mobile-env.md @@ -1,4 +1,4 @@ - + > This self generated file documents all environments we have on our different mobile OS (iOS, Android) and targets (release, staging, nightly). What we call 'staging' refers to any custom build done on 'ledger-live-build'. By default, building the app locally will use a local file called '.env' which won't have any environment. In other cases, these env files will be used: @@ -24,7 +24,7 @@ In other cases, these env files will be used: |--|--|--| |release|com.ledger.live|com.ledger.live| |prerelease|com.ledger.live|com.ledger.live| -|nightly|com.ledger.live.nightly|com.ledger.live| +|nightly|com.ledger.live|com.ledger.live| |staging|com.ledger.live.dev|com.ledger.live.dev| # Sentry projects | target | iOS | Android | diff --git a/apps/ledger-live-mobile/scripts/mobile-env-md.mjs b/apps/ledger-live-mobile/scripts/mobile-env-md.mjs index 12a9428af97e..80800092ab77 100644 --- a/apps/ledger-live-mobile/scripts/mobile-env-md.mjs +++ b/apps/ledger-live-mobile/scripts/mobile-env-md.mjs @@ -14,7 +14,7 @@ function main() { } function gen() { - let md = `\n`; + let md = `\n`; md += "> This self generated file documents all environments we have on our different mobile OS (iOS, Android) and targets (release, staging, nightly). What we call 'staging' refers to any custom build done on 'ledger-live-build'.\n"; From e8cd9ce312f1ea8be7fb4d3d119fa16f98207068 Mon Sep 17 00:00:00 2001 From: Lucas Werey <73439207+LucasWerey@users.noreply.github.com> Date: Thu, 3 Oct 2024 15:32:20 +0200 Subject: [PATCH 25/86] :technologist:(lld): add toggle for analytics console (#7995) --- .changeset/kind-numbers-travel.md | 5 +++++ .../src/renderer/Default.tsx | 4 +++- .../Developer/EnableAnalyticsConsole.tsx | 20 +++++++++++++++++++ .../settings/sections/Developer/index.tsx | 7 +++++++ .../static/i18n/en/app.json | 4 ++++ 5 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 .changeset/kind-numbers-travel.md create mode 100644 apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/EnableAnalyticsConsole.tsx diff --git a/.changeset/kind-numbers-travel.md b/.changeset/kind-numbers-travel.md new file mode 100644 index 000000000000..e0ffa6f80831 --- /dev/null +++ b/.changeset/kind-numbers-travel.md @@ -0,0 +1,5 @@ +--- +"ledger-live-desktop": patch +--- + +add analytics console toggle in dev settings diff --git a/apps/ledger-live-desktop/src/renderer/Default.tsx b/apps/ledger-live-desktop/src/renderer/Default.tsx index cbb19db999b6..0bed65b6e48a 100644 --- a/apps/ledger-live-desktop/src/renderer/Default.tsx +++ b/apps/ledger-live-desktop/src/renderer/Default.tsx @@ -55,6 +55,7 @@ import { import { isLocked as isLockedSelector } from "~/renderer/reducers/application"; import { useAutoDismissPostOnboardingEntryPoint } from "@ledgerhq/live-common/postOnboarding/hooks/index"; import { setShareAnalytics, setSharePersonalizedRecommendations } from "./actions/settings"; +import useEnv from "@ledgerhq/live-common/hooks/useEnv"; const PlatformCatalog = lazy(() => import("~/renderer/screens/platform")); const Dashboard = lazy(() => import("~/renderer/screens/dashboard")); @@ -190,6 +191,7 @@ export default function Default() { const history = useHistory(); const hasCompletedOnboarding = useSelector(hasCompletedOnboardingSelector); const accounts = useSelector(accountsSelector); + const analyticsConsoleActive = useEnv("ANALYTICS_CONSOLE"); useAccountsWithFundsListener(accounts, updateIdentify); useListenToHidDevices(); @@ -394,7 +396,7 @@ export default function Default() { - {process.env.ANALYTICS_CONSOLE ? : null} + {analyticsConsoleActive ? : null} ); } diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/EnableAnalyticsConsole.tsx b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/EnableAnalyticsConsole.tsx new file mode 100644 index 000000000000..3bb3bbe164b2 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/EnableAnalyticsConsole.tsx @@ -0,0 +1,20 @@ +import useEnv from "@ledgerhq/live-common/hooks/useEnv"; +import { setEnv } from "@ledgerhq/live-env"; +import React, { useCallback } from "react"; +import Switch from "~/renderer/components/Switch"; +const EnableAnalyticsConsole = () => { + const env = useEnv("ANALYTICS_CONSOLE"); + + const onChangeAnalyticsConsole = useCallback((checked: boolean) => { + setEnv("ANALYTICS_CONSOLE", checked); + }, []); + + return ( + + ); +}; +export default EnableAnalyticsConsole; diff --git a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/index.tsx b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/index.tsx index 91dadf07b9d1..8ce2a622572a 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/index.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/settings/sections/Developer/index.tsx @@ -24,6 +24,7 @@ import { FeatureToggle } from "@ledgerhq/live-common/featureFlags/index"; import WalletSyncTester from "./WalletSync/WalletSyncTester"; import SimpleHashTools from "./SimpleHashTools/SimpleHashTools"; import MockAppUpdate from "./MockAppUpdate"; +import EnableAnalyticsConsole from "./EnableAnalyticsConsole"; const Default = () => { const { t } = useTranslation(); @@ -67,6 +68,12 @@ const Default = () => { > + + + diff --git a/apps/ledger-live-desktop/static/i18n/en/app.json b/apps/ledger-live-desktop/static/i18n/en/app.json index 76c1ee9a3bb3..abe0d022dfda 100644 --- a/apps/ledger-live-desktop/static/i18n/en/app.json +++ b/apps/ledger-live-desktop/static/i18n/en/app.json @@ -4035,6 +4035,10 @@ "desc": "Add exchange provider's info", "placeholder": "Exchange provider's info in CAL format" }, + "analyticsConsole": { + "title": "Allow Analytics Console", + "desc": "Display and allow opening analytics console." + }, "debugSimpleHash": { "testSimpleHash": { "title": "SimpleHash Tools", From ae8e53880b467e07f234173bdac22498e5d90274 Mon Sep 17 00:00:00 2001 From: "Valentin D. Pinkman" Date: Thu, 3 Oct 2024 15:01:23 +0200 Subject: [PATCH 26/86] =?UTF-8?q?=F0=9F=92=9A=20(ci):=20Remove=20tag=20pus?= =?UTF-8?q?h=20on=20prerelease?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release-final-nightly.yml | 12 ++---------- .github/workflows/release-prerelease.yml | 14 +++----------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/.github/workflows/release-final-nightly.yml b/.github/workflows/release-final-nightly.yml index 3998336d3de9..1b08a670650c 100644 --- a/.github/workflows/release-final-nightly.yml +++ b/.github/workflows/release-final-nightly.yml @@ -57,7 +57,7 @@ jobs: git add . git commit -m "chore(nightly): :rocket: nightly release" - name: publish nightly - run: pnpm changeset publish + run: pnpm changeset publish --no-git-tag env: NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }} - uses: LedgerHQ/ledger-live/tools/actions/get-package-infos@develop @@ -68,18 +68,10 @@ jobs: id: post-mobile-version with: path: ${{ github.workspace }}/apps/ledger-live-mobile - - name: tag desktop - if: ${{ steps.desktop-version.outputs.version != steps.post-desktop-version.outputs.version }} - run: | - git tag @ledgerhq/live-desktop@${{ steps.post-desktop-version.outputs.version }} - - name: tag mobile - if: ${{ steps.mobile-version.outputs.version != steps.post-mobile-version.outputs.version }} - run: | - git tag live-mobile@${{ steps.post-mobile-version.outputs.version }} - name: push changes if: ${{ !cancelled() }} run: | - git push origin nightly --follow-tags + git push origin nightly - uses: actions/github-script@v7 name: trigger nightly build of desktop if: ${{ steps.desktop-version.outputs.version != steps.post-desktop-version.outputs.version }} diff --git a/.github/workflows/release-prerelease.yml b/.github/workflows/release-prerelease.yml index f135318b9c89..c4a522b3ea57 100644 --- a/.github/workflows/release-prerelease.yml +++ b/.github/workflows/release-prerelease.yml @@ -86,27 +86,19 @@ jobs: git commit -m "chore(prerelease): :rocket: ${{ inputs.ref }} prerelease [LLD(${{ steps.post-desktop-version.outputs.version }}), LLM(${{ steps.post-mobile-version.outputs.version }})]" || echo "" - name: publish prerelease - run: pnpm changeset publish + run: pnpm changeset publish --no-git-tag env: NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }} - - name: tag desktop - if: ${{ steps.desktop-version.outputs.version != steps.post-desktop-version.outputs.version }} - run: | - git tag @ledgerhq/live-desktop@${{ steps.post-desktop-version.outputs.version }} - - name: tag mobile - if: ${{ steps.mobile-version.outputs.version != steps.post-mobile-version.outputs.version }} - run: | - git tag live-mobile@${{ steps.post-mobile-version.outputs.version }} - name: push changes (push event) if: ${{ github.event_name == 'push' }} run: | git pull --rebase - git push origin ${{ github.ref_name }} --follow-tags + git push origin ${{ github.ref_name }} - name: push changes (other events) if: ${{ github.event_name == 'workflow_dispatch' }} run: | git pull --rebase - git push origin ${{ inputs.ref }} --follow-tags + git push origin ${{ inputs.ref }} - uses: actions/github-script@v7 name: trigger prerelease build for desktop if: ${{ steps.desktop-version.outputs.version != steps.post-desktop-version.outputs.version }} From b121b054ad0afa1f510addc46675cf1046098e98 Mon Sep 17 00:00:00 2001 From: adammino-ledger Date: Thu, 3 Oct 2024 15:26:28 +0100 Subject: [PATCH 27/86] change id name from acre-testnet to acre and added support for LLM --- .../bitcoin/AccountHeaderManageActions.ts | 2 +- .../FabActions/hooks/useAssetActions.tsx | 2 +- .../src/families/bitcoin/accountActions.tsx | 58 +++++++++++++++++++ .../src/locales/en/common.json | 4 +- 4 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 apps/ledger-live-mobile/src/families/bitcoin/accountActions.tsx diff --git a/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts b/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts index 2e79ca0f6f13..65103a660cce 100644 --- a/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts +++ b/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts @@ -21,7 +21,7 @@ const AccountHeaderActions = ({ account, parentAccount }: Props) => { if (!bitcoinResources || parentAccount) return null; const stakeOnClick = () => { - const value = "/platform/acre-testnet"; + const value = "/platform/acre"; track("button_clicked2", { ...stakeDefaultTrack, diff --git a/apps/ledger-live-mobile/src/components/FabActions/hooks/useAssetActions.tsx b/apps/ledger-live-mobile/src/components/FabActions/hooks/useAssetActions.tsx index fbad9f710a3c..6a9caa1948f5 100644 --- a/apps/ledger-live-mobile/src/components/FabActions/hooks/useAssetActions.tsx +++ b/apps/ledger-live-mobile/src/components/FabActions/hooks/useAssetActions.tsx @@ -152,7 +152,7 @@ export default function useAssetActions({ currency, accounts }: useAssetActionsP ...(canBeStaken ? [ { - label: t("account.stake"), + label: currency.id === "bitcoin" ? t("account.yield") : t("account.stake"), Icon: iconStake, event: "button_clicked", eventProperties: { diff --git a/apps/ledger-live-mobile/src/families/bitcoin/accountActions.tsx b/apps/ledger-live-mobile/src/families/bitcoin/accountActions.tsx new file mode 100644 index 000000000000..75bc85b789f1 --- /dev/null +++ b/apps/ledger-live-mobile/src/families/bitcoin/accountActions.tsx @@ -0,0 +1,58 @@ +import React from "react"; +import { Trans } from "react-i18next"; +import { NavigatorName, ScreenName } from "~/const"; +import { ActionButtonEvent, NavigationParamsType } from "~/components/FabActions"; +import { getMainAccount, isAccountEmpty } from "@ledgerhq/live-common/account/index"; +import { TokenAccount } from "@ledgerhq/types-live"; +import { BitcoinAccount } from "@ledgerhq/live-common/families/bitcoin/types"; +import { IconsLegacy } from "@ledgerhq/native-ui"; + +const getMainActions = ({ + account, + parentAccount, +}: { + account: BitcoinAccount | TokenAccount; + parentAccount: BitcoinAccount | null | undefined; +}): ActionButtonEvent[] => { + const mainAccount = getMainAccount(account, parentAccount); + const navigationParams: NavigationParamsType = isAccountEmpty(mainAccount) + ? [ + NavigatorName.NoFundsFlow, + { + screen: ScreenName.NoFunds, + params: { + account, + parentAccount, + }, + }, + ] + : [ + ScreenName.PlatformApp, + { + params: { + platform: "acre", + name: "Acre", + accountId: mainAccount.id, + }, + }, + ]; + + return [ + { + id: "stake", + navigationParams, + label: , + Icon: IconsLegacy.CoinsMedium, + event: "button_clicked", + eventProperties: { + button: "stake", + currency: "BTC", + page: "Account Page", + }, + }, + ]; +}; + +export default { + getMainActions, +}; diff --git a/apps/ledger-live-mobile/src/locales/en/common.json b/apps/ledger-live-mobile/src/locales/en/common.json index f4a9055f15ba..848874a70d10 100644 --- a/apps/ledger-live-mobile/src/locales/en/common.json +++ b/apps/ledger-live-mobile/src/locales/en/common.json @@ -2323,7 +2323,8 @@ "swap": "Swap", "send": "Send", "deposit": "Receive", - "stake": "Stake" + "stake": "Stake", + "yield": "Yield" }, "recoverBanner": { "subscribeDone": { @@ -2579,6 +2580,7 @@ "buy": "Buy", "walletconnect": "WalletConnect", "stake": "Stake", + "yield": "Yield", "sell": "Sell", "swap": "Swap", "manage": "Manage", From e8178de9140250a0fd5bbe12ba4d736df60383c0 Mon Sep 17 00:00:00 2001 From: Kevin Le Seigle Date: Thu, 3 Oct 2024 16:34:13 +0200 Subject: [PATCH 28/86] fix: flaky test e2e desktop --- .../tests/specs/services/ethereumStaking.spec.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/ledger-live-desktop/tests/specs/services/ethereumStaking.spec.ts b/apps/ledger-live-desktop/tests/specs/services/ethereumStaking.spec.ts index 6ee72415313d..1a18efd8a80a 100644 --- a/apps/ledger-live-desktop/tests/specs/services/ethereumStaking.spec.ts +++ b/apps/ledger-live-desktop/tests/specs/services/ethereumStaking.spec.ts @@ -19,6 +19,8 @@ test.use({ }, userdata: "1AccountBTC1AccountETH", featureFlags: { + referralProgramDesktopSidebar: { enabled: false }, + protectServicesDesktop: { enabled: false }, stakePrograms: { enabled: true, params: { From c9088c94a75d68ca3267a37c3059d1b8dce9a3fc Mon Sep 17 00:00:00 2001 From: Kevin Le Seigle Date: Thu, 3 Oct 2024 17:17:04 +0200 Subject: [PATCH 29/86] fix: app position with external display on windows --- .changeset/pink-pugs-press.md | 5 +++++ apps/ledger-live-desktop/src/main/window-lifecycle.ts | 6 ++++++ 2 files changed, 11 insertions(+) create mode 100644 .changeset/pink-pugs-press.md diff --git a/.changeset/pink-pugs-press.md b/.changeset/pink-pugs-press.md new file mode 100644 index 000000000000..5b57a7a6019c --- /dev/null +++ b/.changeset/pink-pugs-press.md @@ -0,0 +1,5 @@ +--- +"ledger-live-desktop": minor +--- + +Fix app position with external display diff --git a/apps/ledger-live-desktop/src/main/window-lifecycle.ts b/apps/ledger-live-desktop/src/main/window-lifecycle.ts index 9dbd25c67b9f..ea4e4bac1991 100644 --- a/apps/ledger-live-desktop/src/main/window-lifecycle.ts +++ b/apps/ledger-live-desktop/src/main/window-lifecycle.ts @@ -114,7 +114,13 @@ function restorePosition( ) { x = bounds.x; y = bounds.y; + } else { + // If the saved position is not valid, move the window to the primary display. + const primaryDisplay = screen.getPrimaryDisplay().workArea; + x = primaryDisplay.x; + y = primaryDisplay.y; } + // If the saved size is still valid, use it. if (bounds.width <= area.width || bounds.height <= area.height) { width = bounds.width; From 6f0d39f46ef5d3e24439421aa68dfe7aadcd1dbc Mon Sep 17 00:00:00 2001 From: hzheng-ledger <71653044+hzheng-ledger@users.noreply.github.com> Date: Thu, 3 Oct 2024 17:28:45 +0200 Subject: [PATCH 30/86] Bugfix/LIVE-14283 xrp node update (#7998) * fix: update xrp node * fix xrp node url --- .changeset/lazy-oranges-retire.md | 5 +++++ libs/ledger-live-common/src/families/xrp/config.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/lazy-oranges-retire.md diff --git a/.changeset/lazy-oranges-retire.md b/.changeset/lazy-oranges-retire.md new file mode 100644 index 000000000000..a644133c66e7 --- /dev/null +++ b/.changeset/lazy-oranges-retire.md @@ -0,0 +1,5 @@ +--- +"@ledgerhq/live-common": patch +--- + +update xrp node url diff --git a/libs/ledger-live-common/src/families/xrp/config.ts b/libs/ledger-live-common/src/families/xrp/config.ts index 323ef74f5671..2436101d85c9 100644 --- a/libs/ledger-live-common/src/families/xrp/config.ts +++ b/libs/ledger-live-common/src/families/xrp/config.ts @@ -8,7 +8,7 @@ export const xrpConfig: CurrencyLiveConfigDefinition = { status: { type: "active", }, - node: "https://xrplcluster.com/ledgerlive", + node: "https://xrp.coin.ledger.com", } as XrpCoinConfig, }, }; From e223600591ff1412791539ca7820bde63049c2e3 Mon Sep 17 00:00:00 2001 From: adammino-ledger Date: Fri, 4 Oct 2024 09:19:13 +0100 Subject: [PATCH 31/86] Update apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts Co-authored-by: Samy Rabah --- .../src/renderer/families/bitcoin/AccountHeaderManageActions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts b/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts index 65103a660cce..03c7f738a2e6 100644 --- a/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts +++ b/apps/ledger-live-desktop/src/renderer/families/bitcoin/AccountHeaderManageActions.ts @@ -49,7 +49,7 @@ const AccountHeaderActions = ({ account, parentAccount }: Props) => { eventProperties: { button: "stake", }, - onClick: () => stakeOnClick(), + onClick: stakeOnClick, }, ]; }; From 87b706c8a807f14c72c7d47206e9ee767f50a04c Mon Sep 17 00:00:00 2001 From: hzheng-ledger <71653044+hzheng-ledger@users.noreply.github.com> Date: Fri, 4 Oct 2024 10:36:01 +0200 Subject: [PATCH 32/86] Bugfix/solana priority fees (#7916) (#7917) * Bugfix/solana priority fees (#7916) * chore(LLC): update @solana/spl-token@0.4.6, @solana/web3.js@1.91.6 * feat(LLC): calc and possibly append priority fee to solana instructions * feat(LLC): add solana compute units optimisations --------- Co-authored-by: Mikhail * fix: add changeset * fix: unit tests and solana min app version --------- Co-authored-by: Mikhail --- .changeset/popular-keys-collect.md | 6 + libs/coin-modules/coin-solana/package.json | 4 +- .../coin-solana/src/api/cached.ts | 24 +++ .../coin-solana/src/api/chain/index.ts | 48 ++++- .../coin-solana/src/api/chain/web3.ts | 183 +++++++++++------- .../src/bridge.integration.test.ts | 13 ++ .../coin-solana/src/buildTransaction.ts | 28 +-- .../coin-solana/src/synchronization.ts | 4 +- libs/coin-modules/coin-solana/src/tx-fees.ts | 15 +- libs/coin-modules/coin-solana/src/utils.ts | 15 ++ libs/ledger-live-common/package.json | 2 +- libs/ledger-live-common/src/apps/config.ts | 2 +- .../src/families/solana/bridge/mock-data.ts | 16 ++ pnpm-lock.yaml | 28 +-- 14 files changed, 278 insertions(+), 110 deletions(-) create mode 100644 .changeset/popular-keys-collect.md diff --git a/.changeset/popular-keys-collect.md b/.changeset/popular-keys-collect.md new file mode 100644 index 000000000000..f91e3251b754 --- /dev/null +++ b/.changeset/popular-keys-collect.md @@ -0,0 +1,6 @@ +--- +"@ledgerhq/coin-solana": minor +"@ledgerhq/live-common": minor +--- + +fix: add priority fees for solana transaction diff --git a/libs/coin-modules/coin-solana/package.json b/libs/coin-modules/coin-solana/package.json index 9460aaa31f0a..f27582bd34b4 100644 --- a/libs/coin-modules/coin-solana/package.json +++ b/libs/coin-modules/coin-solana/package.json @@ -53,8 +53,8 @@ "@ledgerhq/logs": "workspace:^", "@ledgerhq/types-cryptoassets": "workspace:^", "@ledgerhq/types-live": "workspace:^", - "@solana/spl-token": "^0.3.7", - "@solana/web3.js": "1.77.3", + "@solana/spl-token": "0.3.9", + "@solana/web3.js": "1.91.6", "bignumber.js": "^9.1.2", "bs58": "^4.0.1", "expect": "^27.4.6", diff --git a/libs/coin-modules/coin-solana/src/api/cached.ts b/libs/coin-modules/coin-solana/src/api/cached.ts index bc82f12ecdc3..828471f14d2d 100644 --- a/libs/coin-modules/coin-solana/src/api/cached.ts +++ b/libs/coin-modules/coin-solana/src/api/cached.ts @@ -1,4 +1,5 @@ import { makeLRUCache, minutes, seconds } from "@ledgerhq/live-network/cache"; +import { PublicKey, TransactionInstruction, TransactionMessage } from "@solana/web3.js"; import hash from "object-hash"; import { ChainAPI } from "./chain"; @@ -8,6 +9,17 @@ const cacheKeyAssocTokenAccAddress = (owner: string, mint: string) => `${owner}: const cacheKeyMinimumBalanceForRentExemption = (dataLengt: number) => dataLengt.toString(); const cacheKeyTransactions = (signatures: string[]) => hash([...signatures].sort()); +const cacheKeyInstructions = (ixs: TransactionInstruction[], payer: PublicKey) => { + return hash( + new TransactionMessage({ + instructions: ixs, + payerKey: payer, + recentBlockhash: payer.toString(), + }) + .compileToLegacyMessage() + .serialize(), + ); +}; const cacheKeyByArgs = (...args: any[]) => hash(args); @@ -74,6 +86,18 @@ export function cached(api: ChainAPI): ChainAPI { getEpochInfo: makeLRUCache(api.getEpochInfo, cacheKeyEmpty, minutes(1)), + getRecentPrioritizationFees: makeLRUCache( + api.getRecentPrioritizationFees, + cacheKeyByArgs, + seconds(30), + ), + + getSimulationComputeUnits: makeLRUCache( + api.getSimulationComputeUnits, + cacheKeyInstructions, + seconds(30), + ), + config: api.config, }; } diff --git a/libs/coin-modules/coin-solana/src/api/chain/index.ts b/libs/coin-modules/coin-solana/src/api/chain/index.ts index 0b1f75b95fef..d07c939b0c98 100644 --- a/libs/coin-modules/coin-solana/src/api/chain/index.ts +++ b/libs/coin-modules/coin-solana/src/api/chain/index.ts @@ -11,6 +11,10 @@ import { sendAndConfirmRawTransaction, SignaturesForAddressOptions, StakeProgram, + TransactionInstruction, + ComputeBudgetProgram, + VersionedTransaction, + TransactionMessage, } from "@solana/web3.js"; import { makeLRUCache, minutes } from "@ledgerhq/live-network/cache"; import { getEnv } from "@ledgerhq/live-env"; @@ -72,6 +76,15 @@ export type ChainAPI = Readonly<{ getEpochInfo: () => ReturnType; + getRecentPrioritizationFees: ( + accounts: string[], + ) => ReturnType; + + getSimulationComputeUnits: ( + instructions: Array, + payer: PublicKey, + ) => Promise; + config: Config; }>; @@ -88,7 +101,7 @@ export function getChainAPI( logger === undefined ? undefined : (url, options, fetch) => { - logger(url, options); + logger(url.toString(), options); fetch(url, options); }; @@ -208,6 +221,39 @@ export function getChainAPI( getEpochInfo: () => connection().getEpochInfo().catch(remapErrors), + getRecentPrioritizationFees: (accounts: string[]) => { + return connection() + .getRecentPrioritizationFees({ + lockedWritableAccounts: accounts.map(acc => new PublicKey(acc)), + }) + .catch(remapErrors); + }, + + getSimulationComputeUnits: async (instructions, payer) => { + // https://solana.com/developers/guides/advanced/how-to-request-optimal-compute + const testInstructions = [ + // Set an arbitrarily high number in simulation + // so we can be sure the transaction will succeed + // and get the real compute units used + ComputeBudgetProgram.setComputeUnitLimit({ units: 1_400_000 }), + ...instructions, + ]; + const testTransaction = new VersionedTransaction( + new TransactionMessage({ + instructions: testInstructions, + payerKey: payer, + // RecentBlockhash can by any public key during simulation + // since 'replaceRecentBlockhash' is set to 'true' below + recentBlockhash: PublicKey.default.toString(), + }).compileToV0Message(), + ); + const rpcResponse = await connection().simulateTransaction(testTransaction, { + replaceRecentBlockhash: true, + sigVerify: false, + }); + return rpcResponse.value.err ? null : rpcResponse.value.unitsConsumed || null; + }, + config, }; } diff --git a/libs/coin-modules/coin-solana/src/api/chain/web3.ts b/libs/coin-modules/coin-solana/src/api/chain/web3.ts index 1e6f193ef5ea..fff6da9b0e03 100644 --- a/libs/coin-modules/coin-solana/src/api/chain/web3.ts +++ b/libs/coin-modules/coin-solana/src/api/chain/web3.ts @@ -11,8 +11,10 @@ import { StakeProgram, SystemProgram, TransactionInstruction, + ComputeBudgetProgram, } from "@solana/web3.js"; import chunk from "lodash/chunk"; +import uniq from "lodash/uniq"; import { ChainAPI } from "."; import { Awaited } from "../../logic"; import { @@ -25,7 +27,7 @@ import { TokenTransferCommand, TransferCommand, } from "../../types"; -import { drainSeqAsyncGen } from "../../utils"; +import { drainSeqAsyncGen, median } from "../../utils"; import { parseTokenAccountInfo, tryParseAsTokenAccount, tryParseAsVoteAccount } from "./account"; import { parseStakeAccountInfo } from "./account/parser"; import { StakeAccountInfo } from "./account/stake"; @@ -127,12 +129,10 @@ export function getTransactions( return drainSeqAsyncGen(getTransactionsGen(address, untilTxSignature, api)); } -export const buildTransferInstructions = ({ - sender, - recipient, - amount, - memo, -}: TransferCommand): TransactionInstruction[] => { +export const buildTransferInstructions = async ( + api: ChainAPI, + { sender, recipient, amount, memo }: TransferCommand, +): Promise => { const fromPublicKey = new PublicKey(sender); const toPublicKey = new PublicKey(recipient); @@ -153,12 +153,13 @@ export const buildTransferInstructions = ({ instructions.push(memoIx); } - return instructions; + return appendMaybePriorityFeeInstructions(api, instructions, fromPublicKey); }; -export const buildTokenTransferInstructions = ( +export const buildTokenTransferInstructions = async ( + api: ChainAPI, command: TokenTransferCommand, -): TransactionInstruction[] => { +): Promise => { const { ownerAddress, ownerAssociatedTokenAccountAddress, @@ -271,6 +272,51 @@ export async function getStakeAccountAddressWithSeed({ return pubkey.toBase58(); } +export async function getPriorityFee(api: ChainAPI, accounts: string[]): Promise { + const recentFees = await api.getRecentPrioritizationFees(uniq(accounts)); + return median(recentFees.map(item => item.prioritizationFee)); +} + +export async function appendMaybePriorityFeeInstructions( + api: ChainAPI, + ixs: TransactionInstruction[], + payer: PublicKey, +): Promise { + const instructions = [...ixs]; + const writableAccs = instructions + .map(ix => ix.keys.filter(acc => acc.isWritable).map(acc => acc.pubkey.toBase58())) + .flat(); + const priorityFeeIx = await buildMaybePriorityFeeInstruction(api, writableAccs); + if (priorityFeeIx) instructions.unshift(priorityFeeIx); + const computeUnitsIx = await buildComputeUnitInstruction(api, instructions, payer); + + if (computeUnitsIx) instructions.unshift(computeUnitsIx); + return instructions; +} + +export async function buildMaybePriorityFeeInstruction( + api: ChainAPI, + accounts: string[], +): Promise { + const priorityFee = await getPriorityFee(api, accounts); + if (priorityFee === 0) return null; + + return ComputeBudgetProgram.setComputeUnitPrice({ + microLamports: priorityFee, + }); +} +export async function buildComputeUnitInstruction( + api: ChainAPI, + ixs: TransactionInstruction[], + payer: PublicKey, +): Promise { + const computeUnits = await api.getSimulationComputeUnits(ixs, payer); + // adding 10% more CPU to make sure it will work + return computeUnits + ? ComputeBudgetProgram.setComputeUnitLimit({ units: computeUnits * 0.1 + computeUnits }) + : null; +} + export function buildCreateAssociatedTokenAccountInstruction({ mint, owner, @@ -292,86 +338,82 @@ export function buildCreateAssociatedTokenAccountInstruction({ return instructions; } -export function buildStakeDelegateInstructions({ - authorizedAccAddr, - stakeAccAddr, - voteAccAddr, -}: StakeDelegateCommand): TransactionInstruction[] { +export async function buildStakeDelegateInstructions( + api: ChainAPI, + { authorizedAccAddr, stakeAccAddr, voteAccAddr }: StakeDelegateCommand, +): Promise { + const withdrawAuthority = new PublicKey(authorizedAccAddr); + const stakeAcc = new PublicKey(stakeAccAddr); + const voteAcc = new PublicKey(voteAccAddr); const tx = StakeProgram.delegate({ - authorizedPubkey: new PublicKey(authorizedAccAddr), - stakePubkey: new PublicKey(stakeAccAddr), - votePubkey: new PublicKey(voteAccAddr), + authorizedPubkey: withdrawAuthority, + stakePubkey: stakeAcc, + votePubkey: voteAcc, }); - return tx.instructions; + return appendMaybePriorityFeeInstructions(api, tx.instructions, withdrawAuthority); } -export function buildStakeUndelegateInstructions({ - authorizedAccAddr, - stakeAccAddr, -}: StakeUndelegateCommand): TransactionInstruction[] { +export async function buildStakeUndelegateInstructions( + api: ChainAPI, + { authorizedAccAddr, stakeAccAddr }: StakeUndelegateCommand, +): Promise { + const withdrawAuthority = new PublicKey(authorizedAccAddr); + const stakeAcc = new PublicKey(stakeAccAddr); const tx = StakeProgram.deactivate({ - authorizedPubkey: new PublicKey(authorizedAccAddr), - stakePubkey: new PublicKey(stakeAccAddr), + authorizedPubkey: withdrawAuthority, + stakePubkey: stakeAcc, }); - return tx.instructions; + return appendMaybePriorityFeeInstructions(api, tx.instructions, withdrawAuthority); } -export function buildStakeWithdrawInstructions({ - authorizedAccAddr, - stakeAccAddr, - amount, - toAccAddr, -}: StakeWithdrawCommand): TransactionInstruction[] { +export async function buildStakeWithdrawInstructions( + api: ChainAPI, + { authorizedAccAddr, stakeAccAddr, amount, toAccAddr }: StakeWithdrawCommand, +): Promise { + const withdrawAuthority = new PublicKey(authorizedAccAddr); + const stakeAcc = new PublicKey(stakeAccAddr); + const recipient = new PublicKey(toAccAddr); const tx = StakeProgram.withdraw({ - authorizedPubkey: new PublicKey(authorizedAccAddr), - stakePubkey: new PublicKey(stakeAccAddr), + authorizedPubkey: withdrawAuthority, + stakePubkey: stakeAcc, lamports: amount, - toPubkey: new PublicKey(toAccAddr), + toPubkey: recipient, }); - return tx.instructions; + return appendMaybePriorityFeeInstructions(api, tx.instructions, withdrawAuthority); } -export function buildStakeSplitInstructions({ - authorizedAccAddr, - stakeAccAddr, - seed, - amount, - splitStakeAccAddr, -}: StakeSplitCommand): TransactionInstruction[] { - // HACK: switch to split_with_seed when supported by @solana/web3.js - const splitIx = StakeProgram.split({ - authorizedPubkey: new PublicKey(authorizedAccAddr), +export async function buildStakeSplitInstructions( + api: ChainAPI, + { authorizedAccAddr, stakeAccAddr, seed, amount, splitStakeAccAddr }: StakeSplitCommand, +): Promise { + const basePk = new PublicKey(authorizedAccAddr); + const stakePk = new PublicKey(stakeAccAddr); + const splitStakePk = new PublicKey(splitStakeAccAddr); + const splitIx = StakeProgram.splitWithSeed({ + authorizedPubkey: basePk, lamports: amount, - stakePubkey: new PublicKey(stakeAccAddr), - splitStakePubkey: new PublicKey(splitStakeAccAddr), - }).instructions[1]; - - if (splitIx === undefined) { - throw new Error("expected split instruction"); - } - - const allocateIx = SystemProgram.allocate({ - accountPubkey: new PublicKey(splitStakeAccAddr), - basePubkey: new PublicKey(authorizedAccAddr), - programId: StakeProgram.programId, + stakePubkey: stakePk, + splitStakePubkey: splitStakePk, + basePubkey: basePk, seed, - space: StakeProgram.space, }); - - return [allocateIx, splitIx]; + return appendMaybePriorityFeeInstructions(api, splitIx.instructions, basePk); } -export function buildStakeCreateAccountInstructions({ - fromAccAddress, - stakeAccAddress, - seed, - amount, - stakeAccRentExemptAmount, - delegate, -}: StakeCreateAccountCommand): TransactionInstruction[] { +export async function buildStakeCreateAccountInstructions( + api: ChainAPI, + { + fromAccAddress, + stakeAccAddress, + seed, + amount, + stakeAccRentExemptAmount, + delegate, + }: StakeCreateAccountCommand, +): Promise { const fromPubkey = new PublicKey(fromAccAddress); const stakePubkey = new PublicKey(stakeAccAddress); @@ -394,6 +436,5 @@ export function buildStakeCreateAccountInstructions({ votePubkey: new PublicKey(delegate.voteAccAddress), }), ); - - return tx.instructions; + return appendMaybePriorityFeeInstructions(api, tx.instructions, fromPubkey); } diff --git a/libs/coin-modules/coin-solana/src/bridge.integration.test.ts b/libs/coin-modules/coin-solana/src/bridge.integration.test.ts index 014c7765a27a..124ae2f7bdfb 100644 --- a/libs/coin-modules/coin-solana/src/bridge.integration.test.ts +++ b/libs/coin-modules/coin-solana/src/bridge.integration.test.ts @@ -952,6 +952,19 @@ const baseTx = { const baseAPI = { getLatestBlockhash: () => Promise.resolve(LATEST_BLOCKHASH_MOCK), getFeeForMessage: (_msg: unknown) => Promise.resolve(testOnChainData.fees.lamportsPerSignature), + getRecentPrioritizationFees: (_: string[]) => { + return Promise.resolve([ + { + slot: 122422797, + prioritizationFee: 0, + }, + { + slot: 122422797, + prioritizationFee: 0, + }, + ]); + }, + getSimulationComputeUnits: (_ixs: any[], _payer: any) => Promise.resolve(1000), } as ChainAPI; type StakeTestSpec = { diff --git a/libs/coin-modules/coin-solana/src/buildTransaction.ts b/libs/coin-modules/coin-solana/src/buildTransaction.ts index cb7f9b17bad8..146b594ca7fc 100644 --- a/libs/coin-modules/coin-solana/src/buildTransaction.ts +++ b/libs/coin-modules/coin-solana/src/buildTransaction.ts @@ -23,7 +23,7 @@ export const buildTransactionWithAPI = async ( transaction: Transaction, api: ChainAPI, ): Promise OnChainTransaction]> => { - const instructions = buildInstructions(transaction); + const instructions = await buildInstructions(api, transaction); const recentBlockhash = await api.getLatestBlockhash(); @@ -46,7 +46,10 @@ export const buildTransactionWithAPI = async ( ]; }; -function buildInstructions(tx: Transaction): TransactionInstruction[] { +async function buildInstructions( + api: ChainAPI, + tx: Transaction, +): Promise { const { commandDescriptor } = tx.model; if (commandDescriptor === undefined) { throw new Error("missing command descriptor"); @@ -54,27 +57,30 @@ function buildInstructions(tx: Transaction): TransactionInstruction[] { if (Object.keys(commandDescriptor.errors).length > 0) { throw new Error("can not build invalid command"); } - return buildInstructionsForCommand(commandDescriptor.command); + return buildInstructionsForCommand(api, commandDescriptor.command); } -function buildInstructionsForCommand(command: Command): TransactionInstruction[] { +async function buildInstructionsForCommand( + api: ChainAPI, + command: Command, +): Promise { switch (command.kind) { case "transfer": - return buildTransferInstructions(command); + return buildTransferInstructions(api, command); case "token.transfer": - return buildTokenTransferInstructions(command); + return buildTokenTransferInstructions(api, command); case "token.createATA": return buildCreateAssociatedTokenAccountInstruction(command); case "stake.createAccount": - return buildStakeCreateAccountInstructions(command); + return buildStakeCreateAccountInstructions(api, command); case "stake.delegate": - return buildStakeDelegateInstructions(command); + return buildStakeDelegateInstructions(api, command); case "stake.undelegate": - return buildStakeUndelegateInstructions(command); + return buildStakeUndelegateInstructions(api, command); case "stake.withdraw": - return buildStakeWithdrawInstructions(command); + return buildStakeWithdrawInstructions(api, command); case "stake.split": - return buildStakeSplitInstructions(command); + return buildStakeSplitInstructions(api, command); default: return assertUnreachable(command); } diff --git a/libs/coin-modules/coin-solana/src/synchronization.ts b/libs/coin-modules/coin-solana/src/synchronization.ts index b324c9e635bd..348956645c07 100644 --- a/libs/coin-modules/coin-solana/src/synchronization.ts +++ b/libs/coin-modules/coin-solana/src/synchronization.ts @@ -542,7 +542,7 @@ function getMainAccOperationTypeFromTx(tx: ParsedTransaction): OperationType | u const parsedIxs = instructions .map(ix => parseQuiet(ix)) - .filter(({ program }) => program !== "spl-memo"); + .filter(({ program }) => program !== "spl-memo" && program !== "unknown"); if (parsedIxs.length === 3) { const [first, second, third] = parsedIxs; @@ -636,7 +636,7 @@ function getTokenAccOperationType({ const { instructions } = tx.message; const [mainIx, ...otherIxs] = instructions .map(ix => parseQuiet(ix)) - .filter(({ program }) => program !== "spl-memo"); + .filter(({ program }) => program !== "spl-memo" && program !== "unknown"); if (mainIx !== undefined && otherIxs.length === 0) { switch (mainIx.program) { diff --git a/libs/coin-modules/coin-solana/src/tx-fees.ts b/libs/coin-modules/coin-solana/src/tx-fees.ts index 4a05372c9f44..b25bdbfb363f 100644 --- a/libs/coin-modules/coin-solana/src/tx-fees.ts +++ b/libs/coin-modules/coin-solana/src/tx-fees.ts @@ -2,9 +2,10 @@ import { ChainAPI } from "./api"; import { buildTransactionWithAPI } from "./buildTransaction"; import createTransaction from "./createTransaction"; import { Transaction, TransactionModel } from "./types"; -import { assertUnreachable } from "./utils"; +import { LEDGER_VALIDATOR, assertUnreachable } from "./utils"; import { VersionedTransaction as OnChainTransaction } from "@solana/web3.js"; import { log } from "@ledgerhq/logs"; +import { getStakeAccountAddressWithSeed } from "./api/chain/web3"; const DEFAULT_TX_FEE = 5000; @@ -13,7 +14,7 @@ export async function estimateTxFee( address: string, kind: TransactionModel["kind"], ) { - const tx = createDummyTx(address, kind); + const tx = await createDummyTx(address, kind); const [onChainTx] = await buildTransactionWithAPI(address, tx, api); let fee = await api.getFeeForMessage(onChainTx.message); @@ -76,7 +77,7 @@ const createDummyTransferTx = (address: string): Transaction => { }; }; -const createDummyStakeCreateAccountTx = (address: string): Transaction => { +const createDummyStakeCreateAccountTx = async (address: string): Promise => { return { ...createTransaction({} as any), model: { @@ -87,12 +88,12 @@ const createDummyStakeCreateAccountTx = (address: string): Transaction => { kind: "stake.createAccount", amount: 0, delegate: { - voteAccAddress: randomAddresses[0], + voteAccAddress: LEDGER_VALIDATOR.voteAccount, }, fromAccAddress: address, seed: "", - stakeAccAddress: randomAddresses[1], - stakeAccRentExemptAmount: 0, + stakeAccAddress: await getStakeAccountAddressWithSeed({ fromAddress: address, seed: "" }), + stakeAccRentExemptAmount: 2282880, }, ...commandDescriptorCommons, }, @@ -149,7 +150,7 @@ const createDummyStakeWithdrawTx = (address: string): Transaction => { amount: 0, authorizedAccAddr: address, stakeAccAddr: randomAddresses[0], - toAccAddr: randomAddresses[1], + toAccAddr: address, }, ...commandDescriptorCommons, }, diff --git a/libs/coin-modules/coin-solana/src/utils.ts b/libs/coin-modules/coin-solana/src/utils.ts index 5e8fd41f437e..15b6f00492af 100644 --- a/libs/coin-modules/coin-solana/src/utils.ts +++ b/libs/coin-modules/coin-solana/src/utils.ts @@ -2,6 +2,7 @@ import { Cluster, clusterApiUrl } from "@solana/web3.js"; import { partition } from "lodash/fp"; import { getEnv } from "@ledgerhq/live-env"; import { ValidatorsAppValidator } from "./validator-app"; +import BigNumber from "bignumber.js"; // Hardcoding the Ledger validator info as backup, // because backend is flaky and sometimes doesn't return it anymore @@ -174,3 +175,17 @@ export const tupleOfUnion = export function sweetch(caze: T, cases: Record): R { return cases[caze]; } + +export function median(values: number[]): number { + const length = values.length; + if (!length) return 0; + + const sorted = values.sort((a, b) => a - b); + const middle = Math.floor(length / 2); + return length % 2 + ? BigNumber(sorted[middle]) + .plus(sorted[middle - 1]) + .div(2) + .toNumber() + : sorted[middle]; +} diff --git a/libs/ledger-live-common/package.json b/libs/ledger-live-common/package.json index a3bec98525e5..f880731d85a3 100644 --- a/libs/ledger-live-common/package.json +++ b/libs/ledger-live-common/package.json @@ -253,7 +253,7 @@ "@ledgerhq/types-cryptoassets": "workspace:^", "@ledgerhq/types-devices": "workspace:^", "@ledgerhq/types-live": "workspace:^", - "@solana/web3.js": "1.77.3", + "@solana/web3.js": "1.91.6", "@svgr/core": "^5.5.0", "@tanstack/react-query": "^5.28.9", "@testing-library/react": "^14.1.2", diff --git a/libs/ledger-live-common/src/apps/config.ts b/libs/ledger-live-common/src/apps/config.ts index 7d926936cb5b..ebb657a83d48 100644 --- a/libs/ledger-live-common/src/apps/config.ts +++ b/libs/ledger-live-common/src/apps/config.ts @@ -35,7 +35,7 @@ const appConfig: Record = { config_nanoapp_solana: { type: "object", default: { - minVersion: "1.2.0", + minVersion: "1.5.3", }, }, config_nanoapp_celo: { diff --git a/libs/ledger-live-common/src/families/solana/bridge/mock-data.ts b/libs/ledger-live-common/src/families/solana/bridge/mock-data.ts index b21218e84d8b..900af12183f0 100644 --- a/libs/ledger-live-common/src/families/solana/bridge/mock-data.ts +++ b/libs/ledger-live-common/src/families/solana/bridge/mock-data.ts @@ -889,4 +889,20 @@ export const getMockedMethods = (): { }, // manual { method: "getLatestBlockhash", params: [], answer: LATEST_BLOCKHASH_MOCK }, + { + method: "getRecentPrioritizationFees", + params: [ + ["AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh"] + ], + answer: [[ + { + slot: 122422797, + prioritizationFee: 0, + }, + { + slot: 122422797, + prioritizationFee: 0, + }, + ]], + }, ]; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39048e409f53..d8138e87ad7b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2647,11 +2647,11 @@ importers: specifier: workspace:^ version: link:../../ledgerjs/packages/types-live '@solana/spl-token': - specifier: ^0.3.7 - version: 0.3.8(@solana/web3.js@1.77.3) + specifier: 0.3.9 + version: 0.3.9(@solana/web3.js@1.91.6) '@solana/web3.js': - specifier: 1.77.3 - version: 1.77.3 + specifier: 1.91.6 + version: 1.91.6 bignumber.js: specifier: ^9.1.2 version: 9.1.2 @@ -3861,8 +3861,8 @@ importers: specifier: workspace:^ version: link:../ledgerjs/packages/types-live '@solana/web3.js': - specifier: 1.77.3 - version: 1.77.3 + specifier: 1.91.6 + version: 1.91.6 '@svgr/core': specifier: ^5.5.0 version: 5.5.0 @@ -13061,14 +13061,14 @@ packages: resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} engines: {node: '>=5.10'} - '@solana/spl-token@0.3.8': - resolution: {integrity: sha512-ogwGDcunP9Lkj+9CODOWMiVJEdRtqHAtX2rWF62KxnnSWtMZtV9rDhTrZFshiyJmxDnRL/1nKE1yJHg4jjs3gg==} + '@solana/spl-token@0.3.9': + resolution: {integrity: sha512-1EXHxKICMnab35MvvY/5DBc/K/uQAOJCYnDZXw83McCAYUAfi+rwq6qfd6MmITmSTEhcfBcl/zYxmW/OSN0RmA==} engines: {node: '>=16'} peerDependencies: '@solana/web3.js': ^1.47.4 - '@solana/web3.js@1.77.3': - resolution: {integrity: sha512-PHaO0BdoiQRPpieC1p31wJsBaxwIOWLh8j2ocXNKX8boCQVldt26Jqm2tZE4KlrvnCIV78owPLv1pEUgqhxZ3w==} + '@solana/web3.js@1.91.6': + resolution: {integrity: sha512-dm20nN6HQvXToo+kM51nxHdtaa2wMSRdeK37p+WIWESfeiVHqV8XbV4XnWupq6ngt5vIckhGFG7ZnTBxUgLzDA==} '@stablelib/binary@1.0.1': resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} @@ -40635,7 +40635,7 @@ snapshots: '@solana/buffer-layout-utils@0.2.0': dependencies: '@solana/buffer-layout': 4.0.1 - '@solana/web3.js': 1.77.3 + '@solana/web3.js': 1.91.6 bigint-buffer: 1.1.5 bignumber.js: 9.1.2 transitivePeerDependencies: @@ -40647,18 +40647,18 @@ snapshots: dependencies: buffer: 6.0.3(patch_hash=2xnca52oxhztvr7iaoovwclcze) - '@solana/spl-token@0.3.8(@solana/web3.js@1.77.3)': + '@solana/spl-token@0.3.9(@solana/web3.js@1.91.6)': dependencies: '@solana/buffer-layout': 4.0.1 '@solana/buffer-layout-utils': 0.2.0 - '@solana/web3.js': 1.77.3 + '@solana/web3.js': 1.91.6 buffer: 6.0.3(patch_hash=2xnca52oxhztvr7iaoovwclcze) transitivePeerDependencies: - bufferutil - encoding - utf-8-validate - '@solana/web3.js@1.77.3': + '@solana/web3.js@1.91.6': dependencies: '@babel/runtime': 7.24.1 '@noble/curves': 1.4.0 From 450c88cefb01f11e6e3670b946f31fe160eebe33 Mon Sep 17 00:00:00 2001 From: 0xkvn <44363395+lambertkevin@users.noreply.github.com> Date: Fri, 4 Oct 2024 10:56:45 +0200 Subject: [PATCH 33/86] [LIVE-14339] Support - Enforce WS version even when bundle without pnpm in the monorepo (#7992) Enforce WS version even when bundle without pnpm in the monorepo --- .changeset/tender-icons-impress.md | 5 +++++ libs/ledgerjs/packages/hw-app-eth/package.json | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/tender-icons-impress.md diff --git a/.changeset/tender-icons-impress.md b/.changeset/tender-icons-impress.md new file mode 100644 index 000000000000..1a43ab09e476 --- /dev/null +++ b/.changeset/tender-icons-impress.md @@ -0,0 +1,5 @@ +--- +"@ledgerhq/hw-app-eth": patch +--- + +Force ws version even when bundled without pnpm from the monorepo diff --git a/libs/ledgerjs/packages/hw-app-eth/package.json b/libs/ledgerjs/packages/hw-app-eth/package.json index 91f115644647..62f6711f1820 100644 --- a/libs/ledgerjs/packages/hw-app-eth/package.json +++ b/libs/ledgerjs/packages/hw-app-eth/package.json @@ -63,5 +63,10 @@ "source-map-support": "^0.5.21", "ts-jest": "^29.1.1", "ts-node": "^10.4.0" + }, + "overrides": { + "@ethersproject/providers": { + "ws": "7.5.10" + } } -} +} \ No newline at end of file From ced792c37b42135f2b7596228c14ccd0783a803f Mon Sep 17 00:00:00 2001 From: 0xkvn <44363395+lambertkevin@users.noreply.github.com> Date: Fri, 4 Oct 2024 10:58:40 +0200 Subject: [PATCH 34/86] [LIVE-7357] Feature - Decrease EIP-1559 base fee multiplier (#7991) * Decrease EIP1559 base fee multiplier to 27% It should allow to create transactions capable of being included in the next 3 blocks minimum * changeset --- .changeset/cool-cougars-push.md | 6 ++++++ libs/env/src/env.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/cool-cougars-push.md diff --git a/.changeset/cool-cougars-push.md b/.changeset/cool-cougars-push.md new file mode 100644 index 000000000000..2b23cc12f05b --- /dev/null +++ b/.changeset/cool-cougars-push.md @@ -0,0 +1,6 @@ +--- +"@ledgerhq/live-env": minor +"@ledgerhq/coin-evm": minor +--- + +Decreasing the base fee multiplier to 27% for the EIP1559 fee system. Based on the spec of EIP1559, it should allow to create blocks which could be included in the next 3 blocks even in awful network situations. diff --git a/libs/env/src/env.ts b/libs/env/src/env.ts index c8e91630b39d..1d9d9fe2fa28 100644 --- a/libs/env/src/env.ts +++ b/libs/env/src/env.ts @@ -338,7 +338,7 @@ const envDefinitions = { desc: "minimum priority fee percents allowed compared to network conditions allowed when EIP1559_MINIMUM_FEES_GATE is activated", }, EIP1559_BASE_FEE_MULTIPLIER: { - def: 1.5, + def: 1.27, parser: floatParser, desc: "mutiplier for the base fee that is composing the maxFeePerGas property", }, From 10071862ae3c6d2e01d32db564fd53541050c676 Mon Sep 17 00:00:00 2001 From: Kevin Le Seigle Date: Fri, 4 Oct 2024 12:31:00 +0200 Subject: [PATCH 35/86] fix: changeset following package rename --- .changeset/strange-sheep-share.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/strange-sheep-share.md b/.changeset/strange-sheep-share.md index 37277febd35e..ccef2876196c 100644 --- a/.changeset/strange-sheep-share.md +++ b/.changeset/strange-sheep-share.md @@ -1,5 +1,5 @@ --- -"@ledgerhq/trustchain": patch +"@ledgerhq/ledger-key-ring-protocol": patch --- -Fix type errors in `@ledgerhq/trustchain` tests +Fix type errors in `@ledgerhq/ledger-key-ring-protocol` tests From 0998181517df52a850a91aced8be366bd481a40e Mon Sep 17 00:00:00 2001 From: Kieran Allen Date: Fri, 4 Oct 2024 12:46:14 +0100 Subject: [PATCH 36/86] fix: add default parent account where missing --- .../src/renderer/components/BalanceInfos/index.tsx | 10 +++++++++- .../screens/asset/AssetBalanceSummaryHeader.tsx | 14 ++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/apps/ledger-live-desktop/src/renderer/components/BalanceInfos/index.tsx b/apps/ledger-live-desktop/src/renderer/components/BalanceInfos/index.tsx index 263b9c23b14e..fab152c2e45e 100644 --- a/apps/ledger-live-desktop/src/renderer/components/BalanceInfos/index.tsx +++ b/apps/ledger-live-desktop/src/renderer/components/BalanceInfos/index.tsx @@ -142,6 +142,13 @@ export default function BalanceInfos({ [counterValueId, flattenedAccounts], ); + const parentAccount = useMemo(() => { + if (defaultAccount?.type === "TokenAccount") { + const parentId = defaultAccount.parentId; + return flattenedAccounts.find(a => a.id === parentId); + } + }, [defaultAccount, flattenedAccounts]); + // Remove "SWAP" and "BUY" redundant buttons when portafolio exchange banner is available const portfolioExchangeBanner = useFeature("portfolioExchangeBanner"); const onBuy = useCallback(() => { @@ -160,9 +167,10 @@ export default function BalanceInfos({ state: { from: history.location.pathname, defaultAccount, + defaultParentAccount: parentAccount, }, }); - }, [history, defaultAccount]); + }, [history, defaultAccount, parentAccount]); const ref = useRef(null); const { width } = useResize(ref); diff --git a/apps/ledger-live-desktop/src/renderer/screens/asset/AssetBalanceSummaryHeader.tsx b/apps/ledger-live-desktop/src/renderer/screens/asset/AssetBalanceSummaryHeader.tsx index a7c760c5239d..b400fe670dc0 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/asset/AssetBalanceSummaryHeader.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/asset/AssetBalanceSummaryHeader.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useEffect, useMemo } from "react"; -import { useDispatch } from "react-redux"; +import { useDispatch, useSelector } from "react-redux"; import { Currency, CryptoCurrency, TokenCurrency, Unit } from "@ledgerhq/types-cryptoassets"; import { setCountervalueFirst } from "~/renderer/actions/settings"; @@ -22,6 +22,7 @@ import useStakeFlow from "~/renderer/screens/stake"; import { stakeDefaultTrack } from "~/renderer/screens/stake/constants"; import { AccountLike, BalanceHistoryWithCountervalue, ValueChange } from "@ledgerhq/types-live"; import { useFetchCurrencyAll } from "@ledgerhq/live-common/exchange/swap/hooks/index"; +import { flattenAccountsSelector } from "~/renderer/reducers/accounts"; type Props = { isAvailable: boolean; cryptoChange: ValueChange; @@ -49,6 +50,7 @@ export default function AssetBalanceSummaryHeader({ const dispatch = useDispatch(); const { t } = useTranslation(); const history = useHistory(); + const flattenAccounts = useSelector(flattenAccountsSelector); const cvUnit = counterValue.units[0]; const data = useMemo( @@ -71,6 +73,13 @@ export default function AssetBalanceSummaryHeader({ data.reverse(); } }, [countervalueFirst, data]); + + const parentAccount = useMemo(() => { + if (account.type === "TokenAccount") { + return flattenAccounts.find(a => a.id === account.parentId); + } + }, [account, flattenAccounts]); + const primaryKey = data[0].unit.code; const secondaryKey = data[1].unit.code; const { isCurrencyAvailable } = useRampCatalog(); @@ -109,11 +118,12 @@ export default function AssetBalanceSummaryHeader({ pathname: "/swap", state: { defaultAccount: account, + defaultParentAccount: parentAccount, defaultCurrency: currency, from: history.location.pathname, }, }); - }, [currency, history, swapDefaultTrack, account]); + }, [currency, swapDefaultTrack, history, account, parentAccount]); const onStake = useCallback(() => { track("button_clicked2", { From 82beaa0be485a48c4b28791e3bb65d59208741b0 Mon Sep 17 00:00:00 2001 From: Kieran Allen Date: Fri, 4 Oct 2024 12:46:37 +0100 Subject: [PATCH 37/86] chore: add changeset --- .changeset/three-islands-carry.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/three-islands-carry.md diff --git a/.changeset/three-islands-carry.md b/.changeset/three-islands-carry.md new file mode 100644 index 000000000000..36eaaef28c15 --- /dev/null +++ b/.changeset/three-islands-carry.md @@ -0,0 +1,5 @@ +--- +"ledger-live-desktop": patch +--- + +add default parent account where missing From 1e6fba31780cf11cc5fab3511fae536d2dc46b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Prohaszka?= <104785785+sprohaszka-ledger@users.noreply.github.com> Date: Fri, 4 Oct 2024 14:03:20 +0200 Subject: [PATCH 38/86] [Coin-Fmk] Some clean-up (#7801) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: remove unecessary files Signed-off-by: Stéphane Prohaszka * chore: remove network from coin-framework Algorand module impacted * refactor: migrate algorand from legacy to new live-network method * chore: remove unused derivation mode --------- Signed-off-by: Stéphane Prohaszka --- libs/coin-framework/src/api/index.ts | 5 + libs/coin-framework/src/cache.ts | 41 ----- libs/coin-framework/src/derivation.ts | 4 +- libs/coin-framework/src/errors.test.ts | 21 --- libs/coin-framework/src/network.ts | 7 - .../coin-algorand/src/api/algodv2.ts | 117 ++++++++------ .../coin-algorand/src/api/index.ts | 10 +- .../coin-algorand/src/api/indexer.ts | 150 +++++++++++++----- .../packages/types-live/src/derivation.ts | 5 - 9 files changed, 193 insertions(+), 167 deletions(-) delete mode 100644 libs/coin-framework/src/cache.ts delete mode 100644 libs/coin-framework/src/errors.test.ts delete mode 100644 libs/coin-framework/src/network.ts diff --git a/libs/coin-framework/src/api/index.ts b/libs/coin-framework/src/api/index.ts index eea524d65570..78b6395f7e30 100644 --- a/libs/coin-framework/src/api/index.ts +++ b/libs/coin-framework/src/api/index.ts @@ -1 +1,6 @@ +/** + * Module related to all API exposition constraints and helper. + * One consumer of this API is Alpaca. + */ + export * from "./types"; diff --git a/libs/coin-framework/src/cache.ts b/libs/coin-framework/src/cache.ts deleted file mode 100644 index 1c8b806a0482..000000000000 --- a/libs/coin-framework/src/cache.ts +++ /dev/null @@ -1,41 +0,0 @@ -import LRU from "lru-cache"; - -// Copy from live-common/cache.ts -// Need to be moved in a lower package. -export type CacheRes, T> = { - (...args: A): Promise; - force: (...args: A) => Promise; - hydrate: (key: string, value: T) => void; - clear: (key: string) => void; - reset: () => void; -}; - -// Extracted from `makeLRUCache` function defined in live-common/cache.ts -// Need to be moved in a lower package. -export type LRUCacheFn = , T>( - f: (...args: A) => Promise, - keyExtractor?: (...args: A) => string, - lruOpts?: LRU.Options, -) => CacheRes; - -export const makeNoCache: LRUCacheFn = , T>( - f: (...args: A) => Promise, -): CacheRes => { - const result = (...args: A) => { - return f(...args).catch(e => { - throw e; - }); - }; - - result.force = (...args: A) => { - return f(...args).catch(e => { - throw e; - }); - }; - - result.hydrate = () => {}; - result.clear = () => {}; - result.reset = () => {}; - - return result; -}; diff --git a/libs/coin-framework/src/derivation.ts b/libs/coin-framework/src/derivation.ts index 2dedd78dc160..72c57c9df874 100644 --- a/libs/coin-framework/src/derivation.ts +++ b/libs/coin-framework/src/derivation.ts @@ -8,7 +8,7 @@ import invariant from "invariant"; import { Observable, defer, empty, of, range } from "rxjs"; import { catchError, concatMap, map, switchMap, takeWhile } from "rxjs/operators"; -export type ModeSpec = { +type ModeSpec = { mandatoryEmptyAccountSkip?: number; isNonIterable?: boolean; startsAt?: number; @@ -45,7 +45,7 @@ export type GetAddressOptions = { segwit?: boolean; }; -const modes: Readonly>> = Object.freeze({ +const modes: Readonly> = Object.freeze({ // this is "default" by convention "": {}, // MEW legacy derivation diff --git a/libs/coin-framework/src/errors.test.ts b/libs/coin-framework/src/errors.test.ts deleted file mode 100644 index cb5d5bca2a4c..000000000000 --- a/libs/coin-framework/src/errors.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { UnsupportedDerivation } from "./errors"; - -function functionA() { - throw new UnsupportedDerivation(); -} - -describe("custom errors", () => { - test("error instanceof", () => { - try { - functionA(); - } catch (e: any) { - expect(e).toBeInstanceOf(UnsupportedDerivation); - } - }); - - test("promise error instanceof", () => { - expect(Promise.reject(new UnsupportedDerivation())).rejects.toBeInstanceOf( - UnsupportedDerivation, - ); - }); -}); diff --git a/libs/coin-framework/src/network.ts b/libs/coin-framework/src/network.ts deleted file mode 100644 index 46824fdcb008..000000000000 --- a/libs/coin-framework/src/network.ts +++ /dev/null @@ -1,7 +0,0 @@ -type MethodType = "GET" | "POST"; -export type NetworkRequestCall = (options: { - method: MethodType; - url?: string; - data?: any; - headers?: any; -}) => Promise; diff --git a/libs/coin-modules/coin-algorand/src/api/algodv2.ts b/libs/coin-modules/coin-algorand/src/api/algodv2.ts index 7a15ba26410c..0795178dc7da 100644 --- a/libs/coin-modules/coin-algorand/src/api/algodv2.ts +++ b/libs/coin-modules/coin-algorand/src/api/algodv2.ts @@ -1,4 +1,4 @@ -import { NetworkRequestCall } from "@ledgerhq/coin-framework/network"; +import network from "@ledgerhq/live-network"; import { getEnv } from "@ledgerhq/live-env"; import { BigNumber } from "bignumber.js"; import { @@ -13,59 +13,78 @@ const NODE_URL = `${BASE_URL}/ps2/v2`; const fullUrl = (route: string): string => `${NODE_URL}${route}`; -export const getAccount = - (network: NetworkRequestCall) => - async (address: string): Promise => { - const { data } = await network({ - method: "GET", - url: fullUrl(`/accounts/${address}`), - }); +type ExplorerAccount = { + assets: { + "asset-id": number; + amount: number; + }[]; + round: number; + address: string; + amount: number; + "pending-rewards": number; +}; - const assets: AlgoAsset[] = data.assets - ? // FIXME: what is the type of `a`? - data.assets.map((a: any): AlgoAsset => { - return { - assetId: a["asset-id"].toString(), - balance: new BigNumber(a.amount), - }; - }) - : []; +export const getAccount = async (address: string): Promise => { + const { data } = await network({ + url: fullUrl(`/accounts/${address}`), + }); - return { - round: data.round, - address: data.address, - balance: new BigNumber(data.amount), - pendingRewards: new BigNumber(data["pending-rewards"]), - assets, - }; + const assets: AlgoAsset[] = data.assets + ? // FIXME: what is the type of `a`? + data.assets.map((a): AlgoAsset => { + return { + assetId: a["asset-id"].toString(), + balance: new BigNumber(a.amount), + }; + }) + : []; + + return { + round: data.round, + address: data.address, + balance: new BigNumber(data.amount), + pendingRewards: new BigNumber(data["pending-rewards"]), + assets, }; +}; + +type ExplorerTransactioParams = { + "consensus-version": string; + fee: number; + "genesis-hash": string; + "genesis-id": string; + "first-round"?: number; + "last-round": number; + "min-fee": number; +}; -export const getTransactionParams = - (network: NetworkRequestCall) => async (): Promise => { - const { data } = await network({ - method: "GET", - url: fullUrl(`/transactions/params`), - }); +export const getTransactionParams = async (): Promise => { + const { data } = await network({ + url: fullUrl(`/transactions/params`), + }); - return { - fee: data["fee"], - minFee: data["min-fee"], - firstRound: data["first-round"] ?? 0, - lastRound: data["last-round"], - genesisID: data["genesis-id"], - genesisHash: data["genesis-hash"], - }; + return { + fee: data["fee"], + minFee: data["min-fee"], + firstRound: data["first-round"] ?? 0, + lastRound: data["last-round"], + genesisID: data["genesis-id"], + genesisHash: data["genesis-hash"], }; +}; -export const broadcastTransaction = - (network: NetworkRequestCall) => - async (payload: Buffer): Promise => { - const { data }: { data: AlgoTransactionBroadcastResponse } = await network({ - method: "POST", - url: fullUrl(`/transactions`), - data: payload, - headers: { "Content-Type": "application/x-binary" }, - }); +type ExplorerBroadcastReturn = { txId: string; }; - return data.txId; - }; +export const broadcastTransaction = async (payload: Buffer): Promise => { + const { data }: { data: AlgoTransactionBroadcastResponse } = await network< + ExplorerBroadcastReturn, + Buffer + >({ + method: "POST", + url: fullUrl(`/transactions`), + data: payload, + headers: { "Content-Type": "application/x-binary" }, + }); + + return data.txId; +}; diff --git a/libs/coin-modules/coin-algorand/src/api/index.ts b/libs/coin-modules/coin-algorand/src/api/index.ts index ace69971c8fe..0f30fb86ab84 100644 --- a/libs/coin-modules/coin-algorand/src/api/index.ts +++ b/libs/coin-modules/coin-algorand/src/api/index.ts @@ -1,4 +1,3 @@ -import network from "@ledgerhq/live-network/network"; import { AlgoAccount, AlgoTransactionParams } from "./algodv2.types"; import { broadcastTransaction, getAccount, getTransactionParams } from "./algodv2"; @@ -10,13 +9,12 @@ export * from "./algodv2.types"; export * from "./indexer.types"; export default { - getAccount: async (address: string): Promise => getAccount(network)(address), + getAccount: async (address: string): Promise => getAccount(address), - getTransactionParams: async (): Promise => getTransactionParams(network)(), + getTransactionParams: async (): Promise => getTransactionParams(), - broadcastTransaction: async (payload: Buffer): Promise => - broadcastTransaction(network)(payload), + broadcastTransaction: async (payload: Buffer): Promise => broadcastTransaction(payload), getAccountTransactions: async (address: string, startAt?: number): Promise => - getAccountTransactions(network)(address, startAt), + getAccountTransactions(address, startAt), }; diff --git a/libs/coin-modules/coin-algorand/src/api/indexer.ts b/libs/coin-modules/coin-algorand/src/api/indexer.ts index 7fcff037b6c5..1bfd7e73c6d7 100644 --- a/libs/coin-modules/coin-algorand/src/api/indexer.ts +++ b/libs/coin-modules/coin-algorand/src/api/indexer.ts @@ -1,4 +1,4 @@ -import { NetworkRequestCall } from "@ledgerhq/coin-framework/network"; +import network from "@ledgerhq/live-network"; import { getEnv } from "@ledgerhq/live-env"; import { BigNumber } from "bignumber.js"; import { @@ -7,6 +7,7 @@ import { AlgoTransaction, AlgoTransactionDetails, } from "./indexer.types"; +import { LargeNumberLike } from "crypto"; const LIMIT = 100; // Max nb of transactions per request @@ -15,42 +16,118 @@ const INDEXER_URL = `${BASE_URL}/idx2/v2`; const fullUrl = (route: string): string => `${INDEXER_URL}${route}?limit=${LIMIT}`; -export const getAccountTransactions = - (network: NetworkRequestCall) => - async (address: string, startAt?: number): Promise => { - const url = fullUrl(`/accounts/${address}/transactions`); +type ExplorerTransactions = { + "current-round": number; + "next-token": string; + transactions: ExplorerTransaction[]; +}; - let nextToken: string | undefined; - let newRawTxs: any[] = []; - const mergedTxs: AlgoTransaction[] = []; - do { - let nextUrl: string = url; - if (startAt) { - nextUrl = nextUrl.concat(`&min-round=${startAt}`); - } - if (nextToken) { - nextUrl = nextUrl.concat(`&next=${nextToken}`); - } - const { data }: { data: { transactions: any[] } } = await network({ - method: "GET", - url: nextUrl, - }); +type ExplorerTransaction = { + "application-transaction"?: { + accounts: string[]; + "application-args": string[]; + "application-id": number; + "foreign-apps": unknown[]; + "foreign-assets": number[]; + "global-state-schema": { + "num-byte-slice": number; + "num-uint": number; + }; + "local-state-schema": { + "num-byte-slice": number; + "num-uint": number; + }; + "on-completion": string; + }; + "asset-transfer-transaction"?: { + amount: number; + "asset-id": number; + "close-amount": number; + "close-to"?: string; + receiver: string; + }; + "close-rewards": number; + "closing-amount": number; + "confirmed-round": number; + fee: number; + "first-valid": number; + "genesis-hash": string; + "genesis-id": string; + "global-state-delta": { + key: string; + value: { + action: number; + uint: number; + bytes?: string; + }; + }[]; + id: string; + "intra-round-offset": number; + "last-valid": number; + "local-state-delta": { + address: string; + delta: { + key: string; + value: { + action: number; + uint: number; + }; + }[]; + }[]; + note: string; + "payment-transaction"?: { + amount: number; + "close-amount": number; + "close-remainder-to"?: string; + receiver: string; + }; + "receiver-rewards": number; + "round-time": number; + sender: string; + "sender-rewards": number; + signature: { + sig: string; + }; + "tx-type": string; +}; - // FIXME: what is the correct type? Properly type response from api above (data) - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - nextToken = data["next-token"]; - newRawTxs = data.transactions; - newRawTxs.map(parseRawTransaction).forEach(tx => mergedTxs.push(tx)); - } while (newRawTxs.length >= LIMIT); +export const getAccountTransactions = async ( + address: string, + startAt?: number, +): Promise => { + const url = fullUrl(`/accounts/${address}/transactions`); - return mergedTxs; - }; + let nextToken: string | undefined; + let newRawTxs: any[] = []; + const mergedTxs: AlgoTransaction[] = []; + do { + let nextUrl: string = url; + if (startAt) { + nextUrl = nextUrl.concat(`&min-round=${startAt}`); + } + if (nextToken) { + nextUrl = nextUrl.concat(`&next=${nextToken}`); + } + const { data }: { data: { transactions: any[] } } = await network({ + url: nextUrl, + }); + + // FIXME: what is the correct type? Properly type response from api above (data) + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + nextToken = data["next-token"]; + newRawTxs = data.transactions; + newRawTxs.map(parseRawTransaction).forEach(tx => mergedTxs.push(tx)); + } while (newRawTxs.length >= LIMIT); + + return mergedTxs; +}; -const parseRawTransaction = (tx: any): AlgoTransaction => { +const parseRawTransaction = (tx: ExplorerTransaction): AlgoTransaction => { let details: AlgoTransactionDetails | undefined = undefined; if (tx["tx-type"] === "pay") { - const info = tx["payment-transaction"]; + // If "tx-type" is "pay", we know we received a "payment-transaction" + const info = tx["payment-transaction"]!; const paymentInfo: AlgoPaymentInfo = { amount: new BigNumber(info.amount), recipientAddress: info.receiver, @@ -60,22 +137,23 @@ const parseRawTransaction = (tx: any): AlgoTransaction => { }; details = paymentInfo; } else if (tx["tx-type"] === "axfer") { - const info = tx["asset-transfer-transaction"]; + // If "tx-type" is "axfer", we know we received a "asset-transfer-transaction" + const info = tx["asset-transfer-transaction"]!; const assetTransferInfo: AlgoAssetTransferInfo = { assetAmount: new BigNumber(info.amount), - assetId: info["asset-id"], + assetId: info["asset-id"].toString(), assetRecipientAddress: info.receiver, - assetSenderAddress: info.sender, + assetSenderAddress: tx.sender, assetCloseAmount: info["close-amount"] === undefined ? undefined : new BigNumber(info["close-amount"]), - assetCloseToAddress: tx["close-to"], + assetCloseToAddress: info["close-to"], }; details = assetTransferInfo; } return { id: tx.id, - timestamp: tx["round-time"], + timestamp: tx["round-time"].toString(), round: tx["confirmed-round"], senderAddress: tx.sender, senderRewards: new BigNumber(tx["sender-rewards"]), diff --git a/libs/ledgerjs/packages/types-live/src/derivation.ts b/libs/ledgerjs/packages/types-live/src/derivation.ts index 54b69f1a3770..c68e50a275ea 100644 --- a/libs/ledgerjs/packages/types-live/src/derivation.ts +++ b/libs/ledgerjs/packages/types-live/src/derivation.ts @@ -5,8 +5,6 @@ export type DerivationMode = | "" | "ethM" | "ethMM" - | "bch_on_bitcoin_segwit" - | "legacy_on_bch" | "etcM" | "aeternity" | "tezbox" @@ -16,9 +14,6 @@ export type DerivationMode = | "taproot" | "native_segwit" | "segwit" - | "segwit_on_legacy" - | "legacy_on_segwit" - | "legacy_on_native_segwit" | "segwit_unsplit" | "sep5" | "unsplit" From ebe1b6b2afa3416079da0ee315beafa2e2a35b23 Mon Sep 17 00:00:00 2001 From: Mounir Hamzaoui Date: Fri, 4 Oct 2024 16:42:00 +0200 Subject: [PATCH 39/86] chore: add retry attempts on ios build workflow to avoid pods issues (#8015) --- .github/workflows/build-mobile-reusable.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-mobile-reusable.yml b/.github/workflows/build-mobile-reusable.yml index 92363200aa1c..347fc148042d 100644 --- a/.github/workflows/build-mobile-reusable.yml +++ b/.github/workflows/build-mobile-reusable.yml @@ -106,8 +106,13 @@ jobs: skip-pod-cache: "false" skip-turbo-cache: "false" turbo-server-token: ${{ secrets.TURBOREPO_SERVER_TOKEN }} - - name: install dependencies - run: pnpm i --filter="live-mobile..." --filter="ledger-live" --no-frozen-lockfile --unsafe-perm + - uses: nick-fields/retry@v3 + name: install dependencies + with: + max_attempts: 2 + timeout_minutes: 15 + command: pnpm i --filter="live-mobile..." --filter="ledger-live" --no-frozen-lockfile --unsafe-perm + new_command_on_retry: rm -rf ~/.cocoapods/ && pnpm clean && pnpm i --filter="live-mobile..." --filter="ledger-live" --no-frozen-lockfile --unsafe-perm - name: bundle ios and android js run: | pnpm build:llm:deps --api="http://127.0.0.1:${{ steps.caches.outputs.port }}" --token="${{ secrets.TURBOREPO_SERVER_TOKEN }}" --team="foo" From 961f56747a156bb8c167f9aac76f204fd59a326f Mon Sep 17 00:00:00 2001 From: Lucas Werey <73439207+LucasWerey@users.noreply.github.com> Date: Fri, 4 Oct 2024 18:35:26 +0200 Subject: [PATCH 40/86] :bug:(llm): lockscreen with LS (#8009) * :bug:(llm): lockscreen with LS * :bug:(llm): lockscreen with LS --- .changeset/old-bats-swim.md | 5 +++++ .../screens/AddAccount/useAddAccountViewModel.ts | 5 ++++- .../newArch/features/WalletSync/screens/Manage/index.tsx | 9 ++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 .changeset/old-bats-swim.md diff --git a/.changeset/old-bats-swim.md b/.changeset/old-bats-swim.md new file mode 100644 index 000000000000..7acd5d358b26 --- /dev/null +++ b/.changeset/old-bats-swim.md @@ -0,0 +1,5 @@ +--- +"live-mobile": patch +--- + +When user has a lock password the app get locked when he wants to sync with another instance diff --git a/apps/ledger-live-mobile/src/newArch/features/Accounts/screens/AddAccount/useAddAccountViewModel.ts b/apps/ledger-live-mobile/src/newArch/features/Accounts/screens/AddAccount/useAddAccountViewModel.ts index 53a4a2ef8685..8b45b0e93fa4 100644 --- a/apps/ledger-live-mobile/src/newArch/features/Accounts/screens/AddAccount/useAddAccountViewModel.ts +++ b/apps/ledger-live-mobile/src/newArch/features/Accounts/screens/AddAccount/useAddAccountViewModel.ts @@ -25,7 +25,10 @@ const useAddAccountViewModel = ({ isOpened, onClose }: AddAccountDrawerProps) => const dispatch = useDispatch(); const { currentStep, setCurrentStep } = useCurrentStep(); const [currentOption, setCurrentOption] = useState(Options.SCAN); - const navigateToChooseSyncMethod = () => setCurrentStep(Steps.ChooseSyncMethod); + const navigateToChooseSyncMethod = () => { + dispatch(blockPasswordLock(true)); // Avoid Background on Android + setCurrentStep(Steps.ChooseSyncMethod); + }; const navigateToQrCodeMethod = () => { dispatch(blockPasswordLock(true)); // Avoid Background on Android setCurrentStep(Steps.QrCodeMethod); diff --git a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/Manage/index.tsx b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/Manage/index.tsx index 7f79c2ee8db1..c34562385baa 100644 --- a/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/Manage/index.tsx +++ b/apps/ledger-live-mobile/src/newArch/features/WalletSync/screens/Manage/index.tsx @@ -21,6 +21,8 @@ import { AlertLedgerSyncDown } from "../../components/AlertLedgerSyncDown"; import { useLedgerSyncStatus } from "../../hooks/useLedgerSyncStatus"; import { TrustchainNotFound } from "@ledgerhq/ledger-key-ring-protocol/errors"; import { useCustomTimeOut } from "../../hooks/useCustomTimeOut"; +import { useDispatch } from "react-redux"; +import { blockPasswordLock } from "~/actions/appstate"; const WalletSyncManage = () => { const { t } = useTranslation(); @@ -40,16 +42,21 @@ const WalletSyncManage = () => { } = manageInstancesHook.memberHook; const { onClickTrack } = useLedgerSyncAnalytics(); + const dispatch = useDispatch(); const [isSyncDrawerOpen, setIsSyncDrawerOpen] = useState(false); const goToSync = () => { manageInstancesHook.checkInstances(); + dispatch(blockPasswordLock(true)); setIsSyncDrawerOpen(true); onClickTrack({ button: AnalyticsButton.Synchronize, page: AnalyticsPage.LedgerSyncSettings }); }; - const closeSyncDrawer = () => setIsSyncDrawerOpen(false); + const closeSyncDrawer = () => { + setIsSyncDrawerOpen(false); + dispatch(blockPasswordLock(false)); + }; const goToManageBackup = () => { manageKeyHook.openDrawer(); From 029656a55ce090525bc10542946e15c3becd07b2 Mon Sep 17 00:00:00 2001 From: qperrot Date: Mon, 7 Oct 2024 10:55:09 +0200 Subject: [PATCH 41/86] fix: tezos llm Add custom validator in common.js --- .../src/families/tezos/DelegationFlow/SelectValidator.tsx | 2 +- apps/ledger-live-mobile/src/locales/en/common.json | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/ledger-live-mobile/src/families/tezos/DelegationFlow/SelectValidator.tsx b/apps/ledger-live-mobile/src/families/tezos/DelegationFlow/SelectValidator.tsx index 3b87ae2907bf..d37d1661dc50 100644 --- a/apps/ledger-live-mobile/src/families/tezos/DelegationFlow/SelectValidator.tsx +++ b/apps/ledger-live-mobile/src/families/tezos/DelegationFlow/SelectValidator.tsx @@ -323,7 +323,7 @@ export default function SelectValidator({ navigation, route }: Props) { + + + + + + + + + + {t("transfer.receive.memoTag.title")} + + + + {t("transfer.receive.memoTag.description")} + + + + + + + + ); +} diff --git a/apps/ledger-live-mobile/src/screens/ReceiveFunds/NeedMemoTagModal/index.ts b/apps/ledger-live-mobile/src/screens/ReceiveFunds/NeedMemoTagModal/index.ts new file mode 100644 index 000000000000..31e74da5e7ca --- /dev/null +++ b/apps/ledger-live-mobile/src/screens/ReceiveFunds/NeedMemoTagModal/index.ts @@ -0,0 +1 @@ +export * from "./NeedMemoTagModal"; diff --git a/apps/ledger-live-mobile/src/utils/constants.ts b/apps/ledger-live-mobile/src/utils/constants.ts index 21855c86e586..64fcc818dd9f 100644 --- a/apps/ledger-live-mobile/src/utils/constants.ts +++ b/apps/ledger-live-mobile/src/utils/constants.ts @@ -1,4 +1,5 @@ import Config from "react-native-config"; +import { CryptoCurrencyId } from "@ledgerhq/types-cryptoassets"; export const SYNC_DELAY = 2500; export const BLE_SCANNING_NOTHING_TIMEOUT = (Config.MOCK ? 60 : 30) * 1000; @@ -7,3 +8,17 @@ export const VIBRATION_PATTERN_ERROR = [0, 150]; export const LEDGER_APPLE_WARNING_EXPLAINER_LINK = "https://support.ledger.com/hc/articles/12309873917853?docs=true"; export const PTX_SERVICES_TOAST_ID = "PTX_SERVICES_TOAST_ID"; + +export const MEMO_TAG_COINS: string[] = [ + "ripple", + "stellar", + "cosmos", + "hedera", + "injective", + "crypto_org", + "crypto_org_croeseid", + "stacks", + "ton", + "eos", + "bsc", +] satisfies CryptoCurrencyId[]; diff --git a/apps/ledger-live-mobile/src/utils/urls.tsx b/apps/ledger-live-mobile/src/utils/urls.tsx index ca33dd4a61e7..37e4dde77a03 100644 --- a/apps/ledger-live-mobile/src/utils/urls.tsx +++ b/apps/ledger-live-mobile/src/utils/urls.tsx @@ -55,6 +55,7 @@ export const urls = { tr: "https://support.ledger.com/tr/article/4423020306705-zd", zh: "https://support.ledger.com/zh-CN/article/4423020306705-zd", }, + memoTag: "https://support.ledger.com/article/4409603715217-zd", pairingIssues: "https://support.ledger.com/article/360025864773-zd", ratingsContact: "https://support.ledger.com/article/4423020306705-zd", buyNanoX: diff --git a/libs/ui/packages/native/src/components/cta/Button/getButtonStyle.ts b/libs/ui/packages/native/src/components/cta/Button/getButtonStyle.ts index cd7f06e43d05..56e1b4ffdee3 100644 --- a/libs/ui/packages/native/src/components/cta/Button/getButtonStyle.ts +++ b/libs/ui/packages/native/src/components/cta/Button/getButtonStyle.ts @@ -17,6 +17,12 @@ export function getButtonColors(colors: Theme["colors"]): { pressedColor: "transparent", pressedOutlineColor: "transparent", }, + accent: { + primaryColor: colors.primary.c80, + secondaryColor: "rgba(0,0,255,0)", + pressedColor: "transparent", + pressedOutlineColor: "transparent", + }, disabled: { primaryColor: colors.neutral.c50, secondaryColor: colors.neutral.c30, diff --git a/libs/ui/packages/native/src/components/cta/Button/index.tsx b/libs/ui/packages/native/src/components/cta/Button/index.tsx index 413dcbda7234..8dc25543548b 100644 --- a/libs/ui/packages/native/src/components/cta/Button/index.tsx +++ b/libs/ui/packages/native/src/components/cta/Button/index.tsx @@ -20,7 +20,7 @@ export type ButtonProps = TouchableOpacityProps & BaseStyledProps & { onPressWhenDisabled?: TouchableOpacityProps["onPress"]; iconName?: string; - type?: "main" | "shade" | "error" | "color" | "default"; + type?: "main" | "shade" | "error" | "color" | "accent" | "default"; size?: "small" | "medium" | "large"; iconPosition?: "right" | "left"; outline?: boolean; diff --git a/libs/ui/packages/native/storybook/stories/Cta/Button/Button.stories.tsx b/libs/ui/packages/native/storybook/stories/Cta/Button/Button.stories.tsx index defb0888d4f8..31909f72b3c5 100644 --- a/libs/ui/packages/native/storybook/stories/Cta/Button/Button.stories.tsx +++ b/libs/ui/packages/native/storybook/stories/Cta/Button/Button.stories.tsx @@ -12,7 +12,7 @@ export default { component: Button, argTypes: { type: { - options: ["main", "error", "shade", "color", undefined], + options: ["main", "error", "shade", "color", "default", "accent", undefined], control: { type: "select" }, }, size: { From 1b3a21d5d8496c42f4dec4116fdcf59ad6f038cd Mon Sep 17 00:00:00 2001 From: Marco Toniut Date: Mon, 7 Oct 2024 16:24:20 +0100 Subject: [PATCH 61/86] CN-508: stake filters for eth staking modal (#7870) * feat: Select staking provider modal desktop v2 * feat: Select staking provider modal mobile v2 * chore: update V1 modal's folder to _deprecated * chore: add KelpDAO svg icon to mobile * chore: add P2P and RocketPool logos to mobile * chore: minor fixes * chore: changeset * feat: guard new modal behind feature flag * fix: broken types import * chore: cleanup * fix: size prop for native ChipTabs * fix: braze transform ignore on jest config * chore: update copy and add disabled filter to deprecated banner * chore: final copy * fix: icon sizes and outline for light mode * fix: visual updates to the modals * fix: visual updates to the gradient effect * feat: tracking interactions * chore: replace Braze feature flag with Firebase's * chore: address PR comments pt 1 * chore: use camelCase for translation keys * chore: extract styled-components from StakeFlowModal * chore: revert modal radius change * chore: re-arrange paddings of modal * chore: remove unnecessary check * chore: remove autoredirect with one provider on mobile version of modal --- .changeset/curvy-hornets-change.md | 13 + apps/ledger-live-desktop/src/config/urls.ts | 5 + .../StakeFlowModal/EthStakingModalBody.tsx | 118 +------- .../StakeFlowModal/component/ProviderItem.tsx | 141 +++++----- .../families/evm/StakeFlowModal/index.tsx | 248 +++++++++++++++-- .../families/evm/StakeFlowModal/styles.tsx | 97 +++++++ .../EthStakingModalBody.tsx | 146 ++++++++++ .../StakingIcon.tsx | 0 .../component/ProviderItem.tsx | 94 +++++++ .../evm/StakeFlowModal_deprecated/index.tsx | 53 ++++ .../types.ts | 0 .../utils/getTrackProperties.ts | 16 ++ .../families/evm/StakeModalVersionWrapper.tsx | 13 + .../src/renderer/families/evm/modals.ts | 2 +- .../src/types/featureFlags.ts | 1 + .../static/i18n/en/app.json | 68 ++++- .../src/components/RootDrawer/RootDrawer.tsx | 23 +- .../StakingDrawer/EvmStakingDrawerBody.tsx | 58 +--- .../EvmStakingDrawerProvider.tsx | 93 ++++--- .../EvmStakingDrawerProviderIcon.tsx | 46 ++-- .../src/families/evm/StakingDrawer/index.tsx | 147 ++++++++-- .../src/families/evm/StakingDrawer/types.ts | 16 +- .../EvmStakingDrawerBody.tsx | 85 ++++++ .../EvmStakingDrawerProvider.tsx | 81 ++++++ .../EvmStakingDrawerProviderIcon.tsx | 28 ++ .../evm/StakingDrawer_deprecated/index.tsx | 59 ++++ .../evm/StakingDrawer_deprecated/types.ts | 13 + apps/ledger-live-mobile/src/icons/Figment.tsx | 23 +- apps/ledger-live-mobile/src/icons/KelpDAO.tsx | 26 ++ apps/ledger-live-mobile/src/icons/Kiln.tsx | 13 +- apps/ledger-live-mobile/src/icons/Lido.tsx | 10 +- .../src/icons/MissingIcon.tsx | 4 +- apps/ledger-live-mobile/src/icons/P2P.tsx | 54 ++++ .../src/icons/RocketPool.tsx | 259 ++++++++++++++++++ apps/ledger-live-mobile/src/icons/Stader.tsx | 23 +- .../src/locales/en/common.json | 68 ++++- apps/ledger-live-mobile/src/utils/urls.tsx | 5 + .../src/featureFlags/defaultFeatures.ts | 1 + .../packages/types-live/src/feature.ts | 43 ++- .../icons/src/svg/book-graduation.svg | 9 + .../native/src/components/Tabs/Chip/index.tsx | 57 ++-- .../src/components/Tabs/Graph/index.tsx | 16 +- .../components/Tabs/TemplateTabs/index.tsx | 37 ++- .../react/src/components/cta/Button/index.tsx | 6 +- 44 files changed, 1903 insertions(+), 415 deletions(-) create mode 100644 .changeset/curvy-hornets-change.md create mode 100644 apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/styles.tsx create mode 100644 apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal_deprecated/EthStakingModalBody.tsx rename apps/ledger-live-desktop/src/renderer/families/evm/{StakeFlowModal => StakeFlowModal_deprecated}/StakingIcon.tsx (100%) create mode 100644 apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal_deprecated/component/ProviderItem.tsx create mode 100644 apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal_deprecated/index.tsx rename apps/ledger-live-desktop/src/renderer/families/evm/{StakeFlowModal => StakeFlowModal_deprecated}/types.ts (100%) create mode 100644 apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal_deprecated/utils/getTrackProperties.ts create mode 100644 apps/ledger-live-desktop/src/renderer/families/evm/StakeModalVersionWrapper.tsx create mode 100644 apps/ledger-live-mobile/src/families/evm/StakingDrawer_deprecated/EvmStakingDrawerBody.tsx create mode 100644 apps/ledger-live-mobile/src/families/evm/StakingDrawer_deprecated/EvmStakingDrawerProvider.tsx create mode 100644 apps/ledger-live-mobile/src/families/evm/StakingDrawer_deprecated/EvmStakingDrawerProviderIcon.tsx create mode 100644 apps/ledger-live-mobile/src/families/evm/StakingDrawer_deprecated/index.tsx create mode 100644 apps/ledger-live-mobile/src/families/evm/StakingDrawer_deprecated/types.ts create mode 100644 apps/ledger-live-mobile/src/icons/KelpDAO.tsx create mode 100644 apps/ledger-live-mobile/src/icons/P2P.tsx create mode 100644 apps/ledger-live-mobile/src/icons/RocketPool.tsx create mode 100644 libs/ui/packages/icons/src/svg/book-graduation.svg diff --git a/.changeset/curvy-hornets-change.md b/.changeset/curvy-hornets-change.md new file mode 100644 index 000000000000..f98a1c818595 --- /dev/null +++ b/.changeset/curvy-hornets-change.md @@ -0,0 +1,13 @@ +--- +"ledger-live-desktop": minor +"live-mobile": minor +"@ledgerhq/icons-ui": minor +"@ledgerhq/types-live": patch +"@ledgerhq/native-ui": patch +--- + +ledger-live-desktop: Updated staking modal. Filtering per category. New copy and design +live-mobile: Updated staking modal. Filtering per category. New copy and design +@ledgerhq/icons-ui: Add book-graduation icon +@ledgerhq/types-live: Update schema of ethStakingProviders flag +@ledgerhq/native-ui: Add `xs` size to Button diff --git a/apps/ledger-live-desktop/src/config/urls.ts b/apps/ledger-live-desktop/src/config/urls.ts index ee2bf428d1b3..083c32dc3c43 100644 --- a/apps/ledger-live-desktop/src/config/urls.ts +++ b/apps/ledger-live-desktop/src/config/urls.ts @@ -168,6 +168,11 @@ export const urls = { editEvmTx: { learnMore: "https://support.ledger.com/article/9756122596765-zd", }, + ledgerAcademy: { + whatIsEthereumRestaking: "https://www.ledger.com/academy/what-is-ethereum-restaking", + ethereumStakingHowToStakeEth: + "https://www.ledger.com/academy/ethereum-staking-how-to-stake-eth", + }, ledgerByFigmentTC: "https://cdn.figment.io/legal/Current%20Ledger_Online%20Staking%20Delgation%20Services%20Agreement.pdf", ens: "https://support.ledger.com/article/9710787581469-zd", diff --git a/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/EthStakingModalBody.tsx b/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/EthStakingModalBody.tsx index 1ec6c8d1f475..4138e3230941 100644 --- a/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/EthStakingModalBody.tsx +++ b/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/EthStakingModalBody.tsx @@ -1,59 +1,26 @@ -import { Flex, Text } from "@ledgerhq/react-ui"; -import { Account } from "@ledgerhq/types-live"; -import React, { useCallback, useState } from "react"; -import { useHistory } from "react-router-dom"; -import BigNumber from "bignumber.js"; -import { useTranslation } from "react-i18next"; - -import { appendQueryParamsToDappURL } from "@ledgerhq/live-common/platform/utils/appendQueryParamsToDappURL"; -import { getCryptoCurrencyById } from "@ledgerhq/live-common/currencies/index"; import { LiveAppManifest } from "@ledgerhq/live-common/platform/types"; +import { appendQueryParamsToDappURL } from "@ledgerhq/live-common/platform/utils/appendQueryParamsToDappURL"; +import { Flex } from "@ledgerhq/react-ui"; +import { Account, EthStakingProvider } from "@ledgerhq/types-live"; +import React, { useCallback } from "react"; +import { useHistory } from "react-router-dom"; import { track } from "~/renderer/analytics/segment"; -import CheckBox from "~/renderer/components/CheckBox"; -import EthStakeIllustration from "~/renderer/icons/EthStakeIllustration"; - -import { - CheckBoxContainer, - LOCAL_STORAGE_KEY_PREFIX, -} from "~/renderer/modals/Receive/steps/StepReceiveStakingFlow"; -import { ListProvider, ListProviders } from "./types"; +import { ProviderItem } from "./component/ProviderItem"; import { getTrackProperties } from "./utils/getTrackProperties"; -import ProviderItem from "./component/ProviderItem"; - -const ethMagnitude = getCryptoCurrencyById("ethereum").units[0].magnitude; - -const ETH_LIMIT = BigNumber(32).times(BigNumber(10).pow(ethMagnitude)); - -// Comparison fns for sorting providers by minimum ETH required -const ascending = (a: ListProvider, b: ListProvider) => (a?.min || 0) - (b?.min || 0); -const descending = (a: ListProvider, b: ListProvider) => (b?.min || 0) - (a?.min || 0); - type Props = { account: Account; - singleProviderRedirectMode?: boolean; onClose?: () => void; - hasCheckbox?: boolean; source?: string; - listProviders?: ListProviders; + providers: EthStakingProvider[]; }; export type StakeOnClickProps = { - provider: ListProvider; + provider: EthStakingProvider; manifest: LiveAppManifest; }; - -export function EthStakingModalBody({ - hasCheckbox = false, - singleProviderRedirectMode = true, - source, - onClose, - account, - listProviders = [], -}: Props) { - const { t } = useTranslation(); +export function EthStakingModalBody({ source, onClose, account, providers }: Props) { const history = useHistory(); - const [doNotShowAgain, setDoNotShowAgain] = useState(false); const stakeOnClick = useCallback( ({ @@ -66,6 +33,7 @@ export function EthStakingModalBody({ button: providerConfigID, ...getTrackProperties({ value, modal: source }), }); + history.push({ pathname: value, ...(customDappUrl ? { customDappUrl } : {}), @@ -78,69 +46,13 @@ export function EthStakingModalBody({ [history, account.id, onClose, source], ); - const redirectIfOnlyProvider = useCallback( - (stakeOnClickProps: StakeOnClickProps) => { - if (singleProviderRedirectMode && listProviders.length === 1) { - stakeOnClick(stakeOnClickProps); - } - }, - [singleProviderRedirectMode, listProviders.length, stakeOnClick], - ); - - const checkBoxOnChange = useCallback(() => { - const value = !doNotShowAgain; - global.localStorage.setItem(`${LOCAL_STORAGE_KEY_PREFIX}${account?.currency?.id}`, `${value}`); - setDoNotShowAgain(value); - track("button_clicked2", { - button: "not_show", - ...getTrackProperties({ value, modal: source }), - }); - }, [doNotShowAgain, account?.currency?.id, source]); - - const hasMinValidatorEth = account.spendableBalance.isGreaterThan(ETH_LIMIT); - - const listProvidersSorted = listProviders.sort(hasMinValidatorEth ? descending : ascending); - return ( - - - - {t("ethereum.stake.title")} - - {listProviders.length <= 1 && ( - - - - )} - - {t("ethereum.stake.subTitle")} - - - - - {listProvidersSorted.map(item => ( - - - - ))} + + {providers.map(x => ( + + - {hasCheckbox && ( - - - - )} - + ))} ); } diff --git a/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/component/ProviderItem.tsx b/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/component/ProviderItem.tsx index 24dead9da680..0009e312fee5 100644 --- a/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/component/ProviderItem.tsx +++ b/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/component/ProviderItem.tsx @@ -1,94 +1,113 @@ import { useRemoteLiveAppManifest } from "@ledgerhq/live-common/platform/providers/RemoteLiveAppProvider/index"; -import { Flex, Icon, Tag as TagCore, Text } from "@ledgerhq/react-ui"; -import React, { useCallback, useEffect, useMemo } from "react"; +import { useLocalLiveAppManifest } from "@ledgerhq/live-common/wallet-api/LocalLiveAppProvider/index"; +import { CryptoIcon, Flex, Icon, Text } from "@ledgerhq/react-ui"; +import { EthStakingProvider } from "@ledgerhq/types-live"; +import React, { useCallback, useMemo } from "react"; import { useTranslation } from "react-i18next"; import styled, { DefaultTheme, StyledComponent } from "styled-components"; +import ProviderIcon from "~/renderer/components/ProviderIcon"; import { StakeOnClickProps } from "../EthStakingModalBody"; -import { StakingIcon } from "../StakingIcon"; -import { ListProvider } from "../types"; -import { useLocalLiveAppManifest } from "@ledgerhq/live-common/wallet-api/LocalLiveAppProvider/index"; -export const Container: StyledComponent< - "div", - DefaultTheme, - Record, - never -> = styled(Flex)` +const IconContainer = styled.div( + ({ theme }) => ` + display: flex; + justify-content: center; + align-items: center; + width: ${theme.space[6]}px; + height: ${theme.space[6]}px; + border-radius: 100%; + background-color: ${theme.colors.opacityDefault.c05}; + margin-top: ${theme.space[3]}px; +`, +); + +function StakingIcon({ icon }: { icon?: string }) { + if (!icon) { + return null; + } + + const [iconName, iconType] = icon.split(":"); + + // if no icon type then treat as "normal" icon. + if (!iconType) { + return ( + + + + ); + } + if (iconType === "crypto") { + return ; + } + if (iconType === "provider") { + return ( + + + + ); + } + + return null; +} + +const Container: StyledComponent<"div", DefaultTheme, Record, never> = styled( + Flex, +)` cursor: pointer; - border-radius: 8px; + background-color: ${p => p.theme.colors.opacityDefault.c05}; :hover { background-color: ${p => p.theme.colors.primary.c10}; } `; -export const Tag = styled(TagCore)` - padding: 3px 6px; - > span { - font-size: 11px; - text-transform: none; - font-weight: bold; - line-height: 11.66px; - } -`; - -type Props = { - provider: ListProvider; +interface Props { + provider: EthStakingProvider; stakeOnClick(_: StakeOnClickProps): void; - redirectIfOnlyProvider(_: StakeOnClickProps): void; -}; +} -const ProviderItem = ({ provider, stakeOnClick, redirectIfOnlyProvider }: Props) => { - const { t, i18n } = useTranslation(); +export const ProviderItem = ({ provider, stakeOnClick }: Props) => { + const { t } = useTranslation(); const localManifest = useLocalLiveAppManifest(provider.liveAppId); const remoteManifest = useRemoteLiveAppManifest(provider.liveAppId); const manifest = useMemo(() => remoteManifest || localManifest, [localManifest, remoteManifest]); - const hasTag = !!provider?.min && i18n.exists(`ethereum.stake.${provider.id}.tag`); - - useEffect(() => { - if (manifest) redirectIfOnlyProvider({ provider, manifest }); - }, [redirectIfOnlyProvider, provider, manifest]); - - const stakeLink = useCallback(() => { - if (manifest) stakeOnClick({ provider, manifest }); + const handleClick = useCallback(() => { + if (manifest) { + stakeOnClick({ provider, manifest }); + } }, [provider, stakeOnClick, manifest]); return ( - - - - {t(`ethereum.stake.${provider.id}.title`)} - - {hasTag && ( - - {t(`ethereum.stake.${provider.id}.tag`)} - - )} - - + + + {t(`ethereum.stake.provider.${provider.id}.title`)} + - {t(`ethereum.stake.${provider.id}.description`)} + {provider.lst + ? t("ethereum.stake.lst") + : provider.min + ? t("ethereum.stake.requiredMinimum", { + min: provider.min, + }) + : t("ethereum.stake.noMinimum")} - - + + + {t(`ethereum.stake.rewardsStrategy.${provider.rewardsStrategy}`)} + ); }; - -export default ProviderItem; diff --git a/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/index.tsx b/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/index.tsx index 8d258c038ff1..652bd05dc35b 100644 --- a/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/index.tsx +++ b/apps/ledger-live-desktop/src/renderer/families/evm/StakeFlowModal/index.tsx @@ -1,23 +1,73 @@ -import React from "react"; -import { Account } from "@ledgerhq/types-live"; +import { getCryptoCurrencyById } from "@ledgerhq/live-common/currencies/index"; import { useFeature } from "@ledgerhq/live-common/featureFlags/index"; -import Modal, { ModalBody } from "~/renderer/components/Modal"; -import { Flex } from "@ledgerhq/react-ui"; +import { Box, Button, Flex, Icons, Text } from "@ledgerhq/react-ui"; +import { Account, EthStakingProvider, EthStakingProviderCategory } from "@ledgerhq/types-live"; +import BigNumber from "bignumber.js"; +import React, { useEffect, useMemo, useRef, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { useTheme } from "styled-components"; +import { urls } from "~/config/urls"; +import { track } from "~/renderer/analytics/segment"; import TrackPage from "~/renderer/analytics/TrackPage"; +import Modal from "~/renderer/components/Modal"; +import EthStakeIllustration from "~/renderer/icons/EthStakeIllustration"; +import { openURL } from "~/renderer/linking"; import { EthStakingModalBody } from "./EthStakingModalBody"; +import { Footer, Header, IconButton, ScrollableContainer, SHADOW_HEIGHT } from "./styles"; -type Props = { +const ethMagnitude = getCryptoCurrencyById("ethereum").units[0].magnitude; + +const BUTTON_CLICKED_TRACK_EVENT = "button_clicked"; + +const ETH_LIMIT = BigNumber(32).times(BigNumber(10).pow(ethMagnitude)); + +// Comparison fns for sorting providers by minimum ETH required +const ascending = (a: EthStakingProvider, b: EthStakingProvider) => (a?.min ?? 0) - (b?.min ?? 0); +const descending = (a: EthStakingProvider, b: EthStakingProvider) => (b?.min ?? 0) - (a?.min ?? 0); + +type Option = EthStakingProviderCategory | "all"; +const OPTION_VALUES: Option[] = ["all", "liquid", "protocol", "pooling", "restaking"] as const; + +export interface Props { account: Account; - singleProviderRedirectMode?: boolean; /** Analytics source */ source?: string; hasCheckbox?: boolean; -}; +} + +const MODAL_WIDTH = 500; + +export const StakeModal = ({ account, source }: Props) => { + const { t } = useTranslation(); + const { colors } = useTheme(); + + const hasMinValidatorEth = account.spendableBalance.isGreaterThan(ETH_LIMIT); -const StakingModal = ({ account, hasCheckbox, singleProviderRedirectMode, source }: Props) => { const ethStakingProviders = useFeature("ethStakingProviders"); const providers = ethStakingProviders?.params?.listProvider; + const [selected, setSelected] = useState