diff --git a/.github/workflows/_rust_tests.yml b/.github/workflows/_rust_tests.yml index 6abe2108be8..59857d2b1a8 100644 --- a/.github/workflows/_rust_tests.yml +++ b/.github/workflows/_rust_tests.yml @@ -243,3 +243,6 @@ jobs: cargo nextest run --no-fail-fast --test-threads 8 --package iota-graphql-e2e-tests --features pg_integration cargo nextest run --no-fail-fast --test-threads 1 --package iota-cluster-test --test local_cluster_test --features pg_integration cargo nextest run --no-fail-fast --test-threads 1 --package iota-indexer --test ingestion_tests --features pg_integration + # Iota-indexer's RPC tests, which depend on a shared runtime, are incompatible with nextest due to its process-per-test execution model. + # cargo test, on the other hand, allows tests to share state and resources by default. + cargo test --profile simulator --package iota-indexer --test rpc-tests --features shared_test_runtime diff --git a/.github/workflows/apps_wallet_prod_build.yml b/.github/workflows/apps_wallet_prod_build.yml new file mode 100644 index 00000000000..24c4cecc424 --- /dev/null +++ b/.github/workflows/apps_wallet_prod_build.yml @@ -0,0 +1,46 @@ +name: Build Wallet App (Prod) + +on: + push: + tags: + - "wallet-v[0-9]+.[0-9]+.[0-9]+" + +env: + DEFAULT_NETWORK: ${{ secrets.WALLET_PROD_DEFAULT_NETWORK }} + IOTA_NETWORKS: ${{ secrets.WALLET_PROD_IOTA_NETWORKS }} + APPS_BACKEND: ${{ secrets.WALLET_PROD_APPS_BACKEND }} + +jobs: + wallet-prod-build: + permissions: + contents: read + runs-on: [self-hosted] + steps: + - name: Checking out the repository + uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3 + - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # pin@v4.0.0 + - name: Install Nodejs + uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # pin@v4.0.2 + with: + node-version: "20" + cache: "pnpm" + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: get-npm-version + id: package-version + uses: martinbeentjes/npm-get-version-action@3cf273023a0dda27efcd3164bdfb51908dd46a5b # pin@v1.3.1 + with: + path: apps/wallet + - name: Create artifact name + shell: bash + run: | + export artifact_name="iota-wallet-${{ steps.package-version.outputs.current-version }}" + echo "artifact_name=${artifact_name}" >> $GITHUB_ENV + - name: Build Wallet + run: pnpm wallet build + - name: Upload artifacts + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # pin@v4 + with: + name: ${{ env.artifact_name }} + path: | + ./apps/wallet/dist diff --git a/.github/workflows/links_checker.yml b/.github/workflows/links_checker.yml index a56e979ac39..3d17cbeed50 100644 --- a/.github/workflows/links_checker.yml +++ b/.github/workflows/links_checker.yml @@ -38,24 +38,16 @@ jobs: './**/*.md' - name: Find the last report issue open - uses: micalevisk/last-issue-action@305829d9728f47beb0029417167a0af890edfd6e # pin@v2.1 - id: last_issue + uses: micalevisk/last-issue-action@0d40124cc99ac8601c2516007f0c98ef3d27537b # pin@v2.3 + id: last-issue with: state: open labels: broken-links - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create or update report uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd # pin@v4 with: title: Link checker report content-filepath: ${{ env.LYCHEE_OUT }} - issue-number: ${{ steps.last_issue.outputs.issue_number }} + issue-number: ${{ steps.last-issue.outputs.issue-number }} labels: broken-links - - - name: Close last report open issue - if: steps.lychee.outputs.exit_code == 0 - uses: peter-evans/close-issue@276d7966e389d888f011539a86c8920025ea0626 # pin@v3 - with: - issue-number: ${{ steps.last_issue.outputs.issue_number }} diff --git a/Cargo.lock b/Cargo.lock index fa43635bb9d..2d5b725bf12 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6815,6 +6815,7 @@ dependencies = [ "iota-rest-api", "iota-sdk 0.6.0-alpha", "iota-swarm-config", + "iota-test-transaction-builder", "iota-transaction-builder", "iota-types", "itertools 0.13.0", @@ -6835,6 +6836,7 @@ dependencies = [ "tap", "telemetry-subscribers", "tempfile", + "test-cluster", "thiserror", "tokio", "tokio-util 0.7.12", diff --git a/apps/core/src/constants/index.ts b/apps/core/src/constants/index.ts index 93409fc03e9..baca8bd0d9a 100644 --- a/apps/core/src/constants/index.ts +++ b/apps/core/src/constants/index.ts @@ -5,4 +5,5 @@ export * from './staking.constants'; export * from './recognizedPackages.constants'; export * from './coins.constants'; export * from './timelock.constants'; +export * from './migration.constants'; export * from './features.enum'; diff --git a/apps/wallet-dashboard/lib/constants/migration.constants.ts b/apps/core/src/constants/migration.constants.ts similarity index 99% rename from apps/wallet-dashboard/lib/constants/migration.constants.ts rename to apps/core/src/constants/migration.constants.ts index 41c57144881..6086a758e0f 100644 --- a/apps/wallet-dashboard/lib/constants/migration.constants.ts +++ b/apps/core/src/constants/migration.constants.ts @@ -1,5 +1,6 @@ // Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 + export const STARDUST_PACKAGE_ID = '000000000000000000000000000000000000000000000000000000000000107a'; export const STARDUST_BASIC_OUTPUT_TYPE = `${STARDUST_PACKAGE_ID}::basic_output::BasicOutput<0x2::iota::IOTA>`; diff --git a/apps/core/src/hooks/index.ts b/apps/core/src/hooks/index.ts index 0219881a4d2..fe71839183a 100644 --- a/apps/core/src/hooks/index.ts +++ b/apps/core/src/hooks/index.ts @@ -37,5 +37,6 @@ export * from './useUnlockTimelockedObjectsTransaction'; export * from './useGetAllOwnedObjects'; export * from './useGetTimelockedStakedObjects'; export * from './useGetActiveValidatorsInfo'; +export * from './useCursorPagination'; export * from './stake'; diff --git a/apps/core/src/hooks/useCursorPagination.ts b/apps/core/src/hooks/useCursorPagination.ts new file mode 100644 index 00000000000..c1c8c6cfc98 --- /dev/null +++ b/apps/core/src/hooks/useCursorPagination.ts @@ -0,0 +1,56 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +import { useState } from 'react'; +import { type InfiniteData, type UseInfiniteQueryResult } from '@tanstack/react-query'; + +interface PaginationProps { + hasFirst: boolean; + hasPrev: boolean; + hasNext: boolean; + onFirst(): void; + onPrev(): void; + onNext(): void; +} + +interface CursorPaginationProps extends PaginationProps { + currentPage: number; +} + +export interface PaginationResponse { + nextCursor: Cursor | null; + hasNextPage: boolean; +} + +export function useCursorPagination(query: UseInfiniteQueryResult>) { + const [currentPage, setCurrentPage] = useState(0); + + return { + ...query, + data: query.data?.pages[currentPage], + pagination: { + onFirst: () => setCurrentPage(0), + onNext: () => { + if (!query.data || query.isFetchingNextPage) { + return; + } + + // Make sure we are at the end before fetching another page + if (currentPage >= query.data.pages.length - 1) { + query.fetchNextPage(); + } + + setCurrentPage(currentPage + 1); + }, + onPrev: () => { + setCurrentPage(Math.max(currentPage - 1, 0)); + }, + hasFirst: currentPage !== 0, + hasNext: + !query.isFetchingNextPage && + (currentPage < (query.data?.pages.length ?? 0) - 1 || !!query.hasNextPage), + hasPrev: currentPage !== 0, + currentPage, + } satisfies CursorPaginationProps, + }; +} diff --git a/apps/explorer/src/components/activity/EpochsActivityTable.tsx b/apps/explorer/src/components/activity/EpochsActivityTable.tsx index d3f50c0ad5b..f0db0b602ce 100644 --- a/apps/explorer/src/components/activity/EpochsActivityTable.tsx +++ b/apps/explorer/src/components/activity/EpochsActivityTable.tsx @@ -4,10 +4,11 @@ import { InfoBox, InfoBoxStyle, InfoBoxType, Select, SelectSize } from '@iota/apps-ui-kit'; import { useIotaClientQuery, useIotaClient, useIotaClientInfiniteQuery } from '@iota/dapp-kit'; +import { useCursorPagination } from '@iota/core'; import { Warning } from '@iota/ui-icons'; import { useQuery } from '@tanstack/react-query'; import { useState } from 'react'; -import { PlaceholderTable, TableCard, useCursorPagination } from '~/components/ui'; +import { PlaceholderTable, TableCard } from '~/components/ui'; import { PAGE_SIZES_RANGE_20_60 } from '~/lib/constants'; import { generateEpochsTableColumns } from '~/lib/ui'; import { numberSuffix } from '~/lib/utils'; diff --git a/apps/explorer/src/components/activity/TransactionsActivityTable.tsx b/apps/explorer/src/components/activity/TransactionsActivityTable.tsx index ac46b7e9dc2..e5f06e71af0 100644 --- a/apps/explorer/src/components/activity/TransactionsActivityTable.tsx +++ b/apps/explorer/src/components/activity/TransactionsActivityTable.tsx @@ -5,7 +5,8 @@ import { useIotaClient } from '@iota/dapp-kit'; import { useQuery } from '@tanstack/react-query'; import { useEffect, useRef, useState } from 'react'; -import { PlaceholderTable, TableCard, useCursorPagination } from '~/components/ui'; +import { PlaceholderTable, TableCard } from '~/components/ui'; +import { useCursorPagination } from '@iota/core'; import { DEFAULT_TRANSACTIONS_LIMIT, useGetTransactionBlocks, diff --git a/apps/explorer/src/components/checkpoints/CheckpointsTable.tsx b/apps/explorer/src/components/checkpoints/CheckpointsTable.tsx index 46baed3dd09..6d90547d25e 100644 --- a/apps/explorer/src/components/checkpoints/CheckpointsTable.tsx +++ b/apps/explorer/src/components/checkpoints/CheckpointsTable.tsx @@ -6,11 +6,12 @@ import { InfoBox, InfoBoxStyle, InfoBoxType, Select, SelectSize } from '@iota/ap import { useIotaClientQuery } from '@iota/dapp-kit'; import { Warning } from '@iota/ui-icons'; import { useMemo, useState } from 'react'; -import { PlaceholderTable, TableCard, useCursorPagination } from '~/components/ui'; +import { PlaceholderTable, TableCard } from '~/components/ui'; import { DEFAULT_CHECKPOINTS_LIMIT, useGetCheckpoints } from '~/hooks/useGetCheckpoints'; import { PAGE_SIZES_RANGE_20_60 } from '~/lib/constants'; import { generateCheckpointsTableColumns } from '~/lib/ui'; import { numberSuffix } from '~/lib/utils'; +import { useCursorPagination } from '@iota/core'; interface CheckpointsTableProps { disablePagination?: boolean; diff --git a/apps/explorer/src/components/owned-objects/OwnedObjects.tsx b/apps/explorer/src/components/owned-objects/OwnedObjects.tsx index a55f4ab536e..f7f7aa07733 100644 --- a/apps/explorer/src/components/owned-objects/OwnedObjects.tsx +++ b/apps/explorer/src/components/owned-objects/OwnedObjects.tsx @@ -2,7 +2,12 @@ // Modifications Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 -import { useGetKioskContents, useGetOwnedObjects, useLocalStorage } from '@iota/core'; +import { + useGetKioskContents, + useGetOwnedObjects, + useLocalStorage, + useCursorPagination, +} from '@iota/core'; import { Button, ButtonSize, @@ -27,7 +32,7 @@ import clsx from 'clsx'; import { useEffect, useMemo, useState } from 'react'; import { ListView, SmallThumbnailsView, ThumbnailsView } from '~/components'; import { ObjectViewMode } from '~/lib/enums'; -import { Pagination, useCursorPagination } from '~/components/ui'; +import { Pagination } from '~/components/ui'; import { PAGE_SIZES_RANGE_10_50 } from '~/lib/constants'; const SHOW_PAGINATION_MAX_ITEMS = 9; diff --git a/apps/explorer/src/components/ui/Pagination.tsx b/apps/explorer/src/components/ui/Pagination.tsx index af200b605f0..3dceec84667 100644 --- a/apps/explorer/src/components/ui/Pagination.tsx +++ b/apps/explorer/src/components/ui/Pagination.tsx @@ -4,7 +4,6 @@ import { Button, ButtonSize, ButtonType } from '@iota/apps-ui-kit'; import { ArrowLeft, ArrowRight, DoubleArrowLeft } from '@iota/ui-icons'; -import { type InfiniteData, type UseInfiniteQueryResult } from '@tanstack/react-query'; import { useState } from 'react'; interface PaginationProps { @@ -16,49 +15,12 @@ interface PaginationProps { onNext(): void; } -interface CursorPaginationProps extends PaginationProps { - currentPage: number; -} - export interface PaginationResponse { nextCursor: Cursor | null; hasNextPage: boolean; } -export function useCursorPagination(query: UseInfiniteQueryResult>) { - const [currentPage, setCurrentPage] = useState(0); - - return { - ...query, - data: query.data?.pages[currentPage], - pagination: { - onFirst: () => setCurrentPage(0), - onNext: () => { - if (!query.data || query.isFetchingNextPage) { - return; - } - - // Make sure we are at the end before fetching another page - if (currentPage >= query.data.pages.length - 1) { - query.fetchNextPage(); - } - - setCurrentPage(currentPage + 1); - }, - onPrev: () => { - setCurrentPage(Math.max(currentPage - 1, 0)); - }, - hasFirst: currentPage !== 0, - hasNext: - !query.isFetchingNextPage && - (currentPage < (query.data?.pages.length ?? 0) - 1 || !!query.hasNextPage), - hasPrev: currentPage !== 0, - currentPage, - } satisfies CursorPaginationProps, - }; -} - -/** @deprecated Prefer `useCursorPagination` + `useInfiniteQuery` for pagination. */ +/** @deprecated Prefer `useCursorPagination` from core + `useInfiniteQuery` for pagination. */ export function usePaginationStack() { const [stack, setStack] = useState([]); diff --git a/apps/explorer/src/pages/checkpoints/CheckpointTransactionBlocks.tsx b/apps/explorer/src/pages/checkpoints/CheckpointTransactionBlocks.tsx index f5370c56255..0cc6b34f8fd 100644 --- a/apps/explorer/src/pages/checkpoints/CheckpointTransactionBlocks.tsx +++ b/apps/explorer/src/pages/checkpoints/CheckpointTransactionBlocks.tsx @@ -4,7 +4,8 @@ import { DropdownPosition, Select, SelectSize } from '@iota/apps-ui-kit'; import { useState } from 'react'; -import { PlaceholderTable, TableCard, useCursorPagination } from '~/components/ui'; +import { PlaceholderTable, TableCard } from '~/components/ui'; +import { useCursorPagination } from '@iota/core'; import { DEFAULT_TRANSACTIONS_LIMIT, useGetTransactionBlocks, diff --git a/apps/ui-kit/src/lib/components/atoms/visual-asset-card/index.ts b/apps/ui-kit/src/lib/components/atoms/visual-asset-card/index.ts index ce1d450e13d..05a2d49f88d 100644 --- a/apps/ui-kit/src/lib/components/atoms/visual-asset-card/index.ts +++ b/apps/ui-kit/src/lib/components/atoms/visual-asset-card/index.ts @@ -1,5 +1,5 @@ // Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 -export { VisualAssetCard } from './VisualAssetCard'; +export * from './VisualAssetCard'; export * from './visual-asset-card.enums'; diff --git a/apps/ui-kit/src/lib/components/molecules/card/card.classes.ts b/apps/ui-kit/src/lib/components/molecules/card/card.classes.ts index 4dd93547069..b1d9987f968 100644 --- a/apps/ui-kit/src/lib/components/molecules/card/card.classes.ts +++ b/apps/ui-kit/src/lib/components/molecules/card/card.classes.ts @@ -13,9 +13,9 @@ export const IMAGE_VARIANT_CLASSES: { [key in ImageShape]: string } = { }; export const IMAGE_BG_CLASSES: { [key in ImageType]: string } = { - [ImageType.Placeholder]: ``, - [ImageType.BgSolid]: `bg-neutral-96`, - [ImageType.BgTransparent]: ``, + [ImageType.Placeholder]: '', + [ImageType.BgSolid]: 'bg-neutral-96 dark:bg-neutral-10', + [ImageType.BgTransparent]: '', }; export const CARD_TYPE_CLASSES: Record = { diff --git a/apps/wallet-dashboard/app/(protected)/assets/page.tsx b/apps/wallet-dashboard/app/(protected)/assets/page.tsx index 1f1f4d085f3..db4929addcf 100644 --- a/apps/wallet-dashboard/app/(protected)/assets/page.tsx +++ b/apps/wallet-dashboard/app/(protected)/assets/page.tsx @@ -3,15 +3,18 @@ 'use client'; -import { AssetCard, VirtualList } from '@/components'; +import { AssetCard, PageSizeSelector, PaginationOptions } from '@/components'; import { ASSETS_ROUTE } from '@/lib/constants/routes.constants'; -import { Panel, Title, Chip } from '@iota/apps-ui-kit'; -import { hasDisplayData, useGetOwnedObjects } from '@iota/core'; +import { Panel, Title, Chip, TitleSize, DropdownPosition } from '@iota/apps-ui-kit'; +import { hasDisplayData, useCursorPagination, useGetOwnedObjects } from '@iota/core'; import { useCurrentAccount } from '@iota/dapp-kit'; import { IotaObjectData } from '@iota/iota-sdk/client'; import { useState } from 'react'; import { AssetCategory } from '@/lib/enums'; -import Link from 'next/link'; +import { VisibilityOff } from '@iota/ui-icons'; +import { useRouter } from 'next/navigation'; + +const PAGINATION_RANGE = [20, 40, 60]; const ASSET_CATEGORIES: { label: string; value: AssetCategory }[] = [ { @@ -26,22 +29,22 @@ const ASSET_CATEGORIES: { label: string; value: AssetCategory }[] = [ export default function AssetsDashboardPage(): React.JSX.Element { const [selectedCategory, setSelectedCategory] = useState(AssetCategory.Visual); + const [limit, setLimit] = useState(PAGINATION_RANGE[1]); + const router = useRouter(); const account = useCurrentAccount(); - const { - data: ownedObjects, - fetchNextPage, - hasNextPage, - isFetchingNextPage, - } = useGetOwnedObjects(account?.address); + const ownedObjectsQuery = useGetOwnedObjects(account?.address, undefined, limit); + + const { data, pagination } = useCursorPagination(ownedObjectsQuery); + + const { data: ownedObjects } = data || {}; const [visual, nonVisual] = (() => { const visual: IotaObjectData[] = []; const nonVisual: IotaObjectData[] = []; - ownedObjects?.pages - .flatMap((page) => page.data) - .filter((asset) => asset.data && asset.data.objectId) + ownedObjects + ?.filter((asset) => asset.data && asset.data.objectId) .forEach((asset) => { if (asset.data) { if (hasDisplayData(asset)) { @@ -64,7 +67,7 @@ export default function AssetsDashboardPage(): React.JSX.Element { return ( - + <Title title="Assets" size={TitleSize.Medium} /> <div className="px-lg"> <div className="flex flex-row items-center justify-start gap-xs py-xs"> {ASSET_CATEGORIES.map((tab) => ( @@ -77,18 +80,31 @@ export default function AssetsDashboardPage(): React.JSX.Element { ))} </div> - <div className="max-h-[600px] overflow-auto py-sm"> - <VirtualList - items={assetList} - hasNextPage={hasNextPage} - isFetchingNextPage={isFetchingNextPage} - fetchNextPage={fetchNextPage} - estimateSize={() => 180} - render={(asset) => ( - <Link href={ASSETS_ROUTE.path + `/${asset.objectId}`}> - <AssetCard asset={asset} /> - </Link> - )} + <div className="grid-template-visual-assets grid max-h-[600px] gap-md overflow-auto py-sm"> + {assetList.map((asset) => ( + <div key={asset.digest}> + <AssetCard + asset={asset} + icon={<VisibilityOff />} + onClick={() => + router.push(ASSETS_ROUTE.path + `/${asset.objectId}`) + } + /> + </div> + ))} + </div> + <div className="flex flex-row items-center justify-end py-xs"> + <PaginationOptions + pagination={pagination} + action={ + <PageSizeSelector + pagination={pagination} + range={PAGINATION_RANGE} + dropdownPosition={DropdownPosition.Top} + setLimit={(e) => setLimit(e)} + limit={limit.toString()} + /> + } /> </div> </div> diff --git a/apps/wallet-dashboard/app/(protected)/home/page.tsx b/apps/wallet-dashboard/app/(protected)/home/page.tsx index 0ffe5f2eb76..61ba1487213 100644 --- a/apps/wallet-dashboard/app/(protected)/home/page.tsx +++ b/apps/wallet-dashboard/app/(protected)/home/page.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 'use client'; -import { AccountBalance, MyCoins, StakingOverview } from '@/components'; +import { AccountBalance, MyCoins, TransactionsOverview, StakingOverview } from '@/components'; import { useFeature } from '@growthbook/growthbook-react'; import { Feature } from '@iota/core'; import { useCurrentAccount, useCurrentWallet } from '@iota/dapp-kit'; @@ -47,7 +47,7 @@ function HomeDashboardPage(): JSX.Element { Vesting </div> <div style={{ gridArea: 'activity' }} className="flex grow overflow-hidden"> - Activity + <TransactionsOverview /> </div> </div> </> diff --git a/apps/wallet-dashboard/app/(protected)/migrations/page.tsx b/apps/wallet-dashboard/app/(protected)/migrations/page.tsx index 3549f4d2080..645497c4030 100644 --- a/apps/wallet-dashboard/app/(protected)/migrations/page.tsx +++ b/apps/wallet-dashboard/app/(protected)/migrations/page.tsx @@ -3,48 +3,43 @@ 'use client'; import { VirtualList } from '@/components'; +import { useGetCurrentEpochStartTimestamp } from '@/hooks'; +import { groupStardustObjectsByMigrationStatus } from '@/lib/utils'; import { STARDUST_BASIC_OUTPUT_TYPE, STARDUST_NFT_OUTPUT_TYPE, -} from '@/lib/constants/migration.constants'; -import { useGetOwnedObjects } from '@iota/core'; + useGetAllOwnedObjects, +} from '@iota/core'; import { useCurrentAccount, useIotaClientContext } from '@iota/dapp-kit'; import { getNetwork, IotaObjectData } from '@iota/iota-sdk/client'; function MigrationDashboardPage(): JSX.Element { const account = useCurrentAccount(); + const address = account?.address || ''; const { network } = useIotaClientContext(); const { explorer } = getNetwork(network); + const { data: currentEpochMs } = useGetCurrentEpochStartTimestamp(); - const { - data: basicOutputObjects, - fetchNextPage: fetchNextPageBasic, - hasNextPage: hasNextPageBasic, - isFetchingNextPage: isFetchingNextPageBasic, - } = useGetOwnedObjects(account?.address || '', { + const { data: basicOutputObjects } = useGetAllOwnedObjects(address, { StructType: STARDUST_BASIC_OUTPUT_TYPE, }); - const { - data: nftOutputObjects, - fetchNextPage: fetchNextPageNft, - hasNextPage: hasNextPageNft, - isFetchingNextPage: isFetchingNextPageNft, - } = useGetOwnedObjects(account?.address || '', { + const { data: nftOutputObjects } = useGetAllOwnedObjects(address, { StructType: STARDUST_NFT_OUTPUT_TYPE, }); - const basicOutputs = - basicOutputObjects?.pages - .flatMap((page) => page.data) - .filter((asset) => asset.data && asset.data.objectId) - .map((response) => response.data!) ?? []; - - const nftOutputs = - nftOutputObjects?.pages - .flatMap((page) => page.data) - .filter((asset) => asset.data && asset.data.objectId) - .map((response) => response.data!) ?? []; + const { migratable: migratableBasicOutputs, unmigratable: unmigratableBasicOutputs } = + groupStardustObjectsByMigrationStatus( + basicOutputObjects ?? [], + Number(currentEpochMs), + address, + ); + const { migratable: migratableNftOutputs, unmigratable: unmigratableNftOutputs } = + groupStardustObjectsByMigrationStatus( + nftOutputObjects ?? [], + Number(currentEpochMs), + address, + ); const virtualItem = (asset: IotaObjectData): JSX.Element => ( <a href={`${explorer}/object/${asset.objectId}`} target="_blank" rel="noreferrer"> {asset.objectId} @@ -52,25 +47,35 @@ function MigrationDashboardPage(): JSX.Element { ); return ( - <div className="flex h-full w-full flex-row items-center justify-center space-y-4"> + <div className="flex h-full w-full flex-wrap items-center justify-center space-y-4"> + <div className="flex w-1/2 flex-col"> + <h1>Migratable Basic Outputs: {migratableBasicOutputs.length}</h1> + <VirtualList + items={migratableBasicOutputs} + estimateSize={() => 30} + render={virtualItem} + /> + </div> + <div className="flex w-1/2 flex-col"> + <h1>Unmigratable Basic Outputs: {unmigratableBasicOutputs.length}</h1> + <VirtualList + items={unmigratableBasicOutputs} + estimateSize={() => 30} + render={virtualItem} + /> + </div> <div className="flex w-1/2 flex-col"> - <h1>Basic Outputs</h1> + <h1>Migratable NFT Outputs: {migratableNftOutputs.length}</h1> <VirtualList - items={basicOutputs} - hasNextPage={hasNextPageBasic} - isFetchingNextPage={isFetchingNextPageBasic} - fetchNextPage={fetchNextPageBasic} + items={migratableNftOutputs} estimateSize={() => 30} render={virtualItem} /> </div> <div className="flex w-1/2 flex-col"> - <h1>Nft Outputs</h1> + <h1>Unmigratable NFT Outputs: {unmigratableNftOutputs.length}</h1> <VirtualList - items={nftOutputs} - hasNextPage={hasNextPageNft} - isFetchingNextPage={isFetchingNextPageNft} - fetchNextPage={fetchNextPageNft} + items={unmigratableNftOutputs} estimateSize={() => 30} render={virtualItem} /> diff --git a/apps/wallet-dashboard/app/globals.css b/apps/wallet-dashboard/app/globals.css index 0f6fa810858..37de49ae479 100644 --- a/apps/wallet-dashboard/app/globals.css +++ b/apps/wallet-dashboard/app/globals.css @@ -81,4 +81,8 @@ body { 'coins activity activity'; } } + + .grid-template-visual-assets { + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + } } diff --git a/apps/wallet-dashboard/app/layout.tsx b/apps/wallet-dashboard/app/layout.tsx index 8ab39e6129c..ddbf2f00280 100644 --- a/apps/wallet-dashboard/app/layout.tsx +++ b/apps/wallet-dashboard/app/layout.tsx @@ -1,67 +1,32 @@ // Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 -'use client'; -import './globals.css'; import '@iota/dapp-kit/dist/index.css'; +import './globals.css'; import { Inter } from 'next/font/google'; -import { GrowthBookProvider } from '@growthbook/growthbook-react'; -import { IotaClientProvider, lightTheme, darkTheme, WalletProvider } from '@iota/dapp-kit'; -import { getAllNetworks, getDefaultNetwork } from '@iota/iota-sdk/client'; -import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; -import React from 'react'; -import '@iota/dapp-kit/dist/index.css'; -import { Popup, PopupProvider } from '@/components/Popup'; -import { growthbook } from '@/lib/utils'; -import { Toaster } from 'react-hot-toast'; -import { ThemeProvider } from '@/contexts'; +import { Metadata } from 'next'; +import { AppProviders } from '@/providers'; +import { FontLinks } from '@/components/FontLinks'; const inter = Inter({ subsets: ['latin'] }); -growthbook.init(); + +export const metadata: Metadata = { + title: 'IOTA Wallet Dashboard', + description: 'IOTA Wallet Dashboard', +}; export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { - const [queryClient] = React.useState(() => new QueryClient()); - const bodyRef = React.useRef<HTMLBodyElement>(null); - - const allNetworks = getAllNetworks(); - const defaultNetwork = getDefaultNetwork(); - return ( <html lang="en"> - <body className={inter.className} ref={bodyRef}> - <GrowthBookProvider growthbook={growthbook}> - <QueryClientProvider client={queryClient}> - <IotaClientProvider networks={allNetworks} defaultNetwork={defaultNetwork}> - <WalletProvider - theme={[ - { - variables: lightTheme, - }, - { - selector: '.dark', - variables: darkTheme, - }, - ]} - > - <ThemeProvider> - <PopupProvider> - {children} - <Toaster - containerStyle={{ - zIndex: 99999, - }} - /> - <Popup /> - </PopupProvider> - </ThemeProvider> - </WalletProvider> - </IotaClientProvider> - </QueryClientProvider> - </GrowthBookProvider> + <body className={inter.className}> + <AppProviders> + <FontLinks /> + {children} + </AppProviders> </body> </html> ); diff --git a/apps/wallet-dashboard/components/Cards/AssetCard.tsx b/apps/wallet-dashboard/components/Cards/AssetCard.tsx index 1fda04703e9..4aa47e8801d 100644 --- a/apps/wallet-dashboard/components/Cards/AssetCard.tsx +++ b/apps/wallet-dashboard/components/Cards/AssetCard.tsx @@ -5,38 +5,37 @@ import { IotaObjectData } from '@iota/iota-sdk/client'; import React from 'react'; -import { Box, ExternalImage } from '@/components/index'; import { useGetNFTMeta } from '@iota/core'; import { FlexDirection } from '@/lib/ui/enums'; +import { VisualAssetCard, VisualAssetType, type VisualAssetCardProps } from '@iota/apps-ui-kit'; -interface AssetCardProps { +interface AssetCardProps extends Pick<VisualAssetCardProps, 'onClick' | 'onIconClick' | 'icon'> { asset: IotaObjectData; flexDirection?: FlexDirection; } -function AssetCard({ asset, flexDirection }: AssetCardProps): React.JSX.Element { +export function AssetCard({ + asset, + onClick, + onIconClick, + icon, +}: AssetCardProps): React.JSX.Element | null { const { data: nftMeta } = useGetNFTMeta(asset.objectId); + + if (!asset.display || !nftMeta || !nftMeta.imageUrl) { + return null; + } + return ( - <Box> - <div className={`flex ${flexDirection} w-full gap-2`}> - {asset.display && nftMeta && nftMeta.imageUrl && ( - <ExternalImage - src={nftMeta.imageUrl} - alt={nftMeta.name ?? asset.display.data?.name} - width={80} - height={80} - className="object-cover" - /> - )} - <div> - <p>Digest: {asset.digest}</p> - <p>Object ID: {asset.objectId}</p> - {asset.type ? <p>Type: {asset.type}</p> : null} - <p>Version: {asset.version}</p> - </div> - </div> - </Box> + <VisualAssetCard + assetSrc={nftMeta?.imageUrl ?? asset?.display?.data?.imageUrl ?? ''} + assetTitle={nftMeta?.name ?? asset?.display?.data?.name} + assetType={VisualAssetType.Image} + altText={nftMeta?.name ?? (asset?.display?.data?.name || 'NFT')} + isHoverable + icon={icon} + onClick={onClick} + onIconClick={onIconClick} + /> ); } - -export default AssetCard; diff --git a/apps/wallet-dashboard/components/Cards/index.ts b/apps/wallet-dashboard/components/Cards/index.ts index 59d8c5dd155..4f7b2563c0c 100644 --- a/apps/wallet-dashboard/components/Cards/index.ts +++ b/apps/wallet-dashboard/components/Cards/index.ts @@ -2,4 +2,4 @@ // SPDX-License-Identifier: Apache-2.0 export { default as StakeCard } from './StakeCard'; -export { default as AssetCard } from './AssetCard'; +export * from './AssetCard'; diff --git a/apps/wallet-dashboard/components/FontLinks.tsx b/apps/wallet-dashboard/components/FontLinks.tsx new file mode 100644 index 00000000000..4bdf04eb80e --- /dev/null +++ b/apps/wallet-dashboard/components/FontLinks.tsx @@ -0,0 +1,8 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +const ALLIANCE_NO2_FONT_URL = 'https://webassets.iota.org/api/protected?face=alliance-no2'; + +export function FontLinks() { + return <link rel="stylesheet" href={ALLIANCE_NO2_FONT_URL} />; +} diff --git a/apps/wallet-dashboard/components/PageSizeSelector.tsx b/apps/wallet-dashboard/components/PageSizeSelector.tsx new file mode 100644 index 00000000000..cc2e0fe1017 --- /dev/null +++ b/apps/wallet-dashboard/components/PageSizeSelector.tsx @@ -0,0 +1,38 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +'use client'; +import { Select, SelectSize } from '@iota/apps-ui-kit'; + +interface PageSizeSelectorProps { + limit: string; + setLimit: (limit: number) => void; + pagination: { + onFirst: () => void; + }; + range: number[]; + dropdownPosition?: React.ComponentProps<typeof Select>['dropdownPosition']; +} +export function PageSizeSelector({ + limit, + setLimit, + pagination, + range, + dropdownPosition, +}: PageSizeSelectorProps): React.JSX.Element { + return ( + <Select + value={limit.toString()} + options={range.map((size) => ({ + label: `${size} / page`, + id: size.toString(), + }))} + size={SelectSize.Small} + dropdownPosition={dropdownPosition} + onValueChange={(e) => { + setLimit(Number(e)); + pagination.onFirst(); + }} + /> + ); +} diff --git a/apps/wallet-dashboard/components/PaginationOptions.tsx b/apps/wallet-dashboard/components/PaginationOptions.tsx new file mode 100644 index 00000000000..eba852565cb --- /dev/null +++ b/apps/wallet-dashboard/components/PaginationOptions.tsx @@ -0,0 +1,62 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +import { Button, ButtonType, ButtonSize } from '@iota/apps-ui-kit'; +import { ArrowLeft, ArrowRight, DoubleArrowLeft, DoubleArrowRight } from '@iota/ui-icons'; + +interface PaginationOptionsProps { + pagination: { + onFirst?: () => void; + hasFirst?: boolean; + onPrev?: () => void; + hasPrev?: boolean; + onNext?: () => void; + hasNext?: boolean; + onLast?: () => void; + hasLast?: boolean; + }; + action?: React.ReactNode; +} + +export function PaginationOptions({ + pagination: { onFirst, hasFirst, onPrev, hasPrev, onNext, hasNext, onLast, hasLast }, + action, +}: PaginationOptionsProps): React.JSX.Element { + const PAGINATION_BUTTONS: React.ComponentProps<typeof Button>[] = [ + { + icon: <DoubleArrowLeft />, + disabled: !hasFirst, + onClick: onFirst, + }, + { + icon: <ArrowLeft />, + disabled: !hasPrev, + onClick: onPrev, + }, + { + icon: <ArrowRight />, + disabled: !hasNext, + onClick: onNext, + }, + { + icon: <DoubleArrowRight />, + disabled: !hasLast, + onClick: onLast, + }, + ]; + return ( + <div className="flex gap-2"> + <div className="flex flex-row items-center gap-2"> + {PAGINATION_BUTTONS.map((button, index) => ( + <Button + key={index} + type={ButtonType.Secondary} + size={ButtonSize.Small} + {...button} + /> + ))} + </div> + {action} + </div> + ); +} diff --git a/apps/wallet-dashboard/components/Popup/Popups/TransactionDetailsPopup.tsx b/apps/wallet-dashboard/components/Popup/Popups/TransactionDetailsPopup.tsx index 5ab2eb72942..bb622c166dd 100644 --- a/apps/wallet-dashboard/components/Popup/Popups/TransactionDetailsPopup.tsx +++ b/apps/wallet-dashboard/components/Popup/Popups/TransactionDetailsPopup.tsx @@ -13,7 +13,7 @@ import { StakeTransactionCard, TransactionSummary, UnstakeTransactionCard, -} from '@/components/Transaction'; +} from '@/components/transactions'; interface TransactionDetailsPopupProps { transaction: ExtendedTransaction; diff --git a/apps/wallet-dashboard/components/TransactionIcon.tsx b/apps/wallet-dashboard/components/TransactionIcon.tsx deleted file mode 100644 index 72e8eb65d06..00000000000 --- a/apps/wallet-dashboard/components/TransactionIcon.tsx +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -import { TransactionAction, TransactionState } from '@/lib/interfaces'; -import { ArrowRight, IotaLogoMark, Person, Stake, Unstake } from '@iota/ui-icons'; - -const icons = { - [TransactionAction.Send]: ( - <ArrowRight fill="currentColor" className="text-gradient-blue-start text-body -rotate-45" /> - ), - [TransactionAction.Receive]: ( - <ArrowRight fill="currentColor" className="text-gradient-blue-start text-body rotate-135" /> - ), - [TransactionAction.Transaction]: ( - <ArrowRight fill="currentColor" className="text-gradient-blue-start text-body -rotate-45" /> - ), - [TransactionAction.Staked]: ( - <Stake className="text-gradient-blue-start text-heading2 bg-transparent" /> - ), - [TransactionAction.Unstaked]: <Unstake className="text-gradient-blue-start text-heading3" />, - [TransactionAction.Rewards]: <IotaLogoMark className="text-gradient-blue-start text-body" />, - [TransactionAction.PersonalMessage]: ( - <Person fill="currentColor" className="text-gradient-blue-start text-body" /> - ), -}; - -interface TransactionIconProps { - state: TransactionState; - action: keyof typeof icons; -} - -function TransactionIcon({ state, action }: TransactionIconProps) { - const isError = state === TransactionState.Failed; - return ( - <div - className={`${ - isError ? 'bg-issue-light' : 'bg-gray-40' - } w-7.5 h-7.5 rounded-2lg flex items-center justify-center`} - > - {icons[action]} - </div> - ); -} - -export default TransactionIcon; diff --git a/apps/wallet-dashboard/components/TransactionTile.tsx b/apps/wallet-dashboard/components/TransactionTile.tsx deleted file mode 100644 index 0dda8f3f10c..00000000000 --- a/apps/wallet-dashboard/components/TransactionTile.tsx +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -'use client'; - -import React from 'react'; -import TransactionIcon from './TransactionIcon'; -import formatTimestamp from '@/lib/utils/time'; -import { usePopups } from '@/hooks'; -import { TransactionDetailsPopup, Button } from '@/components'; -import { ExtendedTransaction } from '@/lib/interfaces'; - -interface TransactionTileProps { - transaction: ExtendedTransaction; -} - -function TransactionTile({ transaction }: TransactionTileProps): JSX.Element { - const { openPopup, closePopup } = usePopups(); - - const handleDetailsClick = () => { - openPopup(<TransactionDetailsPopup transaction={transaction} onClose={closePopup} />); - }; - - return ( - <div className="border-gray-45 flex h-full w-full flex-row items-center space-x-4 rounded-md border border-solid p-4"> - <TransactionIcon state={transaction.state} action={transaction.action} /> - <div className="flex h-full w-full flex-col space-y-2"> - <h2>{transaction.action}</h2> - {transaction?.timestamp && <span>{formatTimestamp(transaction.timestamp)}</span>} - </div> - <Button onClick={handleDetailsClick}>Details</Button> - </div> - ); -} - -export default TransactionTile; diff --git a/apps/wallet-dashboard/components/VirtualList.tsx b/apps/wallet-dashboard/components/VirtualList.tsx index 7ca2d37187b..49178382bfc 100644 --- a/apps/wallet-dashboard/components/VirtualList.tsx +++ b/apps/wallet-dashboard/components/VirtualList.tsx @@ -72,7 +72,7 @@ function VirtualList<T>({ {virtualItems.map((virtualItem) => ( <div key={virtualItem.key} - className={`absolute w-full pb-4 pr-4 ${onClick ? 'cursor-pointer' : ''}`} + className={`absolute w-full ${onClick ? 'cursor-pointer' : ''}`} style={{ position: 'absolute', top: 0, diff --git a/apps/wallet-dashboard/components/index.ts b/apps/wallet-dashboard/components/index.ts index d6a47751619..744534d3592 100644 --- a/apps/wallet-dashboard/components/index.ts +++ b/apps/wallet-dashboard/components/index.ts @@ -3,14 +3,14 @@ export { default as RouteLink } from './RouteLink'; export { default as Notifications } from './Notifications/Notifications'; -export { default as TransactionTile } from './TransactionTile'; export { default as Box } from './Box'; export { default as AmountBox } from './AmountBox'; export { default as Input } from './Input'; export { default as VirtualList } from './VirtualList'; export { default as ExternalImage } from './ExternalImage'; -export { default as TransactionIcon } from './TransactionIcon'; export { default as Dropdown } from './Dropdown'; +export * from './PageSizeSelector'; +export * from './PaginationOptions'; export * from './account-balance/AccountBalance'; export * from './coins'; @@ -18,6 +18,7 @@ export * from './Popup'; export * from './AppList'; export * from './Cards'; export * from './Buttons'; +export * from './transactions'; export * from './staking-overview'; export * from './Dialogs'; export * from './ImageIcon'; diff --git a/apps/wallet-dashboard/components/Transaction/GasSummary.tsx b/apps/wallet-dashboard/components/transactions/GasSummary.tsx similarity index 100% rename from apps/wallet-dashboard/components/Transaction/GasSummary.tsx rename to apps/wallet-dashboard/components/transactions/GasSummary.tsx diff --git a/apps/wallet-dashboard/components/Transaction/StakeTransactionCard.tsx b/apps/wallet-dashboard/components/transactions/StakeTransactionCard.tsx similarity index 100% rename from apps/wallet-dashboard/components/Transaction/StakeTransactionCard.tsx rename to apps/wallet-dashboard/components/transactions/StakeTransactionCard.tsx diff --git a/apps/wallet-dashboard/components/Transaction/TransactionAmount.tsx b/apps/wallet-dashboard/components/transactions/TransactionAmount.tsx similarity index 100% rename from apps/wallet-dashboard/components/Transaction/TransactionAmount.tsx rename to apps/wallet-dashboard/components/transactions/TransactionAmount.tsx diff --git a/apps/wallet-dashboard/components/transactions/TransactionIcon.tsx b/apps/wallet-dashboard/components/transactions/TransactionIcon.tsx new file mode 100644 index 00000000000..8e04e154f13 --- /dev/null +++ b/apps/wallet-dashboard/components/transactions/TransactionIcon.tsx @@ -0,0 +1,32 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +import { LoadingIndicator } from '@iota/apps-ui-kit'; +import { ArrowBottomLeft, ArrowTopRight, Info, IotaLogoMark, Person, Stake } from '@iota/ui-icons'; + +const ICON_COLORS = { + primary: 'text-primary-30', + error: 'text-error-30', +}; + +const icons = { + Send: <ArrowTopRight className={ICON_COLORS.primary} />, + Receive: <ArrowBottomLeft className={ICON_COLORS.primary} />, + Transaction: <ArrowTopRight className={ICON_COLORS.primary} />, + Staked: <Stake className={ICON_COLORS.primary} />, + Unstaked: <Stake className={ICON_COLORS.primary} />, + Rewards: <IotaLogoMark className={ICON_COLORS.primary} />, + Failed: <Info className={ICON_COLORS.error} />, + Loading: <LoadingIndicator />, + PersonalMessage: <Person className={ICON_COLORS.primary} />, +}; + +interface TransactionIconProps { + txnFailed?: boolean; + variant: keyof typeof icons; +} + +function TransactionIcon({ txnFailed, variant }: TransactionIconProps) { + return <div className="[&_svg]:h-5 [&_svg]:w-5">{icons[txnFailed ? 'Failed' : variant]}</div>; +} +export default TransactionIcon; diff --git a/apps/wallet-dashboard/components/Transaction/TransactionSummary.tsx b/apps/wallet-dashboard/components/transactions/TransactionSummary.tsx similarity index 100% rename from apps/wallet-dashboard/components/Transaction/TransactionSummary.tsx rename to apps/wallet-dashboard/components/transactions/TransactionSummary.tsx diff --git a/apps/wallet-dashboard/components/transactions/TransactionTile.tsx b/apps/wallet-dashboard/components/transactions/TransactionTile.tsx new file mode 100644 index 00000000000..cb029808b3c --- /dev/null +++ b/apps/wallet-dashboard/components/transactions/TransactionTile.tsx @@ -0,0 +1,74 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +'use client'; + +import React from 'react'; +import TransactionIcon from './TransactionIcon'; +import formatTimestamp from '@/lib/utils/time'; +import { usePopups } from '@/hooks'; +import { TransactionDetailsPopup } from '@/components'; +import { ExtendedTransaction, TransactionState } from '@/lib/interfaces'; +import { + Card, + CardType, + CardImage, + ImageType, + ImageShape, + CardBody, + CardAction, + CardActionType, +} from '@iota/apps-ui-kit'; +import { useFormatCoin, useExtendedTransactionSummary, getLabel } from '@iota/core'; +import { IOTA_TYPE_ARG } from '@iota/iota-sdk/utils'; +import { useCurrentAccount } from '@iota/dapp-kit'; + +interface TransactionTileProps { + transaction: ExtendedTransaction; +} + +function TransactionTile({ transaction }: TransactionTileProps): JSX.Element { + const account = useCurrentAccount(); + const address = account?.address; + const { openPopup, closePopup } = usePopups(); + + const transactionSummary = useExtendedTransactionSummary(transaction.raw.digest); + const [formatAmount, symbol] = useFormatCoin( + Math.abs(Number(address ? transactionSummary?.balanceChanges?.[address]?.[0]?.amount : 0)), + IOTA_TYPE_ARG, + ); + + const handleDetailsClick = () => { + openPopup(<TransactionDetailsPopup transaction={transaction} onClose={closePopup} />); + }; + + const transactionDate = transaction?.timestamp && formatTimestamp(transaction.timestamp); + return ( + <Card type={CardType.Default} isHoverable onClick={handleDetailsClick}> + <CardImage type={ImageType.BgSolid} shape={ImageShape.SquareRounded}> + <TransactionIcon + txnFailed={transaction.state === TransactionState.Failed} + variant={getLabel(transaction?.raw, address)} + /> + </CardImage> + <CardBody + title={ + transaction.state === TransactionState.Failed + ? 'Transaction Failed' + : (transaction.action ?? 'Unknown') + } + subtitle={transactionDate} + /> + <CardAction + type={CardActionType.SupportingText} + title={ + transaction.state === TransactionState.Failed + ? '--' + : `${formatAmount} ${symbol}` + } + /> + </Card> + ); +} + +export default TransactionTile; diff --git a/apps/wallet-dashboard/components/transactions/TransactionsList.tsx b/apps/wallet-dashboard/components/transactions/TransactionsList.tsx new file mode 100644 index 00000000000..526329aed43 --- /dev/null +++ b/apps/wallet-dashboard/components/transactions/TransactionsList.tsx @@ -0,0 +1,27 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +import React from 'react'; +import { useCurrentAccount } from '@iota/dapp-kit'; +import { VirtualList, TransactionTile } from '@/components'; +import { useQueryTransactionsByAddress } from '@iota/core'; +import { getExtendedTransaction } from '@/lib/utils/transaction'; +import { IotaTransactionBlockResponse } from '@iota/iota-sdk/client'; + +function TransactionsList() { + const currentAccount = useCurrentAccount(); + const { data: transactions, error } = useQueryTransactionsByAddress(currentAccount?.address); + + if (error) { + return <div>{error?.message}</div>; + } + + const virtualItem = (rawTransaction: IotaTransactionBlockResponse): JSX.Element => { + const transaction = getExtendedTransaction(rawTransaction, currentAccount?.address || ''); + return <TransactionTile transaction={transaction} />; + }; + + return <VirtualList items={transactions || []} estimateSize={() => 60} render={virtualItem} />; +} + +export default TransactionsList; diff --git a/apps/wallet-dashboard/components/transactions/TransactionsOverview.tsx b/apps/wallet-dashboard/components/transactions/TransactionsOverview.tsx new file mode 100644 index 00000000000..a590e3abcdb --- /dev/null +++ b/apps/wallet-dashboard/components/transactions/TransactionsOverview.tsx @@ -0,0 +1,19 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 +'use client'; + +import { Panel, Title } from '@iota/apps-ui-kit'; +import TransactionsList from './TransactionsList'; + +function TransactionsOverview() { + return ( + <Panel> + <Title title="Activity" /> + <div className="px-sm pb-md pt-sm"> + <TransactionsList /> + </div> + </Panel> + ); +} + +export default TransactionsOverview; diff --git a/apps/wallet-dashboard/components/Transaction/UnstakeTransactionCard.tsx b/apps/wallet-dashboard/components/transactions/UnstakeTransactionCard.tsx similarity index 100% rename from apps/wallet-dashboard/components/Transaction/UnstakeTransactionCard.tsx rename to apps/wallet-dashboard/components/transactions/UnstakeTransactionCard.tsx diff --git a/apps/wallet-dashboard/components/Transaction/BalanceChanges/BalanceChangeEntries.tsx b/apps/wallet-dashboard/components/transactions/balance-changes/BalanceChangeEntries.tsx similarity index 95% rename from apps/wallet-dashboard/components/Transaction/BalanceChanges/BalanceChangeEntries.tsx rename to apps/wallet-dashboard/components/transactions/balance-changes/BalanceChangeEntries.tsx index 9ee8daeab4d..14cc9ad7891 100644 --- a/apps/wallet-dashboard/components/Transaction/BalanceChanges/BalanceChangeEntries.tsx +++ b/apps/wallet-dashboard/components/transactions/balance-changes/BalanceChangeEntries.tsx @@ -3,7 +3,7 @@ import { BalanceChange } from '@iota/core'; import { useMemo } from 'react'; -import { BalanceChangeEntry } from './'; +import { BalanceChangeEntry } from '.'; import { getRecognizedUnRecognizedTokenChanges } from '@iota/core'; interface BalanceChangeEntriesProps { diff --git a/apps/wallet-dashboard/components/Transaction/BalanceChanges/BalanceChangeEntry.tsx b/apps/wallet-dashboard/components/transactions/balance-changes/BalanceChangeEntry.tsx similarity index 100% rename from apps/wallet-dashboard/components/Transaction/BalanceChanges/BalanceChangeEntry.tsx rename to apps/wallet-dashboard/components/transactions/balance-changes/BalanceChangeEntry.tsx diff --git a/apps/wallet-dashboard/components/Transaction/BalanceChanges/BalanceChanges.tsx b/apps/wallet-dashboard/components/transactions/balance-changes/BalanceChanges.tsx similarity index 92% rename from apps/wallet-dashboard/components/Transaction/BalanceChanges/BalanceChanges.tsx rename to apps/wallet-dashboard/components/transactions/balance-changes/BalanceChanges.tsx index 9f421c9e17c..34c507c62d7 100644 --- a/apps/wallet-dashboard/components/Transaction/BalanceChanges/BalanceChanges.tsx +++ b/apps/wallet-dashboard/components/transactions/balance-changes/BalanceChanges.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { BalanceChange } from '@iota/core'; -import { BalanceChangeEntries } from './'; +import { BalanceChangeEntries } from '.'; interface BalanceChangesProps { balanceChanges: Record<string, BalanceChange[]>; diff --git a/apps/wallet-dashboard/components/Transaction/BalanceChanges/index.ts b/apps/wallet-dashboard/components/transactions/balance-changes/index.ts similarity index 100% rename from apps/wallet-dashboard/components/Transaction/BalanceChanges/index.ts rename to apps/wallet-dashboard/components/transactions/balance-changes/index.ts diff --git a/apps/wallet-dashboard/components/Transaction/index.ts b/apps/wallet-dashboard/components/transactions/index.ts similarity index 55% rename from apps/wallet-dashboard/components/Transaction/index.ts rename to apps/wallet-dashboard/components/transactions/index.ts index e87efcb41e4..7602efd1395 100644 --- a/apps/wallet-dashboard/components/Transaction/index.ts +++ b/apps/wallet-dashboard/components/transactions/index.ts @@ -6,6 +6,10 @@ export { default as TransactionAmount } from './TransactionAmount'; export { default as StakeTransactionCard } from './StakeTransactionCard'; export { default as UnstakeTransactionCard } from './UnstakeTransactionCard'; export { default as TransactionSummary } from './TransactionSummary'; +export { default as TransactionTile } from './TransactionTile'; +export { default as TransactionIcon } from './TransactionIcon'; +export { default as TransactionsList } from './TransactionsList'; +export { default as TransactionsOverview } from './TransactionsOverview'; -export * from './BalanceChanges'; -export * from './ObjectChanges'; +export * from './balance-changes'; +export * from './object-changes'; diff --git a/apps/wallet-dashboard/components/Transaction/ObjectChanges/ObjectChangeEntry.tsx b/apps/wallet-dashboard/components/transactions/object-changes/ObjectChangeEntry.tsx similarity index 97% rename from apps/wallet-dashboard/components/Transaction/ObjectChanges/ObjectChangeEntry.tsx rename to apps/wallet-dashboard/components/transactions/object-changes/ObjectChangeEntry.tsx index 7b765fac8de..9d386d6e6d3 100644 --- a/apps/wallet-dashboard/components/Transaction/ObjectChanges/ObjectChangeEntry.tsx +++ b/apps/wallet-dashboard/components/transactions/object-changes/ObjectChangeEntry.tsx @@ -3,7 +3,7 @@ import { ObjectChangesByOwner, IotaObjectChangeTypes } from '@iota/core'; import { IotaObjectChange } from '@iota/iota-sdk/client'; -import { ObjectDetail } from './'; +import { ObjectDetail } from '.'; import React from 'react'; interface ObjectChangeEntryProps { diff --git a/apps/wallet-dashboard/components/Transaction/ObjectChanges/ObjectChanges.tsx b/apps/wallet-dashboard/components/transactions/object-changes/ObjectChanges.tsx similarity index 93% rename from apps/wallet-dashboard/components/Transaction/ObjectChanges/ObjectChanges.tsx rename to apps/wallet-dashboard/components/transactions/object-changes/ObjectChanges.tsx index 8df1decfea8..b3b246e6f0e 100644 --- a/apps/wallet-dashboard/components/Transaction/ObjectChanges/ObjectChanges.tsx +++ b/apps/wallet-dashboard/components/transactions/object-changes/ObjectChanges.tsx @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { ObjectChangeSummary, IotaObjectChangeTypes } from '@iota/core'; -import { ObjectChangeEntry } from './'; +import { ObjectChangeEntry } from '.'; interface ObjectChangesProps { objectSummary: ObjectChangeSummary; diff --git a/apps/wallet-dashboard/components/Transaction/ObjectChanges/ObjectDetail.tsx b/apps/wallet-dashboard/components/transactions/object-changes/ObjectDetail.tsx similarity index 100% rename from apps/wallet-dashboard/components/Transaction/ObjectChanges/ObjectDetail.tsx rename to apps/wallet-dashboard/components/transactions/object-changes/ObjectDetail.tsx diff --git a/apps/wallet-dashboard/components/Transaction/ObjectChanges/index.ts b/apps/wallet-dashboard/components/transactions/object-changes/index.ts similarity index 100% rename from apps/wallet-dashboard/components/Transaction/ObjectChanges/index.ts rename to apps/wallet-dashboard/components/transactions/object-changes/index.ts diff --git a/apps/wallet-dashboard/lib/interfaces/index.ts b/apps/wallet-dashboard/lib/interfaces/index.ts index eeab2cb4f5c..679bc45212f 100644 --- a/apps/wallet-dashboard/lib/interfaces/index.ts +++ b/apps/wallet-dashboard/lib/interfaces/index.ts @@ -3,5 +3,6 @@ export * from './transactions.interface'; export * from './timelock.interface'; +export * from './migration.interface'; export * from './vesting.interface'; export * from './appRoute.interface'; diff --git a/apps/wallet-dashboard/lib/interfaces/migration.interface.ts b/apps/wallet-dashboard/lib/interfaces/migration.interface.ts new file mode 100644 index 00000000000..df35ae29112 --- /dev/null +++ b/apps/wallet-dashboard/lib/interfaces/migration.interface.ts @@ -0,0 +1,47 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +type ExpirationUnlockCondition = { + owner: string; + return_address: string; + unix_time: number; +}; +type StorageDepositReturnUnlockCondition = { + return_address: string; + return_amount: string; +}; +type TimelockUnlockCondition = { + unix_time: number; +}; + +export type CommonOutputObject = { + id: { id: string }; + balance: string; + native_tokens: { + type: string; + fields: { id: { id: string }; size: string }; + }; +}; + +export interface CommonOutputObjectWithUc extends CommonOutputObject { + expiration_uc?: { + type: string; + fields: ExpirationUnlockCondition; + }; + storage_deposit_return_uc?: { + type: string; + fields: StorageDepositReturnUnlockCondition; + }; + timelock_uc?: { + type: string; + fields: TimelockUnlockCondition; + }; +} + +export interface BasicOutputObject extends CommonOutputObjectWithUc { + metadata?: number[]; + tag?: number[]; + sender?: string; +} + +export interface NftOutputObject extends CommonOutputObjectWithUc {} diff --git a/apps/wallet-dashboard/lib/utils/index.ts b/apps/wallet-dashboard/lib/utils/index.ts index 78b0f2eb9c5..27ddc5bc265 100644 --- a/apps/wallet-dashboard/lib/utils/index.ts +++ b/apps/wallet-dashboard/lib/utils/index.ts @@ -5,5 +5,6 @@ export * from './indexGenerator'; export * from './vesting'; export * from './time'; export * from './timelock'; +export * from './migration'; export * from './transaction'; export * from './growthbook'; diff --git a/apps/wallet-dashboard/lib/utils/migration.ts b/apps/wallet-dashboard/lib/utils/migration.ts new file mode 100644 index 00000000000..e4a5cfa1f30 --- /dev/null +++ b/apps/wallet-dashboard/lib/utils/migration.ts @@ -0,0 +1,51 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +import { IotaObjectData } from '@iota/iota-sdk/client'; +import { CommonOutputObjectWithUc } from '../interfaces/migration.interface'; + +export type StardustMigrationGroupedObjects = { + migratable: IotaObjectData[]; + unmigratable: IotaObjectData[]; +}; + +export function groupStardustObjectsByMigrationStatus( + stardustOutputObjects: IotaObjectData[], + epochTimestamp: number, + address: string, +): StardustMigrationGroupedObjects { + const migratable: IotaObjectData[] = []; + const unmigratable: IotaObjectData[] = []; + + const epochUnix = epochTimestamp / 1000; + + for (const outputObject of stardustOutputObjects) { + const outputObjectFields = ( + outputObject.content as unknown as { + fields: CommonOutputObjectWithUc; + } + ).fields; + + if (outputObjectFields.expiration_uc) { + const unlockableAddress = + outputObjectFields.expiration_uc.fields.unix_time <= epochUnix + ? outputObjectFields.expiration_uc.fields.return_address + : outputObjectFields.expiration_uc.fields.owner; + if (unlockableAddress !== address) { + unmigratable.push(outputObject); + continue; + } + } + if ( + outputObjectFields.timelock_uc && + outputObjectFields.timelock_uc.fields.unix_time > epochUnix + ) { + unmigratable.push(outputObject); + continue; + } + + migratable.push(outputObject); + } + + return { migratable, unmigratable }; +} diff --git a/apps/wallet-dashboard/providers/AppProviders.tsx b/apps/wallet-dashboard/providers/AppProviders.tsx new file mode 100644 index 00000000000..48561b1ff27 --- /dev/null +++ b/apps/wallet-dashboard/providers/AppProviders.tsx @@ -0,0 +1,55 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +'use client'; + +import { PopupProvider } from '@/components'; +import { GrowthBookProvider } from '@growthbook/growthbook-react'; +import { IotaClientProvider, lightTheme, darkTheme, WalletProvider } from '@iota/dapp-kit'; +import { getAllNetworks, getDefaultNetwork } from '@iota/iota-sdk/client'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import { useState } from 'react'; +import { growthbook } from '@/lib/utils'; +import { Popup } from '@/components/Popup'; +import { Toaster } from 'react-hot-toast'; +import { ThemeProvider } from '@/contexts'; + +growthbook.init(); + +export function AppProviders({ children }: React.PropsWithChildren) { + const [queryClient] = useState(() => new QueryClient()); + const allNetworks = getAllNetworks(); + const defaultNetwork = getDefaultNetwork(); + + return ( + <GrowthBookProvider growthbook={growthbook}> + <QueryClientProvider client={queryClient}> + <IotaClientProvider networks={allNetworks} defaultNetwork={defaultNetwork}> + <WalletProvider + theme={[ + { + variables: lightTheme, + }, + { + selector: '.dark', + variables: darkTheme, + }, + ]} + > + <ThemeProvider> + <PopupProvider> + {children} + <Toaster + containerStyle={{ + zIndex: 99999, + }} + /> + <Popup /> + </PopupProvider> + </ThemeProvider> + </WalletProvider> + </IotaClientProvider> + </QueryClientProvider> + </GrowthBookProvider> + ); +} diff --git a/apps/wallet-dashboard/providers/index.ts b/apps/wallet-dashboard/providers/index.ts new file mode 100644 index 00000000000..88cb32e927a --- /dev/null +++ b/apps/wallet-dashboard/providers/index.ts @@ -0,0 +1,4 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +export * from './AppProviders'; diff --git a/crates/iota-cluster-test/src/cluster.rs b/crates/iota-cluster-test/src/cluster.rs index e493e73f4bc..1196961d9db 100644 --- a/crates/iota-cluster-test/src/cluster.rs +++ b/crates/iota-cluster-test/src/cluster.rs @@ -265,6 +265,7 @@ impl Cluster for LocalNewCluster { fullnode_url.clone(), ReaderWriterConfig::writer_mode(None), data_ingestion_path.clone(), + None, ) .await; @@ -274,6 +275,7 @@ impl Cluster for LocalNewCluster { fullnode_url.clone(), ReaderWriterConfig::reader_mode(indexer_address.to_string()), data_ingestion_path, + None, ) .await; } diff --git a/crates/iota-core/src/checkpoints/mod.rs b/crates/iota-core/src/checkpoints/mod.rs index b466e405866..82749fa472a 100644 --- a/crates/iota-core/src/checkpoints/mod.rs +++ b/crates/iota-core/src/checkpoints/mod.rs @@ -1104,13 +1104,13 @@ impl CheckpointBuilder { let _scope = monitored_scope("CheckpointBuilder::causal_sort"); let mut sorted: Vec<TransactionEffects> = Vec::with_capacity(unsorted.len() + 1); - if let Some((ccp_digest, ccp_effects)) = consensus_commit_prologue { + if let Some((_ccp_digest, ccp_effects)) = consensus_commit_prologue { #[cfg(debug_assertions)] { // When consensus_commit_prologue is extracted, it should not be included in the // `unsorted`. for tx in unsorted.iter() { - assert!(tx.transaction_digest() != &ccp_digest); + assert!(tx.transaction_digest() != &_ccp_digest); } } sorted.push(ccp_effects); diff --git a/crates/iota-e2e-tests/tests/framework_upgrades/mock_iota_systems/safe_mode/sources/iota_system_state_inner.move b/crates/iota-e2e-tests/tests/framework_upgrades/mock_iota_systems/safe_mode/sources/iota_system_state_inner.move index df1cc71f995..51361804b99 100644 --- a/crates/iota-e2e-tests/tests/framework_upgrades/mock_iota_systems/safe_mode/sources/iota_system_state_inner.move +++ b/crates/iota-e2e-tests/tests/framework_upgrades/mock_iota_systems/safe_mode/sources/iota_system_state_inner.move @@ -48,8 +48,8 @@ module iota_system::iota_system_state_inner { iota_treasury_cap: IotaTreasuryCap, validators: ValidatorSetV1, storage_fund: Balance<IOTA>, - iota_system_admin_cap: IotaSystemAdminCap, parameters: SystemParametersV1, + iota_system_admin_cap: IotaSystemAdminCap, reference_gas_price: u64, safe_mode: bool, epoch_start_timestamp_ms: u64, diff --git a/crates/iota-e2e-tests/tests/full_node_migration_tests.rs b/crates/iota-e2e-tests/tests/full_node_migration_tests.rs index 3047fac2b40..e6c79e17779 100644 --- a/crates/iota-e2e-tests/tests/full_node_migration_tests.rs +++ b/crates/iota-e2e-tests/tests/full_node_migration_tests.rs @@ -95,7 +95,7 @@ async fn address_unlock_condition( // This object id was fetched manually. It refers to an Alias Output object that // owns a NftOutput. let alias_output_object_id = ObjectID::from_hex_literal( - "0x3b35e67750b8e4ccb45b2fc4a6a26a6d97e74c37a532f17177e6324ab93eaca6", + "0xe6bf3ef78d57eb36d7959b64a272c3581cdaeb93a1f1bf1068651901e3b1e91a", )?; let alias_output_object = iota_client diff --git a/crates/iota-e2e-tests/tests/migration/stardust_object_snapshot.bin b/crates/iota-e2e-tests/tests/migration/stardust_object_snapshot.bin index dad565501b2..54d600ecd73 100644 Binary files a/crates/iota-e2e-tests/tests/migration/stardust_object_snapshot.bin and b/crates/iota-e2e-tests/tests/migration/stardust_object_snapshot.bin differ diff --git a/crates/iota-e2e-tests/tests/readme.rs b/crates/iota-e2e-tests/tests/readme.rs deleted file mode 100644 index 8edd05d2919..00000000000 --- a/crates/iota-e2e-tests/tests/readme.rs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) 2021, Facebook, Inc. and its affiliates -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::{io::Write, process::Command}; - -use tempfile::tempdir; - -#[test] -#[ignore] -fn test_examples_in_readme() -> std::io::Result<()> { - let dir = tempdir().unwrap(); - let file = std::io::BufReader::new(std::fs::File::open("../README.md")?); - let mut quotes = get_bash_quotes(file)?; - // Check that we have the expected number of examples starting with "```bash". - assert_eq!(quotes.len(), 1); - - let mut test_script = std::fs::File::create(dir.path().join("test.sh"))?; - write!(test_script, "{}", quotes.pop().unwrap())?; - - let status = Command::new("bash") - .current_dir("..") // root of the repo - .env("DEST", dir.path()) - .arg("-e") - .arg("-x") - .arg(dir.path().join("test.sh")) - .status()?; - assert!(status.success()); - Ok(()) -} - -#[allow(clippy::while_let_on_iterator)] -fn get_bash_quotes<R>(reader: R) -> std::io::Result<Vec<String>> -where - R: std::io::BufRead, -{ - let mut result = Vec::new(); - let mut lines = reader.lines(); - - while let Some(line) = lines.next() { - let line = line?; - if line.starts_with("```bash") { - let mut quote = String::new(); - while let Some(line) = lines.next() { - let line = line?; - if line.starts_with("```") { - break; - } - quote += &line; - quote += "\n"; - } - result.push(quote); - } - } - - Ok(result) -} diff --git a/crates/iota-e2e-tests/tests/snapshot_tests.rs b/crates/iota-e2e-tests/tests/snapshot_tests.rs index e77a4369a31..ed273810eea 100644 --- a/crates/iota-e2e-tests/tests/snapshot_tests.rs +++ b/crates/iota-e2e-tests/tests/snapshot_tests.rs @@ -51,7 +51,6 @@ async fn run_one( Ok(test_output) } -#[ignore] #[sim_test] async fn basic_read_cmd_snapshot_tests() -> Result<(), anyhow::Error> { let mut test_cluster = TestClusterBuilder::new().build().await; @@ -69,9 +68,9 @@ async fn basic_read_cmd_snapshot_tests() -> Result<(), anyhow::Error> { // 0x3b5121a0603ef7ab4cb57827fceca17db3338ef2cd76126cc1523b681df27cee --bcs", // valid // object BCS "iota client object 0x0000000000000000000000000000000000000000000000000000000000000000", /* non-existent object */ - "iota client tx-block Duwr9uSk9ZvAndEa8oDHunx345i6oyrp3e78MYHVAbYdv", // valid tx digest - "iota client tx-block EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8", /* non-existent tx - * digest */ + "iota client tx-block Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", // valid tx digest + "iota client tx-block EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8", /* non-existent tx + * digest */ ]; assert_json_snapshot!(run_one(cmds, context).await?); Ok(()) diff --git a/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__basic_read_cmd_snapshot_tests.snap b/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__basic_read_cmd_snapshot_tests.snap deleted file mode 100644 index 102d5c89493..00000000000 --- a/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__basic_read_cmd_snapshot_tests.snap +++ /dev/null @@ -1,204 +0,0 @@ ---- -source: crates/iota-e2e-tests/tests/snapshot_tests.rs -expression: "run_one(cmds, context).await?" ---- -[ - "iota client objects {ME}", - [ - { - "data": { - "objectId": "0x1f06d54bea8de188480b8b7fa04738b74f8de4a304c009ed7546ee1668caa42a", - "version": "1", - "digest": "3s2ZQ3BLCqb5Q52s7bvSJ1FUK8whocJCPW6bjUfTx4pQ", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "owner": { - "AddressOwner": "0x27b7eae6e24b7175c296a26292d6fbc0ec96f036d42270617a6ca8e0c4310b59" - }, - "previousTransaction": "HNX5jhha6LU7ckUi9DrD6F599Vus7VdZqi8oQKva6JDX", - "storageRebate": "0", - "content": { - "dataType": "moveObject", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "hasPublicTransfer": true, - "fields": { - "balance": "30000000000000000", - "id": { - "id": "0x1f06d54bea8de188480b8b7fa04738b74f8de4a304c009ed7546ee1668caa42a" - } - } - } - } - }, - { - "data": { - "objectId": "0x4c5b07bf473981857914de322ba555242af597d856ecaef054b2a4537155a7b7", - "version": "1", - "digest": "5cpa4GwCUfeW6JsbNWQdd77bH5wYHsK8GKrqgiwC1rdF", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "owner": { - "AddressOwner": "0x27b7eae6e24b7175c296a26292d6fbc0ec96f036d42270617a6ca8e0c4310b59" - }, - "previousTransaction": "HNX5jhha6LU7ckUi9DrD6F599Vus7VdZqi8oQKva6JDX", - "storageRebate": "0", - "content": { - "dataType": "moveObject", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "hasPublicTransfer": true, - "fields": { - "balance": "30000000000000000", - "id": { - "id": "0x4c5b07bf473981857914de322ba555242af597d856ecaef054b2a4537155a7b7" - } - } - } - } - }, - { - "data": { - "objectId": "0x8e6170e371897b90def1a115e87f7f2f8edb6532812572e9096ed234ddfb09c2", - "version": "1", - "digest": "AUFXcsqx8sdHo9TTHgP6Rqaz6Nqnmn3Mcq1DAsqFnaFr", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "owner": { - "AddressOwner": "0x27b7eae6e24b7175c296a26292d6fbc0ec96f036d42270617a6ca8e0c4310b59" - }, - "previousTransaction": "HNX5jhha6LU7ckUi9DrD6F599Vus7VdZqi8oQKva6JDX", - "storageRebate": "0", - "content": { - "dataType": "moveObject", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "hasPublicTransfer": true, - "fields": { - "balance": "30000000000000000", - "id": { - "id": "0x8e6170e371897b90def1a115e87f7f2f8edb6532812572e9096ed234ddfb09c2" - } - } - } - } - }, - { - "data": { - "objectId": "0xc90f8c38315f01cc0b3b360d6dc6ca396ebcc30b1824e8b8b7e007d810f547f9", - "version": "1", - "digest": "DatScUS9tv29UuXTqBM3Z9z2qNySzPv6LQzEVjk1MhKU", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "owner": { - "AddressOwner": "0x27b7eae6e24b7175c296a26292d6fbc0ec96f036d42270617a6ca8e0c4310b59" - }, - "previousTransaction": "HNX5jhha6LU7ckUi9DrD6F599Vus7VdZqi8oQKva6JDX", - "storageRebate": "0", - "content": { - "dataType": "moveObject", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "hasPublicTransfer": true, - "fields": { - "balance": "30000000000000000", - "id": { - "id": "0xc90f8c38315f01cc0b3b360d6dc6ca396ebcc30b1824e8b8b7e007d810f547f9" - } - } - } - } - }, - { - "data": { - "objectId": "0xebef54337dbec7ff13ff1e2c9080a2e6cc5d57d002254bed93198c0dda7bb5c1", - "version": "1", - "digest": "Gt6Da5BqyvCCjF2t5qzkE1RvwXk8UJzrWG334akGSdex", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "owner": { - "AddressOwner": "0x27b7eae6e24b7175c296a26292d6fbc0ec96f036d42270617a6ca8e0c4310b59" - }, - "previousTransaction": "HNX5jhha6LU7ckUi9DrD6F599Vus7VdZqi8oQKva6JDX", - "storageRebate": "0", - "content": { - "dataType": "moveObject", - "type": "0x2::coin::Coin<0x2::iota::IOTA>", - "hasPublicTransfer": true, - "fields": { - "balance": "30000000000000000", - "id": { - "id": "0xebef54337dbec7ff13ff1e2c9080a2e6cc5d57d002254bed93198c0dda7bb5c1" - } - } - } - } - } - ], - "iota client objects 0x0000000000000000000000000000000000000000000000000000000000000000", - [], - "iota client object 0x5", - [ - { - "data": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", - "version": "1", - "digest": "MmKCAHwfU7DrwgAf7LE6C7DEF7xHq8tPxfntbHu9AeS", - "type": "0x3::iota_system::IotaSystemState", - "owner": { - "Shared": { - "initial_shared_version": { - "$serde_json::private::Number": "1" - } - } - }, - "previousTransaction": "HNX5jhha6LU7ckUi9DrD6F599Vus7VdZqi8oQKva6JDX", - "storageRebate": "0", - "content": { - "dataType": "moveObject", - "type": "0x3::iota_system::IotaSystemState", - "hasPublicTransfer": false, - "fields": { - "id": { - "id": "0x0000000000000000000000000000000000000000000000000000000000000005" - }, - "version": "1" - } - } - } - } - ], - "iota client object 0x5 --bcs", - [ - { - "data": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", - "version": "1", - "digest": "MmKCAHwfU7DrwgAf7LE6C7DEF7xHq8tPxfntbHu9AeS", - "type": "0x3::iota_system::IotaSystemState", - "owner": { - "Shared": { - "initial_shared_version": { - "$serde_json::private::Number": "1" - } - } - }, - "previousTransaction": "HNX5jhha6LU7ckUi9DrD6F599Vus7VdZqi8oQKva6JDX", - "storageRebate": "0", - "bcs": { - "dataType": "moveObject", - "type": "0x3::iota_system::IotaSystemState", - "hasPublicTransfer": false, - "version": { - "$serde_json::private::Number": "1" - }, - "bcsBytes": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUBAAAAAAAAAA==" - } - } - } - ], - "iota client object 0x0000000000000000000000000000000000000000000000000000000000000000", - [ - { - "error": { - "code": "notExists", - "object_id": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - } - ], - "iota client tx-block Duwr9uSk9ZvNdEa8oDHunx345i6oyrp3e78MYHVAbYdv", - "RPC call failed: ErrorObject { code: InvalidParams, message: \"Could not find the referenced transaction [TransactionDigest(Duwr9uSk9ZvNdEa8oDHunx345i6oyrp3e78MYHVAbYdv)].\", data: None }", - "iota client tx-block EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8", - "RPC call failed: ErrorObject { code: InvalidParams, message: \"Could not find the referenced transaction [TransactionDigest(EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8)].\", data: None }" -] diff --git a/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap b/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap new file mode 100644 index 00000000000..3df18d5fc84 --- /dev/null +++ b/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap @@ -0,0 +1,1697 @@ +--- +source: crates/iota-e2e-tests/tests/snapshot_tests.rs +expression: "run_one(cmds, context).await?" +--- +[ + "iota client objects {ME}", + [ + { + "data": { + "objectId": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", + "version": "1", + "digest": "Gqd4PCCzQDf2ZYqzzD2p3XAoh94NHo1A6WaSP4NHX8xQ", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "storageRebate": "0", + "content": { + "dataType": "moveObject", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "hasPublicTransfer": true, + "fields": { + "balance": "30000000000000000", + "id": { + "id": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb" + } + } + } + } + }, + { + "data": { + "objectId": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", + "version": "1", + "digest": "6F2itozbAXqk9Ak8diF6DGVpC5skK2r24TCgwkyNjNf9", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "storageRebate": "0", + "content": { + "dataType": "moveObject", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "hasPublicTransfer": true, + "fields": { + "balance": "30000000000000000", + "id": { + "id": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4" + } + } + } + } + }, + { + "data": { + "objectId": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", + "version": "1", + "digest": "DPcMjDP4X3jp2t7J2zTZF7CBjhJ87fP1rxFHsDh9bRPE", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "storageRebate": "0", + "content": { + "dataType": "moveObject", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "hasPublicTransfer": true, + "fields": { + "balance": "30000000000000000", + "id": { + "id": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1" + } + } + } + } + }, + { + "data": { + "objectId": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", + "version": "1", + "digest": "5UbcKdRD7iyfUn2upZ1c9wuWRiD9J9h9hCCE1jX1EHSz", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "storageRebate": "0", + "content": { + "dataType": "moveObject", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "hasPublicTransfer": true, + "fields": { + "balance": "30000000000000000", + "id": { + "id": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b" + } + } + } + } + }, + { + "data": { + "objectId": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", + "version": "1", + "digest": "A5Tnjugpa5gCcKLcwiVNJnYGRHuuADX7YtpgUtgfKfXa", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "storageRebate": "0", + "content": { + "dataType": "moveObject", + "type": "0x2::coin::Coin<0x2::iota::IOTA>", + "hasPublicTransfer": true, + "fields": { + "balance": "30000000000000000", + "id": { + "id": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7" + } + } + } + } + } + ], + "iota client objects 0x0000000000000000000000000000000000000000000000000000000000000000", + [], + "iota client object 0x5", + [ + { + "data": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", + "version": "1", + "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1", + "type": "0x3::iota_system::IotaSystemState", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "storageRebate": "0", + "content": { + "dataType": "moveObject", + "type": "0x3::iota_system::IotaSystemState", + "hasPublicTransfer": false, + "fields": { + "id": { + "id": "0x0000000000000000000000000000000000000000000000000000000000000005" + }, + "version": "1" + } + } + } + } + ], + "iota client object 0x5 --bcs", + [ + { + "data": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", + "version": "1", + "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1", + "type": "0x3::iota_system::IotaSystemState", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "storageRebate": "0", + "bcs": { + "dataType": "moveObject", + "type": "0x3::iota_system::IotaSystemState", + "hasPublicTransfer": false, + "version": 1, + "bcsBytes": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUBAAAAAAAAAA==" + } + } + } + ], + "iota client object 0x0000000000000000000000000000000000000000000000000000000000000000", + [ + { + "error": { + "code": "notExists", + "object_id": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + } + ], + "iota client tx-block Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + { + "digest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "transaction": { + "data": { + "messageVersion": "v1", + "transaction": { + "kind": "Genesis", + "objects": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x0000000000000000000000000000000000000000000000000000000000000403", + "0x000000000000000000000000000000000000000000000000000000000000107a", + "0x0658bc0b0d7fbc21787e3c0cb499355da97a2676b1d89fe4b30d163b8c62e7ed", + "0x075763a78e8a77cba94dfb46a7d7ffff8ed330d0774ec244a9c066b87376bf85", + "0x17e76e42843454d5d030ad02dd96b08d27dd1baea95ec33f61422d2a474fc64e", + "0x1c91896da60a3b83c30c4ec462b01b7b58620fef39a66464b48a94c0eb129017", + "0x2a655cbb998089faa8412a2c2a92fa00a8b8398df3df42f39d576434ee7572fa", + "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", + "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", + "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", + "0x3f17533f07520a49ef52abfbf7b9317e234f29e0196b33afc84d163ef8034d03", + "0x434480a6195e420a99448287684aceb12e88bae1004166e8d3e84910257af130", + "0x464079306127b6f089328b16d1f2de3efef3b6ddc099bf9850f6914cd64bcfa5", + "0x4b44af5c085eb56a4b0cd9e09b9e5cd8fb33119a93238dd3768c7437175a9df5", + "0x4c85212134d410410c2a5ee0f03f3595884fa739931d03742833d02f9f4d890b", + "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", + "0x532489afdc0d76972e374298baaee6730bfeee3d68b26abfecd616a56690d902", + "0x5396282be36c868aec019959977a2a2b3e35e32ca8e9d0418a73d5d7f06c45f3", + "0x58010842a21daf70d03f28e14a55c3b44c9e1f2c82bf6e79643c440e7e260231", + "0x5e199335497052f88a5179fe1b336aa3908278987d5d8cbfc01ae1d20eafa7bc", + "0x5fb62a31bea23630d03f4a650cd8faa3b60e636d82f79aa9b61e35cf70861712", + "0x601abe73257d8782de41888a16e9e04465a781e321f929c4c9c348c8a9a1110c", + "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "0x72995e676bcc6c290a2f4c42f8a5846c7ef0063b9af7728ef5d4123de9ac8bbc", + "0x72ee17dff740e4aefa6a03e6212533f3615005d79a206698bcd47e9b34d1df1a", + "0x76742eed3be4ac1fbf108ae112a743f314a8f8ac90c66b5beb0efe39a58ca6b6", + "0x778aafce25aa78d5cb0a77b78b816d4ef61e574a590fa5b5787c448c2eb56ce5", + "0x8371569f0f25fa2bef413dc333f74a8df4c1ad6cf31dc80048887ae85eecd527", + "0x83d61ef9fc69752099b356a702283468748b46057b97466da021ad966e2e1362", + "0x8f6303e1c51abe1dd7808d8c3d3c96cbaa53565e9dd243ee1bb65a3259947ec5", + "0x9798a9772438b077f07c4b5a29d90e8b1d1c774424043645ed27e5a0c79d2499", + "0x98038db1bfffc9a021aa9b1711288f56756a203112017ac615bdd49e0ddfe768", + "0x99bc508c5440067cf58e4b6e671416a2b04e4f60456b711a81b2a9f549ec6892", + "0xae837285a73c2d23f86206314d8acfdc7adf4af36e33807e3e535cc24edcddda", + "0xb1930538959be08dee8ab76c7898c85be25e429f967913cc90f3d1b1ab496717", + "0xb2d16c38972ef51ed6995d84fee1d5e938eb64d8ab4b8cadc68170f60a778486", + "0xc1f45dae29fcdc6611af2ac3b42443fa28fb337e89850cf61b97b048c6cfe121", + "0xc98cbb8b969eccb46b7a487eaa75ac486faa3a55b719731aa9a6b7fdcc90cbc3", + "0xcdb39cadb88f872448b2836e131c7ef076be9c644ca4d18795e4db5911267fa3", + "0xd23f565f9f5472944be8a2a7e36e2ce71a8c4f8b52f8da559f8545ac912347f6", + "0xd2cba88d7ce541ad591c502ccf59c6c59d7dd432b663cc13a36781a6976bf5bb", + "0xd5e3ee6fa97b35e816e608f24f775ffd69630f04d1f5131627fb86153a003e47", + "0xda50ca1f674de8e7166d0c0265dd4175f0a69f461c00ac65107d6957cd168348", + "0xda89bac08a36b187df7de02a08ac3b6a98016b1610c64cde2970f5f4b59125d4", + "0xdc94ba8e8d952bb19047335bc1517d556b21d2ce96722885214c5f5241ac4ad0", + "0xdf0d86e9d8d2ab9d598062da57d512d39e0102425ecea598aee9a1d73e883619", + "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", + "0xe6a48ab793151dfceb21d185730b05319ede87e6e415fd1fec41bafe4e0779f6", + "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", + "0xf9f32e362d5d343046fde898a7372ea2a6a7d4d36bda1b1ab31f1724a92a1982", + "0xfd211f3ecaa7a6f275351ac86570183daf1fba722faf7c5cb64f04210113dc60" + ], + "events": [ + { + "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "eventSeq": "0" + }, + { + "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "eventSeq": "1" + } + ] + }, + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "gasData": { + "payment": [ + { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000000", + "version": 0, + "digest": "11111111111111111111111111111111" + } + ], + "owner": "0x0000000000000000000000000000000000000000000000000000000000000000", + "price": "1", + "budget": "0" + } + }, + "txSignatures": [ + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" + ] + }, + "effects": { + "messageVersion": "v1", + "status": { + "status": "success" + }, + "executedEpoch": "0", + "gasUsed": { + "computationCost": "0", + "storageCost": "0", + "storageRebate": "0", + "nonRefundableStorageFee": "0" + }, + "transactionDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "created": [ + { + "owner": "Immutable", + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000001", + "version": 1, + "digest": "EEzLb1GUJ7T1D7c5YshyZRTUeEbuqJHEXZzVnZSyiP4X" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000002", + "version": 1, + "digest": "Hfn1skt6xRG4LJWMYfSRihabdYdysbpfW3E37FkZYTNv" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000003", + "version": 1, + "digest": "8ncmvcNW2hSrxsiA1BAYLfiHT7gq9CrQ5xAZd5icZ7AZ" + } + }, + { + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", + "version": 1, + "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1" + } + }, + { + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000006", + "version": 1, + "digest": "DoYdsHQ3yrPPbeLiP7m86cEvpdZa5u9WR3sfwkAwFzzP" + } + }, + { + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000008", + "version": 1, + "digest": "HcuoW6CpTvpCW6zyXReFRuwG57fWjFao6aFaQ8B6ojqb" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x000000000000000000000000000000000000000000000000000000000000000b", + "version": 1, + "digest": "7qX7XuWkQdxTey5khTi36fSt7wUaUj6WLcCvHYw7Kt7L" + } + }, + { + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000403", + "version": 1, + "digest": "4MciKuQpwmG4gcXB5j4CpYEsiEEFJADhVHNaLtnD7VgJ" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x000000000000000000000000000000000000000000000000000000000000107a", + "version": 1, + "digest": "EyPJZsqLWzzuLwUbDmq77YDcYc2n28JUvmR2D3XYXvEx" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0x0658bc0b0d7fbc21787e3c0cb499355da97a2676b1d89fe4b30d163b8c62e7ed", + "version": 1, + "digest": "AgqbZ4SdhbequEufn6KPMegNwUEGHbZeGfNVWM7YEdFD" + } + }, + { + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "reference": { + "objectId": "0x075763a78e8a77cba94dfb46a7d7ffff8ed330d0774ec244a9c066b87376bf85", + "version": 1, + "digest": "9Wdw77n2eeCTSha1f6Uj4LvG934xphSbyNRazH83W89j" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0x17e76e42843454d5d030ad02dd96b08d27dd1baea95ec33f61422d2a474fc64e", + "version": 1, + "digest": "Ajbmr42uP2PXH3JgpufkeSbHVsc4FRaVgWiA3Na4ryCg" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x1c91896da60a3b83c30c4ec462b01b7b58620fef39a66464b48a94c0eb129017", + "version": 1, + "digest": "D1czj3Qr4pMCQqhSwPxwiLFbGiMocRTuBkL8LftbsquG" + } + }, + { + "owner": { + "ObjectOwner": "0x7c7b5e9ac86c1c9167861684dc799150ae0bcb20ee35dc027a7b1c3239c43491" + }, + "reference": { + "objectId": "0x2a655cbb998089faa8412a2c2a92fa00a8b8398df3df42f39d576434ee7572fa", + "version": 1, + "digest": "6Gcrhm9g7gENwXs1LJLhM7bG7f7CaCH1UboQDrapPpve" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", + "version": 1, + "digest": "Gqd4PCCzQDf2ZYqzzD2p3XAoh94NHo1A6WaSP4NHX8xQ" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", + "version": 1, + "digest": "6F2itozbAXqk9Ak8diF6DGVpC5skK2r24TCgwkyNjNf9" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", + "version": 1, + "digest": "5ceUwwuSyYNbGcn6t92VYhkhrM9WXFrsqjHMBx9hTgui" + } + }, + { + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "reference": { + "objectId": "0x3f17533f07520a49ef52abfbf7b9317e234f29e0196b33afc84d163ef8034d03", + "version": 1, + "digest": "eLUzrhLUXkLJexz7yRkugTEecsUSatiS97eKDTyRKQ9" + } + }, + { + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "reference": { + "objectId": "0x434480a6195e420a99448287684aceb12e88bae1004166e8d3e84910257af130", + "version": 1, + "digest": "5BrMrFjw1CczYMshk7dccVioKF2SSvvEudBSSoVicvgG" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0x464079306127b6f089328b16d1f2de3efef3b6ddc099bf9850f6914cd64bcfa5", + "version": 1, + "digest": "RgrevPjn6eRbaBQBFDp5GVkhRHAxX1LN6PX6W7R3b2G" + } + }, + { + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "reference": { + "objectId": "0x4b44af5c085eb56a4b0cd9e09b9e5cd8fb33119a93238dd3768c7437175a9df5", + "version": 1, + "digest": "EXw3aJJqk8qBNWnDcLwg64D1qtyZjxhP5haefEbvFyDi" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x4c85212134d410410c2a5ee0f03f3595884fa739931d03742833d02f9f4d890b", + "version": 1, + "digest": "3pwRGNUZmDZcfQp6tvvH63PYDtVZVG2VttFBhYMkDJLZ" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", + "version": 1, + "digest": "DPcMjDP4X3jp2t7J2zTZF7CBjhJ87fP1rxFHsDh9bRPE" + } + }, + { + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "reference": { + "objectId": "0x532489afdc0d76972e374298baaee6730bfeee3d68b26abfecd616a56690d902", + "version": 1, + "digest": "HnGKwbms8dfQ6XNxcJDbLbFHDkh2b5NyARjgh8888Nh5" + } + }, + { + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "reference": { + "objectId": "0x5396282be36c868aec019959977a2a2b3e35e32ca8e9d0418a73d5d7f06c45f3", + "version": 1, + "digest": "C8kPWM5ksWk5ppVSZUSEvy5axrRBzqeqD3Gw4SfwYLt5" + } + }, + { + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "reference": { + "objectId": "0x58010842a21daf70d03f28e14a55c3b44c9e1f2c82bf6e79643c440e7e260231", + "version": 1, + "digest": "CVQfkwhtZPCWcXEwPNDx2RgJZZZWj9bViZkCG6rp7RT2" + } + }, + { + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "reference": { + "objectId": "0x5e199335497052f88a5179fe1b336aa3908278987d5d8cbfc01ae1d20eafa7bc", + "version": 1, + "digest": "GVWnxq3G3VTkrjmzeTCQNsrsZLH2pTv6a8cyJvPTjMPK" + } + }, + { + "owner": { + "ObjectOwner": "0x0ce0659906b775a0dc9bc9923d4933630a3c22e06b78f2f0a0537575929f996a" + }, + "reference": { + "objectId": "0x5fb62a31bea23630d03f4a650cd8faa3b60e636d82f79aa9b61e35cf70861712", + "version": 1, + "digest": "BMYF3DduG7R7dkUDQMf2wG1zguhyFVzqMKZDwU9onTiy" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x601abe73257d8782de41888a16e9e04465a781e321f929c4c9c348c8a9a1110c", + "version": 1, + "digest": "CvgY37zCcCY2bRjJdox5sH9oEDUgbovD8jHMGE9FHtmy" + } + }, + { + "owner": { + "ObjectOwner": "0x0000000000000000000000000000000000000000000000000000000000000005" + }, + "reference": { + "objectId": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "version": 1, + "digest": "9P2nsb8D67sXPdtK7xe6W6DPTyZTzEeKhi9KBwkVXbLz" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x72995e676bcc6c290a2f4c42f8a5846c7ef0063b9af7728ef5d4123de9ac8bbc", + "version": 1, + "digest": "FfKTjzvKHcaEQSdxRK9zx8pbU8BZeU2N3s7f3tKL9eCX" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x72ee17dff740e4aefa6a03e6212533f3615005d79a206698bcd47e9b34d1df1a", + "version": 1, + "digest": "HUMsUSpoXj22qB4M6tECWDjmEaTwxEwsuSy6KFcVn7VY" + } + }, + { + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "reference": { + "objectId": "0x76742eed3be4ac1fbf108ae112a743f314a8f8ac90c66b5beb0efe39a58ca6b6", + "version": 1, + "digest": "2WUuBVt8CfxY8SgBK8qxZUK5BUozyn61G6uDUxskz6vB" + } + }, + { + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "reference": { + "objectId": "0x778aafce25aa78d5cb0a77b78b816d4ef61e574a590fa5b5787c448c2eb56ce5", + "version": 1, + "digest": "6iWxLqw2jwbdjyeWW6ahGgPEP96WFQ9QXAW1YUa6QoaT" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0x8371569f0f25fa2bef413dc333f74a8df4c1ad6cf31dc80048887ae85eecd527", + "version": 1, + "digest": "8YuEfQiV2fGTULQgjgMeuY2GULxxScLxMxJVzGRmEGFh" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x83d61ef9fc69752099b356a702283468748b46057b97466da021ad966e2e1362", + "version": 1, + "digest": "CBXqvoJK8TDYHd3z7xHYA2HdpW52UoNMg3hZyd3SS6Mq" + } + }, + { + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "reference": { + "objectId": "0x8f6303e1c51abe1dd7808d8c3d3c96cbaa53565e9dd243ee1bb65a3259947ec5", + "version": 1, + "digest": "qZB2htF7TnbC1erC5brX6usTaccoNbkYvzV1z2T1wRr" + } + }, + { + "owner": { + "ObjectOwner": "0xa638e6c2e51c688fac426e422c56d310ada32abf20ccf9ebdf1acc93e00c2472" + }, + "reference": { + "objectId": "0x9798a9772438b077f07c4b5a29d90e8b1d1c774424043645ed27e5a0c79d2499", + "version": 1, + "digest": "BdXCtcdbth68sFr11iGJZqz45N2fupUEErxB2Px4ZEC9" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0x98038db1bfffc9a021aa9b1711288f56756a203112017ac615bdd49e0ddfe768", + "version": 1, + "digest": "HX5fgCYDAY4EXAsvS6LwgSUr9hx4aoZYbp5GJbUnq8n4" + } + }, + { + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "reference": { + "objectId": "0x99bc508c5440067cf58e4b6e671416a2b04e4f60456b711a81b2a9f549ec6892", + "version": 1, + "digest": "FkULFZXqhbqU5Fon3honm5pFmUiqJkY7Y6ECbte1Hii9" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0xae837285a73c2d23f86206314d8acfdc7adf4af36e33807e3e535cc24edcddda", + "version": 1, + "digest": "4V3KqU3gC2eqg9un9WcutPCAiA6vPcGYeFqoTutixkB4" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0xb1930538959be08dee8ab76c7898c85be25e429f967913cc90f3d1b1ab496717", + "version": 1, + "digest": "FWeCCocjhoeacrKX1ZVkrEvqNxckJfk1KoyHtFH2Z8ES" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0xb2d16c38972ef51ed6995d84fee1d5e938eb64d8ab4b8cadc68170f60a778486", + "version": 1, + "digest": "8tKfiV8MHaEvrzzX3c9exgsAscHPmgZVF9GZ5LjZNwJz" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0xc1f45dae29fcdc6611af2ac3b42443fa28fb337e89850cf61b97b048c6cfe121", + "version": 1, + "digest": "F7UAZ1nzZSGcEs1ntEuv5yBrtjgE9omqTYsM5MiyP1gg" + } + }, + { + "owner": { + "ObjectOwner": "0x9bc5337781f04e021c5d42b6db841d379794edcf721813534cb5d14dc0290d77" + }, + "reference": { + "objectId": "0xc98cbb8b969eccb46b7a487eaa75ac486faa3a55b719731aa9a6b7fdcc90cbc3", + "version": 1, + "digest": "6Jfkx2oF2DaXgcD7YMF9qeNUKMvGtBRtCmbh3CRZe21V" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0xcdb39cadb88f872448b2836e131c7ef076be9c644ca4d18795e4db5911267fa3", + "version": 1, + "digest": "Cs8zMC43XRRwrM4UxEaKE6R64iWLieh821t7bUh5gPU3" + } + }, + { + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "reference": { + "objectId": "0xd23f565f9f5472944be8a2a7e36e2ce71a8c4f8b52f8da559f8545ac912347f6", + "version": 1, + "digest": "9DbBy8qevsWuEZJQdgyZgX2JTYju838H82fC6ioa6wpw" + } + }, + { + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "reference": { + "objectId": "0xd2cba88d7ce541ad591c502ccf59c6c59d7dd432b663cc13a36781a6976bf5bb", + "version": 1, + "digest": "9cBTiupwFCu1ju2HsegDvB6Z68PSSsYPeXaMcD4RzKfc" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0xd5e3ee6fa97b35e816e608f24f775ffd69630f04d1f5131627fb86153a003e47", + "version": 1, + "digest": "AQCi9QJC9fV8SEcpQQA9FKhsETtggm3VWAYuswZ6fXF5" + } + }, + { + "owner": { + "ObjectOwner": "0x25251a73e10849ffe7abc224ed35304d012a18f418611b381298d8be8b2eaf83" + }, + "reference": { + "objectId": "0xda50ca1f674de8e7166d0c0265dd4175f0a69f461c00ac65107d6957cd168348", + "version": 1, + "digest": "6zzp85oetD1P7Zv4Umd7E4aG9iwbaGDmQgoKmutGpL4e" + } + }, + { + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "reference": { + "objectId": "0xda89bac08a36b187df7de02a08ac3b6a98016b1610c64cde2970f5f4b59125d4", + "version": 1, + "digest": "4Rs6gsJZ478oWm1L9KsosLZZeRXutj1SyrCNB6NzkS7E" + } + }, + { + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "reference": { + "objectId": "0xdc94ba8e8d952bb19047335bc1517d556b21d2ce96722885214c5f5241ac4ad0", + "version": 1, + "digest": "Ac7ex9P1Qrs9wQAzZezDzoPPnoMcGqZoSh4LbMeduiui" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0xdf0d86e9d8d2ab9d598062da57d512d39e0102425ecea598aee9a1d73e883619", + "version": 1, + "digest": "ECfLmrqxkyF2g16LdCCLAz6Gae51xF5Naka2zHc4sh9H" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", + "version": 1, + "digest": "5UbcKdRD7iyfUn2upZ1c9wuWRiD9J9h9hCCE1jX1EHSz" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0xe6a48ab793151dfceb21d185730b05319ede87e6e415fd1fec41bafe4e0779f6", + "version": 1, + "digest": "HEeQgzeThKQWJRqP2F9yMXArCNQD5xYPcCZKZEF8Kfqd" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", + "version": 1, + "digest": "A5Tnjugpa5gCcKLcwiVNJnYGRHuuADX7YtpgUtgfKfXa" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0xf9f32e362d5d343046fde898a7372ea2a6a7d4d36bda1b1ab31f1724a92a1982", + "version": 1, + "digest": "AhEJzhsHTTWbWER6c73s5oAVXXNE7VkDN56mhV8u4Qfn" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0xfd211f3ecaa7a6f275351ac86570183daf1fba722faf7c5cb64f04210113dc60", + "version": 1, + "digest": "CBp9bmMzBTBKhAwHAFLm7KDgy8xSQkW41xaTF1RKHEc8" + } + } + ], + "gasObject": { + "owner": { + "AddressOwner": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000000", + "version": 0, + "digest": "11111111111111111111111111111111" + } + }, + "eventsDigest": "CaYcJ14pKAFjepdh3zk6S8WBtCEDusER6ZfZh5n5Sfrk" + }, + "events": [ + { + "id": { + "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "eventSeq": "0" + }, + "packageId": "0x000000000000000000000000000000000000000000000000000000000000107a", + "transactionModule": "nft", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2::display::DisplayCreated<0x107a::nft::Nft>", + "parsedJson": { + "id": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f" + }, + "bcs": "4eK4Rmo4WPkHRfYunQzeR9sB8FgeBwvS6dmuAkFr91pz" + }, + { + "id": { + "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "eventSeq": "1" + }, + "packageId": "0x000000000000000000000000000000000000000000000000000000000000107a", + "transactionModule": "nft", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2::display::VersionUpdated<0x107a::nft::Nft>", + "parsedJson": { + "fields": { + "contents": [ + { + "key": "name", + "value": "{immutable_metadata.name}" + }, + { + "key": "image_url", + "value": "{immutable_metadata.uri}" + }, + { + "key": "description", + "value": "{immutable_metadata.description}" + }, + { + "key": "creator", + "value": "{immutable_metadata.issuer_name}" + }, + { + "key": "version", + "value": "{immutable_metadata.version}" + }, + { + "key": "media_type", + "value": "{immutable_metadata.media_type}" + }, + { + "key": "collection_name", + "value": "{immutable_metadata.collection_name}" + }, + { + "key": "immutable_issuer", + "value": "{immutable_issuer}" + } + ] + }, + "id": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", + "version": 1 + }, + "bcs": "RtmkG7B277UHmHzNeCR4JSjBPk5Jar4EmEM8rps4ibCVajBRYzsvQfF8QM43JPnE8aKATVn8vpGA2B8NS3HSf6tYyEY7SiT7XZcESuZAJDDAstKn2T5jZ4pZs6gqohtCsFoPVqfxMgir1dMYJQRdzBhjnYBHgUHU6U6ErV6wCU7CVk9xKX14hfD3Q4LK5cctwaK72iipJbdmmo4jXWGY177jRp8vAcP82xi28HyYdtu1S79GRmj7CUsn1yok6BD7ux6iqwDU6Xo8tBJBnA76Lmba7LFyS7nqUnVU4K5uiHVYC2jNudZtXvtJWeAcs1oQ5mx4wKpg82DsfePBCDc3WxyooTUZUbS8pJuKfrvbzGtC7iUJvRnTbW821dbBKcWvw8wajSATuPs7LkoBTxyETMCfrpzZCZF4tTmqDkPxKvYizxGhTga8PkSCSCvWMCNCdbRjBzGoxmJky5AWALRYZSA2x1jqdFudcd2U7E" + } + ], + "objectChanges": [ + { + "type": "published", + "packageId": "0x0000000000000000000000000000000000000000000000000000000000000001", + "version": "1", + "digest": "EEzLb1GUJ7T1D7c5YshyZRTUeEbuqJHEXZzVnZSyiP4X", + "modules": [ + "address", + "ascii", + "bcs", + "bit_vector", + "debug", + "fixed_point32", + "hash", + "macros", + "option", + "string", + "type_name", + "u128", + "u16", + "u256", + "u32", + "u64", + "u8", + "vector" + ] + }, + { + "type": "published", + "packageId": "0x0000000000000000000000000000000000000000000000000000000000000002", + "version": "1", + "digest": "Hfn1skt6xRG4LJWMYfSRihabdYdysbpfW3E37FkZYTNv", + "modules": [ + "address", + "authenticator_state", + "bag", + "balance", + "bcs", + "bls12381", + "borrow", + "clock", + "coin", + "coin_manager", + "config", + "deny_list", + "display", + "dynamic_field", + "dynamic_object_field", + "ecdsa_k1", + "ecdsa_r1", + "ecvrf", + "ed25519", + "event", + "groth16", + "group_ops", + "hash", + "hex", + "hmac", + "iota", + "kiosk", + "kiosk_extension", + "labeler", + "linked_table", + "object", + "object_bag", + "object_table", + "package", + "pay", + "poseidon", + "priority_queue", + "prover", + "random", + "system_admin_cap", + "table", + "table_vec", + "timelock", + "token", + "transfer", + "transfer_policy", + "tx_context", + "types", + "url", + "vdf", + "vec_map", + "vec_set", + "versioned", + "zklogin_verified_id", + "zklogin_verified_issuer" + ] + }, + { + "type": "published", + "packageId": "0x0000000000000000000000000000000000000000000000000000000000000003", + "version": "1", + "digest": "8ncmvcNW2hSrxsiA1BAYLfiHT7gq9CrQ5xAZd5icZ7AZ", + "modules": [ + "genesis", + "iota_system", + "iota_system_state_inner", + "staking_pool", + "storage_fund", + "timelocked_staking", + "validator", + "validator_cap", + "validator_set", + "validator_wrapper", + "voting_power" + ] + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "objectType": "0x3::iota_system::IotaSystemState", + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", + "version": "1", + "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "objectType": "0x2::clock::Clock", + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000006", + "version": "1", + "digest": "DoYdsHQ3yrPPbeLiP7m86cEvpdZa5u9WR3sfwkAwFzzP" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "objectType": "0x2::random::Random", + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000008", + "version": "1", + "digest": "HcuoW6CpTvpCW6zyXReFRuwG57fWjFao6aFaQ8B6ojqb" + }, + { + "type": "published", + "packageId": "0x000000000000000000000000000000000000000000000000000000000000000b", + "version": "1", + "digest": "7qX7XuWkQdxTey5khTi36fSt7wUaUj6WLcCvHYw7Kt7L", + "modules": [ + "bridge", + "chain_ids", + "committee", + "crypto", + "limiter", + "message", + "message_types", + "treasury" + ] + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "objectType": "0x2::deny_list::DenyList", + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000403", + "version": "1", + "digest": "4MciKuQpwmG4gcXB5j4CpYEsiEEFJADhVHNaLtnD7VgJ" + }, + { + "type": "published", + "packageId": "0x000000000000000000000000000000000000000000000000000000000000107a", + "version": "1", + "digest": "EyPJZsqLWzzuLwUbDmq77YDcYc2n28JUvmR2D3XYXvEx", + "modules": [ + "address_unlock_condition", + "alias", + "alias_output", + "basic_output", + "expiration_unlock_condition", + "irc27", + "nft", + "nft_output", + "stardust_upgrade_label", + "storage_deposit_return_unlock_condition", + "timelock_unlock_condition", + "utilities" + ] + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x0658bc0b0d7fbc21787e3c0cb499355da97a2676b1d89fe4b30d163b8c62e7ed", + "version": "1", + "digest": "AgqbZ4SdhbequEufn6KPMegNwUEGHbZeGfNVWM7YEdFD" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "objectType": "0x3::staking_pool::StakedIota", + "objectId": "0x075763a78e8a77cba94dfb46a7d7ffff8ed330d0774ec244a9c066b87376bf85", + "version": "1", + "digest": "9Wdw77n2eeCTSha1f6Uj4LvG934xphSbyNRazH83W89j" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x17e76e42843454d5d030ad02dd96b08d27dd1baea95ec33f61422d2a474fc64e", + "version": "1", + "digest": "Ajbmr42uP2PXH3JgpufkeSbHVsc4FRaVgWiA3Na4ryCg" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x1c91896da60a3b83c30c4ec462b01b7b58620fef39a66464b48a94c0eb129017", + "version": "1", + "digest": "D1czj3Qr4pMCQqhSwPxwiLFbGiMocRTuBkL8LftbsquG" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x7c7b5e9ac86c1c9167861684dc799150ae0bcb20ee35dc027a7b1c3239c43491" + }, + "objectType": "0x2::dynamic_field::Field<u64, 0x3::staking_pool::PoolTokenExchangeRate>", + "objectId": "0x2a655cbb998089faa8412a2c2a92fa00a8b8398df3df42f39d576434ee7572fa", + "version": "1", + "digest": "6Gcrhm9g7gENwXs1LJLhM7bG7f7CaCH1UboQDrapPpve" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", + "version": "1", + "digest": "Gqd4PCCzQDf2ZYqzzD2p3XAoh94NHo1A6WaSP4NHX8xQ" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", + "version": "1", + "digest": "6F2itozbAXqk9Ak8diF6DGVpC5skK2r24TCgwkyNjNf9" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": "Immutable", + "objectType": "0x2::display::Display<0x107a::nft::Nft>", + "objectId": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", + "version": "1", + "digest": "5ceUwwuSyYNbGcn6t92VYhkhrM9WXFrsqjHMBx9hTgui" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x3f17533f07520a49ef52abfbf7b9317e234f29e0196b33afc84d163ef8034d03", + "version": "1", + "digest": "eLUzrhLUXkLJexz7yRkugTEecsUSatiS97eKDTyRKQ9" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", + "objectId": "0x434480a6195e420a99448287684aceb12e88bae1004166e8d3e84910257af130", + "version": "1", + "digest": "5BrMrFjw1CczYMshk7dccVioKF2SSvvEudBSSoVicvgG" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x464079306127b6f089328b16d1f2de3efef3b6ddc099bf9850f6914cd64bcfa5", + "version": "1", + "digest": "RgrevPjn6eRbaBQBFDp5GVkhRHAxX1LN6PX6W7R3b2G" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x4b44af5c085eb56a4b0cd9e09b9e5cd8fb33119a93238dd3768c7437175a9df5", + "version": "1", + "digest": "EXw3aJJqk8qBNWnDcLwg64D1qtyZjxhP5haefEbvFyDi" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x4c85212134d410410c2a5ee0f03f3595884fa739931d03742833d02f9f4d890b", + "version": "1", + "digest": "3pwRGNUZmDZcfQp6tvvH63PYDtVZVG2VttFBhYMkDJLZ" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", + "version": "1", + "digest": "DPcMjDP4X3jp2t7J2zTZF7CBjhJ87fP1rxFHsDh9bRPE" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", + "objectId": "0x532489afdc0d76972e374298baaee6730bfeee3d68b26abfecd616a56690d902", + "version": "1", + "digest": "HnGKwbms8dfQ6XNxcJDbLbFHDkh2b5NyARjgh8888Nh5" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", + "objectId": "0x5396282be36c868aec019959977a2a2b3e35e32ca8e9d0418a73d5d7f06c45f3", + "version": "1", + "digest": "C8kPWM5ksWk5ppVSZUSEvy5axrRBzqeqD3Gw4SfwYLt5" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x58010842a21daf70d03f28e14a55c3b44c9e1f2c82bf6e79643c440e7e260231", + "version": "1", + "digest": "CVQfkwhtZPCWcXEwPNDx2RgJZZZWj9bViZkCG6rp7RT2" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", + "objectId": "0x5e199335497052f88a5179fe1b336aa3908278987d5d8cbfc01ae1d20eafa7bc", + "version": "1", + "digest": "GVWnxq3G3VTkrjmzeTCQNsrsZLH2pTv6a8cyJvPTjMPK" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x0ce0659906b775a0dc9bc9923d4933630a3c22e06b78f2f0a0537575929f996a" + }, + "objectType": "0x2::dynamic_field::Field<u64, 0x2::random::RandomInner>", + "objectId": "0x5fb62a31bea23630d03f4a650cd8faa3b60e636d82f79aa9b61e35cf70861712", + "version": "1", + "digest": "BMYF3DduG7R7dkUDQMf2wG1zguhyFVzqMKZDwU9onTiy" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x601abe73257d8782de41888a16e9e04465a781e321f929c4c9c348c8a9a1110c", + "version": "1", + "digest": "CvgY37zCcCY2bRjJdox5sH9oEDUgbovD8jHMGE9FHtmy" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x0000000000000000000000000000000000000000000000000000000000000005" + }, + "objectType": "0x2::dynamic_field::Field<u64, 0x3::iota_system_state_inner::IotaSystemStateV1>", + "objectId": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "version": "1", + "digest": "9P2nsb8D67sXPdtK7xe6W6DPTyZTzEeKhi9KBwkVXbLz" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x72995e676bcc6c290a2f4c42f8a5846c7ef0063b9af7728ef5d4123de9ac8bbc", + "version": "1", + "digest": "FfKTjzvKHcaEQSdxRK9zx8pbU8BZeU2N3s7f3tKL9eCX" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x72ee17dff740e4aefa6a03e6212533f3615005d79a206698bcd47e9b34d1df1a", + "version": "1", + "digest": "HUMsUSpoXj22qB4M6tECWDjmEaTwxEwsuSy6KFcVn7VY" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "objectType": "0x3::staking_pool::StakedIota", + "objectId": "0x76742eed3be4ac1fbf108ae112a743f314a8f8ac90c66b5beb0efe39a58ca6b6", + "version": "1", + "digest": "2WUuBVt8CfxY8SgBK8qxZUK5BUozyn61G6uDUxskz6vB" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", + "objectId": "0x778aafce25aa78d5cb0a77b78b816d4ef61e574a590fa5b5787c448c2eb56ce5", + "version": "1", + "digest": "6iWxLqw2jwbdjyeWW6ahGgPEP96WFQ9QXAW1YUa6QoaT" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x8371569f0f25fa2bef413dc333f74a8df4c1ad6cf31dc80048887ae85eecd527", + "version": "1", + "digest": "8YuEfQiV2fGTULQgjgMeuY2GULxxScLxMxJVzGRmEGFh" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": "Immutable", + "objectType": "0x2::coin::CoinMetadata<0x2::iota::IOTA>", + "objectId": "0x83d61ef9fc69752099b356a702283468748b46057b97466da021ad966e2e1362", + "version": "1", + "digest": "CBXqvoJK8TDYHd3z7xHYA2HdpW52UoNMg3hZyd3SS6Mq" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x8f6303e1c51abe1dd7808d8c3d3c96cbaa53565e9dd243ee1bb65a3259947ec5", + "version": "1", + "digest": "qZB2htF7TnbC1erC5brX6usTaccoNbkYvzV1z2T1wRr" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xa638e6c2e51c688fac426e422c56d310ada32abf20ccf9ebdf1acc93e00c2472" + }, + "objectType": "0x2::dynamic_field::Field<u64, 0x3::staking_pool::PoolTokenExchangeRate>", + "objectId": "0x9798a9772438b077f07c4b5a29d90e8b1d1c774424043645ed27e5a0c79d2499", + "version": "1", + "digest": "BdXCtcdbth68sFr11iGJZqz45N2fupUEErxB2Px4ZEC9" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x98038db1bfffc9a021aa9b1711288f56756a203112017ac615bdd49e0ddfe768", + "version": "1", + "digest": "HX5fgCYDAY4EXAsvS6LwgSUr9hx4aoZYbp5GJbUnq8n4" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "objectType": "0x3::staking_pool::StakedIota", + "objectId": "0x99bc508c5440067cf58e4b6e671416a2b04e4f60456b711a81b2a9f549ec6892", + "version": "1", + "digest": "FkULFZXqhbqU5Fon3honm5pFmUiqJkY7Y6ECbte1Hii9" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xae837285a73c2d23f86206314d8acfdc7adf4af36e33807e3e535cc24edcddda", + "version": "1", + "digest": "4V3KqU3gC2eqg9un9WcutPCAiA6vPcGYeFqoTutixkB4" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xb1930538959be08dee8ab76c7898c85be25e429f967913cc90f3d1b1ab496717", + "version": "1", + "digest": "FWeCCocjhoeacrKX1ZVkrEvqNxckJfk1KoyHtFH2Z8ES" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xb2d16c38972ef51ed6995d84fee1d5e938eb64d8ab4b8cadc68170f60a778486", + "version": "1", + "digest": "8tKfiV8MHaEvrzzX3c9exgsAscHPmgZVF9GZ5LjZNwJz" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xc1f45dae29fcdc6611af2ac3b42443fa28fb337e89850cf61b97b048c6cfe121", + "version": "1", + "digest": "F7UAZ1nzZSGcEs1ntEuv5yBrtjgE9omqTYsM5MiyP1gg" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x9bc5337781f04e021c5d42b6db841d379794edcf721813534cb5d14dc0290d77" + }, + "objectType": "0x2::dynamic_field::Field<u64, 0x3::staking_pool::PoolTokenExchangeRate>", + "objectId": "0xc98cbb8b969eccb46b7a487eaa75ac486faa3a55b719731aa9a6b7fdcc90cbc3", + "version": "1", + "digest": "6Jfkx2oF2DaXgcD7YMF9qeNUKMvGtBRtCmbh3CRZe21V" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xcdb39cadb88f872448b2836e131c7ef076be9c644ca4d18795e4db5911267fa3", + "version": "1", + "digest": "Cs8zMC43XRRwrM4UxEaKE6R64iWLieh821t7bUh5gPU3" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", + "objectId": "0xd23f565f9f5472944be8a2a7e36e2ce71a8c4f8b52f8da559f8545ac912347f6", + "version": "1", + "digest": "9DbBy8qevsWuEZJQdgyZgX2JTYju838H82fC6ioa6wpw" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", + "objectId": "0xd2cba88d7ce541ad591c502ccf59c6c59d7dd432b663cc13a36781a6976bf5bb", + "version": "1", + "digest": "9cBTiupwFCu1ju2HsegDvB6Z68PSSsYPeXaMcD4RzKfc" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xd5e3ee6fa97b35e816e608f24f775ffd69630f04d1f5131627fb86153a003e47", + "version": "1", + "digest": "AQCi9QJC9fV8SEcpQQA9FKhsETtggm3VWAYuswZ6fXF5" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x25251a73e10849ffe7abc224ed35304d012a18f418611b381298d8be8b2eaf83" + }, + "objectType": "0x2::dynamic_field::Field<u64, 0x3::staking_pool::PoolTokenExchangeRate>", + "objectId": "0xda50ca1f674de8e7166d0c0265dd4175f0a69f461c00ac65107d6957cd168348", + "version": "1", + "digest": "6zzp85oetD1P7Zv4Umd7E4aG9iwbaGDmQgoKmutGpL4e" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "objectType": "0x3::staking_pool::StakedIota", + "objectId": "0xda89bac08a36b187df7de02a08ac3b6a98016b1610c64cde2970f5f4b59125d4", + "version": "1", + "digest": "4Rs6gsJZ478oWm1L9KsosLZZeRXutj1SyrCNB6NzkS7E" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", + "objectId": "0xdc94ba8e8d952bb19047335bc1517d556b21d2ce96722885214c5f5241ac4ad0", + "version": "1", + "digest": "Ac7ex9P1Qrs9wQAzZezDzoPPnoMcGqZoSh4LbMeduiui" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xdf0d86e9d8d2ab9d598062da57d512d39e0102425ecea598aee9a1d73e883619", + "version": "1", + "digest": "ECfLmrqxkyF2g16LdCCLAz6Gae51xF5Naka2zHc4sh9H" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", + "version": "1", + "digest": "5UbcKdRD7iyfUn2upZ1c9wuWRiD9J9h9hCCE1jX1EHSz" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xe6a48ab793151dfceb21d185730b05319ede87e6e415fd1fec41bafe4e0779f6", + "version": "1", + "digest": "HEeQgzeThKQWJRqP2F9yMXArCNQD5xYPcCZKZEF8Kfqd" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", + "version": "1", + "digest": "A5Tnjugpa5gCcKLcwiVNJnYGRHuuADX7YtpgUtgfKfXa" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xf9f32e362d5d343046fde898a7372ea2a6a7d4d36bda1b1ab31f1724a92a1982", + "version": "1", + "digest": "AhEJzhsHTTWbWER6c73s5oAVXXNE7VkDN56mhV8u4Qfn" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xfd211f3ecaa7a6f275351ac86570183daf1fba722faf7c5cb64f04210113dc60", + "version": "1", + "digest": "CBp9bmMzBTBKhAwHAFLm7KDgy8xSQkW41xaTF1RKHEc8" + } + ], + "timestampMs": "1641175496000", + "checkpoint": "0" + }, + "iota client tx-block EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8", + "ErrorObject { code: InvalidParams, message: \"Could not find the referenced transaction [TransactionDigest(EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8)].\", data: None }" +] diff --git a/crates/iota-framework-snapshot/bytecode_snapshot/1/0x0000000000000000000000000000000000000000000000000000000000000002 b/crates/iota-framework-snapshot/bytecode_snapshot/1/0x0000000000000000000000000000000000000000000000000000000000000002 index b0bbeaa7247..6e14adb5fdf 100644 Binary files a/crates/iota-framework-snapshot/bytecode_snapshot/1/0x0000000000000000000000000000000000000000000000000000000000000002 and b/crates/iota-framework-snapshot/bytecode_snapshot/1/0x0000000000000000000000000000000000000000000000000000000000000002 differ diff --git a/crates/iota-framework-snapshot/bytecode_snapshot/1/0x0000000000000000000000000000000000000000000000000000000000000003 b/crates/iota-framework-snapshot/bytecode_snapshot/1/0x0000000000000000000000000000000000000000000000000000000000000003 index c1a2b18de42..1b5204b539b 100644 Binary files a/crates/iota-framework-snapshot/bytecode_snapshot/1/0x0000000000000000000000000000000000000000000000000000000000000003 and b/crates/iota-framework-snapshot/bytecode_snapshot/1/0x0000000000000000000000000000000000000000000000000000000000000003 differ diff --git a/crates/iota-framework-snapshot/manifest.json b/crates/iota-framework-snapshot/manifest.json index 2c69b9bbdf6..71466febef4 100644 --- a/crates/iota-framework-snapshot/manifest.json +++ b/crates/iota-framework-snapshot/manifest.json @@ -1,6 +1,6 @@ { "1": { - "git_revision": "cfa0f7babbc4", + "git_revision": "22a1e212cbb9", "package_ids": [ "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000002", diff --git a/crates/iota-framework/packages/iota-framework/sources/system_admin_cap.move b/crates/iota-framework/packages/iota-framework/sources/system_admin_cap.move index e07573ca936..2483ca4927a 100644 --- a/crates/iota-framework/packages/iota-framework/sources/system_admin_cap.move +++ b/crates/iota-framework/packages/iota-framework/sources/system_admin_cap.move @@ -10,6 +10,7 @@ module iota::system_admin_cap { const ENotSystemAddress: u64 = 1; /// `IotaSystemAdminCap` allows to perform privileged IOTA system operations. + /// For example, packing and unpacking `TimeLock`s during staking, etc. public struct IotaSystemAdminCap has store {} #[allow(unused_function)] @@ -25,6 +26,6 @@ module iota::system_admin_cap { #[test_only] /// Create a `IotaSystemAdminCap` for testing purposes. public fun new_system_admin_cap_for_testing(): IotaSystemAdminCap { - IotaSystemAdminCap { } + IotaSystemAdminCap {} } } diff --git a/crates/iota-graphql-e2e-tests/tests/available_range/available_range.exp b/crates/iota-graphql-e2e-tests/tests/available_range/available_range.exp index 23e7a64730c..dd41a2cb676 100644 --- a/crates/iota-graphql-e2e-tests/tests/available_range/available_range.exp +++ b/crates/iota-graphql-e2e-tests/tests/available_range/available_range.exp @@ -6,20 +6,20 @@ Response: { "data": { "availableRange": { "first": { - "digest": "Ap4ddWHXeYVMSMcf8cQT9j7WUM1rGKw7rG3Q8rpsuaUd", + "digest": "2Pnu3zEQqTY9iwaeCk5YvEDifg6a5wQyCZQbcUbFnm6a", "sequenceNumber": 0 }, "last": { - "digest": "Ap4ddWHXeYVMSMcf8cQT9j7WUM1rGKw7rG3Q8rpsuaUd", + "digest": "2Pnu3zEQqTY9iwaeCk5YvEDifg6a5wQyCZQbcUbFnm6a", "sequenceNumber": 0 } }, "first": { - "digest": "Ap4ddWHXeYVMSMcf8cQT9j7WUM1rGKw7rG3Q8rpsuaUd", + "digest": "2Pnu3zEQqTY9iwaeCk5YvEDifg6a5wQyCZQbcUbFnm6a", "sequenceNumber": 0 }, "last": { - "digest": "Ap4ddWHXeYVMSMcf8cQT9j7WUM1rGKw7rG3Q8rpsuaUd", + "digest": "2Pnu3zEQqTY9iwaeCk5YvEDifg6a5wQyCZQbcUbFnm6a", "sequenceNumber": 0 } } @@ -39,20 +39,20 @@ Response: { "data": { "availableRange": { "first": { - "digest": "Ap4ddWHXeYVMSMcf8cQT9j7WUM1rGKw7rG3Q8rpsuaUd", + "digest": "2Pnu3zEQqTY9iwaeCk5YvEDifg6a5wQyCZQbcUbFnm6a", "sequenceNumber": 0 }, "last": { - "digest": "6SSpR1JWujKRTEB844us1vSSxjpD3RADCZ6HujXWx9a1", + "digest": "Hp9k2veFDsLbSFiJW5BWR2UQaaaLJ4cE1R9QK1Ec2T31", "sequenceNumber": 2 } }, "first": { - "digest": "Ap4ddWHXeYVMSMcf8cQT9j7WUM1rGKw7rG3Q8rpsuaUd", + "digest": "2Pnu3zEQqTY9iwaeCk5YvEDifg6a5wQyCZQbcUbFnm6a", "sequenceNumber": 0 }, "last": { - "digest": "6SSpR1JWujKRTEB844us1vSSxjpD3RADCZ6HujXWx9a1", + "digest": "Hp9k2veFDsLbSFiJW5BWR2UQaaaLJ4cE1R9QK1Ec2T31", "sequenceNumber": 2 } } diff --git a/crates/iota-graphql-e2e-tests/tests/call/dynamic_fields.exp b/crates/iota-graphql-e2e-tests/tests/call/dynamic_fields.exp index 1cc6231fd6b..ad47d85be1a 100644 --- a/crates/iota-graphql-e2e-tests/tests/call/dynamic_fields.exp +++ b/crates/iota-graphql-e2e-tests/tests/call/dynamic_fields.exp @@ -41,29 +41,29 @@ Response: { { "name": { "type": { - "repr": "vector<u8>" + "repr": "u64" }, "data": { - "Vector": [] + "Number": "0" }, - "bcs": "AA==" + "bcs": "AAAAAAAAAAA=" }, "value": { - "__typename": "MoveValue" + "__typename": "MoveObject" } }, { "name": { "type": { - "repr": "u64" + "repr": "vector<u8>" }, "data": { - "Number": "0" + "Vector": [] }, - "bcs": "AAAAAAAAAAA=" + "bcs": "AA==" }, "value": { - "__typename": "MoveObject" + "__typename": "MoveValue" } }, { @@ -121,29 +121,29 @@ Response: { { "name": { "type": { - "repr": "vector<u8>" + "repr": "u64" }, "data": { - "Vector": [] + "Number": "0" }, - "bcs": "AA==" + "bcs": "AAAAAAAAAAA=" }, "value": { - "__typename": "MoveValue" + "__typename": "MoveObject" } }, { "name": { "type": { - "repr": "u64" + "repr": "vector<u8>" }, "data": { - "Number": "0" + "Vector": [] }, - "bcs": "AAAAAAAAAAA=" + "bcs": "AA==" }, "value": { - "__typename": "MoveObject" + "__typename": "MoveValue" } }, { @@ -190,33 +190,33 @@ Response: { { "name": { "type": { - "repr": "vector<u8>" + "repr": "u64" }, "data": { - "Vector": [] + "Number": "0" }, - "bcs": "AA==" + "bcs": "AAAAAAAAAAA=" }, "value": { - "bcs": "AQAAAAAAAAA=", - "data": { - "Number": "1" - }, - "__typename": "MoveValue" + "__typename": "MoveObject" } }, { "name": { "type": { - "repr": "u64" + "repr": "vector<u8>" }, "data": { - "Number": "0" + "Vector": [] }, - "bcs": "AAAAAAAAAAA=" + "bcs": "AA==" }, "value": { - "__typename": "MoveObject" + "bcs": "AQAAAAAAAAA=", + "data": { + "Number": "1" + }, + "__typename": "MoveValue" } }, { diff --git a/crates/iota-graphql-e2e-tests/tests/call/simple.exp b/crates/iota-graphql-e2e-tests/tests/call/simple.exp index 0e6fc5296ed..42af47adbb1 100644 --- a/crates/iota-graphql-e2e-tests/tests/call/simple.exp +++ b/crates/iota-graphql-e2e-tests/tests/call/simple.exp @@ -25,18 +25,14 @@ task 4, line 32: //# view-object 0,0 Owner: Account Address ( validator_0 ) Version: 1 -Contents: iota_system::staking_pool::StakedIota { +Contents: iota::coin::Coin<iota::iota::IOTA> { id: iota::object::UID { id: iota::object::ID { bytes: fake(0,0), }, }, - pool_id: iota::object::ID { - bytes: _, - }, - stake_activation_epoch: 0u64, - principal: iota::balance::Balance<iota::iota::IOTA> { - value: 1500000000000000u64, + balance: iota::balance::Balance<iota::iota::IOTA> { + value: 300000000000000u64, }, } @@ -81,7 +77,7 @@ Epoch advanced: 5 task 10, line 44: //# view-checkpoint -CheckpointSummary { epoch: 5, seq: 10, content_digest: TQRzKjmFFVTRsVoxCEk4TEatECab3mejg97UWAXNncR, +CheckpointSummary { epoch: 5, seq: 10, content_digest: EHaZsR7ajihuq2A1atco5htZtPYyUwkZHUhdWNgTuRwC, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 0, storage_cost: 0, storage_rebate: 0, non_refundable_storage_fee: 0 }} task 11, lines 46-51: @@ -159,8 +155,8 @@ Response: { "edges": [ { "node": { - "address": "0x247f507fc5da9cd8bda6a1f78757040f0c3b5a739ff42a5442e9d444cf905b24", - "digest": "F7V5y4PDcEqHxvLbWVXgNWhHNyLpnhSzUSPT6UgXrCpf", + "address": "0xe479cb734ef04b9d4c171a67e488b419b952791acee9aeb4f9ea5d6ea0dfcd9a", + "digest": "DuFDw4u9wrL5Vz3BaLxQmxvb9FLa8HDvJ9UhZW5Yu4cS", "owner": { "__typename": "AddressOwner" } @@ -186,8 +182,8 @@ Response: { "edges": [ { "node": { - "address": "0x247f507fc5da9cd8bda6a1f78757040f0c3b5a739ff42a5442e9d444cf905b24", - "digest": "F7V5y4PDcEqHxvLbWVXgNWhHNyLpnhSzUSPT6UgXrCpf", + "address": "0xe479cb734ef04b9d4c171a67e488b419b952791acee9aeb4f9ea5d6ea0dfcd9a", + "digest": "DuFDw4u9wrL5Vz3BaLxQmxvb9FLa8HDvJ9UhZW5Yu4cS", "owner": { "__typename": "AddressOwner" } @@ -201,8 +197,8 @@ Response: { "edges": [ { "node": { - "address": "0x26bf0f03edd09bb3f862e13cec014d17c26dd739d2563d9c704aa8d206301df2", - "digest": "5koFoxanUQbepReBDf2VjSpe8PkX45L7qAK5Qeb3RcJi", + "address": "0x0133ca00247f984c7280ea2aa1dac2630055ced0d5080825a0d9cdddf523f4f6", + "digest": "Ax3pt3zx5yNS6DPcDyJLGEj5TMeA8Z8FZv8tJuUe8UiH", "owner": { "__typename": "AddressOwner" } @@ -210,8 +206,8 @@ Response: { }, { "node": { - "address": "0x3442446f02377d1025b211e51564e4f1c9a46845ccad733beeb06180d3f66c31", - "digest": "DAK2yf5GQdXvY8iYQbqKt738y8LRx7Qt1cnQQ9hyhqXN", + "address": "0x26bf0f03edd09bb3f862e13cec014d17c26dd739d2563d9c704aa8d206301df2", + "digest": "Es2PzgRkTLrpyEdNNThffNN8sG4kmVLevN2ZAkVVJLEk", "owner": { "__typename": "AddressOwner" } @@ -219,8 +215,8 @@ Response: { }, { "node": { - "address": "0x3c88cad5799a8da0467b8456a7429a97e7c141cfcf25f02faf51aa8cb4840461", - "digest": "BUEYCJm1mj67k7xmdRar2vc6tWG72DfDWMeMUwYXymXA", + "address": "0x3442446f02377d1025b211e51564e4f1c9a46845ccad733beeb06180d3f66c31", + "digest": "CsW52aynnf8BFt5i81WRXS2pKkpJKKjreH9nGG5jDrN4", "owner": { "__typename": "AddressOwner" } @@ -228,8 +224,8 @@ Response: { }, { "node": { - "address": "0x5305698bff3e2940fe5c8853ab66a3ca81ae7f4178a5cd7f967820bcb5abaf42", - "digest": "2ppor4u2bZTY47XEcSH4m1BxeqejC6PssibD4H4ZstKW", + "address": "0x3c88cad5799a8da0467b8456a7429a97e7c141cfcf25f02faf51aa8cb4840461", + "digest": "ByKoXAbzqL7SLRX1MmWB4W8nndfkMhqU1V1scJUEVg66", "owner": { "__typename": "AddressOwner" } @@ -237,8 +233,8 @@ Response: { }, { "node": { - "address": "0x684bcf65082edf9f539aa0b576f2834bf9fafcf3f4896e46ae65bfd5de5529d3", - "digest": "D5mgXs5emP2X9yW1y1zMu2fQEPaCzzatsXDfQLxFiAB", + "address": "0x51e8ad8999fd29749b8afed87b965adbd781deb08b2f5325e4cf4e5528e17a7f", + "digest": "FK1iU9QwRx9rXV3UZxWjLCkzfBQdecKuZesJR5aioimU", "owner": { "__typename": "AddressOwner" } @@ -246,8 +242,8 @@ Response: { }, { "node": { - "address": "0x847c914d647e7387d7cea4db5ad8fefeffe66773635804a991dfd4385fab6a97", - "digest": "DhHp14dNZzUkhxtgwHiQsbVnJZUYfrnVy8r7BsSjbgjQ", + "address": "0x6139a8d91e9662934040407da8832dabd0f1b4e8ed9a79a6f0075fff7477e1f3", + "digest": "GhDHA88dPT3R5xk39dsQzDG6e9vY6qKAXWMPHf2UYkd", "owner": { "__typename": "AddressOwner" } @@ -255,8 +251,8 @@ Response: { }, { "node": { - "address": "0xa2b1d6b160c3d8a4f59a8c7483216236e83b83a2d32f73555113ab3f5074ef84", - "digest": "83L2WDCbwMMyxBdrPV8qizC3uExV4yxpnYbHNeMwRtdz", + "address": "0x7d569ebee60b485b12152a96d76cc7ed6ad521146ad4bd3fd62d12e4c2cae76b", + "digest": "DSKKyCHQYAnhZu7ysCeBopxiygaWqVkBSp9Yaxw41m5Y", "owner": { "__typename": "AddressOwner" } @@ -264,8 +260,8 @@ Response: { }, { "node": { - "address": "0xa79cc544021a721176cdc4497728ec35a5311b8ff0aa293a5d29c0d32cb56056", - "digest": "Cjed4do2xZ9e6XEF9HUK5E4YriQcU582E6NFG41vYVy6", + "address": "0x7d8f283166a0438b0d26369b0ebdd3c877ed26e981520a4c4890332e59bbc6e6", + "digest": "Be8XWiL51TNAgKDW8e718nXutiMgXwXcG4BWF8PuSpFt", "owner": { "__typename": "AddressOwner" } @@ -273,8 +269,8 @@ Response: { }, { "node": { - "address": "0xac9c2e11aebecd35b4cb15802ca6ad5e64d320204149187ba646a16d07a4934d", - "digest": "8WbutPsiEcCce4vLSP7HryffvbcwSMXCYcK4tkmTj1Hp", + "address": "0x847c914d647e7387d7cea4db5ad8fefeffe66773635804a991dfd4385fab6a97", + "digest": "DAkJ77dXLfY3spoK6DizU5NhG71yeY2uWraaPAGvMD6a", "owner": { "__typename": "AddressOwner" } @@ -282,8 +278,8 @@ Response: { }, { "node": { - "address": "0xb21c0b03871456040643740e238d03bde38de240d7b17055f4670777a19f07b8", - "digest": "6Wi2HWf7Q5AR2SMUAg53WKD2zop7AqJVww2c3CGMQeyt", + "address": "0xa79cc544021a721176cdc4497728ec35a5311b8ff0aa293a5d29c0d32cb56056", + "digest": "CPk79675WPpuPNTuKjLmg62h5VPHjPJEaMZTFEnSTGM4", "owner": { "__typename": "AddressOwner" } @@ -291,8 +287,8 @@ Response: { }, { "node": { - "address": "0xc06489dc5e2381a39a428d386129f672f4b02e61114dd5549be7ac7a739dfb55", - "digest": "DqdbLWKk5JTcmGGDDD21sJ2cu7jD7312BeNPipx4tReq", + "address": "0xac9c2e11aebecd35b4cb15802ca6ad5e64d320204149187ba646a16d07a4934d", + "digest": "HjR87s7ZD3KuyzYXVLzbTfiyH36d2k6u42Eqo11EpDVj", "owner": { "__typename": "AddressOwner" } @@ -300,8 +296,8 @@ Response: { }, { "node": { - "address": "0xf09c93336049b67160b0db30508bc1294d990b9f322387595c82ffee2108532c", - "digest": "EfGNzYUAooTTimKkTiQ8vQbkvzczQWtfXBHFFnCkhwtp", + "address": "0xb21c0b03871456040643740e238d03bde38de240d7b17055f4670777a19f07b8", + "digest": "CdvJ2E7KGkhKpx5XHQ38GGJCb2sRdXVeA4uX6djrgRNs", "owner": { "__typename": "AddressOwner" } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/balances.exp b/crates/iota-graphql-e2e-tests/tests/consistency/balances.exp index c9bc932542f..7eebb1d0669 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/balances.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/balances.exp @@ -80,7 +80,7 @@ Response: { }, { "coinType": { - "repr": "0x2faff717edb9e7b77d77e57e250c119631bb98126becf9755fa4776cd0640874::fake::FAKE" + "repr": "0x3f54284798cf5d3ab1b9870653fa2e3d472375de6f47c9c35f2f2fb94b07898d::fake::FAKE" }, "coinObjectCount": 3, "totalBalance": "700" @@ -103,7 +103,7 @@ Response: { { "sender": { "fakeCoinBalance": { - "totalBalance": "500" + "totalBalance": "600" }, "allBalances": { "nodes": [ @@ -116,10 +116,10 @@ Response: { }, { "coinType": { - "repr": "0x2faff717edb9e7b77d77e57e250c119631bb98126becf9755fa4776cd0640874::fake::FAKE" + "repr": "0x3f54284798cf5d3ab1b9870653fa2e3d472375de6f47c9c35f2f2fb94b07898d::fake::FAKE" }, "coinObjectCount": 2, - "totalBalance": "500" + "totalBalance": "600" } ] } @@ -152,7 +152,7 @@ Response: { }, { "coinType": { - "repr": "0x2faff717edb9e7b77d77e57e250c119631bb98126becf9755fa4776cd0640874::fake::FAKE" + "repr": "0x3f54284798cf5d3ab1b9870653fa2e3d472375de6f47c9c35f2f2fb94b07898d::fake::FAKE" }, "coinObjectCount": 1, "totalBalance": "400" @@ -196,7 +196,7 @@ Response: { }, { "coinType": { - "repr": "0x2faff717edb9e7b77d77e57e250c119631bb98126becf9755fa4776cd0640874::fake::FAKE" + "repr": "0x3f54284798cf5d3ab1b9870653fa2e3d472375de6f47c9c35f2f2fb94b07898d::fake::FAKE" }, "coinObjectCount": 3, "totalBalance": "700" @@ -219,7 +219,7 @@ Response: { { "sender": { "fakeCoinBalance": { - "totalBalance": "500" + "totalBalance": "600" }, "allBalances": { "nodes": [ @@ -232,10 +232,10 @@ Response: { }, { "coinType": { - "repr": "0x2faff717edb9e7b77d77e57e250c119631bb98126becf9755fa4776cd0640874::fake::FAKE" + "repr": "0x3f54284798cf5d3ab1b9870653fa2e3d472375de6f47c9c35f2f2fb94b07898d::fake::FAKE" }, "coinObjectCount": 2, - "totalBalance": "500" + "totalBalance": "600" } ] } @@ -268,7 +268,7 @@ Response: { }, { "coinType": { - "repr": "0x2faff717edb9e7b77d77e57e250c119631bb98126becf9755fa4776cd0640874::fake::FAKE" + "repr": "0x3f54284798cf5d3ab1b9870653fa2e3d472375de6f47c9c35f2f2fb94b07898d::fake::FAKE" }, "coinObjectCount": 1, "totalBalance": "400" @@ -334,7 +334,7 @@ Response: { { "sender": { "fakeCoinBalance": { - "totalBalance": "500" + "totalBalance": "600" }, "allBalances": { "nodes": [ @@ -347,10 +347,10 @@ Response: { }, { "coinType": { - "repr": "0x2faff717edb9e7b77d77e57e250c119631bb98126becf9755fa4776cd0640874::fake::FAKE" + "repr": "0x3f54284798cf5d3ab1b9870653fa2e3d472375de6f47c9c35f2f2fb94b07898d::fake::FAKE" }, "coinObjectCount": 2, - "totalBalance": "500" + "totalBalance": "600" } ] } @@ -383,7 +383,7 @@ Response: { }, { "coinType": { - "repr": "0x2faff717edb9e7b77d77e57e250c119631bb98126becf9755fa4776cd0640874::fake::FAKE" + "repr": "0x3f54284798cf5d3ab1b9870653fa2e3d472375de6f47c9c35f2f2fb94b07898d::fake::FAKE" }, "coinObjectCount": 1, "totalBalance": "400" diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/checkpoints/transaction_blocks.exp b/crates/iota-graphql-e2e-tests/tests/consistency/checkpoints/transaction_blocks.exp index 88a01ee9564..ba7203c80a7 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/checkpoints/transaction_blocks.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/checkpoints/transaction_blocks.exp @@ -94,12 +94,12 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "B5mycAo9Qjma8GXaB33VmBmY5aMphpvUaUGa31dBctQa", + "digest": "wxTLj3hMZRjEpPVKZJ5zoM7Jjgnw3J9cCe4nHcG2WLh", "sender": { "objects": { "edges": [ { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0AwAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECAwAAAAAAAAA=" } ] } @@ -109,12 +109,12 @@ Response: { { "cursor": "eyJjIjozLCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "ESxws3HtgcjvKRyefUr7JAxsFLZWWUfDDAnroqeny4G5", + "digest": "7e8AfYuDazeU11FQ6JDkKrKCLh1UVYHcwt2ni9Ed4z4", "sender": { "objects": { "edges": [ { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0AwAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECAwAAAAAAAAA=" } ] } @@ -124,12 +124,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "AM5g6ZK4RPF6JcCr2Y8pe1SGQrJozxmJ6ZE2dmzZHfnz", + "digest": "3C8ABfrDA3LAzA4ad1upVTmBXctUdUhhzYK4aiUYTDV5", "sender": { "objects": { "edges": [ { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0AwAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECAwAAAAAAAAA=" } ] } @@ -139,12 +139,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "cZvk4twvcLg8KqTa6Dx7ktHjtsW4T97rSGqRTDFB9i9", + "digest": "BuMGVrSu5PN4SXXhHEQrxo2aappDJ4xBdUbYfu9oNn4v", "sender": { "objects": { "edges": [ { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0AwAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECAwAAAAAAAAA=" } ] } @@ -161,12 +161,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "4dqvaY8wktxVDv685kMHE2tYzD3eA2d8CgcL1cnd5GEp", + "digest": "2dAUefr4VxY7187brTUcmS9xikyznS8QeEUHLqT4DVMX", "sender": { "objects": { "edges": [ { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0AwAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECAwAAAAAAAAA=" } ] } @@ -176,12 +176,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "A8y4xLrF2oDM2rmozRsScWd4AmTzkKetdqVgEWsY7ykF", + "digest": "EL7ZyLYMiCub9vgKhfkRNZwJg3hyZNKuV96n6CgWrBhC", "sender": { "objects": { "edges": [ { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0AwAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECAwAAAAAAAAA=" } ] } @@ -191,12 +191,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "2ugu2t43xP3yRHTS2c2uwciMHWhnUXD3MEFeL6ULGe4P", + "digest": "X1CR6JjkMWjrK69CPe1jpctSLLvYGj2MieSEBDc4E7T", "sender": { "objects": { "edges": [ { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0AwAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECAwAAAAAAAAA=" } ] } @@ -213,12 +213,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "5JeY5Q4Cj4teQ9SiuZUNvaMs1KNHhZ5z67n8skbH9gN2", + "digest": "ApZjBd234dQswhyN2c87hLx2cJEuJwUkpUTQ9PVQBARH", "sender": { "objects": { "edges": [ { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0AwAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECAwAAAAAAAAA=" } ] } @@ -228,12 +228,12 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "FSAPnPoBSZi2zRXBYAnHGn2hp5q1mJdSbXwscYTH4xuD", + "digest": "6shJHDNJez4jxm7E9wiaY8cyvrmfAkqg8A8ncg1uoLSt", "sender": { "objects": { "edges": [ { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0AwAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECAwAAAAAAAAA=" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/coins.exp b/crates/iota-graphql-e2e-tests/tests/consistency/coins.exp index f7400762b98..b7769824aae 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/coins.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/coins.exp @@ -33,7 +33,7 @@ Response: { "queryCoinsAtLatest": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAgAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAgAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -41,11 +41,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAgAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "100300" } @@ -54,26 +54,26 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAgAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAgAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -85,7 +85,7 @@ Response: { }, "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "100300" } @@ -94,7 +94,7 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAgAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAgAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -102,11 +102,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAgAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "100300" } @@ -115,26 +115,26 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAgAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAgAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -146,16 +146,16 @@ Response: { }, "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAgAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AgAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -163,11 +163,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAgAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "100300" } @@ -176,26 +176,26 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAgAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAgAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -207,9 +207,9 @@ Response: { }, "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -221,11 +221,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAgAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "100300" } @@ -234,26 +234,26 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAgAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAgAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -272,7 +272,7 @@ Response: { "queryCoinsAtChkpt1": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAQAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAQAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -280,11 +280,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAQAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "300" } @@ -293,26 +293,26 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAQAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAQAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -324,7 +324,7 @@ Response: { }, "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "300" } @@ -333,7 +333,7 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAQAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAQAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -341,11 +341,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAQAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "300" } @@ -354,26 +354,26 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAQAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAQAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -385,9 +385,9 @@ Response: { }, "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } @@ -399,11 +399,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAQAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "300" } @@ -412,13 +412,13 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAQAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } @@ -453,7 +453,7 @@ Response: { "queryCoins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAwAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAwAAAAAAAAA=", "node": { "owner": { "owner": { @@ -461,11 +461,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAwAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "100300" } @@ -479,7 +479,7 @@ Response: { }, "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "100300" } @@ -488,7 +488,7 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAwAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAwAAAAAAAAA=", "node": { "owner": { "owner": { @@ -496,26 +496,26 @@ Response: { "coins": { "edges": [ { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAwAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAwAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -527,16 +527,16 @@ Response: { }, "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAwAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AwAAAAAAAAA=", "node": { "owner": { "owner": { @@ -544,26 +544,26 @@ Response: { "coins": { "edges": [ { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAwAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAwAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -575,9 +575,9 @@ Response: { }, "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -589,11 +589,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAwAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "100300" } @@ -608,26 +608,26 @@ Response: { "coins": { "edges": [ { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAwAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAwAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -658,7 +658,7 @@ Response: { "queryCoinsAtChkpt1BeforeSnapshotCatchup": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAQAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAQAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -666,11 +666,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAQAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "300" } @@ -679,26 +679,26 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAQAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAQAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -710,7 +710,7 @@ Response: { }, "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "300" } @@ -719,7 +719,7 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAQAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAQAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -727,11 +727,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAQAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "300" } @@ -740,26 +740,26 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAQAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } } }, { - "cursor": "IOBi2idPgbJb9O0FKCkiP0mcuuEWJYclwTQVRTFYAoMfAQAAAAAAAAA=", + "cursor": "IPMA39gqFqTL+UJ31xLzg/Kdfb0q7TwZXnGKtNmtGgm5AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0xe062da274f81b25bf4ed052829223f499cbae116258725c1341545315802831f", + "id": "0xf300dfd82a16a4cbf94277d712f383f29d7dbd2aed3c195e718ab4d9ad1a09b9", "balance": { - "value": "100" + "value": "200" } } } @@ -771,9 +771,9 @@ Response: { }, "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } @@ -785,11 +785,11 @@ Response: { "coins": { "edges": [ { - "cursor": "IB6OG7YeYciwhPMnMO5OpEN/rSM7UXvPjLncOdRsBRbvAQAAAAAAAAA=", + "cursor": "IDjQ36C6puZ1B4SHUJUrWY7yWkidwIcWyFbP8sHzQlTNAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x1e8e1bb61e61c8b084f32730ee4ea4437fad233b517bcf8cb9dc39d46c0516ef", + "id": "0x38d0dfa0baa6e67507848750952b598ef25a489dc08716c856cff2c1f34254cd", "balance": { "value": "300" } @@ -798,13 +798,13 @@ Response: { } }, { - "cursor": "ICto0KUswCdXVt9gvx1b9+kexoR/QnF7k2Amb7OShbyYAQAAAAAAAAA=", + "cursor": "IJEQ573lUbdmn1lKjpymVr60ljpjbr9kntd1sQFaTfWCAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x2b68d0a52cc0275756df60bf1d5bf7e91ec6847f42717b9360266fb39285bc98", + "id": "0x9110e7bde551b7669f594a8e9ca656beb4963a636ebf649ed775b1015a4df582", "balance": { - "value": "200" + "value": "100" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_df.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_df.exp index 46eff675eb9..a116a38da5f 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_df.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_df.exp @@ -90,35 +90,35 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IFGC5RPg5c2yKNvnR+V3w/pRTs9aSHxm/Pkth4bjkOjdAQAAAAAAAAA=", + "cursor": "IFXp0toJPQnGGaLNJw8q9AOzrfMA5uj74CFO+/wJTpu3AQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==" + "bcs": "A2RmNg==" }, "value": { - "json": "df4" + "json": "df6" } } }, { - "cursor": "IL3qZMAyj4gZlGxCci5mYU3JwlVbQSTzBzvDZWRnNdD2AQAAAAAAAAA=", + "cursor": "IKBYUnW+4SX9mmDsJQRWPNTXcQ4kdSHybiAlFZfwL8TnAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==" + "bcs": "A2RmNA==" }, "value": { - "json": "df5" + "json": "df4" } } }, { - "cursor": "INbM45XnJF+9iPgLV+WNfTBMo8O50O9mYJ5fZfNQvEwbAQAAAAAAAAA=", + "cursor": "IOqUkACX2xgr+MMQlj38s9DkThuNt5E/+sDxB8sMR3/GAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNg==" + "bcs": "A2RmNQ==" }, "value": { - "json": "df6" + "json": "df5" } } } @@ -139,35 +139,35 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IFGC5RPg5c2yKNvnR+V3w/pRTs9aSHxm/Pkth4bjkOjdAQAAAAAAAAA=", + "cursor": "IFXp0toJPQnGGaLNJw8q9AOzrfMA5uj74CFO+/wJTpu3AQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==" + "bcs": "A2RmNg==" }, "value": { - "json": "df4" + "json": "df6" } } }, { - "cursor": "IL3qZMAyj4gZlGxCci5mYU3JwlVbQSTzBzvDZWRnNdD2AQAAAAAAAAA=", + "cursor": "IKBYUnW+4SX9mmDsJQRWPNTXcQ4kdSHybiAlFZfwL8TnAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==" + "bcs": "A2RmNA==" }, "value": { - "json": "df5" + "json": "df4" } } }, { - "cursor": "INbM45XnJF+9iPgLV+WNfTBMo8O50O9mYJ5fZfNQvEwbAQAAAAAAAAA=", + "cursor": "IOqUkACX2xgr+MMQlj38s9DkThuNt5E/+sDxB8sMR3/GAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNg==" + "bcs": "A2RmNQ==" }, "value": { - "json": "df6" + "json": "df5" } } } @@ -188,68 +188,68 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IFGC5RPg5c2yKNvnR+V3w/pRTs9aSHxm/Pkth4bjkOjdAQAAAAAAAAA=", + "cursor": "IDGmVJDizvjXRhC95XulcNJW5YoeG8E1ztMXSz7IOQppAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==" + "bcs": "A2RmMQ==" }, "value": { - "json": "df4" + "json": "df1" } } }, { - "cursor": "IIAc8vGlX6biZCSiyKNKtdnCMWpxjKIUchoNo8hgEnNdAQAAAAAAAAA=", + "cursor": "IFXp0toJPQnGGaLNJw8q9AOzrfMA5uj74CFO+/wJTpu3AQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==" + "bcs": "A2RmNg==" }, "value": { - "json": "df3" + "json": "df6" } } }, { - "cursor": "IISa0drNQFm7LiFwSeIurkUaKhl9+yeKTZrpiwCPntP+AQAAAAAAAAA=", + "cursor": "IF5cUmfqQBRDIr1G/6EhgrzF+2DvHKsiwngVG5+UDsvqAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==" + "bcs": "A2RmMw==" }, "value": { - "json": "df2" + "json": "df3" } } }, { - "cursor": "IKRThQx9CFKXHVIRmYqY080n+S4nlILwGyJg6x6kMF4qAQAAAAAAAAA=", + "cursor": "IIj0VwR2uHpoaelmO7X1LPSWECPV/MTw9+CPiI7wmwcCAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==" + "bcs": "A2RmMg==" }, "value": { - "json": "df1" + "json": "df2" } } }, { - "cursor": "IL3qZMAyj4gZlGxCci5mYU3JwlVbQSTzBzvDZWRnNdD2AQAAAAAAAAA=", + "cursor": "IKBYUnW+4SX9mmDsJQRWPNTXcQ4kdSHybiAlFZfwL8TnAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==" + "bcs": "A2RmNA==" }, "value": { - "json": "df5" + "json": "df4" } } }, { - "cursor": "INbM45XnJF+9iPgLV+WNfTBMo8O50O9mYJ5fZfNQvEwbAQAAAAAAAAA=", + "cursor": "IOqUkACX2xgr+MMQlj38s9DkThuNt5E/+sDxB8sMR3/GAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNg==" + "bcs": "A2RmNQ==" }, "value": { - "json": "df6" + "json": "df5" } } } @@ -283,35 +283,35 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IFGC5RPg5c2yKNvnR+V3w/pRTs9aSHxm/Pkth4bjkOjdAQAAAAAAAAA=", + "cursor": "IFXp0toJPQnGGaLNJw8q9AOzrfMA5uj74CFO+/wJTpu3AQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==" + "bcs": "A2RmNg==" }, "value": { - "json": "df4" + "json": "df6" } } }, { - "cursor": "IL3qZMAyj4gZlGxCci5mYU3JwlVbQSTzBzvDZWRnNdD2AQAAAAAAAAA=", + "cursor": "IKBYUnW+4SX9mmDsJQRWPNTXcQ4kdSHybiAlFZfwL8TnAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==" + "bcs": "A2RmNA==" }, "value": { - "json": "df5" + "json": "df4" } } }, { - "cursor": "INbM45XnJF+9iPgLV+WNfTBMo8O50O9mYJ5fZfNQvEwbAQAAAAAAAAA=", + "cursor": "IOqUkACX2xgr+MMQlj38s9DkThuNt5E/+sDxB8sMR3/GAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNg==" + "bcs": "A2RmNQ==" }, "value": { - "json": "df6" + "json": "df5" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_dof.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_dof.exp index fbb25f800e5..b5a2dab3ed0 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_dof.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_dof.exp @@ -41,7 +41,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IOQTp8RcctWxcPZKiprcDWwZ6pAuLErCiYyWqumvA0o3AQAAAAAAAAA=", + "cursor": "IOERhra2/zXIe5A/6khWFsqqPFNBObUR+BisJ98CR/x8AQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -49,7 +49,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab08db34779d7b1d908ed61c2dc0bb7add2dcd3962ab857b523cb086f879c004", + "id": "0xfcfcd9e754874b4a13160f9212003ef6cdb129240cb3c9caab88cb0b451a8365", "count": "0" } } @@ -65,7 +65,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab08db34779d7b1d908ed61c2dc0bb7add2dcd3962ab857b523cb086f879c004", + "id": "0xfcfcd9e754874b4a13160f9212003ef6cdb129240cb3c9caab88cb0b451a8365", "count": "0" } } @@ -77,7 +77,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IOQTp8RcctWxcPZKiprcDWwZ6pAuLErCiYyWqumvA0o3AQAAAAAAAAA=", + "cursor": "IOERhra2/zXIe5A/6khWFsqqPFNBObUR+BisJ98CR/x8AQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -85,7 +85,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab08db34779d7b1d908ed61c2dc0bb7add2dcd3962ab857b523cb086f879c004", + "id": "0xfcfcd9e754874b4a13160f9212003ef6cdb129240cb3c9caab88cb0b451a8365", "count": "0" } } @@ -101,7 +101,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab08db34779d7b1d908ed61c2dc0bb7add2dcd3962ab857b523cb086f879c004", + "id": "0xfcfcd9e754874b4a13160f9212003ef6cdb129240cb3c9caab88cb0b451a8365", "count": "0" } } @@ -117,7 +117,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab08db34779d7b1d908ed61c2dc0bb7add2dcd3962ab857b523cb086f879c004", + "id": "0xfcfcd9e754874b4a13160f9212003ef6cdb129240cb3c9caab88cb0b451a8365", "count": "0" } } @@ -168,7 +168,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab08db34779d7b1d908ed61c2dc0bb7add2dcd3962ab857b523cb086f879c004", + "id": "0xfcfcd9e754874b4a13160f9212003ef6cdb129240cb3c9caab88cb0b451a8365", "count": "0" } } @@ -222,7 +222,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab08db34779d7b1d908ed61c2dc0bb7add2dcd3962ab857b523cb086f879c004", + "id": "0xfcfcd9e754874b4a13160f9212003ef6cdb129240cb3c9caab88cb0b451a8365", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer.exp index bc2d879ab0c..0057d75c528 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer.exp @@ -36,7 +36,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "INIc2wS/CJpSjqoE3DksNnLveqfOxRdyaovKt5t/32O/AQAAAAAAAAA=", + "cursor": "IDHJ2XJEaoo1eOHTEGzA8q8bVNbAgQEtZ+lYBFpSlyy9AQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -44,7 +44,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xc4a7a073d88452f0e18c11fd40a44f8ad73a68fe00106fe064d92276d20debe6", + "id": "0xfc2487387a017581549657695ae91d736bd9edee829449a5abb4682e38fd9c27", "count": "0" } } @@ -60,7 +60,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xc4a7a073d88452f0e18c11fd40a44f8ad73a68fe00106fe064d92276d20debe6", + "id": "0xfc2487387a017581549657695ae91d736bd9edee829449a5abb4682e38fd9c27", "count": "0" } } @@ -71,7 +71,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "INIc2wS/CJpSjqoE3DksNnLveqfOxRdyaovKt5t/32O/AQAAAAAAAAA=", + "cursor": "IDHJ2XJEaoo1eOHTEGzA8q8bVNbAgQEtZ+lYBFpSlyy9AQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -79,7 +79,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xc4a7a073d88452f0e18c11fd40a44f8ad73a68fe00106fe064d92276d20debe6", + "id": "0xfc2487387a017581549657695ae91d736bd9edee829449a5abb4682e38fd9c27", "count": "0" } } @@ -95,7 +95,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xc4a7a073d88452f0e18c11fd40a44f8ad73a68fe00106fe064d92276d20debe6", + "id": "0xfc2487387a017581549657695ae91d736bd9edee829449a5abb4682e38fd9c27", "count": "0" } } @@ -107,7 +107,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "INIc2wS/CJpSjqoE3DksNnLveqfOxRdyaovKt5t/32O/AQAAAAAAAAA=", + "cursor": "IDHJ2XJEaoo1eOHTEGzA8q8bVNbAgQEtZ+lYBFpSlyy9AQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -115,7 +115,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xc4a7a073d88452f0e18c11fd40a44f8ad73a68fe00106fe064d92276d20debe6", + "id": "0xfc2487387a017581549657695ae91d736bd9edee829449a5abb4682e38fd9c27", "count": "0" } } @@ -131,7 +131,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xc4a7a073d88452f0e18c11fd40a44f8ad73a68fe00106fe064d92276d20debe6", + "id": "0xfc2487387a017581549657695ae91d736bd9edee829449a5abb4682e38fd9c27", "count": "0" } } @@ -184,7 +184,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xc4a7a073d88452f0e18c11fd40a44f8ad73a68fe00106fe064d92276d20debe6", + "id": "0xfc2487387a017581549657695ae91d736bd9edee829449a5abb4682e38fd9c27", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer_reclaim_add.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer_reclaim_add.exp index 2a29f107466..5da22330b2d 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer_reclaim_add.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer_reclaim_add.exp @@ -61,7 +61,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDuDCtiHG/c2lwmHWJIPYH2GnOtrc0hsSKL73aavvcXMAQAAAAAAAAA=", + "cursor": "ILBIga0IpmiDvcWkhxv5ZB2gmRBuKZxYlvu2jFz2I0azAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -69,7 +69,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x69399ffd24228a843a2e940db109d36958fe7e64ed84209fe19726caa2d087a0", + "id": "0xbdd9664d849bba78c8ba1525d1b88293eb53935df49876c07d6a85f4f64d2973", "count": "0" } } @@ -85,7 +85,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x69399ffd24228a843a2e940db109d36958fe7e64ed84209fe19726caa2d087a0", + "id": "0xbdd9664d849bba78c8ba1525d1b88293eb53935df49876c07d6a85f4f64d2973", "count": "0" } } @@ -96,7 +96,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDuDCtiHG/c2lwmHWJIPYH2GnOtrc0hsSKL73aavvcXMAQAAAAAAAAA=", + "cursor": "ILBIga0IpmiDvcWkhxv5ZB2gmRBuKZxYlvu2jFz2I0azAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -104,7 +104,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x69399ffd24228a843a2e940db109d36958fe7e64ed84209fe19726caa2d087a0", + "id": "0xbdd9664d849bba78c8ba1525d1b88293eb53935df49876c07d6a85f4f64d2973", "count": "0" } } @@ -120,7 +120,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x69399ffd24228a843a2e940db109d36958fe7e64ed84209fe19726caa2d087a0", + "id": "0xbdd9664d849bba78c8ba1525d1b88293eb53935df49876c07d6a85f4f64d2973", "count": "0" } } @@ -139,7 +139,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDuDCtiHG/c2lwmHWJIPYH2GnOtrc0hsSKL73aavvcXMAQAAAAAAAAA=", + "cursor": "ILBIga0IpmiDvcWkhxv5ZB2gmRBuKZxYlvu2jFz2I0azAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -147,7 +147,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x69399ffd24228a843a2e940db109d36958fe7e64ed84209fe19726caa2d087a0", + "id": "0xbdd9664d849bba78c8ba1525d1b88293eb53935df49876c07d6a85f4f64d2973", "count": "0" } } @@ -163,7 +163,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x69399ffd24228a843a2e940db109d36958fe7e64ed84209fe19726caa2d087a0", + "id": "0xbdd9664d849bba78c8ba1525d1b88293eb53935df49876c07d6a85f4f64d2973", "count": "0" } } @@ -182,7 +182,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDuDCtiHG/c2lwmHWJIPYH2GnOtrc0hsSKL73aavvcXMAQAAAAAAAAA=", + "cursor": "ILBIga0IpmiDvcWkhxv5ZB2gmRBuKZxYlvu2jFz2I0azAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -190,7 +190,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x69399ffd24228a843a2e940db109d36958fe7e64ed84209fe19726caa2d087a0", + "id": "0xbdd9664d849bba78c8ba1525d1b88293eb53935df49876c07d6a85f4f64d2973", "count": "0" } } @@ -206,7 +206,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x69399ffd24228a843a2e940db109d36958fe7e64ed84209fe19726caa2d087a0", + "id": "0xbdd9664d849bba78c8ba1525d1b88293eb53935df49876c07d6a85f4f64d2973", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dynamic_fields.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dynamic_fields.exp index ae07862cdf7..9cada526cd8 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dynamic_fields.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dynamic_fields.exp @@ -84,7 +84,7 @@ task 9, lines 103-165: Response: { "data": { "parent_version_2_no_dof": { - "address": "0x4a0096e938853ba9475835998e27b4094818ac082bce70833bf1ba0d8903c3ba", + "address": "0xbb1b0042886b909f32918bcf3c5808c52ad12a1f6366811351a608cc9e19117a", "dynamicFields": { "edges": [] } @@ -93,7 +93,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IBfdr7PxlVFdZr1ButrK3mTO57EUW7dZid9tCPqSZm7OAQAAAAAAAAA=", + "cursor": "IGSmPF9YquQ5+ERmpbG5I9pdmQ6uh8GTTBq7NnrzeKeKAQAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -104,7 +104,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", "count": "1" } } @@ -115,13 +115,13 @@ Response: { } }, "child_version_2_no_parent": { - "address": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", + "address": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", "owner": {} }, "child_version_3_has_parent": { "owner": { "parent": { - "address": "0x17ddafb3f195515d66bd41badacade64cee7b1145bb75989df6d08fa92666ece" + "address": "0x64a63c5f58aae439f84466a5b1b923da5d990eae87c1934c1abb367af378a78a" } } } @@ -173,54 +173,54 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IBfdr7PxlVFdZr1ButrK3mTO57EUW7dZid9tCPqSZm7OAgAAAAAAAAA=", + "cursor": "ICDA1Fmbie2DfuNwxZhhIpAHJWRNYLZK0UM0Bj8jbFTQAgAAAAAAAAA=", "node": { "name": { - "bcs": "pAEAAAAAAAA=", + "bcs": "A2RmMg==", "type": { - "repr": "u64" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "contents": { - "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", - "count": "2" - } - } + "json": "df2" } } }, { - "cursor": "IDZ28j+sQwZhzV/cSrPriBlxAkh5wl76TQMOUNUqrZCaAgAAAAAAAAA=", + "cursor": "IEHkQrbw02WrVj10wpfWCfYIYW9qdVkPdz/4bKbdrsurAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMw==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df3" } } }, { - "cursor": "IFkuqsO1JqKH44TixH784NmNrfnTu1DYSxyRTgrYK+BJAgAAAAAAAAA=", + "cursor": "IGSmPF9YquQ5+ERmpbG5I9pdmQ6uh8GTTBq7NnrzeKeKAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==", + "bcs": "pAEAAAAAAAA=", "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + "repr": "u64" } }, "value": { - "json": "df3" + "contents": { + "json": { + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", + "count": "2" + } + } } } }, { - "cursor": "IM6FMHtGVR1W/xfF8BprSOHr8gNskXvbh7d4g4ZZsYfcAgAAAAAAAAA=", + "cursor": "IGVjKMErtbW4KB6/b/s/qbAgtGu6fHOQXO7ujUxoq7RXAgAAAAAAAAA=", "node": { "name": { "bcs": "A2RmMQ==", @@ -240,7 +240,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IBfdr7PxlVFdZr1ButrK3mTO57EUW7dZid9tCPqSZm7OAgAAAAAAAAA=", + "cursor": "IGSmPF9YquQ5+ERmpbG5I9pdmQ6uh8GTTBq7NnrzeKeKAgAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -251,7 +251,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", "count": "1" } } @@ -270,35 +270,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDZ28j+sQwZhzV/cSrPriBlxAkh5wl76TQMOUNUqrZCaAgAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmMg==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df2" - } - } - }, - { - "cursor": "IFkuqsO1JqKH44TixH784NmNrfnTu1DYSxyRTgrYK+BJAgAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmMw==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df3" - } - } - }, - { - "cursor": "IM6FMHtGVR1W/xfF8BprSOHr8gNskXvbh7d4g4ZZsYfcAgAAAAAAAAA=", + "cursor": "IGVjKMErtbW4KB6/b/s/qbAgtGu6fHOQXO7ujUxoq7RXAgAAAAAAAAA=", "node": { "name": { "bcs": "A2RmMQ==", @@ -342,7 +314,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", "count": "1" } } @@ -361,7 +333,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", "count": "2" } } @@ -426,54 +398,54 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IBfdr7PxlVFdZr1ButrK3mTO57EUW7dZid9tCPqSZm7OAwAAAAAAAAA=", + "cursor": "ICDA1Fmbie2DfuNwxZhhIpAHJWRNYLZK0UM0Bj8jbFTQAwAAAAAAAAA=", "node": { "name": { - "bcs": "pAEAAAAAAAA=", + "bcs": "A2RmMg==", "type": { - "repr": "u64" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "contents": { - "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", - "count": "2" - } - } + "json": "df2" } } }, { - "cursor": "IDZ28j+sQwZhzV/cSrPriBlxAkh5wl76TQMOUNUqrZCaAwAAAAAAAAA=", + "cursor": "IEHkQrbw02WrVj10wpfWCfYIYW9qdVkPdz/4bKbdrsurAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMw==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df3" } } }, { - "cursor": "IFkuqsO1JqKH44TixH784NmNrfnTu1DYSxyRTgrYK+BJAwAAAAAAAAA=", + "cursor": "IGSmPF9YquQ5+ERmpbG5I9pdmQ6uh8GTTBq7NnrzeKeKAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==", + "bcs": "pAEAAAAAAAA=", "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + "repr": "u64" } }, "value": { - "json": "df3" + "contents": { + "json": { + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", + "count": "2" + } + } } } }, { - "cursor": "IM6FMHtGVR1W/xfF8BprSOHr8gNskXvbh7d4g4ZZsYfcAwAAAAAAAAA=", + "cursor": "IGVjKMErtbW4KB6/b/s/qbAgtGu6fHOQXO7ujUxoq7RXAwAAAAAAAAA=", "node": { "name": { "bcs": "A2RmMQ==", @@ -493,35 +465,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDZ28j+sQwZhzV/cSrPriBlxAkh5wl76TQMOUNUqrZCaAgAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmMg==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df2" - } - } - }, - { - "cursor": "IFkuqsO1JqKH44TixH784NmNrfnTu1DYSxyRTgrYK+BJAgAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmMw==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df3" - } - } - }, - { - "cursor": "IM6FMHtGVR1W/xfF8BprSOHr8gNskXvbh7d4g4ZZsYfcAgAAAAAAAAA=", + "cursor": "IGVjKMErtbW4KB6/b/s/qbAgtGu6fHOQXO7ujUxoq7RXAgAAAAAAAAA=", "node": { "name": { "bcs": "A2RmMQ==", @@ -541,26 +485,21 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IBfdr7PxlVFdZr1ButrK3mTO57EUW7dZid9tCPqSZm7OAwAAAAAAAAA=", + "cursor": "ICDA1Fmbie2DfuNwxZhhIpAHJWRNYLZK0UM0Bj8jbFTQAwAAAAAAAAA=", "node": { "name": { - "bcs": "pAEAAAAAAAA=", + "bcs": "A2RmMg==", "type": { - "repr": "u64" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "contents": { - "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", - "count": "2" - } - } + "json": "df2" } } }, { - "cursor": "IDBfa5AI3U9gHrfe8/E6zTSGRDjoMaqeIE1qRKiKxgTgAwAAAAAAAAA=", + "cursor": "ID49jorfR8MvOfB4vjP+b/u/TuyAifufWgyqincFH/1iAwAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNA==", @@ -574,49 +513,54 @@ Response: { } }, { - "cursor": "IDZ28j+sQwZhzV/cSrPriBlxAkh5wl76TQMOUNUqrZCaAwAAAAAAAAA=", + "cursor": "IEHkQrbw02WrVj10wpfWCfYIYW9qdVkPdz/4bKbdrsurAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMw==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df3" } } }, { - "cursor": "IFkuqsO1JqKH44TixH784NmNrfnTu1DYSxyRTgrYK+BJAwAAAAAAAAA=", + "cursor": "IGSmPF9YquQ5+ERmpbG5I9pdmQ6uh8GTTBq7NnrzeKeKAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==", + "bcs": "pAEAAAAAAAA=", "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + "repr": "u64" } }, "value": { - "json": "df3" + "contents": { + "json": { + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", + "count": "2" + } + } } } }, { - "cursor": "IHv4iWA3eeExUHg64tfuK+wSOxrmeEOkZqKqT+6smbvMAwAAAAAAAAA=", + "cursor": "IGVjKMErtbW4KB6/b/s/qbAgtGu6fHOQXO7ujUxoq7RXAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNg==", + "bcs": "A2RmMQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df6" + "json": "df1" } } }, { - "cursor": "IMl+yEpCbagWXQf06sXE5eEXuZkHAy1mHBs+qBG2BCrVAwAAAAAAAAA=", + "cursor": "IG0bat303iRg5RFov83HFmsTnKXFePTtc2ZJ/XHPPDaRAwAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNQ==", @@ -630,16 +574,16 @@ Response: { } }, { - "cursor": "IM6FMHtGVR1W/xfF8BprSOHr8gNskXvbh7d4g4ZZsYfcAwAAAAAAAAA=", + "cursor": "IPVw7dlIopC9wDfopKptMlcIEwEuKX0vCllb5Wq8z3wIAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==", + "bcs": "A2RmNg==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df1" + "json": "df6" } } } @@ -650,63 +594,21 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDBfa5AI3U9gHrfe8/E6zTSGRDjoMaqeIE1qRKiKxgTgAwAAAAAAAAA=", + "cursor": "IGVjKMErtbW4KB6/b/s/qbAgtGu6fHOQXO7ujUxoq7RXAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df4" - } - } - }, - { - "cursor": "IDZ28j+sQwZhzV/cSrPriBlxAkh5wl76TQMOUNUqrZCaAwAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmMg==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df2" - } - } - }, - { - "cursor": "IFkuqsO1JqKH44TixH784NmNrfnTu1DYSxyRTgrYK+BJAwAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmMw==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df3" - } - } - }, - { - "cursor": "IHv4iWA3eeExUHg64tfuK+wSOxrmeEOkZqKqT+6smbvMAwAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmNg==", + "bcs": "A2RmMQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df6" + "json": "df1" } } }, { - "cursor": "IMl+yEpCbagWXQf06sXE5eEXuZkHAy1mHBs+qBG2BCrVAwAAAAAAAAA=", + "cursor": "IG0bat303iRg5RFov83HFmsTnKXFePTtc2ZJ/XHPPDaRAwAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNQ==", @@ -720,16 +622,16 @@ Response: { } }, { - "cursor": "IM6FMHtGVR1W/xfF8BprSOHr8gNskXvbh7d4g4ZZsYfcAwAAAAAAAAA=", + "cursor": "IPVw7dlIopC9wDfopKptMlcIEwEuKX0vCllb5Wq8z3wIAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==", + "bcs": "A2RmNg==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df1" + "json": "df6" } } } @@ -783,54 +685,54 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IBfdr7PxlVFdZr1ButrK3mTO57EUW7dZid9tCPqSZm7OBAAAAAAAAAA=", + "cursor": "ICDA1Fmbie2DfuNwxZhhIpAHJWRNYLZK0UM0Bj8jbFTQBAAAAAAAAAA=", "node": { "name": { - "bcs": "pAEAAAAAAAA=", + "bcs": "A2RmMg==", "type": { - "repr": "u64" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "contents": { - "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", - "count": "2" - } - } + "json": "df2" } } }, { - "cursor": "IDZ28j+sQwZhzV/cSrPriBlxAkh5wl76TQMOUNUqrZCaBAAAAAAAAAA=", + "cursor": "IEHkQrbw02WrVj10wpfWCfYIYW9qdVkPdz/4bKbdrsurBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMw==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df3" } } }, { - "cursor": "IFkuqsO1JqKH44TixH784NmNrfnTu1DYSxyRTgrYK+BJBAAAAAAAAAA=", + "cursor": "IGSmPF9YquQ5+ERmpbG5I9pdmQ6uh8GTTBq7NnrzeKeKBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==", + "bcs": "pAEAAAAAAAA=", "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + "repr": "u64" } }, "value": { - "json": "df3" + "contents": { + "json": { + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", + "count": "2" + } + } } } }, { - "cursor": "IM6FMHtGVR1W/xfF8BprSOHr8gNskXvbh7d4g4ZZsYfcBAAAAAAAAAA=", + "cursor": "IGVjKMErtbW4KB6/b/s/qbAgtGu6fHOQXO7ujUxoq7RXBAAAAAAAAAA=", "node": { "name": { "bcs": "A2RmMQ==", @@ -850,55 +752,41 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDZ28j+sQwZhzV/cSrPriBlxAkh5wl76TQMOUNUqrZCaAgAAAAAAAAA=", + "cursor": "IGVjKMErtbW4KB6/b/s/qbAgtGu6fHOQXO7ujUxoq7RXAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df1" } } - }, + } + ] + } + }, + "parent_version_6_no_df_1_2_3": { + "dynamicFields": { + "edges": [ { - "cursor": "IFkuqsO1JqKH44TixH784NmNrfnTu1DYSxyRTgrYK+BJAgAAAAAAAAA=", + "cursor": "ID49jorfR8MvOfB4vjP+b/u/TuyAifufWgyqincFH/1iBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==", + "bcs": "A2RmNA==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df3" + "json": "df4" } } }, { - "cursor": "IM6FMHtGVR1W/xfF8BprSOHr8gNskXvbh7d4g4ZZsYfcAgAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmMQ==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df1" - } - } - } - ] - } - }, - "parent_version_6_no_df_1_2_3": { - "dynamicFields": { - "edges": [ - { - "cursor": "IBfdr7PxlVFdZr1ButrK3mTO57EUW7dZid9tCPqSZm7OBAAAAAAAAAA=", + "cursor": "IGSmPF9YquQ5+ERmpbG5I9pdmQ6uh8GTTBq7NnrzeKeKBAAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -909,7 +797,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", "count": "2" } } @@ -917,21 +805,21 @@ Response: { } }, { - "cursor": "IDBfa5AI3U9gHrfe8/E6zTSGRDjoMaqeIE1qRKiKxgTgBAAAAAAAAAA=", + "cursor": "IG0bat303iRg5RFov83HFmsTnKXFePTtc2ZJ/XHPPDaRBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==", + "bcs": "A2RmNQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df4" + "json": "df5" } } }, { - "cursor": "IHv4iWA3eeExUHg64tfuK+wSOxrmeEOkZqKqT+6smbvMBAAAAAAAAAA=", + "cursor": "IPVw7dlIopC9wDfopKptMlcIEwEuKX0vCllb5Wq8z3wIBAAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNg==", @@ -943,20 +831,6 @@ Response: { "json": "df6" } } - }, - { - "cursor": "IMl+yEpCbagWXQf06sXE5eEXuZkHAy1mHBs+qBG2BCrVBAAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmNQ==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df5" - } - } } ] } @@ -965,21 +839,21 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDBfa5AI3U9gHrfe8/E6zTSGRDjoMaqeIE1qRKiKxgTgBAAAAAAAAAA=", + "cursor": "IG0bat303iRg5RFov83HFmsTnKXFePTtc2ZJ/XHPPDaRBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==", + "bcs": "A2RmNQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df4" + "json": "df5" } } }, { - "cursor": "IHv4iWA3eeExUHg64tfuK+wSOxrmeEOkZqKqT+6smbvMBAAAAAAAAAA=", + "cursor": "IPVw7dlIopC9wDfopKptMlcIEwEuKX0vCllb5Wq8z3wIBAAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNg==", @@ -991,20 +865,6 @@ Response: { "json": "df6" } } - }, - { - "cursor": "IMl+yEpCbagWXQf06sXE5eEXuZkHAy1mHBs+qBG2BCrVBAAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmNQ==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df5" - } - } } ] } @@ -1059,7 +919,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IBfdr7PxlVFdZr1ButrK3mTO57EUW7dZid9tCPqSZm7OBwAAAAAAAAA=", + "cursor": "IGSmPF9YquQ5+ERmpbG5I9pdmQ6uh8GTTBq7NnrzeKeKBwAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -1070,7 +930,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", "count": "2" } } @@ -1085,63 +945,63 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IBfdr7PxlVFdZr1ButrK3mTO57EUW7dZid9tCPqSZm7OBwAAAAAAAAA=", + "cursor": "ID49jorfR8MvOfB4vjP+b/u/TuyAifufWgyqincFH/1iBwAAAAAAAAA=", "node": { "name": { - "bcs": "pAEAAAAAAAA=", + "bcs": "A2RmNA==", "type": { - "repr": "u64" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "contents": { - "json": { - "id": "0x1315d51750a777c447ae614ed7cdc081ce873fa6789fcd88eda8a6799349c650", - "count": "2" - } - } + "json": "df4" } } }, { - "cursor": "IDBfa5AI3U9gHrfe8/E6zTSGRDjoMaqeIE1qRKiKxgTgBwAAAAAAAAA=", + "cursor": "IGSmPF9YquQ5+ERmpbG5I9pdmQ6uh8GTTBq7NnrzeKeKBwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==", + "bcs": "pAEAAAAAAAA=", "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + "repr": "u64" } }, "value": { - "json": "df4" + "contents": { + "json": { + "id": "0xa5bbc9a923c6eb9e623d5704740e8230c7aca4840c451cfcb5ccc262ce3b9296", + "count": "2" + } + } } } }, { - "cursor": "IHv4iWA3eeExUHg64tfuK+wSOxrmeEOkZqKqT+6smbvMBwAAAAAAAAA=", + "cursor": "IG0bat303iRg5RFov83HFmsTnKXFePTtc2ZJ/XHPPDaRBwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNg==", + "bcs": "A2RmNQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df6" + "json": "df5" } } }, { - "cursor": "IMl+yEpCbagWXQf06sXE5eEXuZkHAy1mHBs+qBG2BCrVBwAAAAAAAAA=", + "cursor": "IPVw7dlIopC9wDfopKptMlcIEwEuKX0vCllb5Wq8z3wIBwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==", + "bcs": "A2RmNg==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df5" + "json": "df6" } } } @@ -1152,21 +1012,21 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDBfa5AI3U9gHrfe8/E6zTSGRDjoMaqeIE1qRKiKxgTgBAAAAAAAAAA=", + "cursor": "IG0bat303iRg5RFov83HFmsTnKXFePTtc2ZJ/XHPPDaRBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==", + "bcs": "A2RmNQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df4" + "json": "df5" } } }, { - "cursor": "IHv4iWA3eeExUHg64tfuK+wSOxrmeEOkZqKqT+6smbvMBAAAAAAAAAA=", + "cursor": "IPVw7dlIopC9wDfopKptMlcIEwEuKX0vCllb5Wq8z3wIBAAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNg==", @@ -1178,20 +1038,6 @@ Response: { "json": "df6" } } - }, - { - "cursor": "IMl+yEpCbagWXQf06sXE5eEXuZkHAy1mHBs+qBG2BCrVBAAAAAAAAAA=", - "node": { - "name": { - "bcs": "A2RmNQ==", - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" - } - }, - "value": { - "json": "df5" - } - } } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/immutable_dof.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/immutable_dof.exp index 98b3cef7ed7..e5bc044edcd 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/immutable_dof.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/immutable_dof.exp @@ -58,11 +58,11 @@ Response: { "nodes": [ { "value": { - "address": "0x7a305b9b25129bd2d2fe1fb25387f9595ac60a7bee62519911fc23e33fadf8cc", + "address": "0x55ca8f4e88023983bbdb587ad1e03027d01968e42bbaa98cbb383c2cfce46fa7", "version": 5, "contents": { "json": { - "id": "0x7a305b9b25129bd2d2fe1fb25387f9595ac60a7bee62519911fc23e33fadf8cc", + "id": "0x55ca8f4e88023983bbdb587ad1e03027d01968e42bbaa98cbb383c2cfce46fa7", "count": "0" } }, @@ -86,11 +86,11 @@ Response: { "nodes": [ { "value": { - "address": "0x7a305b9b25129bd2d2fe1fb25387f9595ac60a7bee62519911fc23e33fadf8cc", + "address": "0x55ca8f4e88023983bbdb587ad1e03027d01968e42bbaa98cbb383c2cfce46fa7", "version": 5, "contents": { "json": { - "id": "0x7a305b9b25129bd2d2fe1fb25387f9595ac60a7bee62519911fc23e33fadf8cc", + "id": "0x55ca8f4e88023983bbdb587ad1e03027d01968e42bbaa98cbb383c2cfce46fa7", "count": "0" } }, @@ -98,11 +98,11 @@ Response: { "nodes": [ { "value": { - "address": "0xca3b014349c4ac5ab7f7e7998ab3eb200264615363dc749a4082a2ad0fd7cdcb", + "address": "0xb45f8b09140fa8b0257a86001a8fe47e957a553a25f14b06110f4c8df81f5bd3", "version": 6, "contents": { "json": { - "id": "0xca3b014349c4ac5ab7f7e7998ab3eb200264615363dc749a4082a2ad0fd7cdcb", + "id": "0xb45f8b09140fa8b0257a86001a8fe47e957a553a25f14b06110f4c8df81f5bd3", "count": "0" } } @@ -145,7 +145,7 @@ Response: { "object": { "owner": { "parent": { - "address": "0x8ef98765dff1f57631c60140a4ccbf107b30574055550de619ad3d8b2f1b6495" + "address": "0x1742ff94b09656db7bd80ffb5b2504a85c19888611a9d29d78f0c596e45e8cde" } }, "dynamicFields": { @@ -175,11 +175,11 @@ Response: { "nodes": [ { "value": { - "address": "0xca3b014349c4ac5ab7f7e7998ab3eb200264615363dc749a4082a2ad0fd7cdcb", + "address": "0xb45f8b09140fa8b0257a86001a8fe47e957a553a25f14b06110f4c8df81f5bd3", "version": 6, "contents": { "json": { - "id": "0xca3b014349c4ac5ab7f7e7998ab3eb200264615363dc749a4082a2ad0fd7cdcb", + "id": "0xb45f8b09140fa8b0257a86001a8fe47e957a553a25f14b06110f4c8df81f5bd3", "count": "0" } } @@ -203,11 +203,11 @@ Response: { "nodes": [ { "value": { - "address": "0xca3b014349c4ac5ab7f7e7998ab3eb200264615363dc749a4082a2ad0fd7cdcb", + "address": "0xb45f8b09140fa8b0257a86001a8fe47e957a553a25f14b06110f4c8df81f5bd3", "version": 6, "contents": { "json": { - "id": "0xca3b014349c4ac5ab7f7e7998ab3eb200264615363dc749a4082a2ad0fd7cdcb", + "id": "0xb45f8b09140fa8b0257a86001a8fe47e957a553a25f14b06110f4c8df81f5bd3", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_df.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_df.exp index 145c6d01f7e..628c4063ff9 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_df.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_df.exp @@ -78,7 +78,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "ILNWmT6DXDql9qoDV/EF3YpQ36Op/EP5ELwEEwUIZqTGAQAAAAAAAAA=", + "cursor": "IBwkF+FKmkQix/L/8t3W/cnaiSXPdvpKqQmF803j28opAQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmMQ==" @@ -89,24 +89,24 @@ Response: { } }, { - "cursor": "IOgvEDt90FUbL06dw3nbP7LEQKIVvvfIJe6ACpIHz09rAQAAAAAAAAA=", + "cursor": "IHpW2AFEufshjRNwCV+HBuP2j/0MnXx6xzF0CXA6TH+JAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==" + "bcs": "A2RmMg==" }, "value": { - "json": "df3" + "json": "df2" } } }, { - "cursor": "IOhfBhBql46Y2hUeCE3R0z1PvoI+9rVuOFg2yDQT8K0MAQAAAAAAAAA=", + "cursor": "IL7FEx9v3kScZgMtxG5wU3L6pOHO+gDWUCxZJ2YxuZI8AQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==" + "bcs": "A2RmMw==" }, "value": { - "json": "df2" + "json": "df3" } } } @@ -201,7 +201,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "ILNWmT6DXDql9qoDV/EF3YpQ36Op/EP5ELwEEwUIZqTGAgAAAAAAAAA=", + "cursor": "IBwkF+FKmkQix/L/8t3W/cnaiSXPdvpKqQmF803j28opAgAAAAAAAAA=", "node": { "name": { "bcs": "A2RmMQ==" @@ -212,24 +212,24 @@ Response: { } }, { - "cursor": "IOgvEDt90FUbL06dw3nbP7LEQKIVvvfIJe6ACpIHz09rAgAAAAAAAAA=", + "cursor": "IHpW2AFEufshjRNwCV+HBuP2j/0MnXx6xzF0CXA6TH+JAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==" + "bcs": "A2RmMg==" }, "value": { - "json": "df3" + "json": "df2" } } }, { - "cursor": "IOhfBhBql46Y2hUeCE3R0z1PvoI+9rVuOFg2yDQT8K0MAgAAAAAAAAA=", + "cursor": "IL7FEx9v3kScZgMtxG5wU3L6pOHO+gDWUCxZJ2YxuZI8AgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==" + "bcs": "A2RmMw==" }, "value": { - "json": "df2" + "json": "df3" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_dof.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_dof.exp index 989f71226d6..bd26996e7f0 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_dof.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_dof.exp @@ -41,7 +41,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDNDloyIys+41dU5di8/y2vG0PddirMngky64ewM/8yUAQAAAAAAAAA=", + "cursor": "IEBhSPBh/WMjcXbhMtiw03ik6a3JUyrZXvtLA7B+71ZuAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -49,7 +49,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "0" } } @@ -65,7 +65,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "0" } } @@ -77,7 +77,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDNDloyIys+41dU5di8/y2vG0PddirMngky64ewM/8yUAQAAAAAAAAA=", + "cursor": "IEBhSPBh/WMjcXbhMtiw03ik6a3JUyrZXvtLA7B+71ZuAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -85,7 +85,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "0" } } @@ -101,7 +101,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "0" } } @@ -117,7 +117,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "0" } } @@ -168,7 +168,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "0" } } @@ -202,7 +202,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDNDloyIys+41dU5di8/y2vG0PddirMngky64ewM/8yUAwAAAAAAAAA=", + "cursor": "IEBhSPBh/WMjcXbhMtiw03ik6a3JUyrZXvtLA7B+71ZuAwAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -210,7 +210,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "1" } } @@ -226,7 +226,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "1" } } @@ -238,7 +238,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDNDloyIys+41dU5di8/y2vG0PddirMngky64ewM/8yUAwAAAAAAAAA=", + "cursor": "IEBhSPBh/WMjcXbhMtiw03ik6a3JUyrZXvtLA7B+71ZuAwAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -246,7 +246,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "1" } } @@ -262,7 +262,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "1" } } @@ -283,7 +283,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x586e113ce7ddb237b897aceb19778854f7ce190bf5ad00e831595ed04c9b1ad2", + "id": "0x92b479bae6fb902643a04dc80e04108420cde3b05fc095f7635ec02fd4bf0d9e", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/nested_dof.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/nested_dof.exp index 7790f8e3903..be4aa7cbc97 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/nested_dof.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/nested_dof.exp @@ -62,11 +62,11 @@ Response: { "nodes": [ { "value": { - "address": "0xc7670ed2c54d518b744a8071536cb7c64e9f2b0e1e612abb81cb277a1c577ea4", + "address": "0xea84532042b8cc62297a280c4711d15e7d58d84dbae48f00826dcda7d7da288d", "version": 5, "contents": { "json": { - "id": "0xc7670ed2c54d518b744a8071536cb7c64e9f2b0e1e612abb81cb277a1c577ea4", + "id": "0xea84532042b8cc62297a280c4711d15e7d58d84dbae48f00826dcda7d7da288d", "count": "0" } }, @@ -90,11 +90,11 @@ Response: { "nodes": [ { "value": { - "address": "0xc7670ed2c54d518b744a8071536cb7c64e9f2b0e1e612abb81cb277a1c577ea4", + "address": "0xea84532042b8cc62297a280c4711d15e7d58d84dbae48f00826dcda7d7da288d", "version": 5, "contents": { "json": { - "id": "0xc7670ed2c54d518b744a8071536cb7c64e9f2b0e1e612abb81cb277a1c577ea4", + "id": "0xea84532042b8cc62297a280c4711d15e7d58d84dbae48f00826dcda7d7da288d", "count": "0" } }, @@ -102,11 +102,11 @@ Response: { "nodes": [ { "value": { - "address": "0xd3c1ada87e0bc04fe046ab8d5959690e39f1d17eb964819907fbb1d106165de3", + "address": "0x6277ab029606a88e0493e1154951ef864ea1d606a2fe6f683a3dc3d184e41197", "version": 6, "contents": { "json": { - "id": "0xd3c1ada87e0bc04fe046ab8d5959690e39f1d17eb964819907fbb1d106165de3", + "id": "0x6277ab029606a88e0493e1154951ef864ea1d606a2fe6f683a3dc3d184e41197", "count": "0" } } @@ -131,11 +131,11 @@ Response: { "nodes": [ { "value": { - "address": "0xc7670ed2c54d518b744a8071536cb7c64e9f2b0e1e612abb81cb277a1c577ea4", + "address": "0xea84532042b8cc62297a280c4711d15e7d58d84dbae48f00826dcda7d7da288d", "version": 7, "contents": { "json": { - "id": "0xc7670ed2c54d518b744a8071536cb7c64e9f2b0e1e612abb81cb277a1c577ea4", + "id": "0xea84532042b8cc62297a280c4711d15e7d58d84dbae48f00826dcda7d7da288d", "count": "1" } }, @@ -143,11 +143,11 @@ Response: { "nodes": [ { "value": { - "address": "0xd3c1ada87e0bc04fe046ab8d5959690e39f1d17eb964819907fbb1d106165de3", + "address": "0x6277ab029606a88e0493e1154951ef864ea1d606a2fe6f683a3dc3d184e41197", "version": 6, "contents": { "json": { - "id": "0xd3c1ada87e0bc04fe046ab8d5959690e39f1d17eb964819907fbb1d106165de3", + "id": "0x6277ab029606a88e0493e1154951ef864ea1d606a2fe6f683a3dc3d184e41197", "count": "0" } } @@ -172,11 +172,11 @@ Response: { "nodes": [ { "value": { - "address": "0xc7670ed2c54d518b744a8071536cb7c64e9f2b0e1e612abb81cb277a1c577ea4", + "address": "0xea84532042b8cc62297a280c4711d15e7d58d84dbae48f00826dcda7d7da288d", "version": 7, "contents": { "json": { - "id": "0xc7670ed2c54d518b744a8071536cb7c64e9f2b0e1e612abb81cb277a1c577ea4", + "id": "0xea84532042b8cc62297a280c4711d15e7d58d84dbae48f00826dcda7d7da288d", "count": "1" } }, @@ -184,11 +184,11 @@ Response: { "nodes": [ { "value": { - "address": "0xd3c1ada87e0bc04fe046ab8d5959690e39f1d17eb964819907fbb1d106165de3", + "address": "0x6277ab029606a88e0493e1154951ef864ea1d606a2fe6f683a3dc3d184e41197", "version": 8, "contents": { "json": { - "id": "0xd3c1ada87e0bc04fe046ab8d5959690e39f1d17eb964819907fbb1d106165de3", + "id": "0x6277ab029606a88e0493e1154951ef864ea1d606a2fe6f683a3dc3d184e41197", "count": "1" } } @@ -233,11 +233,11 @@ Response: { "nodes": [ { "value": { - "address": "0xd3c1ada87e0bc04fe046ab8d5959690e39f1d17eb964819907fbb1d106165de3", + "address": "0x6277ab029606a88e0493e1154951ef864ea1d606a2fe6f683a3dc3d184e41197", "version": 6, "contents": { "json": { - "id": "0xd3c1ada87e0bc04fe046ab8d5959690e39f1d17eb964819907fbb1d106165de3", + "id": "0x6277ab029606a88e0493e1154951ef864ea1d606a2fe6f683a3dc3d184e41197", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/epochs/transaction_blocks.exp b/crates/iota-graphql-e2e-tests/tests/consistency/epochs/transaction_blocks.exp index 5d3d4848e43..f6467124565 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/epochs/transaction_blocks.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/epochs/transaction_blocks.exp @@ -41,19 +41,19 @@ Response: { { "cursor": "eyJjIjozLCJ0IjowLCJpIjpmYWxzZX0", "node": { - "digest": "J2ipHUWhTfsoqMAG5AfXSsKG73c3oSqsxwQns9WP7WKv" + "digest": "6jJ5GyPr9B7aW4NTEwGJUeWX9RT2pjnXL1by8J2Qk7xV" } }, { "cursor": "eyJjIjozLCJ0IjoxLCJpIjpmYWxzZX0", "node": { - "digest": "Eizx3S9vmb5fWrf9LCABZwMZq7QCCaiWrceKTMZGpETq" + "digest": "HikJ6T9t3VKeUJ4trTq2fxMufgzE6VYGmd1sGRT9XHEk" } }, { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "B5mycAo9Qjma8GXaB33VmBmY5aMphpvUaUGa31dBctQa" + "digest": "wxTLj3hMZRjEpPVKZJ5zoM7Jjgnw3J9cCe4nHcG2WLh" } }, { @@ -154,19 +154,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6MCwiaSI6ZmFsc2V9", "node": { - "digest": "J2ipHUWhTfsoqMAG5AfXSsKG73c3oSqsxwQns9WP7WKv" + "digest": "6jJ5GyPr9B7aW4NTEwGJUeWX9RT2pjnXL1by8J2Qk7xV" } }, { "cursor": "eyJjIjoxMiwidCI6MSwiaSI6ZmFsc2V9", "node": { - "digest": "Eizx3S9vmb5fWrf9LCABZwMZq7QCCaiWrceKTMZGpETq" + "digest": "HikJ6T9t3VKeUJ4trTq2fxMufgzE6VYGmd1sGRT9XHEk" } }, { "cursor": "eyJjIjoxMiwidCI6MiwiaSI6ZmFsc2V9", "node": { - "digest": "B5mycAo9Qjma8GXaB33VmBmY5aMphpvUaUGa31dBctQa" + "digest": "wxTLj3hMZRjEpPVKZJ5zoM7Jjgnw3J9cCe4nHcG2WLh" } }, { @@ -183,19 +183,19 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjowLCJpIjpmYWxzZX0", "node": { - "digest": "J2ipHUWhTfsoqMAG5AfXSsKG73c3oSqsxwQns9WP7WKv" + "digest": "6jJ5GyPr9B7aW4NTEwGJUeWX9RT2pjnXL1by8J2Qk7xV" } }, { "cursor": "eyJjIjo0LCJ0IjoxLCJpIjpmYWxzZX0", "node": { - "digest": "Eizx3S9vmb5fWrf9LCABZwMZq7QCCaiWrceKTMZGpETq" + "digest": "HikJ6T9t3VKeUJ4trTq2fxMufgzE6VYGmd1sGRT9XHEk" } }, { "cursor": "eyJjIjo0LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "B5mycAo9Qjma8GXaB33VmBmY5aMphpvUaUGa31dBctQa" + "digest": "wxTLj3hMZRjEpPVKZJ5zoM7Jjgnw3J9cCe4nHcG2WLh" } } ] @@ -207,19 +207,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NCwiaSI6ZmFsc2V9", "node": { - "digest": "ESxws3HtgcjvKRyefUr7JAxsFLZWWUfDDAnroqeny4G5" + "digest": "7e8AfYuDazeU11FQ6JDkKrKCLh1UVYHcwt2ni9Ed4z4" } }, { "cursor": "eyJjIjoxMiwidCI6NSwiaSI6ZmFsc2V9", "node": { - "digest": "AM5g6ZK4RPF6JcCr2Y8pe1SGQrJozxmJ6ZE2dmzZHfnz" + "digest": "3C8ABfrDA3LAzA4ad1upVTmBXctUdUhhzYK4aiUYTDV5" } }, { "cursor": "eyJjIjoxMiwidCI6NiwiaSI6ZmFsc2V9", "node": { - "digest": "cZvk4twvcLg8KqTa6Dx7ktHjtsW4T97rSGqRTDFB9i9" + "digest": "BuMGVrSu5PN4SXXhHEQrxo2aappDJ4xBdUbYfu9oNn4v" } }, { @@ -236,19 +236,19 @@ Response: { { "cursor": "eyJjIjo4LCJ0IjowLCJpIjpmYWxzZX0", "node": { - "digest": "J2ipHUWhTfsoqMAG5AfXSsKG73c3oSqsxwQns9WP7WKv" + "digest": "6jJ5GyPr9B7aW4NTEwGJUeWX9RT2pjnXL1by8J2Qk7xV" } }, { "cursor": "eyJjIjo4LCJ0IjoxLCJpIjpmYWxzZX0", "node": { - "digest": "Eizx3S9vmb5fWrf9LCABZwMZq7QCCaiWrceKTMZGpETq" + "digest": "HikJ6T9t3VKeUJ4trTq2fxMufgzE6VYGmd1sGRT9XHEk" } }, { "cursor": "eyJjIjo4LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "B5mycAo9Qjma8GXaB33VmBmY5aMphpvUaUGa31dBctQa" + "digest": "wxTLj3hMZRjEpPVKZJ5zoM7Jjgnw3J9cCe4nHcG2WLh" } }, { @@ -260,19 +260,19 @@ Response: { { "cursor": "eyJjIjo4LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "ESxws3HtgcjvKRyefUr7JAxsFLZWWUfDDAnroqeny4G5" + "digest": "7e8AfYuDazeU11FQ6JDkKrKCLh1UVYHcwt2ni9Ed4z4" } }, { "cursor": "eyJjIjo4LCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "AM5g6ZK4RPF6JcCr2Y8pe1SGQrJozxmJ6ZE2dmzZHfnz" + "digest": "3C8ABfrDA3LAzA4ad1upVTmBXctUdUhhzYK4aiUYTDV5" } }, { "cursor": "eyJjIjo4LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "cZvk4twvcLg8KqTa6Dx7ktHjtsW4T97rSGqRTDFB9i9" + "digest": "BuMGVrSu5PN4SXXhHEQrxo2aappDJ4xBdUbYfu9oNn4v" } } ] @@ -284,19 +284,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OCwiaSI6ZmFsc2V9", "node": { - "digest": "4dqvaY8wktxVDv685kMHE2tYzD3eA2d8CgcL1cnd5GEp" + "digest": "2dAUefr4VxY7187brTUcmS9xikyznS8QeEUHLqT4DVMX" } }, { "cursor": "eyJjIjoxMiwidCI6OSwiaSI6ZmFsc2V9", "node": { - "digest": "A8y4xLrF2oDM2rmozRsScWd4AmTzkKetdqVgEWsY7ykF" + "digest": "EL7ZyLYMiCub9vgKhfkRNZwJg3hyZNKuV96n6CgWrBhC" } }, { "cursor": "eyJjIjoxMiwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "2ugu2t43xP3yRHTS2c2uwciMHWhnUXD3MEFeL6ULGe4P" + "digest": "X1CR6JjkMWjrK69CPe1jpctSLLvYGj2MieSEBDc4E7T" } }, { @@ -313,19 +313,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6MCwiaSI6ZmFsc2V9", "node": { - "digest": "J2ipHUWhTfsoqMAG5AfXSsKG73c3oSqsxwQns9WP7WKv" + "digest": "6jJ5GyPr9B7aW4NTEwGJUeWX9RT2pjnXL1by8J2Qk7xV" } }, { "cursor": "eyJjIjoxMiwidCI6MSwiaSI6ZmFsc2V9", "node": { - "digest": "Eizx3S9vmb5fWrf9LCABZwMZq7QCCaiWrceKTMZGpETq" + "digest": "HikJ6T9t3VKeUJ4trTq2fxMufgzE6VYGmd1sGRT9XHEk" } }, { "cursor": "eyJjIjoxMiwidCI6MiwiaSI6ZmFsc2V9", "node": { - "digest": "B5mycAo9Qjma8GXaB33VmBmY5aMphpvUaUGa31dBctQa" + "digest": "wxTLj3hMZRjEpPVKZJ5zoM7Jjgnw3J9cCe4nHcG2WLh" } }, { @@ -337,19 +337,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NCwiaSI6ZmFsc2V9", "node": { - "digest": "ESxws3HtgcjvKRyefUr7JAxsFLZWWUfDDAnroqeny4G5" + "digest": "7e8AfYuDazeU11FQ6JDkKrKCLh1UVYHcwt2ni9Ed4z4" } }, { "cursor": "eyJjIjoxMiwidCI6NSwiaSI6ZmFsc2V9", "node": { - "digest": "AM5g6ZK4RPF6JcCr2Y8pe1SGQrJozxmJ6ZE2dmzZHfnz" + "digest": "3C8ABfrDA3LAzA4ad1upVTmBXctUdUhhzYK4aiUYTDV5" } }, { "cursor": "eyJjIjoxMiwidCI6NiwiaSI6ZmFsc2V9", "node": { - "digest": "cZvk4twvcLg8KqTa6Dx7ktHjtsW4T97rSGqRTDFB9i9" + "digest": "BuMGVrSu5PN4SXXhHEQrxo2aappDJ4xBdUbYfu9oNn4v" } }, { @@ -361,19 +361,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OCwiaSI6ZmFsc2V9", "node": { - "digest": "4dqvaY8wktxVDv685kMHE2tYzD3eA2d8CgcL1cnd5GEp" + "digest": "2dAUefr4VxY7187brTUcmS9xikyznS8QeEUHLqT4DVMX" } }, { "cursor": "eyJjIjoxMiwidCI6OSwiaSI6ZmFsc2V9", "node": { - "digest": "A8y4xLrF2oDM2rmozRsScWd4AmTzkKetdqVgEWsY7ykF" + "digest": "EL7ZyLYMiCub9vgKhfkRNZwJg3hyZNKuV96n6CgWrBhC" } }, { "cursor": "eyJjIjoxMiwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "2ugu2t43xP3yRHTS2c2uwciMHWhnUXD3MEFeL6ULGe4P" + "digest": "X1CR6JjkMWjrK69CPe1jpctSLLvYGj2MieSEBDc4E7T" } } ] @@ -395,13 +395,13 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoxLCJpIjpmYWxzZX0", "node": { - "digest": "Eizx3S9vmb5fWrf9LCABZwMZq7QCCaiWrceKTMZGpETq" + "digest": "HikJ6T9t3VKeUJ4trTq2fxMufgzE6VYGmd1sGRT9XHEk" } }, { "cursor": "eyJjIjo3LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "B5mycAo9Qjma8GXaB33VmBmY5aMphpvUaUGa31dBctQa" + "digest": "wxTLj3hMZRjEpPVKZJ5zoM7Jjgnw3J9cCe4nHcG2WLh" } }, { @@ -420,13 +420,13 @@ Response: { { "cursor": "eyJjIjoxMSwidCI6NSwiaSI6ZmFsc2V9", "node": { - "digest": "AM5g6ZK4RPF6JcCr2Y8pe1SGQrJozxmJ6ZE2dmzZHfnz" + "digest": "3C8ABfrDA3LAzA4ad1upVTmBXctUdUhhzYK4aiUYTDV5" } }, { "cursor": "eyJjIjoxMSwidCI6NiwiaSI6ZmFsc2V9", "node": { - "digest": "cZvk4twvcLg8KqTa6Dx7ktHjtsW4T97rSGqRTDFB9i9" + "digest": "BuMGVrSu5PN4SXXhHEQrxo2aappDJ4xBdUbYfu9oNn4v" } }, { @@ -445,13 +445,13 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OSwiaSI6ZmFsc2V9", "node": { - "digest": "A8y4xLrF2oDM2rmozRsScWd4AmTzkKetdqVgEWsY7ykF" + "digest": "EL7ZyLYMiCub9vgKhfkRNZwJg3hyZNKuV96n6CgWrBhC" } }, { "cursor": "eyJjIjoxMiwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "2ugu2t43xP3yRHTS2c2uwciMHWhnUXD3MEFeL6ULGe4P" + "digest": "X1CR6JjkMWjrK69CPe1jpctSLLvYGj2MieSEBDc4E7T" } }, { @@ -480,7 +480,7 @@ Response: { { "cursor": "eyJjIjoyLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "B5mycAo9Qjma8GXaB33VmBmY5aMphpvUaUGa31dBctQa" + "digest": "wxTLj3hMZRjEpPVKZJ5zoM7Jjgnw3J9cCe4nHcG2WLh" } } ] @@ -493,7 +493,7 @@ Response: { { "cursor": "eyJjIjo2LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "cZvk4twvcLg8KqTa6Dx7ktHjtsW4T97rSGqRTDFB9i9" + "digest": "BuMGVrSu5PN4SXXhHEQrxo2aappDJ4xBdUbYfu9oNn4v" } } ] @@ -506,7 +506,7 @@ Response: { { "cursor": "eyJjIjoxMCwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "2ugu2t43xP3yRHTS2c2uwciMHWhnUXD3MEFeL6ULGe4P" + "digest": "X1CR6JjkMWjrK69CPe1jpctSLLvYGj2MieSEBDc4E7T" } } ] @@ -527,24 +527,24 @@ Response: { { "cursor": "eyJjIjo2LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "cZvk4twvcLg8KqTa6Dx7ktHjtsW4T97rSGqRTDFB9i9", + "digest": "BuMGVrSu5PN4SXXhHEQrxo2aappDJ4xBdUbYfu9oNn4v", "sender": { "objects": { "edges": [ { - "cursor": "ICQpHXYiabLxEBP3vj45poVMqWndmwlNXTeqvPVb4MvYBgAAAAAAAAA=" + "cursor": "IBpSURhn9I1wJERwRFANEXqI98bagpRsksYuuwsrFFtQBgAAAAAAAAA=" }, { - "cursor": "IDrwgGgIeQ1Eu4pKOfaC/5Bj/wreiCX0C6iAU7MXJw1hBgAAAAAAAAA=" + "cursor": "IG5xEl2cETN2e5wvZahoOT7RPDhQ67XpDJxEYE3Y1H0wBgAAAAAAAAA=" }, { - "cursor": "IG2J3e4fMYpVluBTe4fgDgUUXYQVoHYW0WnuMHp3duVmBgAAAAAAAAA=" + "cursor": "IHZTeRSrYZdmATmYywz8eg1TCTt31tnyWtgV3HhknIL9BgAAAAAAAAA=" }, { - "cursor": "IIzCp7wYy3uUvNHb1uOsx9uLRHz+2/8oTCML9cNCPa+4BgAAAAAAAAA=" + "cursor": "IH6AktGxIVXU/7gD2X/LJ7JCYi+0MPGulrMQHX+XHpnpBgAAAAAAAAA=" }, { - "cursor": "ILFqYFDHXIDzxVBTxk9IS2YrEr0YjBu8YPrHlDf+mT81BgAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECBgAAAAAAAAA=" } ] } @@ -558,33 +558,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6MiwiaSI6ZmFsc2V9", "node": { - "digest": "B5mycAo9Qjma8GXaB33VmBmY5aMphpvUaUGa31dBctQa", + "digest": "wxTLj3hMZRjEpPVKZJ5zoM7Jjgnw3J9cCe4nHcG2WLh", "sender": { "objects": { "edges": [ { - "cursor": "ICQpHXYiabLxEBP3vj45poVMqWndmwlNXTeqvPVb4MvYDAAAAAAAAAA=" + "cursor": "IBpSURhn9I1wJERwRFANEXqI98bagpRsksYuuwsrFFtQDAAAAAAAAAA=" }, { - "cursor": "IDrwgGgIeQ1Eu4pKOfaC/5Bj/wreiCX0C6iAU7MXJw1hDAAAAAAAAAA=" + "cursor": "IG5xEl2cETN2e5wvZahoOT7RPDhQ67XpDJxEYE3Y1H0wDAAAAAAAAAA=" }, { - "cursor": "IE3A85TsgU5FMgi+dqWa6alYGPDcGX93ZsDYtLZCmZuRDAAAAAAAAAA=" + "cursor": "IHZTeRSrYZdmATmYywz8eg1TCTt31tnyWtgV3HhknIL9DAAAAAAAAAA=" }, { - "cursor": "IG2J3e4fMYpVluBTe4fgDgUUXYQVoHYW0WnuMHp3duVmDAAAAAAAAAA=" + "cursor": "IH6AktGxIVXU/7gD2X/LJ7JCYi+0MPGulrMQHX+XHpnpDAAAAAAAAAA=" }, { - "cursor": "IIzCp7wYy3uUvNHb1uOsx9uLRHz+2/8oTCML9cNCPa+4DAAAAAAAAAA=" + "cursor": "IJL01CrKxFLA2/firA8JWvn3sWBK9YqKS9NQwvIU0Q/sDAAAAAAAAAA=" }, { - "cursor": "IJaaAY0TLLpvQbNriZ4uz9Ypaj6n+IGm6yUSwZLDislUDAAAAAAAAAA=" + "cursor": "IJq+Y73oMKn4g+rWmohDyrR8YHPPGNCztXduUlLXDJnMDAAAAAAAAAA=" }, { - "cursor": "ILFqYFDHXIDzxVBTxk9IS2YrEr0YjBu8YPrHlDf+mT81DAAAAAAAAAA=" + "cursor": "IJ/ICtdADlQPA4QUt0sRneRIa0g20P2ai3+rWMorvNGyDAAAAAAAAAA=" }, { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0DAAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECDAAAAAAAAAA=" } ] } @@ -594,33 +594,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NCwiaSI6ZmFsc2V9", "node": { - "digest": "ESxws3HtgcjvKRyefUr7JAxsFLZWWUfDDAnroqeny4G5", + "digest": "7e8AfYuDazeU11FQ6JDkKrKCLh1UVYHcwt2ni9Ed4z4", "sender": { "objects": { "edges": [ { - "cursor": "ICQpHXYiabLxEBP3vj45poVMqWndmwlNXTeqvPVb4MvYDAAAAAAAAAA=" + "cursor": "IBpSURhn9I1wJERwRFANEXqI98bagpRsksYuuwsrFFtQDAAAAAAAAAA=" }, { - "cursor": "IDrwgGgIeQ1Eu4pKOfaC/5Bj/wreiCX0C6iAU7MXJw1hDAAAAAAAAAA=" + "cursor": "IG5xEl2cETN2e5wvZahoOT7RPDhQ67XpDJxEYE3Y1H0wDAAAAAAAAAA=" }, { - "cursor": "IE3A85TsgU5FMgi+dqWa6alYGPDcGX93ZsDYtLZCmZuRDAAAAAAAAAA=" + "cursor": "IHZTeRSrYZdmATmYywz8eg1TCTt31tnyWtgV3HhknIL9DAAAAAAAAAA=" }, { - "cursor": "IG2J3e4fMYpVluBTe4fgDgUUXYQVoHYW0WnuMHp3duVmDAAAAAAAAAA=" + "cursor": "IH6AktGxIVXU/7gD2X/LJ7JCYi+0MPGulrMQHX+XHpnpDAAAAAAAAAA=" }, { - "cursor": "IIzCp7wYy3uUvNHb1uOsx9uLRHz+2/8oTCML9cNCPa+4DAAAAAAAAAA=" + "cursor": "IJL01CrKxFLA2/firA8JWvn3sWBK9YqKS9NQwvIU0Q/sDAAAAAAAAAA=" }, { - "cursor": "IJaaAY0TLLpvQbNriZ4uz9Ypaj6n+IGm6yUSwZLDislUDAAAAAAAAAA=" + "cursor": "IJq+Y73oMKn4g+rWmohDyrR8YHPPGNCztXduUlLXDJnMDAAAAAAAAAA=" }, { - "cursor": "ILFqYFDHXIDzxVBTxk9IS2YrEr0YjBu8YPrHlDf+mT81DAAAAAAAAAA=" + "cursor": "IJ/ICtdADlQPA4QUt0sRneRIa0g20P2ai3+rWMorvNGyDAAAAAAAAAA=" }, { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0DAAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECDAAAAAAAAAA=" } ] } @@ -630,33 +630,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NSwiaSI6ZmFsc2V9", "node": { - "digest": "AM5g6ZK4RPF6JcCr2Y8pe1SGQrJozxmJ6ZE2dmzZHfnz", + "digest": "3C8ABfrDA3LAzA4ad1upVTmBXctUdUhhzYK4aiUYTDV5", "sender": { "objects": { "edges": [ { - "cursor": "ICQpHXYiabLxEBP3vj45poVMqWndmwlNXTeqvPVb4MvYDAAAAAAAAAA=" + "cursor": "IBpSURhn9I1wJERwRFANEXqI98bagpRsksYuuwsrFFtQDAAAAAAAAAA=" }, { - "cursor": "IDrwgGgIeQ1Eu4pKOfaC/5Bj/wreiCX0C6iAU7MXJw1hDAAAAAAAAAA=" + "cursor": "IG5xEl2cETN2e5wvZahoOT7RPDhQ67XpDJxEYE3Y1H0wDAAAAAAAAAA=" }, { - "cursor": "IE3A85TsgU5FMgi+dqWa6alYGPDcGX93ZsDYtLZCmZuRDAAAAAAAAAA=" + "cursor": "IHZTeRSrYZdmATmYywz8eg1TCTt31tnyWtgV3HhknIL9DAAAAAAAAAA=" }, { - "cursor": "IG2J3e4fMYpVluBTe4fgDgUUXYQVoHYW0WnuMHp3duVmDAAAAAAAAAA=" + "cursor": "IH6AktGxIVXU/7gD2X/LJ7JCYi+0MPGulrMQHX+XHpnpDAAAAAAAAAA=" }, { - "cursor": "IIzCp7wYy3uUvNHb1uOsx9uLRHz+2/8oTCML9cNCPa+4DAAAAAAAAAA=" + "cursor": "IJL01CrKxFLA2/firA8JWvn3sWBK9YqKS9NQwvIU0Q/sDAAAAAAAAAA=" }, { - "cursor": "IJaaAY0TLLpvQbNriZ4uz9Ypaj6n+IGm6yUSwZLDislUDAAAAAAAAAA=" + "cursor": "IJq+Y73oMKn4g+rWmohDyrR8YHPPGNCztXduUlLXDJnMDAAAAAAAAAA=" }, { - "cursor": "ILFqYFDHXIDzxVBTxk9IS2YrEr0YjBu8YPrHlDf+mT81DAAAAAAAAAA=" + "cursor": "IJ/ICtdADlQPA4QUt0sRneRIa0g20P2ai3+rWMorvNGyDAAAAAAAAAA=" }, { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0DAAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECDAAAAAAAAAA=" } ] } @@ -666,33 +666,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NiwiaSI6ZmFsc2V9", "node": { - "digest": "cZvk4twvcLg8KqTa6Dx7ktHjtsW4T97rSGqRTDFB9i9", + "digest": "BuMGVrSu5PN4SXXhHEQrxo2aappDJ4xBdUbYfu9oNn4v", "sender": { "objects": { "edges": [ { - "cursor": "ICQpHXYiabLxEBP3vj45poVMqWndmwlNXTeqvPVb4MvYDAAAAAAAAAA=" + "cursor": "IBpSURhn9I1wJERwRFANEXqI98bagpRsksYuuwsrFFtQDAAAAAAAAAA=" }, { - "cursor": "IDrwgGgIeQ1Eu4pKOfaC/5Bj/wreiCX0C6iAU7MXJw1hDAAAAAAAAAA=" + "cursor": "IG5xEl2cETN2e5wvZahoOT7RPDhQ67XpDJxEYE3Y1H0wDAAAAAAAAAA=" }, { - "cursor": "IE3A85TsgU5FMgi+dqWa6alYGPDcGX93ZsDYtLZCmZuRDAAAAAAAAAA=" + "cursor": "IHZTeRSrYZdmATmYywz8eg1TCTt31tnyWtgV3HhknIL9DAAAAAAAAAA=" }, { - "cursor": "IG2J3e4fMYpVluBTe4fgDgUUXYQVoHYW0WnuMHp3duVmDAAAAAAAAAA=" + "cursor": "IH6AktGxIVXU/7gD2X/LJ7JCYi+0MPGulrMQHX+XHpnpDAAAAAAAAAA=" }, { - "cursor": "IIzCp7wYy3uUvNHb1uOsx9uLRHz+2/8oTCML9cNCPa+4DAAAAAAAAAA=" + "cursor": "IJL01CrKxFLA2/firA8JWvn3sWBK9YqKS9NQwvIU0Q/sDAAAAAAAAAA=" }, { - "cursor": "IJaaAY0TLLpvQbNriZ4uz9Ypaj6n+IGm6yUSwZLDislUDAAAAAAAAAA=" + "cursor": "IJq+Y73oMKn4g+rWmohDyrR8YHPPGNCztXduUlLXDJnMDAAAAAAAAAA=" }, { - "cursor": "ILFqYFDHXIDzxVBTxk9IS2YrEr0YjBu8YPrHlDf+mT81DAAAAAAAAAA=" + "cursor": "IJ/ICtdADlQPA4QUt0sRneRIa0g20P2ai3+rWMorvNGyDAAAAAAAAAA=" }, { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0DAAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECDAAAAAAAAAA=" } ] } @@ -702,33 +702,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OCwiaSI6ZmFsc2V9", "node": { - "digest": "4dqvaY8wktxVDv685kMHE2tYzD3eA2d8CgcL1cnd5GEp", + "digest": "2dAUefr4VxY7187brTUcmS9xikyznS8QeEUHLqT4DVMX", "sender": { "objects": { "edges": [ { - "cursor": "ICQpHXYiabLxEBP3vj45poVMqWndmwlNXTeqvPVb4MvYDAAAAAAAAAA=" + "cursor": "IBpSURhn9I1wJERwRFANEXqI98bagpRsksYuuwsrFFtQDAAAAAAAAAA=" }, { - "cursor": "IDrwgGgIeQ1Eu4pKOfaC/5Bj/wreiCX0C6iAU7MXJw1hDAAAAAAAAAA=" + "cursor": "IG5xEl2cETN2e5wvZahoOT7RPDhQ67XpDJxEYE3Y1H0wDAAAAAAAAAA=" }, { - "cursor": "IE3A85TsgU5FMgi+dqWa6alYGPDcGX93ZsDYtLZCmZuRDAAAAAAAAAA=" + "cursor": "IHZTeRSrYZdmATmYywz8eg1TCTt31tnyWtgV3HhknIL9DAAAAAAAAAA=" }, { - "cursor": "IG2J3e4fMYpVluBTe4fgDgUUXYQVoHYW0WnuMHp3duVmDAAAAAAAAAA=" + "cursor": "IH6AktGxIVXU/7gD2X/LJ7JCYi+0MPGulrMQHX+XHpnpDAAAAAAAAAA=" }, { - "cursor": "IIzCp7wYy3uUvNHb1uOsx9uLRHz+2/8oTCML9cNCPa+4DAAAAAAAAAA=" + "cursor": "IJL01CrKxFLA2/firA8JWvn3sWBK9YqKS9NQwvIU0Q/sDAAAAAAAAAA=" }, { - "cursor": "IJaaAY0TLLpvQbNriZ4uz9Ypaj6n+IGm6yUSwZLDislUDAAAAAAAAAA=" + "cursor": "IJq+Y73oMKn4g+rWmohDyrR8YHPPGNCztXduUlLXDJnMDAAAAAAAAAA=" }, { - "cursor": "ILFqYFDHXIDzxVBTxk9IS2YrEr0YjBu8YPrHlDf+mT81DAAAAAAAAAA=" + "cursor": "IJ/ICtdADlQPA4QUt0sRneRIa0g20P2ai3+rWMorvNGyDAAAAAAAAAA=" }, { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0DAAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECDAAAAAAAAAA=" } ] } @@ -738,33 +738,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OSwiaSI6ZmFsc2V9", "node": { - "digest": "A8y4xLrF2oDM2rmozRsScWd4AmTzkKetdqVgEWsY7ykF", + "digest": "EL7ZyLYMiCub9vgKhfkRNZwJg3hyZNKuV96n6CgWrBhC", "sender": { "objects": { "edges": [ { - "cursor": "ICQpHXYiabLxEBP3vj45poVMqWndmwlNXTeqvPVb4MvYDAAAAAAAAAA=" + "cursor": "IBpSURhn9I1wJERwRFANEXqI98bagpRsksYuuwsrFFtQDAAAAAAAAAA=" }, { - "cursor": "IDrwgGgIeQ1Eu4pKOfaC/5Bj/wreiCX0C6iAU7MXJw1hDAAAAAAAAAA=" + "cursor": "IG5xEl2cETN2e5wvZahoOT7RPDhQ67XpDJxEYE3Y1H0wDAAAAAAAAAA=" }, { - "cursor": "IE3A85TsgU5FMgi+dqWa6alYGPDcGX93ZsDYtLZCmZuRDAAAAAAAAAA=" + "cursor": "IHZTeRSrYZdmATmYywz8eg1TCTt31tnyWtgV3HhknIL9DAAAAAAAAAA=" }, { - "cursor": "IG2J3e4fMYpVluBTe4fgDgUUXYQVoHYW0WnuMHp3duVmDAAAAAAAAAA=" + "cursor": "IH6AktGxIVXU/7gD2X/LJ7JCYi+0MPGulrMQHX+XHpnpDAAAAAAAAAA=" }, { - "cursor": "IIzCp7wYy3uUvNHb1uOsx9uLRHz+2/8oTCML9cNCPa+4DAAAAAAAAAA=" + "cursor": "IJL01CrKxFLA2/firA8JWvn3sWBK9YqKS9NQwvIU0Q/sDAAAAAAAAAA=" }, { - "cursor": "IJaaAY0TLLpvQbNriZ4uz9Ypaj6n+IGm6yUSwZLDislUDAAAAAAAAAA=" + "cursor": "IJq+Y73oMKn4g+rWmohDyrR8YHPPGNCztXduUlLXDJnMDAAAAAAAAAA=" }, { - "cursor": "ILFqYFDHXIDzxVBTxk9IS2YrEr0YjBu8YPrHlDf+mT81DAAAAAAAAAA=" + "cursor": "IJ/ICtdADlQPA4QUt0sRneRIa0g20P2ai3+rWMorvNGyDAAAAAAAAAA=" }, { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0DAAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECDAAAAAAAAAA=" } ] } @@ -774,33 +774,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "2ugu2t43xP3yRHTS2c2uwciMHWhnUXD3MEFeL6ULGe4P", + "digest": "X1CR6JjkMWjrK69CPe1jpctSLLvYGj2MieSEBDc4E7T", "sender": { "objects": { "edges": [ { - "cursor": "ICQpHXYiabLxEBP3vj45poVMqWndmwlNXTeqvPVb4MvYDAAAAAAAAAA=" + "cursor": "IBpSURhn9I1wJERwRFANEXqI98bagpRsksYuuwsrFFtQDAAAAAAAAAA=" }, { - "cursor": "IDrwgGgIeQ1Eu4pKOfaC/5Bj/wreiCX0C6iAU7MXJw1hDAAAAAAAAAA=" + "cursor": "IG5xEl2cETN2e5wvZahoOT7RPDhQ67XpDJxEYE3Y1H0wDAAAAAAAAAA=" }, { - "cursor": "IE3A85TsgU5FMgi+dqWa6alYGPDcGX93ZsDYtLZCmZuRDAAAAAAAAAA=" + "cursor": "IHZTeRSrYZdmATmYywz8eg1TCTt31tnyWtgV3HhknIL9DAAAAAAAAAA=" }, { - "cursor": "IG2J3e4fMYpVluBTe4fgDgUUXYQVoHYW0WnuMHp3duVmDAAAAAAAAAA=" + "cursor": "IH6AktGxIVXU/7gD2X/LJ7JCYi+0MPGulrMQHX+XHpnpDAAAAAAAAAA=" }, { - "cursor": "IIzCp7wYy3uUvNHb1uOsx9uLRHz+2/8oTCML9cNCPa+4DAAAAAAAAAA=" + "cursor": "IJL01CrKxFLA2/firA8JWvn3sWBK9YqKS9NQwvIU0Q/sDAAAAAAAAAA=" }, { - "cursor": "IJaaAY0TLLpvQbNriZ4uz9Ypaj6n+IGm6yUSwZLDislUDAAAAAAAAAA=" + "cursor": "IJq+Y73oMKn4g+rWmohDyrR8YHPPGNCztXduUlLXDJnMDAAAAAAAAAA=" }, { - "cursor": "ILFqYFDHXIDzxVBTxk9IS2YrEr0YjBu8YPrHlDf+mT81DAAAAAAAAAA=" + "cursor": "IJ/ICtdADlQPA4QUt0sRneRIa0g20P2ai3+rWMorvNGyDAAAAAAAAAA=" }, { - "cursor": "IPufMw9vd+aLxsrWja29I8somQM3GVmqlq+gt1RdyMo0DAAAAAAAAAA=" + "cursor": "IPh2YV1gCbCl7szXeyKqwIL0jJlNuMDuCbQCmjbWpyECDAAAAAAAAAA=" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/object_at_version.exp b/crates/iota-graphql-e2e-tests/tests/consistency/object_at_version.exp index 2d05fd0cfba..8d52148fc7b 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/object_at_version.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/object_at_version.exp @@ -29,7 +29,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x7e06e1670c99637a2229b62e3178e98319410f044949a7e80f9dc940b713fa6d", + "id": "0xcba61bbad5babbfc9773adbbbc51511f1133c3398c953826721afb929e4e8d9d", "value": "0" } } @@ -57,7 +57,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x7e06e1670c99637a2229b62e3178e98319410f044949a7e80f9dc940b713fa6d", + "id": "0xcba61bbad5babbfc9773adbbbc51511f1133c3398c953826721afb929e4e8d9d", "value": "1" } } @@ -69,7 +69,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x7e06e1670c99637a2229b62e3178e98319410f044949a7e80f9dc940b713fa6d", + "id": "0xcba61bbad5babbfc9773adbbbc51511f1133c3398c953826721afb929e4e8d9d", "value": "0" } } @@ -104,7 +104,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x7e06e1670c99637a2229b62e3178e98319410f044949a7e80f9dc940b713fa6d", + "id": "0xcba61bbad5babbfc9773adbbbc51511f1133c3398c953826721afb929e4e8d9d", "value": "1" } } @@ -134,7 +134,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x7e06e1670c99637a2229b62e3178e98319410f044949a7e80f9dc940b713fa6d", + "id": "0xcba61bbad5babbfc9773adbbbc51511f1133c3398c953826721afb929e4e8d9d", "value": "1" } } @@ -151,7 +151,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x7e06e1670c99637a2229b62e3178e98319410f044949a7e80f9dc940b713fa6d", + "id": "0xcba61bbad5babbfc9773adbbbc51511f1133c3398c953826721afb929e4e8d9d", "value": "0" } } @@ -205,7 +205,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x7e06e1670c99637a2229b62e3178e98319410f044949a7e80f9dc940b713fa6d", + "id": "0xcba61bbad5babbfc9773adbbbc51511f1133c3398c953826721afb929e4e8d9d", "value": "1" } } @@ -222,7 +222,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x7e06e1670c99637a2229b62e3178e98319410f044949a7e80f9dc940b713fa6d", + "id": "0xcba61bbad5babbfc9773adbbbc51511f1133c3398c953826721afb929e4e8d9d", "value": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination.exp b/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination.exp index fd5221a9387..5007dcf7251 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination.exp @@ -31,24 +31,26 @@ Response: { "data": { "one_of_these_will_yield_an_object": { "objects": { - "nodes": [ - { - "version": 4, + "nodes": [] + } + }, + "if_the_other_does_not": { + "nodes": [ + { + "version": 3, + "asMoveObject": { "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } } } - ] - } - }, - "if_the_other_does_not": { - "nodes": [] + } + ] } } } @@ -75,24 +77,26 @@ Response: { "data": { "paginating_on_checkpoint_1": { "objects": { - "nodes": [ - { - "version": 4, + "nodes": [] + } + }, + "should_not_have_more_than_one_result": { + "nodes": [ + { + "version": 3, + "asMoveObject": { "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } } } - ] - } - }, - "should_not_have_more_than_one_result": { - "nodes": [] + } + ] } } } @@ -105,14 +109,14 @@ Response: { "objects": { "nodes": [ { - "version": 6, + "version": 4, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x33e71ed21f18a4581f5b9c4472a2ca5cfea62b674846bcdb59c1ce265cce7c65", - "value": "3" + "id": "0x4ceffd3c1ffcf8d9db9397c5751b07aa74ed80ce74f634983b91d94777565388", + "value": "1" } } }, @@ -120,35 +124,35 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x5941fbfba611b8863ab492e93f2865a53b3cb64680978fe7e30046e0e443a14c", + "id": "0xa3c8a81b637d4b8a7ffae7d1f01de9d75b3e112ae34bcc2b027155a4006988a6", "value": "2" } } }, { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xacaebcc5ec4007606fe12e5a5e2e5f08117b69a1230ec75d1c2dd04056d293fe", - "value": "0" + "id": "0xb7746e400cd5c28c808ff2a623e490441909a26ca33c292c271b07f19a4c9fc2", + "value": "3" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } } } @@ -166,14 +170,14 @@ Response: { "objects": { "nodes": [ { - "version": 6, + "version": 4, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x33e71ed21f18a4581f5b9c4472a2ca5cfea62b674846bcdb59c1ce265cce7c65", - "value": "3" + "id": "0x4ceffd3c1ffcf8d9db9397c5751b07aa74ed80ce74f634983b91d94777565388", + "value": "1" } } }, @@ -181,35 +185,35 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x5941fbfba611b8863ab492e93f2865a53b3cb64680978fe7e30046e0e443a14c", + "id": "0xa3c8a81b637d4b8a7ffae7d1f01de9d75b3e112ae34bcc2b027155a4006988a6", "value": "2" } } }, { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xacaebcc5ec4007606fe12e5a5e2e5f08117b69a1230ec75d1c2dd04056d293fe", - "value": "0" + "id": "0xb7746e400cd5c28c808ff2a623e490441909a26ca33c292c271b07f19a4c9fc2", + "value": "3" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } } } @@ -237,14 +241,14 @@ Response: { "objects": { "nodes": [ { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xacaebcc5ec4007606fe12e5a5e2e5f08117b69a1230ec75d1c2dd04056d293fe", - "value": "0" + "id": "0xb7746e400cd5c28c808ff2a623e490441909a26ca33c292c271b07f19a4c9fc2", + "value": "3" } }, "owner_at_latest_state_has_iota_only": { @@ -252,64 +256,64 @@ Response: { "objects": { "nodes": [ { - "version": 6, + "version": 1, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x33e71ed21f18a4581f5b9c4472a2ca5cfea62b674846bcdb59c1ce265cce7c65", - "value": "3" + "id": "0x1a52511867f48d7024447044500d117a88f7c6da82946c92c62ebb0b2b145b50", + "balance": { + "value": "300000000000000" + } } } }, { - "version": 5, + "version": 4, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x5941fbfba611b8863ab492e93f2865a53b3cb64680978fe7e30046e0e443a14c", - "value": "2" + "id": "0x4ceffd3c1ffcf8d9db9397c5751b07aa74ed80ce74f634983b91d94777565388", + "value": "1" } } }, { - "version": 1, + "version": 5, "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x8cc2a7bc18cb7b94bcd1dbd6e3acc7db8b447cfedbff284c230bf5c3423dafb8", - "balance": { - "value": "300000000000000" - } + "id": "0xa3c8a81b637d4b8a7ffae7d1f01de9d75b3e112ae34bcc2b027155a4006988a6", + "value": "2" } } }, { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xacaebcc5ec4007606fe12e5a5e2e5f08117b69a1230ec75d1c2dd04056d293fe", - "value": "0" + "id": "0xb7746e400cd5c28c808ff2a623e490441909a26ca33c292c271b07f19a4c9fc2", + "value": "3" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } } } @@ -319,14 +323,14 @@ Response: { } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } }, "owner_at_latest_state_has_iota_only": { @@ -334,64 +338,64 @@ Response: { "objects": { "nodes": [ { - "version": 6, + "version": 1, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x33e71ed21f18a4581f5b9c4472a2ca5cfea62b674846bcdb59c1ce265cce7c65", - "value": "3" + "id": "0x1a52511867f48d7024447044500d117a88f7c6da82946c92c62ebb0b2b145b50", + "balance": { + "value": "300000000000000" + } } } }, { - "version": 5, + "version": 4, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x5941fbfba611b8863ab492e93f2865a53b3cb64680978fe7e30046e0e443a14c", - "value": "2" + "id": "0x4ceffd3c1ffcf8d9db9397c5751b07aa74ed80ce74f634983b91d94777565388", + "value": "1" } } }, { - "version": 1, + "version": 5, "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x8cc2a7bc18cb7b94bcd1dbd6e3acc7db8b447cfedbff284c230bf5c3423dafb8", - "balance": { - "value": "300000000000000" - } + "id": "0xa3c8a81b637d4b8a7ffae7d1f01de9d75b3e112ae34bcc2b027155a4006988a6", + "value": "2" } } }, { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xacaebcc5ec4007606fe12e5a5e2e5f08117b69a1230ec75d1c2dd04056d293fe", - "value": "0" + "id": "0xb7746e400cd5c28c808ff2a623e490441909a26ca33c292c271b07f19a4c9fc2", + "value": "3" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } } } @@ -406,15 +410,15 @@ Response: { "before_obj_6_0_at_checkpoint_2": { "nodes": [ { - "version": 6, + "version": 4, "asMoveObject": { "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x33e71ed21f18a4581f5b9c4472a2ca5cfea62b674846bcdb59c1ce265cce7c65", - "value": "3" + "id": "0x4ceffd3c1ffcf8d9db9397c5751b07aa74ed80ce74f634983b91d94777565388", + "value": "1" } }, "note_that_owner_result_should_reflect_latest_state": { @@ -422,64 +426,64 @@ Response: { "objects": { "nodes": [ { - "version": 6, + "version": 1, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x33e71ed21f18a4581f5b9c4472a2ca5cfea62b674846bcdb59c1ce265cce7c65", - "value": "3" + "id": "0x1a52511867f48d7024447044500d117a88f7c6da82946c92c62ebb0b2b145b50", + "balance": { + "value": "300000000000000" + } } } }, { - "version": 5, + "version": 4, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x5941fbfba611b8863ab492e93f2865a53b3cb64680978fe7e30046e0e443a14c", - "value": "2" + "id": "0x4ceffd3c1ffcf8d9db9397c5751b07aa74ed80ce74f634983b91d94777565388", + "value": "1" } } }, { - "version": 1, + "version": 5, "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x8cc2a7bc18cb7b94bcd1dbd6e3acc7db8b447cfedbff284c230bf5c3423dafb8", - "balance": { - "value": "300000000000000" - } + "id": "0xa3c8a81b637d4b8a7ffae7d1f01de9d75b3e112ae34bcc2b027155a4006988a6", + "value": "2" } } }, { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xacaebcc5ec4007606fe12e5a5e2e5f08117b69a1230ec75d1c2dd04056d293fe", - "value": "0" + "id": "0xb7746e400cd5c28c808ff2a623e490441909a26ca33c292c271b07f19a4c9fc2", + "value": "3" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } } } @@ -544,11 +548,11 @@ Response: { "version": 7, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x33e71ed21f18a4581f5b9c4472a2ca5cfea62b674846bcdb59c1ce265cce7c65", - "value": "3" + "id": "0x4ceffd3c1ffcf8d9db9397c5751b07aa74ed80ce74f634983b91d94777565388", + "value": "1" } } }, @@ -556,10 +560,10 @@ Response: { "version": 7, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x5941fbfba611b8863ab492e93f2865a53b3cb64680978fe7e30046e0e443a14c", + "id": "0xa3c8a81b637d4b8a7ffae7d1f01de9d75b3e112ae34bcc2b027155a4006988a6", "value": "2" } } @@ -568,11 +572,11 @@ Response: { "version": 7, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xacaebcc5ec4007606fe12e5a5e2e5f08117b69a1230ec75d1c2dd04056d293fe", - "value": "0" + "id": "0xb7746e400cd5c28c808ff2a623e490441909a26ca33c292c271b07f19a4c9fc2", + "value": "3" } } }, @@ -580,11 +584,11 @@ Response: { "version": 7, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } } } @@ -602,14 +606,14 @@ Response: { "objects": { "nodes": [ { - "version": 6, + "version": 4, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x33e71ed21f18a4581f5b9c4472a2ca5cfea62b674846bcdb59c1ce265cce7c65", - "value": "3" + "id": "0x4ceffd3c1ffcf8d9db9397c5751b07aa74ed80ce74f634983b91d94777565388", + "value": "1" } } }, @@ -617,35 +621,35 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0x5941fbfba611b8863ab492e93f2865a53b3cb64680978fe7e30046e0e443a14c", + "id": "0xa3c8a81b637d4b8a7ffae7d1f01de9d75b3e112ae34bcc2b027155a4006988a6", "value": "2" } } }, { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xacaebcc5ec4007606fe12e5a5e2e5f08117b69a1230ec75d1c2dd04056d293fe", - "value": "0" + "id": "0xb7746e400cd5c28c808ff2a623e490441909a26ca33c292c271b07f19a4c9fc2", + "value": "3" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xdba8b85775e730f7d15abfd3066668cf163cec980587f830f70a40d86b307fa0::M1::Object" + "repr": "0x8a6a975f939547bc1f7cb5ae18ff88c795bd82f8f97d08ba92d62960006db5da::M1::Object" }, "json": { - "id": "0xcbb00d35df539f6c42065d152c9482e80068279c542d32107a63e1b2c9847c74", - "value": "1" + "id": "0xd36ba5a78e30f00425481de74079d20d96c6b3e959dbdbcf99e0cb734a139b9d", + "value": "0" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination_single.exp b/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination_single.exp index 6682a18e477..c594117c98e 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination_single.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination_single.exp @@ -46,10 +46,10 @@ Response: { "version": 4, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "100" } } @@ -85,10 +85,10 @@ Response: { "version": 4, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "100" } } @@ -110,10 +110,10 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "200" } } @@ -122,10 +122,10 @@ Response: { "version": 4, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0xe277e2fb692fb19b24bc96a4274028492968520522cfde6ed40a06e89491d805", + "id": "0xc9109da65e12e07a685245507fe67841b63bbf2cd7d400516c77d65947b35a19", "value": "1" } } @@ -145,10 +145,10 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "200" } }, @@ -160,10 +160,10 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "200" } } @@ -172,10 +172,10 @@ Response: { "version": 4, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0xe277e2fb692fb19b24bc96a4274028492968520522cfde6ed40a06e89491d805", + "id": "0xc9109da65e12e07a685245507fe67841b63bbf2cd7d400516c77d65947b35a19", "value": "1" } } @@ -216,10 +216,10 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "200" } }, @@ -231,10 +231,10 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "200" } } @@ -243,10 +243,10 @@ Response: { "version": 4, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0xe277e2fb692fb19b24bc96a4274028492968520522cfde6ed40a06e89491d805", + "id": "0xc9109da65e12e07a685245507fe67841b63bbf2cd7d400516c77d65947b35a19", "value": "1" } } @@ -273,10 +273,10 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "200" } } @@ -285,10 +285,10 @@ Response: { "version": 6, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0xe277e2fb692fb19b24bc96a4274028492968520522cfde6ed40a06e89491d805", + "id": "0xc9109da65e12e07a685245507fe67841b63bbf2cd7d400516c77d65947b35a19", "value": "300" } } @@ -308,10 +308,10 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "200" } }, @@ -323,10 +323,10 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0x63ae6008d3ad559bf8baf6da9ebe7e2e416923783c40c88f6cf6143b8a906456", + "id": "0x0671f638c9a8072be327c0a5edb2238c33e2f051dbb7a9154c17d507e95fb77b", "value": "200" } } @@ -335,10 +335,10 @@ Response: { "version": 6, "contents": { "type": { - "repr": "0x1b6574e787bee3dca8a8ad61427d8b666736381ddbf63941be5c90841344da6a::M1::Object" + "repr": "0xe9f7963289f324cd270a9acebd20bd6311720b240cbb117ef556f300abaf089f::M1::Object" }, "json": { - "id": "0xe277e2fb692fb19b24bc96a4274028492968520522cfde6ed40a06e89491d805", + "id": "0xc9109da65e12e07a685245507fe67841b63bbf2cd7d400516c77d65947b35a19", "value": "300" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/performance/many_objects.exp b/crates/iota-graphql-e2e-tests/tests/consistency/performance/many_objects.exp index 9fe41ff7c64..4e3afbe7ef3 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/performance/many_objects.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/performance/many_objects.exp @@ -35,11 +35,11 @@ Response: { }, "contents": { "json": { - "id": "0xff813956ab016dfbb38f66c1aaa6faeefa61eae3a526db25047b349208e5bd8b", - "value": "292" + "id": "0xff39576b3855dc3ab3b4e4867613eb1bd5276f570bcd58f31a18a6f623a36aff", + "value": "340" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -54,11 +54,11 @@ Response: { }, "contents": { "json": { - "id": "0xffee188b3aeb59fb2129398728a72b5b9d39d56763a1b2ae54baeeb07b821b76", - "value": "198" + "id": "0xff3cc703d3b86054a49761ab7a448d6fe7b7ea0aa5ba4ba84e02093d1fd45e2b", + "value": "70" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -76,11 +76,11 @@ Response: { }, "contents": { "json": { - "id": "0xff0ffe140c36306443997c66f52ea7e535468be926015b951c06c846d65b729f", - "value": "179" + "id": "0xfefd3a70280fa3736ac30e69fbab1bddd7e8e06891e6d46ed0fdf8c56cdddf1a", + "value": "158" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } }, @@ -92,11 +92,11 @@ Response: { }, "contents": { "json": { - "id": "0xff5962b0d2d4a01e432f62939304c32ab0596f4f0852e9ee7b6d66e47e851350", - "value": "307" + "id": "0xff324921a4cfe105413f9fd991d67fa546f4ff473e18fb653201f504206aae7a", + "value": "25" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } }, @@ -108,11 +108,11 @@ Response: { }, "contents": { "json": { - "id": "0xff813956ab016dfbb38f66c1aaa6faeefa61eae3a526db25047b349208e5bd8b", - "value": "292" + "id": "0xff39576b3855dc3ab3b4e4867613eb1bd5276f570bcd58f31a18a6f623a36aff", + "value": "340" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } }, @@ -124,11 +124,11 @@ Response: { }, "contents": { "json": { - "id": "0xffee188b3aeb59fb2129398728a72b5b9d39d56763a1b2ae54baeeb07b821b76", - "value": "198" + "id": "0xff3cc703d3b86054a49761ab7a448d6fe7b7ea0aa5ba4ba84e02093d1fd45e2b", + "value": "70" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -163,7 +163,7 @@ Contents: Test::M1::Object { bytes: fake(2,498), }, }, - value: 292u64, + value: 340u64, } task 9, line 93: @@ -176,7 +176,7 @@ Contents: Test::M1::Object { bytes: fake(2,497), }, }, - value: 307u64, + value: 25u64, } task 10, line 95: @@ -199,11 +199,11 @@ Response: { }, "contents": { "json": { - "id": "0xff5962b0d2d4a01e432f62939304c32ab0596f4f0852e9ee7b6d66e47e851350", - "value": "307" + "id": "0xff324921a4cfe105413f9fd991d67fa546f4ff473e18fb653201f504206aae7a", + "value": "25" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -218,11 +218,11 @@ Response: { }, "contents": { "json": { - "id": "0xff813956ab016dfbb38f66c1aaa6faeefa61eae3a526db25047b349208e5bd8b", - "value": "292" + "id": "0xff39576b3855dc3ab3b4e4867613eb1bd5276f570bcd58f31a18a6f623a36aff", + "value": "340" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -237,11 +237,11 @@ Response: { }, "contents": { "json": { - "id": "0xffee188b3aeb59fb2129398728a72b5b9d39d56763a1b2ae54baeeb07b821b76", - "value": "198" + "id": "0xff3cc703d3b86054a49761ab7a448d6fe7b7ea0aa5ba4ba84e02093d1fd45e2b", + "value": "70" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -260,11 +260,11 @@ Response: { }, "contents": { "json": { - "id": "0xff0ffe140c36306443997c66f52ea7e535468be926015b951c06c846d65b729f", - "value": "179" + "id": "0xfefd3a70280fa3736ac30e69fbab1bddd7e8e06891e6d46ed0fdf8c56cdddf1a", + "value": "158" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -287,11 +287,11 @@ Response: { }, "contents": { "json": { - "id": "0xffee188b3aeb59fb2129398728a72b5b9d39d56763a1b2ae54baeeb07b821b76", - "value": "198" + "id": "0xff3cc703d3b86054a49761ab7a448d6fe7b7ea0aa5ba4ba84e02093d1fd45e2b", + "value": "70" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -305,11 +305,11 @@ Response: { }, "contents": { "json": { - "id": "0xffee188b3aeb59fb2129398728a72b5b9d39d56763a1b2ae54baeeb07b821b76", - "value": "198" + "id": "0xff3cc703d3b86054a49761ab7a448d6fe7b7ea0aa5ba4ba84e02093d1fd45e2b", + "value": "70" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -325,11 +325,11 @@ Response: { }, "contents": { "json": { - "id": "0xff5962b0d2d4a01e432f62939304c32ab0596f4f0852e9ee7b6d66e47e851350", - "value": "307" + "id": "0xff324921a4cfe105413f9fd991d67fa546f4ff473e18fb653201f504206aae7a", + "value": "25" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -343,11 +343,11 @@ Response: { }, "contents": { "json": { - "id": "0xff813956ab016dfbb38f66c1aaa6faeefa61eae3a526db25047b349208e5bd8b", - "value": "292" + "id": "0xff39576b3855dc3ab3b4e4867613eb1bd5276f570bcd58f31a18a6f623a36aff", + "value": "340" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -361,11 +361,11 @@ Response: { }, "contents": { "json": { - "id": "0xffee188b3aeb59fb2129398728a72b5b9d39d56763a1b2ae54baeeb07b821b76", - "value": "198" + "id": "0xff3cc703d3b86054a49761ab7a448d6fe7b7ea0aa5ba4ba84e02093d1fd45e2b", + "value": "70" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -383,11 +383,11 @@ Response: { }, "contents": { "json": { - "id": "0xff5962b0d2d4a01e432f62939304c32ab0596f4f0852e9ee7b6d66e47e851350", - "value": "307" + "id": "0xff324921a4cfe105413f9fd991d67fa546f4ff473e18fb653201f504206aae7a", + "value": "25" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -401,11 +401,11 @@ Response: { }, "contents": { "json": { - "id": "0xff813956ab016dfbb38f66c1aaa6faeefa61eae3a526db25047b349208e5bd8b", - "value": "292" + "id": "0xff39576b3855dc3ab3b4e4867613eb1bd5276f570bcd58f31a18a6f623a36aff", + "value": "340" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -419,11 +419,11 @@ Response: { }, "contents": { "json": { - "id": "0xffee188b3aeb59fb2129398728a72b5b9d39d56763a1b2ae54baeeb07b821b76", - "value": "198" + "id": "0xff3cc703d3b86054a49761ab7a448d6fe7b7ea0aa5ba4ba84e02093d1fd45e2b", + "value": "70" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } @@ -442,7 +442,7 @@ Response: { }, "contents": { "json": { - "id": "0x4b951f90683776987540a2067782edf3dd61c44a86469952b9f4570514bcf824", + "id": "0xd1bed9d8032538f51c93732600d7002478b40e2036b90c576fb76d589c03693d", "balance": { "value": "300000000000000" } @@ -461,11 +461,11 @@ Response: { }, "contents": { "json": { - "id": "0xff5962b0d2d4a01e432f62939304c32ab0596f4f0852e9ee7b6d66e47e851350", - "value": "307" + "id": "0xff324921a4cfe105413f9fd991d67fa546f4ff473e18fb653201f504206aae7a", + "value": "25" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } }, @@ -478,11 +478,11 @@ Response: { }, "contents": { "json": { - "id": "0xff813956ab016dfbb38f66c1aaa6faeefa61eae3a526db25047b349208e5bd8b", - "value": "292" + "id": "0xff39576b3855dc3ab3b4e4867613eb1bd5276f570bcd58f31a18a6f623a36aff", + "value": "340" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } }, @@ -495,11 +495,11 @@ Response: { }, "contents": { "json": { - "id": "0xffee188b3aeb59fb2129398728a72b5b9d39d56763a1b2ae54baeeb07b821b76", - "value": "198" + "id": "0xff3cc703d3b86054a49761ab7a448d6fe7b7ea0aa5ba4ba84e02093d1fd45e2b", + "value": "70" }, "type": { - "repr": "0x30df1e6fb3d98a6e42859613e6c3697f36d1e8000676be57b496518081bc7fcf::M1::Object" + "repr": "0x3b535629f01861a7b0b84cea477b926d350b1d3fb1ef5ed43c09b53d75992a16::M1::Object" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/staked_iota.exp b/crates/iota-graphql-e2e-tests/tests/consistency/staked_iota.exp index f903c004684..0ee9daff802 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/staked_iota.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/staked_iota.exp @@ -25,11 +25,11 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 3, line 25: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(2,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [195, 31, 89, 68, 25, 110, 110, 130, 15, 151, 96, 218, 107, 188, 216, 30, 11, 194, 226, 183, 85, 68, 74, 206, 105, 101, 238, 219, 200, 86, 235, 41, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 201, 73, 32, 135, 23, 121, 37, 7, 101, 40, 103, 216, 99, 155, 51, 118, 111, 115, 220, 44, 253, 144, 143, 80, 103, 133, 240, 58, 235, 137, 202, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(3,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(2,0) -gas summary: computation_cost: 1000000, storage_cost: 14523600, storage_rebate: 1976000, non_refundable_storage_fee: 0 +gas summary: computation_cost: 1000000, storage_cost: 14531200, storage_rebate: 1976000, non_refundable_storage_fee: 0 task 4, line 27: //# create-checkpoint @@ -49,11 +49,11 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 7, line 35: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(6,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [195, 31, 89, 68, 25, 110, 110, 130, 15, 151, 96, 218, 107, 188, 216, 30, 11, 194, 226, 183, 85, 68, 74, 206, 105, 101, 238, 219, 200, 86, 235, 41, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 201, 73, 32, 135, 23, 121, 37, 7, 101, 40, 103, 216, 99, 155, 51, 118, 111, 115, 220, 44, 253, 144, 143, 80, 103, 133, 240, 58, 235, 137, 202, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(7,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(6,0) -gas summary: computation_cost: 1000000, storage_cost: 14523600, storage_rebate: 14219600, non_refundable_storage_fee: 0 +gas summary: computation_cost: 1000000, storage_cost: 14531200, storage_rebate: 14227200, non_refundable_storage_fee: 0 task 8, line 37: //# create-checkpoint @@ -109,13 +109,13 @@ Response: { "stakedIotas": { "edges": [ { - "cursor": "ICzSs8gJrEchdo/v0DdIPKJpx37IypILVMI4TvKng3QUBAAAAAAAAAA=", + "cursor": "IEhTcCR8gCwWhb3Pa6IIeNcxMuM5/AQDAChvtODEIxaTBAAAAAAAAAA=", "node": { "principal": "10000000000" } }, { - "cursor": "IFF5UhjX3rRLZTF+xSVIhd3i8TMVBPfSBfA+kaN3yAjlBAAAAAAAAAA=", + "cursor": "IFWL5fMBAvjGqySaASRTzX8LCOJmSehFXfVOmHh0TLNgBAAAAAAAAAA=", "node": { "principal": "10000000000" } @@ -158,15 +158,10 @@ task 14, lines 105-148: Response: { "data": { "coins_after_obj_3_0_chkpt_3": { - "stakedIotas": { - "edges": [] - } - }, - "coins_before_obj_3_0_chkpt_3": { "stakedIotas": { "edges": [ { - "cursor": "ICzSs8gJrEchdo/v0DdIPKJpx37IypILVMI4TvKng3QUAwAAAAAAAAA=", + "cursor": "IFWL5fMBAvjGqySaASRTzX8LCOJmSehFXfVOmHh0TLNgAwAAAAAAAAA=", "node": { "principal": "10000000000" } @@ -174,22 +169,27 @@ Response: { ] } }, + "coins_before_obj_3_0_chkpt_3": { + "stakedIotas": { + "edges": [] + } + }, "coins_after_obj_7_0_chkpt_3": { + "stakedIotas": { + "edges": [] + } + }, + "coins_before_obj_7_0_chkpt_3": { "stakedIotas": { "edges": [ { - "cursor": "IFF5UhjX3rRLZTF+xSVIhd3i8TMVBPfSBfA+kaN3yAjlAwAAAAAAAAA=", + "cursor": "IEhTcCR8gCwWhb3Pa6IIeNcxMuM5/AQDAChvtODEIxaTAwAAAAAAAAA=", "node": { "principal": "10000000000" } } ] } - }, - "coins_before_obj_7_0_chkpt_3": { - "stakedIotas": { - "edges": [] - } } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/tx_address_objects.exp b/crates/iota-graphql-e2e-tests/tests/consistency/tx_address_objects.exp index b1fe2560fae..526361bab42 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/tx_address_objects.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/tx_address_objects.exp @@ -61,66 +61,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -136,66 +136,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -209,66 +209,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -284,7 +284,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x8cc2a7bc18cb7b94bcd1dbd6e3acc7db8b447cfedbff284c230bf5c3423dafb8", + "id": "0x1a52511867f48d7024447044500d117a88f7c6da82946c92c62ebb0b2b145b50", "balance": { "value": "299999993067600" } @@ -306,66 +306,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -390,66 +390,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -463,66 +463,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -538,7 +538,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x8cc2a7bc18cb7b94bcd1dbd6e3acc7db8b447cfedbff284c230bf5c3423dafb8", + "id": "0x1a52511867f48d7024447044500d117a88f7c6da82946c92c62ebb0b2b145b50", "balance": { "value": "300000000000000" } @@ -557,66 +557,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -630,66 +630,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -705,7 +705,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x8cc2a7bc18cb7b94bcd1dbd6e3acc7db8b447cfedbff284c230bf5c3423dafb8", + "id": "0x1a52511867f48d7024447044500d117a88f7c6da82946c92c62ebb0b2b145b50", "balance": { "value": "299999996697200" } @@ -724,66 +724,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -797,66 +797,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -872,7 +872,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x8cc2a7bc18cb7b94bcd1dbd6e3acc7db8b447cfedbff284c230bf5c3423dafb8", + "id": "0x1a52511867f48d7024447044500d117a88f7c6da82946c92c62ebb0b2b145b50", "balance": { "value": "299999993067600" } @@ -907,66 +907,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -982,66 +982,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -1055,66 +1055,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -1130,7 +1130,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x8cc2a7bc18cb7b94bcd1dbd6e3acc7db8b447cfedbff284c230bf5c3423dafb8", + "id": "0x1a52511867f48d7024447044500d117a88f7c6da82946c92c62ebb0b2b145b50", "balance": { "value": "299999993067600" } @@ -1152,66 +1152,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -1240,66 +1240,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -1313,66 +1313,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -1388,66 +1388,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -1461,66 +1461,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -1536,66 +1536,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } @@ -1609,66 +1609,66 @@ Response: { { "contents": { "json": { - "id": "0x3e31773929e57f6b6bc127c1c75d0f93187f424ddedfeecfee415c41e076ab70", - "value": "3" + "id": "0x03670d59eaf3d6f6f4e1e3d737cfc22a000228518fcbdeb9294e21660ba790e4", + "value": "5" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x6e7de18100be473275cca680e33552d179d96f35ff3ea376e55a7b2d14549704", - "value": "5" + "id": "0x0b0c19c7b09565e9d171b471c9411c3d1f421606794c08c06bebfcf6e1316102", + "value": "200" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0x95224ec845f5c539d5762a944b27a3812cba05c5a60fe093f75778f14a7ceeb8", - "value": "4" + "id": "0x7b7607e9627e9d5771e63c9f67731007eb12d2f8a8c62489cd9165adc8ec7c6e", + "value": "3" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xbe216314b6c4964fdfb35c444f5009270bd5c43845720b385e9fd995e5fe8b6a", - "value": "2" + "id": "0x939f020df3802bdcd23a366e95866c1381a3e252fd3ca3e74027a0ca81785828", + "value": "4" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xda9ff7009f9b3a75e184ec31f71630e078bdf13eea204b190a72dabb16042acc", - "value": "200" + "id": "0xe042e649e82db5a9d4458f42ca436cd7b05d1768c24d8cd62c9222d6b34f39e8", + "value": "6" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } }, { "contents": { "json": { - "id": "0xe870a50e4e89f5cf42a9a5e82bc742f2df46588b43356582752a789008f4130e", - "value": "6" + "id": "0xfa58cc5dff5e8fc5e20113a4b5bc500020d27d4a439dd0e8466cd16b9e7b31ff", + "value": "2" }, "type": { - "repr": "0xe0366adf7e24f087e37952e9a77cff47faa6fc9d8f1477941b71c0a641f4e0d5::M1::Object" + "repr": "0x519f3c650d15cdc76e0b73e4cd86cf1b3d7f98546b108a9de10de897a16f1f85::M1::Object" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/epoch/chain_identifier.exp b/crates/iota-graphql-e2e-tests/tests/epoch/chain_identifier.exp index e4a97219410..7e13bf68c0c 100644 --- a/crates/iota-graphql-e2e-tests/tests/epoch/chain_identifier.exp +++ b/crates/iota-graphql-e2e-tests/tests/epoch/chain_identifier.exp @@ -11,6 +11,6 @@ task 2, lines 10-13: //# run-graphql Response: { "data": { - "chainIdentifier": "08ff9a17" + "chainIdentifier": "408a17e4" } } diff --git a/crates/iota-graphql-e2e-tests/tests/epoch/epoch.exp b/crates/iota-graphql-e2e-tests/tests/epoch/epoch.exp index 178178d4fa9..0033479dd44 100644 --- a/crates/iota-graphql-e2e-tests/tests/epoch/epoch.exp +++ b/crates/iota-graphql-e2e-tests/tests/epoch/epoch.exp @@ -21,11 +21,11 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 4, lines 17-19: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(3,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [195, 31, 89, 68, 25, 110, 110, 130, 15, 151, 96, 218, 107, 188, 216, 30, 11, 194, 226, 183, 85, 68, 74, 206, 105, 101, 238, 219, 200, 86, 235, 41, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 201, 73, 32, 135, 23, 121, 37, 7, 101, 40, 103, 216, 99, 155, 51, 118, 111, 115, 220, 44, 253, 144, 143, 80, 103, 133, 240, 58, 235, 137, 202, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(4,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(3,0) -gas summary: computation_cost: 1000000, storage_cost: 14523600, storage_rebate: 1976000, non_refundable_storage_fee: 0 +gas summary: computation_cost: 1000000, storage_cost: 14531200, storage_rebate: 1976000, non_refundable_storage_fee: 0 task 5, line 20: //# create-checkpoint @@ -67,11 +67,11 @@ Response: { ] }, "validatorCandidatesSize": 0, - "inactivePoolsId": "0xcc5aa3c1498a06b9bfb7843603ee404c2e785fdb0728d19043fc61b8958c64f7" + "inactivePoolsId": "0x48b495a9f2c67e307895dec692c61488d4a82e2a1219fc6d8a2f56b5adb66dce" }, "totalGasFees": "1000000", "totalStakeRewards": "767000000000000", - "fundSize": "14523600", + "fundSize": "14531200", "fundInflow": "1976000", "fundOutflow": "988000", "netInflow": "988000", @@ -81,7 +81,7 @@ Response: { "kind": { "__typename": "ProgrammableTransactionBlock" }, - "digest": "2A52c7qkFkCdhtN71hqm5GawFSzH4xWXt3BiUnbY87PX" + "digest": "EM966soJNHr5FPxc8yeuqkUmiuHcgMRtcKBAJgWbbQCj" }, { "kind": { diff --git a/crates/iota-graphql-e2e-tests/tests/epoch/system_state.exp b/crates/iota-graphql-e2e-tests/tests/epoch/system_state.exp index e18544be743..ddc5f1ae92a 100644 --- a/crates/iota-graphql-e2e-tests/tests/epoch/system_state.exp +++ b/crates/iota-graphql-e2e-tests/tests/epoch/system_state.exp @@ -21,11 +21,11 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 4, line 19: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(3,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [47, 15, 10, 57, 141, 19, 131, 181, 87, 30, 102, 210, 169, 49, 11, 236, 88, 192, 83, 44, 104, 86, 198, 204, 151, 94, 72, 157, 170, 19, 81, 134, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [82, 156, 67, 66, 179, 182, 139, 22, 41, 95, 18, 92, 229, 180, 139, 208, 171, 130, 171, 230, 62, 173, 24, 194, 70, 211, 255, 135, 134, 155, 120, 225, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(4,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(3,0) -gas summary: computation_cost: 1000000, storage_cost: 14523600, storage_rebate: 1976000, non_refundable_storage_fee: 0 +gas summary: computation_cost: 1000000, storage_cost: 14531200, storage_rebate: 1976000, non_refundable_storage_fee: 0 task 5, line 21: //# create-checkpoint @@ -61,11 +61,11 @@ Epoch advanced: 3 task 12, line 37: //# run 0x3::iota_system::request_withdraw_stake --args object(0x5) object(4,0) --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("UnstakingRequestEvent"), type_params: [] }, contents: [47, 15, 10, 57, 141, 19, 131, 181, 87, 30, 102, 210, 169, 49, 11, 236, 88, 192, 83, 44, 104, 86, 198, 204, 151, 94, 72, 157, 170, 19, 81, 134, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0, 12, 33, 189, 38, 1, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("UnstakingRequestEvent"), type_params: [] }, contents: [82, 156, 67, 66, 179, 182, 139, 22, 41, 95, 18, 92, 229, 180, 139, 208, 171, 130, 171, 230, 62, 173, 24, 194, 70, 211, 255, 135, 134, 155, 120, 225, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0, 12, 33, 189, 38, 1, 0, 0, 0] } created: object(12,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(4,0) -gas summary: computation_cost: 1000000, storage_cost: 14219600, storage_rebate: 14523600, non_refundable_storage_fee: 0 +gas summary: computation_cost: 1000000, storage_cost: 14227200, storage_rebate: 14531200, non_refundable_storage_fee: 0 task 13, line 39: //# create-checkpoint @@ -99,7 +99,7 @@ Response: { "epochId": 4, "systemStateVersion": 1, "storageFund": { - "totalObjectStorageRebates": "15207600", + "totalObjectStorageRebates": "15215200", "nonRefundableBalance": "0" } } @@ -114,7 +114,7 @@ Response: { "epochId": 3, "systemStateVersion": 1, "storageFund": { - "totalObjectStorageRebates": "15511600", + "totalObjectStorageRebates": "15519200", "nonRefundableBalance": "0" } } @@ -129,7 +129,7 @@ Response: { "epochId": 2, "systemStateVersion": 1, "storageFund": { - "totalObjectStorageRebates": "14523600", + "totalObjectStorageRebates": "14531200", "nonRefundableBalance": "0" } } @@ -144,7 +144,7 @@ Response: { "epochId": 1, "systemStateVersion": 1, "storageFund": { - "totalObjectStorageRebates": "14523600", + "totalObjectStorageRebates": "14531200", "nonRefundableBalance": "0" } } @@ -159,7 +159,7 @@ Response: { "epochId": 4, "systemStateVersion": 1, "storageFund": { - "totalObjectStorageRebates": "15207600", + "totalObjectStorageRebates": "15215200", "nonRefundableBalance": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/errors/clever_errors.exp b/crates/iota-graphql-e2e-tests/tests/errors/clever_errors.exp index 12d61755a32..55e01b58be2 100644 --- a/crates/iota-graphql-e2e-tests/tests/errors/clever_errors.exp +++ b/crates/iota-graphql-e2e-tests/tests/errors/clever_errors.exp @@ -77,67 +77,67 @@ Response: { { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::callU8' (line 30), abort 'ImAU8': 0" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::callU8' (line 30), abort 'ImAU8': 0" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::callU16' (line 33), abort 'ImAU16': 1" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::callU16' (line 33), abort 'ImAU16': 1" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::callU32' (line 36), abort 'ImAU32': 2" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::callU32' (line 36), abort 'ImAU32': 2" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::callU64' (line 39), abort 'ImAU64': 3" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::callU64' (line 39), abort 'ImAU64': 3" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::callU128' (line 42), abort 'ImAU128': 4" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::callU128' (line 42), abort 'ImAU128': 4" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::callU256' (line 45), abort 'ImAU256': 5" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::callU256' (line 45), abort 'ImAU256': 5" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::callAddress' (line 48), abort 'ImAnAddress': 0x0000000000000000000000000000000000000000000000000000000000000006" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::callAddress' (line 48), abort 'ImAnAddress': 0x0000000000000000000000000000000000000000000000000000000000000006" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::callString' (line 51), abort 'ImAString': This is a string" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::callString' (line 51), abort 'ImAString': This is a string" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::callU64vec' (line 54), abort 'ImNotAString': BQEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAA=" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::callU64vec' (line 54), abort 'ImNotAString': BQEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAA=" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::normalAbort' (instruction 1), abort code: 0" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::normalAbort' (instruction 1), abort code: 0" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x74140215062cd1c50df47029aa245edb5787f96488aee14eeff4051c404ae533::m::assertLineNo' (line 60)" + "errors": "Error in 1st command, from '0x4d8347292ced5fc2d16559de30dc29c5e40604f152c3d0c04e184c47504a9bb3::m::assertLineNo' (line 60)" } } ] @@ -248,7 +248,7 @@ Response: { }, "errors": [ { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 3ce7fc3910a6fc691c5ebca31d1a2faf84c63b1cf472a34b2eabf5194b8c7b1b", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 8547f1fdaa1bfb4aabc532741f60fe6b60eeb7f5c15210f828c4fde375d99d86", "locations": [ { "line": 6, @@ -264,7 +264,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 3ce7fc3910a6fc691c5ebca31d1a2faf84c63b1cf472a34b2eabf5194b8c7b1b", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 8547f1fdaa1bfb4aabc532741f60fe6b60eeb7f5c15210f828c4fde375d99d86", "locations": [ { "line": 6, @@ -280,7 +280,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 3ce7fc3910a6fc691c5ebca31d1a2faf84c63b1cf472a34b2eabf5194b8c7b1b", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 8547f1fdaa1bfb4aabc532741f60fe6b60eeb7f5c15210f828c4fde375d99d86", "locations": [ { "line": 6, @@ -296,7 +296,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 3ce7fc3910a6fc691c5ebca31d1a2faf84c63b1cf472a34b2eabf5194b8c7b1b", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 8547f1fdaa1bfb4aabc532741f60fe6b60eeb7f5c15210f828c4fde375d99d86", "locations": [ { "line": 6, @@ -312,7 +312,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 3ce7fc3910a6fc691c5ebca31d1a2faf84c63b1cf472a34b2eabf5194b8c7b1b", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 8547f1fdaa1bfb4aabc532741f60fe6b60eeb7f5c15210f828c4fde375d99d86", "locations": [ { "line": 6, @@ -328,7 +328,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 3ce7fc3910a6fc691c5ebca31d1a2faf84c63b1cf472a34b2eabf5194b8c7b1b", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 8547f1fdaa1bfb4aabc532741f60fe6b60eeb7f5c15210f828c4fde375d99d86", "locations": [ { "line": 6, @@ -344,7 +344,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 3ce7fc3910a6fc691c5ebca31d1a2faf84c63b1cf472a34b2eabf5194b8c7b1b", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 8547f1fdaa1bfb4aabc532741f60fe6b60eeb7f5c15210f828c4fde375d99d86", "locations": [ { "line": 6, @@ -360,7 +360,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 3ce7fc3910a6fc691c5ebca31d1a2faf84c63b1cf472a34b2eabf5194b8c7b1b", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 8547f1fdaa1bfb4aabc532741f60fe6b60eeb7f5c15210f828c4fde375d99d86", "locations": [ { "line": 6, @@ -376,7 +376,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 3ce7fc3910a6fc691c5ebca31d1a2faf84c63b1cf472a34b2eabf5194b8c7b1b", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 8547f1fdaa1bfb4aabc532741f60fe6b60eeb7f5c15210f828c4fde375d99d86", "locations": [ { "line": 6, diff --git a/crates/iota-graphql-e2e-tests/tests/errors/clever_errors_in_macros.exp b/crates/iota-graphql-e2e-tests/tests/errors/clever_errors_in_macros.exp index 32ecf97944f..9bb756d0b4d 100644 --- a/crates/iota-graphql-e2e-tests/tests/errors/clever_errors_in_macros.exp +++ b/crates/iota-graphql-e2e-tests/tests/errors/clever_errors_in_macros.exp @@ -37,19 +37,19 @@ Response: { { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x39bf4f1f4756aaf178d78e475c72a4ae85262b67fed92d1af2c897db856c40c2::m::t_a' (line 21)" + "errors": "Error in 1st command, from '0x1892a647f981d763ff1f6a2f372a1936401ddd233985c3c7ac0d17d220cf883f::m::t_a' (line 21)" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x39bf4f1f4756aaf178d78e475c72a4ae85262b67fed92d1af2c897db856c40c2::m::t_calls_a' (line 24)" + "errors": "Error in 1st command, from '0x1892a647f981d763ff1f6a2f372a1936401ddd233985c3c7ac0d17d220cf883f::m::t_calls_a' (line 24)" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x39bf4f1f4756aaf178d78e475c72a4ae85262b67fed92d1af2c897db856c40c2::m::t_const_assert' (line 10), abort 'EMsg': This is a string" + "errors": "Error in 1st command, from '0x1892a647f981d763ff1f6a2f372a1936401ddd233985c3c7ac0d17d220cf883f::m::t_const_assert' (line 10), abort 'EMsg': This is a string" } } ] diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/event_connection.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/event_connection.exp index 321e1b0ba81..83393190f54 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/event_connection.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/event_connection.exp @@ -62,7 +62,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::EventA" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -80,7 +80,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::EventB<0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::Object>" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::EventB<0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -98,7 +98,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M2::EventA" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M2::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -116,7 +116,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M2::EventB<0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M2::Object>" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M2::EventB<0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M2::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -145,7 +145,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::EventA" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -163,7 +163,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::EventB<0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::Object>" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::EventB<0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -181,7 +181,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M2::EventA" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M2::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -199,7 +199,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M2::EventB<0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M2::Object>" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M2::EventB<0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M2::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -228,7 +228,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::EventA" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -246,7 +246,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::EventB<0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::Object>" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::EventB<0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -275,7 +275,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::EventA" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -304,7 +304,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::EventB<0x03cf03f4e44a11ac0c3a055329f194752be7159926a548b0ff4aedee3c8401f6::M1::Object>" + "repr": "0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::EventB<0x8606f8cf4d3b368062f79e3d892075c6ce1f74c586807b7b6b21fca2d2db0b09::M1::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/nested_emit_event.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/nested_emit_event.exp index 82ef64a1e28..540b05e4202 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/nested_emit_event.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/nested_emit_event.exp @@ -30,7 +30,7 @@ Response: { "name": "M3" }, "type": { - "repr": "0x43bcc248318ba2b0990271957c0f0149cb0df5f31b6773c5e19072c3c49ae2f2::M1::EventA" + "repr": "0x99b61e0b8d77de3f661ca7da3c101c458f54effd266f7e0850f25c7f43bac694::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -56,7 +56,7 @@ Response: { "name": "M3" }, "type": { - "repr": "0x43bcc248318ba2b0990271957c0f0149cb0df5f31b6773c5e19072c3c49ae2f2::M1::EventA" + "repr": "0x99b61e0b8d77de3f661ca7da3c101c458f54effd266f7e0850f25c7f43bac694::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -102,7 +102,7 @@ Response: { "name": "M3" }, "type": { - "repr": "0x43bcc248318ba2b0990271957c0f0149cb0df5f31b6773c5e19072c3c49ae2f2::M1::EventA" + "repr": "0x99b61e0b8d77de3f661ca7da3c101c458f54effd266f7e0850f25c7f43bac694::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/no_filter.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/no_filter.exp index d01197e6dd1..750ac3958b3 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/no_filter.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/no_filter.exp @@ -33,12 +33,12 @@ Response: { "nodes": [ { "json": { - "id": "0xd67b5c6cd9e27cd7d728519d60fdbb215c6d93da1b7778181f5ab263507248b3" + "id": "0x7d4c1fe3f73cdd9531f795b56fb6ad1cbbc4a14efff6af465256be7c52c0d404" } }, { "json": { - "id": "0xd67b5c6cd9e27cd7d728519d60fdbb215c6d93da1b7778181f5ab263507248b3", + "id": "0x7d4c1fe3f73cdd9531f795b56fb6ad1cbbc4a14efff6af465256be7c52c0d404", "version": 1, "fields": { "contents": [ diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/pagination.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/pagination.exp index 91fd65462c5..9e0419896c1 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/pagination.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/pagination.exp @@ -42,7 +42,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x88c76c8a87b5523989bfccc67fce960ffe928809482cbb9d93645d166ae410c8::M1::EventA" + "repr": "0xfd2d034e09aa942c0bdbde7bc0ee8e69fd0ae0e54ddb50fb9d86e32921459b4d::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -60,7 +60,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x88c76c8a87b5523989bfccc67fce960ffe928809482cbb9d93645d166ae410c8::M1::EventA" + "repr": "0xfd2d034e09aa942c0bdbde7bc0ee8e69fd0ae0e54ddb50fb9d86e32921459b4d::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -78,7 +78,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x88c76c8a87b5523989bfccc67fce960ffe928809482cbb9d93645d166ae410c8::M1::EventA" + "repr": "0xfd2d034e09aa942c0bdbde7bc0ee8e69fd0ae0e54ddb50fb9d86e32921459b4d::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -111,7 +111,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x88c76c8a87b5523989bfccc67fce960ffe928809482cbb9d93645d166ae410c8::M1::EventA" + "repr": "0xfd2d034e09aa942c0bdbde7bc0ee8e69fd0ae0e54ddb50fb9d86e32921459b4d::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -129,7 +129,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x88c76c8a87b5523989bfccc67fce960ffe928809482cbb9d93645d166ae410c8::M1::EventA" + "repr": "0xfd2d034e09aa942c0bdbde7bc0ee8e69fd0ae0e54ddb50fb9d86e32921459b4d::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -162,7 +162,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x88c76c8a87b5523989bfccc67fce960ffe928809482cbb9d93645d166ae410c8::M1::EventA" + "repr": "0xfd2d034e09aa942c0bdbde7bc0ee8e69fd0ae0e54ddb50fb9d86e32921459b4d::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -180,7 +180,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x88c76c8a87b5523989bfccc67fce960ffe928809482cbb9d93645d166ae410c8::M1::EventA" + "repr": "0xfd2d034e09aa942c0bdbde7bc0ee8e69fd0ae0e54ddb50fb9d86e32921459b4d::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -213,7 +213,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x88c76c8a87b5523989bfccc67fce960ffe928809482cbb9d93645d166ae410c8::M1::EventA" + "repr": "0xfd2d034e09aa942c0bdbde7bc0ee8e69fd0ae0e54ddb50fb9d86e32921459b4d::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -231,7 +231,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x88c76c8a87b5523989bfccc67fce960ffe928809482cbb9d93645d166ae410c8::M1::EventA" + "repr": "0xfd2d034e09aa942c0bdbde7bc0ee8e69fd0ae0e54ddb50fb9d86e32921459b4d::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.exp index 82b88b85aa9..9988f387e91 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.exp @@ -37,19 +37,19 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "J2ipHUWhTfsoqMAG5AfXSsKG73c3oSqsxwQns9WP7WKv" + "digest": "6jJ5GyPr9B7aW4NTEwGJUeWX9RT2pjnXL1by8J2Qk7xV" }, { - "digest": "F8z11KNSYyUsBD9ggqQkqm4AgDGgVvfzDntJMW8Z5a3j" + "digest": "A7J7tmEk4Kceps4eLVsZa64cajF6SpvEKRUbRN33rRDi" }, { - "digest": "8h2qDXpVYkN95m5SupmMWFJfHw2x9GTESNsw5nnL9j4N" + "digest": "dF5dZTYwVWLpHk1YmZXxdmmNMKiG5SPcUExet74jNbK" }, { - "digest": "3UpQ5k6ubWDEsCGeh39ZD7wRk8mx7LEHM7bxVC1kL1pc" + "digest": "CdAwFF4z5yJrnXiW355M5RoMJmDH8QoepxEn2RVYYUnD" }, { - "digest": "BLYdLfV5uMQrev9TDtkKbcDoz74NJ76yjCyEBnhgWueE" + "digest": "3fQU9EzJK2yvix8asgCZCwv68ugGPWqxjxuhYrPvDm8n" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.move b/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.move index d21ac5cdbcd..8ffa98e143d 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.move +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.move @@ -47,7 +47,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 4th transaction returned by # task 6 (see `tx_digest.exp`) - events(filter: {transactionDigest: "3UpQ5k6ubWDEsCGeh39ZD7wRk8mx7LEHM7bxVC1kL1pc"}) { + events(filter: {transactionDigest: "CdAwFF4z5yJrnXiW355M5RoMJmDH8QoepxEn2RVYYUnD"}) { edges { cursor node { @@ -62,7 +62,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 4th transaction returned by # task 6 (see `tx_digest.exp`) - events(after: "@{cursor_0}" filter: {transactionDigest: "3UpQ5k6ubWDEsCGeh39ZD7wRk8mx7LEHM7bxVC1kL1pc"}) { + events(after: "@{cursor_0}" filter: {transactionDigest: "CdAwFF4z5yJrnXiW355M5RoMJmDH8QoepxEn2RVYYUnD"}) { edges { cursor node { @@ -79,7 +79,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 4th transaction returned by # task 6 (see `tx_digest.exp`) - events(after: "@{cursor_0}" filter: {transactionDigest: "3UpQ5k6ubWDEsCGeh39ZD7wRk8mx7LEHM7bxVC1kL1pc"}) { + events(after: "@{cursor_0}" filter: {transactionDigest: "CdAwFF4z5yJrnXiW355M5RoMJmDH8QoepxEn2RVYYUnD"}) { edges { cursor node { @@ -94,7 +94,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 5th transaction returned by # task 6 (see `tx_digest.exp`) - events(filter: {transactionDigest: "BLYdLfV5uMQrev9TDtkKbcDoz74NJ76yjCyEBnhgWueE"}) { + events(filter: {transactionDigest: "3fQU9EzJK2yvix8asgCZCwv68ugGPWqxjxuhYrPvDm8n"}) { edges { cursor node { @@ -108,7 +108,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 5th transaction returned by # task 6 (see `tx_digest.exp`) - events(after: "@{cursor_0}" filter: {transactionDigest: "BLYdLfV5uMQrev9TDtkKbcDoz74NJ76yjCyEBnhgWueE"}) { + events(after: "@{cursor_0}" filter: {transactionDigest: "3fQU9EzJK2yvix8asgCZCwv68ugGPWqxjxuhYrPvDm8n"}) { edges { cursor node { @@ -123,7 +123,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 4th transaction returned by # task 6 (see `tx_digest.exp`) - events(last: 10 filter: {transactionDigest: "3UpQ5k6ubWDEsCGeh39ZD7wRk8mx7LEHM7bxVC1kL1pc"}) { + events(last: 10 filter: {transactionDigest: "CdAwFF4z5yJrnXiW355M5RoMJmDH8QoepxEn2RVYYUnD"}) { edges { cursor node { @@ -138,7 +138,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 4th transaction returned by # task 6 (see `tx_digest.exp`) - events(last: 10 before: "@{cursor_0}" filter: {transactionDigest: "3UpQ5k6ubWDEsCGeh39ZD7wRk8mx7LEHM7bxVC1kL1pc"}) { + events(last: 10 before: "@{cursor_0}" filter: {transactionDigest: "CdAwFF4z5yJrnXiW355M5RoMJmDH8QoepxEn2RVYYUnD"}) { edges { cursor node { @@ -155,7 +155,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 4th transaction returned by # task 6 (see `tx_digest.exp`) - events(last: 10 before: "@{cursor_0}" filter: {transactionDigest: "3UpQ5k6ubWDEsCGeh39ZD7wRk8mx7LEHM7bxVC1kL1pc"}) { + events(last: 10 before: "@{cursor_0}" filter: {transactionDigest: "CdAwFF4z5yJrnXiW355M5RoMJmDH8QoepxEn2RVYYUnD"}) { edges { cursor node { @@ -170,7 +170,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 5th transaction returned by # task 6 (see `tx_digest.exp`) - events(last: 10 filter: {transactionDigest: "BLYdLfV5uMQrev9TDtkKbcDoz74NJ76yjCyEBnhgWueE"}) { + events(last: 10 filter: {transactionDigest: "3fQU9EzJK2yvix8asgCZCwv68ugGPWqxjxuhYrPvDm8n"}) { edges { cursor node { @@ -184,7 +184,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 5th transaction returned by # task 6 (see `tx_digest.exp`) - events(last: 10 before: "@{cursor_0}" filter: {transactionDigest: "BLYdLfV5uMQrev9TDtkKbcDoz74NJ76yjCyEBnhgWueE"}) { + events(last: 10 before: "@{cursor_0}" filter: {transactionDigest: "3fQU9EzJK2yvix8asgCZCwv68ugGPWqxjxuhYrPvDm8n"}) { edges { cursor node { @@ -199,7 +199,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 4th transaction returned by # task 6 (see `tx_digest.exp`) - events(filter: {sender: "@{A}" transactionDigest: "3UpQ5k6ubWDEsCGeh39ZD7wRk8mx7LEHM7bxVC1kL1pc"}) { + events(filter: {sender: "@{A}" transactionDigest: "CdAwFF4z5yJrnXiW355M5RoMJmDH8QoepxEn2RVYYUnD"}) { edges { cursor node { @@ -214,7 +214,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 5th transaction returned by # task 6 (see `tx_digest.exp`) - events(filter: {sender: "@{B}" transactionDigest: "BLYdLfV5uMQrev9TDtkKbcDoz74NJ76yjCyEBnhgWueE"}) { + events(filter: {sender: "@{B}" transactionDigest: "3fQU9EzJK2yvix8asgCZCwv68ugGPWqxjxuhYrPvDm8n"}) { edges { cursor node { @@ -229,7 +229,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 4th transaction returned by # task 6 (see `tx_digest.exp`) - events(filter: {sender: "@{B}" transactionDigest: "3UpQ5k6ubWDEsCGeh39ZD7wRk8mx7LEHM7bxVC1kL1pc"}) { + events(filter: {sender: "@{B}" transactionDigest: "CdAwFF4z5yJrnXiW355M5RoMJmDH8QoepxEn2RVYYUnD"}) { edges { cursor node { @@ -244,7 +244,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 5th transaction returned by # task 6 (see `tx_digest.exp`) - events(filter: {sender: "@{A}" transactionDigest: "BLYdLfV5uMQrev9TDtkKbcDoz74NJ76yjCyEBnhgWueE"}) { + events(filter: {sender: "@{A}" transactionDigest: "3fQU9EzJK2yvix8asgCZCwv68ugGPWqxjxuhYrPvDm8n"}) { edges { cursor node { diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/type_filter.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/type_filter.exp index ff74717b3ca..cb9459b134c 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/type_filter.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/type_filter.exp @@ -30,7 +30,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x49284428bcccf61063870e5ab7607536c4c0bd77161b34f669cbb3bfe40a15c1::M1::EventA" + "repr": "0x34e8ec3870c570f5dfcb93edb6490bbd005470d1750aa8cd089405c22638de10::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -72,7 +72,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x49284428bcccf61063870e5ab7607536c4c0bd77161b34f669cbb3bfe40a15c1::M1::EventA" + "repr": "0x34e8ec3870c570f5dfcb93edb6490bbd005470d1750aa8cd089405c22638de10::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -98,7 +98,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x49284428bcccf61063870e5ab7607536c4c0bd77161b34f669cbb3bfe40a15c1::M2::EventB" + "repr": "0x34e8ec3870c570f5dfcb93edb6490bbd005470d1750aa8cd089405c22638de10::M2::EventB" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -124,7 +124,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x49284428bcccf61063870e5ab7607536c4c0bd77161b34f669cbb3bfe40a15c1::M1::EventA" + "repr": "0x34e8ec3870c570f5dfcb93edb6490bbd005470d1750aa8cd089405c22638de10::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -139,7 +139,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x49284428bcccf61063870e5ab7607536c4c0bd77161b34f669cbb3bfe40a15c1::M2::EventB" + "repr": "0x34e8ec3870c570f5dfcb93edb6490bbd005470d1750aa8cd089405c22638de10::M2::EventB" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -165,7 +165,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x49284428bcccf61063870e5ab7607536c4c0bd77161b34f669cbb3bfe40a15c1::M1::EventA" + "repr": "0x34e8ec3870c570f5dfcb93edb6490bbd005470d1750aa8cd089405c22638de10::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -180,7 +180,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x49284428bcccf61063870e5ab7607536c4c0bd77161b34f669cbb3bfe40a15c1::M2::EventB" + "repr": "0x34e8ec3870c570f5dfcb93edb6490bbd005470d1750aa8cd089405c22638de10::M2::EventB" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -195,7 +195,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x49284428bcccf61063870e5ab7607536c4c0bd77161b34f669cbb3bfe40a15c1::M2::EventB" + "repr": "0x34e8ec3870c570f5dfcb93edb6490bbd005470d1750aa8cd089405c22638de10::M2::EventB" }, "sender": { "address": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.exp index bb10e9510cd..013bf75c6e8 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.exp @@ -38,19 +38,19 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "J2ipHUWhTfsoqMAG5AfXSsKG73c3oSqsxwQns9WP7WKv" + "digest": "6jJ5GyPr9B7aW4NTEwGJUeWX9RT2pjnXL1by8J2Qk7xV" }, { - "digest": "4xfhbjq2tmnU63qBvJmNoVHkn6ZDpc5tM7um5KZmcbD6" + "digest": "3MojqwweH6phoNyB1zL7YYSV16jdzCcVjiWRa7swMNt5" }, { - "digest": "7KMh62FuUiuURWVLJ2h5u7x5HevR8xbM9cH1TJQpaCyJ" + "digest": "4VqNbcTqjtcp7DrxPGfwKxeH9TqKJEQbPfQRN3A2o758" }, { - "digest": "Ey8hFbd31T3ADiCyEDHAbQiEf4jTTguLAvwVU1ecZbmZ" + "digest": "5EtTmeNBQkGCfRsWSd7LbchmfAP4z7EFNw9UdTdUsCe4" }, { - "digest": "AQdZp8NXSwowHBawy2qpoyST1LTpFLKr6uRyPAZ4LuZN" + "digest": "36CS8fvTg5HVKadCKmzWu6bwh9fJfbQZermzUepoYCmB" } ] } @@ -65,7 +65,7 @@ Response: { "nodes": [ { "type": { - "repr": "0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::EventA<0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::T1>" + "repr": "0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::EventA<0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::T1>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -78,7 +78,7 @@ Response: { }, { "type": { - "repr": "0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::EventA<0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::T2>" + "repr": "0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::EventA<0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::T2>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -91,7 +91,7 @@ Response: { }, { "type": { - "repr": "0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::EventA<0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::T1>" + "repr": "0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::EventA<0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::T1>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -104,7 +104,7 @@ Response: { }, { "type": { - "repr": "0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::EventA<0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::T2>" + "repr": "0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::EventA<0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::T2>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -128,7 +128,7 @@ Response: { "nodes": [ { "type": { - "repr": "0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::EventA<0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::T1>" + "repr": "0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::EventA<0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::T1>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -141,7 +141,7 @@ Response: { }, { "type": { - "repr": "0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::EventA<0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::T1>" + "repr": "0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::EventA<0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::T1>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -165,7 +165,7 @@ Response: { "nodes": [ { "type": { - "repr": "0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::EventA<0x99e00ccb32fb943aafc2abe1722722f9ae1557e3efe3196623d9631c7286f2dd::M1::T2>" + "repr": "0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::EventA<0x68c7719354e9fcaf73a654f2bf09268dd36102a769534c79df0a818174421835::M1::T2>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.move b/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.move index e3a06262c11..481961bae78 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.move +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.move @@ -81,7 +81,7 @@ module Test::M1 { { # `transactionDigest` is the digest of the 5th transaction returned from # task 6 (see `type_param_filter.exp`) - events(filter: {eventType: "@{Test}::M1::EventA<@{Test}::M1::T2>", transactionDigest: "AQdZp8NXSwowHBawy2qpoyST1LTpFLKr6uRyPAZ4LuZN"}) { + events(filter: {eventType: "@{Test}::M1::EventA<@{Test}::M1::T2>", transactionDigest: "36CS8fvTg5HVKadCKmzWu6bwh9fJfbQZermzUepoYCmB"}) { nodes { type { repr diff --git a/crates/iota-graphql-e2e-tests/tests/limits/directives.exp b/crates/iota-graphql-e2e-tests/tests/limits/directives.exp index 7127ef4b2f8..89e3e1fee18 100644 --- a/crates/iota-graphql-e2e-tests/tests/limits/directives.exp +++ b/crates/iota-graphql-e2e-tests/tests/limits/directives.exp @@ -73,7 +73,7 @@ task 5, lines 59-63: //# run-graphql Response: { "data": { - "chainIdentifier": "08ff9a17" + "chainIdentifier": "408a17e4" } } @@ -81,7 +81,7 @@ task 6, lines 65-69: //# run-graphql Response: { "data": { - "chainIdentifier": "08ff9a17" + "chainIdentifier": "408a17e4" } } diff --git a/crates/iota-graphql-e2e-tests/tests/limits/output_node_estimation.exp b/crates/iota-graphql-e2e-tests/tests/limits/output_node_estimation.exp index c8b4503eabe..7692d05e7ef 100644 --- a/crates/iota-graphql-e2e-tests/tests/limits/output_node_estimation.exp +++ b/crates/iota-graphql-e2e-tests/tests/limits/output_node_estimation.exp @@ -30,7 +30,7 @@ Response: { "edges": [ { "node": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } } ] @@ -59,7 +59,7 @@ Response: { "edges": [ { "txns": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } } ] @@ -91,7 +91,7 @@ Response: { "edges": [ { "txns": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } } ] @@ -100,7 +100,7 @@ Response: { "edges": [ { "txns": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } } ] @@ -132,7 +132,7 @@ Response: { "edges": [ { "txns": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } } ] @@ -164,7 +164,7 @@ Response: { "edges": [ { "txns": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } } ] @@ -190,7 +190,7 @@ Response: { "edges": [ { "txns": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } } ] @@ -216,7 +216,7 @@ Response: { "edges": [ { "txns": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU", + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ", "first": null, "last": null } @@ -243,7 +243,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU", + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ", "first": null, "last": null } @@ -270,7 +270,7 @@ Response: { "edges": [ { "txns": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU", + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ", "a": null, "b": null } @@ -324,7 +324,7 @@ Response: { "edges": [ { "node": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU", + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ", "a": null } } @@ -350,14 +350,14 @@ Response: { "fragmentSpread": { "nodes": [ { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } ] }, "inlineFragment": { "nodes": [ { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/coin.exp b/crates/iota-graphql-e2e-tests/tests/objects/coin.exp index 210d775ee2c..1d771517c51 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/coin.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/coin.exp @@ -21,7 +21,7 @@ Response: { "iotaCoins": { "edges": [ { - "cursor": "IA1BL9Rg6Tz1+fS0jDoQxiG1hiWBzi6pUxy1czfrYezSAQAAAAAAAAA=", + "cursor": "IAUfdSfIJ+BUduck+TPi0OqPD7kIxW/IadU7pI8JDO2hAQAAAAAAAAA=", "node": { "coinBalance": "30000000000000000", "contents": { @@ -32,9 +32,9 @@ Response: { } }, { - "cursor": "IBSMpwkvL+MVuPEDyfmhzf7iKvJt1a7x+cACBNETbtTkAQAAAAAAAAA=", + "cursor": "IGQSAAScq/jz2PWkB8n/2Zq/NyWuskIjmIfWJ6p2xcvnAQAAAAAAAAA=", "node": { - "coinBalance": "299999983336400", + "coinBalance": "300000000000000", "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" @@ -43,9 +43,9 @@ Response: { } }, { - "cursor": "IHcydTSjlJsV68BfT3yUI07a06sS+7f7DKjVcPC389CbAQAAAAAAAAA=", + "cursor": "IMafGVTG0T42MAdfRilm4G2fBf7CmEbT14ECYYflQRQxAQAAAAAAAAA=", "node": { - "coinBalance": "300000000000000", + "coinBalance": "299999983336400", "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" @@ -58,34 +58,34 @@ Response: { "fakeCoins": { "edges": [ { - "cursor": "IAmHKw2BEkNB69tZiLJGHPeXBI9ajuTnY0u048XTJTe0AQAAAAAAAAA=", + "cursor": "IBbYMsWVo6AxaGlfd02OVFH8KateUMLaXYNGUh5dV3DUAQAAAAAAAAA=", "node": { - "coinBalance": "2", + "coinBalance": "1", "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x949c1c3e99cf78295c5a255ef55758d78873d5f20d2b9a13df4127036319a1ca::fake::FAKE>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x1beba21393083ff5ae90e2e6e22ed3780b8d80d61b294aa408d20d2362539691::fake::FAKE>" } } } }, { - "cursor": "ICF6Q0bn1c2o3bJ9n8Wpbx4IIoOKueRuFs/uP42C/BcgAQAAAAAAAAA=", + "cursor": "ICzxZhEQH74HLzxLE05ZUVYOyKAneGmQ+xqup4XNBPtsAQAAAAAAAAA=", "node": { - "coinBalance": "1", + "coinBalance": "2", "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x949c1c3e99cf78295c5a255ef55758d78873d5f20d2b9a13df4127036319a1ca::fake::FAKE>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x1beba21393083ff5ae90e2e6e22ed3780b8d80d61b294aa408d20d2362539691::fake::FAKE>" } } } }, { - "cursor": "IKI0GVmK7xKOKCZhUXDom9nHgMyt1mlxoSxVOrzpTgodAQAAAAAAAAA=", + "cursor": "IEGbOluMu3umMrKpUZvnrKjpIqR20ZInY+jT7bcvW9yFAQAAAAAAAAA=", "node": { "coinBalance": "3", "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x949c1c3e99cf78295c5a255ef55758d78873d5f20d2b9a13df4127036319a1ca::fake::FAKE>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x1beba21393083ff5ae90e2e6e22ed3780b8d80d61b294aa408d20d2362539691::fake::FAKE>" } } } @@ -96,7 +96,7 @@ Response: { "coins": { "edges": [ { - "cursor": "IBSMpwkvL+MVuPEDyfmhzf7iKvJt1a7x+cACBNETbtTkAQAAAAAAAAA=", + "cursor": "IMafGVTG0T42MAdfRilm4G2fBf7CmEbT14ECYYflQRQxAQAAAAAAAAA=", "node": { "coinBalance": "299999983336400", "contents": { @@ -121,10 +121,10 @@ Response: { } }, { - "cursor": "eyJ0IjoiMHg5NDljMWMzZTk5Y2Y3ODI5NWM1YTI1NWVmNTU3NThkNzg4NzNkNWYyMGQyYjlhMTNkZjQxMjcwMzYzMTlhMWNhOjpmYWtlOjpGQUtFIiwiYyI6MX0", + "cursor": "eyJ0IjoiMHgxYmViYTIxMzkzMDgzZmY1YWU5MGUyZTZlMjJlZDM3ODBiOGQ4MGQ2MWIyOTRhYTQwOGQyMGQyMzYyNTM5NjkxOjpmYWtlOjpGQUtFIiwiYyI6MX0", "node": { "coinType": { - "repr": "0x949c1c3e99cf78295c5a255ef55758d78873d5f20d2b9a13df4127036319a1ca::fake::FAKE" + "repr": "0x1beba21393083ff5ae90e2e6e22ed3780b8d80d61b294aa408d20d2362539691::fake::FAKE" }, "coinObjectCount": 3, "totalBalance": "6" @@ -142,7 +142,7 @@ Response: { "lastBalance": { "edges": [ { - "cursor": "eyJ0IjoiMHg5NDljMWMzZTk5Y2Y3ODI5NWM1YTI1NWVmNTU3NThkNzg4NzNkNWYyMGQyYjlhMTNkZjQxMjcwMzYzMTlhMWNhOjpmYWtlOjpGQUtFIiwiYyI6MX0" + "cursor": "eyJ0IjoiMHgxYmViYTIxMzkzMDgzZmY1YWU5MGUyZTZlMjJlZDM3ODBiOGQ4MGQ2MWIyOTRhYTQwOGQyMGQyMzYyNTM5NjkxOjpmYWtlOjpGQUtFIiwiYyI6MX0" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/data.exp b/crates/iota-graphql-e2e-tests/tests/objects/data.exp index a55c269d8d4..e359bd4fbc4 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/data.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/data.exp @@ -36,7 +36,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0xcba73abc9f220072848d381c92d6671cea3879373e565fcf9f628a2dc51161ef::m::Foo" }, "data": { "Struct": [ @@ -44,111 +44,38 @@ Response: { "name": "id", "value": { "UID": [ - 119, - 50, - 117, - 52, - 163, - 148, - 155, - 21, - 235, - 192, - 95, - 79, - 124, - 148, - 35, - 78, - 218, - 211, - 171, - 18, - 251, - 183, + 27, + 44, + 74, + 2, + 197, 251, + 2, + 172, + 219, + 236, 12, - 168, - 213, - 112, - 240, - 183, - 243, - 208, - 155 - ] - } - }, - { - "name": "balance", - "value": { - "Struct": [ - { - "name": "value", - "value": { - "Number": "299999988454400" - } - } - ] - } - } - ] - }, - "json": { - "id": "0x77327534a3949b15ebc05f4f7c94234edad3ab12fbb7fb0ca8d570f0b7f3d09b", - "balance": { - "value": "299999988454400" - } - } - } - } - } - }, - { - "outputState": { - "asMoveObject": { - "contents": { - "type": { - "repr": "0x484ba073380456eec654b7b8e0d5e21a752fe0c0e6ff582039bdbe7ce8f72a38::m::Foo" - }, - "data": { - "Struct": [ - { - "name": "id", - "value": { - "UID": [ - 242, - 233, - 240, - 242, - 53, - 173, + 39, + 130, + 137, + 174, + 162, + 191, + 228, + 68, + 51, 120, - 218, - 49, - 50, - 33, - 255, - 124, - 42, - 203, - 215, - 122, - 170, - 181, - 222, - 18, - 148, - 231, - 121, - 80, - 196, - 88, - 212, - 253, - 2, - 34, - 35 + 91, + 248, + 128, + 154, + 58, + 11, + 61, + 87, + 67, + 168, + 171 ] } }, @@ -156,38 +83,38 @@ Response: { "name": "f0", "value": { "ID": [ - 242, - 233, - 240, - 242, - 53, - 173, - 120, - 218, - 49, - 50, - 33, - 255, - 124, - 42, - 203, - 215, - 122, - 170, - 181, - 222, - 18, - 148, - 231, - 121, - 80, - 196, - 88, - 212, - 253, + 27, + 44, + 74, + 2, + 197, + 251, 2, - 34, - 35 + 172, + 219, + 236, + 12, + 39, + 130, + 137, + 174, + 162, + 191, + 228, + 68, + 51, + 120, + 91, + 248, + 128, + 154, + 58, + 11, + 61, + 87, + 67, + 168, + 171 ] } }, @@ -227,38 +154,38 @@ Response: { "Vector": [ { "Address": [ - 242, - 233, - 240, - 242, - 53, - 173, - 120, - 218, - 49, - 50, - 33, - 255, - 124, - 42, - 203, - 215, - 122, - 170, - 181, - 222, - 18, - 148, - 231, - 121, - 80, - 196, - 88, - 212, - 253, + 27, + 44, + 74, 2, - 34, - 35 + 197, + 251, + 2, + 172, + 219, + 236, + 12, + 39, + 130, + 137, + 174, + 162, + 191, + 228, + 68, + 51, + 120, + 91, + 248, + 128, + 154, + 58, + 11, + 61, + 87, + 67, + 168, + 171 ] } ] @@ -275,21 +202,94 @@ Response: { ] }, "json": { - "id": "0xf2e9f0f235ad78da313221ff7c2acbd77aaab5de1294e77950c458d4fd022223", - "f0": "0xf2e9f0f235ad78da313221ff7c2acbd77aaab5de1294e77950c458d4fd022223", + "id": "0x1b2c4a02c5fb02acdbec0c278289aea2bfe44433785bf8809a3a0b3d5743a8ab", + "f0": "0x1b2c4a02c5fb02acdbec0c278289aea2bfe44433785bf8809a3a0b3d5743a8ab", "f1": true, "f2": 42, "f3": "43", "f4": "hello", "f5": "world", "f6": [ - "0xf2e9f0f235ad78da313221ff7c2acbd77aaab5de1294e77950c458d4fd022223" + "0x1b2c4a02c5fb02acdbec0c278289aea2bfe44433785bf8809a3a0b3d5743a8ab" ], "f7": 44 } } } } + }, + { + "outputState": { + "asMoveObject": { + "contents": { + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + }, + "data": { + "Struct": [ + { + "name": "id", + "value": { + "UID": [ + 100, + 18, + 0, + 4, + 156, + 171, + 248, + 243, + 216, + 245, + 164, + 7, + 201, + 255, + 217, + 154, + 191, + 55, + 37, + 174, + 178, + 66, + 35, + 152, + 135, + 214, + 39, + 170, + 118, + 197, + 203, + 231 + ] + } + }, + { + "name": "balance", + "value": { + "Struct": [ + { + "name": "value", + "value": { + "Number": "299999988454400" + } + } + ] + } + } + ] + }, + "json": { + "id": "0x641200049cabf8f3d8f5a407c9ffd99abf3725aeb242239887d627aa76c5cbe7", + "balance": { + "value": "299999988454400" + } + } + } + } + } } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/display.exp b/crates/iota-graphql-e2e-tests/tests/objects/display.exp index f21368482bb..c085a5f4c00 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/display.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/display.exp @@ -5,7 +5,7 @@ A: object(0,0) task 1, lines 7-131: //# publish --sender A -events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("DisplayCreated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [45, 198, 118, 89, 25, 59, 63, 15, 172, 84, 131, 28, 154, 55, 104, 81, 60, 196, 90, 4, 49, 136, 231, 75, 196, 127, 52, 48, 126, 156, 18, 227] } +events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("DisplayCreated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [122, 86, 17, 131, 43, 49, 169, 8, 64, 205, 230, 163, 87, 14, 109, 54, 195, 144, 240, 135, 70, 188, 161, 150, 238, 94, 64, 25, 50, 6, 223, 3] } created: object(1,0), object(1,1), object(1,2) mutated: object(0,0) gas summary: computation_cost: 1000000, storage_cost: 21470000, storage_rebate: 0, non_refundable_storage_fee: 0 @@ -16,7 +16,7 @@ Checkpoint created: 1 task 3, line 135: //# view-checkpoint -CheckpointSummary { epoch: 0, seq: 1, content_digest: 3dvEAumcNUKy7sveksovXvSCGVgkauvgfEEY2bKTQTB7, +CheckpointSummary { epoch: 0, seq: 1, content_digest: 9sHsTUse41352AgmAzAW55EgrykK45tyEopXsGy5Ghgh, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 1000000, storage_cost: 21470000, storage_rebate: 0, non_refundable_storage_fee: 0 }} task 4, line 137: @@ -27,7 +27,7 @@ gas summary: computation_cost: 1000000, storage_cost: 3556800, storage_rebate: task 5, line 139: //# run Test::boars::update_display_faulty --sender A --args object(1,1) -events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [45, 198, 118, 89, 25, 59, 63, 15, 172, 84, 131, 28, 154, 55, 104, 81, 60, 196, 90, 4, 49, 136, 231, 75, 196, 127, 52, 48, 126, 156, 18, 227, 1, 0, 3, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125] } +events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [122, 86, 17, 131, 43, 49, 169, 8, 64, 205, 230, 163, 87, 14, 109, 54, 195, 144, 240, 135, 70, 188, 161, 150, 238, 94, 64, 25, 50, 6, 223, 3, 1, 0, 3, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125] } mutated: object(0,0), object(1,1) gas summary: computation_cost: 1000000, storage_cost: 2941200, storage_rebate: 2652400, non_refundable_storage_fee: 0 @@ -37,7 +37,7 @@ Checkpoint created: 2 task 7, line 143: //# view-checkpoint -CheckpointSummary { epoch: 0, seq: 2, content_digest: FwvP3KaQW7qg7WBvf5wrv1X565dt5taQ6BGoXVkTUpcz, +CheckpointSummary { epoch: 0, seq: 2, content_digest: GponcB27L35TyQpkXgMtUwGQ9Xfqx8utc7DdF2vY5eoj, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 3000000, storage_cost: 27968000, storage_rebate: 3640400, non_refundable_storage_fee: 0 }} task 8, lines 145-158: @@ -74,7 +74,7 @@ Response: { task 9, line 160: //# run Test::boars::single_add --sender A --args object(1,1) -events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [45, 198, 118, 89, 25, 59, 63, 15, 172, 84, 131, 28, 154, 55, 104, 81, 60, 196, 90, 4, 49, 136, 231, 75, 196, 127, 52, 48, 126, 156, 18, 227, 2, 0, 4, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125, 4, 110, 117, 109, 115, 6, 123, 110, 117, 109, 115, 125] } +events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [122, 86, 17, 131, 43, 49, 169, 8, 64, 205, 230, 163, 87, 14, 109, 54, 195, 144, 240, 135, 70, 188, 161, 150, 238, 94, 64, 25, 50, 6, 223, 3, 2, 0, 4, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125, 4, 110, 117, 109, 115, 6, 123, 110, 117, 109, 115, 125] } mutated: object(0,0), object(1,1) gas summary: computation_cost: 1000000, storage_cost: 3032400, storage_rebate: 2941200, non_refundable_storage_fee: 0 @@ -84,7 +84,7 @@ Checkpoint created: 3 task 11, line 164: //# view-checkpoint -CheckpointSummary { epoch: 0, seq: 3, content_digest: 9Bp6PrWcsMVx7KXc3GQzVYqq9jFrdtzpC84ALe3frFye, +CheckpointSummary { epoch: 0, seq: 3, content_digest: 2UgwAMvn8xhzqecYCRbGUuEujQHHrfM5q5QfGy5t8Cc6, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 4000000, storage_cost: 31000400, storage_rebate: 6581600, non_refundable_storage_fee: 0 }} task 12, lines 166-179: @@ -126,7 +126,7 @@ Response: { task 13, line 181: //# run Test::boars::multi_add --sender A --args object(1,1) -events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [45, 198, 118, 89, 25, 59, 63, 15, 172, 84, 131, 28, 154, 55, 104, 81, 60, 196, 90, 4, 49, 136, 231, 75, 196, 127, 52, 48, 126, 156, 18, 227, 3, 0, 15, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125, 4, 110, 117, 109, 115, 6, 123, 110, 117, 109, 115, 125, 5, 98, 111, 111, 108, 115, 7, 123, 98, 111, 111, 108, 115, 125, 5, 98, 117, 121, 101, 114, 7, 123, 98, 117, 121, 101, 114, 125, 4, 110, 97, 109, 101, 6, 123, 110, 97, 109, 101, 125, 7, 99, 114, 101, 97, 116, 111, 114, 9, 123, 99, 114, 101, 97, 116, 111, 114, 125, 5, 112, 114, 105, 99, 101, 7, 123, 112, 114, 105, 99, 101, 125, 11, 112, 114, 111, 106, 101, 99, 116, 95, 117, 114, 108, 58, 85, 110, 105, 113, 117, 101, 32, 66, 111, 97, 114, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 66, 111, 97, 114, 115, 32, 99, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 123, 110, 97, 109, 101, 125, 32, 97, 110, 100, 32, 123, 105, 100, 125, 8, 98, 97, 115, 101, 95, 117, 114, 108, 32, 104, 116, 116, 112, 115, 58, 47, 47, 103, 101, 116, 45, 97, 45, 98, 111, 97, 114, 46, 99, 111, 109, 47, 123, 105, 109, 103, 95, 117, 114, 108, 125, 11, 110, 111, 95, 116, 101, 109, 112, 108, 97, 116, 101, 23, 104, 116, 116, 112, 115, 58, 47, 47, 103, 101, 116, 45, 97, 45, 98, 111, 97, 114, 46, 99, 111, 109, 47, 3, 97, 103, 101, 21, 123, 109, 101, 116, 97, 100, 97, 116, 97, 46, 110, 101, 115, 116, 101, 100, 46, 97, 103, 101, 125, 8, 102, 117, 108, 108, 95, 117, 114, 108, 10, 123, 102, 117, 108, 108, 95, 117, 114, 108, 125, 13, 101, 115, 99, 97, 112, 101, 95, 115, 121, 110, 116, 97, 120, 8, 92, 123, 110, 97, 109, 101, 92, 125] } +events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [122, 86, 17, 131, 43, 49, 169, 8, 64, 205, 230, 163, 87, 14, 109, 54, 195, 144, 240, 135, 70, 188, 161, 150, 238, 94, 64, 25, 50, 6, 223, 3, 3, 0, 15, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125, 4, 110, 117, 109, 115, 6, 123, 110, 117, 109, 115, 125, 5, 98, 111, 111, 108, 115, 7, 123, 98, 111, 111, 108, 115, 125, 5, 98, 117, 121, 101, 114, 7, 123, 98, 117, 121, 101, 114, 125, 4, 110, 97, 109, 101, 6, 123, 110, 97, 109, 101, 125, 7, 99, 114, 101, 97, 116, 111, 114, 9, 123, 99, 114, 101, 97, 116, 111, 114, 125, 5, 112, 114, 105, 99, 101, 7, 123, 112, 114, 105, 99, 101, 125, 11, 112, 114, 111, 106, 101, 99, 116, 95, 117, 114, 108, 58, 85, 110, 105, 113, 117, 101, 32, 66, 111, 97, 114, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 66, 111, 97, 114, 115, 32, 99, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 123, 110, 97, 109, 101, 125, 32, 97, 110, 100, 32, 123, 105, 100, 125, 8, 98, 97, 115, 101, 95, 117, 114, 108, 32, 104, 116, 116, 112, 115, 58, 47, 47, 103, 101, 116, 45, 97, 45, 98, 111, 97, 114, 46, 99, 111, 109, 47, 123, 105, 109, 103, 95, 117, 114, 108, 125, 11, 110, 111, 95, 116, 101, 109, 112, 108, 97, 116, 101, 23, 104, 116, 116, 112, 115, 58, 47, 47, 103, 101, 116, 45, 97, 45, 98, 111, 97, 114, 46, 99, 111, 109, 47, 3, 97, 103, 101, 21, 123, 109, 101, 116, 97, 100, 97, 116, 97, 46, 110, 101, 115, 116, 101, 100, 46, 97, 103, 101, 125, 8, 102, 117, 108, 108, 95, 117, 114, 108, 10, 123, 102, 117, 108, 108, 95, 117, 114, 108, 125, 13, 101, 115, 99, 97, 112, 101, 95, 115, 121, 110, 116, 97, 120, 8, 92, 123, 110, 97, 109, 101, 92, 125] } mutated: object(0,0), object(1,1) gas summary: computation_cost: 1000000, storage_cost: 5236400, storage_rebate: 3032400, non_refundable_storage_fee: 0 @@ -136,7 +136,7 @@ Checkpoint created: 4 task 15, line 185: //# view-checkpoint -CheckpointSummary { epoch: 0, seq: 4, content_digest: BUktWMWFSWFXiKwCtLJoRtb9nPh7vDWTUWk2hyGHWWfP, +CheckpointSummary { epoch: 0, seq: 4, content_digest: 6K7PEwcxCypDpJhMgADzhdJHDxFmxaKqYdDCUrDtGKqw, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 5000000, storage_cost: 36236800, storage_rebate: 9614000, non_refundable_storage_fee: 0 }} task 16, lines 187-200: @@ -195,7 +195,7 @@ Response: { }, { "key": "project_url", - "value": "Unique Boar from the Boars collection with First Boar and 0x4a4a4465735d0a9eec2a505ba1c3ae282093120cc39b5a607cfb6198ae2ebd06", + "value": "Unique Boar from the Boars collection with First Boar and 0xc5ba56c701e3a4b4fde2ed3a11147ed6702736122d3e5ba8848517fcc40bb332", "error": null }, { diff --git a/crates/iota-graphql-e2e-tests/tests/objects/enum_data.exp b/crates/iota-graphql-e2e-tests/tests/objects/enum_data.exp index 20f8e38dd4f..14bdd3809a4 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/enum_data.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/enum_data.exp @@ -44,38 +44,38 @@ Response: { "name": "id", "value": { "UID": [ - 119, - 50, - 117, - 52, - 163, - 148, - 155, - 21, - 235, - 192, - 95, - 79, - 124, - 148, - 35, - 78, - 218, - 211, - 171, + 100, 18, - 251, - 183, - 251, - 12, - 168, - 213, - 112, - 240, - 183, + 0, + 4, + 156, + 171, + 248, 243, - 208, - 155 + 216, + 245, + 164, + 7, + 201, + 255, + 217, + 154, + 191, + 55, + 37, + 174, + 178, + 66, + 35, + 152, + 135, + 214, + 39, + 170, + 118, + 197, + 203, + 231 ] } }, @@ -95,7 +95,7 @@ Response: { ] }, "json": { - "id": "0x77327534a3949b15ebc05f4f7c94234edad3ab12fbb7fb0ca8d570f0b7f3d09b", + "id": "0x641200049cabf8f3d8f5a407c9ffd99abf3725aeb242239887d627aa76c5cbe7", "balance": { "value": "299999995967600" } @@ -109,7 +109,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x40667453c374c4f1f82721c84a96426390e205dd72719e0c0854a5d5e9f95ec3::m::Foo" + "repr": "0x44bc315472dfe257237a726662160c2c7b25467eaf06fa89f85d0038b15e0fde::m::Foo" }, "data": { "Struct": [ @@ -117,38 +117,38 @@ Response: { "name": "id", "value": { "UID": [ - 241, - 159, - 198, - 5, - 67, - 13, - 243, - 161, - 255, - 159, - 113, - 200, - 60, - 138, - 184, - 152, - 23, - 26, - 109, - 213, - 78, - 73, + 164, + 50, + 225, + 206, + 133, + 84, + 196, + 6, 207, - 135, + 254, + 192, + 31, + 49, + 43, + 19, + 140, + 205, + 57, + 122, + 163, + 123, + 199, + 43, + 247, 117, - 157, - 252, - 67, - 85, - 240, - 121, - 244 + 88, + 184, + 80, + 69, + 104, + 78, + 223 ] } }, @@ -156,38 +156,38 @@ Response: { "name": "f0", "value": { "ID": [ - 241, - 159, - 198, - 5, - 67, - 13, - 243, - 161, - 255, - 159, - 113, - 200, - 60, - 138, - 184, - 152, - 23, - 26, - 109, - 213, - 78, - 73, + 164, + 50, + 225, + 206, + 133, + 84, + 196, + 6, 207, - 135, + 254, + 192, + 31, + 49, + 43, + 19, + 140, + 205, + 57, + 122, + 163, + 123, + 199, + 43, + 247, 117, - 157, - 252, - 67, - 85, - 240, - 121, - 244 + 88, + 184, + 80, + 69, + 104, + 78, + 223 ] } }, @@ -227,38 +227,38 @@ Response: { "Vector": [ { "Address": [ - 241, - 159, - 198, - 5, - 67, - 13, - 243, - 161, - 255, - 159, - 113, - 200, - 60, - 138, - 184, - 152, - 23, - 26, - 109, - 213, - 78, - 73, + 164, + 50, + 225, + 206, + 133, + 84, + 196, + 6, 207, - 135, + 254, + 192, + 31, + 49, + 43, + 19, + 140, + 205, + 57, + 122, + 163, + 123, + 199, + 43, + 247, 117, - 157, - 252, - 67, - 85, - 240, - 121, - 244 + 88, + 184, + 80, + 69, + 104, + 78, + 223 ] } ] @@ -325,15 +325,15 @@ Response: { ] }, "json": { - "id": "0xf19fc605430df3a1ff9f71c83c8ab898171a6dd54e49cf87759dfc4355f079f4", - "f0": "0xf19fc605430df3a1ff9f71c83c8ab898171a6dd54e49cf87759dfc4355f079f4", + "id": "0xa432e1ce8554c406cffec01f312b138ccd397aa37bc72bf77558b85045684edf", + "f0": "0xa432e1ce8554c406cffec01f312b138ccd397aa37bc72bf77558b85045684edf", "f1": true, "f2": 42, "f3": "43", "f4": "hello", "f5": "world", "f6": [ - "0xf19fc605430df3a1ff9f71c83c8ab898171a6dd54e49cf87759dfc4355f079f4" + "0xa432e1ce8554c406cffec01f312b138ccd397aa37bc72bf77558b85045684edf" ], "f7": 44, "f8": { diff --git a/crates/iota-graphql-e2e-tests/tests/objects/filter_by_type.exp b/crates/iota-graphql-e2e-tests/tests/objects/filter_by_type.exp index de7ec399151..da9205052ba 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/filter_by_type.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/filter_by_type.exp @@ -21,11 +21,11 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 4, lines 16-18: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(3,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [195, 31, 89, 68, 25, 110, 110, 130, 15, 151, 96, 218, 107, 188, 216, 30, 11, 194, 226, 183, 85, 68, 74, 206, 105, 101, 238, 219, 200, 86, 235, 41, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 201, 73, 32, 135, 23, 121, 37, 7, 101, 40, 103, 216, 99, 155, 51, 118, 111, 115, 220, 44, 253, 144, 143, 80, 103, 133, 240, 58, 235, 137, 202, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(4,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(3,0) -gas summary: computation_cost: 1000000, storage_cost: 14523600, storage_rebate: 1976000, non_refundable_storage_fee: 0 +gas summary: computation_cost: 1000000, storage_cost: 14531200, storage_rebate: 1976000, non_refundable_storage_fee: 0 task 5, line 19: //# create-checkpoint @@ -145,18 +145,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" - } - } - } - } - }, - { - "node": { - "asMoveObject": { - "contents": { - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::PoolTokenExchangeRate>" } } } @@ -167,7 +156,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<0x0000000000000000000000000000000000000000000000000000000000000002::object::ID,address>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::PoolTokenExchangeRate>" } } } @@ -178,7 +167,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<vector<u8>,0x0000000000000000000000000000000000000000000000000000000000000002::timelock::SystemTimelockCap>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } } } @@ -200,7 +189,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::display::Display<0x000000000000000000000000000000000000000000000000000000000000107a::nft::Nft>" } } } @@ -211,7 +200,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::PoolTokenExchangeRate>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<0x0000000000000000000000000000000000000000000000000000000000000002::object::ID,address>" } } } @@ -233,7 +222,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000002::random::RandomInner>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } } } @@ -244,7 +233,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::display::Display<0x000000000000000000000000000000000000000000000000000000000000107a::nft::Nft>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } } } @@ -255,7 +244,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::PoolTokenExchangeRate>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000002::random::RandomInner>" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/pagination.exp b/crates/iota-graphql-e2e-tests/tests/objects/pagination.exp index de39fe4966e..1d42499e01b 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/pagination.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/pagination.exp @@ -48,19 +48,19 @@ Response: { "objects": { "edges": [ { - "cursor": "ICX6kO+NNdmV03GzieZuGXzdkz+yg2KHaSvmj6Hj8cWQAQAAAAAAAAA=" + "cursor": "IErD5TMZumIS88CnED3HrKllM6piXQEhdl4nJlm0anf8AQAAAAAAAAA=" }, { - "cursor": "ICcBl0AEG48NrzqwFJFwHglDQW+MRDKuK74gJ80F1+GKAQAAAAAAAAA=" + "cursor": "IGbA0SLIovYnBW1JKBpVG43hvll9/RFB3wjKDZV3txcKAQAAAAAAAAA=" }, { - "cursor": "IE4/Lyl0XVh6bwwhkTUUyvxap8fCENmJqp+D2LL89/cbAQAAAAAAAAA=" + "cursor": "II/uS8unt+0PleSTFKesI3Uf2Bo3TsuzhlzOKC83nHsYAQAAAAAAAAA=" }, { - "cursor": "IGtvShjRsIhJv1W8PSE/adgtP+dt7GI5Vnhu+Ivd+98zAQAAAAAAAAA=" + "cursor": "IKSDqGoLwVUl2Zv0vtjeLzIHLV8s68y4bIjiM11IEfvWAQAAAAAAAAA=" }, { - "cursor": "IKv5yJhwXba9C470obT7zLqZWUScIDaHFAY9hpMrT1KWAQAAAAAAAAA=" + "cursor": "ILL9JWMRyHgUdqBBL66dYJjzsfWRDxCFDtmpQ4PXek9dAQAAAAAAAAA=" } ] } @@ -76,10 +76,10 @@ Response: { "objects": { "edges": [ { - "cursor": "ICX6kO+NNdmV03GzieZuGXzdkz+yg2KHaSvmj6Hj8cWQAQAAAAAAAAA=" + "cursor": "IErD5TMZumIS88CnED3HrKllM6piXQEhdl4nJlm0anf8AQAAAAAAAAA=" }, { - "cursor": "ICcBl0AEG48NrzqwFJFwHglDQW+MRDKuK74gJ80F1+GKAQAAAAAAAAA=" + "cursor": "IGbA0SLIovYnBW1JKBpVG43hvll9/RFB3wjKDZV3txcKAQAAAAAAAAA=" } ] } @@ -95,52 +95,52 @@ Response: { "objects": { "edges": [ { - "cursor": "ICX6kO+NNdmV03GzieZuGXzdkz+yg2KHaSvmj6Hj8cWQAQAAAAAAAAA=", + "cursor": "IErD5TMZumIS88CnED3HrKllM6piXQEhdl4nJlm0anf8AQAAAAAAAAA=", "node": { - "address": "0x25fa90ef8d35d995d371b389e66e197cdd933fb2836287692be68fa1e3f1c590" + "address": "0x4ac3e53319ba6212f3c0a7103dc7aca96533aa625d0121765e272659b46a77fc" } }, { - "cursor": "ICcBl0AEG48NrzqwFJFwHglDQW+MRDKuK74gJ80F1+GKAQAAAAAAAAA=", + "cursor": "IGbA0SLIovYnBW1JKBpVG43hvll9/RFB3wjKDZV3txcKAQAAAAAAAAA=", "node": { - "address": "0x27019740041b8f0daf3ab01491701e0943416f8c4432ae2bbe2027cd05d7e18a" + "address": "0x66c0d122c8a2f627056d49281a551b8de1be597dfd1141df08ca0d9577b7170a" } }, { - "cursor": "IE4/Lyl0XVh6bwwhkTUUyvxap8fCENmJqp+D2LL89/cbAQAAAAAAAAA=", + "cursor": "II/uS8unt+0PleSTFKesI3Uf2Bo3TsuzhlzOKC83nHsYAQAAAAAAAAA=", "node": { - "address": "0x4e3f2f29745d587a6f0c21913514cafc5aa7c7c210d989aa9f83d8b2fcf7f71b" + "address": "0x8fee4bcba7b7ed0f95e49314a7ac23751fd81a374ecbb3865cce282f379c7b18" } }, { - "cursor": "IGtvShjRsIhJv1W8PSE/adgtP+dt7GI5Vnhu+Ivd+98zAQAAAAAAAAA=", + "cursor": "IKSDqGoLwVUl2Zv0vtjeLzIHLV8s68y4bIjiM11IEfvWAQAAAAAAAAA=", "node": { - "address": "0x6b6f4a18d1b08849bf55bc3d213f69d82d3fe76dec623956786ef88bddfbdf33" + "address": "0xa483a86a0bc15525d99bf4bed8de2f32072d5f2cebccb86c88e2335d4811fbd6" } }, { - "cursor": "IKv5yJhwXba9C470obT7zLqZWUScIDaHFAY9hpMrT1KWAQAAAAAAAAA=", + "cursor": "ILL9JWMRyHgUdqBBL66dYJjzsfWRDxCFDtmpQ4PXek9dAQAAAAAAAAA=", "node": { - "address": "0xabf9c898705db6bd0b8ef4a1b4fbccba9959449c20368714063d86932b4f5296" + "address": "0xb2fd256311c8781476a0412fae9d6098f3b1f5910f10850ed9a94383d77a4f5d" } } ] } }, "obj_3_0": { - "address": "0x25fa90ef8d35d995d371b389e66e197cdd933fb2836287692be68fa1e3f1c590" + "address": "0x4ac3e53319ba6212f3c0a7103dc7aca96533aa625d0121765e272659b46a77fc" }, "obj_5_0": { - "address": "0x6b6f4a18d1b08849bf55bc3d213f69d82d3fe76dec623956786ef88bddfbdf33" + "address": "0x66c0d122c8a2f627056d49281a551b8de1be597dfd1141df08ca0d9577b7170a" }, "obj_6_0": { - "address": "0x4e3f2f29745d587a6f0c21913514cafc5aa7c7c210d989aa9f83d8b2fcf7f71b" + "address": "0xa483a86a0bc15525d99bf4bed8de2f32072d5f2cebccb86c88e2335d4811fbd6" }, "obj_4_0": { - "address": "0xabf9c898705db6bd0b8ef4a1b4fbccba9959449c20368714063d86932b4f5296" + "address": "0xb2fd256311c8781476a0412fae9d6098f3b1f5910f10850ed9a94383d77a4f5d" }, "obj_2_0": { - "address": "0x27019740041b8f0daf3ab01491701e0943416f8c4432ae2bbe2027cd05d7e18a" + "address": "0x8fee4bcba7b7ed0f95e49314a7ac23751fd81a374ecbb3865cce282f379c7b18" } } } @@ -153,7 +153,10 @@ Response: { "objects": { "edges": [ { - "cursor": "IKv5yJhwXba9C470obT7zLqZWUScIDaHFAY9hpMrT1KWAQAAAAAAAAA=" + "cursor": "II/uS8unt+0PleSTFKesI3Uf2Bo3TsuzhlzOKC83nHsYAQAAAAAAAAA=" + }, + { + "cursor": "IKSDqGoLwVUl2Zv0vtjeLzIHLV8s68y4bIjiM11IEfvWAQAAAAAAAAA=" } ] } @@ -193,15 +196,15 @@ Response: { "objects": { "edges": [ { - "cursor": "IGtvShjRsIhJv1W8PSE/adgtP+dt7GI5Vnhu+Ivd+98zAQAAAAAAAAA=", + "cursor": "IKSDqGoLwVUl2Zv0vtjeLzIHLV8s68y4bIjiM11IEfvWAQAAAAAAAAA=", "node": { - "address": "0x6b6f4a18d1b08849bf55bc3d213f69d82d3fe76dec623956786ef88bddfbdf33" + "address": "0xa483a86a0bc15525d99bf4bed8de2f32072d5f2cebccb86c88e2335d4811fbd6" } }, { - "cursor": "IKv5yJhwXba9C470obT7zLqZWUScIDaHFAY9hpMrT1KWAQAAAAAAAAA=", + "cursor": "ILL9JWMRyHgUdqBBL66dYJjzsfWRDxCFDtmpQ4PXek9dAQAAAAAAAAA=", "node": { - "address": "0xabf9c898705db6bd0b8ef4a1b4fbccba9959449c20368714063d86932b4f5296" + "address": "0xb2fd256311c8781476a0412fae9d6098f3b1f5910f10850ed9a94383d77a4f5d" } } ] diff --git a/crates/iota-graphql-e2e-tests/tests/objects/public_transfer.exp b/crates/iota-graphql-e2e-tests/tests/objects/public_transfer.exp index a8490459adb..6804cb24b4e 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/public_transfer.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/public_transfer.exp @@ -37,7 +37,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x9d880ed4fdb36fbc885a556e5ea55eb8338e56ea2185689d8491e8aa4bc3edfa::m::Bar" + "repr": "0x40c4a165cdc6b25f0f9764ac15ced5fb7c86130d7751083490fa5c5ced8dc9c5::m::Bar" } }, "hasPublicTransfer": false @@ -61,7 +61,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x9d880ed4fdb36fbc885a556e5ea55eb8338e56ea2185689d8491e8aa4bc3edfa::m::Foo" + "repr": "0x40c4a165cdc6b25f0f9764ac15ced5fb7c86130d7751083490fa5c5ced8dc9c5::m::Foo" } }, "hasPublicTransfer": true diff --git a/crates/iota-graphql-e2e-tests/tests/objects/received.exp b/crates/iota-graphql-e2e-tests/tests/objects/received.exp index d1a09dc0ea4..3258ee0f3b2 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/received.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/received.exp @@ -30,7 +30,7 @@ Response: { "receivedTransactionBlocks": { "nodes": [ { - "digest": "EPHB9RW1dJTokQN6tKjwSW195zW6XH2k2mbdMUu431aP" + "digest": "Eu9fsGKPDzXeSNG4wEZufMBaBjnoEUAp1paXMXSUaVFB" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/staked_iota.exp b/crates/iota-graphql-e2e-tests/tests/objects/staked_iota.exp index 2f83f2c4c24..8c134761d0e 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/staked_iota.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/staked_iota.exp @@ -10,7 +10,7 @@ Response: { "objects": { "edges": [ { - "cursor": "IIKDDWMJEQ0SaqegqoUwd4Tud0KewlpG9UzxKvz4b+AFAAAAAAAAAAA=", + "cursor": "IAeULt3Vt3s3r+CMTYVO1viD348GDaO7+cH3HhE5nbGzAAAAAAAAAAA=", "node": { "asMoveObject": { "asStakedIota": { @@ -39,11 +39,11 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 3, line 38: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(2,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [195, 31, 89, 68, 25, 110, 110, 130, 15, 151, 96, 218, 107, 188, 216, 30, 11, 194, 226, 183, 85, 68, 74, 206, 105, 101, 238, 219, 200, 86, 235, 41, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 201, 73, 32, 135, 23, 121, 37, 7, 101, 40, 103, 216, 99, 155, 51, 118, 111, 115, 220, 44, 253, 144, 143, 80, 103, 133, 240, 58, 235, 137, 202, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(3,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(2,0) -gas summary: computation_cost: 1000000, storage_cost: 14523600, storage_rebate: 1976000, non_refundable_storage_fee: 0 +gas summary: computation_cost: 1000000, storage_cost: 14531200, storage_rebate: 1976000, non_refundable_storage_fee: 0 task 4, line 40: //# create-checkpoint @@ -60,34 +60,34 @@ Response: { "objects": { "edges": [ { - "cursor": "ICzSs8gJrEchdo/v0DdIPKJpx37IypILVMI4TvKng3QUAgAAAAAAAAA=", + "cursor": "IAeULt3Vt3s3r+CMTYVO1viD348GDaO7+cH3HhE5nbGzAgAAAAAAAAA=", "node": { "asMoveObject": { "asStakedIota": { - "principal": "10000000000", - "poolId": "0xc31f5944196e6e820f9760da6bbcd81e0bc2e2b755444ace6965eedbc856eb29" + "principal": "1500000000000000", + "poolId": "0x91c949208717792507652867d8639b33766f73dc2cfd908f506785f03aeb89ca" } } } }, { - "cursor": "IIKDDWMJEQ0SaqegqoUwd4Tud0KewlpG9UzxKvz4b+AFAgAAAAAAAAA=", + "cursor": "IFWL5fMBAvjGqySaASRTzX8LCOJmSehFXfVOmHh0TLNgAgAAAAAAAAA=", "node": { "asMoveObject": { "asStakedIota": { - "principal": "1500000000000000", - "poolId": "0xc31f5944196e6e820f9760da6bbcd81e0bc2e2b755444ace6965eedbc856eb29" + "principal": "10000000000", + "poolId": "0x91c949208717792507652867d8639b33766f73dc2cfd908f506785f03aeb89ca" } } } }, { - "cursor": "ILVYziRMbmfeQ0alyypl2nA4gTpsnVI0/mNu+O2M0UcwAgAAAAAAAAA=", + "cursor": "IJBwUWU37b5wcCks4sYH9yj0in1fYITknJlXyi0qxJ9iAgAAAAAAAAA=", "node": { "asMoveObject": { "asStakedIota": { "principal": "15340000000000", - "poolId": "0xc31f5944196e6e820f9760da6bbcd81e0bc2e2b755444ace6965eedbc856eb29" + "poolId": "0x91c949208717792507652867d8639b33766f73dc2cfd908f506785f03aeb89ca" } } } @@ -98,7 +98,7 @@ Response: { "stakedIotas": { "edges": [ { - "cursor": "ICzSs8gJrEchdo/v0DdIPKJpx37IypILVMI4TvKng3QUAgAAAAAAAAA=", + "cursor": "IFWL5fMBAvjGqySaASRTzX8LCOJmSehFXfVOmHh0TLNgAgAAAAAAAAA=", "node": { "principal": "10000000000" } diff --git a/crates/iota-graphql-e2e-tests/tests/owner/downcasts.exp b/crates/iota-graphql-e2e-tests/tests/owner/downcasts.exp index db71fb7324c..9d989ea3aae 100644 --- a/crates/iota-graphql-e2e-tests/tests/owner/downcasts.exp +++ b/crates/iota-graphql-e2e-tests/tests/owner/downcasts.exp @@ -24,7 +24,7 @@ Response: { }, "coin": { "asObject": { - "digest": "EXVziRUtN3mS4Gx9G7eHaJAQLXGQJYAwdBRHe84LpMm7" + "digest": "EwMSkMpzBwgETBvVrrRZj3ZhLcvQ8reFL4SWvRtsgbBy" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/owner/root_version.exp b/crates/iota-graphql-e2e-tests/tests/owner/root_version.exp index 867a6027734..7fd0254ba27 100644 --- a/crates/iota-graphql-e2e-tests/tests/owner/root_version.exp +++ b/crates/iota-graphql-e2e-tests/tests/owner/root_version.exp @@ -124,10 +124,10 @@ Response: { "version": 11, "contents": { "json": { - "id": "0x971c6d1b7d6d10a43dadfdbde2206f93bed3cdab43ec430928655906a9ddbe98", + "id": "0xf1c4e02820ed98fcb155aeec20aaa714b26e619844b5c496ff365e83f5a02498", "count": "1", "wrapped": { - "id": "0xe1eb5deedaf409a49832c729642cdca5162af91de4d45340965494a12cd733ce", + "id": "0x615ab07d9f060df3659832160b8f811eddb2fc4c2f38ea2482140f239c49eda9", "count": "1" } } @@ -141,10 +141,10 @@ Response: { "version": 10, "contents": { "json": { - "id": "0x971c6d1b7d6d10a43dadfdbde2206f93bed3cdab43ec430928655906a9ddbe98", + "id": "0xf1c4e02820ed98fcb155aeec20aaa714b26e619844b5c496ff365e83f5a02498", "count": "1", "wrapped": { - "id": "0xe1eb5deedaf409a49832c729642cdca5162af91de4d45340965494a12cd733ce", + "id": "0x615ab07d9f060df3659832160b8f811eddb2fc4c2f38ea2482140f239c49eda9", "count": "1" } } @@ -158,10 +158,10 @@ Response: { "version": 8, "contents": { "json": { - "id": "0x971c6d1b7d6d10a43dadfdbde2206f93bed3cdab43ec430928655906a9ddbe98", + "id": "0xf1c4e02820ed98fcb155aeec20aaa714b26e619844b5c496ff365e83f5a02498", "count": "1", "wrapped": { - "id": "0xe1eb5deedaf409a49832c729642cdca5162af91de4d45340965494a12cd733ce", + "id": "0x615ab07d9f060df3659832160b8f811eddb2fc4c2f38ea2482140f239c49eda9", "count": "0" } } @@ -175,10 +175,10 @@ Response: { "version": 7, "contents": { "json": { - "id": "0x971c6d1b7d6d10a43dadfdbde2206f93bed3cdab43ec430928655906a9ddbe98", + "id": "0xf1c4e02820ed98fcb155aeec20aaa714b26e619844b5c496ff365e83f5a02498", "count": "0", "wrapped": { - "id": "0xe1eb5deedaf409a49832c729642cdca5162af91de4d45340965494a12cd733ce", + "id": "0x615ab07d9f060df3659832160b8f811eddb2fc4c2f38ea2482140f239c49eda9", "count": "0" } } @@ -199,7 +199,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0xfa4c9f80c82ecccd704a91074f7b4fbda300530a4ed604b63d48bc1372bbc6eb", + "id": "0x8a7e59b13b638038a86a520fd579142654c543af8076823edc535aef71b52bb3", "count": "0" } } @@ -212,7 +212,7 @@ Response: { "version": 10, "contents": { "json": { - "id": "0xfa4c9f80c82ecccd704a91074f7b4fbda300530a4ed604b63d48bc1372bbc6eb", + "id": "0x8a7e59b13b638038a86a520fd579142654c543af8076823edc535aef71b52bb3", "count": "1" } } @@ -225,7 +225,7 @@ Response: { "version": 10, "contents": { "json": { - "id": "0xfa4c9f80c82ecccd704a91074f7b4fbda300530a4ed604b63d48bc1372bbc6eb", + "id": "0x8a7e59b13b638038a86a520fd579142654c543af8076823edc535aef71b52bb3", "count": "1" } } @@ -238,7 +238,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0xfa4c9f80c82ecccd704a91074f7b4fbda300530a4ed604b63d48bc1372bbc6eb", + "id": "0x8a7e59b13b638038a86a520fd579142654c543af8076823edc535aef71b52bb3", "count": "0" } } @@ -251,7 +251,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0xfa4c9f80c82ecccd704a91074f7b4fbda300530a4ed604b63d48bc1372bbc6eb", + "id": "0x8a7e59b13b638038a86a520fd579142654c543af8076823edc535aef71b52bb3", "count": "0" } } @@ -271,7 +271,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0xe8ad127dd2eb2208688202ea18b0fba19658fc0c599362bdfa36ef248f0e4fb4", + "id": "0x6d8366c90356f72c43c0b197a0085659ed76cdaeb2cbae3d95bc0b33ede7f8de", "count": "0" } } @@ -284,7 +284,7 @@ Response: { "version": 11, "contents": { "json": { - "id": "0xe8ad127dd2eb2208688202ea18b0fba19658fc0c599362bdfa36ef248f0e4fb4", + "id": "0x6d8366c90356f72c43c0b197a0085659ed76cdaeb2cbae3d95bc0b33ede7f8de", "count": "1" } } @@ -297,7 +297,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0xe8ad127dd2eb2208688202ea18b0fba19658fc0c599362bdfa36ef248f0e4fb4", + "id": "0x6d8366c90356f72c43c0b197a0085659ed76cdaeb2cbae3d95bc0b33ede7f8de", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/datatypes.exp b/crates/iota-graphql-e2e-tests/tests/packages/datatypes.exp index cc1dc1e78cc..30b0d848522 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/datatypes.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/datatypes.exp @@ -155,7 +155,7 @@ task 5, lines 73-97: Response: { "data": { "object": { - "address": "0x7b13955059d4b6b30f9643432301fef8f5bcc27d87dcc0fc7ae067f1486e41f8", + "address": "0x6fb64d985225b4ac8b1ee9c17cad1327db14cf5adfba72714bfa6d847f45f996", "asMovePackage": { "module": { "datatypes": { @@ -190,7 +190,7 @@ task 6, lines 99-144: Response: { "data": { "object": { - "address": "0x7b13955059d4b6b30f9643432301fef8f5bcc27d87dcc0fc7ae067f1486e41f8", + "address": "0x6fb64d985225b4ac8b1ee9c17cad1327db14cf5adfba72714bfa6d847f45f996", "asMovePackage": { "module": { "datatypes": { diff --git a/crates/iota-graphql-e2e-tests/tests/packages/enums.exp b/crates/iota-graphql-e2e-tests/tests/packages/enums.exp index 07315f0899c..f7938394d1d 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/enums.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/enums.exp @@ -25,13 +25,13 @@ Response: { "nodes": [ { "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", + "address": "0x50a7d243b8ba613f2f99945f8c4dde635aa0fae9235cb5b64d5b9eb6817319d6", "asMovePackage": null } }, { "outputState": { - "address": "0x76e7ff71302c8573d647fb6c1e7b72f8ff0552079062eee661c42d33fe843211", + "address": "0x888a64ae050f1a10028960f8db5127e74f73c1d30fd3fefb7d8a41d424eeb8ee", "asMovePackage": { "module": { "enum": { @@ -90,7 +90,7 @@ Response: { }, { "outputState": { - "address": "0x961298822ba41c38483a9bf76b28faaa4892649f91c67bd6030b54511723b8bf", + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", "asMovePackage": null } } @@ -125,19 +125,19 @@ Response: { "nodes": [ { "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", + "address": "0x50a7d243b8ba613f2f99945f8c4dde635aa0fae9235cb5b64d5b9eb6817319d6", "asMovePackage": null } }, { "outputState": { - "address": "0x6606d773cbd440d344afaad70995ae878932157ceae72f6a3c07550467175d82", + "address": "0x592a42acb1ea711144cca47f5aedbbf6267e2d2fd25c4c5d5bb576fd42d03708", "asMovePackage": { "module": { "s": { "module": { "package": { - "address": "0x76e7ff71302c8573d647fb6c1e7b72f8ff0552079062eee661c42d33fe843211" + "address": "0x888a64ae050f1a10028960f8db5127e74f73c1d30fd3fefb7d8a41d424eeb8ee" } }, "name": "S", @@ -192,7 +192,7 @@ Response: { "t": { "module": { "package": { - "address": "0x6606d773cbd440d344afaad70995ae878932157ceae72f6a3c07550467175d82" + "address": "0x592a42acb1ea711144cca47f5aedbbf6267e2d2fd25c4c5d5bb576fd42d03708" } }, "name": "T", @@ -222,12 +222,12 @@ Response: { { "name": "s", "type": { - "repr": "0x76e7ff71302c8573d647fb6c1e7b72f8ff0552079062eee661c42d33fe843211::m::S", + "repr": "0x888a64ae050f1a10028960f8db5127e74f73c1d30fd3fefb7d8a41d424eeb8ee::m::S", "signature": { "ref": null, "body": { "datatype": { - "package": "0x76e7ff71302c8573d647fb6c1e7b72f8ff0552079062eee661c42d33fe843211", + "package": "0x888a64ae050f1a10028960f8db5127e74f73c1d30fd3fefb7d8a41d424eeb8ee", "module": "m", "type": "S", "typeParameters": [] @@ -261,7 +261,7 @@ Response: { { "name": "t", "type": { - "repr": "0x76e7ff71302c8573d647fb6c1e7b72f8ff0552079062eee661c42d33fe843211::m::T<0x76e7ff71302c8573d647fb6c1e7b72f8ff0552079062eee661c42d33fe843211::m::S>" + "repr": "0x888a64ae050f1a10028960f8db5127e74f73c1d30fd3fefb7d8a41d424eeb8ee::m::T<0x888a64ae050f1a10028960f8db5127e74f73c1d30fd3fefb7d8a41d424eeb8ee::m::S>" } } ] @@ -274,7 +274,7 @@ Response: { }, { "outputState": { - "address": "0x961298822ba41c38483a9bf76b28faaa4892649f91c67bd6030b54511723b8bf", + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", "asMovePackage": null } } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/friends.exp b/crates/iota-graphql-e2e-tests/tests/packages/friends.exp index a1b40d7f362..b004b4bc7ad 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/friends.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/friends.exp @@ -309,6 +309,11 @@ Response: { "asMovePackage": null } }, + { + "outputState": { + "asMovePackage": null + } + }, { "outputState": { "asMovePackage": { @@ -344,11 +349,6 @@ Response: { } } } - }, - { - "outputState": { - "asMovePackage": null - } } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/functions.exp b/crates/iota-graphql-e2e-tests/tests/packages/functions.exp index e2f843e9272..953af68f99b 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/functions.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/functions.exp @@ -95,19 +95,19 @@ Response: { "nodes": [ { "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", + "address": "0x10644229987ef68773ba80dea2977b6fb68cc7f6337be18dffd6da717cf45a3f", "asMovePackage": null } }, { "outputState": { - "address": "0x8279e1e8a30dc799b6c3cd8482321111defcba714eaa185808396fdb8462e758", + "address": "0x23243e483446c7a4bc37b4261206cdbc67457ae1650459c85c1fd04e5cf3518b", "asMovePackage": { "module": { "function": { "module": { "package": { - "address": "0x8279e1e8a30dc799b6c3cd8482321111defcba714eaa185808396fdb8462e758" + "address": "0x23243e483446c7a4bc37b4261206cdbc67457ae1650459c85c1fd04e5cf3518b" } }, "name": "f", @@ -140,7 +140,7 @@ Response: { }, { "outputState": { - "address": "0xa136f167f12fbf24760882e6b239f6b13e0670bd451476d11382f4a89da6a5b9", + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", "asMovePackage": null } } @@ -175,25 +175,13 @@ Response: { "nodes": [ { "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "asMovePackage": null - } - }, - { - "outputState": { - "address": "0xa136f167f12fbf24760882e6b239f6b13e0670bd451476d11382f4a89da6a5b9", - "asMovePackage": null - } - }, - { - "outputState": { - "address": "0xe886932731b9ae676f7ae5fca52870cb50d437c9061864923d850659ce3d88f8", + "address": "0x0793d651e819cfa1447acfaf1d5d4e58bbeaea1a66bcabd2ef6c788ace0b86e0", "asMovePackage": { "module": { "f": { "module": { "package": { - "address": "0xe886932731b9ae676f7ae5fca52870cb50d437c9061864923d850659ce3d88f8" + "address": "0x0793d651e819cfa1447acfaf1d5d4e58bbeaea1a66bcabd2ef6c788ace0b86e0" } }, "name": "f", @@ -223,7 +211,7 @@ Response: { "g": { "module": { "package": { - "address": "0xe886932731b9ae676f7ae5fca52870cb50d437c9061864923d850659ce3d88f8" + "address": "0x0793d651e819cfa1447acfaf1d5d4e58bbeaea1a66bcabd2ef6c788ace0b86e0" } }, "name": "g", @@ -240,6 +228,18 @@ Response: { } } } + }, + { + "outputState": { + "address": "0x10644229987ef68773ba80dea2977b6fb68cc7f6337be18dffd6da717cf45a3f", + "asMovePackage": null + } + }, + { + "outputState": { + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", + "asMovePackage": null + } } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/modules.exp b/crates/iota-graphql-e2e-tests/tests/packages/modules.exp index 0c3e5a60167..a2b672b74ca 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/modules.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/modules.exp @@ -22,23 +22,23 @@ Response: { "nodes": [ { "outputState": { - "address": "0x1cacf510a5ca4b4dbaf6caac35f867f1ef03bfbe2b96adc112933cc937c94989", + "address": "0x5f6c07d6c4e3053699e4ced9afd2ec8b1a2c6d774707087d2b587e9bb2fe31f1", "asMovePackage": { "module": { "name": "m", "package": { - "address": "0x1cacf510a5ca4b4dbaf6caac35f867f1ef03bfbe2b96adc112933cc937c94989" + "address": "0x5f6c07d6c4e3053699e4ced9afd2ec8b1a2c6d774707087d2b587e9bb2fe31f1" }, "fileFormatVersion": 6, - "bytes": "oRzrCwYAAAAIAQAGAgYKAxARBCEEBSUfB0QkCGhADKgBMAAGAQMBBQEADAEAAQIBAgAABAABAQIAAgIBAAEHBQEBAAIEAAYCAwYLAAEJAAEDAQYLAAEIAQABCQABBgsAAQkAAQgBBENvaW4ESU9UQQNiYXIEY29pbgNmb28EaW90YQFtBXZhbHVlHKz1EKXKS0269sqsNfhn8e8Dv74rlq3BEpM8yTfJSYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgABAAADBQsBOAALABYCAQEAAAMIBioAAAAAAAAACgA4AQYrAAAAAAAAAAsAOAEYAgA=", - "disassembly": "// Move bytecode v6\nmodule 1cacf510a5ca4b4dbaf6caac35f867f1ef03bfbe2b96adc112933cc937c94989.m {\nuse 0000000000000000000000000000000000000000000000000000000000000002::coin;\nuse 0000000000000000000000000000000000000000000000000000000000000002::iota;\n\n\n\n\n\n\npublic foo<Ty0: drop>(Arg0: u64, Arg1: &Coin<Ty0>): u64 {\nB0:\n\t0: MoveLoc[1](Arg1: &Coin<Ty0>)\n\t1: Call coin::value<Ty0>(&Coin<Ty0>): u64\n\t2: MoveLoc[0](Arg0: u64)\n\t3: Add\n\t4: Ret\n\n}\npublic bar(Arg0: &Coin<IOTA>): u64 {\nB0:\n\t0: LdU64(42)\n\t1: CopyLoc[0](Arg0: &Coin<IOTA>)\n\t2: Call foo<IOTA>(u64, &Coin<IOTA>): u64\n\t3: LdU64(43)\n\t4: MoveLoc[0](Arg0: &Coin<IOTA>)\n\t5: Call foo<IOTA>(u64, &Coin<IOTA>): u64\n\t6: Mul\n\t7: Ret\n\n}\n}" + "bytes": "oRzrCwYAAAAIAQAGAgYKAxARBCEEBSUfB0QkCGhADKgBMAAGAQMBBQEADAEAAQIBAgAABAABAQIAAgIBAAEHBQEBAAIEAAYCAwYLAAEJAAEDAQYLAAEIAQABCQABBgsAAQkAAQgBBENvaW4ESU9UQQNiYXIEY29pbgNmb28EaW90YQFtBXZhbHVlX2wH1sTjBTaZ5M7Zr9LsixosbXdHBwh9K1h+m7L+MfEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgABAAADBQsBOAALABYCAQEAAAMIBioAAAAAAAAACgA4AQYrAAAAAAAAAAsAOAEYAgA=", + "disassembly": "// Move bytecode v6\nmodule 5f6c07d6c4e3053699e4ced9afd2ec8b1a2c6d774707087d2b587e9bb2fe31f1.m {\nuse 0000000000000000000000000000000000000000000000000000000000000002::coin;\nuse 0000000000000000000000000000000000000000000000000000000000000002::iota;\n\n\n\n\n\n\npublic foo<Ty0: drop>(Arg0: u64, Arg1: &Coin<Ty0>): u64 {\nB0:\n\t0: MoveLoc[1](Arg1: &Coin<Ty0>)\n\t1: Call coin::value<Ty0>(&Coin<Ty0>): u64\n\t2: MoveLoc[0](Arg0: u64)\n\t3: Add\n\t4: Ret\n\n}\npublic bar(Arg0: &Coin<IOTA>): u64 {\nB0:\n\t0: LdU64(42)\n\t1: CopyLoc[0](Arg0: &Coin<IOTA>)\n\t2: Call foo<IOTA>(u64, &Coin<IOTA>): u64\n\t3: LdU64(43)\n\t4: MoveLoc[0](Arg0: &Coin<IOTA>)\n\t5: Call foo<IOTA>(u64, &Coin<IOTA>): u64\n\t6: Mul\n\t7: Ret\n\n}\n}" } } } }, { "outputState": { - "address": "0x25907b13da722ae96c503c5e5917d6d31d876ffc782e6058fa61812e01a82caf", + "address": "0xf22e2f7e20b84f57fdcf1f44c79c321533b922fa9488c23556356ae3f906b0bb", "asMovePackage": null } } @@ -63,7 +63,7 @@ Response: { "nodes": [ { "outputState": { - "address": "0x1cacf510a5ca4b4dbaf6caac35f867f1ef03bfbe2b96adc112933cc937c94989", + "address": "0x5f6c07d6c4e3053699e4ced9afd2ec8b1a2c6d774707087d2b587e9bb2fe31f1", "asMovePackage": { "all": { "edges": [ @@ -136,7 +136,7 @@ Response: { }, { "outputState": { - "address": "0x25907b13da722ae96c503c5e5917d6d31d876ffc782e6058fa61812e01a82caf", + "address": "0xf22e2f7e20b84f57fdcf1f44c79c321533b922fa9488c23556356ae3f906b0bb", "asMovePackage": null } } @@ -161,7 +161,7 @@ Response: { "nodes": [ { "outputState": { - "address": "0x1cacf510a5ca4b4dbaf6caac35f867f1ef03bfbe2b96adc112933cc937c94989", + "address": "0x5f6c07d6c4e3053699e4ced9afd2ec8b1a2c6d774707087d2b587e9bb2fe31f1", "asMovePackage": { "prefix": { "edges": [ @@ -276,7 +276,7 @@ Response: { }, { "outputState": { - "address": "0x25907b13da722ae96c503c5e5917d6d31d876ffc782e6058fa61812e01a82caf", + "address": "0xf22e2f7e20b84f57fdcf1f44c79c321533b922fa9488c23556356ae3f906b0bb", "asMovePackage": null } } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/structs.exp b/crates/iota-graphql-e2e-tests/tests/packages/structs.exp index ac930953794..20c389e3738 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/structs.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/structs.exp @@ -154,13 +154,7 @@ Response: { "nodes": [ { "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "asMovePackage": null - } - }, - { - "outputState": { - "address": "0x4a05c44de50b6021b0a536d649f1e59b2f25a7597d0e453c18cb62e94ab1b7b9", + "address": "0x0a14a715d9be828476504320c2fdcf225312fd35513b5f5cf68128c56c16f053", "asMovePackage": { "module": { "struct": { @@ -189,7 +183,13 @@ Response: { }, { "outputState": { - "address": "0x9e4e458b26d85fe8b20d64dcc355957b0eed1b0c673db96021ca7c6f5fc3b63a", + "address": "0x814a9e61782972fdbe03024dacfc000888b3a4ec0e79805e4c60ef2dca8b6b86", + "asMovePackage": null + } + }, + { + "outputState": { + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", "asMovePackage": null } } @@ -224,25 +224,13 @@ Response: { "nodes": [ { "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "asMovePackage": null - } - }, - { - "outputState": { - "address": "0x9e4e458b26d85fe8b20d64dcc355957b0eed1b0c673db96021ca7c6f5fc3b63a", - "asMovePackage": null - } - }, - { - "outputState": { - "address": "0xbed2a127422bc7a1f96de75b6e9c668e7a1e4f866e729882bb174e89c6719600", + "address": "0x77fbbfd7cfa31aaf09f87ef5eda9dd55a665ce6cd9f7f2b9dd7492150a9d88d7", "asMovePackage": { "module": { "s": { "module": { "package": { - "address": "0x4a05c44de50b6021b0a536d649f1e59b2f25a7597d0e453c18cb62e94ab1b7b9" + "address": "0x0a14a715d9be828476504320c2fdcf225312fd35513b5f5cf68128c56c16f053" } }, "name": "S", @@ -267,7 +255,7 @@ Response: { "t": { "module": { "package": { - "address": "0xbed2a127422bc7a1f96de75b6e9c668e7a1e4f866e729882bb174e89c6719600" + "address": "0x77fbbfd7cfa31aaf09f87ef5eda9dd55a665ce6cd9f7f2b9dd7492150a9d88d7" } }, "name": "T", @@ -294,12 +282,12 @@ Response: { { "name": "s", "type": { - "repr": "0x4a05c44de50b6021b0a536d649f1e59b2f25a7597d0e453c18cb62e94ab1b7b9::m::S", + "repr": "0x0a14a715d9be828476504320c2fdcf225312fd35513b5f5cf68128c56c16f053::m::S", "signature": { "ref": null, "body": { "datatype": { - "package": "0x4a05c44de50b6021b0a536d649f1e59b2f25a7597d0e453c18cb62e94ab1b7b9", + "package": "0x0a14a715d9be828476504320c2fdcf225312fd35513b5f5cf68128c56c16f053", "module": "m", "type": "S", "typeParameters": [] @@ -328,7 +316,7 @@ Response: { { "name": "t", "type": { - "repr": "0x4a05c44de50b6021b0a536d649f1e59b2f25a7597d0e453c18cb62e94ab1b7b9::m::T<0x4a05c44de50b6021b0a536d649f1e59b2f25a7597d0e453c18cb62e94ab1b7b9::m::S>" + "repr": "0x0a14a715d9be828476504320c2fdcf225312fd35513b5f5cf68128c56c16f053::m::T<0x0a14a715d9be828476504320c2fdcf225312fd35513b5f5cf68128c56c16f053::m::S>" } } ] @@ -336,6 +324,18 @@ Response: { } } } + }, + { + "outputState": { + "address": "0x814a9e61782972fdbe03024dacfc000888b3a4ec0e79805e4c60ef2dca8b6b86", + "asMovePackage": null + } + }, + { + "outputState": { + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", + "asMovePackage": null + } } ] } @@ -356,16 +356,6 @@ Response: { "effects": { "objectChanges": { "nodes": [ - { - "outputState": { - "asMovePackage": null - } - }, - { - "outputState": { - "asMovePackage": null - } - }, { "outputState": { "asMovePackage": { @@ -385,6 +375,16 @@ Response: { } } } + }, + { + "outputState": { + "asMovePackage": null + } + }, + { + "outputState": { + "asMovePackage": null + } } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/types.exp b/crates/iota-graphql-e2e-tests/tests/packages/types.exp index 41039c43d50..cedb5979480 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/types.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/types.exp @@ -275,7 +275,7 @@ Response: { "data": null, "errors": [ { - "message": "Internal error occurred while processing request: Error calculating layout for 0x2078ba8cab0588ca9cdb5d8df6068a40d536e173960b16f3e2293064ca820b43::m::S1<u32>: Type layout nesting exceeded limit of 128", + "message": "Internal error occurred while processing request: Error calculating layout for 0x237315fa57d7c90c666ab786ff8c541d669179c8c250eacd39c544b0c22b64d3::m::S1<u32>: Type layout nesting exceeded limit of 128", "locations": [ { "line": 4, diff --git a/crates/iota-graphql-e2e-tests/tests/packages/versioning.exp b/crates/iota-graphql-e2e-tests/tests/packages/versioning.exp index c219f87eea3..255830dd95a 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/versioning.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/versioning.exp @@ -31,14 +31,14 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 } ] } }, "firstPackage": { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1, "module": { "functions": { @@ -52,7 +52,7 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 } ] @@ -81,7 +81,7 @@ Response: { "version": 1 }, { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 } ] @@ -120,18 +120,18 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 }, { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 } ] } }, "firstPackage": { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1, "module": { "functions": { @@ -145,11 +145,11 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 }, { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 } ] @@ -178,11 +178,11 @@ Response: { "version": 1 }, { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 }, { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 } ] @@ -224,22 +224,22 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 }, { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 }, { - "address": "0x7d48d7397b69b9ba14544b8d404b31a2d190ad6a768c533a5c196255548e0e14", + "address": "0x595520f4386371cb9e5163e105dccac852a84d2bffcf3b2f2a3e31f8f7fae86c", "version": 3 } ] } }, "firstPackage": { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1, "module": { "functions": { @@ -253,15 +253,15 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 }, { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 }, { - "address": "0x7d48d7397b69b9ba14544b8d404b31a2d190ad6a768c533a5c196255548e0e14", + "address": "0x595520f4386371cb9e5163e105dccac852a84d2bffcf3b2f2a3e31f8f7fae86c", "version": 3 } ] @@ -290,15 +290,15 @@ Response: { "version": 1 }, { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 }, { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 }, { - "address": "0x7d48d7397b69b9ba14544b8d404b31a2d190ad6a768c533a5c196255548e0e14", + "address": "0x595520f4386371cb9e5163e105dccac852a84d2bffcf3b2f2a3e31f8f7fae86c", "version": 3 } ] @@ -715,7 +715,7 @@ Response: { "after": { "nodes": [ { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2, "previousTransactionBlock": { "effects": { @@ -726,7 +726,7 @@ Response: { } }, { - "address": "0x7d48d7397b69b9ba14544b8d404b31a2d190ad6a768c533a5c196255548e0e14", + "address": "0x595520f4386371cb9e5163e105dccac852a84d2bffcf3b2f2a3e31f8f7fae86c", "version": 3, "previousTransactionBlock": { "effects": { @@ -741,7 +741,7 @@ Response: { "between": { "nodes": [ { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2, "previousTransactionBlock": { "effects": { @@ -763,15 +763,15 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 }, { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 }, { - "address": "0x7d48d7397b69b9ba14544b8d404b31a2d190ad6a768c533a5c196255548e0e14", + "address": "0x595520f4386371cb9e5163e105dccac852a84d2bffcf3b2f2a3e31f8f7fae86c", "version": 3 } ] @@ -779,11 +779,11 @@ Response: { "after": { "nodes": [ { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 }, { - "address": "0x7d48d7397b69b9ba14544b8d404b31a2d190ad6a768c533a5c196255548e0e14", + "address": "0x595520f4386371cb9e5163e105dccac852a84d2bffcf3b2f2a3e31f8f7fae86c", "version": 3 } ] @@ -791,11 +791,11 @@ Response: { "before": { "nodes": [ { - "address": "0x8db84be9bbe12f37d038d54aab337fb24f5d81bfe7950c882a69de130e5bd849", + "address": "0xe5dbc5f8788c905f2a2ceb3da977f732f0bff6f51a95fbc7560795e4c45be055", "version": 1 }, { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 } ] @@ -803,7 +803,7 @@ Response: { "between": { "nodes": [ { - "address": "0x936771e29b3c070de497d8ae8e85b532b5a35dc40d18f99f9bb8ddcef32495ec", + "address": "0xc58112792c2e41458412565379ee79d9f8e0ce8fbed6b4acdc63b4c1e69caa8b", "version": 2 } ] diff --git a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/balance_changes.exp b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/balance_changes.exp index 31f232a4fd7..f2abc5bd6c4 100644 --- a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/balance_changes.exp +++ b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/balance_changes.exp @@ -48,13 +48,13 @@ Response: { "edges": [ { "node": { - "amount": "1000" + "amount": "3000" }, "cursor": "eyJpIjowLCJjIjoyfQ" }, { "node": { - "amount": "4000" + "amount": "1000" }, "cursor": "eyJpIjoxLCJjIjoyfQ" }, @@ -72,13 +72,13 @@ Response: { }, { "node": { - "amount": "2000" + "amount": "4000" }, "cursor": "eyJpIjo0LCJjIjoyfQ" }, { "node": { - "amount": "3000" + "amount": "2000" }, "cursor": "eyJpIjo1LCJjIjoyfQ" } @@ -117,7 +117,7 @@ Response: { }, { "node": { - "amount": "2000" + "amount": "4000" }, "cursor": "eyJpIjo0LCJjIjoxfQ" } @@ -150,13 +150,13 @@ Response: { "edges": [ { "node": { - "amount": "1000" + "amount": "3000" }, "cursor": "eyJpIjowLCJjIjoxfQ" }, { "node": { - "amount": "4000" + "amount": "1000" }, "cursor": "eyJpIjoxLCJjIjoxfQ" }, diff --git a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/dependencies.exp b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/dependencies.exp index 866bde0a891..4c2968717bd 100644 --- a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/dependencies.exp +++ b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/dependencies.exp @@ -65,7 +65,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "7n1FLZBAqk3efwaajAGA7PwZCeksqNW1TxcNHicC7mnF", + "digest": "EjzXToHA9vFBCh9PQuKmQuoWPnxyDqVjHvRiaw3e9kpc", "effects": { "dependencies": { "pageInfo": { @@ -78,25 +78,7 @@ Response: { { "cursor": "eyJpIjowLCJjIjoxfQ", "node": { - "digest": "WzyLyANwduDmmABbs49gCPagc7Ub8zSfoG99KtFSq2F", - "kind": { - "__typename": "ProgrammableTransactionBlock", - "transactions": { - "nodes": [ - {}, - { - "module": "package", - "functionName": "make_immutable" - } - ] - } - } - } - }, - { - "cursor": "eyJpIjoxLCJjIjoxfQ", - "node": { - "digest": "8TqHQX97iavt4JsQCz5tQ8JTDeNmXuWWQMh87RQhf1ip", + "digest": "8aggw6hFNvMqB8A1ig1cwBdZ2etYWv4nfskbtstk1nh2", "kind": { "__typename": "ProgrammableTransactionBlock", "transactions": { @@ -121,6 +103,24 @@ Response: { } } } + }, + { + "cursor": "eyJpIjoxLCJjIjoxfQ", + "node": { + "digest": "GwkM5KrkL2LCGu6L5uT9nuGnPrngiGV4xw4YqrLLdQYp", + "kind": { + "__typename": "ProgrammableTransactionBlock", + "transactions": { + "nodes": [ + {}, + { + "module": "package", + "functionName": "make_immutable" + } + ] + } + } + } } ] } @@ -138,7 +138,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "7n1FLZBAqk3efwaajAGA7PwZCeksqNW1TxcNHicC7mnF", + "digest": "EjzXToHA9vFBCh9PQuKmQuoWPnxyDqVjHvRiaw3e9kpc", "effects": { "dependencies": { "pageInfo": { @@ -151,26 +151,15 @@ Response: { { "cursor": "eyJpIjoxLCJjIjoxfQ", "node": { - "digest": "8TqHQX97iavt4JsQCz5tQ8JTDeNmXuWWQMh87RQhf1ip", + "digest": "GwkM5KrkL2LCGu6L5uT9nuGnPrngiGV4xw4YqrLLdQYp", "kind": { "__typename": "ProgrammableTransactionBlock", "transactions": { "nodes": [ + {}, { - "module": "M1", - "functionName": "sum" - }, - { - "module": "M1", - "functionName": "sum" - }, - { - "module": "M1", - "functionName": "sum" - }, - { - "module": "M1", - "functionName": "create" + "module": "package", + "functionName": "make_immutable" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/object_changes.exp b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/object_changes.exp index 14d776b9cae..04c6f550e86 100644 --- a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/object_changes.exp +++ b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/object_changes.exp @@ -30,7 +30,7 @@ Response: { "objectChanges": { "pageInfo": { "hasPreviousPage": false, - "hasNextPage": true, + "hasNextPage": false, "startCursor": "eyJpIjowLCJjIjoxfQ", "endCursor": "eyJpIjoxOSwiYyI6MX0" }, diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/at_checkpoint.exp b/crates/iota-graphql-e2e-tests/tests/transactions/at_checkpoint.exp index 068bdd27a7f..05e6f8f6495 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/at_checkpoint.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/at_checkpoint.exp @@ -30,7 +30,7 @@ Response: { "c0": { "nodes": [ { - "digest": "7QovzgQGyjpqkgWsWawcAY7yviFNaSc8PrnercRt6RNc", + "digest": "C6iwtuE4nRj6VQugN6RrFxuCpcHJe5NYWY89yRtpSGJx", "kind": { "__typename": "GenesisTransaction" } @@ -46,7 +46,7 @@ Response: { } }, { - "digest": "CeiRZnQNjzPELprt6jeFL89eM9LsadZyAg1eU48uARJT", + "digest": "GfZCVfFqd5xbzuNzNPzjqXYbG81cSA6dNde74gsDnRn", "kind": { "__typename": "ProgrammableTransactionBlock" } @@ -87,7 +87,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "7QovzgQGyjpqkgWsWawcAY7yviFNaSc8PrnercRt6RNc", + "digest": "C6iwtuE4nRj6VQugN6RrFxuCpcHJe5NYWY89yRtpSGJx", "kind": { "__typename": "GenesisTransaction" } @@ -105,7 +105,7 @@ Response: { } }, { - "digest": "CeiRZnQNjzPELprt6jeFL89eM9LsadZyAg1eU48uARJT", + "digest": "GfZCVfFqd5xbzuNzNPzjqXYbG81cSA6dNde74gsDnRn", "kind": { "__typename": "ProgrammableTransactionBlock" } @@ -154,7 +154,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "7QovzgQGyjpqkgWsWawcAY7yviFNaSc8PrnercRt6RNc", + "digest": "C6iwtuE4nRj6VQugN6RrFxuCpcHJe5NYWY89yRtpSGJx", "kind": { "__typename": "GenesisTransaction" } @@ -172,7 +172,7 @@ Response: { } }, { - "digest": "CeiRZnQNjzPELprt6jeFL89eM9LsadZyAg1eU48uARJT", + "digest": "GfZCVfFqd5xbzuNzNPzjqXYbG81cSA6dNde74gsDnRn", "kind": { "__typename": "ProgrammableTransactionBlock" } diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/errors.exp b/crates/iota-graphql-e2e-tests/tests/transactions/errors.exp index a490e991f1e..f6f5ac9bafc 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/errors.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/errors.exp @@ -25,7 +25,7 @@ Response: { { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x23cae5ebc69e4cc972b00c75e766f6eca7b15a6a1e316a0c5c829d688c7763f0::m::boom' (instruction 1), abort code: 42" + "errors": "Error in 1st command, from '0x39fb2ab9290285b990624994efdf9c5b54cb06a2d6492ef6e1058139a3422418::m::boom' (instruction 1), abort code: 42" } } ] @@ -54,7 +54,7 @@ Response: { { "effects": { "status": "FAILURE", - "errors": "Error in 3rd command, from '0x23cae5ebc69e4cc972b00c75e766f6eca7b15a6a1e316a0c5c829d688c7763f0::m::boom' (instruction 1), abort code: 42" + "errors": "Error in 3rd command, from '0x39fb2ab9290285b990624994efdf9c5b54cb06a2d6492ef6e1058139a3422418::m::boom' (instruction 1), abort code: 42" } } ] diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/filters/kind.exp b/crates/iota-graphql-e2e-tests/tests/transactions/filters/kind.exp index 1b4b64c39c5..1dd4cea2898 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/filters/kind.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/filters/kind.exp @@ -60,7 +60,7 @@ Response: { }, "nodes": [ { - "digest": "ELh7yeE6heVjBd8EktWRxBktDHQCAbB534iC6hyceUS5", + "digest": "9QsADBJCUStCnwMe9mUbAbbWeJdm1hD6RzYa3jV6LMcB", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -68,7 +68,7 @@ Response: { } }, { - "digest": "6pXEQU9torcnvo37huWU6RGtns2k2X7A6E3r93GYJkjo", + "digest": "8XqhpeJ3we9cNwW2rA5CotQZgwVBnVFT9PgNsziytDfr", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -76,7 +76,7 @@ Response: { } }, { - "digest": "7Hgk9c2t9eF5Aun2MwQ6bNRFqR4QpnoueCJYJPCEX41d", + "digest": "488uwXSrUQ2Yn3d1PNvXMVxJRjKk228wck1sN4sXooGw", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -84,7 +84,7 @@ Response: { } }, { - "digest": "77UjzaUc6Cxy5WWrxxxoSeo4PEBHAauVa5VGnggt8a41", + "digest": "4HmSLnKrZcShU4EZ3iUimzYxEyMpqpJYVXK19pKzBBzz", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -92,7 +92,7 @@ Response: { } }, { - "digest": "5LQPs2kgdvBsCoxNVRCjrbiY4au833YdN95yXcc13Yv9", + "digest": "CsdQ7PymdxgBfy9PknLLHnj8kTFLqtnayXphjahzYGqV", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -117,7 +117,7 @@ Response: { }, "nodes": [ { - "digest": "ELh7yeE6heVjBd8EktWRxBktDHQCAbB534iC6hyceUS5", + "digest": "9QsADBJCUStCnwMe9mUbAbbWeJdm1hD6RzYa3jV6LMcB", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -142,7 +142,7 @@ Response: { }, "nodes": [ { - "digest": "6pXEQU9torcnvo37huWU6RGtns2k2X7A6E3r93GYJkjo", + "digest": "8XqhpeJ3we9cNwW2rA5CotQZgwVBnVFT9PgNsziytDfr", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -167,7 +167,7 @@ Response: { }, "nodes": [ { - "digest": "7Hgk9c2t9eF5Aun2MwQ6bNRFqR4QpnoueCJYJPCEX41d", + "digest": "488uwXSrUQ2Yn3d1PNvXMVxJRjKk228wck1sN4sXooGw", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -192,7 +192,7 @@ Response: { }, "nodes": [ { - "digest": "77UjzaUc6Cxy5WWrxxxoSeo4PEBHAauVa5VGnggt8a41", + "digest": "4HmSLnKrZcShU4EZ3iUimzYxEyMpqpJYVXK19pKzBBzz", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -217,7 +217,7 @@ Response: { }, "nodes": [ { - "digest": "5LQPs2kgdvBsCoxNVRCjrbiY4au833YdN95yXcc13Yv9", + "digest": "CsdQ7PymdxgBfy9PknLLHnj8kTFLqtnayXphjahzYGqV", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/programmable.exp b/crates/iota-graphql-e2e-tests/tests/transactions/programmable.exp index 9f30fb98699..bbd6b00fd67 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/programmable.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/programmable.exp @@ -20,12 +20,12 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "JC4fDgqHCNnYStc8NRrjfZq1sTUrMGhjTJ3Fw9RD7he1", + "digest": "2MUxrjysEwGdMf7NyDjUsZy6tcbHAHyXDfsB1Wo8mPH2", "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" }, "signatures": [ - "AOAEyKej72mYRX5Xj3vU09LYD6Go0W2fUQd2bJ3wFDvLtHrCS5uNBIvjgCBeSIS7pX7dBJG04mMUQA4hdPbWugB/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" + "AGs3zo0WQvZue0clp4H4fb2yWFicRp9QElAVCu7QVCLWIGSxdRfpwo8HcO0AyP0hx+QeH1bQQ9RUYfvUq8QQcQl/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" ], "gasInput": { "gasSponsor": { @@ -34,7 +34,7 @@ Response: { "gasPayment": { "nodes": [ { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431" } ] }, @@ -96,7 +96,7 @@ Response: { "dependencies": { "nodes": [ { - "digest": "7QovzgQGyjpqkgWsWawcAY7yviFNaSc8PrnercRt6RNc" + "digest": "C6iwtuE4nRj6VQugN6RrFxuCpcHJe5NYWY89yRtpSGJx" } ] }, @@ -116,37 +116,37 @@ Response: { "objectChanges": { "nodes": [ { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "idCreated": false, + "address": "0x1f268cce37163faf272ffb7404237b30864e158e35d578c34bf09be1117db47f", + "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "digest": "CnDkVk4Wx3y2mxUujcT1XhCRowLLt4YVUa1nKADMaiP5" + "address": "0x1f268cce37163faf272ffb7404237b30864e158e35d578c34bf09be1117db47f", + "digest": "DBH9fiDneZnyYezJei1k296N2Qms1yBoP3DyquJGUiyt" } }, { - "address": "0x8c336a8913724573c0e40a7c6db1b13de1af095489035dc2bfd0750b910e534d", + "address": "0x3513deafe141b09e3e74ade0c10ad7cfef1f28913e0dfa5890447b7aadc68271", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x8c336a8913724573c0e40a7c6db1b13de1af095489035dc2bfd0750b910e534d", - "digest": "APb8E9nW7wXwX8h496ridJxPXL3crwLC2YzsvwRX8iyk" + "address": "0x3513deafe141b09e3e74ade0c10ad7cfef1f28913e0dfa5890447b7aadc68271", + "digest": "C4vpRpboCVaR3kadwpibKdymYjBnCigfRJitoonyvuGM" } }, { - "address": "0xf1c7bf0f43f4c4fd40d63b6555234287034b7c87c6b3b90c81905e722260992b", - "idCreated": true, + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", + "idCreated": false, "idDeleted": false, "outputState": { - "address": "0xf1c7bf0f43f4c4fd40d63b6555234287034b7c87c6b3b90c81905e722260992b", - "digest": "Bb2AFUDkVVHDaStDDRogBC2WU8WMKoqQrML2ju3DYRCK" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", + "digest": "8ScfsyhHBDxQm6jr66NKUfnM64eJsQuB9jFR6DBdQNnH" } } ] }, "gasEffects": { "gasObject": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431" }, "gasSummary": { "computationCost": "1000000", @@ -163,7 +163,7 @@ Response: { "sequenceNumber": 1 }, "transactionBlock": { - "digest": "JC4fDgqHCNnYStc8NRrjfZq1sTUrMGhjTJ3Fw9RD7he1" + "digest": "2MUxrjysEwGdMf7NyDjUsZy6tcbHAHyXDfsB1Wo8mPH2" } }, "expiration": null @@ -190,12 +190,12 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "Ayiirt9DAEt3U68euasXVqUZetSioL7JMdGAwmdZFGmd", + "digest": "DPd6z9jYxhFxDzXU9LY2LT14Cr2aE6mmHoq4LG78rEfM", "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" }, "signatures": [ - "AAGkMeD6xCM0uORnuTpJWY2fHFFbnZGyZlglkSi6uB3xfKP2M0DkeHPQKHhlZnVB3rjyJ4DSWY/LTVhCDZEzYgx/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" + "AF1QOI9E2qiLqT99GzC5wH8EsYf4wLx22TUvP1+OrDc3J9adqvn3xoVyojhbDqdTbax2Si4HhNepJBVCUR4Q5Ah/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" ], "gasInput": { "gasSponsor": { @@ -204,7 +204,7 @@ Response: { "gasPayment": { "nodes": [ { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431" } ] }, @@ -219,21 +219,21 @@ Response: { "cursor": "eyJpIjowLCJjIjoyfQ", "node": { "__typename": "OwnedOrImmutable", - "address": "0xf1c7bf0f43f4c4fd40d63b6555234287034b7c87c6b3b90c81905e722260992b", + "address": "0x3513deafe141b09e3e74ade0c10ad7cfef1f28913e0dfa5890447b7aadc68271", "version": 2, - "digest": "Bb2AFUDkVVHDaStDDRogBC2WU8WMKoqQrML2ju3DYRCK", + "digest": "C4vpRpboCVaR3kadwpibKdymYjBnCigfRJitoonyvuGM", "object": { - "address": "0xf1c7bf0f43f4c4fd40d63b6555234287034b7c87c6b3b90c81905e722260992b", + "address": "0x3513deafe141b09e3e74ade0c10ad7cfef1f28913e0dfa5890447b7aadc68271", "version": 2, - "digest": "Bb2AFUDkVVHDaStDDRogBC2WU8WMKoqQrML2ju3DYRCK", + "digest": "C4vpRpboCVaR3kadwpibKdymYjBnCigfRJitoonyvuGM", "asMoveObject": { "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::package::UpgradeCap" }, "json": { - "id": "0xf1c7bf0f43f4c4fd40d63b6555234287034b7c87c6b3b90c81905e722260992b", - "package": "0x8c336a8913724573c0e40a7c6db1b13de1af095489035dc2bfd0750b910e534d", + "id": "0x3513deafe141b09e3e74ade0c10ad7cfef1f28913e0dfa5890447b7aadc68271", + "package": "0x1f268cce37163faf272ffb7404237b30864e158e35d578c34bf09be1117db47f", "version": "1", "policy": 0 } @@ -315,7 +315,7 @@ Response: { "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000002" ], - "currentPackage": "0x8c336a8913724573c0e40a7c6db1b13de1af095489035dc2bfd0750b910e534d", + "currentPackage": "0x1f268cce37163faf272ffb7404237b30864e158e35d578c34bf09be1117db47f", "upgradeTicket": { "__typename": "Result", "cmd": 0, @@ -367,10 +367,10 @@ Response: { "dependencies": { "nodes": [ { - "digest": "7QovzgQGyjpqkgWsWawcAY7yviFNaSc8PrnercRt6RNc" + "digest": "2MUxrjysEwGdMf7NyDjUsZy6tcbHAHyXDfsB1Wo8mPH2" }, { - "digest": "JC4fDgqHCNnYStc8NRrjfZq1sTUrMGhjTJ3Fw9RD7he1" + "digest": "C6iwtuE4nRj6VQugN6RrFxuCpcHJe5NYWY89yRtpSGJx" } ] }, @@ -390,37 +390,37 @@ Response: { "objectChanges": { "nodes": [ { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", + "address": "0x3513deafe141b09e3e74ade0c10ad7cfef1f28913e0dfa5890447b7aadc68271", "idCreated": false, "idDeleted": false, "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "digest": "8hFvFZ3SXtt7vC3ngvEKioAD51aZLEfuNBXrZncyBrPm" + "address": "0x3513deafe141b09e3e74ade0c10ad7cfef1f28913e0dfa5890447b7aadc68271", + "digest": "8PrCtMzw1mk82qsVW9eDVi3TbCRDWC1t19JZ5qh85Dch" } }, { - "address": "0x4400f7effd240421d4739ab0ee929a1074defabe5c88664ec82b0d0a8e574e0b", + "address": "0x37024660df6c85f6cf4b852d0b7a4e60b2db23af53c39159b587409c9eb552bd", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x4400f7effd240421d4739ab0ee929a1074defabe5c88664ec82b0d0a8e574e0b", - "digest": "DoPuhchMtpDPPFmvnSQZpQkc3yUXnLtWQbrJXtoXnChc" + "address": "0x37024660df6c85f6cf4b852d0b7a4e60b2db23af53c39159b587409c9eb552bd", + "digest": "2a1BSB63ZdQvbUGDNWLQaqqkzX4rnZpB7sPV6yPqY657" } }, { - "address": "0xf1c7bf0f43f4c4fd40d63b6555234287034b7c87c6b3b90c81905e722260992b", + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", "idCreated": false, "idDeleted": false, "outputState": { - "address": "0xf1c7bf0f43f4c4fd40d63b6555234287034b7c87c6b3b90c81905e722260992b", - "digest": "F8bfTZZaTBzU4RTVqUsyXajNGNjJ9WZNPMWUPvHeckRz" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", + "digest": "7UepzubAJ5fYMtTgUPRfNiqJAdek4TyQ34RkqhsHMw8F" } } ] }, "gasEffects": { "gasObject": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431" }, "gasSummary": { "computationCost": "1000000", @@ -437,7 +437,7 @@ Response: { "sequenceNumber": 2 }, "transactionBlock": { - "digest": "Ayiirt9DAEt3U68euasXVqUZetSioL7JMdGAwmdZFGmd" + "digest": "DPd6z9jYxhFxDzXU9LY2LT14Cr2aE6mmHoq4LG78rEfM" } }, "expiration": null @@ -482,12 +482,12 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "BVkWwF92Dd6Urnc4y3VBZzVTDdHbF78xaJDn35JwLmZn", + "digest": "HspCTE5Co5uBXcdincQ6jEwBQY1giMQYGLjy1boHeGNs", "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" }, "signatures": [ - "ACA5XpS0EOg0E8Sa9LxokH9CFapcyLOdREx9AcUgAH9BySB5mLOBQEIaFHYB+KYX3AnUlaDqynzt0FDB1F/fvwp/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" + "AKsBuzqPMoivJqZBBIGchFgks7rJY1ZnXKjLSykp++5+XkrZodPl6z9QhPkYebNrLMfBSzO9r+lkH2PNR+pOXg5/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" ], "gasInput": { "gasSponsor": { @@ -496,7 +496,7 @@ Response: { "gasPayment": { "nodes": [ { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431" } ] }, @@ -591,7 +591,7 @@ Response: { "cursor": "eyJpIjozLCJjIjozfQ", "node": { "__typename": "MoveCallTransaction", - "package": "0x4400f7effd240421d4739ab0ee929a1074defabe5c88664ec82b0d0a8e574e0b", + "package": "0x37024660df6c85f6cf4b852d0b7a4e60b2db23af53c39159b587409c9eb552bd", "module": "m", "functionName": "new", "typeArguments": [], @@ -615,7 +615,7 @@ Response: { ], "return": [ { - "repr": "0x8c336a8913724573c0e40a7c6db1b13de1af095489035dc2bfd0750b910e534d::m::Foo" + "repr": "0x1f268cce37163faf272ffb7404237b30864e158e35d578c34bf09be1117db47f::m::Foo" } ] } @@ -642,7 +642,7 @@ Response: { "cursor": "eyJpIjo1LCJjIjozfQ", "node": { "__typename": "MoveCallTransaction", - "package": "0x4400f7effd240421d4739ab0ee929a1074defabe5c88664ec82b0d0a8e574e0b", + "package": "0x37024660df6c85f6cf4b852d0b7a4e60b2db23af53c39159b587409c9eb552bd", "module": "m", "functionName": "new", "typeArguments": [], @@ -666,7 +666,7 @@ Response: { ], "return": [ { - "repr": "0x8c336a8913724573c0e40a7c6db1b13de1af095489035dc2bfd0750b910e534d::m::Foo" + "repr": "0x1f268cce37163faf272ffb7404237b30864e158e35d578c34bf09be1117db47f::m::Foo" } ] } @@ -676,7 +676,7 @@ Response: { "cursor": "eyJpIjo2LCJjIjozfQ", "node": { "__typename": "MoveCallTransaction", - "package": "0x4400f7effd240421d4739ab0ee929a1074defabe5c88664ec82b0d0a8e574e0b", + "package": "0x37024660df6c85f6cf4b852d0b7a4e60b2db23af53c39159b587409c9eb552bd", "module": "m", "functionName": "burn", "typeArguments": [], @@ -692,7 +692,7 @@ Response: { "typeParameters": [], "parameters": [ { - "repr": "0x8c336a8913724573c0e40a7c6db1b13de1af095489035dc2bfd0750b910e534d::m::Foo" + "repr": "0x1f268cce37163faf272ffb7404237b30864e158e35d578c34bf09be1117db47f::m::Foo" } ], "return": [] @@ -744,10 +744,10 @@ Response: { "dependencies": { "nodes": [ { - "digest": "Ayiirt9DAEt3U68euasXVqUZetSioL7JMdGAwmdZFGmd" + "digest": "5dRCum6yGH8yf3AE1r674Ejvecm7VgNjTSZx25NRuXKj" }, { - "digest": "E9jtVDAwSVRpNaTFTUdi8ra788iTaiM132Hd6z9gc18Y" + "digest": "DPd6z9jYxhFxDzXU9LY2LT14Cr2aE6mmHoq4LG78rEfM" } ] }, @@ -767,43 +767,44 @@ Response: { "objectChanges": { "nodes": [ { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "idCreated": false, + "address": "0x6098eab27dea4e7a28d81d183cf5885f907abad719cff51d4b44d4caf777367e", + "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "digest": "BGrEPRKLpknuRRFFR9DLxzY1e1DMPVEe332oMpry3X7B", + "address": "0x6098eab27dea4e7a28d81d183cf5885f907abad719cff51d4b44d4caf777367e", + "digest": "9Uw6Bm2Qx4T5C4Eqb1pXLV4uFPq3oYUV1EYCUFqLRYWE", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x1f268cce37163faf272ffb7404237b30864e158e35d578c34bf09be1117db47f::m::Foo" }, "json": { - "id": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "balance": { - "value": "299999982082400" - } + "id": "0x6098eab27dea4e7a28d81d183cf5885f907abad719cff51d4b44d4caf777367e", + "xs": [ + "42", + "43" + ] } } } } }, { - "address": "0xa4c559f7cb00c7db5a7fe8bce053d01761626dab3c83f2d60f98dfc2775c7301", - "idCreated": true, + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", + "idCreated": false, "idDeleted": false, "outputState": { - "address": "0xa4c559f7cb00c7db5a7fe8bce053d01761626dab3c83f2d60f98dfc2775c7301", - "digest": "74PJWceSPwJnGAq7c8YYnbz1DoinXWGtB3GCywQDS3Qd", + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", + "digest": "JA2ShgjgZj3QuVUC88YnYsYmaSDSww12TyJm6UsYGLxf", "asMoveObject": { "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0xa4c559f7cb00c7db5a7fe8bce053d01761626dab3c83f2d60f98dfc2775c7301", + "id": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", "balance": { - "value": "2000" + "value": "299999982082400" } } } @@ -811,23 +812,22 @@ Response: { } }, { - "address": "0xd9d2c7d7dddac200f42f3cde3a6cf715f9c2ae43ce4f1925e9ad0f4363909205", + "address": "0xe0cf72b0f7b4a5cfed63514352a8082fa088c83e2a01efa8e9395230a3641d3c", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0xd9d2c7d7dddac200f42f3cde3a6cf715f9c2ae43ce4f1925e9ad0f4363909205", - "digest": "J29xCJyjAMyBUDYXPuGR49hf8d9nuMnXCbmkUUYkS8oz", + "address": "0xe0cf72b0f7b4a5cfed63514352a8082fa088c83e2a01efa8e9395230a3641d3c", + "digest": "zunK6i6YgFZ2QNKyPMGAnLQVsv8EB1oGoG4orrbuPZp", "asMoveObject": { "contents": { "type": { - "repr": "0x8c336a8913724573c0e40a7c6db1b13de1af095489035dc2bfd0750b910e534d::m::Foo" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0xd9d2c7d7dddac200f42f3cde3a6cf715f9c2ae43ce4f1925e9ad0f4363909205", - "xs": [ - "42", - "43" - ] + "id": "0xe0cf72b0f7b4a5cfed63514352a8082fa088c83e2a01efa8e9395230a3641d3c", + "balance": { + "value": "2000" + } } } } @@ -837,7 +837,7 @@ Response: { }, "gasEffects": { "gasObject": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431" }, "gasSummary": { "computationCost": "1000000", @@ -854,7 +854,7 @@ Response: { "sequenceNumber": 3 }, "transactionBlock": { - "digest": "BVkWwF92Dd6Urnc4y3VBZzVTDdHbF78xaJDn35JwLmZn" + "digest": "HspCTE5Co5uBXcdincQ6jEwBQY1giMQYGLjy1boHeGNs" } }, "expiration": null @@ -881,12 +881,12 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "7C2d9xdydRZA2ufeDKVh6BKk6KjpmcWa5RdqKkBuVBa3", + "digest": "6sfdCNCQ8ub3Y9oZGGStjMH1uCmvSXUEiGzoBqH421dG", "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" }, "signatures": [ - "AGreyn+gWEHg13CIWTkxYb0XyR0h02PL7z86mbBBFHM+wkXrALSDK4WCaxdxxRL4pHA78IDtUr+x3Y3EH/yQuQ5/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" + "AG6a6dB7HvUZ7noeZWRonauEF6lDeTc596CAc5/rZSwkXPbFIwcZG3n3s5apce38odI03XO7XeECE9IQbK9Ngwx/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" ], "gasInput": { "gasSponsor": { @@ -895,7 +895,7 @@ Response: { "gasPayment": { "nodes": [ { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431" } ] }, @@ -942,7 +942,7 @@ Response: { "dependencies": { "nodes": [ { - "digest": "BVkWwF92Dd6Urnc4y3VBZzVTDdHbF78xaJDn35JwLmZn" + "digest": "HspCTE5Co5uBXcdincQ6jEwBQY1giMQYGLjy1boHeGNs" } ] }, @@ -962,19 +962,19 @@ Response: { "objectChanges": { "nodes": [ { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", "idCreated": false, "idDeleted": false, "outputState": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4", - "digest": "nWzh7AufHTnrdB1zJzzUb89bhDcRKtaLqNLnuHhxvPS" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431", + "digest": "2bRQUkHdUVNbyTfXJUcTkKgcZ4v6XhYXfvkQPnELWtQa" } } ] }, "gasEffects": { "gasObject": { - "address": "0x148ca7092f2fe315b8f103c9f9a1cdfee22af26dd5aef1f9c00204d1136ed4e4" + "address": "0xc69f1954c6d13e3630075f462966e06d9f05fec29846d3d781026187e5411431" }, "gasSummary": { "computationCost": "1000000", @@ -991,7 +991,7 @@ Response: { "sequenceNumber": 4 }, "transactionBlock": { - "digest": "7C2d9xdydRZA2ufeDKVh6BKk6KjpmcWa5RdqKkBuVBa3" + "digest": "6sfdCNCQ8ub3Y9oZGGStjMH1uCmvSXUEiGzoBqH421dG" } }, "expiration": null diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/random.exp b/crates/iota-graphql-e2e-tests/tests/transactions/random.exp index 84ac8c622f6..a8828476838 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/random.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/random.exp @@ -19,7 +19,7 @@ Response: { "json": { "id": "0x0000000000000000000000000000000000000000000000000000000000000008", "inner": { - "id": "0x24d1d77c8cf2db0e8287ea7ce8d0570cfe7f047aebe58fd914fb529deba7d8e7", + "id": "0x3f92eceed239ba443daf612dcdf621f85feba71f3698d53c9f2a6e4b4246b1c6", "version": "1" } } diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/alternating.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/alternating.exp index 769b0da3a60..1012fcbc6b0 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/alternating.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/alternating.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "DaLawVV4UMq6hAVBBY8cobbFhwHDeFzsS3NoQrBpu6mP", + "digest": "8cpGKSTWaeL8reosZMhS5id4QZCrvXSgUpgiRMPNjxC3", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -124,7 +124,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "7SduRXoRF3A6iGGFrw1QgVycjcFP9D8cLLiL6Qpsom5z", + "digest": "5qZ1vACpwiYmHNW7N53GsALNYXjwsTDHffLiiTWef6Be", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -135,7 +135,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "BSrFSzzsckmsYSezXKmFhdJ2CAkrNqqv5tViaRB6B1VN", + "digest": "CHV4FyUtTkwoEQAFDBdGvWp7yVLvkeLY1x6uExfaJw2n", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -163,7 +163,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "7SduRXoRF3A6iGGFrw1QgVycjcFP9D8cLLiL6Qpsom5z", + "digest": "5qZ1vACpwiYmHNW7N53GsALNYXjwsTDHffLiiTWef6Be", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -191,7 +191,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "J8BPw7KNfobSLFY4PjkW9hghBCB1xcVmYSE4bDJ6AeF", + "digest": "7iyfoh3MRgZTaHufEhoLsvpzAqm1MVcf7GoENqSeoyVk", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -219,7 +219,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "BSrFSzzsckmsYSezXKmFhdJ2CAkrNqqv5tViaRB6B1VN", + "digest": "CHV4FyUtTkwoEQAFDBdGvWp7yVLvkeLY1x6uExfaJw2n", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -230,7 +230,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "J8BPw7KNfobSLFY4PjkW9hghBCB1xcVmYSE4bDJ6AeF", + "digest": "7iyfoh3MRgZTaHufEhoLsvpzAqm1MVcf7GoENqSeoyVk", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -258,7 +258,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "9mPn4RD4yHqHh57drkGEAUs6tc2znv3qFYNwkDDZwKGb", + "digest": "D8QqFoKJBSNuM7pg11YtHMfwuyaYCFkysDM9vDdtABQP", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -286,7 +286,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "9mPn4RD4yHqHh57drkGEAUs6tc2znv3qFYNwkDDZwKGb", + "digest": "D8QqFoKJBSNuM7pg11YtHMfwuyaYCFkysDM9vDdtABQP", "effects": { "checkpoint": { "sequenceNumber": 3 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/both_cursors.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/both_cursors.exp index 215b7169dd1..711a1244140 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/both_cursors.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/both_cursors.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "w283ZNJApJnApyukmuvNxAVPook3kuw6Buy5uxA2vMT", + "digest": "BXT54PdMqXqVD9dX8Theh5qaF4xfGPGaNmcpicfnSrJv", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -124,7 +124,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "w283ZNJApJnApyukmuvNxAVPook3kuw6Buy5uxA2vMT", + "digest": "BXT54PdMqXqVD9dX8Theh5qaF4xfGPGaNmcpicfnSrJv", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -135,7 +135,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "8NFHLs1FfwuzH2QcFq3h4MpZfixe6mkUh654DKaKkzAT", + "digest": "9SuLzZ4KjmPmEGSH2yxda1bN4Uc1MLkfXENGr4x4r8kg", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -163,7 +163,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "8BAweLWDcP93oevhYAvbvCAsMsUPQafgef1T9iQ1yg6D", + "digest": "4fPz4jRWsoSWZhL3tkdkuW2qKeSWVgtkffCW1EaNsT3B", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/first.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/first.exp index 35a0deed246..d0592ebd8b6 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/first.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/first.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "7vTAELJfuqwZ74Nrko6eqXCEBnoqbiZNxkcPLkcHDpHR", + "digest": "57AHRnaYzfkSHWFvDUGLRzwYCAuPYEqW1qRiraXM1ojX", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -107,7 +107,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "w283ZNJApJnApyukmuvNxAVPook3kuw6Buy5uxA2vMT", + "digest": "BXT54PdMqXqVD9dX8Theh5qaF4xfGPGaNmcpicfnSrJv", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "8NFHLs1FfwuzH2QcFq3h4MpZfixe6mkUh654DKaKkzAT", + "digest": "9SuLzZ4KjmPmEGSH2yxda1bN4Uc1MLkfXENGr4x4r8kg", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -129,7 +129,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "CyDVL1kSotyeiZWBTtiuW1havytGPypDTBCevDHYPU1i", + "digest": "7t5vBT9SQ9huJhs1naw3wYm6F5XGWgUfw7UmGMUmybU7", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -140,7 +140,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "EdLLzJdrZ7PXWiBR7vdDkzHHeEbdUotyJxAXRK4ZJbyT", + "digest": "EaX6VYsBJhzHKfa8FrnQdJEZLcjs398YJH9YP7JvhdiJ", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -168,7 +168,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "7vTAELJfuqwZ74Nrko6eqXCEBnoqbiZNxkcPLkcHDpHR", + "digest": "57AHRnaYzfkSHWFvDUGLRzwYCAuPYEqW1qRiraXM1ojX", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -196,7 +196,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "w283ZNJApJnApyukmuvNxAVPook3kuw6Buy5uxA2vMT", + "digest": "BXT54PdMqXqVD9dX8Theh5qaF4xfGPGaNmcpicfnSrJv", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -224,7 +224,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "8NFHLs1FfwuzH2QcFq3h4MpZfixe6mkUh654DKaKkzAT", + "digest": "9SuLzZ4KjmPmEGSH2yxda1bN4Uc1MLkfXENGr4x4r8kg", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -268,7 +268,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "CyDVL1kSotyeiZWBTtiuW1havytGPypDTBCevDHYPU1i", + "digest": "7t5vBT9SQ9huJhs1naw3wYm6F5XGWgUfw7UmGMUmybU7", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -279,7 +279,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "EdLLzJdrZ7PXWiBR7vdDkzHHeEbdUotyJxAXRK4ZJbyT", + "digest": "EaX6VYsBJhzHKfa8FrnQdJEZLcjs398YJH9YP7JvhdiJ", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -333,7 +333,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "CyDVL1kSotyeiZWBTtiuW1havytGPypDTBCevDHYPU1i", + "digest": "7t5vBT9SQ9huJhs1naw3wYm6F5XGWgUfw7UmGMUmybU7", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -344,7 +344,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "EdLLzJdrZ7PXWiBR7vdDkzHHeEbdUotyJxAXRK4ZJbyT", + "digest": "EaX6VYsBJhzHKfa8FrnQdJEZLcjs398YJH9YP7JvhdiJ", "effects": { "checkpoint": { "sequenceNumber": 3 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/last.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/last.exp index 9bb922e4f06..fd5a84283ed 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/last.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/last.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "7vTAELJfuqwZ74Nrko6eqXCEBnoqbiZNxkcPLkcHDpHR", + "digest": "57AHRnaYzfkSHWFvDUGLRzwYCAuPYEqW1qRiraXM1ojX", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -107,7 +107,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "MJJQX7jM5Dgehpg3xmtFbjtAsFcfJT9XkvJ213Zg6vH", + "digest": "F2aqQMFU4LQb2geYPrBFPx7BpCs2n6Fco6jmVUaeeR79", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "6jHo4nZ7NZqVxyq6sF1VGtfjzGJukW2F5AS1b4aUzyeD", + "digest": "H4SDVW7xfJZE4jDyPif6eTB7eqXrfHMMyiky6vVL7HUA", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -129,7 +129,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "E752F1sH2yqGHGWgsEvrTsWJMBcMNSjs6CHBuchS4akc", + "digest": "3KnZHraPVgdxPD4TRwcJWQmNt2kTgt2Rc1PJN57kHqer", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -140,7 +140,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "9yzqWZKuSHSS3jLVrugaKUwJmdbP4WmL57sLdavmNUda", + "digest": "3nrJaF4X7wBpFhh7Ga6gqt5FE7Bq8u5FSNfRhuDLrQop", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -168,7 +168,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "9yzqWZKuSHSS3jLVrugaKUwJmdbP4WmL57sLdavmNUda", + "digest": "3nrJaF4X7wBpFhh7Ga6gqt5FE7Bq8u5FSNfRhuDLrQop", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -196,7 +196,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "E752F1sH2yqGHGWgsEvrTsWJMBcMNSjs6CHBuchS4akc", + "digest": "3KnZHraPVgdxPD4TRwcJWQmNt2kTgt2Rc1PJN57kHqer", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -224,7 +224,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "6jHo4nZ7NZqVxyq6sF1VGtfjzGJukW2F5AS1b4aUzyeD", + "digest": "H4SDVW7xfJZE4jDyPif6eTB7eqXrfHMMyiky6vVL7HUA", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -268,7 +268,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "7vTAELJfuqwZ74Nrko6eqXCEBnoqbiZNxkcPLkcHDpHR", + "digest": "57AHRnaYzfkSHWFvDUGLRzwYCAuPYEqW1qRiraXM1ojX", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -279,7 +279,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "MJJQX7jM5Dgehpg3xmtFbjtAsFcfJT9XkvJ213Zg6vH", + "digest": "F2aqQMFU4LQb2geYPrBFPx7BpCs2n6Fco6jmVUaeeR79", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/first.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/first.exp index 14d6184d8fa..5ce51667c15 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/first.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/first.exp @@ -164,7 +164,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "DaLawVV4UMq6hAVBBY8cobbFhwHDeFzsS3NoQrBpu6mP", + "digest": "8cpGKSTWaeL8reosZMhS5id4QZCrvXSgUpgiRMPNjxC3", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -175,7 +175,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "6PEMNj15uRSr9iAVynw95ck73zZkmYCbZ1E5MnuEiN6y", + "digest": "FFGzqxZFuV4ydaJjKHfkjuiiPKdRXu3hVeEQvhVKboHW", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -186,7 +186,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoxNywiaSI6ZmFsc2V9", "node": { - "digest": "8kZ8YfX7GQqeGeWLjUYBzhhYiavYN7aSQTChSASsbfgT", + "digest": "Cipdc7dC4aE4HoRTzMgVTBWdPeM8mF1wJyX55WzPQb1G", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -197,7 +197,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoxOCwiaSI6ZmFsc2V9", "node": { - "digest": "8EhHDqKAReeQHTp6TC7gkNzuddSWr6RkEUjm7vJRFWJa", + "digest": "D4xVWGvfbiuofY7A15zpXmC3FqHeo1C5GWuRVeXw2Qds", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -208,7 +208,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyMSwiaSI6ZmFsc2V9", "node": { - "digest": "68V4d957WGWLYNzQWo6DoMCdfim6mkUqDjdvno84xSvP", + "digest": "DKETSCpkRmjKaoU6ckThV9sdk7BjC7bRZeF3gaj8xW6N", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -236,7 +236,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "DaLawVV4UMq6hAVBBY8cobbFhwHDeFzsS3NoQrBpu6mP", + "digest": "8cpGKSTWaeL8reosZMhS5id4QZCrvXSgUpgiRMPNjxC3", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -264,7 +264,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "6PEMNj15uRSr9iAVynw95ck73zZkmYCbZ1E5MnuEiN6y", + "digest": "FFGzqxZFuV4ydaJjKHfkjuiiPKdRXu3hVeEQvhVKboHW", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -308,7 +308,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoxNywiaSI6ZmFsc2V9", "node": { - "digest": "8kZ8YfX7GQqeGeWLjUYBzhhYiavYN7aSQTChSASsbfgT", + "digest": "Cipdc7dC4aE4HoRTzMgVTBWdPeM8mF1wJyX55WzPQb1G", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -336,7 +336,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoxOCwiaSI6ZmFsc2V9", "node": { - "digest": "8EhHDqKAReeQHTp6TC7gkNzuddSWr6RkEUjm7vJRFWJa", + "digest": "D4xVWGvfbiuofY7A15zpXmC3FqHeo1C5GWuRVeXw2Qds", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -364,7 +364,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoyMSwiaSI6ZmFsc2V9", "node": { - "digest": "68V4d957WGWLYNzQWo6DoMCdfim6mkUqDjdvno84xSvP", + "digest": "DKETSCpkRmjKaoU6ckThV9sdk7BjC7bRZeF3gaj8xW6N", "effects": { "checkpoint": { "sequenceNumber": 5 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/last.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/last.exp index 71b62034b72..7e5df3804eb 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/last.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/last.exp @@ -164,7 +164,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "DaLawVV4UMq6hAVBBY8cobbFhwHDeFzsS3NoQrBpu6mP", + "digest": "8cpGKSTWaeL8reosZMhS5id4QZCrvXSgUpgiRMPNjxC3", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -175,7 +175,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "6PEMNj15uRSr9iAVynw95ck73zZkmYCbZ1E5MnuEiN6y", + "digest": "FFGzqxZFuV4ydaJjKHfkjuiiPKdRXu3hVeEQvhVKboHW", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -186,7 +186,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoxNywiaSI6ZmFsc2V9", "node": { - "digest": "8kZ8YfX7GQqeGeWLjUYBzhhYiavYN7aSQTChSASsbfgT", + "digest": "Cipdc7dC4aE4HoRTzMgVTBWdPeM8mF1wJyX55WzPQb1G", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -197,7 +197,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyMSwiaSI6ZmFsc2V9", "node": { - "digest": "4RuZotWj8QPLUxSB1UCv8kxdRKHLRZ2qqi3S3A4HqR3R", + "digest": "4F7HvMEkm1GpScHmGmvTR9tcE3kY5yZmmmA37NPKdmJa", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -225,7 +225,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyMSwiaSI6ZmFsc2V9", "node": { - "digest": "4RuZotWj8QPLUxSB1UCv8kxdRKHLRZ2qqi3S3A4HqR3R", + "digest": "4F7HvMEkm1GpScHmGmvTR9tcE3kY5yZmmmA37NPKdmJa", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -253,7 +253,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoxNywiaSI6ZmFsc2V9", "node": { - "digest": "8kZ8YfX7GQqeGeWLjUYBzhhYiavYN7aSQTChSASsbfgT", + "digest": "Cipdc7dC4aE4HoRTzMgVTBWdPeM8mF1wJyX55WzPQb1G", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -313,7 +313,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "6PEMNj15uRSr9iAVynw95ck73zZkmYCbZ1E5MnuEiN6y", + "digest": "FFGzqxZFuV4ydaJjKHfkjuiiPKdRXu3hVeEQvhVKboHW", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -341,7 +341,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "DaLawVV4UMq6hAVBBY8cobbFhwHDeFzsS3NoQrBpu6mP", + "digest": "8cpGKSTWaeL8reosZMhS5id4QZCrvXSgUpgiRMPNjxC3", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/first.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/first.exp index 9e6afbdee81..b95c38aae6d 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/first.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/first.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "DaLawVV4UMq6hAVBBY8cobbFhwHDeFzsS3NoQrBpu6mP", + "digest": "8cpGKSTWaeL8reosZMhS5id4QZCrvXSgUpgiRMPNjxC3", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -107,7 +107,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "5sYGAGytaNdRzHSvo2dQ3fC6mewJZYExn9uczzEeYHQT", + "digest": "Gts5gc9mhL6eXcgSc2cQki5uSbbNtHDAhRT5zPp7UhUc", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "7SduRXoRF3A6iGGFrw1QgVycjcFP9D8cLLiL6Qpsom5z", + "digest": "5qZ1vACpwiYmHNW7N53GsALNYXjwsTDHffLiiTWef6Be", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -129,7 +129,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "7Fm1YTkNeGE88f15En2vJdEXHtmGnTivhRY4gksp8xND", + "digest": "kuf4SWydaHNfzu9F8Ag9niPFnizTHT8sJ4RZJMudCsg", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -140,7 +140,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "BSrFSzzsckmsYSezXKmFhdJ2CAkrNqqv5tViaRB6B1VN", + "digest": "CHV4FyUtTkwoEQAFDBdGvWp7yVLvkeLY1x6uExfaJw2n", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -151,7 +151,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "8KEmy9BqxUKSx9RvH21bbteWZ2n5MoMrjArU3YFJYQ5H", + "digest": "9HYaydpBhdEs5tMoS9mG5qotEBWQRETvJkS1d11eqbT7", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -162,7 +162,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "J8BPw7KNfobSLFY4PjkW9hghBCB1xcVmYSE4bDJ6AeF", + "digest": "7iyfoh3MRgZTaHufEhoLsvpzAqm1MVcf7GoENqSeoyVk", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -173,7 +173,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "CW6wJkkpkvumxL9vTcKpDUnYkgbJariJWdYGBciSa15h", + "digest": "F5ZQkXN659ZGTyqJ27yrbt4KPCVUbpQ5b6MTDybKrLK2", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -184,7 +184,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "9mPn4RD4yHqHh57drkGEAUs6tc2znv3qFYNwkDDZwKGb", + "digest": "D8QqFoKJBSNuM7pg11YtHMfwuyaYCFkysDM9vDdtABQP", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -195,7 +195,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "9eroEXRJ3Pn8REp3Ypm5dx6pesNdKF6zyatBeb4ZyLFJ", + "digest": "6wxk85Fgq9mmYmcrAggdMci1VR4UCmW2ensqUvbHLyyp", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -223,7 +223,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "DaLawVV4UMq6hAVBBY8cobbFhwHDeFzsS3NoQrBpu6mP", + "digest": "8cpGKSTWaeL8reosZMhS5id4QZCrvXSgUpgiRMPNjxC3", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -251,7 +251,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "7SduRXoRF3A6iGGFrw1QgVycjcFP9D8cLLiL6Qpsom5z", + "digest": "5qZ1vACpwiYmHNW7N53GsALNYXjwsTDHffLiiTWef6Be", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -279,7 +279,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "BSrFSzzsckmsYSezXKmFhdJ2CAkrNqqv5tViaRB6B1VN", + "digest": "CHV4FyUtTkwoEQAFDBdGvWp7yVLvkeLY1x6uExfaJw2n", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -290,7 +290,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "J8BPw7KNfobSLFY4PjkW9hghBCB1xcVmYSE4bDJ6AeF", + "digest": "7iyfoh3MRgZTaHufEhoLsvpzAqm1MVcf7GoENqSeoyVk", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -318,7 +318,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "9mPn4RD4yHqHh57drkGEAUs6tc2znv3qFYNwkDDZwKGb", + "digest": "D8QqFoKJBSNuM7pg11YtHMfwuyaYCFkysDM9vDdtABQP", "effects": { "checkpoint": { "sequenceNumber": 3 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/last.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/last.exp index 0abc38060a4..4c319872112 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/last.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/last.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "DaLawVV4UMq6hAVBBY8cobbFhwHDeFzsS3NoQrBpu6mP", + "digest": "8cpGKSTWaeL8reosZMhS5id4QZCrvXSgUpgiRMPNjxC3", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -107,7 +107,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "5sYGAGytaNdRzHSvo2dQ3fC6mewJZYExn9uczzEeYHQT", + "digest": "Gts5gc9mhL6eXcgSc2cQki5uSbbNtHDAhRT5zPp7UhUc", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "7SduRXoRF3A6iGGFrw1QgVycjcFP9D8cLLiL6Qpsom5z", + "digest": "5qZ1vACpwiYmHNW7N53GsALNYXjwsTDHffLiiTWef6Be", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -129,7 +129,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "7Fm1YTkNeGE88f15En2vJdEXHtmGnTivhRY4gksp8xND", + "digest": "kuf4SWydaHNfzu9F8Ag9niPFnizTHT8sJ4RZJMudCsg", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -140,7 +140,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "BSrFSzzsckmsYSezXKmFhdJ2CAkrNqqv5tViaRB6B1VN", + "digest": "CHV4FyUtTkwoEQAFDBdGvWp7yVLvkeLY1x6uExfaJw2n", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -151,7 +151,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "8KEmy9BqxUKSx9RvH21bbteWZ2n5MoMrjArU3YFJYQ5H", + "digest": "9HYaydpBhdEs5tMoS9mG5qotEBWQRETvJkS1d11eqbT7", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -162,7 +162,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "J8BPw7KNfobSLFY4PjkW9hghBCB1xcVmYSE4bDJ6AeF", + "digest": "7iyfoh3MRgZTaHufEhoLsvpzAqm1MVcf7GoENqSeoyVk", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -173,7 +173,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "CW6wJkkpkvumxL9vTcKpDUnYkgbJariJWdYGBciSa15h", + "digest": "F5ZQkXN659ZGTyqJ27yrbt4KPCVUbpQ5b6MTDybKrLK2", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -184,7 +184,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "9mPn4RD4yHqHh57drkGEAUs6tc2znv3qFYNwkDDZwKGb", + "digest": "D8QqFoKJBSNuM7pg11YtHMfwuyaYCFkysDM9vDdtABQP", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -195,7 +195,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "9eroEXRJ3Pn8REp3Ypm5dx6pesNdKF6zyatBeb4ZyLFJ", + "digest": "6wxk85Fgq9mmYmcrAggdMci1VR4UCmW2ensqUvbHLyyp", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -223,7 +223,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "9mPn4RD4yHqHh57drkGEAUs6tc2znv3qFYNwkDDZwKGb", + "digest": "D8QqFoKJBSNuM7pg11YtHMfwuyaYCFkysDM9vDdtABQP", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -251,7 +251,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "J8BPw7KNfobSLFY4PjkW9hghBCB1xcVmYSE4bDJ6AeF", + "digest": "7iyfoh3MRgZTaHufEhoLsvpzAqm1MVcf7GoENqSeoyVk", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -279,7 +279,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "BSrFSzzsckmsYSezXKmFhdJ2CAkrNqqv5tViaRB6B1VN", + "digest": "CHV4FyUtTkwoEQAFDBdGvWp7yVLvkeLY1x6uExfaJw2n", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -307,7 +307,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "7SduRXoRF3A6iGGFrw1QgVycjcFP9D8cLLiL6Qpsom5z", + "digest": "5qZ1vACpwiYmHNW7N53GsALNYXjwsTDHffLiiTWef6Be", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -335,7 +335,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "DaLawVV4UMq6hAVBBY8cobbFhwHDeFzsS3NoQrBpu6mP", + "digest": "8cpGKSTWaeL8reosZMhS5id4QZCrvXSgUpgiRMPNjxC3", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/require.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/require.exp index af4e3c5dc2d..cb09e06f8e5 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/require.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/require.exp @@ -94,7 +94,7 @@ Response: { }, "nodes": [ { - "digest": "7vTAELJfuqwZ74Nrko6eqXCEBnoqbiZNxkcPLkcHDpHR", + "digest": "57AHRnaYzfkSHWFvDUGLRzwYCAuPYEqW1qRiraXM1ojX", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -102,7 +102,7 @@ Response: { } }, { - "digest": "MJJQX7jM5Dgehpg3xmtFbjtAsFcfJT9XkvJ213Zg6vH", + "digest": "F2aqQMFU4LQb2geYPrBFPx7BpCs2n6Fco6jmVUaeeR79", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -110,7 +110,7 @@ Response: { } }, { - "digest": "2PujRM4akaHMqrAyY7wiTFeCSuRkjEmGKfsK5xcNiS8c", + "digest": "eQFpQNaXZuYztmab9sKuCvV7BE2P3s6pxWcAABaRRVb", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { } }, { - "digest": "78s9VneHNHFJhmDLfBoNLMHDZTo71Vn12cSRhmz1iDWE", + "digest": "4yREuZtBiN1wAjXnLba5N6BWCDuWNX1CaMh4QT7exaWB", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -126,7 +126,7 @@ Response: { } }, { - "digest": "37dfKVCCkCP3QpsnPT7bRbSZ8wbtoyvG9dpAWT8MxReG", + "digest": "2sQk7WeF1PuQkwpyMCs6wrGXNzKCgXGHAamzYWgarTbx", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -134,7 +134,7 @@ Response: { } }, { - "digest": "GdQbNqU8ZNwfQyTKFR1rcLG92n3gvqKeghMwZe6jcZgs", + "digest": "6gmeApTpV7wXajaCmbdGkqTaf4DwapRLvWbFeDuAgBnC", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -142,7 +142,7 @@ Response: { } }, { - "digest": "BFDNEGnBW4sqPEmqouCmZEApSScMrXc4XszqNJ82FCwN", + "digest": "EBVoDkV5a3up4MzuKf2g671pYMBQBMKMBaKtDFEjuS3o", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -150,7 +150,7 @@ Response: { } }, { - "digest": "BTEpbpgkv44AJPyQZrDGPf1Rw4cWpDATJAo1SPy5Snvf", + "digest": "7TYZ4v2BBB4Mw7e9vJvD75FsERSzvvVtzvDuCjoG8qos", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -158,7 +158,7 @@ Response: { } }, { - "digest": "DbgGFoEuvgKpqyuoJozZvmFdAtHgFAvfhZs6q4JQQ266", + "digest": "5Vthwaj7H5tdU7dGb42NbZeX7WC8be3sJqD4uMQeavsG", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -166,7 +166,7 @@ Response: { } }, { - "digest": "9dYFUYvV9sSWRAatiHP5nCUn2ZKX4ezu2rPh9WqNTewx", + "digest": "M9rn2G7nw97kmn5iyvjf3bptqJa98S8LQoJCmvp77x4", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -191,7 +191,7 @@ Response: { }, "nodes": [ { - "digest": "7vTAELJfuqwZ74Nrko6eqXCEBnoqbiZNxkcPLkcHDpHR", + "digest": "57AHRnaYzfkSHWFvDUGLRzwYCAuPYEqW1qRiraXM1ojX", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -199,7 +199,7 @@ Response: { } }, { - "digest": "MJJQX7jM5Dgehpg3xmtFbjtAsFcfJT9XkvJ213Zg6vH", + "digest": "F2aqQMFU4LQb2geYPrBFPx7BpCs2n6Fco6jmVUaeeR79", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -207,7 +207,7 @@ Response: { } }, { - "digest": "2PujRM4akaHMqrAyY7wiTFeCSuRkjEmGKfsK5xcNiS8c", + "digest": "eQFpQNaXZuYztmab9sKuCvV7BE2P3s6pxWcAABaRRVb", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -215,7 +215,7 @@ Response: { } }, { - "digest": "78s9VneHNHFJhmDLfBoNLMHDZTo71Vn12cSRhmz1iDWE", + "digest": "4yREuZtBiN1wAjXnLba5N6BWCDuWNX1CaMh4QT7exaWB", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -223,7 +223,7 @@ Response: { } }, { - "digest": "37dfKVCCkCP3QpsnPT7bRbSZ8wbtoyvG9dpAWT8MxReG", + "digest": "2sQk7WeF1PuQkwpyMCs6wrGXNzKCgXGHAamzYWgarTbx", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -231,7 +231,7 @@ Response: { } }, { - "digest": "GdQbNqU8ZNwfQyTKFR1rcLG92n3gvqKeghMwZe6jcZgs", + "digest": "6gmeApTpV7wXajaCmbdGkqTaf4DwapRLvWbFeDuAgBnC", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -239,7 +239,7 @@ Response: { } }, { - "digest": "BFDNEGnBW4sqPEmqouCmZEApSScMrXc4XszqNJ82FCwN", + "digest": "EBVoDkV5a3up4MzuKf2g671pYMBQBMKMBaKtDFEjuS3o", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -247,7 +247,7 @@ Response: { } }, { - "digest": "BTEpbpgkv44AJPyQZrDGPf1Rw4cWpDATJAo1SPy5Snvf", + "digest": "7TYZ4v2BBB4Mw7e9vJvD75FsERSzvvVtzvDuCjoG8qos", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -255,7 +255,7 @@ Response: { } }, { - "digest": "DbgGFoEuvgKpqyuoJozZvmFdAtHgFAvfhZs6q4JQQ266", + "digest": "5Vthwaj7H5tdU7dGb42NbZeX7WC8be3sJqD4uMQeavsG", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -263,7 +263,7 @@ Response: { } }, { - "digest": "9dYFUYvV9sSWRAatiHP5nCUn2ZKX4ezu2rPh9WqNTewx", + "digest": "M9rn2G7nw97kmn5iyvjf3bptqJa98S8LQoJCmvp77x4", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -311,7 +311,7 @@ Response: { }, "nodes": [ { - "digest": "7vTAELJfuqwZ74Nrko6eqXCEBnoqbiZNxkcPLkcHDpHR", + "digest": "57AHRnaYzfkSHWFvDUGLRzwYCAuPYEqW1qRiraXM1ojX", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -319,7 +319,7 @@ Response: { } }, { - "digest": "MJJQX7jM5Dgehpg3xmtFbjtAsFcfJT9XkvJ213Zg6vH", + "digest": "F2aqQMFU4LQb2geYPrBFPx7BpCs2n6Fco6jmVUaeeR79", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -327,7 +327,7 @@ Response: { } }, { - "digest": "2PujRM4akaHMqrAyY7wiTFeCSuRkjEmGKfsK5xcNiS8c", + "digest": "eQFpQNaXZuYztmab9sKuCvV7BE2P3s6pxWcAABaRRVb", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -335,7 +335,7 @@ Response: { } }, { - "digest": "78s9VneHNHFJhmDLfBoNLMHDZTo71Vn12cSRhmz1iDWE", + "digest": "4yREuZtBiN1wAjXnLba5N6BWCDuWNX1CaMh4QT7exaWB", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -343,7 +343,7 @@ Response: { } }, { - "digest": "37dfKVCCkCP3QpsnPT7bRbSZ8wbtoyvG9dpAWT8MxReG", + "digest": "2sQk7WeF1PuQkwpyMCs6wrGXNzKCgXGHAamzYWgarTbx", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -351,7 +351,7 @@ Response: { } }, { - "digest": "GdQbNqU8ZNwfQyTKFR1rcLG92n3gvqKeghMwZe6jcZgs", + "digest": "6gmeApTpV7wXajaCmbdGkqTaf4DwapRLvWbFeDuAgBnC", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -359,7 +359,7 @@ Response: { } }, { - "digest": "BFDNEGnBW4sqPEmqouCmZEApSScMrXc4XszqNJ82FCwN", + "digest": "EBVoDkV5a3up4MzuKf2g671pYMBQBMKMBaKtDFEjuS3o", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -367,7 +367,7 @@ Response: { } }, { - "digest": "BTEpbpgkv44AJPyQZrDGPf1Rw4cWpDATJAo1SPy5Snvf", + "digest": "7TYZ4v2BBB4Mw7e9vJvD75FsERSzvvVtzvDuCjoG8qos", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -375,7 +375,7 @@ Response: { } }, { - "digest": "DbgGFoEuvgKpqyuoJozZvmFdAtHgFAvfhZs6q4JQQ266", + "digest": "5Vthwaj7H5tdU7dGb42NbZeX7WC8be3sJqD4uMQeavsG", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -383,7 +383,7 @@ Response: { } }, { - "digest": "9dYFUYvV9sSWRAatiHP5nCUn2ZKX4ezu2rPh9WqNTewx", + "digest": "M9rn2G7nw97kmn5iyvjf3bptqJa98S8LQoJCmvp77x4", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -431,7 +431,7 @@ Response: { }, "nodes": [ { - "digest": "7vTAELJfuqwZ74Nrko6eqXCEBnoqbiZNxkcPLkcHDpHR", + "digest": "57AHRnaYzfkSHWFvDUGLRzwYCAuPYEqW1qRiraXM1ojX", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -439,7 +439,7 @@ Response: { } }, { - "digest": "MJJQX7jM5Dgehpg3xmtFbjtAsFcfJT9XkvJ213Zg6vH", + "digest": "F2aqQMFU4LQb2geYPrBFPx7BpCs2n6Fco6jmVUaeeR79", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -447,7 +447,7 @@ Response: { } }, { - "digest": "2PujRM4akaHMqrAyY7wiTFeCSuRkjEmGKfsK5xcNiS8c", + "digest": "eQFpQNaXZuYztmab9sKuCvV7BE2P3s6pxWcAABaRRVb", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -455,7 +455,7 @@ Response: { } }, { - "digest": "78s9VneHNHFJhmDLfBoNLMHDZTo71Vn12cSRhmz1iDWE", + "digest": "4yREuZtBiN1wAjXnLba5N6BWCDuWNX1CaMh4QT7exaWB", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -463,7 +463,7 @@ Response: { } }, { - "digest": "37dfKVCCkCP3QpsnPT7bRbSZ8wbtoyvG9dpAWT8MxReG", + "digest": "2sQk7WeF1PuQkwpyMCs6wrGXNzKCgXGHAamzYWgarTbx", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -471,7 +471,7 @@ Response: { } }, { - "digest": "GdQbNqU8ZNwfQyTKFR1rcLG92n3gvqKeghMwZe6jcZgs", + "digest": "6gmeApTpV7wXajaCmbdGkqTaf4DwapRLvWbFeDuAgBnC", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -479,7 +479,7 @@ Response: { } }, { - "digest": "BFDNEGnBW4sqPEmqouCmZEApSScMrXc4XszqNJ82FCwN", + "digest": "EBVoDkV5a3up4MzuKf2g671pYMBQBMKMBaKtDFEjuS3o", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -487,7 +487,7 @@ Response: { } }, { - "digest": "BTEpbpgkv44AJPyQZrDGPf1Rw4cWpDATJAo1SPy5Snvf", + "digest": "7TYZ4v2BBB4Mw7e9vJvD75FsERSzvvVtzvDuCjoG8qos", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -495,7 +495,7 @@ Response: { } }, { - "digest": "DbgGFoEuvgKpqyuoJozZvmFdAtHgFAvfhZs6q4JQQ266", + "digest": "5Vthwaj7H5tdU7dGb42NbZeX7WC8be3sJqD4uMQeavsG", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -503,7 +503,7 @@ Response: { } }, { - "digest": "9dYFUYvV9sSWRAatiHP5nCUn2ZKX4ezu2rPh9WqNTewx", + "digest": "M9rn2G7nw97kmn5iyvjf3bptqJa98S8LQoJCmvp77x4", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -592,7 +592,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "7vTAELJfuqwZ74Nrko6eqXCEBnoqbiZNxkcPLkcHDpHR", + "digest": "57AHRnaYzfkSHWFvDUGLRzwYCAuPYEqW1qRiraXM1ojX", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/shared.exp b/crates/iota-graphql-e2e-tests/tests/transactions/shared.exp index 2c1ba5b563d..d8c146374ad 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/shared.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/shared.exp @@ -42,7 +42,7 @@ Response: { "transactions": { "nodes": [ { - "package": "0x096cee4904264f75f80f37a7593a1f2526887bcf92cef717e977b936f9d7c13a", + "package": "0xb5ad900f81fd3006c1b3c56c475bed46736974cf0fd032f6eba446610b5abc1e", "module": "m", "functionName": "get" } @@ -55,17 +55,17 @@ Response: { "nodes": [ { "__typename": "SharedObjectRead", - "address": "0xa1143dedd508b6be59c1d0a6a3c5331b9867e6c2480b74c65fd5e7e9796a76c7", + "address": "0xfb57e6dd1e6913ce203679610ade10b0ea836c3724c989502ad08d24d6e812c6", "version": 2, - "digest": "7T47UKUpx3AfjwVhGSEngDRMzMyv8fvWBXKzh2TNWYgY", + "digest": "9uSF5KxVT2iBa61QmUhd1K79iqh3JkeYKvQ4n2p1isfz", "object": { "asMoveObject": { "contents": { "type": { - "repr": "0x096cee4904264f75f80f37a7593a1f2526887bcf92cef717e977b936f9d7c13a::m::Foo" + "repr": "0xb5ad900f81fd3006c1b3c56c475bed46736974cf0fd032f6eba446610b5abc1e::m::Foo" }, "json": { - "id": "0xa1143dedd508b6be59c1d0a6a3c5331b9867e6c2480b74c65fd5e7e9796a76c7", + "id": "0xfb57e6dd1e6913ce203679610ade10b0ea836c3724c989502ad08d24d6e812c6", "x": "0" } } @@ -82,7 +82,7 @@ Response: { "transactions": { "nodes": [ { - "package": "0x096cee4904264f75f80f37a7593a1f2526887bcf92cef717e977b936f9d7c13a", + "package": "0xb5ad900f81fd3006c1b3c56c475bed46736974cf0fd032f6eba446610b5abc1e", "module": "m", "functionName": "inc" } @@ -102,12 +102,12 @@ Response: { "transactions": { "nodes": [ { - "package": "0x096cee4904264f75f80f37a7593a1f2526887bcf92cef717e977b936f9d7c13a", + "package": "0xb5ad900f81fd3006c1b3c56c475bed46736974cf0fd032f6eba446610b5abc1e", "module": "m", "functionName": "get" }, { - "package": "0x096cee4904264f75f80f37a7593a1f2526887bcf92cef717e977b936f9d7c13a", + "package": "0xb5ad900f81fd3006c1b3c56c475bed46736974cf0fd032f6eba446610b5abc1e", "module": "m", "functionName": "inc" } diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/system.exp b/crates/iota-graphql-e2e-tests/tests/transactions/system.exp index 8970b1e2e62..9c21063d678 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/system.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/system.exp @@ -7,7 +7,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU", + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ", "sender": null, "signatures": [ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" @@ -407,7 +407,7 @@ Response: { "json": { "id": "0x0000000000000000000000000000000000000000000000000000000000000008", "inner": { - "id": "0x24d1d77c8cf2db0e8287ea7ce8d0570cfe7f047aebe58fd914fb529deba7d8e7", + "id": "0x3f92eceed239ba443daf612dcdf621f85feba71f3698d53c9f2a6e4b4246b1c6", "version": "1" } } @@ -489,7 +489,7 @@ Response: { "json": { "id": "0x0000000000000000000000000000000000000000000000000000000000000403", "lists": { - "id": "0xc29a7b82db8f43eeadff67818fb6e3df73d7b5256d64479ded40a67239e2f306", + "id": "0x799c22e253a384f3545724b35277ac6b27595603f051828e5f4cece335c1cf1c", "size": "0" } } @@ -586,36 +586,18 @@ Response: { { "cursor": "eyJpIjo5LCJjIjowfQ", "node": { - "address": "0x164543b649913354b964a147ef6abd20991322f9630ea7cd66ada911e9dc0f55", + "address": "0x1b19651d3c2723e7f6c1eca23c13b72cd7f274524223391e75994dad311828df", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000003::validator_cap::UnverifiedValidatorOperationCap" - }, - "json": { - "id": "0x164543b649913354b964a147ef6abd20991322f9630ea7cd66ada911e9dc0f55", - "authorizer_validator_address": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" - } - } - }, - "asMovePackage": null - } - }, - { - "cursor": "eyJpIjoxMCwiYyI6MH0", - "node": { - "address": "0x164fde98cd2be56bb62ee7adfbcc7d80524ed05ba8ca752b9d934f4e28a2f757", - "asMoveObject": { - "contents": { - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::StakedIota" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::PoolTokenExchangeRate>" }, "json": { - "id": "0x164fde98cd2be56bb62ee7adfbcc7d80524ed05ba8ca752b9d934f4e28a2f757", - "pool_id": "0x0864c1c708d6c155e7a0970c51125ca826cdbaffc4d7da56b288be18fd92194c", - "stake_activation_epoch": "0", - "principal": { - "value": "1500000000000000" + "id": "0x1b19651d3c2723e7f6c1eca23c13b72cd7f274524223391e75994dad311828df", + "name": "0", + "value": { + "iota_amount": "0", + "pool_token_amount": "0" } } } @@ -624,16 +606,16 @@ Response: { } }, { - "cursor": "eyJpIjoxMSwiYyI6MH0", + "cursor": "eyJpIjoxMCwiYyI6MH0", "node": { - "address": "0x22be657ef08ce91af272278d86e8514c8c74f9f7553607356122f4004d494fce", + "address": "0x27982f48a697a9f61e3f738993c2d00e16b89938eedb74af1849ba6c6d82303b", "asMoveObject": { "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x22be657ef08ce91af272278d86e8514c8c74f9f7553607356122f4004d494fce", + "id": "0x27982f48a697a9f61e3f738993c2d00e16b89938eedb74af1849ba6c6d82303b", "balance": { "value": "30000000000000000" } @@ -644,119 +626,7 @@ Response: { } }, { - "cursor": "eyJpIjoxMiwiYyI6MH0", - "node": { - "address": "0x25907b13da722ae96c503c5e5917d6d31d876ffc782e6058fa61812e01a82caf", - "asMoveObject": { - "contents": { - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" - }, - "json": { - "id": "0x25907b13da722ae96c503c5e5917d6d31d876ffc782e6058fa61812e01a82caf", - "balance": { - "value": "300000000000000" - } - } - } - }, - "asMovePackage": null - } - }, - { - "cursor": "eyJpIjoxMywiYyI6MH0", - "node": { - "address": "0x4506822cb9f81abf43c8cacbdfb37228d0ad200e3ac2fe16be070fc966041d93", - "asMoveObject": { - "contents": { - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::display::Display<0x000000000000000000000000000000000000000000000000000000000000107a::nft::Nft>" - }, - "json": { - "id": "0x4506822cb9f81abf43c8cacbdfb37228d0ad200e3ac2fe16be070fc966041d93", - "fields": { - "contents": [ - { - "key": "name", - "value": "{immutable_metadata.name}" - }, - { - "key": "image_url", - "value": "{immutable_metadata.uri}" - }, - { - "key": "description", - "value": "{immutable_metadata.description}" - }, - { - "key": "creator", - "value": "{immutable_metadata.issuer_name}" - }, - { - "key": "version", - "value": "{immutable_metadata.version}" - }, - { - "key": "media_type", - "value": "{immutable_metadata.media_type}" - }, - { - "key": "collection_name", - "value": "{immutable_metadata.collection_name}" - }, - { - "key": "immutable_issuer", - "value": "{immutable_issuer}" - } - ] - }, - "version": 1 - } - } - }, - "asMovePackage": null - } - }, - { - "cursor": "eyJpIjoxNCwiYyI6MH0", - "node": { - "address": "0x5a6383eb592bab4ff7c037a2118c514149ba9a86cf5a3b019c7034686365183f", - "asMoveObject": { - "contents": { - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<vector<u8>,0x0000000000000000000000000000000000000000000000000000000000000002::timelock::SystemTimelockCap>" - }, - "json": { - "id": "0x5a6383eb592bab4ff7c037a2118c514149ba9a86cf5a3b019c7034686365183f", - "name": [ - 115, - 121, - 115, - 95, - 116, - 105, - 109, - 101, - 108, - 111, - 99, - 107, - 95, - 99, - 97, - 112 - ], - "value": { - "dummy_field": false - } - } - } - }, - "asMovePackage": null - } - }, - { - "cursor": "eyJpIjoxNSwiYyI6MH0", + "cursor": "eyJpIjoxMSwiYyI6MH0", "node": { "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", "asMoveObject": { @@ -773,7 +643,7 @@ Response: { "system_state_version": "1", "iota_treasury_cap": { "inner": { - "id": "0x2ee652c2754759646d1972886880312a7cda3ede4f93cb3a3118d6aa4219ffd9", + "id": "0x509e22a8bb835eeb98bed81a1a50c196383345279d4238f47714f2301c9bfbe6", "total_supply": { "value": "31800000000000000" } @@ -1020,15 +890,15 @@ Response: { "next_epoch_p2p_address": null, "next_epoch_primary_address": null, "extra_fields": { - "id": "0x1f005968561fd56673ae2155125bafb54081fa87c18b356adc546cb905e4e5d9", + "id": "0x6c8759462593f9ef531bbec3f6402e9a9d53e369ecb7982b59635843471eb271", "size": "0" } }, "voting_power": "10000", - "operation_cap_id": "0x164543b649913354b964a147ef6abd20991322f9630ea7cd66ada911e9dc0f55", + "operation_cap_id": "0xa0f947f895ffe5715ab529ed16659e9c099bee48524f56c8d5a2eab8e842bd99", "gas_price": "1000", "staking_pool": { - "id": "0x0864c1c708d6c155e7a0970c51125ca826cdbaffc4d7da56b288be18fd92194c", + "id": "0x7aea65806e468642f39bb0a0f7a40a4b16afc9588d1980e8d9a9d20936541b7e", "activation_epoch": "0", "deactivation_epoch": null, "iota_balance": "1500000000000000", @@ -1037,14 +907,14 @@ Response: { }, "pool_token_balance": "1500000000000000", "exchange_rates": { - "id": "0x76d10d2729a373b2a16a7b12ada4cb288096607ca5db6644e469ef2f8ff34caf", + "id": "0x044bc64e9c5eaa0143019c38bea813b1c288dc66272d74cf8a1821bf0eeac85f", "size": "1" }, "pending_stake": "0", "pending_total_iota_withdraw": "0", "pending_pool_token_withdraw": "0", "extra_fields": { - "id": "0x76d2afde916b94248cd4e4d55b9478bc848763948f4f12365ee502ba722125b1", + "id": "0xcc8c44fff5e1f3fdc63bd2597685dba922cce4809e2f960c8128dcbcb76c3712", "size": "0" } }, @@ -1053,35 +923,35 @@ Response: { "next_epoch_gas_price": "1000", "next_epoch_commission_rate": "200", "extra_fields": { - "id": "0x978432933f983e85d3ef9ce16c0bb67a4a875046b29dd22226f640c5639ccb01", + "id": "0x9a75ea182d4788588f2e81034a8a57034da6284a66159cd3289cb352e3a845aa", "size": "0" } } ], "pending_active_validators": { "contents": { - "id": "0xb716eb4bce123aadc66105d5859d2c3114dca881685c9a84acd4e07656ebdf8a", + "id": "0x31b89b7b349cf41a62274ebd1ef2c2789fa86b68270d9feefb7a62741d1f8e86", "size": "0" } }, "pending_removals": [], "staking_pool_mappings": { - "id": "0xbc57cf108e5ecee288f42140e2cb3ea2a16bb8bc2fd7b5a0d4021c00cbe6e3d8", + "id": "0x6025058d2b6287ffad433b714c9a573fe15ba477a4f47862b5088ca5938cded3", "size": "1" }, "inactive_validators": { - "id": "0xf577144c5ff919d936861c1166a8c496718385c0e57115136793083614bc2ef0", + "id": "0xaaf430f2910eb82232f946c1bda701ecb8f2c1f6928a9099ae80f5afc85fb69c", "size": "0" }, "validator_candidates": { - "id": "0xb04677f6695c5e131ed1b8cd133adb262ac2dc9a7960ede50e517ccd4dc426ae", + "id": "0xd2789ba6e8f5c3241a6d12bedc3055e57aeac6e92bf182ef7737c6533d7a22f9", "size": "0" }, "at_risk_validators": { "contents": [] }, "extra_fields": { - "id": "0x7493afc9c157ae26cbc879abccdd59f84cc88fb40debe77faa1396ab1387d453", + "id": "0x62d408b9b0b3c458c8424f68a6622c534d3023ce93368b5a412bd4dc665a8ebf", "size": "0" } }, @@ -1102,10 +972,13 @@ Response: { "validator_very_low_stake_threshold": "1000000000000000", "validator_low_stake_grace_period": "7", "extra_fields": { - "id": "0x5616b320d1dd6045f7815b0e9d0320553ea5f6ec1ccfeff416d1905773d5e56f", + "id": "0x61b4baf4a2f43504215e4131c43852e24775aa0afeef0628a113228ef41c7813", "size": "0" } }, + "iota_system_admin_cap": { + "dummy_field": false + }, "reference_gas_price": "1000", "validator_report_records": { "contents": [] @@ -1121,7 +994,7 @@ Response: { "safe_mode_non_refundable_storage_fee": "0", "epoch_start_timestamp_ms": "0", "extra_fields": { - "id": "0xd9df1aea7a90f4388b31784ef575031c1b909092e39374e0899b214cab3e5698", + "id": "0x5dc4c87d84a69a6b0f51a38b24cd4c9833b79c2a2e249dc1f24794961bfc76c1", "size": "0" } } @@ -1132,22 +1005,59 @@ Response: { } }, { - "cursor": "eyJpIjoxNiwiYyI6MH0", + "cursor": "eyJpIjoxMiwiYyI6MH0", "node": { - "address": "0xa4c01792653d7a84243b6c30c98b749b84fd12b685572861fd30e3f4c0296719", + "address": "0xa0f947f895ffe5715ab529ed16659e9c099bee48524f56c8d5a2eab8e842bd99", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000002::random::RandomInner>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000003::validator_cap::UnverifiedValidatorOperationCap" }, "json": { - "id": "0xa4c01792653d7a84243b6c30c98b749b84fd12b685572861fd30e3f4c0296719", - "name": "1", - "value": { - "version": "1", - "epoch": "0", - "randomness_round": "0", - "random_bytes": [] + "id": "0xa0f947f895ffe5715ab529ed16659e9c099bee48524f56c8d5a2eab8e842bd99", + "authorizer_validator_address": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" + } + } + }, + "asMovePackage": null + } + }, + { + "cursor": "eyJpIjoxMywiYyI6MH0", + "node": { + "address": "0xbb5caa62668e66be9dd0a5a74534814bf789fd6ab6335e08eff62a58ee1f287e", + "asMoveObject": { + "contents": { + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<0x0000000000000000000000000000000000000000000000000000000000000002::object::ID,address>" + }, + "json": { + "id": "0xbb5caa62668e66be9dd0a5a74534814bf789fd6ab6335e08eff62a58ee1f287e", + "name": "0x7aea65806e468642f39bb0a0f7a40a4b16afc9588d1980e8d9a9d20936541b7e", + "value": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" + } + } + }, + "asMovePackage": null + } + }, + { + "cursor": "eyJpIjoxNCwiYyI6MH0", + "node": { + "address": "0xc28024efc650d31011065697e676b6738732dad9f709e54a13b116672c298f25", + "asMoveObject": { + "contents": { + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + }, + "json": { + "id": "0xc28024efc650d31011065697e676b6738732dad9f709e54a13b116672c298f25", + "decimals": 9, + "name": "IOTA", + "symbol": "IOTA", + "description": "The main (gas)token of the IOTA Network.", + "icon_url": { + "url": "https://iota.org/logo.png" } } } @@ -1156,20 +1066,74 @@ Response: { } }, { - "cursor": "eyJpIjoxNywiYyI6MH0", + "cursor": "eyJpIjoxNSwiYyI6MH0", "node": { - "address": "0xa94dd3c09813d05780c293e3382b1b1cdc93babec321926f6d9aeedf74e3811a", + "address": "0xc928f6f78781333f87efac974403df5a8565e3accb3c16a891a60a18dd2f2f42", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::PoolTokenExchangeRate>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::display::Display<0x000000000000000000000000000000000000000000000000000000000000107a::nft::Nft>" }, "json": { - "id": "0xa94dd3c09813d05780c293e3382b1b1cdc93babec321926f6d9aeedf74e3811a", - "name": "0", - "value": { - "iota_amount": "0", - "pool_token_amount": "0" + "id": "0xc928f6f78781333f87efac974403df5a8565e3accb3c16a891a60a18dd2f2f42", + "fields": { + "contents": [ + { + "key": "name", + "value": "{immutable_metadata.name}" + }, + { + "key": "image_url", + "value": "{immutable_metadata.uri}" + }, + { + "key": "description", + "value": "{immutable_metadata.description}" + }, + { + "key": "creator", + "value": "{immutable_metadata.issuer_name}" + }, + { + "key": "version", + "value": "{immutable_metadata.version}" + }, + { + "key": "media_type", + "value": "{immutable_metadata.media_type}" + }, + { + "key": "collection_name", + "value": "{immutable_metadata.collection_name}" + }, + { + "key": "immutable_issuer", + "value": "{immutable_issuer}" + } + ] + }, + "version": 1 + } + } + }, + "asMovePackage": null + } + }, + { + "cursor": "eyJpIjoxNiwiYyI6MH0", + "node": { + "address": "0xdd6b3a50df67a765e8c59bd37030224138f36bba296535846f490d8dede3c502", + "asMoveObject": { + "contents": { + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::StakedIota" + }, + "json": { + "id": "0xdd6b3a50df67a765e8c59bd37030224138f36bba296535846f490d8dede3c502", + "pool_id": "0x7aea65806e468642f39bb0a0f7a40a4b16afc9588d1980e8d9a9d20936541b7e", + "stake_activation_epoch": "0", + "principal": { + "value": "1500000000000000" } } } @@ -1178,18 +1142,23 @@ Response: { } }, { - "cursor": "eyJpIjoxOCwiYyI6MH0", + "cursor": "eyJpIjoxNywiYyI6MH0", "node": { - "address": "0xcfd7d941c2ab08ab7dcdf9a831411d7e0e8f10c2cb6fd19783ba99a38323d53d", + "address": "0xe9ee601e69a2f4274ca5f23c16190823a7af496b5b9f2eac0d2c2645634b2737", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<0x0000000000000000000000000000000000000000000000000000000000000002::object::ID,address>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<u64,0x0000000000000000000000000000000000000000000000000000000000000002::random::RandomInner>" }, "json": { - "id": "0xcfd7d941c2ab08ab7dcdf9a831411d7e0e8f10c2cb6fd19783ba99a38323d53d", - "name": "0x0864c1c708d6c155e7a0970c51125ca826cdbaffc4d7da56b288be18fd92194c", - "value": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" + "id": "0xe9ee601e69a2f4274ca5f23c16190823a7af496b5b9f2eac0d2c2645634b2737", + "name": "1", + "value": { + "version": "1", + "epoch": "0", + "randomness_round": "0", + "random_bytes": [] + } } } }, @@ -1197,22 +1166,18 @@ Response: { } }, { - "cursor": "eyJpIjoxOSwiYyI6MH0", + "cursor": "eyJpIjoxOCwiYyI6MH0", "node": { - "address": "0xe79a6389aa886d0ddf0e05c724fbe0035567341462dc605dece502d718fee58c", + "address": "0xf22e2f7e20b84f57fdcf1f44c79c321533b922fa9488c23556356ae3f906b0bb", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0xe79a6389aa886d0ddf0e05c724fbe0035567341462dc605dece502d718fee58c", - "decimals": 9, - "name": "IOTA", - "symbol": "IOTA", - "description": "The main (gas)token of the IOTA Network.", - "icon_url": { - "url": "https://iota.org/logo.png" + "id": "0xf22e2f7e20b84f57fdcf1f44c79c321533b922fa9488c23556356ae3f906b0bb", + "balance": { + "value": "300000000000000" } } } @@ -1260,7 +1225,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000001", - "digest": "7t5eREdeveVhXiphTSH16JMYGartqmVPQWY3zjViwAjG" + "digest": "ENjiFoxPrZM9nyeHuhGaWKLQmUaW7AGumKmKAtYRAkMx" } }, { @@ -1269,7 +1234,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000002", - "digest": "HEV5QxCaKrpdBrWCEXQcWCC2m9eJnXPQswbmrodQx7Ni" + "digest": "25LNU4kgDKzmLynUBdNydovvBxmFcaqytbpP4v1uDeUb" } }, { @@ -1278,7 +1243,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000003", - "digest": "6HfZ1jXdx6iaM6Bh8fkaxKoGHRCd6sqmcFRnKhChboAv" + "digest": "Hp85vhPRftDufuLYqnkgsj6NXkjqBjAAFTt8Y1kTvi7E" } }, { @@ -1287,7 +1252,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000005", - "digest": "AdSjwju2A8LG7YKHGxZuDuuxQbWW99yUUkT6pVVTUisY" + "digest": "BHCkaFS2xS78pxZH9p8zi5thePij2x57c9svkPEGm3KZ" } }, { @@ -1296,7 +1261,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000006", - "digest": "58U3s6MXxnYNnvH1H8u6d9viT2YMCo8fk4R7SvKh6Yoe" + "digest": "CTBkMWme6atVxkSS7PgV55smTTQKWk84yNT2mqUuJYte" } }, { @@ -1305,7 +1270,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000008", - "digest": "7NPs6HDSJe4QiTeQETsPS6KbRDanjNps8TfG6gFaVVb1" + "digest": "DSwZ4FmppSRBHwCQPuiuWFeiQ1DWA8XifY26iMoijDpP" } }, { @@ -1314,7 +1279,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x000000000000000000000000000000000000000000000000000000000000000b", - "digest": "BoLqhWNbdUBh4mtWRNarbLA8tWrbhy95jC7CYbxVRCfm" + "digest": "3p6UjMn8i1hnqDYz8Y6ES6MB7Af2tgss6FPhXCyeLSPi" } }, { @@ -1323,7 +1288,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000403", - "digest": "4wePeC4cHrp5scKUdJNy1haspXufoLQ3kPtcK2zUNEqL" + "digest": "E3jwUuD8t2nzrDBTv6noK2PUyyvuVAysVUqW7KqnbfCc" } }, { @@ -1332,106 +1297,97 @@ Response: { "idDeleted": false, "outputState": { "address": "0x000000000000000000000000000000000000000000000000000000000000107a", - "digest": "8pUWWeUkTFD5J4tX8CpAhLmaJcNineQ1zSaefhgg5Hv8" - } - }, - { - "address": "0x164543b649913354b964a147ef6abd20991322f9630ea7cd66ada911e9dc0f55", - "idCreated": true, - "idDeleted": false, - "outputState": { - "address": "0x164543b649913354b964a147ef6abd20991322f9630ea7cd66ada911e9dc0f55", - "digest": "FVCjciJs2aNy4M4E3TouV8TvwYhKVDKWWxg5KZTb3gHH" + "digest": "3cUy8tgrqu5Xk1wgBkDz8ZUes4r9ezn3rx1aJcEEcpo4" } }, { - "address": "0x164fde98cd2be56bb62ee7adfbcc7d80524ed05ba8ca752b9d934f4e28a2f757", + "address": "0x1b19651d3c2723e7f6c1eca23c13b72cd7f274524223391e75994dad311828df", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x164fde98cd2be56bb62ee7adfbcc7d80524ed05ba8ca752b9d934f4e28a2f757", - "digest": "2Ctzx94bqHbkFuk1quNjLnv8vEyJGLK4vACVLviXDqFv" + "address": "0x1b19651d3c2723e7f6c1eca23c13b72cd7f274524223391e75994dad311828df", + "digest": "6nG9sPDXR5jHQaGWhbbAX3rUg7EXtmWe1DxAzaGCoRG5" } }, { - "address": "0x22be657ef08ce91af272278d86e8514c8c74f9f7553607356122f4004d494fce", + "address": "0x27982f48a697a9f61e3f738993c2d00e16b89938eedb74af1849ba6c6d82303b", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x22be657ef08ce91af272278d86e8514c8c74f9f7553607356122f4004d494fce", - "digest": "DP74frFMDDzzgodfk1wjvRbaB36RCknTtgyGQ7cQtCaP" + "address": "0x27982f48a697a9f61e3f738993c2d00e16b89938eedb74af1849ba6c6d82303b", + "digest": "emzdESgN7RfkPjnaP1pvcyQDjVbU5U6iRrhAxLmMCq9" } }, { - "address": "0x25907b13da722ae96c503c5e5917d6d31d876ffc782e6058fa61812e01a82caf", + "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x25907b13da722ae96c503c5e5917d6d31d876ffc782e6058fa61812e01a82caf", - "digest": "6CFVxDS8LrXuawcUv8ibh8xNBBETW5b7j8bZggexpsKh" + "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "digest": "7HLikfNn3xnU7J3BZWtbdtX4sjceNmeM8qZdXgJvGWK4" } }, { - "address": "0x4506822cb9f81abf43c8cacbdfb37228d0ad200e3ac2fe16be070fc966041d93", + "address": "0xa0f947f895ffe5715ab529ed16659e9c099bee48524f56c8d5a2eab8e842bd99", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x4506822cb9f81abf43c8cacbdfb37228d0ad200e3ac2fe16be070fc966041d93", - "digest": "5CopmEKWTXdw7rS96awWbgE6aaFogJpQyaavmPCfKZ4n" + "address": "0xa0f947f895ffe5715ab529ed16659e9c099bee48524f56c8d5a2eab8e842bd99", + "digest": "5HqXsg38zJApoSepyKxKMGjkzXgC2mpXJB7TWTmu3jqm" } }, { - "address": "0x5a6383eb592bab4ff7c037a2118c514149ba9a86cf5a3b019c7034686365183f", + "address": "0xbb5caa62668e66be9dd0a5a74534814bf789fd6ab6335e08eff62a58ee1f287e", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x5a6383eb592bab4ff7c037a2118c514149ba9a86cf5a3b019c7034686365183f", - "digest": "9Q9dXMqjCXWpPde6wNeUDdyAtE136UDTDj28gnoFZaTY" + "address": "0xbb5caa62668e66be9dd0a5a74534814bf789fd6ab6335e08eff62a58ee1f287e", + "digest": "GbpQCkRKETYZ1mZaCXD1dDVencXtFgjjGHTDLLZLmyKs" } }, { - "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "address": "0xc28024efc650d31011065697e676b6738732dad9f709e54a13b116672c298f25", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", - "digest": "7MoUo8k3tJT1bWssk7rjjxpcu1s7QcvFo3VoffyG1S8G" + "address": "0xc28024efc650d31011065697e676b6738732dad9f709e54a13b116672c298f25", + "digest": "uxV9PrgZ8ufgYxPKEbYoND3RVHajt2ggHn2p3biNM9z" } }, { - "address": "0xa4c01792653d7a84243b6c30c98b749b84fd12b685572861fd30e3f4c0296719", + "address": "0xc928f6f78781333f87efac974403df5a8565e3accb3c16a891a60a18dd2f2f42", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0xa4c01792653d7a84243b6c30c98b749b84fd12b685572861fd30e3f4c0296719", - "digest": "u7rqgVkqzDAxCB2gExvsqEGJ524Q3e38qKfvogMuLkF" + "address": "0xc928f6f78781333f87efac974403df5a8565e3accb3c16a891a60a18dd2f2f42", + "digest": "9htprPEX2u5fQquygzgGj9nP6UaNBP31J6PVSwxwcmwk" } }, { - "address": "0xa94dd3c09813d05780c293e3382b1b1cdc93babec321926f6d9aeedf74e3811a", + "address": "0xdd6b3a50df67a765e8c59bd37030224138f36bba296535846f490d8dede3c502", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0xa94dd3c09813d05780c293e3382b1b1cdc93babec321926f6d9aeedf74e3811a", - "digest": "13RoXNUZ5WwTo1NscxtwK3VEpFamzt75fJnbUwHRLCcu" + "address": "0xdd6b3a50df67a765e8c59bd37030224138f36bba296535846f490d8dede3c502", + "digest": "EwNpAgeEnd1fEmfUDf3xquRkE4RsA7QBetPGvbfAx78q" } }, { - "address": "0xcfd7d941c2ab08ab7dcdf9a831411d7e0e8f10c2cb6fd19783ba99a38323d53d", + "address": "0xe9ee601e69a2f4274ca5f23c16190823a7af496b5b9f2eac0d2c2645634b2737", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0xcfd7d941c2ab08ab7dcdf9a831411d7e0e8f10c2cb6fd19783ba99a38323d53d", - "digest": "CS4gaZ1gomkBtFJHuyLy2M4GqPyEcaKgapbZKhugng7G" + "address": "0xe9ee601e69a2f4274ca5f23c16190823a7af496b5b9f2eac0d2c2645634b2737", + "digest": "CKk9xibx6DCsz5frc1ponJCY85Wp1TC71NpkJd4TPL6q" } }, { - "address": "0xe79a6389aa886d0ddf0e05c724fbe0035567341462dc605dece502d718fee58c", + "address": "0xf22e2f7e20b84f57fdcf1f44c79c321533b922fa9488c23556356ae3f906b0bb", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0xe79a6389aa886d0ddf0e05c724fbe0035567341462dc605dece502d718fee58c", - "digest": "BfYdua4BJQZYzZU42khQKxScWpA9Fcy6tAsYvg2mebKx" + "address": "0xf22e2f7e20b84f57fdcf1f44c79c321533b922fa9488c23556356ae3f906b0bb", + "digest": "CQvMCiaVuXqqwk8rLcEzYycJkLGkx1K3fKsrWxA5vovf" } } ] @@ -1453,7 +1409,7 @@ Response: { "sequenceNumber": 0 }, "transactionBlock": { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } }, "expiration": null @@ -1505,7 +1461,7 @@ Response: { "dependencies": { "nodes": [ { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } ] }, @@ -1605,7 +1561,7 @@ Response: { "dependencies": { "nodes": [ { - "digest": "AvGrCUgFax9RAmxhyJDrMt8tNHMVBmThpSvPaPLXuJwU" + "digest": "2B5WCAR8XmpU5mGFe225Jk8bhnh5oXNjfyfaX72VELvJ" } ] }, @@ -1624,12 +1580,12 @@ Response: { } }, { - "address": "0x362f837fd7f4366332da1a18f0b8654b35cc6ac63bb31984a26611c2a8078a8c", + "address": "0x0d8feaf1c714777ad5401781c55794e0b8f6dda166924176279914bed08951e0", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x362f837fd7f4366332da1a18f0b8654b35cc6ac63bb31984a26611c2a8078a8c", - "digest": "GaibbJXpxDKn5Ub2zPcmPPUpRuL1B6Dqa3NPQTErip4v" + "address": "0x0d8feaf1c714777ad5401781c55794e0b8f6dda166924176279914bed08951e0", + "digest": "DXX64y9MQSS9WD6oemyeURG3ui88kg4Cm4wirWqx9Uzy" } }, { @@ -1638,7 +1594,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x4509fa198370254af0418248c9718bb206e810e1bce9fc8ffd0c500aef972f4d", - "digest": "6GAfTvEEHExCA5FgbjmJVPvg1cEH77YFZj7YNBErFbeC" + "digest": "BeJhqfZpuFRhdM55Fhu6KUCSz2173Ea6Kmm9NSsUoLvR" } }, { @@ -1647,7 +1603,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", - "digest": "Bj9bnf5eYSVQLfpFLEtj7xVzoDdSKDVJxy5qCMjo8Cjk" + "digest": "XMY7xLE7B9ucBNQsgHgjYJ1vDHfEie94oV7yM46VD5C" } } ] diff --git a/crates/iota-graphql-rpc/src/test_infra/cluster.rs b/crates/iota-graphql-rpc/src/test_infra/cluster.rs index 79d905cf1ff..36aff4343d1 100644 --- a/crates/iota-graphql-rpc/src/test_infra/cluster.rs +++ b/crates/iota-graphql-rpc/src/test_infra/cluster.rs @@ -73,6 +73,7 @@ pub async fn start_cluster( true, Some(data_ingestion_path), cancellation_token.clone(), + None, ) .await; @@ -137,6 +138,7 @@ pub async fn serve_executor( true, Some(data_ingestion_path), cancellation_token.clone(), + Some(&graphql_connection_config.db_name()), ) .await; diff --git a/crates/iota-indexer/Cargo.toml b/crates/iota-indexer/Cargo.toml index cf8bfb7be1d..0ae7e5570c3 100644 --- a/crates/iota-indexer/Cargo.toml +++ b/crates/iota-indexer/Cargo.toml @@ -29,7 +29,6 @@ rayon.workspace = true regex.workspace = true secrecy = "0.8.0" serde.workspace = true -serde_json.workspace = true serde_with.workspace = true tap.workspace = true tempfile.workspace = true @@ -60,6 +59,7 @@ telemetry-subscribers.workspace = true [features] pg_integration = [] +shared_test_runtime = [] default = ["postgres-feature"] postgres-feature = ["diesel/postgres", "diesel/postgres_backend"] mysql-feature = ["diesel/mysql", "diesel/mysql_backend", "dep:mysqlclient-sys"] @@ -68,6 +68,7 @@ bundled-mysql = ["mysqlclient-sys?/bundled"] [dev-dependencies] # external dependencies rand.workspace = true +serde_json.workspace = true # internal dependencies iota-config.workspace = true @@ -75,7 +76,9 @@ iota-genesis-builder.workspace = true iota-keys.workspace = true iota-move-build.workspace = true iota-swarm-config.workspace = true +iota-test-transaction-builder.workspace = true simulacrum.workspace = true +test-cluster.workspace = true [[bin]] name = "iota-indexer" diff --git a/crates/iota-indexer/README.md b/crates/iota-indexer/README.md index d59cb3e2183..929c89f1f41 100644 --- a/crates/iota-indexer/README.md +++ b/crates/iota-indexer/README.md @@ -84,14 +84,41 @@ diesel database reset --database-url="postgres://postgres:postgrespw@localhost/i ### Running tests -To run the tests, a running postgres instance is required. The crate provides following tests currently: +To run the tests, a running postgres instance is required. + +```sh +docker run --name iota-indexer-tests -e POSTGRES_PASSWORD=postgrespw -e POSTGRES_USER=postgres -e POSTGRES_DB=iota_indexer -d -p 5432:5432 postgres +``` + +The crate provides following tests currently: - unit tests for DB models (objects, events) which test the conversion between the database representation and the Rust representation of the objects and events. - unit tests for the DB query filters, which test the conversion of filters to the correct SQL queries. - integration tests (see [ingestion_tests](tests/ingestion_tests.rs)) to make sure the indexer correctly indexes transaction data from a full node by comparing the data in the database with the data received from the fullnode. +- rpc tests (see [rpc-tests](tests/rpc-tests/main.rs)) + +> [!NOTE] +> rpc tests which relies on postgres for every test it applies migrations, we need to run tests sequencially to avoid errors + +```sh +# run tests requiring only postgres integration +cargo test --features pg_integration -- --test-threads 1 +# run rpc tests with shared runtime +cargo test --profile simulator --features shared_test_runtime +``` + +For a better testing experience is possible to use [nextest](https://nexte.st/) + +> [!NOTE] +> rpc tests which rely on a shared runtime are not supported with `nextest` +> +> This is because `cargo nextest` process-per-test execution model makes extremely difficult to share state and resources between tests. +> +> On the other hand `cargo test` does not run tests in separate processes by default. This means that tests can share state and resources. ```sh -cargo nextest --features pg_integration --test-threads 1 +# run tests requiring only postgres integration +cargo nextest run --features pg_integration --test-threads 1 ``` ## Steps to run locally with TiDB (experimental) diff --git a/crates/iota-indexer/src/apis/governance_api.rs b/crates/iota-indexer/src/apis/governance_api.rs index d697288cfdb..57e42103b26 100644 --- a/crates/iota-indexer/src/apis/governance_api.rs +++ b/crates/iota-indexer/src/apis/governance_api.rs @@ -2,10 +2,10 @@ // Modifications Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 -use std::collections::BTreeMap; +use std::{collections::BTreeMap, sync::Arc}; use async_trait::async_trait; -use cached::{SizedCache, proc_macro::cached}; +use cached::{Cached, SizedCache}; use diesel::r2d2::R2D2Connection; use iota_json_rpc::{IotaRpcModule, governance_api::ValidatorExchangeRates}; use iota_json_rpc_api::GovernanceReadApiServer; @@ -23,6 +23,7 @@ use iota_types::{ timelock::timelocked_staked_iota::TimelockedStakedIota, }; use jsonrpsee::{RpcModule, core::RpcResult}; +use tokio::sync::Mutex; use crate::{errors::IndexerError, indexer_reader::IndexerReader}; @@ -32,11 +33,17 @@ const MAX_QUERY_STAKED_OBJECTS: usize = 1000; #[derive(Clone)] pub struct GovernanceReadApi<T: R2D2Connection + 'static> { inner: IndexerReader<T>, + exchange_rates_cache: Arc<Mutex<SizedCache<EpochId, Vec<ValidatorExchangeRates>>>>, + validators_apys_cache: Arc<Mutex<SizedCache<EpochId, BTreeMap<IotaAddress, f64>>>>, } impl<T: R2D2Connection + 'static> GovernanceReadApi<T> { pub fn new(inner: IndexerReader<T>) -> Self { - Self { inner } + Self { + inner, + exchange_rates_cache: Arc::new(Mutex::new(SizedCache::with_size(1))), + validators_apys_cache: Arc::new(Mutex::new(SizedCache::with_size(1))), + } } /// Get a validator's APY by its address @@ -44,7 +51,9 @@ impl<T: R2D2Connection + 'static> GovernanceReadApi<T> { &self, address: &IotaAddress, ) -> Result<Option<f64>, IndexerError> { - let apys = validators_apys_map(self.get_validators_apy().await?); + let apys = self + .validators_apys_map(self.get_validators_apy().await?) + .await; Ok(apys.get(address).copied()) } @@ -261,6 +270,28 @@ impl<T: R2D2Connection + 'static> GovernanceReadApi<T> { } Ok(delegated_stakes) } + + /// Cache a map representing the validators' APYs for this epoch + async fn validators_apys_map(&self, apys: ValidatorApys) -> BTreeMap<IotaAddress, f64> { + // check if the apys are already in the cache + if let Some(cached_apys) = self + .validators_apys_cache + .lock() + .await + .cache_get(&apys.epoch) + { + return cached_apys.clone(); + } + + let ret = BTreeMap::from_iter(apys.apys.iter().map(|x| (x.address, x.apy))); + // insert the apys into the cache + self.validators_apys_cache + .lock() + .await + .cache_set(apys.epoch, ret.clone()); + + ret + } } fn stake_status( @@ -292,15 +323,31 @@ fn stake_status( /// Cached exchange rates for validators for the given epoch, the cache size is /// 1, it will be cleared when the epoch changes. rates are in descending order /// by epoch. -#[cached( - type = "SizedCache<EpochId, Vec<ValidatorExchangeRates>>", - create = "{ SizedCache::with_size(1) }", - convert = "{ system_state_summary.epoch }", - result = true -)] pub async fn exchange_rates( state: &GovernanceReadApi<impl R2D2Connection>, system_state_summary: &IotaSystemStateSummary, +) -> Result<Vec<ValidatorExchangeRates>, IndexerError> { + let epoch = system_state_summary.epoch; + + let mut cache = state.exchange_rates_cache.lock().await; + + // Check if the exchange rates for the current epoch are cached + if let Some(cached_rates) = cache.cache_get(&epoch) { + return Ok(cached_rates.clone()); + } + + // Cache miss: compute exchange rates + let exchange_rates = compute_exchange_rates(state, system_state_summary).await?; + + // Store in cache + cache.cache_set(epoch, exchange_rates.clone()); + + Ok(exchange_rates) +} + +pub async fn compute_exchange_rates( + state: &GovernanceReadApi<impl R2D2Connection>, + system_state_summary: &IotaSystemStateSummary, ) -> Result<Vec<ValidatorExchangeRates>, IndexerError> { // Get validator rate tables let mut tables = vec![]; @@ -384,16 +431,6 @@ pub async fn exchange_rates( Ok(exchange_rates) } -/// Cache a map representing the validators' APYs for this epoch -#[cached( - type = "SizedCache<EpochId, BTreeMap<IotaAddress, f64>>", - create = "{ SizedCache::with_size(1) }", - convert = " {apys.epoch} " -)] -fn validators_apys_map(apys: ValidatorApys) -> BTreeMap<IotaAddress, f64> { - BTreeMap::from_iter(apys.apys.iter().map(|x| (x.address, x.apy))) -} - #[async_trait] impl<T: R2D2Connection + 'static> GovernanceReadApiServer for GovernanceReadApi<T> { async fn get_stakes_by_ids( diff --git a/crates/iota-indexer/src/models/transactions.rs b/crates/iota-indexer/src/models/transactions.rs index 16fe366bd58..3ac8ec6d932 100644 --- a/crates/iota-indexer/src/models/transactions.rs +++ b/crates/iota-indexer/src/models/transactions.rs @@ -268,18 +268,15 @@ impl StoredTransaction { None }; - let effects = if options.show_effects { - let effects = self.try_into_iota_transaction_effects()?; - Some(effects) - } else { - None - }; + let effects = options + .show_effects + .then(|| self.try_into_iota_transaction_effects()) + .transpose()?; - let raw_transaction = if options.show_raw_input { - self.raw_transaction - } else { - Vec::new() - }; + let raw_transaction = options + .show_raw_input + .then_some(self.raw_transaction) + .unwrap_or_default(); let events = if options.show_events { let events = { @@ -446,6 +443,11 @@ impl StoredTransaction { None }; + let raw_effects = options + .show_raw_effects + .then_some(self.raw_effects) + .unwrap_or_default(); + Ok(IotaTransactionBlockResponse { digest: tx_digest, transaction, @@ -458,7 +460,7 @@ impl StoredTransaction { checkpoint: Some(self.checkpoint_sequence_number as u64), confirmed_local_execution: None, errors: vec![], - raw_effects: self.raw_effects, + raw_effects, }) } diff --git a/crates/iota-indexer/src/test_utils.rs b/crates/iota-indexer/src/test_utils.rs index fb00f19caba..4058acc5634 100644 --- a/crates/iota-indexer/src/test_utils.rs +++ b/crates/iota-indexer/src/test_utils.rs @@ -45,6 +45,7 @@ pub async fn start_test_indexer<T: R2D2Connection + Send + 'static>( rpc_url: String, reader_writer_config: ReaderWriterConfig, data_ingestion_path: PathBuf, + new_database: Option<&str>, ) -> (PgIndexerStore<T>, JoinHandle<Result<(), IndexerError>>) { start_test_indexer_impl( db_url, @@ -54,6 +55,7 @@ pub async fn start_test_indexer<T: R2D2Connection + Send + 'static>( false, Some(data_ingestion_path), CancellationToken::new(), + new_database, ) .await } @@ -65,17 +67,23 @@ pub async fn start_test_indexer_impl<T: R2D2Connection + 'static>( db_url: Option<String>, rpc_url: String, reader_writer_config: ReaderWriterConfig, - reset_database: bool, + mut reset_database: bool, data_ingestion_path: Option<PathBuf>, cancel: CancellationToken, + new_database: Option<&str>, ) -> (PgIndexerStore<T>, JoinHandle<Result<(), IndexerError>>) { - let db_url = db_url.unwrap_or_else(|| { + let mut db_url = db_url.unwrap_or_else(|| { let pg_host = env::var("POSTGRES_HOST").unwrap_or_else(|_| "localhost".into()); let pg_port = env::var("POSTGRES_PORT").unwrap_or_else(|_| "32770".into()); let pw = env::var("POSTGRES_PASSWORD").unwrap_or_else(|_| "postgrespw".into()); format!("postgres://postgres:{pw}@{pg_host}:{pg_port}") }); + if let Some(new_database) = new_database { + db_url = replace_db_name(&db_url, new_database).0; + reset_database = true; + }; + let mut config = IndexerConfig { db_url: Some(db_url.clone().into()), rpc_client_url: rpc_url, diff --git a/crates/iota-indexer/tests/common/mod.rs b/crates/iota-indexer/tests/common/mod.rs new file mode 100644 index 00000000000..8d87b97da0a --- /dev/null +++ b/crates/iota-indexer/tests/common/mod.rs @@ -0,0 +1,345 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +use std::{ + net::SocketAddr, + path::PathBuf, + sync::{Arc, OnceLock}, + time::Duration, +}; + +use diesel::PgConnection; +use iota_config::local_ip_utils::{get_available_port, new_local_tcp_socket_for_testing}; +use iota_indexer::{ + IndexerConfig, + errors::IndexerError, + indexer::Indexer, + store::{PgIndexerStore, indexer_store::IndexerStore}, + test_utils::{ReaderWriterConfig, start_test_indexer}, +}; +use iota_json_rpc_api::ReadApiClient; +use iota_json_rpc_types::IotaTransactionBlockResponseOptions; +use iota_metrics::init_metrics; +use iota_types::{ + base_types::{ObjectID, SequenceNumber}, + digests::TransactionDigest, +}; +use jsonrpsee::{ + http_client::{HttpClient, HttpClientBuilder}, + types::ErrorObject, +}; +use simulacrum::Simulacrum; +use tempfile::tempdir; +use test_cluster::{TestCluster, TestClusterBuilder}; +use tokio::{runtime::Runtime, task::JoinHandle}; + +const POSTGRES_URL: &str = "postgres://postgres:postgrespw@localhost:5432"; +const DEFAULT_DB: &str = "iota_indexer"; +const DEFAULT_INDEXER_IP: &str = "127.0.0.1"; +const DEFAULT_INDEXER_PORT: u16 = 9005; +const DEFAULT_SERVER_PORT: u16 = 3000; + +static GLOBAL_API_TEST_SETUP: OnceLock<ApiTestSetup> = OnceLock::new(); + +pub struct ApiTestSetup { + pub runtime: Runtime, + pub cluster: TestCluster, + pub store: PgIndexerStore<PgConnection>, + /// Indexer RPC Client + pub client: HttpClient, +} + +impl ApiTestSetup { + pub fn get_or_init() -> &'static ApiTestSetup { + GLOBAL_API_TEST_SETUP.get_or_init(|| { + let runtime = tokio::runtime::Runtime::new().unwrap(); + + let (cluster, store, client) = runtime.block_on( + start_test_cluster_with_read_write_indexer(Some("shared_test_indexer_db"), None), + ); + + Self { + runtime, + cluster, + store, + client, + } + }) + } +} + +pub struct SimulacrumTestSetup { + pub runtime: Runtime, + pub sim: Arc<Simulacrum>, + pub store: PgIndexerStore<PgConnection>, + /// Indexer RPC Client + pub client: HttpClient, +} + +impl SimulacrumTestSetup { + pub fn get_or_init<'a>( + unique_env_name: &str, + env_initializer: impl Fn(PathBuf) -> Simulacrum, + initialized_env_container: &'a OnceLock<SimulacrumTestSetup>, + ) -> &'a SimulacrumTestSetup { + initialized_env_container.get_or_init(|| { + let runtime = tokio::runtime::Runtime::new().unwrap(); + let data_ingestion_path = tempdir().unwrap().into_path(); + + let sim = env_initializer(data_ingestion_path.clone()); + let sim = Arc::new(sim); + + let db_name = format!("simulacrum_env_db_{}", unique_env_name); + let (_, store, _, client) = + runtime.block_on(start_simulacrum_rest_api_with_read_write_indexer( + sim.clone(), + data_ingestion_path, + Some(&db_name), + )); + + SimulacrumTestSetup { + runtime, + sim, + store, + client, + } + }) + } +} + +/// Start a [`TestCluster`][`test_cluster::TestCluster`] with a `Read` & +/// `Write` indexer +pub async fn start_test_cluster_with_read_write_indexer( + database_name: Option<&str>, + builder_modifier: Option<Box<dyn FnOnce(TestClusterBuilder) -> TestClusterBuilder>>, +) -> (TestCluster, PgIndexerStore<PgConnection>, HttpClient) { + let temp = tempdir().unwrap().into_path(); + let mut builder = TestClusterBuilder::new().with_data_ingestion_dir(temp.clone()); + + if let Some(builder_modifier) = builder_modifier { + builder = builder_modifier(builder); + }; + + let cluster = builder.build().await; + + // start indexer in write mode + let (pg_store, _pg_store_handle) = start_test_indexer( + Some(get_indexer_db_url(None)), + cluster.rpc_url().to_string(), + ReaderWriterConfig::writer_mode(None), + temp.clone(), + database_name, + ) + .await; + + // start indexer in read mode + let indexer_port = start_indexer_reader(cluster.rpc_url().to_owned(), temp, database_name); + + // create an RPC client by using the indexer url + let rpc_client = HttpClientBuilder::default() + .build(format!("http://{DEFAULT_INDEXER_IP}:{indexer_port}")) + .unwrap(); + + (cluster, pg_store, rpc_client) +} + +fn get_indexer_db_url(database_name: Option<&str>) -> String { + database_name.map_or_else( + || format!("{POSTGRES_URL}/{DEFAULT_DB}"), + |db_name| format!("{POSTGRES_URL}/{db_name}"), + ) +} + +/// Wait for the indexer to catch up to the given checkpoint sequence number +/// +/// Indexer starts storing data after checkpoint 0 +pub async fn indexer_wait_for_checkpoint( + pg_store: &PgIndexerStore<PgConnection>, + checkpoint_sequence_number: u64, +) { + tokio::time::timeout(Duration::from_secs(30), async { + while { + let cp_opt = pg_store + .get_latest_checkpoint_sequence_number() + .await + .unwrap(); + cp_opt.is_none() || (cp_opt.unwrap() < checkpoint_sequence_number) + } { + tokio::time::sleep(Duration::from_millis(100)).await; + } + }) + .await + .expect("Timeout waiting for indexer to catchup to checkpoint"); +} + +/// Wait for the indexer to catch up to the latest node checkpoint sequence +/// number. Indexer starts storing data after checkpoint 0 +pub async fn indexer_wait_for_latest_checkpoint( + pg_store: &PgIndexerStore<PgConnection>, + cluster: &TestCluster, +) { + let latest_checkpoint = cluster + .iota_client() + .read_api() + .get_latest_checkpoint_sequence_number() + .await + .unwrap(); + + indexer_wait_for_checkpoint(pg_store, latest_checkpoint).await; +} + +/// Wait for the indexer to catch up to the given object sequence number +pub async fn indexer_wait_for_object( + client: &HttpClient, + object_id: ObjectID, + sequence_number: SequenceNumber, +) { + tokio::time::timeout(Duration::from_secs(30), async { + loop { + if client + .get_object(object_id, None) + .await + .unwrap() + .data + .map(|obj| obj.version == sequence_number) + .unwrap_or_default() + { + break; + } + tokio::time::sleep(Duration::from_millis(100)).await; + } + }) + .await + .expect("Timeout waiting for indexer to catchup to given object's sequence number"); +} + +pub async fn indexer_wait_for_transaction( + tx_digest: TransactionDigest, + pg_store: &PgIndexerStore<PgConnection>, + indexer_client: &HttpClient, +) { + tokio::time::timeout(Duration::from_secs(30), async { + loop { + if let Ok(tx) = indexer_client + .get_transaction_block(tx_digest, Some(IotaTransactionBlockResponseOptions::new())) + .await + { + if let Some(checkpoint) = tx.checkpoint { + indexer_wait_for_checkpoint(pg_store, checkpoint).await; + break; + } + } + tokio::time::sleep(Duration::from_millis(100)).await; + } + }) + .await + .expect("Timeout waiting for indexer to catchup to given transaction"); +} + +/// Start an Indexer instance in `Read` mode +fn start_indexer_reader( + fullnode_rpc_url: impl Into<String>, + data_ingestion_path: PathBuf, + database_name: Option<&str>, +) -> u16 { + let db_url = get_indexer_db_url(database_name); + let port = get_available_port(DEFAULT_INDEXER_IP); + let config = IndexerConfig { + db_url: Some(db_url.clone().into()), + rpc_client_url: fullnode_rpc_url.into(), + reset_db: true, + rpc_server_worker: true, + rpc_server_url: DEFAULT_INDEXER_IP.to_owned(), + rpc_server_port: port, + data_ingestion_path: Some(data_ingestion_path), + ..Default::default() + }; + + let registry = prometheus::Registry::default(); + init_metrics(®istry); + + tokio::spawn( + async move { Indexer::start_reader::<PgConnection>(&config, ®istry, db_url).await }, + ); + port +} + +/// Check if provided error message does match with +/// the [`jsonrpsee::core::ClientError::Call`] Error variant +pub fn rpc_call_error_msg_matches<T>( + result: Result<T, jsonrpsee::core::ClientError>, + raw_msg: &str, +) -> bool { + let err_obj: ErrorObject = serde_json::from_str(raw_msg).unwrap(); + + result.is_err_and(|err| match err { + jsonrpsee::core::ClientError::Call(owned_obj) => { + owned_obj.message() == ErrorObject::into_owned(err_obj).message() + } + _ => false, + }) +} + +/// Set up a test indexer fetching from a REST endpoint served by the given +/// Simulacrum. +pub async fn start_simulacrum_rest_api_with_write_indexer( + sim: Arc<Simulacrum>, + data_ingestion_path: PathBuf, + server_url: Option<SocketAddr>, + database_name: Option<&str>, +) -> ( + JoinHandle<()>, + PgIndexerStore<PgConnection>, + JoinHandle<Result<(), IndexerError>>, +) { + let server_url = server_url.unwrap_or_else(new_local_tcp_socket_for_testing); + let server_handle = tokio::spawn(async move { + iota_rest_api::RestService::new_without_version(sim) + .start_service(server_url) + .await; + }); + // Starts indexer + let (pg_store, pg_handle) = start_test_indexer( + Some(get_indexer_db_url(None)), + format!("http://{}", server_url), + ReaderWriterConfig::writer_mode(None), + data_ingestion_path, + database_name, + ) + .await; + (server_handle, pg_store, pg_handle) +} + +pub async fn start_simulacrum_rest_api_with_read_write_indexer( + sim: Arc<Simulacrum>, + data_ingestion_path: PathBuf, + database_name: Option<&str>, +) -> ( + JoinHandle<()>, + PgIndexerStore<PgConnection>, + JoinHandle<Result<(), IndexerError>>, + HttpClient, +) { + let simulacrum_server_url = new_local_tcp_socket_for_testing(); + let (server_handle, pg_store, pg_handle) = start_simulacrum_rest_api_with_write_indexer( + sim, + data_ingestion_path.clone(), + Some(simulacrum_server_url), + database_name, + ) + .await; + + // start indexer in read mode + let indexer_port = start_indexer_reader( + format!("http://{}", simulacrum_server_url), + data_ingestion_path, + database_name, + ); + + // create an RPC client by using the indexer url + let rpc_client = HttpClientBuilder::default() + .build(format!("http://{DEFAULT_INDEXER_IP}:{indexer_port}")) + .unwrap(); + + (server_handle, pg_store, pg_handle, rpc_client) +} diff --git a/crates/iota-indexer/tests/data/dummy_modules_publish/Move.toml b/crates/iota-indexer/tests/data/dummy_modules_publish/Move.toml new file mode 100644 index 00000000000..e518fc169a9 --- /dev/null +++ b/crates/iota-indexer/tests/data/dummy_modules_publish/Move.toml @@ -0,0 +1,9 @@ +[package] +name = "Examples" +version = "0.0.1" + +[dependencies] +Iota = { local = "../../../../iota-framework/packages/iota-framework" } + +[addresses] +examples = "0x0" diff --git a/crates/iota-indexer/tests/data/dummy_modules_publish/sources/trusted_coin.move b/crates/iota-indexer/tests/data/dummy_modules_publish/sources/trusted_coin.move new file mode 100644 index 00000000000..1a53fb598a5 --- /dev/null +++ b/crates/iota-indexer/tests/data/dummy_modules_publish/sources/trusted_coin.move @@ -0,0 +1,40 @@ +// Copyright (c) Mysten Labs, Inc. +// Modifications Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +/// Example coin with a trusted owner responsible for minting/burning (e.g., a stablecoin) +module examples::trusted_coin { + use std::option; + use iota::coin::{Self, TreasuryCap}; + use iota::transfer; + use iota::tx_context::{Self, TxContext}; + + /// Name of the coin + struct TRUSTED_COIN has drop {} + + /// Register the trusted currency to acquire its `TreasuryCap`. Because + /// this is a module initializer, it ensures the currency only gets + /// registered once. + fun init(witness: TRUSTED_COIN, ctx: &mut TxContext) { + // Get a treasury cap for the coin and give it to the transaction + // sender + let (treasury_cap, metadata) = coin::create_currency<TRUSTED_COIN>(witness, 2, b"TRUSTED", b"Trusted Coin", b"Trusted Coin for test", option::none(), ctx); + transfer::public_freeze_object(metadata); + transfer::public_transfer(treasury_cap, tx_context::sender(ctx)) + } + + public entry fun mint(treasury_cap: &mut TreasuryCap<TRUSTED_COIN>, amount: u64, ctx: &mut TxContext) { + let coin = coin::mint<TRUSTED_COIN>(treasury_cap, amount, ctx); + transfer::public_transfer(coin, tx_context::sender(ctx)); + } + + public entry fun transfer(treasury_cap: TreasuryCap<TRUSTED_COIN>, recipient: address) { + transfer::public_transfer(treasury_cap, recipient); + } + + #[test_only] + /// Wrapper of module initializer for testing + public fun test_init(ctx: &mut TxContext) { + init(TRUSTED_COIN {}, ctx) + } +} diff --git a/crates/iota-indexer/tests/ingestion_tests.rs b/crates/iota-indexer/tests/ingestion_tests.rs index cbc95d9b67d..4ed48a2c0f2 100644 --- a/crates/iota-indexer/tests/ingestion_tests.rs +++ b/crates/iota-indexer/tests/ingestion_tests.rs @@ -2,9 +2,12 @@ // Modifications Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 +#[allow(dead_code)] +#[cfg(feature = "pg_integration")] +mod common; #[cfg(feature = "pg_integration")] mod ingestion_tests { - use std::{net::SocketAddr, path::PathBuf, sync::Arc, time::Duration}; + use std::sync::Arc; use diesel::{ExpressionMethods, QueryDsl, RunQueryDsl}; use iota_indexer::{ @@ -12,8 +15,6 @@ mod ingestion_tests { errors::{Context, IndexerError}, models::{objects::StoredObject, transactions::StoredTransaction}, schema::{objects, transactions}, - store::{PgIndexerStore, indexer_store::IndexerStore}, - test_utils::{ReaderWriterConfig, start_test_indexer}, }; use iota_types::{ IOTA_FRAMEWORK_PACKAGE_ID, base_types::IotaAddress, effects::TransactionEffectsAPI, @@ -21,7 +22,10 @@ mod ingestion_tests { }; use simulacrum::Simulacrum; use tempfile::tempdir; - use tokio::task::JoinHandle; + + use crate::common::{ + indexer_wait_for_checkpoint, start_simulacrum_rest_api_with_write_indexer, + }; macro_rules! read_only_blocking { ($pool:expr, $query:expr) => {{ @@ -34,61 +38,6 @@ mod ingestion_tests { }}; } - const DEFAULT_SERVER_PORT: u16 = 3000; - const DEFAULT_DB_URL: &str = "postgres://postgres:postgrespw@localhost:5432/iota_indexer"; - - /// Set up a test indexer fetching from a REST endpoint served by the given - /// Simulacrum. - async fn set_up( - sim: Arc<Simulacrum>, - data_ingestion_path: PathBuf, - ) -> ( - JoinHandle<()>, - PgIndexerStore<diesel::PgConnection>, - JoinHandle<Result<(), IndexerError>>, - ) { - let server_url: SocketAddr = format!("127.0.0.1:{}", DEFAULT_SERVER_PORT) - .parse() - .unwrap(); - - let server_handle = tokio::spawn(async move { - iota_rest_api::RestService::new_without_version(sim) - .start_service(server_url) - .await; - }); - // Starts indexer - let (pg_store, pg_handle) = start_test_indexer( - Some(DEFAULT_DB_URL.to_owned()), - format!("http://{}", server_url), - ReaderWriterConfig::writer_mode(None), - data_ingestion_path, - ) - .await; - (server_handle, pg_store, pg_handle) - } - - /// Wait for the indexer to catch up to the given checkpoint sequence - /// number. - async fn wait_for_checkpoint( - pg_store: &PgIndexerStore<diesel::PgConnection>, - checkpoint_sequence_number: u64, - ) -> Result<(), IndexerError> { - tokio::time::timeout(Duration::from_secs(10), async { - while { - let cp_opt = pg_store - .get_latest_checkpoint_sequence_number() - .await - .unwrap(); - cp_opt.is_none() || (cp_opt.unwrap() < checkpoint_sequence_number) - } { - tokio::time::sleep(Duration::from_secs(1)).await; - } - }) - .await - .expect("Timeout waiting for indexer to catchup to checkpoint"); - Ok(()) - } - #[tokio::test] pub async fn test_transaction_table() -> Result<(), IndexerError> { let mut sim = Simulacrum::new(); @@ -104,10 +53,15 @@ mod ingestion_tests { // Create a checkpoint which should include the transaction we executed. let checkpoint = sim.create_checkpoint(); - let (_, pg_store, _) = set_up(Arc::new(sim), data_ingestion_path).await; + let (_, pg_store, _) = start_simulacrum_rest_api_with_write_indexer( + Arc::new(sim), + data_ingestion_path, + None, + Some("indexer_ingestion_tests_db"), + ) + .await; - // Wait for the indexer to catch up to the checkpoint. - wait_for_checkpoint(&pg_store, 1).await?; + indexer_wait_for_checkpoint(&pg_store, 1).await; let digest = effects.transaction_digest(); @@ -149,10 +103,15 @@ mod ingestion_tests { // Create a checkpoint which should include the transaction we executed. let _ = sim.create_checkpoint(); - let (_, pg_store, _) = set_up(Arc::new(sim), data_ingestion_path).await; + let (_, pg_store, _) = start_simulacrum_rest_api_with_write_indexer( + Arc::new(sim), + data_ingestion_path, + None, + Some("indexer_ingestion_tests_db"), + ) + .await; - // Wait for the indexer to catch up to the checkpoint. - wait_for_checkpoint(&pg_store, 1).await?; + indexer_wait_for_checkpoint(&pg_store, 1).await; let obj_id = transaction.gas()[0].0; diff --git a/crates/iota-indexer/tests/rpc-tests/coin_api.rs b/crates/iota-indexer/tests/rpc-tests/coin_api.rs new file mode 100644 index 00000000000..208d0b166fd --- /dev/null +++ b/crates/iota-indexer/tests/rpc-tests/coin_api.rs @@ -0,0 +1,539 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +use std::{path::PathBuf, str::FromStr}; + +use iota_json::{call_args, type_args}; +use iota_json_rpc_api::{CoinReadApiClient, TransactionBuilderClient, WriteApiClient}; +use iota_json_rpc_types::{ + Balance, CoinPage, IotaCoinMetadata, IotaExecutionStatus, IotaObjectRef, + IotaTransactionBlockEffectsAPI, IotaTransactionBlockResponse, + IotaTransactionBlockResponseOptions, ObjectChange, TransactionBlockBytes, +}; +use iota_move_build::BuildConfig; +use iota_types::{ + IOTA_FRAMEWORK_ADDRESS, + balance::Supply, + base_types::{IotaAddress, ObjectID}, + coin::{COIN_MODULE_NAME, TreasuryCap}, + crypto::{AccountKeyPair, get_key_pair}, + parse_iota_struct_tag, + quorum_driver_types::ExecuteTransactionRequestType, + utils::to_sender_signed_transaction, +}; +use jsonrpsee::http_client::HttpClient; +use test_cluster::TestCluster; +use tokio::sync::OnceCell; + +use crate::common::{ApiTestSetup, indexer_wait_for_object}; + +static COMMON_TESTING_ADDR_AND_CUSTOM_COIN_NAME: OnceCell<(IotaAddress, String)> = + OnceCell::const_new(); + +async fn get_or_init_addr_and_custom_coins( + cluster: &TestCluster, + indexer_client: &HttpClient, +) -> &'static (IotaAddress, String) { + COMMON_TESTING_ADDR_AND_CUSTOM_COIN_NAME + .get_or_init(|| async { + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + + for _ in 0..5 { + cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(500_000_000), + address, + ) + .await; + } + + let (coin_name, coin_object_ref) = + create_and_mint_trusted_coin(cluster, address, keypair, 100_000) + .await + .unwrap(); + + indexer_wait_for_object( + indexer_client, + coin_object_ref.object_id, + coin_object_ref.version, + ) + .await; + + (address, coin_name) + }) + .await +} + +#[test] +fn get_coins_basic_scenario() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, _) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (result_fullnode, result_indexer) = + get_coins_fullnode_indexer(cluster, client, *owner, None, None, None).await; + + assert!(!result_indexer.data.is_empty()); + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_coins_with_cursor() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, _) = get_or_init_addr_and_custom_coins(cluster, client).await; + let all_coins = cluster + .rpc_client() + .get_coins(*owner, None, None, None) + .await + .unwrap(); + let cursor = all_coins.data[3].coin_object_id; // get some coin from the middle + + let (result_fullnode, result_indexer) = + get_coins_fullnode_indexer(cluster, client, *owner, None, Some(cursor), None).await; + + assert!(!result_indexer.data.is_empty()); + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_coins_with_limit() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, _) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (result_fullnode, result_indexer) = + get_coins_fullnode_indexer(cluster, client, *owner, None, None, Some(2)).await; + + assert!(!result_indexer.data.is_empty()); + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_coins_custom_coin() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, coin_name) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (result_fullnode, result_indexer) = get_coins_fullnode_indexer( + cluster, + client, + *owner, + Some(coin_name.clone()), + None, + None, + ) + .await; + + assert_eq!(result_indexer.data.len(), 1); + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_all_coins_basic_scenario() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, _) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (result_fullnode, result_indexer) = + get_all_coins_fullnode_indexer(cluster, client, *owner, None, None).await; + + assert!(!result_indexer.data.is_empty()); + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[ignore = "https://github.com/iotaledger/iota/issues/3588"] +#[test] +fn get_all_coins_with_cursor() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, _) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let all_coins = cluster + .rpc_client() + .get_coins(*owner, None, None, None) + .await + .unwrap(); + let cursor = all_coins.data[3].coin_object_id; // get some coin from the middle + + let (result_fullnode_all, result_indexer_all) = + get_all_coins_fullnode_indexer(cluster, client, *owner, None, None).await; + + let (result_fullnode, result_indexer) = + get_all_coins_fullnode_indexer(cluster, client, *owner, Some(cursor), None).await; + + println!("Fullnode all: {:#?}", result_fullnode_all); + println!("Indexer all: {:#?}", result_indexer_all); + println!("Fullnode: {:#?}", result_fullnode); + println!("Indexer: {:#?}", result_indexer); + println!("Cursor: {:#?}", cursor); + + assert!(!result_indexer.data.is_empty()); + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_all_coins_with_limit() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, _) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (result_fullnode, result_indexer) = + get_all_coins_fullnode_indexer(cluster, client, *owner, None, Some(2)).await; + + assert!(!result_indexer.data.is_empty()); + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_balance_iota_coin() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, _) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (result_fullnode, result_indexer) = + get_balance_fullnode_indexer(cluster, client, *owner, None).await; + + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_balance_custom_coin() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, coin_name) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (result_fullnode, result_indexer) = + get_balance_fullnode_indexer(cluster, client, *owner, Some(coin_name.to_string())) + .await; + + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_all_balances() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (owner, _) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (mut result_fullnode, mut result_indexer) = + get_all_balances_fullnode_indexer(cluster, client, *owner).await; + + result_fullnode.sort_by_key(|balance: &Balance| balance.coin_type.clone()); + result_indexer.sort_by_key(|balance: &Balance| balance.coin_type.clone()); + + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_coin_metadata() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (_, coin_name) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (result_fullnode, result_indexer) = + get_coin_metadata_fullnode_indexer(cluster, client, coin_name.to_string()).await; + + assert!(result_indexer.is_some()); + assert_eq!(result_fullnode, result_indexer); + }); +} + +#[test] +fn get_total_supply() { + let ApiTestSetup { + runtime, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + let (_, coin_name) = get_or_init_addr_and_custom_coins(cluster, client).await; + + let (result_fullnode, result_indexer) = + get_total_supply_fullnode_indexer(cluster, client, coin_name.to_string()).await; + + assert_eq!(result_fullnode, result_indexer); + }); +} + +async fn get_coins_fullnode_indexer( + cluster: &TestCluster, + client: &HttpClient, + owner: IotaAddress, + coin_type: Option<String>, + cursor: Option<ObjectID>, + limit: Option<usize>, +) -> (CoinPage, CoinPage) { + let result_fullnode = cluster + .rpc_client() + .get_coins(owner, coin_type.clone(), cursor, limit) + .await + .unwrap(); + let result_indexer = client + .get_coins(owner, coin_type, cursor, limit) + .await + .unwrap(); + (result_fullnode, result_indexer) +} + +async fn get_all_coins_fullnode_indexer( + cluster: &TestCluster, + client: &HttpClient, + owner: IotaAddress, + cursor: Option<ObjectID>, + limit: Option<usize>, +) -> (CoinPage, CoinPage) { + let result_fullnode = cluster + .rpc_client() + .get_all_coins(owner, cursor, limit) + .await + .unwrap(); + let result_indexer = client.get_all_coins(owner, cursor, limit).await.unwrap(); + (result_fullnode, result_indexer) +} + +async fn get_balance_fullnode_indexer( + cluster: &TestCluster, + client: &HttpClient, + owner: IotaAddress, + coin_type: Option<String>, +) -> (Balance, Balance) { + let result_fullnode = cluster + .rpc_client() + .get_balance(owner, coin_type.clone()) + .await + .unwrap(); + let result_indexer = client.get_balance(owner, coin_type).await.unwrap(); + (result_fullnode, result_indexer) +} + +async fn get_all_balances_fullnode_indexer( + cluster: &TestCluster, + client: &HttpClient, + owner: IotaAddress, +) -> (Vec<Balance>, Vec<Balance>) { + let result_fullnode = cluster.rpc_client().get_all_balances(owner).await.unwrap(); + let result_indexer = client.get_all_balances(owner).await.unwrap(); + (result_fullnode, result_indexer) +} + +async fn get_coin_metadata_fullnode_indexer( + cluster: &TestCluster, + client: &HttpClient, + coin_type: String, +) -> (Option<IotaCoinMetadata>, Option<IotaCoinMetadata>) { + let result_fullnode = cluster + .rpc_client() + .get_coin_metadata(coin_type.clone()) + .await + .unwrap(); + let result_indexer = client.get_coin_metadata(coin_type).await.unwrap(); + (result_fullnode, result_indexer) +} + +async fn get_total_supply_fullnode_indexer( + cluster: &TestCluster, + client: &HttpClient, + coin_type: String, +) -> (Supply, Supply) { + let result_fullnode = cluster + .rpc_client() + .get_total_supply(coin_type.clone()) + .await + .unwrap(); + let result_indexer = client.get_total_supply(coin_type).await.unwrap(); + (result_fullnode, result_indexer) +} + +async fn create_and_mint_trusted_coin( + cluster: &TestCluster, + address: IotaAddress, + account_keypair: AccountKeyPair, + amount: u64, +) -> Result<(String, IotaObjectRef), anyhow::Error> { + let http_client = cluster.rpc_client(); + let coins = http_client + .get_coins(address, None, None, Some(1)) + .await + .unwrap() + .data; + let gas = &coins[0]; + + // Publish test coin package + let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + path.extend(["tests", "data", "dummy_modules_publish"]); + let compiled_package = BuildConfig::default().build(&path).unwrap(); + let with_unpublished_deps = false; + let compiled_modules_bytes = compiled_package.get_package_base64(with_unpublished_deps); + let dependencies = compiled_package.get_dependency_storage_package_ids(); + + let transaction_bytes: TransactionBlockBytes = http_client + .publish( + address, + compiled_modules_bytes, + dependencies, + Some(gas.coin_object_id), + 100_000_000.into(), + ) + .await + .unwrap(); + + let signed_transaction = + to_sender_signed_transaction(transaction_bytes.to_data().unwrap(), &account_keypair); + let (tx_bytes, signatures) = signed_transaction.to_tx_bytes_and_signatures(); + + let tx_response: IotaTransactionBlockResponse = http_client + .execute_transaction_block( + tx_bytes, + signatures, + Some( + IotaTransactionBlockResponseOptions::new() + .with_object_changes() + .with_events(), + ), + Some(ExecuteTransactionRequestType::WaitForLocalExecution), + ) + .await + .unwrap(); + + let object_changes = tx_response.object_changes.as_ref().unwrap(); + let package_id = object_changes + .iter() + .find_map(|change| match change { + ObjectChange::Published { package_id, .. } => Some(package_id), + _ => None, + }) + .unwrap(); + + let coin_name = format!("{package_id}::trusted_coin::TRUSTED_COIN"); + let result: Supply = http_client + .get_total_supply(coin_name.clone()) + .await + .unwrap(); + + assert_eq!(0, result.value); + + let object_changes = tx_response.object_changes.as_ref().unwrap(); + let treasury_cap = object_changes + .iter() + .filter_map(|change| match change { + ObjectChange::Created { + object_id, + object_type, + .. + } => Some((object_id, object_type)), + _ => None, + }) + .find_map(|(object_id, object_type)| { + let coin_type = parse_iota_struct_tag(&coin_name).unwrap(); + (&TreasuryCap::type_(coin_type) == object_type).then_some(object_id) + }) + .unwrap(); + + let transaction_bytes: TransactionBlockBytes = http_client + .move_call( + address, + IOTA_FRAMEWORK_ADDRESS.into(), + COIN_MODULE_NAME.to_string(), + "mint_and_transfer".into(), + type_args![coin_name.clone()].unwrap(), + call_args![treasury_cap, amount, address].unwrap(), + Some(gas.coin_object_id), + 10_000_000.into(), + None, + ) + .await + .unwrap(); + + let signed_transaction = + to_sender_signed_transaction(transaction_bytes.to_data().unwrap(), &account_keypair); + let (tx_bytes, signatures) = signed_transaction.to_tx_bytes_and_signatures(); + + let tx_response = http_client + .execute_transaction_block( + tx_bytes, + signatures, + Some(IotaTransactionBlockResponseOptions::new().with_effects()), + Some(ExecuteTransactionRequestType::WaitForLocalExecution), + ) + .await + .unwrap(); + + let IotaTransactionBlockResponse { effects, .. } = tx_response; + + assert_eq!( + IotaExecutionStatus::Success, + *effects.as_ref().unwrap().status() + ); + + let created_coin_obj_ref = effects.unwrap().created()[0].reference.clone(); + + Ok((coin_name, created_coin_obj_ref)) +} diff --git a/crates/iota-indexer/tests/rpc-tests/extended_api.rs b/crates/iota-indexer/tests/rpc-tests/extended_api.rs new file mode 100644 index 00000000000..8198a7ef044 --- /dev/null +++ b/crates/iota-indexer/tests/rpc-tests/extended_api.rs @@ -0,0 +1,494 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +use std::{str::FromStr, sync::OnceLock}; + +use iota_json::{call_args, type_args}; +use iota_json_rpc_api::{ + ExtendedApiClient, IndexerApiClient, ReadApiClient, TransactionBuilderClient, WriteApiClient, +}; +use iota_json_rpc_types::{ + IotaObjectDataOptions, IotaObjectResponseQuery, IotaTransactionBlockResponseOptions, + TransactionBlockBytes, +}; +use iota_types::{ + IOTA_FRAMEWORK_ADDRESS, + base_types::{IotaAddress, ObjectID}, + gas_coin::GAS, + quorum_driver_types::ExecuteTransactionRequestType, + storage::ReadStore, +}; +use simulacrum::Simulacrum; +use test_cluster::TestCluster; + +use crate::common::{ApiTestSetup, SimulacrumTestSetup, indexer_wait_for_checkpoint}; + +static EXTENDED_API_SHARED_SIMULACRUM_INITIALIZED_ENV: OnceLock<SimulacrumTestSetup> = + OnceLock::new(); + +fn get_or_init_shared_extended_api_simulacrum_env() -> &'static SimulacrumTestSetup { + SimulacrumTestSetup::get_or_init( + "extended_api", + |data_ingestion_path| { + let mut sim = Simulacrum::new(); + sim.set_data_ingestion_path(data_ingestion_path); + + execute_simulacrum_transactions(&mut sim, 15); + add_checkpoints(&mut sim, 300); + sim.advance_epoch(); + + execute_simulacrum_transactions(&mut sim, 10); + add_checkpoints(&mut sim, 300); + sim.advance_epoch(); + + execute_simulacrum_transactions(&mut sim, 5); + add_checkpoints(&mut sim, 300); + + sim + }, + &EXTENDED_API_SHARED_SIMULACRUM_INITIALIZED_ENV, + ) +} + +#[test] +fn get_epochs() { + let SimulacrumTestSetup { + runtime, + sim, + store, + client, + } = get_or_init_shared_extended_api_simulacrum_env(); + + runtime.block_on(async move { + let last_checkpoint = sim.get_latest_checkpoint().unwrap(); + indexer_wait_for_checkpoint(store, last_checkpoint.sequence_number).await; + + let epochs = client.get_epochs(None, None, None).await.unwrap(); + + assert_eq!(epochs.data.len(), 3); + assert!(!epochs.has_next_page); + + let end_of_epoch_info = epochs.data[0].end_of_epoch_info.as_ref().unwrap(); + assert_eq!(epochs.data[0].epoch, 0); + assert_eq!(epochs.data[0].first_checkpoint_id, 0); + assert_eq!(epochs.data[0].epoch_total_transactions, 17); + assert_eq!(end_of_epoch_info.last_checkpoint_id, 301); + + let end_of_epoch_info = epochs.data[1].end_of_epoch_info.as_ref().unwrap(); + assert_eq!(epochs.data[1].epoch, 1); + assert_eq!(epochs.data[1].first_checkpoint_id, 302); + assert_eq!(epochs.data[1].epoch_total_transactions, 11); + assert_eq!(end_of_epoch_info.last_checkpoint_id, 602); + + assert_eq!(epochs.data[2].epoch, 2); + assert_eq!(epochs.data[2].first_checkpoint_id, 603); + assert_eq!(epochs.data[2].epoch_total_transactions, 0); + assert!(epochs.data[2].end_of_epoch_info.is_none()); + }); +} + +#[test] +fn get_epochs_descending() { + let SimulacrumTestSetup { + runtime, + sim, + store, + client, + } = get_or_init_shared_extended_api_simulacrum_env(); + + runtime.block_on(async move { + let last_checkpoint = sim.get_latest_checkpoint().unwrap(); + indexer_wait_for_checkpoint(store, last_checkpoint.sequence_number).await; + + let epochs = client.get_epochs(None, None, Some(true)).await.unwrap(); + + let actual_epochs_order = epochs + .data + .iter() + .map(|epoch| epoch.epoch) + .collect::<Vec<u64>>(); + + assert_eq!(epochs.data.len(), 3); + assert!(!epochs.has_next_page); + assert_eq!(actual_epochs_order, [2, 1, 0]) + }); +} + +#[test] +fn get_epochs_paging() { + let SimulacrumTestSetup { + runtime, + sim, + store, + client, + } = get_or_init_shared_extended_api_simulacrum_env(); + + runtime.block_on(async move { + let last_checkpoint = sim.get_latest_checkpoint().unwrap(); + indexer_wait_for_checkpoint(store, last_checkpoint.sequence_number).await; + + let epochs = client.get_epochs(None, Some(2), None).await.unwrap(); + let actual_epochs_order = epochs + .data + .iter() + .map(|epoch| epoch.epoch) + .collect::<Vec<u64>>(); + + assert_eq!(epochs.data.len(), 2); + assert!(epochs.has_next_page); + assert_eq!(epochs.next_cursor, Some(1.into())); + assert_eq!(actual_epochs_order, [0, 1]); + + let epochs = client + .get_epochs(Some(1.into()), Some(2), None) + .await + .unwrap(); + let actual_epochs_order = epochs + .data + .iter() + .map(|epoch| epoch.epoch) + .collect::<Vec<u64>>(); + + assert_eq!(epochs.data.len(), 1); + assert!(!epochs.has_next_page); + assert_eq!(epochs.next_cursor, Some(2.into())); + assert_eq!(actual_epochs_order, [2]); + }); +} + +#[test] +fn get_epoch_metrics() { + let SimulacrumTestSetup { + runtime, + sim, + store, + client, + } = get_or_init_shared_extended_api_simulacrum_env(); + + runtime.block_on(async move { + let last_checkpoint = sim.get_latest_checkpoint().unwrap(); + indexer_wait_for_checkpoint(store, last_checkpoint.sequence_number).await; + + let epoch_metrics = client.get_epoch_metrics(None, None, None).await.unwrap(); + + assert_eq!(epoch_metrics.data.len(), 3); + assert!(!epoch_metrics.has_next_page); + + let end_of_epoch_info = epoch_metrics.data[0].end_of_epoch_info.as_ref().unwrap(); + assert_eq!(epoch_metrics.data[0].epoch, 0); + assert_eq!(epoch_metrics.data[0].first_checkpoint_id, 0); + assert_eq!(epoch_metrics.data[0].epoch_total_transactions, 17); + assert_eq!(end_of_epoch_info.last_checkpoint_id, 301); + + let end_of_epoch_info = epoch_metrics.data[1].end_of_epoch_info.as_ref().unwrap(); + assert_eq!(epoch_metrics.data[1].epoch, 1); + assert_eq!(epoch_metrics.data[1].first_checkpoint_id, 302); + assert_eq!(epoch_metrics.data[1].epoch_total_transactions, 11); + assert_eq!(end_of_epoch_info.last_checkpoint_id, 602); + + assert_eq!(epoch_metrics.data[2].epoch, 2); + assert_eq!(epoch_metrics.data[2].first_checkpoint_id, 603); + assert_eq!(epoch_metrics.data[2].epoch_total_transactions, 0); + assert!(epoch_metrics.data[2].end_of_epoch_info.is_none()); + }); +} + +#[test] +fn get_epoch_metrics_descending() { + let SimulacrumTestSetup { + runtime, + sim, + store, + client, + } = get_or_init_shared_extended_api_simulacrum_env(); + + runtime.block_on(async move { + let last_checkpoint = sim.get_latest_checkpoint().unwrap(); + indexer_wait_for_checkpoint(store, last_checkpoint.sequence_number).await; + + let epochs = client + .get_epoch_metrics(None, None, Some(true)) + .await + .unwrap(); + + let actual_epochs_order = epochs + .data + .iter() + .map(|epoch| epoch.epoch) + .collect::<Vec<u64>>(); + + assert_eq!(epochs.data.len(), 3); + assert!(!epochs.has_next_page); + assert_eq!(actual_epochs_order, [2, 1, 0]); + }); +} + +#[test] +fn get_epoch_metrics_paging() { + let SimulacrumTestSetup { + runtime, + sim, + store, + client, + } = get_or_init_shared_extended_api_simulacrum_env(); + + runtime.block_on(async move { + let last_checkpoint = sim.get_latest_checkpoint().unwrap(); + indexer_wait_for_checkpoint(store, last_checkpoint.sequence_number).await; + + let epochs = client.get_epoch_metrics(None, Some(2), None).await.unwrap(); + let actual_epochs_order = epochs + .data + .iter() + .map(|epoch| epoch.epoch) + .collect::<Vec<u64>>(); + + assert_eq!(epochs.data.len(), 2); + assert!(epochs.has_next_page); + assert_eq!(epochs.next_cursor, Some(1.into())); + assert_eq!(actual_epochs_order, [0, 1]); + + let epochs = client + .get_epoch_metrics(Some(1.into()), Some(2), None) + .await + .unwrap(); + let actual_epochs_order = epochs + .data + .iter() + .map(|epoch| epoch.epoch) + .collect::<Vec<u64>>(); + + assert_eq!(epochs.data.len(), 1); + assert!(!epochs.has_next_page); + assert_eq!(epochs.next_cursor, Some(2.into())); + assert_eq!(actual_epochs_order, [2]); + }); +} + +#[test] +fn get_current_epoch() { + let SimulacrumTestSetup { + runtime, + sim, + store, + client, + } = get_or_init_shared_extended_api_simulacrum_env(); + + runtime.block_on(async move { + let last_checkpoint = sim.get_latest_checkpoint().unwrap(); + indexer_wait_for_checkpoint(store, last_checkpoint.sequence_number).await; + + let current_epoch = client.get_current_epoch().await.unwrap(); + + assert_eq!(current_epoch.epoch, 2); + assert_eq!(current_epoch.first_checkpoint_id, 603); + assert_eq!(current_epoch.epoch_total_transactions, 0); + assert!(current_epoch.end_of_epoch_info.is_none()); + }); +} + +#[ignore = "https://github.com/iotaledger/iota/issues/2197#issuecomment-2371642744"] +#[test] +fn get_network_metrics() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 10).await; + + let network_metrics = client.get_network_metrics().await.unwrap(); + + println!("{:#?}", network_metrics); + }); +} + +#[ignore = "https://github.com/iotaledger/iota/issues/2197#issuecomment-2371642744"] +#[test] +fn get_move_call_metrics() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + execute_move_fn(cluster).await.unwrap(); + + let latest_checkpoint_sn = cluster + .rpc_client() + .get_latest_checkpoint_sequence_number() + .await + .unwrap(); + indexer_wait_for_checkpoint(store, latest_checkpoint_sn.into_inner()).await; + + let move_call_metrics = client.get_move_call_metrics().await.unwrap(); + + // TODO: Why is the move call not included in the stats? + assert_eq!(move_call_metrics.rank_3_days.len(), 0); + assert_eq!(move_call_metrics.rank_7_days.len(), 0); + assert_eq!(move_call_metrics.rank_30_days.len(), 0); + }); +} + +#[ignore = "https://github.com/iotaledger/iota/issues/2197#issuecomment-2371642744"] +#[test] +fn get_latest_address_metrics() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 10).await; + + let address_metrics = client.get_latest_address_metrics().await.unwrap(); + + println!("{:#?}", address_metrics); + }); +} + +#[ignore = "https://github.com/iotaledger/iota/issues/2197#issuecomment-2371642744"] +#[test] +fn get_checkpoint_address_metrics() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 10).await; + + let address_metrics = client.get_checkpoint_address_metrics(0).await.unwrap(); + + println!("{:#?}", address_metrics); + }); +} + +#[ignore = "https://github.com/iotaledger/iota/issues/2197#issuecomment-2371642744"] +#[test] +fn get_all_epoch_address_metrics() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 10).await; + + let address_metrics = client.get_all_epoch_address_metrics(None).await.unwrap(); + + println!("{:#?}", address_metrics); + }); +} + +#[test] +fn get_total_transactions() { + let SimulacrumTestSetup { + runtime, + sim, + store, + client, + } = get_or_init_shared_extended_api_simulacrum_env(); + + runtime.block_on(async move { + let latest_checkpoint = sim.get_latest_checkpoint().unwrap(); + let total_transactions_count = latest_checkpoint.network_total_transactions; + indexer_wait_for_checkpoint(store, latest_checkpoint.sequence_number).await; + + let transactions_cnt = client.get_total_transactions().await.unwrap(); + assert_eq!(transactions_cnt.into_inner(), total_transactions_count); + assert_eq!(transactions_cnt.into_inner(), 33); + }); +} + +async fn execute_move_fn(cluster: &TestCluster) -> Result<(), anyhow::Error> { + let http_client = cluster.rpc_client(); + let address = cluster.get_address_0(); + + let objects = http_client + .get_owned_objects( + address, + Some(IotaObjectResponseQuery::new_with_options( + IotaObjectDataOptions::new() + .with_type() + .with_owner() + .with_previous_transaction(), + )), + None, + None, + ) + .await? + .data; + + let gas = objects.first().unwrap().object().unwrap(); + let coin = &objects[1].object()?; + + // now do the call + let package_id = ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()); + let module = "pay".to_string(); + let function = "split".to_string(); + + let transaction_bytes: TransactionBlockBytes = http_client + .move_call( + address, + package_id, + module, + function, + type_args![GAS::type_tag()]?, + call_args!(coin.object_id, 10)?, + Some(gas.object_id), + 10_000_000.into(), + None, + ) + .await?; + + let tx = cluster + .wallet + .sign_transaction(&transaction_bytes.to_data()?); + + let (tx_bytes, signatures) = tx.to_tx_bytes_and_signatures(); + + let tx_response = http_client + .execute_transaction_block( + tx_bytes, + signatures, + Some(IotaTransactionBlockResponseOptions::new().with_effects()), + Some(ExecuteTransactionRequestType::WaitForLocalExecution), + ) + .await?; + assert!(tx_response.status_ok().unwrap_or(false)); + Ok(()) +} + +fn execute_simulacrum_transaction(sim: &mut Simulacrum) { + let transfer_recipient = IotaAddress::random_for_testing_only(); + let (transaction, _) = sim.transfer_txn(transfer_recipient); + sim.execute_transaction(transaction.clone()).unwrap(); +} + +fn execute_simulacrum_transactions(sim: &mut Simulacrum, transactions_count: u32) { + for _ in 0..transactions_count { + execute_simulacrum_transaction(sim); + } +} + +fn add_checkpoints(sim: &mut Simulacrum, checkpoints_count: i32) { + // Main use of this function is to create more checkpoints than the current + // processing batch size, to circumvent the issue described in + // https://github.com/iotaledger/iota/issues/2197#issuecomment-2376432709 + for _ in 0..checkpoints_count { + sim.create_checkpoint(); + } +} diff --git a/crates/iota-indexer/tests/rpc-tests/governance_api.rs b/crates/iota-indexer/tests/rpc-tests/governance_api.rs new file mode 100644 index 00000000000..3f662fef1d3 --- /dev/null +++ b/crates/iota-indexer/tests/rpc-tests/governance_api.rs @@ -0,0 +1,558 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +use iota_json_rpc_api::{GovernanceReadApiClient, TransactionBuilderClient}; +use iota_json_rpc_types::{ + DelegatedStake, DelegatedTimelockedStake, StakeStatus, TransactionBlockBytes, +}; +use iota_test_transaction_builder::TestTransactionBuilder; +use iota_types::{ + IOTA_FRAMEWORK_ADDRESS, IOTA_SYSTEM_ADDRESS, + balance::Balance, + base_types::ObjectID, + crypto::{AccountKeyPair, get_key_pair}, + gas_coin::GAS, + programmable_transaction_builder::ProgrammableTransactionBuilder, + transaction::{CallArg, ObjectArg}, + utils::to_sender_signed_transaction, +}; +use move_core_types::{identifier::Identifier, language_storage::TypeTag}; + +use crate::common::{ + ApiTestSetup, indexer_wait_for_checkpoint, indexer_wait_for_latest_checkpoint, + indexer_wait_for_object, indexer_wait_for_transaction, + start_test_cluster_with_read_write_indexer, +}; + +#[test] +fn test_staking() { + let ApiTestSetup { runtime, .. } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (cluster, store, client) = + &start_test_cluster_with_read_write_indexer(Some("test_staking"), None).await; + + indexer_wait_for_checkpoint(store, 1).await; + + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + + let gas = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(10_000_000_000), + sender, + ) + .await; + + indexer_wait_for_object(client, gas.0, gas.1).await; + + let iota_coin_ref = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(10_000_000_000), + sender, + ) + .await; + + indexer_wait_for_object(client, iota_coin_ref.0, iota_coin_ref.1).await; + + // Check StakedIota object before test + let staked_iota: Vec<DelegatedStake> = client.get_stakes(sender).await.unwrap(); + assert!(staked_iota.is_empty()); + + let validator = client + .get_latest_iota_system_state() + .await + .unwrap() + .active_validators[0] + .iota_address; + + // Delegate some IOTA + let transaction_bytes: TransactionBlockBytes = client + .request_add_stake( + sender, + vec![iota_coin_ref.0], + Some(1000000000.into()), + validator, + Some(gas.0), + 100_000_000.into(), + ) + .await + .unwrap(); + + let txn = to_sender_signed_transaction(transaction_bytes.to_data().unwrap(), &keypair); + + let res = cluster.wallet.execute_transaction_must_succeed(txn).await; + indexer_wait_for_transaction(res.digest, store, client).await; + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(store, cluster).await; + + // Check DelegatedStake object after epoch transition + let staked_iota: Vec<DelegatedStake> = client.get_stakes(sender).await.unwrap(); + assert_eq!(1, staked_iota.len()); + assert_eq!(1000000000, staked_iota[0].stakes[0].principal); + assert!(matches!( + staked_iota[0].stakes[0].status, + StakeStatus::Active { + estimated_reward: _ + } + )); + }); +} + +#[test] +fn test_unstaking() { + let ApiTestSetup { runtime, .. } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (cluster, store, client) = + &start_test_cluster_with_read_write_indexer(Some("test_unstaking"), None).await; + + indexer_wait_for_checkpoint(store, 1).await; + + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + + let gas = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(10_000_000_000), + sender, + ) + .await; + + indexer_wait_for_object(client, gas.0, gas.1).await; + + let iota_coin_ref = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(10_000_000_000), + sender, + ) + .await; + + indexer_wait_for_object(client, iota_coin_ref.0, iota_coin_ref.1).await; + + // Check StakedIota object before test + let staked_iota: Vec<DelegatedStake> = client.get_stakes(sender).await.unwrap(); + assert!(staked_iota.is_empty()); + + let validator = client + .get_latest_iota_system_state() + .await + .unwrap() + .active_validators[0] + .iota_address; + + // Delegate some IOTA + let transaction_bytes: TransactionBlockBytes = client + .request_add_stake( + sender, + vec![iota_coin_ref.0], + Some(1000000000.into()), + validator, + Some(gas.0), + 100_000_000.into(), + ) + .await + .unwrap(); + + let txn = to_sender_signed_transaction(transaction_bytes.to_data().unwrap(), &keypair); + + let res = cluster.wallet.execute_transaction_must_succeed(txn).await; + indexer_wait_for_transaction(res.digest, store, client).await; + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(store, cluster).await; + + // Check DelegatedStake object + let staked_iota: Vec<DelegatedStake> = client.get_stakes(sender).await.unwrap(); + assert_eq!(1, staked_iota.len()); + assert_eq!(1000000000, staked_iota[0].stakes[0].principal); + assert!(matches!( + staked_iota[0].stakes[0].status, + StakeStatus::Active { + estimated_reward: _ + } + )); + + let transaction_bytes: TransactionBlockBytes = client + .request_withdraw_stake( + sender, + staked_iota[0].stakes[0].staked_iota_id, + Some(gas.0), + 100_000_000.into(), + ) + .await + .unwrap(); + + let txn = to_sender_signed_transaction(transaction_bytes.to_data().unwrap(), &keypair); + + let res = cluster.wallet.execute_transaction_must_succeed(txn).await; + indexer_wait_for_transaction(res.digest, store, client).await; + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(store, cluster).await; + + let indexer_response = client + .get_stakes_by_ids(vec![staked_iota[0].stakes[0].staked_iota_id]) + .await + .unwrap(); + assert_eq!(0, indexer_response.len()); + + let staked_iota: Vec<DelegatedStake> = client.get_stakes(sender).await.unwrap(); + assert!(staked_iota.is_empty()); + }); +} + +#[test] +fn test_timelocked_staking() { + let ApiTestSetup { runtime, .. } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (cluster, store, client) = + &start_test_cluster_with_read_write_indexer(Some("test_timelocked_staking"), None) + .await; + + indexer_wait_for_checkpoint(store, 1).await; + + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + + let gas = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(10_000_000_000), + sender, + ) + .await; + + indexer_wait_for_object(client, gas.0, gas.1).await; + + let iota_coin_ref = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(10_000_000_000), + sender, + ) + .await; + + indexer_wait_for_object(client, iota_coin_ref.0, iota_coin_ref.1).await; + + let pt = { + let mut builder = ProgrammableTransactionBuilder::new(); + + let iota_coin_argument = builder + .input(CallArg::Object(ObjectArg::ImmOrOwnedObject(iota_coin_ref))) + .expect("valid obj"); + + // Step 1: Get the IOTA balance from the coin object. + let iota_balance = builder.programmable_move_call( + ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + Identifier::new("coin").unwrap(), + Identifier::new("into_balance").unwrap(), + vec![GAS::type_tag()], + vec![iota_coin_argument], + ); + + // Step 2: Timelock the IOTA balance. + let timelock_timestamp = builder.input(CallArg::from(u64::MAX)).unwrap(); + let timelocked_iota_balance = builder.programmable_move_call( + ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + Identifier::new("timelock").unwrap(), + Identifier::new("lock").unwrap(), + vec![TypeTag::Struct(Box::new(Balance::type_(GAS::type_tag())))], + vec![iota_balance, timelock_timestamp], + ); + + // Step 3: Delegate the timelocked IOTA balance. + let validator = client + .get_latest_iota_system_state() + .await + .unwrap() + .active_validators[0] + .iota_address; + + let validator = builder + .input(CallArg::Pure(bcs::to_bytes(&validator).unwrap())) + .unwrap(); + let state = builder.input(CallArg::IOTA_SYSTEM_MUT).unwrap(); + + let _ = builder.programmable_move_call( + ObjectID::new(IOTA_SYSTEM_ADDRESS.into_bytes()), + Identifier::new("timelocked_staking").unwrap(), + Identifier::new("request_add_stake").unwrap(), + vec![], + vec![state, timelocked_iota_balance, validator], + ); + + builder.finish() + }; + + let context = &cluster.wallet; + let gas_price = context.get_reference_gas_price().await.unwrap(); + + let tx_builder = TestTransactionBuilder::new(sender, gas, gas_price); + let txn = to_sender_signed_transaction(tx_builder.programmable(pt).build(), &keypair); + + let res = context.execute_transaction_must_succeed(txn).await; + indexer_wait_for_transaction(res.digest, store, client).await; + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(store, cluster).await; + + let staked_iota: Vec<DelegatedTimelockedStake> = + client.get_timelocked_stakes(sender).await.unwrap(); + + assert_eq!(staked_iota.len(), 1); + assert_eq!(10000000000, staked_iota[0].stakes[0].principal); + assert!(matches!( + staked_iota[0].stakes[0].status, + StakeStatus::Active { + estimated_reward: _ + } + )); + }); +} + +#[test] +fn test_timelocked_unstaking() { + let ApiTestSetup { runtime, .. } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (cluster, store, client) = + &start_test_cluster_with_read_write_indexer(Some("test_timelocked_unstaking"), None) + .await; + + indexer_wait_for_checkpoint(store, 1).await; + + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + + let gas = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(10_000_000_000), + sender, + ) + .await; + + indexer_wait_for_object(client, gas.0, gas.1).await; + + let iota_coin_ref = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(10_000_000_000), + sender, + ) + .await; + + indexer_wait_for_object(client, iota_coin_ref.0, iota_coin_ref.1).await; + + let pt = { + let mut builder = ProgrammableTransactionBuilder::new(); + + let iota_coin_argument = builder + .input(CallArg::Object(ObjectArg::ImmOrOwnedObject(iota_coin_ref))) + .expect("valid obj"); + + // Step 1: Get the IOTA balance from the coin object. + let iota_balance = builder.programmable_move_call( + ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + Identifier::new("coin").unwrap(), + Identifier::new("into_balance").unwrap(), + vec![GAS::type_tag()], + vec![iota_coin_argument], + ); + + // Step 2: Timelock the IOTA balance. + let timelock_timestamp = builder.input(CallArg::from(u64::MAX)).unwrap(); + let timelocked_iota_balance = builder.programmable_move_call( + ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + Identifier::new("timelock").unwrap(), + Identifier::new("lock").unwrap(), + vec![TypeTag::Struct(Box::new(Balance::type_(GAS::type_tag())))], + vec![iota_balance, timelock_timestamp], + ); + + // Step 3: Delegate the timelocked IOTA balance. + let validator = client + .get_latest_iota_system_state() + .await + .unwrap() + .active_validators[0] + .iota_address; + + let validator = builder + .input(CallArg::Pure(bcs::to_bytes(&validator).unwrap())) + .unwrap(); + let state = builder.input(CallArg::IOTA_SYSTEM_MUT).unwrap(); + + let _ = builder.programmable_move_call( + ObjectID::new(IOTA_SYSTEM_ADDRESS.into_bytes()), + Identifier::new("timelocked_staking").unwrap(), + Identifier::new("request_add_stake").unwrap(), + vec![], + vec![state, timelocked_iota_balance, validator], + ); + + builder.finish() + }; + + let context = &cluster.wallet; + let gas_price = context.get_reference_gas_price().await.unwrap(); + + let tx_builder = TestTransactionBuilder::new(sender, gas, gas_price); + let txn = to_sender_signed_transaction(tx_builder.programmable(pt).build(), &keypair); + + let res = context.execute_transaction_must_succeed(txn).await; + indexer_wait_for_transaction(res.digest, store, client).await; + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(store, cluster).await; + + let staked_iota = client.get_timelocked_stakes(sender).await.unwrap(); + + assert_eq!(staked_iota.len(), 1); + assert_eq!(10000000000, staked_iota[0].stakes[0].principal); + assert!(matches!( + staked_iota[0].stakes[0].status, + StakeStatus::Active { + estimated_reward: _ + } + )); + + let timelocked_stake_id = staked_iota[0].stakes[0].timelocked_staked_iota_id; + let timelocked_stake_id_ref = cluster + .wallet + .get_object_ref(timelocked_stake_id) + .await + .unwrap(); + + let pt = { + let mut builder = ProgrammableTransactionBuilder::new(); + + let timelocked_stake_id_argument = builder + .input(CallArg::Object(ObjectArg::ImmOrOwnedObject( + timelocked_stake_id_ref, + ))) + .expect("valid obj"); + + let state = builder.input(CallArg::IOTA_SYSTEM_MUT).unwrap(); + + let _ = builder.programmable_move_call( + ObjectID::new(IOTA_SYSTEM_ADDRESS.into_bytes()), + Identifier::new("timelocked_staking").unwrap(), + Identifier::new("request_withdraw_stake").unwrap(), + vec![], + vec![state, timelocked_stake_id_argument], + ); + + builder.finish() + }; + + let gas = cluster.wallet.get_object_ref(gas.0).await.unwrap(); + let tx_builder = TestTransactionBuilder::new(sender, gas, gas_price); + let txn = to_sender_signed_transaction(tx_builder.programmable(pt).build(), &keypair); + + let res = context.execute_transaction_must_succeed(txn).await; + indexer_wait_for_transaction(res.digest, store, client).await; + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(store, cluster).await; + + let res = client.get_timelocked_stakes(sender).await.unwrap(); + assert_eq!(res.len(), 0); + + let res = client + .get_timelocked_stakes_by_ids(vec![timelocked_stake_id]) + .await + .unwrap(); + + assert_eq!(res.len(), 0); + }); +} + +#[test] +fn get_latest_iota_system_state() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let system_state = client.get_latest_iota_system_state().await.unwrap(); + assert_eq!(system_state.protocol_version, 1); + assert_eq!(system_state.system_state_version, 1); + }); +} + +#[test] +fn get_committee_info() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + // Test with no specified epoch + let response = client.get_committee_info(None).await.unwrap(); + + assert_eq!(response.validators.len(), 4); + + // Test with specified epoch 0 + let response = client.get_committee_info(Some(0.into())).await.unwrap(); + + let (epoch_id, validators) = (response.epoch, response.validators); + + assert!(epoch_id == 0); + assert_eq!(validators.len(), 4); + + // Test with non-existent epoch + let response = client.get_committee_info(Some(u64::MAX.into())).await; + + assert!(response.is_err()); + }); +} + +#[test] +fn get_reference_gas_price() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let response = client.get_reference_gas_price().await.unwrap(); + assert_eq!(response, 1000.into()); + }); +} + +#[test] +fn get_validators_apy() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let apys = client.get_validators_apy().await.unwrap().apys; + + assert_eq!(apys.len(), 4); + assert!(apys.iter().any(|apy| apy.apy == 0.0)); + }); +} diff --git a/crates/iota-indexer/tests/rpc-tests/indexer_api.rs b/crates/iota-indexer/tests/rpc-tests/indexer_api.rs new file mode 100644 index 00000000000..c830f7ae7a7 --- /dev/null +++ b/crates/iota-indexer/tests/rpc-tests/indexer_api.rs @@ -0,0 +1,692 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +use std::{str::FromStr, time::SystemTime}; + +use iota_json::{call_args, type_args}; +use iota_json_rpc_api::{IndexerApiClient, WriteApiClient}; +use iota_json_rpc_types::{ + EventFilter, EventPage, IotaMoveValue, IotaObjectDataFilter, IotaObjectDataOptions, + IotaObjectResponseQuery, IotaTransactionBlockResponseOptions, + IotaTransactionBlockResponseQuery, ObjectsPage, TransactionFilter, +}; +use iota_test_transaction_builder::TestTransactionBuilder; +use iota_types::{ + IOTA_FRAMEWORK_ADDRESS, + base_types::{IotaAddress, ObjectID}, + crypto::{AccountKeyPair, get_key_pair}, + digests::TransactionDigest, + dynamic_field::DynamicFieldName, + gas_coin::GAS, + programmable_transaction_builder::ProgrammableTransactionBuilder, + quorum_driver_types::ExecuteTransactionRequestType, + transaction::{CallArg, Command, ObjectArg, TransactionData}, + utils::to_sender_signed_transaction, +}; +use move_core_types::{ + annotated_value::MoveValue, + identifier::Identifier, + language_storage::{StructTag, TypeTag}, +}; + +use crate::common::{ + ApiTestSetup, indexer_wait_for_checkpoint, indexer_wait_for_object, + indexer_wait_for_transaction, rpc_call_error_msg_matches, +}; + +#[test] +fn query_events_no_events_descending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let indexer_events = client + .query_events( + EventFilter::Sender( + IotaAddress::from_str( + "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99", + ) + .unwrap(), + ), + None, + None, + Some(true), + ) + .await + .unwrap(); + + assert_eq!(indexer_events, EventPage::empty()) + }); +} + +#[test] +fn query_events_no_events_ascending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let indexer_events = client + .query_events( + EventFilter::Sender( + IotaAddress::from_str( + "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99", + ) + .unwrap(), + ), + None, + None, + None, + ) + .await + .unwrap(); + + assert_eq!(indexer_events, EventPage::empty()) + }); +} + +#[test] +fn query_events_unsupported_events() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + // Get the current time in milliseconds since the UNIX epoch + let now_millis = SystemTime::now() + .duration_since(SystemTime::UNIX_EPOCH) + .unwrap() + .as_millis(); + + // Subtract 10 minutes from the current time + let ten_minutes_ago = now_millis - (10 * 60 * 1000); // 600 seconds = 10 minutes + + let unsupported_filters = vec![ + EventFilter::All(vec![]), + EventFilter::Any(vec![]), + EventFilter::And( + Box::new(EventFilter::Any(vec![])), + Box::new(EventFilter::Any(vec![])), + ), + EventFilter::Or( + Box::new(EventFilter::Any(vec![])), + Box::new(EventFilter::Any(vec![])), + ), + EventFilter::TimeRange { + start_time: ten_minutes_ago as u64, + end_time: now_millis as u64, + }, + EventFilter::MoveEventField { + path: String::default(), + value: serde_json::Value::Bool(true), + }, + ]; + + for event_filter in unsupported_filters { + let result = client + .query_events(event_filter, None, None, None) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32603,"message": "Indexer does not support the feature with error: `This type of EventFilter is not supported.`"}"#, + )); + } + }); +} + +#[test] +fn query_events_supported_events() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let supported_filters = vec![ + EventFilter::Sender(IotaAddress::ZERO), + EventFilter::Transaction(TransactionDigest::ZERO), + EventFilter::Package(ObjectID::ZERO), + EventFilter::MoveEventModule { + package: ObjectID::ZERO, + module: "x".parse().unwrap(), + }, + EventFilter::MoveEventType("0xabcd::MyModule::Foo".parse().unwrap()), + EventFilter::MoveModule { + package: ObjectID::ZERO, + module: "x".parse().unwrap(), + }, + ]; + + for event_filter in supported_filters { + let result = client.query_events(event_filter, None, None, None).await; + assert!(result.is_ok()); + } + }); +} + +#[test] +fn test_get_owned_objects() -> Result<(), anyhow::Error> { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let address = cluster.get_address_0(); + + let objects = client + .get_owned_objects( + address, + Some(IotaObjectResponseQuery::new_with_options( + IotaObjectDataOptions::new(), + )), + None, + None, + ) + .await?; + assert_eq!(5, objects.data.len()); + + Ok(()) + }) +} + +#[test] +fn test_query_transaction_blocks_pagination() -> Result<(), anyhow::Error> { + let ApiTestSetup { + runtime, + store, + cluster, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + + let gas_ref = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(500_000_000), + address, + ) + .await; + indexer_wait_for_object(client, gas_ref.0, gas_ref.1).await; + let coin_to_split = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(500_000_000), + address, + ) + .await; + indexer_wait_for_object(client, coin_to_split.0, coin_to_split.1).await; + let iota_client = cluster.wallet.get_client().await.unwrap(); + + let mut tx_responses = vec![]; + for _ in 0..5 { + let tx_data = iota_client + .transaction_builder() + .split_coin_equal(address, coin_to_split.0, 2, Some(gas_ref.0), 10_000_000) + .await?; + + let signed_transaction = to_sender_signed_transaction(tx_data, &keypair); + + let (tx_bytes, signatures) = signed_transaction.to_tx_bytes_and_signatures(); + + let res = client + .execute_transaction_block( + tx_bytes, + signatures, + Some(IotaTransactionBlockResponseOptions::new().with_effects()), + Some(ExecuteTransactionRequestType::WaitForLocalExecution), + ) + .await?; + + tx_responses.push(res) + } + + let tx_res = tx_responses.pop().unwrap(); + + indexer_wait_for_transaction(tx_res.digest, store, client).await; + + let objects = client + .get_owned_objects( + address, + Some(IotaObjectResponseQuery::new_with_options( + IotaObjectDataOptions::new() + .with_type() + .with_owner() + .with_previous_transaction(), + )), + None, + None, + ) + .await? + .data; + + // 2 gas coins + 5 coins from the split + assert_eq!(7, objects.len()); + + // filter transactions by address + let query = IotaTransactionBlockResponseQuery { + options: Some(IotaTransactionBlockResponseOptions { + show_input: true, + show_effects: true, + show_events: true, + ..Default::default() + }), + filter: Some(TransactionFilter::FromAddress(address)), + }; + + let first_page = iota_client + .read_api() + .query_transaction_blocks(query.clone(), None, Some(3), true) + .await + .unwrap(); + assert_eq!(3, first_page.data.len()); + assert!(first_page.data[0].transaction.is_some()); + assert!(first_page.data[0].effects.is_some()); + assert!(first_page.data[0].events.is_some()); + assert!(first_page.has_next_page); + + // Read the next page for the last transaction + let next_page = iota_client + .read_api() + .query_transaction_blocks(query, first_page.next_cursor, None, true) + .await + .unwrap(); + + assert_eq!(2, next_page.data.len()); + assert!(next_page.data[0].transaction.is_some()); + assert!(next_page.data[0].effects.is_some()); + assert!(next_page.data[0].events.is_some()); + assert!(!next_page.has_next_page); + + Ok(()) + }) +} + +#[test] +fn test_query_transaction_blocks() -> Result<(), anyhow::Error> { + let ApiTestSetup { + runtime, + store, + cluster, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + + let gas = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(500_000_000), + address, + ) + .await; + let coin_1 = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(500_000_000), + address, + ) + .await; + let coin_2 = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(500_000_000), + address, + ) + .await; + let iota_client = cluster.wallet.get_client().await.unwrap(); + + indexer_wait_for_object(client, gas.0, gas.1).await; + indexer_wait_for_object(client, coin_1.0, coin_1.1).await; + indexer_wait_for_object(client, coin_2.0, coin_2.1).await; + + let objects = client + .get_owned_objects( + address, + Some(IotaObjectResponseQuery::new_with_options( + IotaObjectDataOptions::new() + .with_type() + .with_owner() + .with_previous_transaction(), + )), + None, + None, + ) + .await? + .data; + + assert_eq!(objects.len(), 3); + + // make 2 move calls of same package & module, but different functions + let package_id = ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()); + let signer = address; + + let tx_builder = iota_client.transaction_builder().clone(); + let mut pt_builder = ProgrammableTransactionBuilder::new(); + + let module = Identifier::from_str("pay")?; + let function_1 = Identifier::from_str("split")?; + let function_2 = Identifier::from_str("divide_and_keep")?; + + let iota_type_args = type_args![GAS::type_tag()]?; + let type_args = iota_type_args + .into_iter() + .map(|ty| ty.try_into()) + .collect::<Result<Vec<_>, _>>()?; + + let iota_call_args_1 = call_args!(coin_1.0, 10)?; + let call_args_1 = tx_builder + .resolve_and_checks_json_args( + &mut pt_builder, + package_id, + &module, + &function_1, + &type_args, + iota_call_args_1, + ) + .await?; + let cmd_1 = Command::move_call( + package_id, + module.clone(), + function_1, + type_args.clone(), + call_args_1.clone(), + ); + + let iota_call_args_2 = call_args!(coin_2.0, 10)?; + let call_args_2 = tx_builder + .resolve_and_checks_json_args( + &mut pt_builder, + package_id, + &module, + &function_2, + &type_args, + iota_call_args_2, + ) + .await?; + let cmd_2 = Command::move_call(package_id, module, function_2, type_args, call_args_2); + pt_builder.command(cmd_1); + pt_builder.command(cmd_2); + let pt = pt_builder.finish(); + + let tx_data = TransactionData::new_programmable(signer, vec![gas], pt, 10_000_000, 1000); + + let signed_transaction = to_sender_signed_transaction(tx_data, &keypair); + + let response = iota_client + .quorum_driver_api() + .execute_transaction_block( + signed_transaction, + IotaTransactionBlockResponseOptions::new(), + Some(ExecuteTransactionRequestType::WaitForLocalExecution), + ) + .await + .unwrap(); + + indexer_wait_for_transaction(response.digest, store, client).await; + + // match with None function, the DB should have 2 records, but both points to + // the same tx + let filter = TransactionFilter::FromAddress(signer); + let move_call_query = IotaTransactionBlockResponseQuery::new_with_filter(filter); + let res = client + .query_transaction_blocks(move_call_query, None, Some(20), Some(true)) + .await + .unwrap(); + + assert_eq!(1, res.data.len()); + + Ok(()) + }) +} + +#[test] +fn test_get_dynamic_fields() -> Result<(), anyhow::Error> { + let ApiTestSetup { + runtime, + store, + cluster, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + + let gas = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(500_000_000_000), + address, + ) + .await; + indexer_wait_for_object(client, gas.0, gas.1).await; + + // Create a bag object + let pt = { + let mut builder = ProgrammableTransactionBuilder::new(); + let bag = builder.programmable_move_call( + ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + Identifier::from_str("bag")?, + Identifier::from_str("new")?, + vec![], + vec![], + ); + + let field_name_argument = builder.pure(0u64).expect("valid pure"); + let field_value_argument = builder.pure(0u64).expect("valid pure"); + + let _ = builder.programmable_move_call( + ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + Identifier::from_str("bag")?, + Identifier::from_str("add")?, + vec![TypeTag::U64, TypeTag::U64], + vec![bag, field_name_argument, field_value_argument], + ); + + builder.transfer_arg(address, bag); + builder.finish() + }; + + let tx_builder = TestTransactionBuilder::new(address, gas, 1000); + let tx_data = tx_builder.programmable(pt).build(); + let signed_transaction = to_sender_signed_transaction(tx_data, &keypair); + + let res = cluster + .wallet + .execute_transaction_must_succeed(signed_transaction) + .await; + + // Wait for the transaction to be executed + indexer_wait_for_transaction(res.digest, store, client).await; + + // Find the bag object + let objects: ObjectsPage = client + .get_owned_objects( + address, + Some(IotaObjectResponseQuery::new( + Some(IotaObjectDataFilter::StructType(StructTag { + address: IOTA_FRAMEWORK_ADDRESS, + module: Identifier::from_str("bag")?, + name: Identifier::from_str("Bag")?, + type_params: Vec::new(), + })), + Some( + IotaObjectDataOptions::new() + .with_type() + .with_owner() + .with_previous_transaction() + .with_display(), + ), + )), + None, + None, + ) + .await?; + + let bag_object_ref = objects.data.first().unwrap().object().unwrap().object_ref(); + + // Verify that the dynamic field was successfully added + let dynamic_fields = client + .get_dynamic_fields(bag_object_ref.0, None, None) + .await + .expect("Failed to get dynamic fields"); + + assert!( + !dynamic_fields.data.is_empty(), + "Dynamic field was not added" + ); + + Ok(()) + }) +} + +#[test] +fn test_get_dynamic_field_objects() -> Result<(), anyhow::Error> { + let ApiTestSetup { + runtime, + store, + cluster, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + + let gas = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(500_000_000_000), + address, + ) + .await; + indexer_wait_for_object(client, gas.0, gas.1).await; + + let child_object = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(500_000_000), + address, + ) + .await; + + // Create a object bag object + let pt = { + let mut builder = ProgrammableTransactionBuilder::new(); + let bag = builder.programmable_move_call( + ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + Identifier::from_str("object_bag")?, + Identifier::from_str("new")?, + vec![], + vec![], + ); + + let field_name_argument = builder.pure(0u64).expect("valid pure"); + let field_value_argument = builder + .input(CallArg::Object(ObjectArg::ImmOrOwnedObject(child_object))) + .unwrap(); + + let _ = builder.programmable_move_call( + ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + Identifier::from_str("object_bag")?, + Identifier::from_str("add")?, + vec![ + TypeTag::U64, + TypeTag::Struct(Box::new(StructTag { + address: IOTA_FRAMEWORK_ADDRESS, + module: Identifier::from_str("coin")?, + name: Identifier::from_str("Coin")?, + type_params: vec![GAS::type_tag()], + })), + ], + vec![bag, field_name_argument, field_value_argument], + ); + + builder.transfer_arg(address, bag); + builder.finish() + }; + + let tx_builder = TestTransactionBuilder::new(address, gas, 1000); + let tx_data = tx_builder.programmable(pt).build(); + let signed_transaction = to_sender_signed_transaction(tx_data, &keypair); + + let res = cluster + .wallet + .execute_transaction_must_succeed(signed_transaction) + .await; + + // Wait for the transaction to be executed + indexer_wait_for_transaction(res.digest, store, client).await; + + // Find the bag object + let objects: ObjectsPage = client + .get_owned_objects( + address, + Some(IotaObjectResponseQuery::new( + Some(IotaObjectDataFilter::StructType(StructTag { + address: IOTA_FRAMEWORK_ADDRESS, + module: Identifier::from_str("object_bag")?, + name: Identifier::from_str("ObjectBag")?, + type_params: Vec::new(), + })), + Some( + IotaObjectDataOptions::new() + .with_type() + .with_owner() + .with_previous_transaction() + .with_display(), + ), + )), + None, + None, + ) + .await?; + + let bag_object_ref = objects.data.first().unwrap().object().unwrap().object_ref(); + + let name = DynamicFieldName { + type_: TypeTag::U64, + value: IotaMoveValue::from(MoveValue::U64(0u64)).to_json_value(), + }; + + // Verify that the dynamic field was successfully added + let dynamic_fields = client + .get_dynamic_field_object(bag_object_ref.0, name) + .await + .expect("Failed to get dynamic field object"); + + assert!( + dynamic_fields.data.is_some(), + "Dynamic field object was not added" + ); + + Ok(()) + }) +} diff --git a/crates/iota-indexer/tests/rpc-tests/main.rs b/crates/iota-indexer/tests/rpc-tests/main.rs new file mode 100644 index 00000000000..0479b12703e --- /dev/null +++ b/crates/iota-indexer/tests/rpc-tests/main.rs @@ -0,0 +1,26 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +#[cfg(feature = "shared_test_runtime")] +mod coin_api; + +#[allow(dead_code)] +#[path = "../common/mod.rs"] +mod common; +#[cfg(feature = "shared_test_runtime")] +mod extended_api; +#[cfg(feature = "shared_test_runtime")] +mod governance_api; +#[cfg(feature = "shared_test_runtime")] +mod indexer_api; +#[cfg(feature = "shared_test_runtime")] +mod move_utils; + +#[cfg(feature = "shared_test_runtime")] +mod read_api; + +#[cfg(feature = "shared_test_runtime")] +mod transaction_builder; + +#[cfg(feature = "shared_test_runtime")] +mod write_api; diff --git a/crates/iota-indexer/tests/rpc-tests/move_utils.rs b/crates/iota-indexer/tests/rpc-tests/move_utils.rs new file mode 100644 index 00000000000..f35c9fff673 --- /dev/null +++ b/crates/iota-indexer/tests/rpc-tests/move_utils.rs @@ -0,0 +1,331 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +use iota_json_rpc_api::MoveUtilsClient; +use iota_json_rpc_types::{MoveFunctionArgType, ObjectValueKind}; + +use crate::common::{ApiTestSetup, indexer_wait_for_checkpoint, rpc_call_error_msg_matches}; + +#[test] +fn get_move_function_arg_types_empty() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let indexer_function_args_type = client + .get_move_function_arg_types( + "0x1".parse().unwrap(), + "address".to_owned(), + "length".to_owned(), + ) + .await + .unwrap(); + + assert!( + indexer_function_args_type.is_empty(), + "Should not have any function args" + ) + }); +} + +#[test] +fn get_move_function_arg_types() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let indexer_function_args_type = client + .get_move_function_arg_types( + "0x1".parse().unwrap(), + "vector".to_owned(), + "push_back".to_owned(), + ) + .await + .unwrap(); + + assert!(matches!(indexer_function_args_type.as_slice(), [ + MoveFunctionArgType::Object(ObjectValueKind::ByMutableReference), + MoveFunctionArgType::Pure + ])); + }); +} + +#[test] +fn get_move_function_arg_types_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .get_move_function_arg_types( + "0x1823746".parse().unwrap(), + "vector".to_owned(), + "push_back".to_owned(), + ) + .await; + + assert!(matches!(result, Err(err) if err.to_string().contains("Package not found in DB: 0000000000000000000000000000000000000000000000000000000001823746"))); + + let result = client + .get_move_function_arg_types( + "0x1".parse().unwrap(), + "wrong_module".to_owned(), + "push_back".to_owned(), + ) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32602,"message":"No module was found with name wrong_module"}"# + )); + + let result = client + .get_move_function_arg_types( + "0x1".parse().unwrap(), + "vector".to_owned(), + "wrong_function".to_owned(), + ) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32602,"message":"No function was found with function name wrong_function"}"# + )); + }); +} + +#[test] +fn get_normalized_move_modules_by_package() { + let ApiTestSetup { + cluster, + runtime, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let package_id = "0x1".parse().unwrap(); + + let fullnode_response = cluster + .rpc_client() + .get_normalized_move_modules_by_package(package_id) + .await + .unwrap(); + + let indexer_response = client + .get_normalized_move_modules_by_package(package_id) + .await + .unwrap(); + + assert_eq!(fullnode_response, indexer_response); + }); +} + +#[test] +fn get_normalized_move_modules_by_package_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .get_normalized_move_modules_by_package("0x1823746".parse().unwrap()) + .await; + + assert!(matches!(result, Err(err) if err.to_string().contains("Package not found in DB: 0000000000000000000000000000000000000000000000000000000001823746"))); + }); +} + +#[test] +fn get_normalized_move_module() { + let ApiTestSetup { + cluster, + runtime, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let package_id = "0x1".parse().unwrap(); + let module = "vector".to_owned(); + + let fullnode_response = cluster + .rpc_client() + .get_normalized_move_module(package_id, module.clone()) + .await + .unwrap(); + + let indexer_response = client + .get_normalized_move_module(package_id, module) + .await + .unwrap(); + + assert_eq!(fullnode_response, indexer_response); + }); +} + +#[test] +fn get_normalized_move_module_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .get_normalized_move_module("0x1".parse().unwrap(), "wrong_module".to_owned()) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32602,"message":"No module was found with name wrong_module"}"# + )); + }); +} + +#[test] +fn get_normalized_move_struct() { + let ApiTestSetup { + cluster, + runtime, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let package_id = "0x2".parse().unwrap(); + let module = "vec_set".to_owned(); + let struct_name = "VecSet".to_owned(); + + let fullnode_response = cluster + .rpc_client() + .get_normalized_move_struct(package_id, module.clone(), struct_name.clone()) + .await + .unwrap(); + + let indexer_response = client + .get_normalized_move_struct(package_id, module, struct_name) + .await + .unwrap(); + + assert_eq!(fullnode_response, indexer_response) + }); +} + +#[test] +fn get_normalized_move_struct_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .get_normalized_move_struct( + "0x2".parse().unwrap(), + "vec_set".to_owned(), + "WrongStruct".to_owned(), + ) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32602,"message":"No struct was found with struct name WrongStruct"}"# + )); + }); +} + +#[test] +fn get_normalized_move_function() { + let ApiTestSetup { + cluster, + runtime, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let package_id = "0x2".parse().unwrap(); + let module = "vec_set".to_owned(); + let function_name = "insert".to_owned(); + + let fullnode_response = cluster + .rpc_client() + .get_normalized_move_function(package_id, module.clone(), function_name.clone()) + .await + .unwrap(); + + let indexer_response = client + .get_normalized_move_function(package_id, module, function_name) + .await + .unwrap(); + + assert_eq!(fullnode_response, indexer_response) + }); +} + +#[test] +fn get_normalized_move_function_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .get_normalized_move_function( + "0x2".parse().unwrap(), + "vec_set".to_owned(), + "wrong_function".to_owned(), + ) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32602,"message":"No function was found with function name wrong_function"}"# + )); + }); +} diff --git a/crates/iota-indexer/tests/rpc-tests/read_api.rs b/crates/iota-indexer/tests/rpc-tests/read_api.rs new file mode 100644 index 00000000000..5d0d17f7e05 --- /dev/null +++ b/crates/iota-indexer/tests/rpc-tests/read_api.rs @@ -0,0 +1,1281 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +use std::str::FromStr; + +use iota_json_rpc_api::{IndexerApiClient, ReadApiClient}; +use iota_json_rpc_types::{ + CheckpointId, IotaGetPastObjectRequest, IotaObjectDataOptions, IotaObjectResponse, + IotaObjectResponseQuery, IotaTransactionBlockResponse, IotaTransactionBlockResponseOptions, +}; +use iota_types::{ + base_types::{ObjectID, SequenceNumber}, + digests::TransactionDigest, + error::IotaObjectResponseError, +}; + +use crate::common::{ApiTestSetup, indexer_wait_for_checkpoint, rpc_call_error_msg_matches}; + +fn is_ascending(vec: &[u64]) -> bool { + vec.windows(2).all(|window| window[0] <= window[1]) +} +fn is_descending(vec: &[u64]) -> bool { + vec.windows(2).all(|window| window[0] >= window[1]) +} + +/// Checks if +/// [`iota_json_rpc_types::IotaTransactionBlockResponse`] match to the +/// provided +/// [`iota_json_rpc_types::IotaTransactionBlockResponseOptions`] filters +fn match_transaction_block_resp_options( + expected_options: &IotaTransactionBlockResponseOptions, + responses: &[IotaTransactionBlockResponse], +) -> bool { + responses + .iter() + .map(|iota_tx_block_resp| IotaTransactionBlockResponseOptions { + show_input: iota_tx_block_resp.transaction.is_some(), + show_raw_input: !iota_tx_block_resp.raw_transaction.is_empty(), + show_effects: iota_tx_block_resp.effects.is_some(), + show_events: iota_tx_block_resp.events.is_some(), + show_object_changes: iota_tx_block_resp.object_changes.is_some(), + show_balance_changes: iota_tx_block_resp.balance_changes.is_some(), + show_raw_effects: !iota_tx_block_resp.raw_effects.is_empty(), + }) + .all(|actual_options| actual_options.eq(expected_options)) +} + +fn get_object_with_options(options: IotaObjectDataOptions) { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + let address = cluster.get_address_0(); + + let fullnode_objects = cluster + .rpc_client() + .get_owned_objects( + address, + Some(IotaObjectResponseQuery::new_with_options(options.clone())), + None, + None, + ) + .await + .unwrap(); + + for obj in fullnode_objects.data { + let indexer_obj = client + .get_object(obj.object_id().unwrap(), Some(options.clone())) + .await + .unwrap(); + + assert_eq!(obj, indexer_obj); + } + }); +} + +fn multi_get_objects_with_options(options: IotaObjectDataOptions) { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + let address = cluster.get_address_0(); + + let fullnode_objects = cluster + .rpc_client() + .get_owned_objects( + address, + Some(IotaObjectResponseQuery::new_with_options(options.clone())), + None, + None, + ) + .await + .unwrap(); + + let object_ids = fullnode_objects + .data + .iter() + .map(|iota_object| iota_object.object_id().unwrap()) + .collect::<Vec<ObjectID>>(); + + let indexer_objects = client + .multi_get_objects(object_ids, Some(options)) + .await + .unwrap(); + + assert_eq!(fullnode_objects.data, indexer_objects); + }); +} + +fn get_transaction_block_with_options(options: IotaTransactionBlockResponseOptions) { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let fullnode_checkpoint = cluster + .rpc_client() + .get_checkpoint(CheckpointId::SequenceNumber(0)) + .await + .unwrap(); + + let tx_digest = *fullnode_checkpoint.transactions.first().unwrap(); + + let fullnode_tx = cluster + .rpc_client() + .get_transaction_block(tx_digest, Some(options.clone())) + .await + .unwrap(); + + let tx = client + .get_transaction_block(tx_digest, Some(options.clone())) + .await + .unwrap(); + + // `IotaTransactionBlockResponse` does have a custom PartialEq impl which does + // not match all options filters but is still good to check if both tx does + // match + assert_eq!(fullnode_tx, tx); + + assert!( + match_transaction_block_resp_options(&options, &[fullnode_tx]), + "fullnode transaction block assertion failed" + ); + assert!( + match_transaction_block_resp_options(&options, &[tx]), + "indexer transaction block assertion failed" + ); + }); +} + +fn multi_get_transaction_blocks_with_options(options: IotaTransactionBlockResponseOptions) { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let fullnode_checkpoints = cluster + .rpc_client() + .get_checkpoints(None, Some(3), false) + .await + .unwrap(); + + let digests = fullnode_checkpoints + .data + .into_iter() + .flat_map(|c| c.transactions) + .collect::<Vec<TransactionDigest>>(); + + let fullnode_txs = cluster + .rpc_client() + .multi_get_transaction_blocks(digests.clone(), Some(options.clone())) + .await + .unwrap(); + + let indexer_txs = client + .multi_get_transaction_blocks(digests, Some(options.clone())) + .await + .unwrap(); + + // `IotaTransactionBlockResponse` does have a custom PartialEq impl which does + // not match all options filters but is still good to check if both tx does + // match + assert_eq!(fullnode_txs, indexer_txs); + + assert!( + match_transaction_block_resp_options(&options, &fullnode_txs), + "fullnode multi transaction blocks assertion failed" + ); + assert!( + match_transaction_block_resp_options(&options, &indexer_txs), + "indexer multi transaction blocks assertion failed" + ); + }); +} + +#[test] +fn get_checkpoint_by_seq_num() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let fullnode_checkpoint = cluster + .rpc_client() + .get_checkpoint(CheckpointId::SequenceNumber(0)) + .await + .unwrap(); + + let indexer_checkpoint = client + .get_checkpoint(CheckpointId::SequenceNumber(0)) + .await + .unwrap(); + + assert_eq!(fullnode_checkpoint, indexer_checkpoint); + }) +} + +#[test] +fn get_checkpoint_by_seq_num_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .get_checkpoint(CheckpointId::SequenceNumber(100000000000)) + .await; + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32603,"message":"Invalid argument with error: `Checkpoint SequenceNumber(100000000000) not found`"}"#, + )); + }); +} + +#[test] +fn get_checkpoint_by_digest() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let fullnode_checkpoint = cluster + .rpc_client() + .get_checkpoint(CheckpointId::SequenceNumber(0)) + .await + .unwrap(); + + let indexer_checkpoint = client + .get_checkpoint(CheckpointId::Digest(fullnode_checkpoint.digest)) + .await + .unwrap(); + + assert_eq!(fullnode_checkpoint, indexer_checkpoint); + }); +} + +#[test] +fn get_checkpoint_by_digest_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .get_checkpoint(CheckpointId::Digest([0; 32].into())) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32603,"message":"Invalid argument with error: `Checkpoint Digest(CheckpointDigest(11111111111111111111111111111111)) not found`"}"#, + )); + }); +} + +#[test] +fn get_checkpoints_all_ascending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let indexer_checkpoint = client.get_checkpoints(None, None, false).await.unwrap(); + + let seq_numbers = indexer_checkpoint + .data + .iter() + .map(|c| c.sequence_number) + .collect::<Vec<u64>>(); + + assert!(is_ascending(&seq_numbers)); + }); +} + +#[test] +fn get_checkpoints_all_descending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let indexer_checkpoint = client.get_checkpoints(None, None, true).await.unwrap(); + + let seq_numbers = indexer_checkpoint + .data + .iter() + .map(|c| c.sequence_number) + .collect::<Vec<u64>>(); + + assert!(is_descending(&seq_numbers)); + }); +} + +#[test] +fn get_checkpoints_by_cursor_and_limit_one_descending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let indexer_checkpoint = client + .get_checkpoints(Some(1.into()), Some(1), true) + .await + .unwrap(); + + assert_eq!( + vec![0], + indexer_checkpoint + .data + .into_iter() + .map(|c| c.sequence_number) + .collect::<Vec<u64>>() + ); + }); +} + +#[test] +fn get_checkpoints_by_cursor_and_limit_one_ascending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let indexer_checkpoint = client + .get_checkpoints(Some(1.into()), Some(1), false) + .await + .unwrap(); + + assert_eq!( + vec![2], + indexer_checkpoint + .data + .into_iter() + .map(|c| c.sequence_number) + .collect::<Vec<u64>>() + ); + }); +} + +#[test] +fn get_checkpoints_by_cursor_zero_and_limit_ascending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let indexer_checkpoint = client + .get_checkpoints(Some(0.into()), Some(3), false) + .await + .unwrap(); + + assert_eq!( + vec![1, 2, 3], + indexer_checkpoint + .data + .into_iter() + .map(|c| c.sequence_number) + .collect::<Vec<u64>>() + ); + }); +} + +#[test] +fn get_checkpoints_by_cursor_zero_and_limit_descending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let indexer_checkpoint = client + .get_checkpoints(Some(0.into()), Some(3), true) + .await + .unwrap(); + + assert_eq!( + Vec::<u64>::default(), + indexer_checkpoint + .data + .into_iter() + .map(|c| c.sequence_number) + .collect::<Vec<u64>>() + ); + }); +} + +#[test] +fn get_checkpoints_by_cursor_and_limit_ascending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 6).await; + + let indexer_checkpoint = client + .get_checkpoints(Some(3.into()), Some(3), false) + .await + .unwrap(); + + assert_eq!( + vec![4, 5, 6], + indexer_checkpoint + .data + .into_iter() + .map(|c| c.sequence_number) + .collect::<Vec<u64>>() + ); + }); +} + +#[test] +fn get_checkpoints_by_cursor_and_limit_descending() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let indexer_checkpoint = client + .get_checkpoints(Some(3.into()), Some(3), true) + .await + .unwrap(); + + assert_eq!( + // vec![2, 1, 5], + vec![2, 1, 0], + indexer_checkpoint + .data + .into_iter() + .map(|c| c.sequence_number) + .collect::<Vec<u64>>() + ); + }); +} + +#[test] +fn get_checkpoints_invalid_limit() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let result = client.get_checkpoints(None, Some(0), false).await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32602,"message":"Page size limit cannot be smaller than 1"}"#, + )); + }); +} + +#[test] +fn get_object() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + let address = cluster.get_address_0(); + + let fullnode_objects = cluster + .rpc_client() + .get_owned_objects(address, None, None, None) + .await + .unwrap(); + + for obj in fullnode_objects.data { + let indexer_obj = client + .get_object(obj.object_id().unwrap(), None) + .await + .unwrap(); + assert_eq!(obj, indexer_obj) + } + }); +} + +#[test] +fn get_object_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let indexer_obj = client + .get_object( + ObjectID::from_str( + "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99", + ) + .unwrap(), + None, + ) + .await + .unwrap(); + + assert_eq!(indexer_obj, IotaObjectResponse { + data: None, + error: Some(IotaObjectResponseError::NotExists { + object_id: "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99" + .parse() + .unwrap() + }) + }) + }); +} + +#[test] +fn get_object_with_bcs_lossless() { + get_object_with_options(IotaObjectDataOptions::bcs_lossless()); +} + +#[test] +fn get_object_with_full_content() { + get_object_with_options(IotaObjectDataOptions::full_content()); +} + +#[test] +fn get_object_with_bcs() { + get_object_with_options(IotaObjectDataOptions::default().with_bcs()); +} + +#[test] +fn get_object_with_content() { + get_object_with_options(IotaObjectDataOptions::default().with_content()); +} + +#[test] +fn get_object_with_display() { + get_object_with_options(IotaObjectDataOptions::default().with_display()); +} + +#[test] +fn get_object_with_owner() { + get_object_with_options(IotaObjectDataOptions::default().with_owner()); +} + +#[test] +fn get_object_with_previous_transaction() { + get_object_with_options(IotaObjectDataOptions::default().with_previous_transaction()); +} + +#[test] +fn get_object_with_type() { + get_object_with_options(IotaObjectDataOptions::default().with_type()); +} + +#[test] +fn get_object_with_storage_rebate() { + get_object_with_options(IotaObjectDataOptions { + show_storage_rebate: true, + ..Default::default() + }); +} + +#[test] +fn multi_get_objects() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + let address = cluster.get_address_0(); + + let fullnode_objects = cluster + .rpc_client() + .get_owned_objects(address, None, None, None) + .await + .unwrap(); + + let object_ids = fullnode_objects + .data + .iter() + .map(|iota_object| iota_object.object_id().unwrap()) + .collect(); + + let indexer_objects = client.multi_get_objects(object_ids, None).await.unwrap(); + + assert_eq!(fullnode_objects.data, indexer_objects); + }); +} + +#[test] +fn multi_get_objects_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let object_ids = vec![ + ObjectID::from_str( + "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99", + ) + .unwrap(), + ObjectID::from_str( + "0x1a934a7644c4cf2decbe3d126d80720429c5e30896aa756765afa23af3cb4b82", + ) + .unwrap(), + ]; + + let indexer_objects = client.multi_get_objects(object_ids, None).await.unwrap(); + + assert_eq!(indexer_objects, vec![ + IotaObjectResponse { + data: None, + error: Some(IotaObjectResponseError::NotExists { + object_id: "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99" + .parse() + .unwrap() + }) + }, + IotaObjectResponse { + data: None, + error: Some(IotaObjectResponseError::NotExists { + object_id: "0x1a934a7644c4cf2decbe3d126d80720429c5e30896aa756765afa23af3cb4b82" + .parse() + .unwrap() + }) + } + ]) + }); +} + +#[test] +fn multi_get_objects_found_and_not_found() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + let address = cluster.get_address_0(); + + let fullnode_objects = cluster + .rpc_client() + .get_owned_objects(address, None, None, None) + .await + .unwrap(); + + let mut object_ids = fullnode_objects + .data + .iter() + .map(|iota_object| iota_object.object_id().unwrap()) + .collect::<Vec<ObjectID>>(); + + object_ids.extend_from_slice(&[ + ObjectID::from_str( + "0x9a934a2644c4ca2decbe3d126d80720429c5e31896aa756765afa23ae2cb4b99", + ) + .unwrap(), + ObjectID::from_str( + "0x1a934a7644c4cf2decbe3d126d80720429c5e30896aa756765afa23af3cb4b82", + ) + .unwrap(), + ]); + + let indexer_objects = client.multi_get_objects(object_ids, None).await.unwrap(); + + let obj_found_num = indexer_objects + .iter() + .filter(|obj_response| obj_response.data.is_some()) + .count(); + + assert_eq!(5, obj_found_num); + + let obj_not_found_num = indexer_objects + .iter() + .filter(|obj_response| obj_response.error.is_some()) + .count(); + + assert_eq!(2, obj_not_found_num); + }); +} + +#[test] +fn multi_get_objects_with_bcs_lossless() { + multi_get_objects_with_options(IotaObjectDataOptions::bcs_lossless()); +} + +#[test] +fn multi_get_objects_with_full_content() { + multi_get_objects_with_options(IotaObjectDataOptions::full_content()); +} + +#[test] +fn multi_get_objects_with_bcs() { + multi_get_objects_with_options(IotaObjectDataOptions::default().with_bcs()); +} + +#[test] +fn multi_get_objects_with_content() { + multi_get_objects_with_options(IotaObjectDataOptions::default().with_content()); +} + +#[test] +fn multi_get_objects_with_display() { + multi_get_objects_with_options(IotaObjectDataOptions::default().with_display()); +} + +#[test] +fn multi_get_objects_with_owner() { + multi_get_objects_with_options(IotaObjectDataOptions::default().with_owner()); +} + +#[test] +fn multi_get_objects_with_previous_transaction() { + multi_get_objects_with_options(IotaObjectDataOptions::default().with_previous_transaction()); +} + +#[test] +fn multi_get_objects_with_type() { + multi_get_objects_with_options(IotaObjectDataOptions::default().with_type()); +} + +#[test] +fn multi_get_objects_with_storage_rebate() { + multi_get_objects_with_options(IotaObjectDataOptions { + show_storage_rebate: true, + ..Default::default() + }); +} + +#[test] +fn get_events() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let fullnode_checkpoint = cluster + .rpc_client() + .get_checkpoint(CheckpointId::SequenceNumber(0)) + .await + .unwrap(); + + let events = client + .get_events(*fullnode_checkpoint.transactions.first().unwrap()) + .await + .unwrap(); + + assert!(!events.is_empty()); + }); +} + +#[test] +fn get_events_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client.get_events(TransactionDigest::ZERO).await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32603,"message":"Indexer failed to read PostgresDB with error: `Record not found`"}"#, + )) + }); +} + +#[test] +fn get_transaction_block() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let fullnode_checkpoint = cluster + .rpc_client() + .get_checkpoint(CheckpointId::SequenceNumber(0)) + .await + .unwrap(); + + let tx_digest = *fullnode_checkpoint.transactions.first().unwrap(); + + let tx = client.get_transaction_block(tx_digest, None).await.unwrap(); + + assert_eq!(tx_digest, tx.digest); + }); +} + +#[test] +fn get_transaction_block_not_found() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .get_transaction_block(TransactionDigest::ZERO, None) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32603,"message":"Invalid argument with error: `Transaction 11111111111111111111111111111111 not found`"}"#, + )); + }); +} + +#[test] +fn get_transaction_block_with_full_content() { + get_transaction_block_with_options(IotaTransactionBlockResponseOptions::full_content()); +} + +#[test] +fn get_transaction_block_with_full_content_and_with_raw_effects() { + get_transaction_block_with_options( + IotaTransactionBlockResponseOptions::full_content().with_raw_effects(), + ); +} + +#[test] +fn get_transaction_block_with_raw_input() { + get_transaction_block_with_options( + IotaTransactionBlockResponseOptions::default().with_raw_input(), + ); +} + +#[test] +fn get_transaction_block_with_effects() { + get_transaction_block_with_options( + IotaTransactionBlockResponseOptions::default().with_effects(), + ); +} + +#[test] +fn get_transaction_block_with_events() { + get_transaction_block_with_options( + IotaTransactionBlockResponseOptions::default().with_events(), + ); +} + +#[test] +fn get_transaction_block_with_balance_changes() { + get_transaction_block_with_options( + IotaTransactionBlockResponseOptions::default().with_balance_changes(), + ); +} + +#[test] +fn get_transaction_block_with_object_changes() { + get_transaction_block_with_options( + IotaTransactionBlockResponseOptions::default().with_object_changes(), + ); +} + +#[test] +fn get_transaction_block_with_raw_effects() { + get_transaction_block_with_options( + IotaTransactionBlockResponseOptions::default().with_raw_effects(), + ); +} + +#[test] +fn get_transaction_block_with_input() { + get_transaction_block_with_options(IotaTransactionBlockResponseOptions::default().with_input()); +} + +#[test] +fn multi_get_transaction_blocks() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 3).await; + + let fullnode_checkpoints = cluster + .rpc_client() + .get_checkpoints(None, Some(3), false) + .await + .unwrap(); + + let digests = fullnode_checkpoints + .data + .into_iter() + .flat_map(|c| c.transactions) + .collect::<Vec<TransactionDigest>>(); + + let fullnode_txs = cluster + .rpc_client() + .multi_get_transaction_blocks(digests.clone(), None) + .await + .unwrap(); + + let indexer_txs = client + .multi_get_transaction_blocks(digests, None) + .await + .unwrap(); + + assert_eq!(fullnode_txs, indexer_txs); + }); +} + +#[test] +fn multi_get_transaction_blocks_with_full_content() { + multi_get_transaction_blocks_with_options(IotaTransactionBlockResponseOptions::full_content()); +} + +#[test] +fn multi_get_transaction_blocks_with_full_content_and_with_raw_effects() { + multi_get_transaction_blocks_with_options( + IotaTransactionBlockResponseOptions::full_content().with_raw_effects(), + ); +} + +#[test] +fn multi_get_transaction_blocks_with_raw_input() { + multi_get_transaction_blocks_with_options( + IotaTransactionBlockResponseOptions::default().with_raw_input(), + ); +} + +#[test] +fn multi_get_transaction_blocks_with_effects() { + multi_get_transaction_blocks_with_options( + IotaTransactionBlockResponseOptions::default().with_effects(), + ); +} + +#[test] +fn multi_get_transaction_blocks_with_events() { + multi_get_transaction_blocks_with_options( + IotaTransactionBlockResponseOptions::default().with_events(), + ); +} + +#[test] +fn multi_get_transaction_blocks_with_balance_changes() { + multi_get_transaction_blocks_with_options( + IotaTransactionBlockResponseOptions::default().with_balance_changes(), + ); +} + +#[test] +fn multi_get_transaction_blocks_with_object_changes() { + multi_get_transaction_blocks_with_options( + IotaTransactionBlockResponseOptions::default().with_object_changes(), + ); +} + +#[test] +fn multi_get_transaction_blocks_with_raw_effects() { + multi_get_transaction_blocks_with_options( + IotaTransactionBlockResponseOptions::default().with_raw_effects(), + ); +} + +#[test] +fn multi_get_transaction_blocks_with_input() { + multi_get_transaction_blocks_with_options( + IotaTransactionBlockResponseOptions::default().with_input(), + ); +} + +#[test] +fn get_protocol_config() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let fullnode_protocol_config = cluster + .rpc_client() + .get_protocol_config(None) + .await + .unwrap(); + + let indexer_protocol_config = client.get_protocol_config(None).await.unwrap(); + + assert_eq!(fullnode_protocol_config, indexer_protocol_config); + + let indexer_protocol_config = client.get_protocol_config(Some(1u64.into())).await.unwrap(); + + assert_eq!(fullnode_protocol_config, indexer_protocol_config); + }); +} + +#[test] +fn get_protocol_config_invalid_protocol_version() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .get_protocol_config(Some(100u64.into())) + .await; + + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32603,"message":"Unsupported protocol version requested. Min supported: 1, max supported: 1"}"#, + )); + }); +} + +#[test] +fn get_chain_identifier() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let fullnode_chain_identifier = cluster.rpc_client().get_chain_identifier().await.unwrap(); + + let indexer_chain_identifier = client.get_chain_identifier().await.unwrap(); + + assert_eq!(fullnode_chain_identifier, indexer_chain_identifier) + }); +} + +#[test] +fn get_total_transaction_blocks() { + let checkpoint = 5; + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, checkpoint).await; + let total_transaction_blocks = client.get_total_transaction_blocks().await.unwrap(); + + let fullnode_checkpoint = cluster + .rpc_client() + .get_checkpoint(CheckpointId::SequenceNumber(checkpoint)) + .await + .unwrap(); + + let indexer_checkpoint = client + .get_checkpoint(CheckpointId::SequenceNumber(checkpoint)) + .await + .unwrap(); + + assert!( + total_transaction_blocks.into_inner() >= fullnode_checkpoint.network_total_transactions + ); + assert!( + total_transaction_blocks.into_inner() >= indexer_checkpoint.network_total_transactions, + ); + }); +} + +#[test] +fn get_latest_checkpoint_sequence_number() { + let checkpoint = 5; + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, checkpoint).await; + + let latest_checkpoint_seq_number = client + .get_latest_checkpoint_sequence_number() + .await + .unwrap(); + + assert!(latest_checkpoint_seq_number.into_inner() >= checkpoint); + + indexer_wait_for_checkpoint(store, checkpoint + 5).await; + + let latest_checkpoint_seq_number = client + .get_latest_checkpoint_sequence_number() + .await + .unwrap(); + + assert!(latest_checkpoint_seq_number.into_inner() >= checkpoint + 5); + }); +} + +#[test] +fn try_get_past_object() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .try_get_past_object(ObjectID::random(), SequenceNumber::new(), None) + .await; + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32601,"message":"Method not found"}"# + )); + }); +} + +#[test] +fn try_multi_get_past_objects() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .try_multi_get_past_objects( + vec![IotaGetPastObjectRequest { + object_id: ObjectID::random(), + version: SequenceNumber::new(), + }], + None, + ) + .await; + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32601,"message":"Method not found"}"# + )); + }); +} + +#[test] +fn try_get_object_before_version() { + let ApiTestSetup { + runtime, + store, + client, + .. + } = ApiTestSetup::get_or_init(); + runtime.block_on(async move { + indexer_wait_for_checkpoint(store, 1).await; + + let result = client + .try_get_object_before_version(ObjectID::ZERO, SequenceNumber::from_u64(1)) + .await; + assert!(rpc_call_error_msg_matches( + result, + r#"{"code":-32601,"message":"Method not found"}"# + )); + }); +} diff --git a/crates/iota-indexer/tests/rpc-tests/transaction_builder.rs b/crates/iota-indexer/tests/rpc-tests/transaction_builder.rs new file mode 100644 index 00000000000..c541e2ea65f --- /dev/null +++ b/crates/iota-indexer/tests/rpc-tests/transaction_builder.rs @@ -0,0 +1,914 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +use std::str::FromStr; + +use diesel::PgConnection; +use iota_indexer::store::PgIndexerStore; +use iota_json::{call_args, type_args}; +use iota_json_rpc_api::{ + CoinReadApiClient, GovernanceReadApiClient, IndexerApiClient, ReadApiClient, + TransactionBuilderClient, +}; +use iota_json_rpc_types::{ + IotaObjectDataOptions, IotaObjectResponseQuery, MoveCallParams, ObjectsPage, + RPCTransactionRequestParams, StakeStatus, TransactionBlockBytes, TransferObjectParams, +}; +use iota_protocol_config::ProtocolConfig; +use iota_swarm_config::genesis_config::AccountConfig; +use iota_types::{ + IOTA_FRAMEWORK_ADDRESS, + base_types::{IotaAddress, MoveObjectType, ObjectID}, + crypto::{AccountKeyPair, get_key_pair}, + digests::TransactionDigest, + gas_coin::GAS, + id::UID, + object::{Data, MoveObject, OBJECT_START_VERSION, ObjectInner, Owner}, + timelock::{ + label::label_struct_tag_to_string, stardust_upgrade_label::stardust_upgrade_label_type, + timelock::TimeLock, + }, + utils::to_sender_signed_transaction, +}; +use jsonrpsee::http_client::HttpClient; +use test_cluster::TestCluster; + +use crate::common::{ + ApiTestSetup, indexer_wait_for_checkpoint, indexer_wait_for_latest_checkpoint, + indexer_wait_for_object, indexer_wait_for_transaction, + start_test_cluster_with_read_write_indexer, +}; +const FUNDED_BALANCE_PER_COIN: u64 = 10_000_000_000; + +#[test] +fn transfer_object() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + let (receiver, _): (_, AccountKeyPair) = get_key_pair(); + + let sender_coins = create_coins_and_wait_for_indexer(cluster, client, sender, 2).await; + let gas = sender_coins[0]; + let object_to_send = sender_coins[1]; + + let tx_bytes = client + .transfer_object( + sender, + object_to_send, + Some(gas), + 100_000_000.into(), + receiver, + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let transferred_object = client + .get_object(object_to_send, Some(IotaObjectDataOptions::full_content())) + .await + .unwrap(); + + assert_eq!( + transferred_object.owner(), + Some(Owner::AddressOwner(receiver)) + ); + }); +} + +#[test] +fn transfer_iota() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + let (receiver, _): (_, AccountKeyPair) = get_key_pair(); + + let sender_coins = create_coins_and_wait_for_indexer(cluster, client, sender, 1).await; + let gas = sender_coins[0]; + let transferred_balance = 100_000; + + let tx_bytes = client + .transfer_iota( + sender, + gas, + 100_000_000.into(), + receiver, + Some(transferred_balance.into()), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let receiver_balances = get_address_balances(client, receiver).await; + + assert_eq!(receiver_balances, [transferred_balance]); + }); +} + +#[test] +fn pay() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + let (receiver_1, _): (_, AccountKeyPair) = get_key_pair(); + let (receiver_2, _): (_, AccountKeyPair) = get_key_pair(); + + let input_coins: u64 = 3; + let sender_coins = + create_coins_and_wait_for_indexer(cluster, client, sender, input_coins as u32 + 1) + .await; + let total_input_coins_balance = FUNDED_BALANCE_PER_COIN * input_coins; + let transferred_balance_1 = total_input_coins_balance / 2 - 100; + let transferred_balance_2 = total_input_coins_balance / 2 - 700; + + let tx_bytes = client + .pay( + sender, + sender_coins[0..input_coins as usize].into(), + [receiver_1, receiver_2].into(), + [transferred_balance_1.into(), transferred_balance_2.into()].into(), + None, // let node find the gas automatically + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let receiver_1_balances = get_address_balances(client, receiver_1).await; + let receiver_2_balances = get_address_balances(client, receiver_2).await; + + assert_eq!(receiver_1_balances, [transferred_balance_1]); + assert_eq!(receiver_2_balances, [transferred_balance_2]); + }); +} + +#[test] +fn pay_iota() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + let (receiver_1, _): (_, AccountKeyPair) = get_key_pair(); + let (receiver_2, _): (_, AccountKeyPair) = get_key_pair(); + + let input_coins: u64 = 3; + let sender_coins = + create_coins_and_wait_for_indexer(cluster, client, sender, input_coins as u32).await; + let gas_budget = 100_000_000; + let total_available_input_coins_balance: u64 = + FUNDED_BALANCE_PER_COIN * input_coins - gas_budget; + let transferred_balance_1 = total_available_input_coins_balance / 2 - 100; + let transferred_balance_2 = total_available_input_coins_balance / 2 - 700; + + let tx_bytes = client + .pay_iota( + sender, + sender_coins, + [receiver_1, receiver_2].into(), + [transferred_balance_1.into(), transferred_balance_2.into()].into(), + gas_budget.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let receiver_1_balances = get_address_balances(client, receiver_1).await; + let receiver_2_balances = get_address_balances(client, receiver_2).await; + + assert_eq!(receiver_1_balances, [transferred_balance_1]); + assert_eq!(receiver_2_balances, [transferred_balance_2]); + }); +} + +#[test] +fn pay_all_iota() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + let (receiver, _): (_, AccountKeyPair) = get_key_pair(); + + let input_coins: u64 = 3; + let sender_coins = + create_coins_and_wait_for_indexer(cluster, client, sender, input_coins as u32).await; + let gas_budget = 100_000_000; + + let tx_bytes = client + .pay_all_iota(sender, sender_coins, receiver, gas_budget.into()) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let receiver_balances = get_address_balances(client, receiver).await; + let expected_minimum_receiver_balance = FUNDED_BALANCE_PER_COIN * input_coins - gas_budget; + + assert_eq!(receiver_balances.len(), 1); + assert!(receiver_balances[0] >= expected_minimum_receiver_balance); + }); +} + +#[test] +fn move_call() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime + .block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + + let sender_coins = create_coins_and_wait_for_indexer(cluster, client, sender, 3).await; + let gas = sender_coins[0]; + + let tx_bytes = client + .move_call( + sender, + ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + "coin".to_string(), + "join".to_string(), + type_args![GAS::type_tag()].unwrap(), + call_args!(sender_coins[1], sender_coins[2]).unwrap(), + Some(gas), + 10_000_000.into(), + None, + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let mut sender_balances = get_address_balances(client, sender).await; + sender_balances.sort(); + + assert_eq!(sender_balances[1], FUNDED_BALANCE_PER_COIN * 2); + + Ok::<(), anyhow::Error>(()) + }) + .unwrap(); +} + +#[test] +fn split_coin() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + + let sender_coins = create_coins_and_wait_for_indexer(cluster, client, sender, 2).await; + let split_amount_1 = 100_000; + let split_amount_2 = 20_000; + let split_amount_3 = 30_000; + let gas_budget = 100_000_000; + + let tx_bytes = client + .split_coin( + sender, + sender_coins[0], + vec![ + split_amount_1.into(), + split_amount_2.into(), + split_amount_3.into(), + ], + None, + gas_budget.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let mut sender_balances = get_address_balances(client, sender).await; + sender_balances.sort(); + + assert_eq!(sender_balances[0..3], [ + split_amount_2, + split_amount_3, + split_amount_1, + ]); + }); +} + +#[test] +fn split_coin_equal() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + + let sender_coins = create_coins_and_wait_for_indexer(cluster, client, sender, 2).await; + let gas_budget = 100_000_000; + + let tx_bytes = client + .split_coin_equal(sender, sender_coins[0], 3.into(), None, gas_budget.into()) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let mut sender_balances = get_address_balances(client, sender).await; + sender_balances.sort(); + + assert_eq!(sender_balances[0..3], [ + 3_333_333_333, + 3_333_333_333, + 3_333_333_334, + ]); + }); +} + +#[test] +fn merge_coin() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + + let sender_coins = create_coins_and_wait_for_indexer(cluster, client, sender, 3).await; + let gas_budget = 100_000_000; + + let tx_bytes = client + .merge_coin( + sender, + sender_coins[0], + sender_coins[1], + Some(sender_coins[2]), + gas_budget.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let mut sender_balances = get_address_balances(client, sender).await; + sender_balances.sort(); + + assert_eq!(sender_balances.len(), 2); + assert_eq!(sender_balances[1], FUNDED_BALANCE_PER_COIN * 2); + }); +} + +#[test] +fn batch_transaction() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime + .block_on(async move { + let (sender, keypair): (_, AccountKeyPair) = get_key_pair(); + let (receiver, _): (_, AccountKeyPair) = get_key_pair(); + + let sender_coins = create_coins_and_wait_for_indexer(cluster, client, sender, 3).await; + let gas = sender_coins[0]; + let coin_to_split = sender_coins[1]; + let coin_to_transfer: ObjectID = sender_coins[2]; + let amount_to_split = FUNDED_BALANCE_PER_COIN / 2 - 123_000; + let amount_to_leave = FUNDED_BALANCE_PER_COIN - amount_to_split; + + let tx_bytes: TransactionBlockBytes = client + .batch_transaction( + sender, + vec![ + RPCTransactionRequestParams::MoveCallRequestParams(MoveCallParams { + package_object_id: ObjectID::new(IOTA_FRAMEWORK_ADDRESS.into_bytes()), + module: "pay".to_string(), + function: "split".to_string(), + type_arguments: type_args![GAS::type_tag()]?, + arguments: call_args!(coin_to_split, amount_to_split)?, + }), + RPCTransactionRequestParams::TransferObjectRequestParams( + TransferObjectParams { + recipient: receiver, + object_id: coin_to_transfer, + }, + ), + ], + Some(gas), + 10_000_000.into(), + None, + ) + .await?; + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let mut sender_balances = get_address_balances(client, sender).await; + let receiver_balances = get_address_balances(client, receiver).await; + sender_balances.sort(); + + assert_eq!(sender_balances.len(), 3); + assert_eq!(sender_balances[0..2], [amount_to_split, amount_to_leave]); + assert_eq!(receiver_balances, [FUNDED_BALANCE_PER_COIN]); + + Ok::<(), anyhow::Error>(()) + }) + .unwrap(); +} + +#[test] +fn request_add_stake() { + let ApiTestSetup { runtime, .. } = ApiTestSetup::get_or_init(); + + runtime + .block_on(async move { + let (cluster, store, client) = &start_test_cluster_with_read_write_indexer( + Some("transaction_builder_request_add_stake"), + None, + ) + .await; + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + let coins = create_coins_and_wait_for_indexer(cluster, client, address, 4).await; + let gas = coins[3]; + let coins_to_stake = coins[..3].to_vec(); + let validator = get_validator(client).await; + // subtracting some amount to see if it is possible to stake smaller amount than + // is provided in the input coins + let stake_amount = FUNDED_BALANCE_PER_COIN * 3 - 10_000; + + let tx_bytes: TransactionBlockBytes = client + .request_add_stake( + address, + coins_to_stake, + Some(stake_amount.into()), + validator, + Some(gas), + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let staked_iota = client.get_stakes(address).await.unwrap(); + + assert_eq!(1, staked_iota.len()); + let staked_iota = &staked_iota[0]; + assert_eq!(validator, staked_iota.validator_address); + + assert_eq!(1, staked_iota.stakes.len()); + let stake = &staked_iota.stakes[0]; + assert!(matches!(stake.status, StakeStatus::Pending)); + assert_eq!(stake.principal, stake_amount); + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(store, cluster).await; + let staked_iota = client.get_stakes(address).await.unwrap(); + let stake = &staked_iota[0].stakes[0]; + assert!(matches!(stake.status, StakeStatus::Active { .. })); + + Ok::<(), anyhow::Error>(()) + }) + .unwrap(); +} + +#[test] +fn request_withdraw_stake_from_pending() { + let ApiTestSetup { + runtime, + store, + client, + cluster, + } = ApiTestSetup::get_or_init(); + + runtime + .block_on(async move { + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + let coins = create_coins_and_wait_for_indexer(cluster, client, address, 4).await; + let gas = coins[3]; + let coins_to_stake = coins[..3].to_vec(); + let validator = get_validator(client).await; + // subtracting some amount to see if it is possible to stake smaller amount than + // is provided in the input coins + let stake_amount = FUNDED_BALANCE_PER_COIN * 3 - 10_000; + + let tx_bytes: TransactionBlockBytes = client + .request_add_stake( + address, + coins_to_stake, + Some(stake_amount.into()), + validator, + Some(gas), + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let staked_iota = client.get_stakes(address).await.unwrap(); + let stake = &staked_iota[0].stakes[0]; + assert!(matches!(stake.status, StakeStatus::Pending)); + + let tx_bytes: TransactionBlockBytes = client + .request_withdraw_stake( + address, + stake.staked_iota_id, + Some(gas), + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let staked_iota = client.get_stakes(address).await.unwrap(); + assert!(staked_iota.is_empty()); + + Ok::<(), anyhow::Error>(()) + }) + .unwrap(); +} + +#[test] +fn request_withdraw_stake_from_active() { + let ApiTestSetup { runtime, .. } = ApiTestSetup::get_or_init(); + + runtime + .block_on(async move { + let (cluster, store, client) = &start_test_cluster_with_read_write_indexer( + Some("transaction_builder_request_withdraw_stake_from_active"), + None, + ) + .await; + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + let coins = create_coins_and_wait_for_indexer(cluster, client, address, 4).await; + let gas = coins[3]; + let coins_to_stake = coins[..3].to_vec(); + let validator = get_validator(client).await; + // subtracting some amount to see if it is possible to stake smaller amount than + // is provided in the input coins + let stake_amount = FUNDED_BALANCE_PER_COIN * 3 - 10_000; + + let tx_bytes: TransactionBlockBytes = client + .request_add_stake( + address, + coins_to_stake, + Some(stake_amount.into()), + validator, + Some(gas), + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(store, cluster).await; + let staked_iota = client.get_stakes(address).await.unwrap(); + let stake = &staked_iota[0].stakes[0]; + assert!(matches!(stake.status, StakeStatus::Active { .. })); + + let tx_bytes: TransactionBlockBytes = client + .request_withdraw_stake( + address, + stake.staked_iota_id, + Some(gas), + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(client, cluster, store, tx_bytes, &keypair).await; + + let staked_iota = client.get_stakes(address).await.unwrap(); + assert!(staked_iota.is_empty()); + + Ok::<(), anyhow::Error>(()) + }) + .unwrap(); +} + +#[test] +fn request_add_timelocked_stake() { + let ApiTestSetup { runtime, .. } = ApiTestSetup::get_or_init(); + + runtime + .block_on(async move { + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + let (cluster, store, client, timelocked_balance) = create_cluster_with_timelocked_iota( + address, + "transaction_builder_request_add_timelocked_stake", + ) + .await; + indexer_wait_for_checkpoint(&store, 1).await; + + let coin = get_gas_object_id(&client, address).await; + let validator = get_validator(&client).await; + + let tx_bytes: TransactionBlockBytes = client + .request_add_timelocked_stake( + address, + timelocked_balance, + validator, + coin, + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(&client, &cluster, &store, tx_bytes, &keypair).await; + + let staked_iota = client.get_timelocked_stakes(address).await.unwrap(); + + assert_eq!(1, staked_iota.len()); + let staked_iota = &staked_iota[0]; + assert_eq!(validator, staked_iota.validator_address); + + assert_eq!(1, staked_iota.stakes.len()); + let stake = &staked_iota.stakes[0]; + assert!(matches!(stake.status, StakeStatus::Pending)); + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(&store, &cluster).await; + let staked_iota = client.get_timelocked_stakes(address).await.unwrap(); + let stake = &staked_iota[0].stakes[0]; + assert!(matches!(stake.status, StakeStatus::Active { .. })); + + Ok::<(), anyhow::Error>(()) + }) + .unwrap(); +} + +#[test] +fn request_withdraw_timelocked_stake_from_pending() { + let ApiTestSetup { runtime, .. } = ApiTestSetup::get_or_init(); + + runtime + .block_on(async move { + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + let (cluster, store, client, timelocked_balance) = create_cluster_with_timelocked_iota( + address, + "transaction_builder_request_withdraw_timelocked_stake_from_pending", + ) + .await; + indexer_wait_for_checkpoint(&store, 1).await; + + let coin = get_gas_object_id(&client, address).await; + let validator = get_validator(&client).await; + + let tx_bytes: TransactionBlockBytes = client + .request_add_timelocked_stake( + address, + timelocked_balance, + validator, + coin, + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(&client, &cluster, &store, tx_bytes, &keypair).await; + + let staked_iota = client.get_timelocked_stakes(address).await.unwrap(); + let stake = &staked_iota[0].stakes[0]; + assert!(matches!(stake.status, StakeStatus::Pending)); + + let tx_bytes: TransactionBlockBytes = client + .request_withdraw_timelocked_stake( + address, + stake.timelocked_staked_iota_id, + coin, + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(&client, &cluster, &store, tx_bytes, &keypair).await; + + let staked_iota = client.get_timelocked_stakes(address).await.unwrap(); + assert!(staked_iota.is_empty()); + + Ok::<(), anyhow::Error>(()) + }) + .unwrap(); +} + +#[test] +fn request_withdraw_timelocked_stake_from_active() { + let ApiTestSetup { runtime, .. } = ApiTestSetup::get_or_init(); + + runtime + .block_on(async move { + let (address, keypair): (_, AccountKeyPair) = get_key_pair(); + let (cluster, store, client, timelocked_balance) = create_cluster_with_timelocked_iota( + address, + "transaction_builder_request_withdraw_timelocked_stake_from_active", + ) + .await; + indexer_wait_for_checkpoint(&store, 1).await; + + let coin = get_gas_object_id(&client, address).await; + let validator = get_validator(&client).await; + + let tx_bytes: TransactionBlockBytes = client + .request_add_timelocked_stake( + address, + timelocked_balance, + validator, + coin, + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(&client, &cluster, &store, tx_bytes, &keypair).await; + + cluster.force_new_epoch().await; + indexer_wait_for_latest_checkpoint(&store, &cluster).await; + let staked_iota = client.get_timelocked_stakes(address).await.unwrap(); + let stake = &staked_iota[0].stakes[0]; + assert!(matches!(stake.status, StakeStatus::Active { .. })); + + let tx_bytes: TransactionBlockBytes = client + .request_withdraw_timelocked_stake( + address, + stake.timelocked_staked_iota_id, + coin, + 100_000_000.into(), + ) + .await + .unwrap(); + execute_tx_and_wait_for_indexer(&client, &cluster, &store, tx_bytes, &keypair).await; + + let staked_iota = client.get_timelocked_stakes(address).await.unwrap(); + assert!(staked_iota.is_empty()); + + Ok::<(), anyhow::Error>(()) + }) + .unwrap(); +} + +async fn execute_tx_and_wait_for_indexer( + indexer_client: &HttpClient, + cluster: &TestCluster, + store: &PgIndexerStore<PgConnection>, + tx_bytes: TransactionBlockBytes, + keypair: &AccountKeyPair, +) { + let txn = to_sender_signed_transaction(tx_bytes.to_data().unwrap(), keypair); + let res = cluster.wallet.execute_transaction_must_succeed(txn).await; + indexer_wait_for_transaction(res.digest, store, indexer_client).await; +} + +async fn get_address_balances(indexer_client: &HttpClient, address: IotaAddress) -> Vec<u64> { + indexer_client + .get_coins(address, None, None, None) + .await + .unwrap() + .data + .iter() + .map(|coin| coin.balance) + .collect() +} + +async fn create_coins_and_wait_for_indexer( + cluster: &TestCluster, + indexer_client: &HttpClient, + address: IotaAddress, + objects_count: u32, +) -> Vec<ObjectID> { + let mut coins: Vec<ObjectID> = Vec::new(); + for _ in 0..objects_count { + let coin = cluster + .fund_address_and_return_gas( + cluster.get_reference_gas_price().await, + Some(FUNDED_BALANCE_PER_COIN), + address, + ) + .await; + indexer_wait_for_object(indexer_client, coin.0, coin.1).await; + coins.push(coin.0); + } + coins +} + +async fn create_cluster_with_timelocked_iota( + address: IotaAddress, + indexer_db_name: &str, +) -> ( + TestCluster, + PgIndexerStore<PgConnection>, + HttpClient, + ObjectID, +) { + let principal = 100_000_000_000; + let expiration_timestamp_ms = u64::MAX; + let label = Option::Some(label_struct_tag_to_string(stardust_upgrade_label_type())); + + let timelock_iota = unsafe { + MoveObject::new_from_execution( + MoveObjectType::timelocked_iota_balance(), + false, + OBJECT_START_VERSION, + TimeLock::<iota_types::balance::Balance>::new( + UID::new(ObjectID::random()), + iota_types::balance::Balance::new(principal), + expiration_timestamp_ms, + label.clone(), + ) + .to_bcs_bytes(), + &ProtocolConfig::get_for_min_version(), + ) + .unwrap() + }; + let timelock_iota = ObjectInner { + owner: Owner::AddressOwner(address), + data: Data::Move(timelock_iota), + previous_transaction: TransactionDigest::genesis_marker(), + storage_rebate: 0, + }; + + let (cluster, store, client) = start_test_cluster_with_read_write_indexer( + Some(indexer_db_name), + Some(Box::new(move |builder| { + builder + .with_accounts( + [AccountConfig { + address: Some(address), + gas_amounts: [1_000_000_000].into(), + }] + .into(), + ) + .with_objects([timelock_iota.into()]) + })), + ) + .await; + + let fullnode_client = cluster.rpc_client(); + + let objects: ObjectsPage = fullnode_client + .get_owned_objects( + address, + Some(IotaObjectResponseQuery::new_with_options( + IotaObjectDataOptions::full_content(), + )), + None, + None, + ) + .await + .unwrap(); + assert_eq!(2, objects.data.len()); + + let timelocked_balance = objects + .data + .into_iter() + .find(|o| !o.data.as_ref().unwrap().is_gas_coin()) + .unwrap() + .object() + .unwrap() + .object_id; + + (cluster, store, client, timelocked_balance) +} + +async fn get_validator(client: &HttpClient) -> IotaAddress { + client + .get_latest_iota_system_state() + .await + .unwrap() + .active_validators[0] + .iota_address +} + +async fn get_gas_object_id(client: &HttpClient, address: IotaAddress) -> ObjectID { + client + .get_coins(address, None, None, None) + .await + .unwrap() + .data[0] + .coin_object_id +} diff --git a/crates/iota-indexer/tests/rpc-tests/write_api.rs b/crates/iota-indexer/tests/rpc-tests/write_api.rs new file mode 100644 index 00000000000..200e80f66d9 --- /dev/null +++ b/crates/iota-indexer/tests/rpc-tests/write_api.rs @@ -0,0 +1,253 @@ +// Copyright (c) 2024 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +use fastcrypto::encoding::Base64; +use iota_json_rpc_api::{ + IndexerApiClient, ReadApiClient, TransactionBuilderClient, WriteApiClient, +}; +use iota_json_rpc_types::{ + IotaExecutionStatus, IotaObjectDataOptions, IotaTransactionBlockEffectsAPI, + IotaTransactionBlockResponseOptions, +}; +use iota_types::{ + base_types::{IotaAddress, ObjectID}, + object::Owner, + programmable_transaction_builder::ProgrammableTransactionBuilder, + quorum_driver_types::ExecuteTransactionRequestType, + transaction::TransactionKind, +}; +use jsonrpsee::http_client::HttpClient; +use test_cluster::TestCluster; + +use crate::common::{ApiTestSetup, indexer_wait_for_checkpoint, indexer_wait_for_object}; + +type TxBytes = Base64; +type Signatures = Vec<Base64>; + +async fn prepare_and_sign_tx( + sender: IotaAddress, + receiver: IotaAddress, + cluster: &TestCluster, + client: &HttpClient, + obj_id: ObjectID, + gas: ObjectID, +) -> (TxBytes, Signatures) { + let transaction_bytes = client + .transfer_object(sender, obj_id, Some(gas), 10_000_000.into(), receiver) + .await + .unwrap(); + + let (tx_bytes, signatures) = cluster + .wallet + .sign_transaction(&transaction_bytes.to_data().unwrap()) + .to_tx_bytes_and_signatures(); + + (tx_bytes, signatures) +} + +async fn get_objects_to_mutate( + cluster: &TestCluster, + address: IotaAddress, +) -> (Vec<ObjectID>, ObjectID) { + let owned_objects = cluster.get_owned_objects(address, None).await.unwrap(); + + let gas = owned_objects.last().unwrap().object_id().unwrap(); + + let object_ids = owned_objects + .iter() + .take(owned_objects.len() - 1) + .map(|obj| obj.object_id().unwrap()) + .collect(); + + (object_ids, gas) +} + +#[test] +fn dry_run_transaction_block() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async { + indexer_wait_for_checkpoint(store, 1).await; + + let sender = cluster.get_address_0(); + let receiver = cluster.get_address_1(); + + let (objects, gas) = get_objects_to_mutate(cluster, sender).await; + + let (tx_bytes, signatures) = + prepare_and_sign_tx(sender, receiver, cluster, client, objects[0], gas).await; + + let dry_run_tx_block_resp = client + .dry_run_transaction_block(tx_bytes.clone()) + .await + .unwrap(); + + let indexer_tx_response = client + .execute_transaction_block( + tx_bytes, + signatures, + Some( + IotaTransactionBlockResponseOptions::new() + .with_effects() + .with_object_changes(), + ), + Some(ExecuteTransactionRequestType::WaitForLocalExecution), + ) + .await + .unwrap(); + + assert_eq!( + *indexer_tx_response.effects.as_ref().unwrap().status(), + IotaExecutionStatus::Success + ); + + assert_eq!( + indexer_tx_response.object_changes.unwrap(), + dry_run_tx_block_resp.object_changes + ) + }); +} + +#[test] +fn dev_inspect_transaction_block() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async { + indexer_wait_for_checkpoint(store, 1).await; + + let sender = cluster.get_address_0(); + let receiver = cluster.get_address_1(); + + let objects = cluster + .rpc_client() + .get_owned_objects(sender, None, None, None) + .await + .unwrap() + .data; + + let (obj_id, seq_num, digest) = objects.first().unwrap().object().unwrap().object_ref(); + + let mut builder = ProgrammableTransactionBuilder::new(); + builder + .transfer_object(receiver, (obj_id, seq_num, digest)) + .unwrap(); + let ptb = builder.finish(); + + let indexer_devinspect_results = client + .dev_inspect_transaction_block( + sender, + Base64::from_bytes(&bcs::to_bytes(&TransactionKind::programmable(ptb)).unwrap()), + None, + None, + None, + ) + .await + .unwrap(); + + assert_eq!( + *indexer_devinspect_results.effects.status(), + IotaExecutionStatus::Success + ); + + let owner = indexer_devinspect_results + .effects + .mutated() + .iter() + .find_map(|obj| (obj.reference.object_id == obj_id).then_some(obj.owner)) + .unwrap(); + + assert_eq!(owner, Owner::AddressOwner(receiver)); + + let latest_checkpoint_seq_number = client + .get_latest_checkpoint_sequence_number() + .await + .unwrap(); + + indexer_wait_for_checkpoint(store, latest_checkpoint_seq_number.into_inner() + 1).await; + + let actual_object_info = client + .get_object(obj_id, Some(IotaObjectDataOptions::new().with_owner())) + .await + .unwrap(); + + assert_eq!( + actual_object_info.data.unwrap().owner.unwrap(), + Owner::AddressOwner(sender), + "The initial owner of the object should not change" + ); + }); +} + +#[test] +fn execute_transaction_block() { + let ApiTestSetup { + runtime, + cluster, + store, + client, + } = ApiTestSetup::get_or_init(); + + runtime.block_on(async { + indexer_wait_for_checkpoint(store, 1).await; + + let addresses = cluster.get_addresses(); + let sender = addresses[2]; + let receiver = addresses[3]; + + let (objects, gas) = get_objects_to_mutate(cluster, sender).await; + + let obj_id = objects[0]; + + let (tx_bytes, signatures) = + prepare_and_sign_tx(sender, receiver, cluster, client, obj_id, gas).await; + + let indexer_tx_response = client + .execute_transaction_block( + tx_bytes, + signatures, + Some(IotaTransactionBlockResponseOptions::new().with_effects()), + Some(ExecuteTransactionRequestType::WaitForLocalExecution), + ) + .await + .unwrap(); + + assert_eq!( + *indexer_tx_response.effects.as_ref().unwrap().status(), + IotaExecutionStatus::Success + ); + + let (seq_num, owner) = indexer_tx_response + .effects + .unwrap() + .mutated() + .iter() + .find_map(|obj| { + (obj.reference.object_id == obj_id).then_some((obj.reference.version, obj.owner)) + }) + .unwrap(); + + assert_eq!(owner, Owner::AddressOwner(receiver)); + + indexer_wait_for_object(client, obj_id, seq_num).await; + + let actual_object_info = client + .get_object(obj_id, Some(IotaObjectDataOptions::new().with_owner())) + .await + .unwrap(); + + assert_eq!( + actual_object_info.data.unwrap().owner.unwrap(), + Owner::AddressOwner(receiver) + ); + }); +} diff --git a/crates/iota-json-rpc-tests/tests/move_utils.rs b/crates/iota-json-rpc-tests/tests/move_utils.rs index aa5a3f947a3..e91299268b9 100644 --- a/crates/iota-json-rpc-tests/tests/move_utils.rs +++ b/crates/iota-json-rpc-tests/tests/move_utils.rs @@ -63,6 +63,7 @@ async fn get_normalized_move_modules_by_package() -> Result<(), anyhow::Error> { "priority_queue", "prover", "random", + "system_admin_cap", "table", "table_vec", "timelock", diff --git a/crates/iota-json-rpc-types/src/iota_move.rs b/crates/iota-json-rpc-types/src/iota_move.rs index 616272a848a..239afb24a09 100644 --- a/crates/iota-json-rpc-types/src/iota_move.rs +++ b/crates/iota-json-rpc-types/src/iota_move.rs @@ -39,7 +39,7 @@ pub type IotaMoveTypeParameterIndex = u16; #[path = "unit_tests/iota_move_tests.rs"] mod iota_move_tests; -#[derive(Serialize, Deserialize, Copy, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Copy, Clone, Debug, JsonSchema, PartialEq)] pub enum IotaMoveAbility { Copy, Drop, @@ -47,33 +47,33 @@ pub enum IotaMoveAbility { Key, } -#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)] pub struct IotaMoveAbilitySet { pub abilities: Vec<IotaMoveAbility>, } -#[derive(Serialize, Deserialize, Copy, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Copy, Clone, Debug, JsonSchema, PartialEq)] pub enum IotaMoveVisibility { Private, Public, Friend, } -#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)] #[serde(rename_all = "camelCase")] pub struct IotaMoveStructTypeParameter { pub constraints: IotaMoveAbilitySet, pub is_phantom: bool, } -#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)] pub struct IotaMoveNormalizedField { pub name: String, #[serde(rename = "type")] pub type_: IotaMoveNormalizedType, } -#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)] #[serde(rename_all = "camelCase")] pub struct IotaMoveNormalizedStruct { pub abilities: IotaMoveAbilitySet, @@ -81,7 +81,7 @@ pub struct IotaMoveNormalizedStruct { pub fields: Vec<IotaMoveNormalizedField>, } -#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)] pub enum IotaMoveNormalizedType { Bool, U8, @@ -105,7 +105,7 @@ pub enum IotaMoveNormalizedType { MutableReference(Box<IotaMoveNormalizedType>), } -#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, PartialEq)] #[serde(rename_all = "camelCase")] pub struct IotaMoveNormalizedFunction { pub visibility: IotaMoveVisibility, @@ -292,14 +292,14 @@ impl From<AbilitySet> for IotaMoveAbilitySet { } } -#[derive(Serialize, Deserialize, Copy, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Copy, Clone, Debug, JsonSchema, PartialEq)] pub enum ObjectValueKind { ByImmutableReference, ByMutableReference, ByValue, } -#[derive(Serialize, Deserialize, Copy, Clone, Debug, JsonSchema)] +#[derive(Serialize, Deserialize, Copy, Clone, Debug, JsonSchema, PartialEq)] pub enum MoveFunctionArgType { Pure, Object(ObjectValueKind), diff --git a/crates/iota-json-rpc/src/coin_api.rs b/crates/iota-json-rpc/src/coin_api.rs index 226c0ba2935..90d9a114c45 100644 --- a/crates/iota-json-rpc/src/coin_api.rs +++ b/crates/iota-json-rpc/src/coin_api.rs @@ -1261,7 +1261,6 @@ mod tests { IotaSystemStateV1, StorageFundV1, SystemParametersV1, ValidatorSetV1, }, }, - system_admin_cap::IotaSystemAdminCap, }; use mockall::predicate; @@ -1428,7 +1427,7 @@ mod tests { validator_low_stake_grace_period: Default::default(), extra_fields: Default::default(), }, - iota_system_admin_cap: IotaSystemAdminCap {}, + iota_system_admin_cap: Default::default(), reference_gas_price: Default::default(), validator_report_records: VecMap { contents: Default::default(), diff --git a/crates/iota-json-rpc/src/read_api.rs b/crates/iota-json-rpc/src/read_api.rs index 2d4eeabc84f..efda39276e8 100644 --- a/crates/iota-json-rpc/src/read_api.rs +++ b/crates/iota-json-rpc/src/read_api.rs @@ -1364,6 +1364,17 @@ fn convert_to_response( response.transaction = Some(tx_block); } + if opts.show_raw_effects { + let raw_effects = cache + .effects + .as_ref() + .map(bcs::to_bytes) + .transpose() + .map_err(|e| anyhow!("Failed to serialize raw effects with error: {e}"))? + .unwrap_or_default(); + response.raw_effects = raw_effects; + } + if opts.show_effects && cache.effects.is_some() { let effects = cache.effects.unwrap().try_into().map_err(|e| { anyhow!( @@ -1388,6 +1399,7 @@ fn convert_to_response( if opts.show_object_changes { response.object_changes = cache.object_changes; } + Ok(response) } diff --git a/crates/iota-swarm-config/tests/snapshots/snapshot_tests__populated_genesis_snapshot_matches-2.snap b/crates/iota-swarm-config/tests/snapshots/snapshot_tests__populated_genesis_snapshot_matches-2.snap index 182f6952a5e..147ad24674c 100644 --- a/crates/iota-swarm-config/tests/snapshots/snapshot_tests__populated_genesis_snapshot_matches-2.snap +++ b/crates/iota-swarm-config/tests/snapshots/snapshot_tests__populated_genesis_snapshot_matches-2.snap @@ -8,7 +8,7 @@ system_state_version: 1 iota_treasury_cap: inner: id: - id: "0x8ee3de003e49874de1d4a8fa31fa832590f9d4182e9020bc43b5cc409567cea1" + id: "0x934856dbf1a6032f66ee5ff2e959767c8efc379e69bd3087e78cdb051df2f876" total_supply: value: "751500000000000000" validators: @@ -244,13 +244,13 @@ validators: next_epoch_primary_address: ~ extra_fields: id: - id: "0xc0c92dca5d810238a2def5421799b42f719718c817962b73b2e22aae0304813f" + id: "0xe8024a1572d13ddd22144a52f5bb90f9d93f0057d8a7f6886833a8558c5f42dc" size: 0 voting_power: 10000 - operation_cap_id: "0x344b856173dc92e3ba4989d2e5f96e654086510778d7427b90548b3f92a51b28" + operation_cap_id: "0xced7229b5da6ab4e03dbd482bfc0d31444f1530d0ae1020d55531f80051034de" gas_price: 1000 staking_pool: - id: "0xec70e0dfed9c09450a1803d08e95aa7042551fe8ae02f8f0c49ffd8843ab6825" + id: "0x7bc82accfac70f4e347e02c215f509b1b22a1ac63f5edd784d16d0e95e1e3840" activation_epoch: 0 deactivation_epoch: ~ iota_balance: 1500000000000000 @@ -258,14 +258,14 @@ validators: value: 0 pool_token_balance: 1500000000000000 exchange_rates: - id: "0xd6886942b693bc96873dc1ebabda3e2a0be80e6ab48cf2f124ba99cbd52b8731" + id: "0xe82a41af6638521838d31f97bc54c191f0ce1a1781c35ac3d9a4e8499494e0c2" size: 1 pending_stake: 0 pending_total_iota_withdraw: 0 pending_pool_token_withdraw: 0 extra_fields: id: - id: "0x6ccdb5ea633e0d8126f63a4430dcbd3b5651be4d19a74b27a1a0f043d400160c" + id: "0x3589b1f00ea0f4019cd46b56d29b2286c1ec783e52e84415008747fb1d8c9043" size: 0 commission_rate: 200 next_epoch_stake: 1500000000000000 @@ -273,27 +273,27 @@ validators: next_epoch_commission_rate: 200 extra_fields: id: - id: "0x22c6efa1e6f62025a5e873e19b4d75b7beef6f548bab11a5b3b8230ad022a525" + id: "0x83acc826eb238b984c7bae9e964952dd72902a031d1f555cc4b0676495fc930e" size: 0 pending_active_validators: contents: - id: "0xebea5fffa12449a0e44a6b69ed50954d05ad3b642627ae2fe494ac9b6bd730e8" + id: "0xb98e2c63a08a2c27b9d14288105e784144c65dfdb081951e9794d385dcdf378b" size: 0 pending_removals: [] staking_pool_mappings: - id: "0x745dca4b1b492018030c48099ceac35209d86cd297345d63a0178175ceca9537" + id: "0x17d4a3fab108e0275cfbd2b1966444e99419185643d340b5d1b425faab103cee" size: 1 inactive_validators: - id: "0xa1d5e645e4394a79b28c4a2b4bb8489082ceba2fb9f697251c6c2b854387d91a" + id: "0xe7da2643c898e967489e2227ed2d36a0c8db61410e937dcfea7d915065736bc8" size: 0 validator_candidates: - id: "0x7075d6832dcaca69cccd9a195b7d319a60b4fc20c31bdc4c3b4b4990a759afca" + id: "0x7c28f48d2427b54a9b018b62a2caaadd39ce209d779396f8ee23a4f7fc8d4901" size: 0 at_risk_validators: contents: [] extra_fields: id: - id: "0x582b6b19ad273a7854f88b5bc9f59f41a95097c9d90520d58fad9e1756d0b568" + id: "0x520c8bed0efe1861657f5b33eea0745aeeabfd4d1887172831a99c4fed274b4d" size: 0 storage_fund: total_object_storage_rebates: @@ -310,8 +310,10 @@ parameters: validator_low_stake_grace_period: 7 extra_fields: id: - id: "0x7e23101a784edba2707785480b6bb5e0e9c5cd43c69023f880e753eada10cafc" + id: "0x4b729e195cfcf8f19c9508866d464aea19e48db9a721114e5a6159d53abf310f" size: 0 +iota_system_admin_cap: + dummy_field: false reference_gas_price: 1000 validator_report_records: contents: [] @@ -325,5 +327,5 @@ safe_mode_non_refundable_storage_fee: 0 epoch_start_timestamp_ms: 10 extra_fields: id: - id: "0x16d6794561f461433658a0ff5fee8eafd4dfc42f7c36168b705829c59318fadc" + id: "0x3ff2b204a8ce9d05936b477dbcf16285afbd069216734afbe1ae0798be0bb0e4" size: 0 diff --git a/crates/iota-types/src/iota_system_state/simtest_iota_system_state_inner.rs b/crates/iota-types/src/iota_system_state/simtest_iota_system_state_inner.rs index 3f88e8be2b4..0316b36075b 100644 --- a/crates/iota-types/src/iota_system_state/simtest_iota_system_state_inner.rs +++ b/crates/iota-types/src/iota_system_state/simtest_iota_system_state_inner.rs @@ -21,6 +21,7 @@ use crate::{ iota_system_state_summary::{IotaSystemStateSummary, IotaValidatorSummary}, }, storage::ObjectStore, + system_admin_cap::IotaSystemAdminCap, }; #[derive(Debug, Serialize, Deserialize, Clone, Eq, PartialEq)] diff --git a/crates/iota-types/src/system_admin_cap.rs b/crates/iota-types/src/system_admin_cap.rs index 0d68982a0f7..b393757b244 100644 --- a/crates/iota-types/src/system_admin_cap.rs +++ b/crates/iota-types/src/system_admin_cap.rs @@ -1,5 +1,4 @@ // Copyright (c) 2024 IOTA Stiftung -// Modifications Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 use move_core_types::{ident_str, identifier::IdentStr}; @@ -17,9 +16,14 @@ mod checked { use super::*; use crate::IOTA_FRAMEWORK_ADDRESS; - // Rust version of the IotaSystemAdminCap type - #[derive(Debug, Serialize, Deserialize, Clone, Eq, PartialEq)] - pub struct IotaSystemAdminCap {} + /// Rust version of the IotaSystemAdminCap type. + #[derive(Debug, Default, Serialize, Deserialize, Clone, Eq, PartialEq)] + pub struct IotaSystemAdminCap { + // This field is required to make a Rust struct compatible with an empty Move one. + // An empty Move struct contains a 1-byte dummy bool field because empty fields are not + // allowed in the bytecode. + dummy_field: bool, + } impl IotaSystemAdminCap { pub fn type_() -> StructTag { diff --git a/crates/iota/src/iota_commands.rs b/crates/iota/src/iota_commands.rs index ed951ecdfb3..f7ea6d1ddc7 100644 --- a/crates/iota/src/iota_commands.rs +++ b/crates/iota/src/iota_commands.rs @@ -756,6 +756,7 @@ async fn start( fullnode_url.clone(), ReaderWriterConfig::writer_mode(None), data_ingestion_path.clone(), + None, ) .await; info!("Indexer in writer mode started"); @@ -766,6 +767,7 @@ async fn start( fullnode_url.clone(), ReaderWriterConfig::reader_mode(indexer_address.to_string()), data_ingestion_path, + None, ) .await; info!("Indexer in reader mode started"); diff --git a/crates/test-cluster/src/lib.rs b/crates/test-cluster/src/lib.rs index c0167e5b082..3dec57c6f1b 100644 --- a/crates/test-cluster/src/lib.rs +++ b/crates/test-cluster/src/lib.rs @@ -70,7 +70,7 @@ use iota_types::{ get_bridge, get_bridge_obj_initial_shared_version, }, committee::{Committee, CommitteeTrait, EpochId}, - crypto::{IotaKeyPair, KeypairTraits, ToFromBytes}, + crypto::{AccountKeyPair, IotaKeyPair, KeypairTraits, ToFromBytes, get_key_pair}, effects::{TransactionEffects, TransactionEvents}, error::IotaResult, governance::MIN_VALIDATOR_JOINING_STAKE_NANOS, @@ -88,6 +88,7 @@ use iota_types::{ CertifiedTransaction, ObjectArg, Transaction, TransactionData, TransactionDataAPI, TransactionKind, }, + utils::to_sender_signed_transaction, }; use jsonrpsee::{ core::RpcResult, @@ -125,13 +126,18 @@ impl FullNodeHandle { } } +struct Faucet { + address: IotaAddress, + keypair: Arc<tokio::sync::Mutex<IotaKeyPair>>, +} + pub struct TestCluster { pub swarm: Swarm, pub wallet: WalletContext, pub fullnode_handle: FullNodeHandle, - pub bridge_authority_keys: Option<Vec<BridgeAuthorityKeyPair>>, pub bridge_server_ports: Option<Vec<u16>>, + faucet: Option<Faucet>, } impl TestCluster { @@ -798,7 +804,7 @@ impl TestCluster { )) } - /// This call sends some funds from the seeded address to the funding + /// This call sends some funds from the seeded faucet address to the funding /// address for the given amount and returns the gas object ref. This /// is useful to construct transactions from the funding address. pub async fn fund_address_and_return_gas( @@ -807,20 +813,46 @@ impl TestCluster { amount: Option<u64>, funding_address: IotaAddress, ) -> ObjectRef { - let context = &self.wallet; - let (sender, gas) = context.get_one_gas_object().await.unwrap().unwrap(); - let tx = context.sign_transaction( - &TestTransactionBuilder::new(sender, gas, rgp) - .transfer_iota(amount, funding_address) - .build(), - ); - context.execute_transaction_must_succeed(tx).await; + let Faucet { address, keypair } = &self + .faucet + .as_ref() + .expect("Faucet not initialized: incompatible with `NetworkConfig`."); + + let keypair = &*keypair.lock().await; - context - .get_one_gas_object_owned_by_address(funding_address) + let gas_ref = *self + .wallet + .get_gas_objects_owned_by_address(*address, None) .await .unwrap() + .first() + .unwrap(); + + let tx_data = TestTransactionBuilder::new(*address, gas_ref, rgp) + .transfer_iota(amount, funding_address) + .build(); + + let signed_transaction = to_sender_signed_transaction(tx_data, keypair); + + let response = self + .iota_client() + .quorum_driver_api() + .execute_transaction_block( + signed_transaction, + IotaTransactionBlockResponseOptions::new().with_effects(), + Some(ExecuteTransactionRequestType::WaitForLocalExecution), + ) + .await + .unwrap(); + + response + .effects .unwrap() + .created() + .first() + .unwrap() + .reference + .to_object_ref() } pub async fn transfer_iota_must_exceed( @@ -1273,6 +1305,24 @@ impl TestClusterBuilder { } pub async fn build(mut self) -> TestCluster { + // We can add a faucet account to the `GenesisConfig` if there was no + // `NetworkConfig` provided. Only either a `GenesisConfig` or a + // `NetworkConfig` can be used to configure and build the cluster. + let faucet = self.network_config.is_none().then(|| { + let (faucet_address, faucet_keypair): (IotaAddress, AccountKeyPair) = get_key_pair(); + let accounts = &mut self.get_or_init_genesis_config().accounts; + accounts.push(AccountConfig { + address: Some(faucet_address), + gas_amounts: vec![DEFAULT_GAS_AMOUNT], + }); + Faucet { + address: faucet_address, + keypair: Arc::new(tokio::sync::Mutex::new(IotaKeyPair::Ed25519( + faucet_keypair, + ))), + } + }); + // All test clusters receive a continuous stream of random JWKs. // If we later use zklogin authenticated transactions in tests we will need to // supply valid JWKs as well. @@ -1335,6 +1385,7 @@ impl TestClusterBuilder { fullnode_handle, bridge_authority_keys: None, bridge_server_ports: None, + faucet, } } diff --git a/docs/site/docusaurus.config.js b/docs/site/docusaurus.config.js index d6d98913a8a..d80dce3890a 100644 --- a/docs/site/docusaurus.config.js +++ b/docs/site/docusaurus.config.js @@ -15,7 +15,7 @@ const config = { title: "IOTA Documentation", tagline: "IOTA is a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by Move", - favicon: "/img/favicon.ico", + favicon: "/icons/favicon.ico", // Set the production url of your site here url: "https://docs.iota.io", @@ -229,7 +229,7 @@ const config = { title: "", logo: { alt: "IOTA Docs Logo", - src: "img/iota-logo.svg", + src: "/logo/iota-logo.svg", }, items: [ { @@ -253,7 +253,7 @@ const config = { footer: { logo: { alt: "IOTA Wiki Logo", - src: "img/iota-logo.svg", + src: "/logo/iota-logo.svg", }, copyright: `Copyright © ${new Date().getFullYear()} <a href='https://www.iota.org/'>IOTA Stiftung</a>, licensed under <a href="https://github.com/iotaledger/iota/blob/main/docs/site/LICENSE">CC BY 4.0</a>. The documentation on this website is adapted from the <a href='https://docs.sui.io/'>SUI Documentation</a>, © 2024 by <a href='https://sui.io/'>SUI Foundation</a>, licensed under <a href="https://github.com/MystenLabs/sui/blob/main/docs/site/LICENSE">CC BY 4.0</a>.`, diff --git a/docs/site/src/components/Quiz/index.tsx b/docs/site/src/components/Quiz/index.tsx index 8762d596503..e6be2da4153 100644 --- a/docs/site/src/components/Quiz/index.tsx +++ b/docs/site/src/components/Quiz/index.tsx @@ -13,9 +13,14 @@ export default function Quiz(_questions) { const [showScore, setShowScore] = useState(false); const [score, setScore] = useState(0); const [clicked, setClicked] = useState(-1); + const [isAnswered, setIsAnswered] = useState(false); const handleAnswerOptionClick = (isCorrect, index) => { + if (isAnswered) return; + setClicked(index); + setIsAnswered(true) + if (isCorrect) { setScore(score + 1); } @@ -28,6 +33,7 @@ export default function Quiz(_questions) { setShowScore(true); } setClicked(-1); + setIsAnswered(false); }, 1000); }; @@ -35,6 +41,7 @@ export default function Quiz(_questions) { setShowScore(false); setScore(0); setCurrentQuestion(0); + setIsAnswered(false); }; return ( @@ -74,7 +81,7 @@ export default function Quiz(_questions) { clicked === index && !answerOption.isCorrect ? 'button--danger' : '' - }`} + } ${isAnswered ? 'button--disabled' : ''}`} key={'answer-' + index} onClick={() => handleAnswerOptionClick(answerOption.isCorrect, index) diff --git a/docs/site/static/icons/favicon.ico b/docs/site/static/icons/favicon.ico new file mode 100644 index 00000000000..61334f976a3 Binary files /dev/null and b/docs/site/static/icons/favicon.ico differ diff --git a/docs/site/static/img/index/blocks.png b/docs/site/static/img/index/blocks.png new file mode 100644 index 00000000000..7b9d69436b7 Binary files /dev/null and b/docs/site/static/img/index/blocks.png differ diff --git a/docs/site/static/logo/iota-logo.svg b/docs/site/static/logo/iota-logo.svg new file mode 100644 index 00000000000..cf2bc325293 --- /dev/null +++ b/docs/site/static/logo/iota-logo.svg @@ -0,0 +1,64 @@ +<svg width="114" height="47" viewBox="0 0 114 47" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g clip-path="url(#clip0_22_3564)"> +<path d="M32.8206 10.3298C34.0157 10.3298 34.9846 9.39968 34.9846 8.25231C34.9846 7.10493 34.0157 6.1748 32.8206 6.1748C31.6254 6.1748 30.6565 7.10493 30.6565 8.25231C30.6565 9.39968 31.6254 10.3298 32.8206 10.3298Z" fill="white"/> +<path d="M35.2551 39.675C36.4502 39.675 37.4191 38.7449 37.4191 37.5975C37.4191 36.4501 36.4502 35.52 35.2551 35.52C34.0599 35.52 33.091 36.4501 33.091 37.5975C33.091 38.7449 34.0599 39.675 35.2551 39.675Z" fill="white"/> +<path d="M33.439 15.5236C34.4421 15.5236 35.2553 14.743 35.2553 13.78C35.2553 12.817 34.4421 12.0364 33.439 12.0364C32.436 12.0364 31.6228 12.817 31.6228 13.78C31.6228 14.743 32.436 15.5236 33.439 15.5236Z" fill="white"/> +<path d="M38.2698 16.1913C39.2729 16.1913 40.0861 15.4107 40.0861 14.4477C40.0861 13.4847 39.2729 12.7041 38.2698 12.7041C37.2668 12.7041 36.4536 13.4847 36.4536 14.4477C36.4536 15.4107 37.2668 16.1913 38.2698 16.1913Z" fill="white"/> +<path d="M32.8208 19.9383C33.6745 19.9383 34.3666 19.2739 34.3666 18.4544C34.3666 17.6348 33.6745 16.9705 32.8208 16.9705C31.9672 16.9705 31.2751 17.6348 31.2751 18.4544C31.2751 19.2739 31.9672 19.9383 32.8208 19.9383Z" fill="white"/> +<path d="M37.6509 20.5692C38.5045 20.5692 39.1966 19.9048 39.1966 19.0853C39.1966 18.2657 38.5045 17.6013 37.6509 17.6013C36.7972 17.6013 36.1051 18.2657 36.1051 19.0853C36.1051 19.9048 36.7972 20.5692 37.6509 20.5692Z" fill="white"/> +<path d="M41.5154 22.016C42.3691 22.016 43.0611 21.3516 43.0611 20.532C43.0611 19.7125 42.3691 19.0481 41.5154 19.0481C40.6617 19.0481 39.9697 19.7125 39.9697 20.532C39.9697 21.3516 40.6617 22.016 41.5154 22.016Z" fill="white"/> +<path d="M36.2212 24.1306C36.9681 24.1306 37.5737 23.5492 37.5737 22.8321C37.5737 22.115 36.9681 21.5337 36.2212 21.5337C35.4742 21.5337 34.8687 22.115 34.8687 22.8321C34.8687 23.5492 35.4742 24.1306 36.2212 24.1306Z" fill="white"/> +<path d="M31.3911 23.4995C32.1381 23.4995 32.7436 22.9181 32.7436 22.201C32.7436 21.4839 32.1381 20.9026 31.3911 20.9026C30.6441 20.9026 30.0386 21.4839 30.0386 22.201C30.0386 22.9181 30.6441 23.4995 31.3911 23.4995Z" fill="white"/> +<path d="M40.1241 25.5771C40.8711 25.5771 41.4766 24.9958 41.4766 24.2787C41.4766 23.5616 40.8711 22.9802 40.1241 22.9802C39.3771 22.9802 38.7716 23.5616 38.7716 24.2787C38.7716 24.9958 39.3771 25.5771 40.1241 25.5771Z" fill="white"/> +<path d="M34.2894 26.8384C34.9297 26.8384 35.4487 26.3402 35.4487 25.7255C35.4487 25.1108 34.9297 24.6125 34.2894 24.6125C33.6492 24.6125 33.1301 25.1108 33.1301 25.7255C33.1301 26.3402 33.6492 26.8384 34.2894 26.8384Z" fill="white"/> +<path d="M38.1924 28.2484C38.8326 28.2484 39.3517 27.7501 39.3517 27.1354C39.3517 26.5207 38.8326 26.0225 38.1924 26.0225C37.5521 26.0225 37.0331 26.5207 37.0331 27.1354C37.0331 27.7501 37.5521 28.2484 38.1924 28.2484Z" fill="white"/> +<path d="M29.4972 26.1705C30.1375 26.1705 30.6565 25.6722 30.6565 25.0575C30.6565 24.4429 30.1375 23.9446 29.4972 23.9446C28.8569 23.9446 28.3379 24.4429 28.3379 25.0575C28.3379 25.6722 28.8569 26.1705 29.4972 26.1705Z" fill="white"/> +<path d="M32.1637 28.6564C32.6972 28.6564 33.1298 28.2412 33.1298 27.729C33.1298 27.2168 32.6972 26.8015 32.1637 26.8015C31.6301 26.8015 31.1976 27.2168 31.1976 27.729C31.1976 28.2412 31.6301 28.6564 32.1637 28.6564Z" fill="white"/> +<path d="M33.8253 31.2163C34.2949 31.2163 34.6755 30.8509 34.6755 30.4002C34.6755 29.9494 34.2949 29.584 33.8253 29.584C33.3558 29.584 32.9752 29.9494 32.9752 30.4002C32.9752 30.8509 33.3558 31.2163 33.8253 31.2163Z" fill="white"/> +<path d="M31.7772 31.7359C32.1614 31.7359 32.4728 31.437 32.4728 31.0682C32.4728 30.6994 32.1614 30.4004 31.7772 30.4004C31.3931 30.4004 31.0817 30.6994 31.0817 31.0682C31.0817 31.437 31.3931 31.7359 31.7772 31.7359Z" fill="white"/> +<path d="M29.9609 29.8064C30.4304 29.8064 30.8111 29.441 30.8111 28.9902C30.8111 28.5395 30.4304 28.1741 29.9609 28.1741C29.4914 28.1741 29.1108 28.5395 29.1108 28.9902C29.1108 29.441 29.4914 29.8064 29.9609 29.8064Z" fill="white"/> +<path d="M27.3336 28.0258C27.8672 28.0258 28.2997 27.6106 28.2997 27.0984C28.2997 26.5861 27.8672 26.1709 27.3336 26.1709C26.8001 26.1709 26.3675 26.5861 26.3675 27.0984C26.3675 27.6106 26.8001 28.0258 27.3336 28.0258Z" fill="white"/> +<path d="M27.2946 21.051C27.8281 21.051 28.2607 20.6357 28.2607 20.1235C28.2607 19.6113 27.8281 19.196 27.2946 19.196C26.761 19.196 26.3285 19.6113 26.3285 20.1235C26.3285 20.6357 26.761 21.051 27.2946 21.051Z" fill="white"/> +<path d="M27.7197 17.7864C28.1892 17.7864 28.5698 17.421 28.5698 16.9702C28.5698 16.5195 28.1892 16.1541 27.7197 16.1541C27.2502 16.1541 26.8695 16.5195 26.8695 16.9702C26.8695 17.421 27.2502 17.7864 27.7197 17.7864Z" fill="white"/> +<path d="M28.6473 15.1153C29.0315 15.1153 29.3429 14.8164 29.3429 14.4476C29.3429 14.0788 29.0315 13.7798 28.6473 13.7798C28.2631 13.7798 27.9517 14.0788 27.9517 14.4476C27.9517 14.8164 28.2631 15.1153 28.6473 15.1153Z" fill="white"/> +<path d="M27.0242 13.8542C27.4937 13.8542 27.8744 13.4888 27.8744 13.0381C27.8744 12.5873 27.4937 12.2219 27.0242 12.2219C26.5547 12.2219 26.1741 12.5873 26.1741 13.0381C26.1741 13.4888 26.5547 13.8542 27.0242 13.8542Z" fill="white"/> +<path d="M36.0281 30.0659C36.5616 30.0659 36.9942 29.6506 36.9942 29.1384C36.9942 28.6262 36.5616 28.2109 36.0281 28.2109C35.4945 28.2109 35.062 28.6262 35.062 29.1384C35.062 29.6506 35.4945 30.0659 36.0281 30.0659Z" fill="white"/> +<path d="M24.8215 12.7783C25.3551 12.7783 25.7876 12.363 25.7876 11.8508C25.7876 11.3386 25.3551 10.9233 24.8215 10.9233C24.288 10.9233 23.8554 11.3386 23.8554 11.8508C23.8554 12.363 24.288 12.7783 24.8215 12.7783Z" fill="white"/> +<path d="M25.4785 16.7109C26.012 16.7109 26.4446 16.2956 26.4446 15.7834C26.4446 15.2712 26.012 14.856 25.4785 14.856C24.9449 14.856 24.5124 15.2712 24.5124 15.7834C24.5124 16.2956 24.9449 16.7109 25.4785 16.7109Z" fill="white"/> +<path d="M24.3968 20.4576C25.037 20.4576 25.5561 19.9593 25.5561 19.3446C25.5561 18.73 25.037 18.2317 24.3968 18.2317C23.7565 18.2317 23.2375 18.73 23.2375 19.3446C23.2375 19.9593 23.7565 20.4576 24.3968 20.4576Z" fill="white"/> +<path d="M20.8798 20.4572C21.6267 20.4572 22.2323 19.8759 22.2323 19.1588C22.2323 18.4417 21.6267 17.8604 20.8798 17.8604C20.1328 17.8604 19.5272 18.4417 19.5272 19.1588C19.5272 19.8759 20.1328 20.4572 20.8798 20.4572Z" fill="white"/> +<path d="M16.784 21.3482C17.6377 21.3482 18.3298 20.6839 18.3298 19.8643C18.3298 19.0448 17.6377 18.3804 16.784 18.3804C15.9303 18.3804 15.2383 19.0448 15.2383 19.8643C15.2383 20.6839 15.9303 21.3482 16.784 21.3482Z" fill="white"/> +<path d="M12.3013 23.4631C13.3044 23.4631 14.1176 22.6824 14.1176 21.7194C14.1176 20.7565 13.3044 19.9758 12.3013 19.9758C11.2983 19.9758 10.4851 20.7565 10.4851 21.7194C10.4851 22.6824 11.2983 23.4631 12.3013 23.4631Z" fill="white"/> +<path d="M7.66403 27.0241C8.85918 27.0241 9.82805 26.094 9.82805 24.9466C9.82805 23.7993 8.85918 22.8691 7.66403 22.8691C6.46887 22.8691 5.5 23.7993 5.5 24.9466C5.5 26.094 6.46887 27.0241 7.66403 27.0241Z" fill="white"/> +<path d="M10.4854 19.1222C11.4885 19.1222 12.3017 18.3416 12.3017 17.3786C12.3017 16.4157 11.4885 15.635 10.4854 15.635C9.48234 15.635 8.66918 16.4157 8.66918 17.3786C8.66918 18.3416 9.48234 19.1222 10.4854 19.1222Z" fill="white"/> +<path d="M14.9675 17.0074C15.8212 17.0074 16.5132 16.343 16.5132 15.5235C16.5132 14.7039 15.8212 14.0396 14.9675 14.0396C14.1138 14.0396 13.4217 14.7039 13.4217 15.5235C13.4217 16.343 14.1138 17.0074 14.9675 17.0074Z" fill="white"/> +<path d="M14.3104 13.0748C15.1641 13.0748 15.8561 12.4104 15.8561 11.5909C15.8561 10.7713 15.1641 10.1069 14.3104 10.1069C13.4567 10.1069 12.7647 10.7713 12.7647 11.5909C12.7647 12.4104 13.4567 13.0748 14.3104 13.0748Z" fill="white"/> +<path d="M18.4069 12.1845C19.1538 12.1845 19.7594 11.6032 19.7594 10.8861C19.7594 10.169 19.1538 9.58765 18.4069 9.58765C17.6599 9.58765 17.0544 10.169 17.0544 10.8861C17.0544 11.6032 17.6599 12.1845 18.4069 12.1845Z" fill="white"/> +<path d="M21.9231 12.1846C22.5634 12.1846 23.0824 11.6864 23.0824 11.0717C23.0824 10.457 22.5634 9.95874 21.9231 9.95874C21.2828 9.95874 20.7638 10.457 20.7638 11.0717C20.7638 11.6864 21.2828 12.1846 21.9231 12.1846Z" fill="white"/> +<path d="M22.5802 16.1168C23.2205 16.1168 23.7395 15.6185 23.7395 15.0038C23.7395 14.3892 23.2205 13.8909 22.5802 13.8909C21.94 13.8909 21.4209 14.3892 21.4209 15.0038C21.4209 15.6185 21.94 16.1168 22.5802 16.1168Z" fill="white"/> +<path d="M19.0638 16.1543C19.8108 16.1543 20.4164 15.5729 20.4164 14.8558C20.4164 14.1387 19.8108 13.5574 19.0638 13.5574C18.3169 13.5574 17.7113 14.1387 17.7113 14.8558C17.7113 15.5729 18.3169 16.1543 19.0638 16.1543Z" fill="white"/> +<path d="M15.238 26.0223C15.6221 26.0223 15.9336 25.7233 15.9336 25.3545C15.9336 24.9857 15.6221 24.6868 15.238 24.6868C14.8538 24.6868 14.5424 24.9857 14.5424 25.3545C14.5424 25.7233 14.8538 26.0223 15.238 26.0223Z" fill="white"/> +<path d="M18.0204 25.6887C18.49 25.6887 18.8706 25.3233 18.8706 24.8726C18.8706 24.4218 18.49 24.0564 18.0204 24.0564C17.5509 24.0564 17.1703 24.4218 17.1703 24.8726C17.1703 25.3233 17.5509 25.6887 18.0204 25.6887Z" fill="white"/> +<path d="M21.073 24.5759C21.6066 24.5759 22.0391 24.1606 22.0391 23.6484C22.0391 23.1362 21.6066 22.7209 21.073 22.7209C20.5395 22.7209 20.1069 23.1362 20.1069 23.6484C20.1069 24.1606 20.5395 24.5759 21.073 24.5759Z" fill="white"/> +<path d="M21.8073 27.5435C22.4475 27.5435 22.9666 27.0452 22.9666 26.4306C22.9666 25.8159 22.4475 25.3176 21.8073 25.3176C21.167 25.3176 20.648 25.8159 20.648 26.4306C20.648 27.0452 21.167 27.5435 21.8073 27.5435Z" fill="white"/> +<path d="M18.098 28.248C18.6316 28.248 19.0641 27.8327 19.0641 27.3205C19.0641 26.8083 18.6316 26.3931 18.098 26.3931C17.5645 26.3931 17.1319 26.8083 17.1319 27.3205C17.1319 27.8327 17.5645 28.248 18.098 28.248Z" fill="white"/> +<path d="M14.8129 28.2109C15.2824 28.2109 15.663 27.8455 15.663 27.3948C15.663 26.944 15.2824 26.5786 14.8129 26.5786C14.3434 26.5786 13.9627 26.944 13.9627 27.3948C13.9627 27.8455 14.3434 28.2109 14.8129 28.2109Z" fill="white"/> +<path d="M14.8513 30.7709C15.3849 30.7709 15.8174 30.3557 15.8174 29.8435C15.8174 29.3313 15.3849 28.916 14.8513 28.916C14.3178 28.916 13.8852 29.3313 13.8852 29.8435C13.8852 30.3557 14.3178 30.7709 14.8513 30.7709Z" fill="white"/> +<path d="M18.7932 31.2532C19.4334 31.2532 19.9525 30.755 19.9525 30.1403C19.9525 29.5256 19.4334 29.0273 18.7932 29.0273C18.1529 29.0273 17.6339 29.5256 17.6339 30.1403C17.6339 30.755 18.1529 31.2532 18.7932 31.2532Z" fill="white"/> +<path d="M23.3921 30.771C24.139 30.771 24.7446 30.1896 24.7446 29.4725C24.7446 28.7554 24.139 28.1741 23.3921 28.1741C22.6451 28.1741 22.0396 28.7554 22.0396 29.4725C22.0396 30.1896 22.6451 30.771 23.3921 30.771Z" fill="white"/> +<path d="M26.0965 33.9981C26.9502 33.9981 27.6422 33.3338 27.6422 32.5142C27.6422 31.6947 26.9502 31.0303 26.0965 31.0303C25.2428 31.0303 24.5508 31.6947 24.5508 32.5142C24.5508 33.3338 25.2428 33.9981 26.0965 33.9981Z" fill="white"/> +<path d="M20.4163 34.4438C21.1633 34.4438 21.7688 33.8625 21.7688 33.1454C21.7688 32.4283 21.1633 31.8469 20.4163 31.8469C19.6694 31.8469 19.0638 32.4283 19.0638 33.1454C19.0638 33.8625 19.6694 34.4438 20.4163 34.4438Z" fill="white"/> +<path d="M17.2088 36.9663C17.9557 36.9663 18.5613 36.3849 18.5613 35.6678C18.5613 34.9507 17.9557 34.3694 17.2088 34.3694C16.4618 34.3694 15.8562 34.9507 15.8562 35.6678C15.8562 36.3849 16.4618 36.9663 17.2088 36.9663Z" fill="white"/> +<path d="M19.8751 40.2311C20.7288 40.2311 21.4208 39.5667 21.4208 38.7471C21.4208 37.9276 20.7288 37.2632 19.8751 37.2632C19.0214 37.2632 18.3293 37.9276 18.3293 38.7471C18.3293 39.5667 19.0214 40.2311 19.8751 40.2311Z" fill="white"/> +<path d="M26.9857 40.8249C27.9887 40.8249 28.8019 40.0442 28.8019 39.0813C28.8019 38.1183 27.9887 37.3376 26.9857 37.3376C25.9826 37.3376 25.1694 38.1183 25.1694 39.0813C25.1694 40.0442 25.9826 40.8249 26.9857 40.8249Z" fill="white"/> +<path d="M23.0826 37.7081C23.9363 37.7081 24.6283 37.0437 24.6283 36.2242C24.6283 35.4046 23.9363 34.7402 23.0826 34.7402C22.2289 34.7402 21.5369 35.4046 21.5369 36.2242C21.5369 37.0437 22.2289 37.7081 23.0826 37.7081Z" fill="white"/> +<path d="M29.9613 37.1152C30.9644 37.1152 31.7776 36.3345 31.7776 35.3715C31.7776 34.4086 30.9644 33.6279 29.9613 33.6279C28.9583 33.6279 28.1451 34.4086 28.1451 35.3715C28.1451 36.3345 28.9583 37.1152 29.9613 37.1152Z" fill="white"/> +<path d="M15.5857 33.7762C16.2259 33.7762 16.745 33.2779 16.745 32.6632C16.745 32.0486 16.2259 31.5503 15.5857 31.5503C14.9454 31.5503 14.4264 32.0486 14.4264 32.6632C14.4264 33.2779 14.9454 33.7762 15.5857 33.7762Z" fill="white"/> +<path d="M68.3203 30.5L64.7344 13.0039H67.5703L69.4922 23.0117L70.2305 27.6172H70.4062L74.0977 13.0039H77.5312L81.2812 27.6406H81.4219L82.1602 23.0352L84.0586 13.0039H86.8711L83.2969 30.5H79.6641L75.9023 16.0742H75.7617L71.9414 30.5H68.3203ZM91.5117 15.8164H89.0625V12.8398H91.5117V15.8164ZM91.5117 30.5H89.0625V17.8789H91.5117V30.5ZM106.723 30.5H103.863L99.9258 24.5469L97.8867 26.6328V30.5H95.3906V12.8398H97.8867V23.5156L103.336 17.8789H106.477L101.625 22.8242L106.723 30.5ZM111.246 15.8164H108.797V12.8398H111.246V15.8164ZM111.246 30.5H108.797V17.8789H111.246V30.5Z" fill="white"/> +</g> +<defs> +<clipPath id="clip0_22_3564"> +<rect width="113" height="46.2" fill="white" transform="translate(0.5 0.399902)"/> +</clipPath> +</defs> +</svg> diff --git a/sdk/dapp-kit/src/components/icons/IotaIcon.tsx b/sdk/dapp-kit/src/components/icons/IotaIcon.tsx index 205cd3fc9f8..312d7620c31 100644 --- a/sdk/dapp-kit/src/components/icons/IotaIcon.tsx +++ b/sdk/dapp-kit/src/components/icons/IotaIcon.tsx @@ -6,13 +6,17 @@ import type { ComponentProps } from 'react'; export function IotaIcon(props: ComponentProps<'svg'>) { return ( - <svg width={28} height={28} fill="none" xmlns="http://www.w3.org/2000/svg" {...props}> - <rect width={28} height={28} rx={6} fill="#6FBCF0" /> + <svg + xmlns="http://www.w3.org/2000/svg" + width="28px" + height="28px" + fill="none" + viewBox="0 0 24 24" + {...props} + > <path - fillRule="evenodd" - clipRule="evenodd" - d="M7.942 20.527A6.875 6.875 0 0 0 13.957 24c2.51 0 4.759-1.298 6.015-3.473a6.875 6.875 0 0 0 0-6.945l-5.29-9.164a.837.837 0 0 0-1.45 0l-5.29 9.164a6.875 6.875 0 0 0 0 6.945Zm4.524-11.75 1.128-1.953a.418.418 0 0 1 .725 0l4.34 7.516a5.365 5.365 0 0 1 .449 4.442 4.675 4.675 0 0 0-.223-.73c-.599-1.512-1.954-2.68-4.029-3.47-1.426-.54-2.336-1.336-2.706-2.364-.476-1.326.021-2.77.316-3.44Zm-1.923 3.332L9.255 14.34a5.373 5.373 0 0 0 0 5.43 5.373 5.373 0 0 0 4.702 2.714 5.38 5.38 0 0 0 3.472-1.247c.125-.314.51-1.462.034-2.646-.44-1.093-1.5-1.965-3.15-2.594-1.864-.707-3.076-1.811-3.6-3.28a4.601 4.601 0 0 1-.17-.608Z" - fill="#fff" + fill="#171d26" + d="M18.27 2.259c0 .695-.568 1.259-1.268 1.259s-1.267-.564-1.267-1.259S16.302 1 17.002 1s1.268.564 1.268 1.259m1.425 17.785c0 .695-.568 1.259-1.268 1.259s-1.267-.564-1.267-1.26c0-.695.567-1.258 1.267-1.258s1.268.563 1.268 1.259m-2.33-13.379a1.06 1.06 0 0 0 1.063-1.056 1.06 1.06 0 0 0-1.063-1.057A1.06 1.06 0 0 0 16.3 5.61a1.06 1.06 0 0 0 1.064 1.056Zm3.891-.651a1.06 1.06 0 0 1-1.063 1.056 1.06 1.06 0 0 1-1.064-1.056 1.06 1.06 0 0 1 1.064-1.057 1.06 1.06 0 0 1 1.063 1.057m-4.253 3.329c.5 0 .905-.403.905-.9 0-.496-.405-.9-.905-.9s-.906.404-.906.9c0 .497.406.9.906.9m3.734-.52c0 .497-.405.9-.905.9a.903.903 0 0 1-.906-.9c0-.496.405-.9.906-.9.5 0 .905.404.905.9m1.357 1.777c.5 0 .906-.402.906-.899s-.405-.9-.906-.9c-.5 0-.905.403-.905.9s.405.9.905.9Zm-2.309.495a.79.79 0 0 1-.792.787.79.79 0 0 1-.791-.787c0-.434.354-.786.791-.786s.792.352.792.786m-3.62.404a.79.79 0 0 0 .792-.787.79.79 0 0 0-.792-.786.79.79 0 0 0-.791.786c0 .435.354.787.791.787m5.907.471a.79.79 0 0 1-.791.787.79.79 0 0 1-.792-.786.79.79 0 0 1 .792-.787.79.79 0 0 1 .791.787Zm-4.21 1.554c.375 0 .68-.302.68-.675a.677.677 0 0 0-.68-.675.68.68 0 0 0-.68.675c0 .373.304.675.68.675m2.968.178a.68.68 0 0 1-.68.676.677.677 0 0 1-.68-.676c0-.373.304-.675.68-.675.375 0 .68.302.68.675m-5.774-.582c.375 0 .68-.302.68-.675a.68.68 0 0 0-.68-.675.68.68 0 0 0-.68.675c0 .373.304.675.68.675m2.127.943c0 .31-.254.561-.566.561a.564.564 0 0 1-.566-.562c0-.31.253-.561.566-.561s.566.251.566.562m.407 2.114a.496.496 0 0 0 .498-.494.496.496 0 0 0-.498-.495.496.496 0 0 0-.498.495c0 .273.223.494.498.494m-.791-.09a.407.407 0 0 1-.408.405.407.407 0 0 1-.408-.405c0-.223.182-.405.408-.405s.408.181.408.405m-1.472-.765a.496.496 0 0 0 .498-.494.496.496 0 0 0-.498-.495.496.496 0 0 0-.498.495c0 .273.223.494.498.494m-.973-1.64c0 .31-.254.562-.566.562a.564.564 0 0 1-.566-.562c0-.31.253-.562.566-.562s.566.251.566.562m-.588-3.666a.564.564 0 0 0 .566-.562.564.564 0 0 0-.566-.562.564.564 0 0 0-.565.562c0 .31.253.562.565.562m.745-2.473a.496.496 0 0 1-.497.494.496.496 0 0 1-.498-.494c0-.273.223-.494.498-.494s.498.22.498.494Zm.047-1.123a.406.406 0 0 0 .407-.406.406.406 0 0 0-.407-.405.407.407 0 0 0-.408.405c0 .224.182.406.408.406m-.452-1.26a.496.496 0 0 1-.498.494.496.496 0 0 1-.498-.494c0-.273.223-.494.498-.494s.498.22.498.494m4.776 10.32a.564.564 0 0 0 .566-.561.564.564 0 0 0-.566-.562.564.564 0 0 0-.566.562c0 .31.253.562.566.562ZM12.883 4.439c0 .31-.254.562-.566.562a.564.564 0 0 1-.566-.562c0-.31.254-.562.566-.562s.566.251.566.562m-.18 2.945a.564.564 0 0 0 .566-.562.564.564 0 0 0-.566-.561.564.564 0 0 0-.566.561c0 .31.253.562.566.562m.045 1.597a.677.677 0 0 1-.68.676.68.68 0 0 1-.679-.676c0-.373.304-.675.68-.675.375 0 .68.302.68.675Zm-2.74.676a.79.79 0 0 0 .791-.786.79.79 0 0 0-.791-.787.79.79 0 0 0-.792.787c0 .434.354.786.792.786m-1.494-.36c0 .497-.405.9-.905.9a.903.903 0 0 1-.906-.9c0-.497.406-.9.906-.9s.905.403.905.9m-3.529 2.18a1.06 1.06 0 0 0 1.063-1.056 1.06 1.06 0 0 0-1.063-1.056A1.06 1.06 0 0 0 3.92 10.42a1.06 1.06 0 0 0 1.064 1.056Zm-1.45.9c0 .696-.568 1.26-1.268 1.26S1 13.073 1 12.377c0-.695.567-1.259 1.267-1.259s1.268.564 1.268 1.26Zm.386-3.531A1.06 1.06 0 0 0 4.985 7.79 1.06 1.06 0 0 0 3.92 6.733 1.06 1.06 0 0 0 2.858 7.79 1.06 1.06 0 0 0 3.92 8.846Zm3.53-2.181c0 .497-.405.9-.906.9a.903.903 0 0 1-.905-.9c0-.496.405-.9.905-.9s.906.404.906.9M6.162 5.182c.5 0 .905-.403.905-.9 0-.496-.405-.9-.905-.9s-.906.404-.906.9c0 .497.406.9.906.9m3.19-1.326a.79.79 0 0 1-.791.787.79.79 0 0 1-.792-.787c0-.434.354-.786.792-.786.437 0 .791.352.791.786m1.268.788c.375 0 .68-.303.68-.675a.677.677 0 0 0-.68-.676.68.68 0 0 0-.68.675c0 .373.304.676.68.676m1.063 1.708a.68.68 0 0 1-.68.675.677.677 0 0 1-.68-.675c0-.373.305-.675.68-.675s.68.302.68.675m-2.739.695a.79.79 0 0 0 .792-.786.79.79 0 0 0-.792-.786.79.79 0 0 0-.791.786c0 .434.354.786.791.786m-1.832 5.578a.407.407 0 0 1-.408.405.407.407 0 0 1-.408-.405c0-.223.182-.405.408-.405s.408.181.408.405m1.221.201a.496.496 0 0 0 .497-.494.496.496 0 0 0-.497-.495.496.496 0 0 0-.498.495c0 .273.223.494.498.494m2.354-1.236c0 .31-.253.562-.565.562a.564.564 0 0 1-.566-.562c0-.31.253-.562.566-.562s.565.252.565.562m-.135 2.361c.375 0 .68-.302.68-.675a.677.677 0 0 0-.68-.675.677.677 0 0 0-.68.675c0 .373.304.675.68.675m-1.608-.135c0 .31-.253.562-.566.562a.564.564 0 0 1-.565-.562c0-.31.253-.562.565-.562.313 0 .566.252.566.562m-2.488.538a.496.496 0 0 0 .498-.494.496.496 0 0 0-.498-.495.496.496 0 0 0-.498.495c0 .273.223.494.498.494m.588.991c0 .31-.254.562-.566.562a.564.564 0 0 1-.566-.562c0-.31.253-.562.566-.562s.566.252.566.562m1.742.855c.376 0 .68-.303.68-.675a.677.677 0 0 0-.68-.676.677.677 0 0 0-.68.675c0 .373.305.676.68.676m3.484-1.08a.79.79 0 0 1-.79.786.79.79 0 0 1-.792-.786c0-.435.354-.787.791-.787s.792.352.792.787Zm.794 2.743c.5 0 .906-.402.906-.9 0-.496-.406-.899-.906-.899s-.905.403-.905.9.405.9.905.9Zm-2.536-.518a.79.79 0 0 1-.792.786.79.79 0 0 1-.792-.787.79.79 0 0 1 .792-.786.79.79 0 0 1 .792.787m-2.669 2.316a.79.79 0 0 0 .791-.786.79.79 0 0 0-.792-.786.79.79 0 0 0-.791.786c0 .434.354.786.792.786m2.466 1.079c0 .497-.405.9-.905.9a.903.903 0 0 1-.906-.9c0-.496.405-.9.906-.9.5 0 .905.404.905.9M13.584 22a1.06 1.06 0 0 0 1.064-1.056 1.06 1.06 0 0 0-1.064-1.057 1.06 1.06 0 0 0-1.063 1.057A1.06 1.06 0 0 0 13.584 22m-1.379-2.788c0 .497-.405.9-.905.9a.903.903 0 0 1-.906-.9c0-.497.405-.9.905-.9s.906.403.906.9m3.123.54a1.06 1.06 0 0 0 1.063-1.057 1.06 1.06 0 0 0-1.063-1.056 1.06 1.06 0 0 0-1.064 1.056 1.06 1.06 0 0 0 1.064 1.057m-7.741-2.699a.677.677 0 0 1-.68.676.677.677 0 0 1-.68-.676c0-.373.305-.675.68-.675s.68.302.68.675" /> </svg> );