Skip to content

Commit

Permalink
chore: update async imports and try to minimise first import
Browse files Browse the repository at this point in the history
  • Loading branch information
ice-chillios committed Feb 19, 2025
1 parent 1754831 commit 10b587e
Show file tree
Hide file tree
Showing 21 changed files with 486 additions and 323 deletions.
192 changes: 175 additions & 17 deletions bun.lock

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion packages/core/src/helpers/walletAddressValidator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ export async function getAddressValidator() {
const { evmValidateAddress } = await import("@swapkit/toolboxes/evm");
const { substrateValidateAddress } = await import("@swapkit/toolboxes/substrate");
const { utxoValidateAddress } = await import("@swapkit/toolboxes/utxo");
const { validateAddress: solanaValidateAddress } = await import("@swapkit/toolboxes/solana");
const { getAddressValidator: getSolValidator } = await import("@swapkit/toolboxes/solana");
const { validateAddress: validateRadixAddress } = await import("@swapkit/toolboxes/radix");

const solanaValidateAddress = await getSolValidator();

return function validateAddress({ address, chain }: { address: string; chain: Chain }) {
switch (chain) {
case Chain.Arbitrum:
Expand Down
20 changes: 0 additions & 20 deletions packages/plugins/src/chainflip/broker.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { Assets, Chains } from "@chainflip/sdk/swap";
import { decodeAddress } from "@polkadot/keyring";
import { isHex, u8aToHex } from "@polkadot/util";
import { AssetValue, Chain, SwapKitError, wrapWithThrow } from "@swapkit/helpers";
Expand All @@ -8,25 +7,6 @@ import type { ChainflipToolbox } from "@swapkit/toolboxes/substrate";

import type { WithdrawFeeResponse } from "./types";

export const chainToChainflipChain = new Map<Chain, keyof typeof Chains>([
[Chain.Arbitrum, Chains.Arbitrum],
[Chain.Bitcoin, Chains.Bitcoin],
[Chain.Ethereum, Chains.Ethereum],
[Chain.Polkadot, Chains.Polkadot],
[Chain.Solana, Chains.Solana],
[Chain.Polkadot, Chains.Polkadot],
]);

export const assetTickerToChainflipAsset = new Map<string, keyof typeof Assets>([
["FLIP", Assets.FLIP],
["BTC", Assets.BTC],
["ETH", Assets.ETH],
["USDC", Assets.USDC],
["USDT", Assets.USDT],
["DOT", Assets.DOT],
["SOL", Assets.SOL],
]);

export const assetIdentifierToChainflipTicker = new Map<string, string>([
["ARB.ETH", "ArbEth"],
["ARB.USDC-0XAF88D065E77C8CC2239327C5EDB3A432268E5831", "ArbUsdc"],
Expand Down
203 changes: 100 additions & 103 deletions packages/toolboxes/package.json
Original file line number Diff line number Diff line change
@@ -1,105 +1,102 @@
{
"description": "SwapKit - Toolboxes",
"files": [
"src/",
"dist/"
],
"dependencies": {
"@bitcoinerlab/secp256k1": "1.2.0",
"@cosmjs/amino": "0.33.0",
"@cosmjs/crypto": "0.33.0",
"@cosmjs/encoding": "0.33.0",
"@cosmjs/proto-signing": "0.33.0",
"@cosmjs/stargate": "0.33.0",
"@polkadot/api": "15.6.1",
"@polkadot/api-base": "15.6.1",
"@polkadot/keyring": "13.4.3",
"@polkadot/util": "13.4.3",
"@polkadot/util-crypto": "13.4.3",
"@psf/bitcoincashjs-lib": "4.0.3",
"@radixdlt/babylon-gateway-api-sdk": "1.9.2",
"@radixdlt/radix-dapp-toolkit": "2.2.1",
"@radixdlt/wallet-sdk": "1.0.1",
"@scure/base": "1.2.4",
"@scure/bip32": "1.6.2",
"@scure/bip39": "1.5.4",
"@solana/spl-memo": "0.2.5",
"@solana/spl-token": "0.4.12",
"@solana/spl-token-registry": "0.2.4574",
"@solana/web3.js": "1.98.0",
"@swapkit/helpers": "workspace:*",
"base64-js": "1.5.1",
"bitcoinjs-lib": "6.1.7",
"bs58check": "4.0.0",
"cashaddrjs": "0.4.4",
"coininfo": "5.2.1",
"cosmjs-types": "0.9.0",
"ecpair": "2.1.0",
"ethers": "6.13.5",
"micro-key-producer": "0.7.5",
"protobufjs": "7.4.0"
},
"devDependencies": {
"@nomicfoundation/hardhat-ethers": "3.0.8",
"@nomicfoundation/hardhat-toolbox": "5.0.0",
"@polkadot/types": "15.6.1",
"@types/bn.js": "5.1.6",
"@types/crypto-js": "4.2.2",
"@types/elliptic": "6.4.18",
"hardhat": "2.22.18"
},
"exports": {
".": {
"default": "./dist/index.js",
"require": "./dist/index.cjs",
"types": "./src/index.ts"
},
"./cosmos": {
"default": "./dist/cosmos/index.js",
"require": "./dist/cosmos/index.cjs",
"types": "./src/cosmos/index.ts"
},
"./evm": {
"default": "./dist/evm/index.js",
"require": "./dist/evm/index.cjs",
"types": "./src/evm/index.ts"
},
"./radix": {
"default": "./dist/radix/index.js",
"require": "./dist/radix/index.cjs",
"types": "./src/radix/index.ts"
},
"./solana": {
"default": "./dist/solana/index.js",
"require": "./dist/solana/index.cjs",
"types": "./src/solana/index.ts"
},
"./substrate": {
"default": "./dist/substrate/index.js",
"require": "./dist/substrate/index.cjs",
"types": "./src/substrate/index.ts"
},
"./utxo": {
"default": "./dist/utxo/index.js",
"require": "./dist/utxo/index.cjs",
"types": "./src/utxo/index.ts"
}
},
"homepage": "https://github.com/thorswap/SwapKit",
"license": "Apache-2.0",
"name": "@swapkit/toolboxes",
"repository": {
"type": "git",
"url": "git+https://github.com/thorswap/SwapKit.git"
},
"scripts": {
"build": "bun run ./build.ts",
"clean": "rm -rf dist node_modules *.tsbuildinfo",
"lint": "biome check --write ./src",
"test": "echo 'bun test'",
"test:coverage": "bun test --coverage",
"type-check": "tsc --noEmit"
},
"type": "module",
"version": "0.1.0"
"description": "SwapKit - Toolboxes",
"files": ["src/", "dist/"],
"dependencies": {
"@bitcoinerlab/secp256k1": "1.2.0",
"@cosmjs/amino": "0.33.0",
"@cosmjs/crypto": "0.33.0",
"@cosmjs/encoding": "0.33.0",
"@cosmjs/proto-signing": "0.33.0",
"@cosmjs/stargate": "0.33.0",
"@polkadot/api": "15.6.1",
"@polkadot/api-base": "15.6.1",
"@polkadot/keyring": "13.4.3",
"@polkadot/util": "13.4.3",
"@polkadot/util-crypto": "13.4.3",
"@psf/bitcoincashjs-lib": "4.0.3",
"@radixdlt/babylon-gateway-api-sdk": "1.9.2",
"@radixdlt/radix-dapp-toolkit": "2.2.1",
"@radixdlt/wallet-sdk": "1.0.1",
"@scure/base": "1.2.4",
"@scure/bip32": "1.6.2",
"@scure/bip39": "1.5.4",
"@solana/spl-memo": "0.2.5",
"@solana/spl-token": "0.4.12",
"@solana/spl-token-registry": "0.2.4574",
"@solana/web3.js": "1.98.0",
"@swapkit/helpers": "workspace:*",
"base64-js": "1.5.1",
"bitcoinjs-lib": "6.1.7",
"bs58check": "4.0.0",
"cashaddrjs": "0.4.4",
"coininfo": "5.2.1",
"cosmjs-types": "0.9.0",
"ecpair": "2.1.0",
"ethers": "6.13.5",
"micro-key-producer": "0.7.5",
"protobufjs": "7.4.0"
},
"devDependencies": {
"@nomicfoundation/hardhat-ethers": "3.0.8",
"@nomicfoundation/hardhat-toolbox": "5.0.0",
"@polkadot/types": "15.6.1",
"@types/bn.js": "5.1.6",
"@types/crypto-js": "4.2.2",
"@types/elliptic": "6.4.18",
"hardhat": "2.22.18"
},
"exports": {
".": {
"default": "./dist/index.js",
"require": "./dist/index.cjs",
"types": "./src/index.ts"
},
"./cosmos": {
"default": "./dist/cosmos/index.js",
"require": "./dist/cosmos/index.cjs",
"types": "./src/cosmos/index.ts"
},
"./evm": {
"default": "./dist/evm/index.js",
"require": "./dist/evm/index.cjs",
"types": "./src/evm/index.ts"
},
"./radix": {
"default": "./dist/radix/index.js",
"require": "./dist/radix/index.cjs",
"types": "./src/radix/index.ts"
},
"./solana": {
"default": "./dist/solana/index.js",
"require": "./dist/solana/index.cjs",
"types": "./src/solana/index.ts"
},
"./substrate": {
"default": "./dist/substrate/index.js",
"require": "./dist/substrate/index.cjs",
"types": "./src/substrate/index.ts"
},
"./utxo": {
"default": "./dist/utxo/index.js",
"require": "./dist/utxo/index.cjs",
"types": "./src/utxo/index.ts"
}
},
"homepage": "https://github.com/thorswap/SwapKit",
"license": "Apache-2.0",
"name": "@swapkit/toolboxes",
"repository": {
"type": "git",
"url": "git+https://github.com/thorswap/SwapKit.git"
},
"scripts": {
"build": "bun run ./build.ts",
"clean": "rm -rf dist node_modules *.tsbuildinfo",
"lint": "biome check --write ./src",
"test": "echo 'bun test'",
"test:coverage": "bun test --coverage",
"type-check": "tsc --noEmit"
},
"type": "module",
"version": "0.1.0"
}
18 changes: 9 additions & 9 deletions packages/toolboxes/src/cosmos/thorchainUtils/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,11 @@ export const buildAminoMsg = ({
};

// TODO I think the msg typing is wrong it should be not prepared for broadcast
export const convertToSignable = (
export const convertToSignable = async (
msg: DirectMsgDepositForBroadcast | DirectMsgSendForBroadcast | MsgSend | MsgDeposit,
chain: Chain.THORChain | Chain.Maya,
) => {
const aminoTypes = createDefaultAminoTypes(chain);
const aminoTypes = await createDefaultAminoTypes(chain);

return aminoTypes.fromAmino(msg);
};
Expand Down Expand Up @@ -141,7 +141,7 @@ export const buildTransferTx =
});

const msg = asSignable
? convertToSignable(
? await convertToSignable(
asAminoMessage ? transferMsg : parseAminoMessageForDirectSigning(transferMsg),
chain,
)
Expand Down Expand Up @@ -174,7 +174,7 @@ export const buildDepositTx =
const depositMsg = depositMsgAmino({ from, assetValue, memo, chain });

const msg = asSignable
? convertToSignable(
? await convertToSignable(
asAminoMessage ? depositMsg : parseAminoMessageForDirectSigning<MsgDeposit>(depositMsg),
chain,
)
Expand Down Expand Up @@ -223,22 +223,22 @@ export function parseAminoMessageForDirectSigning<T extends MsgDeposit | MsgSend
};
}

export const buildEncodedTxBody = ({
export async function buildEncodedTxBody({
chain,
memo,
msgs,
}: {
msgs: DirectMsgDepositForBroadcast[] | DirectMsgSendForBroadcast[];
memo: string;
chain: Chain.THORChain | Chain.Maya;
}) => {
const registry = createDefaultRegistry();
const aminoTypes = createDefaultAminoTypes(chain);
}) {
const registry = await createDefaultRegistry();
const aminoTypes = await createDefaultAminoTypes(chain);

const signedTxBody: TxBodyEncodeObject = {
typeUrl: "/cosmos.tx.v1beta1.TxBody",
value: { memo, messages: msgs.map((msg) => aminoTypes.fromAmino(msg)) },
};

return registry.encode(signedTxBody);
};
}
15 changes: 9 additions & 6 deletions packages/toolboxes/src/cosmos/thorchainUtils/registry.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
import { Registry } from "@cosmjs/proto-signing";
import { AminoTypes, defaultRegistryTypes } from "@cosmjs/stargate";
import { Chain } from "@swapkit/helpers";
import * as types from "../thorchainUtils/types/proto/MsgCompiled";
import { base64ToBech32, bech32ToBase64 } from "./addressFormat";

export const createDefaultRegistry = () => {
export async function createDefaultRegistry() {
const { Registry } = await import("@cosmjs/proto-signing");
const { defaultRegistryTypes } = await import("@cosmjs/stargate");

return new Registry([
...defaultRegistryTypes,
["/types.MsgSend", { ...types.default.types.MsgSend }],
["/types.MsgDeposit", { ...types.default.types.MsgDeposit }],
]);
};
}

export async function createDefaultAminoTypes(chain: Chain.THORChain | Chain.Maya) {
const { AminoTypes } = await import("@cosmjs/stargate");

export const createDefaultAminoTypes = (chain: Chain.THORChain | Chain.Maya) => {
return new AminoTypes({
"/types.MsgSend": {
aminoType: `${chain === Chain.Maya ? "mayachain" : "thorchain"}/MsgSend`,
Expand Down Expand Up @@ -41,4 +44,4 @@ export const createDefaultAminoTypes = (chain: Chain.THORChain | Chain.Maya) =>
}),
},
});
};
}
Loading

0 comments on commit 10b587e

Please sign in to comment.