Skip to content

Commit cb0d068

Browse files
committed
feat: update the codebase to latest stacks.js SDK
1 parent a865bb3 commit cb0d068

13 files changed

+256
-239
lines changed

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@
5454
"clarity-codegen": "^0.5.2"
5555
},
5656
"peerDependencies": {
57-
"@stacks/network": "^6.3.0",
58-
"@stacks/transactions": "^6.2.0"
57+
"@stacks/network": "^7.0.2",
58+
"@stacks/transactions": "^7.0.2"
5959
},
6060
"devDependencies": {
6161
"@size-limit/preset-small-lib": "^8.2.4",
62-
"@stacks/network": "^6.3.0",
62+
"@stacks/network": "^7.0.2",
6363
"@stacks/stacks-blockchain-api-types": "^7.11.0",
64-
"@stacks/transactions": "^6.2.0",
64+
"@stacks/transactions": "^7.0.2",
6565
"@types/jest": "^29.5.12",
6666
"@types/node": "^20.14.2",
6767
"ajv": "^8.16.0",

pnpm-lock.yaml

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

src/helpers/FeeHelper.ts

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { unwrapResponse } from 'clarity-codegen';
22
import { readonlyCall } from '../utils/readonlyCallExecutor';
3-
import { Currency } from '../currency';
4-
import { PoolData } from '../types';
5-
import { AMMRouteSegment, resolveAmmRoute } from '../utils/ammRouteResolver';
3+
import type { Currency } from '../currency';
4+
import type { PoolData } from '../types';
5+
import { type AMMRouteSegment, resolveAmmRoute } from '../utils/ammRouteResolver';
6+
import { hasLength } from '../utils/arrayHelper';
67

78
export async function getLiquidityProviderFee(
89
tokenX: Currency,
@@ -15,44 +16,48 @@ export async function getLiquidityProviderFee(
1516
if (ammRoute.length === 0) {
1617
throw new Error('No AMM pools in route');
1718
}
18-
if (ammRoute.length === 1) {
19+
if (hasLength(ammRoute, 1)) {
20+
const [segment] = ammRoute;
1921
return await readonlyCall('amm-pool-v2-01', 'fee-helper', {
2022
'token-x': getContractId(tokenX),
2123
'token-y': getContractId(tokenY),
22-
factor: ammRoute[0]!.pool.factor,
24+
factor: segment.pool.factor,
2325
}).then(unwrapResponse);
2426
}
25-
if (ammRoute.length === 2) {
27+
if (hasLength(ammRoute, 2)) {
28+
const [segment1, segment2] = ammRoute;
2629
return await readonlyCall('amm-pool-v2-01', 'fee-helper-a', {
2730
'token-x': getContractId(tokenX),
28-
'token-y': getContractId(ammRoute[0]!.neighbour),
29-
'token-z': getContractId(ammRoute[1]!.neighbour),
30-
'factor-x': ammRoute[0]!.pool.factor,
31-
'factor-y': ammRoute[1]!.pool.factor,
31+
'token-y': getContractId(segment1.neighbour),
32+
'token-z': getContractId(segment2.neighbour),
33+
'factor-x': segment1.pool.factor,
34+
'factor-y': segment2.pool.factor,
3235
}).then(unwrapResponse);
3336
}
34-
if (ammRoute.length === 3) {
37+
if (hasLength(ammRoute, 3)) {
38+
const [segment1, segment2, segment3] = ammRoute;
3539
return await readonlyCall('amm-pool-v2-01', 'fee-helper-b', {
3640
'token-x': getContractId(tokenX),
37-
'token-y': getContractId(ammRoute[0]!.neighbour),
38-
'token-z': getContractId(ammRoute[1]!.neighbour),
39-
'token-w': getContractId(ammRoute[2]!.neighbour),
40-
'factor-x': ammRoute[0]!.pool.factor,
41-
'factor-y': ammRoute[1]!.pool.factor,
42-
'factor-z': ammRoute[2]!.pool.factor,
41+
'token-y': getContractId(segment1.neighbour),
42+
'token-z': getContractId(segment2.neighbour),
43+
'token-w': getContractId(segment3.neighbour),
44+
'factor-x': segment1.pool.factor,
45+
'factor-y': segment2.pool.factor,
46+
'factor-z': segment3.pool.factor,
4347
}).then(unwrapResponse);
4448
}
45-
if (ammRoute.length === 4) {
49+
if (hasLength(ammRoute, 4)) {
50+
const [segment1, segment2, segment3, segment4] = ammRoute;
4651
return await readonlyCall('amm-pool-v2-01', 'fee-helper-c', {
4752
'token-x': getContractId(tokenX),
48-
'token-y': getContractId(ammRoute[0]!.neighbour),
49-
'token-z': getContractId(ammRoute[1]!.neighbour),
50-
'token-w': getContractId(ammRoute[2]!.neighbour),
51-
'token-v': getContractId(ammRoute[3]!.neighbour),
52-
'factor-x': ammRoute[0]!.pool.factor,
53-
'factor-y': ammRoute[1]!.pool.factor,
54-
'factor-z': ammRoute[2]!.pool.factor,
55-
'factor-w': ammRoute[3]!.pool.factor,
53+
'token-y': getContractId(segment1.neighbour),
54+
'token-z': getContractId(segment2.neighbour),
55+
'token-w': getContractId(segment3.neighbour),
56+
'token-v': getContractId(segment4.neighbour),
57+
'factor-x': segment1.pool.factor,
58+
'factor-y': segment2.pool.factor,
59+
'factor-z': segment3.pool.factor,
60+
'factor-w': segment4.pool.factor,
5661
}).then(unwrapResponse);
5762
}
5863
throw new Error('Too many AMM pools in route');

src/helpers/RateHelper.ts

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { unwrapResponse } from 'clarity-codegen';
22
import { readonlyCall } from '../utils/readonlyCallExecutor';
3-
import { Currency } from '../currency';
4-
import { PoolData } from '../types';
5-
import { AMMRouteSegment, resolveAmmRoute } from '../utils/ammRouteResolver';
3+
import type { Currency } from '../currency';
4+
import type { PoolData } from '../types';
5+
import { type AMMRouteSegment, resolveAmmRoute } from '../utils/ammRouteResolver';
6+
import { hasLength } from '../utils/arrayHelper';
67

78
export const getYAmountFromXAmount = async (
89
tokenX: Currency,
@@ -16,47 +17,51 @@ export const getYAmountFromXAmount = async (
1617
if (ammRoute.length === 0) {
1718
throw new Error('No AMM pool found for the given route');
1819
}
19-
if (ammRoute.length === 1) {
20+
if (hasLength(ammRoute, 1)) {
21+
const [segment] = ammRoute;
2022
return await readonlyCall('amm-pool-v2-01', 'get-helper', {
2123
'token-x': getContractId(tokenX),
22-
'token-y': getContractId(ammRoute[0]!.neighbour),
24+
'token-y': getContractId(segment.neighbour),
2325
dx: fromAmount,
24-
factor: ammRoute[0]!.pool.factor,
26+
factor: segment.pool.factor,
2527
}).then(unwrapResponse);
2628
}
27-
if (ammRoute.length === 2) {
29+
if (hasLength(ammRoute, 2)) {
30+
const [segment1, segment2] = ammRoute;
2831
return await readonlyCall('amm-pool-v2-01', 'get-helper-a', {
2932
'token-x': getContractId(tokenX),
30-
'token-y': getContractId(ammRoute[0]!.neighbour),
31-
'token-z': getContractId(ammRoute[1]!.neighbour),
32-
'factor-x': ammRoute[0]!.pool.factor,
33-
'factor-y': ammRoute[1]!.pool.factor,
33+
'token-y': getContractId(segment1.neighbour),
34+
'token-z': getContractId(segment2.neighbour),
35+
'factor-x': segment1.pool.factor,
36+
'factor-y': segment2.pool.factor,
3437
dx: fromAmount,
3538
}).then(unwrapResponse);
3639
}
37-
if (ammRoute.length === 3) {
40+
if (hasLength(ammRoute, 3)) {
41+
const [segment1, segment2, segment3] = ammRoute;
3842
return await readonlyCall('amm-pool-v2-01', 'get-helper-b', {
3943
'token-x': getContractId(tokenX),
40-
'token-y': getContractId(ammRoute[0]!.neighbour),
41-
'token-z': getContractId(ammRoute[1]!.neighbour),
42-
'token-w': getContractId(ammRoute[2]!.neighbour),
43-
'factor-x': ammRoute[0]!.pool.factor,
44-
'factor-y': ammRoute[1]!.pool.factor,
45-
'factor-z': ammRoute[2]!.pool.factor,
44+
'token-y': getContractId(segment1.neighbour),
45+
'token-z': getContractId(segment2.neighbour),
46+
'token-w': getContractId(segment3.neighbour),
47+
'factor-x': segment1.pool.factor,
48+
'factor-y': segment2.pool.factor,
49+
'factor-z': segment3.pool.factor,
4650
dx: fromAmount,
4751
}).then(unwrapResponse);
4852
}
49-
if (ammRoute.length === 4) {
53+
if (hasLength(ammRoute, 4)) {
54+
const [segment1, segment2, segment3, segment4] = ammRoute;
5055
return await readonlyCall('amm-pool-v2-01', 'get-helper-c', {
5156
'token-x': getContractId(tokenX),
52-
'token-y': getContractId(ammRoute[0]!.neighbour),
53-
'token-z': getContractId(ammRoute[1]!.neighbour),
54-
'token-w': getContractId(ammRoute[2]!.neighbour),
55-
'token-v': getContractId(ammRoute[3]!.neighbour),
56-
'factor-x': ammRoute[0]!.pool.factor,
57-
'factor-y': ammRoute[1]!.pool.factor,
58-
'factor-z': ammRoute[2]!.pool.factor,
59-
'factor-w': ammRoute[3]!.pool.factor,
57+
'token-y': getContractId(segment1.neighbour),
58+
'token-z': getContractId(segment2.neighbour),
59+
'token-w': getContractId(segment3.neighbour),
60+
'token-v': getContractId(segment4.neighbour),
61+
'factor-x': segment1.pool.factor,
62+
'factor-y': segment2.pool.factor,
63+
'factor-z': segment3.pool.factor,
64+
'factor-w': segment4.pool.factor,
6065
dx: fromAmount,
6166
}).then(unwrapResponse);
6267
}

src/helpers/RouteHelper.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { Currency } from '../currency';
2-
import { PoolData } from '../types';
3-
import { AMMRouteSegment, resolveAmmRoute } from '../utils/ammRouteResolver';
1+
import type { Currency } from '../currency';
2+
import type { PoolData } from '../types';
3+
import { type AMMRouteSegment, resolveAmmRoute } from '../utils/ammRouteResolver';
44

55
export async function getAllPossibleRoute(
66
from: Currency,

0 commit comments

Comments
 (0)