Skip to content

Commit e24e74e

Browse files
committed
chore: update ts sdk
1 parent 86658ff commit e24e74e

19 files changed

+939
-25
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ evm/contracts/proto/** linguist-generated
1515
*.lockb binary diff=lockb
1616
*.zip filter=lfs diff=lfs merge=lfs -text
1717
site/public/union-logo.zip filter=lfs diff=lfs merge=lfs -text
18+
bun.lock linguist-language=JSON-with-Comments
1819
biome.json linguist-language=JSON-with-Comments
1920
knip.json linguist-language=JSON-with-Comments
2021
.vscode/*.json linguist-language=JSON-with-Comments

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
},
6161
"files.associations": {
6262
".envrc": "dotenv",
63+
"bun.lock": "jsonc",
6364
"biome.json": "jsonc",
6465
"*.css": "tailwindcss",
6566
".vscode/*.json": "jsonc"

flake.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

treefmt.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ in
135135
"*.jpg"
136136
"*.svg"
137137
"*.jpeg"
138+
"*.lock"
138139
".git/**"
139140
"*.woff2"
140141
"*.lockb"

typescript-sdk/.npmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ package-lock=false
55
shell-emulator=true
66
git-tag-version=false
77
auto-install-peers=true
8-
node-options="--no-warnings NODE_NO_WARNINGS=1"
8+
node-options="--disable-warning=ExperimentalWarning NODE_NO_WARNINGS=1"
99

1010
@jsr:registry=https://npm.jsr.io

typescript-sdk/bun.lock

Lines changed: 843 additions & 0 deletions
Large diffs are not rendered by default.

typescript-sdk/bun.lockb

-156 KB
Binary file not shown.

typescript-sdk/package.json

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,33 +29,34 @@
2929
"check-package": "bunx publint --strict && bunx @arethetypeswrong/cli@latest --pack --ignore-rules 'cjs-resolves-to-esm'"
3030
},
3131
"dependencies": {
32-
"@aptos-labs/ts-sdk": "^1.33.1",
32+
"@aptos-labs/ts-sdk": "^1.33.2",
3333
"@cosmjs/amino": "^0.33.0",
3434
"@cosmjs/cosmwasm-stargate": "0.33.0",
3535
"@cosmjs/proto-signing": "^0.33.0",
3636
"@cosmjs/stargate": "0.33.0",
3737
"@cosmjs/tendermint-rpc": "^0.33.0",
3838
"@scure/base": "^1.2.4",
39-
"gql.tada": "^1.8.10",
4039
"graphql-request": "^7.1.2",
4140
"neverthrow": "^8.1.1",
4241
"ofetch": "^1.4.1",
4342
"patch-package": "^8.0.0",
44-
"viem": "^2.22.13"
43+
"viem": "^2.22.17"
4544
},
4645
"devDependencies": {
46+
"gql.tada": "^1.8.10",
4747
"@total-typescript/ts-reset": "^0.6.1",
48-
"@types/bun": "^1.1.17",
49-
"@types/node": "^22.10.7",
48+
"@tsconfig/strictest": "^2.0.5",
49+
"@types/bun": "^1.2.1",
50+
"@types/node": "^22.12.0",
5051
"consola": "^3.4.0",
5152
"cosmjs-types": "^0.9.0",
52-
"jsr": "^0.13.2",
53-
"knip": "^5.42.2",
54-
"tsup": "^8.3.5",
53+
"jsr": "^0.13.3",
54+
"knip": "^5.43.6",
55+
"tsup": "^8.3.6",
5556
"tsx": "^4.19.2",
5657
"typescript": "^5.7.3",
5758
"vite-tsconfig-paths": "^5.1.4",
58-
"vitest": "^3.0.2"
59+
"vitest": "^3.0.4"
5960
},
6061
"repository": {
6162
"type": "git",

typescript-sdk/playground/babylon-to-holesky.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ if (quoteToken.isErr()) {
5959
process.exit(1)
6060
}
6161

62+
if (quoteToken.value.type === "NO_QUOTE_AVAILABLE") {
63+
consola.info("no quote token available")
64+
process.exit(1)
65+
}
66+
6267
consola.info("quote token", quoteToken.value)
6368

6469
if (!PRIVATE_KEY) {

typescript-sdk/playground/holesky-to-babylon.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { http } from "viem"
1+
import { getAddress, http } from "viem"
22
import { parseArgs } from "node:util"
33
import { consola } from "scripts/logger"
44
import { bech32AddressToHex, createUnionClient } from "#mod.ts"
@@ -59,16 +59,21 @@ if (quoteToken.isErr()) {
5959
process.exit(1)
6060
}
6161

62+
if (quoteToken.value.type === "NO_QUOTE_AVAILABLE") {
63+
consola.info("no quote token available")
64+
process.exit(1)
65+
}
66+
6267
consola.info("quote token", quoteToken.value)
6368

6469
const transferArgs = {
65-
baseToken: UBBN_DENOM,
70+
baseToken: getAddress(UBBN_DENOM),
6671
baseAmount: AMOUNT,
6772
quoteToken: quoteToken.value.quote_token,
6873
quoteAmount: AMOUNT,
6974
receiver: RECEIVER,
7075
sourceChannelId: channel.source_channel_id,
71-
ucs03address: `0x${channel.source_port_id}`
76+
ucs03address: getAddress(`0x${channel.source_port_id}`)
7277
}
7378

7479
consola.info("transfer args", transferArgs)

typescript-sdk/playground/holesky-to-sepolia.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ if (quoteToken.isErr()) {
4444
process.exit(1)
4545
}
4646

47+
if (quoteToken.value.type === "NO_QUOTE_AVAILABLE") {
48+
consola.info("no quote token available")
49+
process.exit(1)
50+
}
51+
4752
consola.info("quote token", quoteToken.value)
4853

4954
if (quoteToken.value.type === "NO_QUOTE_AVAILABLE") {

typescript-sdk/playground/holesky-to-stargaze.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { http } from "viem"
1+
import { getAddress, http } from "viem"
22
import { parseArgs } from "node:util"
33
import { consola } from "scripts/logger"
44
import { bech32AddressToHex, createUnionClient } from "#mod.ts"
@@ -67,13 +67,13 @@ if (quoteToken.value.type === "NO_QUOTE_AVAILABLE") {
6767
consola.info("quote token", quoteToken.value)
6868

6969
const transferArgs = {
70-
baseToken: STARS_DENOM,
70+
baseToken: getAddress(STARS_DENOM),
7171
baseAmount: AMOUNT,
7272
quoteToken: quoteToken.value.quote_token,
7373
quoteAmount: AMOUNT,
7474
receiver: RECEIVER,
7575
sourceChannelId: channel.source_channel_id,
76-
ucs03address: `0x${channel.source_port_id}`
76+
ucs03address: getAddress(`0x${channel.source_port_id}`)
7777
}
7878

7979
consola.info("transfer args", transferArgs)

typescript-sdk/playground/osmosis-to-holesky.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ if (quoteToken.isErr()) {
5959
process.exit(1)
6060
}
6161

62+
if (quoteToken.value.type === "NO_QUOTE_AVAILABLE") {
63+
consola.info("no quote token available")
64+
process.exit(1)
65+
}
66+
6267
consola.info("quote token", quoteToken.value)
6368

6469
if (!PRIVATE_KEY) {

typescript-sdk/playground/sepolia-to-holesky.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ if (quoteToken.isErr()) {
4242
process.exit(1)
4343
}
4444

45+
if (quoteToken.value.type === "NO_QUOTE_AVAILABLE") {
46+
consola.info("no quote token available")
47+
process.exit(1)
48+
}
49+
4550
consola.info("quote token", quoteToken.value)
4651

4752
const transferArgs = {

typescript-sdk/scripts/publish.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ async function main() {
6060
// revert changes
6161
await resetVersions()
6262
consola.info("Reset package.json version")
63+
return
6364
}
6465
}
6566

typescript-sdk/src/aptos/client.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export const createAptosClient = (clientParameters: AptosClientParameters) => {
101101
let {
102102
memo,
103103
amount,
104-
simulate,
104+
simulate = true,
105105
receiver,
106106
denomAddress,
107107
destinationChainId,
@@ -143,6 +143,7 @@ export const createAptosClient = (clientParameters: AptosClientParameters) => {
143143
if (pfmMemo.isErr()) return err(pfmMemo.error)
144144
memo = pfmMemo.value
145145
}
146+
if (!memo) return err(new Error("Memo is required"))
146147

147148
const sourceChannel = chainDetails.value.sourceChannel
148149
relayContractAddress ??= chainDetails.value.relayContractAddress
@@ -211,6 +212,8 @@ export const createAptosClient = (clientParameters: AptosClientParameters) => {
211212
if (pfmMemo.isErr()) return err(pfmMemo.error)
212213
memo = pfmMemo.value
213214
}
215+
if (!memo) return err(new Error("Memo is required"))
216+
214217
const sourceChannel = chainDetails.value.sourceChannel
215218
relayContractAddress ??= chainDetails.value.relayContractAddress
216219

typescript-sdk/src/cosmos/client.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,32 @@ export const createCosmosClient = (parameters: CosmosClientParameters) =>
227227
]
228228
})
229229
}
230+
231+
if (destinationChainId === "union-testnet-8") {
232+
if (!sourceChannel) return err(new Error("Source channel not found"))
233+
const [account_] = await account.getAccounts()
234+
if (!(account && account_?.address)) return err(new Error("No account found"))
235+
236+
const stamp = timestamp()
237+
238+
return await ibcTransferSimulate({
239+
gasPrice,
240+
account,
241+
rpcUrl,
242+
messageTransfers: [
243+
{
244+
sourceChannel: sourceChannel.toString(),
245+
sourcePort: "transfer",
246+
sender: account_.address,
247+
token: { denom: denomAddress, amount: amount.toString() },
248+
timeoutHeight: { revisionHeight: 888_888_888n, revisionNumber: 8n },
249+
receiver: receiver.startsWith("0x") ? receiver.slice(2) : receiver,
250+
memo: memo ?? `${stamp} Sending ${amount} ${denomAddress} to ${receiver}`
251+
}
252+
]
253+
})
254+
}
255+
230256
return err(new Error("Unsupported network"))
231257
}
232258
}))

typescript-sdk/src/evm/client.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ import type {
3333
TransferAssetParameters
3434
} from "../types.ts"
3535
import { ucs03ZkgmAbi } from "../abi/ucs-03.ts"
36-
import { bech32AddressToHex } from "#mod.ts"
37-
import { generateSalt } from "#utilities/index.ts"
36+
import { bech32AddressToHex } from "../convert.ts"
37+
import { generateSalt, timestamp } from "../utilities/index.ts"
3838
export { sepolia, scrollSepolia, arbitrumSepolia, berachainTestnetbArtio }
3939

4040
export const evmChains = [
@@ -135,6 +135,8 @@ export const createEvmClient = (parameters: EvmClientParameters) => {
135135
autoApprove = false
136136
}: TransferAssetsParametersLegacy<EvmChainId>): Promise<Result<Hex, Error>> => {
137137
account ||= client.account
138+
if (!account) return err(new Error("No account found"))
139+
138140
console.log(`EVM client created for chainId: ${parameters.chainId}`)
139141

140142
const baseToken = denomAddress
@@ -210,6 +212,8 @@ export const createEvmClient = (parameters: EvmClientParameters) => {
210212
simulate = true,
211213
destinationChainId
212214
}: TransferAssetsParametersLegacy<EvmChainId>): Promise<Result<Hex, Error>> => {
215+
if (!account) return err(new Error("No account found"))
216+
213217
let _receiver: HexAddress
214218

215219
// check if chain ids are the same, if yes then `receiver` is `receiver`,
@@ -233,7 +237,7 @@ export const createEvmClient = (parameters: EvmClientParameters) => {
233237
})
234238
},
235239
simulateTransaction: async ({
236-
memo,
240+
memo = timestamp(),
237241
amount,
238242
receiver,
239243
denomAddress,
@@ -288,14 +292,18 @@ export const createEvmClient = (parameters: EvmClientParameters) => {
288292
if (!sourceChannel) return err(new Error("Source channel not found"))
289293
if (!relayContractAddress) return err(new Error("Relay contract address not found"))
290294

295+
const account =
296+
typeof client.account === "string" ? client.account : client.account?.address
297+
if (!account) return err(new Error("No account found"))
298+
291299
return await transferAssetFromEvmSimulate(client, {
292300
memo,
293301
amount,
302+
account,
294303
receiver,
295304
sourceChannel,
296305
relayContractAddress,
297-
denomAddress: getAddress(denomAddress),
298-
account: typeof client.account === "string" ? client.account : client.account?.address
306+
denomAddress: getAddress(denomAddress)
299307
})
300308
}
301309
}))

typescript-sdk/tsconfig.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
{
22
"schema": "https://json.schemastore.org/tsconfig.json",
3+
"extends": ["@tsconfig/strictest/tsconfig.json"],
34
"compilerOptions": {
5+
"noUnusedLocals": false,
6+
"noUnusedParameters": false,
7+
48
"strict": true,
59
"baseUrl": ".",
610
"noEmit": true,

0 commit comments

Comments
 (0)