Skip to content

Commit

Permalink
chore: move sapi to its own package (#1779)
Browse files Browse the repository at this point in the history
* chore: move sapi to its own package

* chore: cleanup

* chore: cleanup

* chore: comment about nonce
  • Loading branch information
0xKheops authored Jan 21, 2025
1 parent 3e1c3c3 commit d4ebb87
Show file tree
Hide file tree
Showing 57 changed files with 1,604 additions and 731 deletions.
3 changes: 2 additions & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"extension-core",
"extension-shared",
"playground",
"talisman-ui"
"talisman-ui",
"sapi"
]
}
1 change: 1 addition & 0 deletions apps/extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@
"dompurify": "^3.1.7",
"extension-core": "workspace:*",
"extension-shared": "workspace:*",
"sapi": "workspace:*",
"framer-motion": "11.11.9",
"highlight.js": "11.10.0",
"html-react-parser": "5.1.18",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import { HexString } from "@polkadot/util/types"
import { papiStringify } from "@talismn/scale"
import { useQuery } from "@tanstack/react-query"
import { useCallback, useEffect, useMemo } from "react"
import { DecodedCall, ScaleApi } from "sapi"

import { Address, isJsonPayload, SubstrateSigningRequest } from "@extension/core"
import { log } from "@extension/shared"
import { provideContext } from "@talisman/util/provideContext"
import { api } from "@ui/api"
import { useBalancesHydrate, useChainByGenesisHash } from "@ui/state"
import { getExtrinsicDispatchInfo } from "@ui/util/getExtrinsicDispatchInfo"
import { DecodedCall, ScaleApi } from "@ui/util/scaleApi"

import { useSubstratePayloadMetadataSuspense } from "../../../hooks/useSubstratePayloadMetadata"
import { useAnySigningRequest } from "./AnySignRequestContext"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useMemo } from "react"

import { DecodedCall } from "@ui/util/scaleApi"
import { DecodedCall } from "sapi"

import { DecodedBatchArgs, DecodedCallComponent, isBatchCall } from "../types"
import { SubSignDecodedBatchDrawer } from "./SubSignDecodedBatchDrawer"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import { ChevronLeftIcon, ChevronRightIcon } from "@talismn/icons"
import { SignerPayloadJSON } from "extension-core"
import { FC } from "react"
import { useTranslation } from "react-i18next"
import { ScaleApi } from "sapi"
import { Button, Drawer } from "talisman-ui"

import { ScrollContainer } from "@talisman/components/ScrollContainer"
import { ScaleApi } from "@ui/util/scaleApi"

import { useSubSignDecodedBatchDrawer } from "./SubSignDecodedBatchDrawerContext"
import { SubSignDecodedCallContent } from "./SubSignDecodedCallContent"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useCallback, useEffect, useMemo, useState } from "react"
import { DecodedCall } from "sapi"

import { provideContext } from "@talisman/util/provideContext"
import { DecodedCall } from "@ui/util/scaleApi"

import { DecodedBatchCall } from "../types"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { FC } from "react"
import { DecodedCall } from "sapi"

import { FallbackErrorBoundary } from "@talisman/components/FallbackErrorBoundary"
import { DecodedCall } from "@ui/util/scaleApi"

import { SUMMARY_COMPONENTS } from "../summary/calls"
import { DecodedCallComponent, SummaryButtonDisplayMode } from "../types"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import { marked } from "marked"
import { Binary } from "polkadot-api"
import { FC, Suspense, useMemo } from "react"
import { useTranslation } from "react-i18next"
import { DecodedCall, ScaleApi } from "sapi"

import { CodeBlock } from "@talisman/components/CodeBlock"
import { FallbackErrorBoundary } from "@talisman/components/FallbackErrorBoundary"
import { DecodedCall, ScaleApi } from "@ui/util/scaleApi"

import { SubSignDecodedCallSummaryBlock } from "./SubSignDecodedCallSummaryBlock"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import { XIcon } from "@talismn/icons"
import { SignerPayloadJSON } from "extension-core"
import { FC } from "react"
import { useTranslation } from "react-i18next"
import { DecodedCall, ScaleApi } from "sapi"
import { Button, Drawer, IconButton } from "talisman-ui"

import { ScrollContainer } from "@talisman/components/ScrollContainer"
import { DecodedCall, ScaleApi } from "@ui/util/scaleApi"

import { SubSignDecodedCallContent } from "./SubSignDecodedCallContent"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import { useSuspenseQuery } from "@tanstack/react-query"
import { Address } from "extension-core"
import { useMemo } from "react"
import { Trans, useTranslation } from "react-i18next"
import { ScaleApi } from "sapi"

import { useChain, useToken } from "@ui/state"
import { ScaleApi } from "@ui/util/scaleApi"

import { DecodedCallSummaryComponent, DecodedCallSummaryComponentDefs } from "../../types"
import { getAddressFromMultiAddress } from "../../util/getAddressFromMultiAddress"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import { useSuspenseQuery } from "@tanstack/react-query"
import { Binary } from "polkadot-api"
import { FC, useMemo } from "react"
import { Trans, useTranslation } from "react-i18next"
import { ScaleApi } from "sapi"

import { cleanupNomPoolName } from "@ui/domains/Staking/helpers"
import { useChain } from "@ui/state"
import { ScaleApi } from "@ui/util/scaleApi"

import { DecodedCallSummaryComponent, DecodedCallSummaryComponentDefs } from "../../types"
import { SummaryContainer, SummaryContent, SummarySeparator } from "../shared/SummaryContainer"
Expand Down
3 changes: 1 addition & 2 deletions apps/extension/src/ui/domains/Sign/Substrate/types.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { PolkadotCalls } from "@polkadot-api/descriptors"
import { SignerPayloadJSON } from "extension-core"
import { FC } from "react"

import { DecodedCall, ScaleApi } from "@ui/util/scaleApi"
import { DecodedCall, ScaleApi } from "sapi"

export type DecodedBatchCall =
| {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { PolkadotConstants } from "@polkadot-api/descriptors"
import { capitalize } from "lodash"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

export const getConvictionVotingTrackName = (sapi: ScaleApi, trackId: number): string | null => {
const tracks = sapi.getConstant("Referenda", "Tracks") as PolkadotConstants["Referenda"]["Tracks"]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useMemo } from "react"

import { DecodedCall } from "@ui/util/scaleApi"
import { DecodedCall } from "sapi"

import { DecodedCallComponentDefs } from "../types"

Expand Down
3 changes: 1 addition & 2 deletions apps/extension/src/ui/domains/Staking/helpers.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { Enum } from "@polkadot-api/substrate-bindings"
import { range } from "lodash"
import { Binary } from "polkadot-api"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

export const getStakingErasPerYear = (sapi: ScaleApi) => {
const MS_PER_YEAR = 1000n * 60n * 60n * 24n * 365n
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { ChainId } from "extension-core"
import { useEffect, useMemo, useState } from "react"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

import { useGetLatestBlockNumber } from "../../shared/useGetLatestBlockNumber"
import { useGetBittensorTotalHotkeyColdkeyStakes } from "./useGetBittensorTotalHotkeyColdkeyStakes"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { useQuery } from "@tanstack/react-query"
import { useMemo } from "react"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

import { getBittensorStakingPayload } from "../../helpers"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useQuery } from "@tanstack/react-query"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

type GetBittensorTotalHotkeyColdkeyStakes = {
sapi: ScaleApi | undefined | null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useQuery } from "@tanstack/react-query"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

type GetBittensorUnbondPayload = {
sapi: ScaleApi | undefined | null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { papiStringify } from "@talismn/scale"
import { useQuery } from "@tanstack/react-query"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

import { NomPoolMember } from "../../types"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { useQuery } from "@tanstack/react-query"
import { useMemo } from "react"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

import { getNomPoolStakingPayload } from "../../helpers"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { Enum } from "@polkadot-api/substrate-bindings"
import { papiStringify } from "@talismn/scale"
import { useQuery } from "@tanstack/react-query"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

import { NomPoolMember } from "../../types"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import { TokenId } from "@talismn/chaindata-provider"
import { useQuery } from "@tanstack/react-query"
import { log } from "extension-shared"
import { useMemo } from "react"
import { ScaleApi } from "sapi"

import { usePortfolioNavigation } from "@ui/domains/Portfolio/usePortfolioNavigation"
import { useScaleApi } from "@ui/hooks/sapi/useScaleApi"
import { useBalances, useToken } from "@ui/state"
import { ScaleApi } from "@ui/util/scaleApi"

import { getStakingEraDurationMs } from "../../helpers"
import { useGetMinJoinBond } from "../../shared/useGetMinJoinBond"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { SignerPayloadJSON } from "@polkadot/types/types"
import { useQuery } from "@tanstack/react-query"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

type GetNomPoolFeeEstimate = {
sapi: ScaleApi | undefined | null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useQuery } from "@tanstack/react-query"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

type GetLatestBlockNumber = {
sapi: ScaleApi | undefined | null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { UseQueryResult } from "@tanstack/react-query"
import { ChainId, SignerPayloadJSON } from "extension-core"
import { useMemo } from "react"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

import { useCanStakeBittensor } from "../hooks/bittensor/useCanStakeBittensor"
import { useGetBittensorStakeHotkeys } from "../hooks/bittensor/useGetBittensorStakeHotkeys"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ChainId } from "extension-core"

import { ScaleApi } from "@ui/util/scaleApi"
import { ScaleApi } from "sapi"

import { useCanStakeBittensor } from "../hooks/bittensor/useCanStakeBittensor"
import { useGetBittensorStakeByHotKey } from "../hooks/bittensor/useGetBittensorStakeByHotKey"
Expand Down
8 changes: 6 additions & 2 deletions apps/extension/src/ui/hooks/sapi/useScaleApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import { useQuery } from "@tanstack/react-query"
import { ChainId } from "extension-core"
import { getMetadataRpcFromDef } from "extension-shared"
import { useMemo } from "react"
import { getScaleApi, ScaleApi } from "sapi"

import { api } from "@ui/api"
import { useChain, useChainByGenesisHash, useToken } from "@ui/state"
import { getScaleApi, ScaleApi } from "@ui/util/scaleApi"

/**
* useScaleApi instantiates a ScaleApi object for a given chainIdOrHash, specVersion, and blockHash.
Expand Down Expand Up @@ -36,7 +36,11 @@ export const useScaleApi = (
if (!metadataRpc) return null

return getScaleApi(
chain.id,
{
chainId: chain.id,
send: (...args) => api.subSend(chain.id, ...args),
submit: api.subSubmit,
},
metadataRpc,
token,
chain.hasCheckMetadataHash,
Expand Down
9 changes: 7 additions & 2 deletions apps/extension/src/ui/hooks/useSubstratePayloadMetadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ import { assert, hexToNumber, u8aToHex } from "@polkadot/util"
import { Chain, Token } from "@talismn/chaindata-provider"
import { useQuery, useSuspenseQuery } from "@tanstack/react-query"
import { SignerPayloadJSON } from "extension-core"
import { getScaleApi } from "sapi"

import { log } from "@extension/shared"
import { api } from "@ui/api"
import { useChainByGenesisHash, useToken } from "@ui/state"
import { getFrontendTypeRegistry } from "@ui/util/getFrontendTypeRegistry"
import { getScaleApi } from "@ui/util/scaleApi"

export const useSubstratePayloadMetadata = (payload: SignerPayloadJSON | null) => {
const chain = useChainByGenesisHash(payload?.genesisHash)
Expand Down Expand Up @@ -67,7 +68,11 @@ const getSubstratePayloadMetadata = async ({
const sapi =
metadata.version > 14
? getScaleApi(
chain.id,
{
chainId: chain.id,
send: (...args) => api.subSend(chain.id, ...args),
submit: api.subSubmit,
},
metadataRpc,
token,
chain.hasCheckMetadataHash,
Expand Down
Loading

0 comments on commit d4ebb87

Please sign in to comment.