@argent/x-shared 1.74.1 → 1.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +212 -209
- package/dist/node_modules/.pnpm/@noble_curves@1.0.0/node_modules/@noble/curves/esm/abstract/modular.js +5 -5
- package/dist/node_modules/.pnpm/@noble_curves@1.0.0/node_modules/@noble/curves/esm/abstract/weierstrass.cjs +1 -1
- package/dist/node_modules/.pnpm/@noble_curves@1.0.0/node_modules/@noble/curves/esm/abstract/weierstrass.js +13 -14
- package/dist/node_modules/.pnpm/@noble_hashes@1.3.3/node_modules/@noble/hashes/esm/sha3.cjs +1 -1
- package/dist/node_modules/.pnpm/@noble_hashes@1.3.3/node_modules/@noble/hashes/esm/sha3.js +3 -3
- package/dist/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/sha3.cjs +1 -1
- package/dist/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/sha3.js +3 -3
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.cjs +1 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js +1 -1
- package/dist/node_modules/.pnpm/micro-starknet@0.2.3/node_modules/micro-starknet/lib/esm/index.js +6 -6
- package/dist/src/chains/starknet/address.cjs +1 -1
- package/dist/src/chains/starknet/address.js +17 -17
- package/dist/src/chains/starknet/services/deploymentData/findImplementationForAccount.js +1 -1
- package/dist/src/chains/starknet/services/deploymentData/getAccountClassHash.js +1 -1
- package/dist/src/features/defiDecomposition/helpers/computeCollateralizedDebtPositionsUsdValue.cjs +1 -1
- package/dist/src/features/defiDecomposition/helpers/computeCollateralizedDebtPositionsUsdValue.js +27 -27
- package/dist/src/features/defiDecomposition/helpers/computeConcentratedLiquidityPositionsUsdValue.cjs +1 -1
- package/dist/src/features/defiDecomposition/helpers/computeConcentratedLiquidityPositionsUsdValue.js +22 -22
- package/dist/src/features/defiDecomposition/helpers/computeDelegatedTokensPositionsUsdValue.cjs +1 -1
- package/dist/src/features/defiDecomposition/helpers/computeDelegatedTokensPositionsUsdValue.js +14 -14
- package/dist/src/features/defiDecomposition/helpers/computeStakingPositionsUsdValue.cjs +1 -1
- package/dist/src/features/defiDecomposition/helpers/computeStakingPositionsUsdValue.js +9 -9
- package/dist/src/features/defiDecomposition/helpers/computeStrkDelegatedStakingPositionsUsdValue.cjs +1 -1
- package/dist/src/features/defiDecomposition/helpers/computeStrkDelegatedStakingPositionsUsdValue.js +13 -13
- package/dist/src/features/defiDecomposition/helpers/parseCollateralizedDebtPositions.cjs +1 -1
- package/dist/src/features/defiDecomposition/helpers/parseCollateralizedDebtPositions.js +24 -25
- package/dist/src/features/simulation/activity/normalize.cjs +1 -1
- package/dist/src/features/simulation/activity/normalize.js +12 -13
- package/dist/src/features/simulation/activity/schema.cjs +1 -1
- package/dist/src/features/simulation/activity/schema.js +6 -6
- package/dist/src/features/simulation/activity/utils/createNativeActivity.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/createNativeActivity.js +22 -24
- package/dist/src/features/simulation/activity/utils/getAnyActivityTitle.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/getAnyActivityTitle.js +11 -12
- package/dist/src/features/simulation/activity/utils/hasDelegationActivity.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/hasDelegationActivity.js +2 -8
- package/dist/src/features/simulation/activity/utils/isAddMultisigSignersActivity.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/isAddMultisigSignersActivity.js +4 -8
- package/dist/src/features/simulation/activity/utils/isChangeMultisigThresholdActivity.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/isChangeMultisigThresholdActivity.js +4 -8
- package/dist/src/features/simulation/activity/utils/isMulticallWithDeploymentActivity.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/isMulticallWithDeploymentActivity.js +3 -9
- package/dist/src/features/simulation/activity/utils/isRejectOnChainActivity.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/isRejectOnChainActivity.js +15 -19
- package/dist/src/features/simulation/activity/utils/isRemoveMultisigSignersActivity.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/isRemoveMultisigSignersActivity.js +4 -8
- package/dist/src/features/simulation/activity/utils/isSwapActivity.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/isSwapActivity.js +9 -16
- package/dist/src/features/simulation/activity/utils/isUpgradeActivity.cjs +1 -1
- package/dist/src/features/simulation/activity/utils/isUpgradeActivity.js +4 -8
- package/dist/src/features/simulation/fees/schema.cjs +1 -1
- package/dist/src/features/simulation/fees/schema.d.ts +16 -0
- package/dist/src/features/simulation/fees/schema.js +8 -6
- package/dist/src/features/simulation/transactionReview/getErrorMessageAndLabelFromSimulation.cjs +1 -1
- package/dist/src/features/simulation/transactionReview/getErrorMessageAndLabelFromSimulation.js +10 -11
- package/dist/src/features/simulation/transactionReview/schema.cjs +1 -1
- package/dist/src/features/simulation/transactionReview/schema.d.ts +23 -0
- package/dist/src/features/simulation/transactionReview/schema.js +21 -19
- package/dist/src/features/swap/services/SwapTransactionService.cjs +1 -1
- package/dist/src/features/swap/services/SwapTransactionService.js +46 -49
- package/dist/src/http/HttpService.cjs +1 -1
- package/dist/src/http/HttpService.js +55 -55
- package/dist/src/knownDapps/utils/getDapplandUrl.cjs +1 -1
- package/dist/src/knownDapps/utils/getDapplandUrl.js +6 -8
- package/dist/src/nfts/BackendNftService.cjs +1 -1
- package/dist/src/nfts/BackendNftService.js +18 -19
- package/dist/src/tokens/service/implementation.cjs +1 -1
- package/dist/src/tokens/service/implementation.js +12 -12
- package/dist/src/tokens/service/types/backend.model.js +1 -1
- package/dist/src/transactions/estimate/utils.cjs +1 -1
- package/dist/src/transactions/estimate/utils.d.ts +33 -0
- package/dist/src/transactions/estimate/utils.js +80 -76
- package/dist/src/transactions/service/implementation.cjs +1 -1
- package/dist/src/transactions/service/implementation.d.ts +4 -0
- package/dist/src/transactions/service/implementation.js +89 -96
- package/dist/src/transactions/service/utils.cjs +1 -1
- package/dist/src/transactions/service/utils.d.ts +2 -3
- package/dist/src/transactions/service/utils.js +12 -11
- package/dist/src/transactions/transactionVersion.cjs +1 -1
- package/dist/src/transactions/transactionVersion.d.ts +2 -0
- package/dist/src/transactions/transactionVersion.js +12 -10
- package/dist/src/utils/base58.js +5 -5
- package/dist/src/utils/number/abbreviateNumber.d.ts +2 -1
- package/dist/src/utils/readFileAsString.cjs +1 -1
- package/dist/src/utils/readFileAsString.js +3 -6
- package/package.json +23 -23
- package/dist/node_modules/.pnpm/@starknet-io_types-js@0.7.7/node_modules/@starknet-io/types-js/dist/esm/api/nonspec.cjs +0 -1
- package/dist/node_modules/.pnpm/@starknet-io_types-js@0.7.7/node_modules/@starknet-io/types-js/dist/esm/api/nonspec.js +0 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z as t } from "zod";
|
|
2
2
|
import { severitySchema as y, reasonsSchema as j } from "../warning/schema.js";
|
|
3
3
|
import { estimatedFeesSchema as f } from "../fees/schema.js";
|
|
4
|
-
import {
|
|
4
|
+
import { addressSchema as k, addressSchemaArgentBackend as o } from "../../../chains/starknet/address.js";
|
|
5
5
|
const v = t.object({
|
|
6
6
|
name: t.string(),
|
|
7
7
|
url: t.string(),
|
|
@@ -114,7 +114,7 @@ const v = t.object({
|
|
|
114
114
|
preview: t.string().nullable().optional(),
|
|
115
115
|
full: t.string().nullable().optional(),
|
|
116
116
|
original: t.string().nullable().optional()
|
|
117
|
-
}),
|
|
117
|
+
}), T = t.object({
|
|
118
118
|
twitter: t.string().optional(),
|
|
119
119
|
external: t.string().optional(),
|
|
120
120
|
discord: t.string().optional()
|
|
@@ -129,15 +129,15 @@ const v = t.object({
|
|
|
129
129
|
iconUrl: t.string().optional(),
|
|
130
130
|
unknown: t.boolean().optional(),
|
|
131
131
|
imageUrls: p.optional(),
|
|
132
|
-
links:
|
|
133
|
-
}),
|
|
132
|
+
links: T.optional()
|
|
133
|
+
}), A = t.object({
|
|
134
134
|
tokenAddress: o,
|
|
135
135
|
owner: o,
|
|
136
136
|
spender: o,
|
|
137
137
|
value: t.string().optional(),
|
|
138
138
|
approvalForAll: t.boolean(),
|
|
139
139
|
details: s.optional()
|
|
140
|
-
}),
|
|
140
|
+
}), _ = t.object({
|
|
141
141
|
tokenAddress: o,
|
|
142
142
|
from: o,
|
|
143
143
|
to: o,
|
|
@@ -151,20 +151,22 @@ const v = t.object({
|
|
|
151
151
|
}), i = t.object({
|
|
152
152
|
maxAmount: n,
|
|
153
153
|
maxPricePerUnit: n
|
|
154
|
-
}),
|
|
154
|
+
}), x = t.object({
|
|
155
155
|
l1Gas: i,
|
|
156
156
|
l1DataGas: i,
|
|
157
157
|
l2Gas: i
|
|
158
158
|
}), N = t.object({
|
|
159
159
|
token: m,
|
|
160
160
|
overallFee: n,
|
|
161
|
-
maxFee: n
|
|
162
|
-
|
|
161
|
+
maxFee: n,
|
|
162
|
+
defaultTip: n.optional()
|
|
163
|
+
}), d = t.object({
|
|
163
164
|
overallFee: n,
|
|
164
|
-
resourceBounds:
|
|
165
|
+
resourceBounds: x,
|
|
165
166
|
unit: t.string().transform((a) => a.toUpperCase()).pipe(t.literal("FRI")),
|
|
166
|
-
token: m
|
|
167
|
-
|
|
167
|
+
token: m,
|
|
168
|
+
defaultTip: n.optional()
|
|
169
|
+
}), P = d.or(N), R = t.object({
|
|
168
170
|
type: t.string(),
|
|
169
171
|
label: t.string(),
|
|
170
172
|
tokenId: t.string().optional(),
|
|
@@ -178,10 +180,10 @@ const v = t.object({
|
|
|
178
180
|
imageUrls: p.optional()
|
|
179
181
|
}).optional()
|
|
180
182
|
}), I = t.object({
|
|
181
|
-
approvals: t.array(
|
|
182
|
-
transfers: t.array(
|
|
183
|
+
approvals: t.array(A).optional(),
|
|
184
|
+
transfers: t.array(_).optional(),
|
|
183
185
|
calculatedNonce: t.string().optional(),
|
|
184
|
-
feeEstimation:
|
|
186
|
+
feeEstimation: d,
|
|
185
187
|
feeEstimations: t.array(P),
|
|
186
188
|
summary: t.array(R).optional()
|
|
187
189
|
}), O = t.object({
|
|
@@ -189,7 +191,7 @@ const v = t.object({
|
|
|
189
191
|
code: t.number().optional(),
|
|
190
192
|
message: t.string().optional(),
|
|
191
193
|
error: t.string().optional()
|
|
192
|
-
}),
|
|
194
|
+
}), b = t.object({
|
|
193
195
|
reviewOfTransaction: c,
|
|
194
196
|
simulation: I,
|
|
195
197
|
simulationError: t.undefined().optional()
|
|
@@ -197,7 +199,7 @@ const v = t.object({
|
|
|
197
199
|
reviewOfTransaction: c,
|
|
198
200
|
simulation: t.undefined().optional(),
|
|
199
201
|
simulationError: O
|
|
200
|
-
}), u =
|
|
202
|
+
}), u = b.or(g), S = t.object({
|
|
201
203
|
subsidiseDeployment: t.boolean(),
|
|
202
204
|
subsidiseTransaction: t.boolean()
|
|
203
205
|
}), B = t.object({
|
|
@@ -217,7 +219,7 @@ const v = t.object({
|
|
|
217
219
|
promotions: h.optional()
|
|
218
220
|
});
|
|
219
221
|
function J(a) {
|
|
220
|
-
return
|
|
222
|
+
return b.safeParse(a).success;
|
|
221
223
|
}
|
|
222
224
|
function K(a) {
|
|
223
225
|
return g.safeParse(a).success;
|
|
@@ -228,8 +230,8 @@ export {
|
|
|
228
230
|
q as enrichedSimulateAndReviewSchema,
|
|
229
231
|
i as feeEstimationGasSchema,
|
|
230
232
|
P as feeEstimationNativeOrPaymasterSchema,
|
|
231
|
-
|
|
232
|
-
|
|
233
|
+
x as feeEstimationResourceBoundSchema,
|
|
234
|
+
d as feeEstimationSchema,
|
|
233
235
|
J as isNotTransactionSimulationError,
|
|
234
236
|
K as isTransactionSimulationError,
|
|
235
237
|
N as paymasterFeeEstimationSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("lodash-es"),a=require("starknet"),g=require("../../../transactions/transactionExecuteTypes.cjs"),f=require("../../../utils/url/urlWithQuery.cjs");class y{constructor(t="",o){this.argentAffiliateUrl=t,this.httpService=o}async execute({paymasterParams:t,transactionParams:o,isSubsidised:c,currency:u}){if(_.isEmpty(this.argentAffiliateUrl))throw new Error("Argent affiliate URL is not set");let s;t?s={executeRequest:{...t,signature:t.signature,deploymentData:t.deploymentData,userAddress:t.accountAddress,typedData:t.typedData},isSubsidised:c}:s={transactions:o?.map(e=>{const n=e.resourceBounds?a.stark.resourceBoundsToHexString(e.resourceBounds):void 0,i={type:e.type,calls:e.calls,chainId:e.chainId,cairoVersion:e.cairoVersion,account:e.account,signature:e.signature,nonce:e.nonce,version:e.version,resourceBounds:{l1Gas:{maxAmount:n?.l1_gas?.max_amount,maxPricePerUnit:n?.l1_gas?.max_price_per_unit},l2Gas:{maxAmount:n?.l2_gas?.max_amount,maxPricePerUnit:n?.l2_gas?.max_price_per_unit},l1DataGas:{maxAmount:n?.l1_data_gas?.max_amount,maxPricePerUnit:n?.l1_data_gas?.max_price_per_unit}}};return i.nonceDataAvailabilityMode=e.nonceDataAvailabilityMode,i.feeDataAvailabilityMode=e.feeDataAvailabilityMode,i.tip=e.tip,i})};const l={currency:u},d=f.urlWithQuery(this.argentAffiliateUrl,l),p=await this.httpService.post(d,{body:a.json.stringify(s),headers:{"Content-Type":"application/json"}}),r=g.transactionExecutionResponseSchema.safeParse(p);if(!r.success)throw new Error("Invalid response from swap API");return r.data}}exports.SwapTransactionService=y;
|
|
@@ -1,67 +1,64 @@
|
|
|
1
|
-
import { isEmpty as
|
|
2
|
-
import { json as
|
|
3
|
-
import { transactionExecutionResponseSchema as
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this.argentAffiliateUrl = o, this.httpService = n;
|
|
1
|
+
import { isEmpty as d } from "lodash-es";
|
|
2
|
+
import { stark as f, json as _ } from "starknet";
|
|
3
|
+
import { transactionExecutionResponseSchema as g } from "../../../transactions/transactionExecuteTypes.js";
|
|
4
|
+
import { urlWithQuery as h } from "../../../utils/url/urlWithQuery.js";
|
|
5
|
+
class U {
|
|
6
|
+
constructor(t = "", o) {
|
|
7
|
+
this.argentAffiliateUrl = t, this.httpService = o;
|
|
9
8
|
}
|
|
10
|
-
async execute({ paymasterParams:
|
|
11
|
-
if (
|
|
9
|
+
async execute({ paymasterParams: t, transactionParams: o, isSubsidised: a, currency: c }) {
|
|
10
|
+
if (d(this.argentAffiliateUrl))
|
|
12
11
|
throw new Error("Argent affiliate URL is not set");
|
|
13
|
-
let
|
|
14
|
-
|
|
12
|
+
let r;
|
|
13
|
+
t ? r = {
|
|
15
14
|
executeRequest: {
|
|
16
|
-
...
|
|
17
|
-
signature:
|
|
18
|
-
deploymentData:
|
|
19
|
-
userAddress:
|
|
20
|
-
typedData:
|
|
15
|
+
...t,
|
|
16
|
+
signature: t.signature,
|
|
17
|
+
deploymentData: t.deploymentData,
|
|
18
|
+
userAddress: t.accountAddress,
|
|
19
|
+
typedData: t.typedData
|
|
21
20
|
},
|
|
22
|
-
isSubsidised:
|
|
23
|
-
} :
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
version: e.version
|
|
35
|
-
};
|
|
36
|
-
return e.version === E.V1 ? i.maxFee = e.maxFee : (i.resourceBounds = {
|
|
21
|
+
isSubsidised: a
|
|
22
|
+
} : r = { transactions: o?.map((e) => {
|
|
23
|
+
const n = e.resourceBounds ? f.resourceBoundsToHexString(e.resourceBounds) : void 0, i = {
|
|
24
|
+
type: e.type,
|
|
25
|
+
calls: e.calls,
|
|
26
|
+
chainId: e.chainId,
|
|
27
|
+
cairoVersion: e.cairoVersion,
|
|
28
|
+
account: e.account,
|
|
29
|
+
signature: e.signature,
|
|
30
|
+
nonce: e.nonce,
|
|
31
|
+
version: e.version,
|
|
32
|
+
resourceBounds: {
|
|
37
33
|
l1Gas: {
|
|
38
|
-
maxAmount:
|
|
39
|
-
maxPricePerUnit:
|
|
34
|
+
maxAmount: n?.l1_gas?.max_amount,
|
|
35
|
+
maxPricePerUnit: n?.l1_gas?.max_price_per_unit
|
|
40
36
|
},
|
|
41
37
|
l2Gas: {
|
|
42
|
-
maxAmount:
|
|
43
|
-
maxPricePerUnit:
|
|
38
|
+
maxAmount: n?.l2_gas?.max_amount,
|
|
39
|
+
maxPricePerUnit: n?.l2_gas?.max_price_per_unit
|
|
44
40
|
},
|
|
45
41
|
l1DataGas: {
|
|
46
|
-
maxAmount:
|
|
47
|
-
maxPricePerUnit:
|
|
42
|
+
maxAmount: n?.l1_data_gas?.max_amount,
|
|
43
|
+
maxPricePerUnit: n?.l1_data_gas?.max_price_per_unit
|
|
48
44
|
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
return i.nonceDataAvailabilityMode = e.nonceDataAvailabilityMode, i.feeDataAvailabilityMode = e.feeDataAvailabilityMode, i.tip = e.tip, i;
|
|
48
|
+
}) };
|
|
49
|
+
const u = {
|
|
50
|
+
currency: c
|
|
51
|
+
}, l = h(this.argentAffiliateUrl, u), p = await this.httpService.post(l, {
|
|
52
|
+
body: _.stringify(r),
|
|
56
53
|
headers: {
|
|
57
54
|
"Content-Type": "application/json"
|
|
58
55
|
}
|
|
59
|
-
}),
|
|
60
|
-
if (!
|
|
56
|
+
}), s = g.safeParse(p);
|
|
57
|
+
if (!s.success)
|
|
61
58
|
throw new Error("Invalid response from swap API");
|
|
62
|
-
return
|
|
59
|
+
return s.data;
|
|
63
60
|
}
|
|
64
61
|
}
|
|
65
62
|
export {
|
|
66
|
-
|
|
63
|
+
U as SwapTransactionService
|
|
67
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),o=require("./HttpError.cjs"),u=require("./IHttpService.cjs");class d{constructor(n,e="json"){this.requestInit=n,this.responseType=e}async get(n,e){const s=c.isFunction(this.requestInit)?await this.requestInit():this.requestInit,a={...s,...e,method:"GET",headers:{...s?.headers,...e?.headers}},t=await fetch(n,a).catch(async r=>{let i;throw r instanceof Response&&(i=await r.json().catch(()=>{})),new o.HttpError(u.HTTP_ERROR_MESSAGE.FAILED_TO_FETCH_URL,0,i)});if(this.responseType==="json"){if(!t.ok)throw new o.HttpError(t.statusText,t.status,await t.json().catch(()=>{}));return await t.json()}return t}async post(n,e,s){const a=c.isFunction(this.requestInit)?await this.requestInit():this.requestInit,t={...a,...e,method:"POST",headers:{...a?.headers,...e?.headers}},r=await fetch(n,t).catch(()=>{throw new o.HttpError(u.HTTP_ERROR_MESSAGE.FAILED_TO_POST_URL,0)});if(!r.ok)throw new o.HttpError(r.statusText,r.status,await r.json());if(r.status===204)return{};const i=await r.json();if(s)try{return s.parse(i)}catch(h){throw new o.HttpError(h.message,0)}return i}async put(n,e){const s=c.isFunction(this.requestInit)?await this.requestInit():this.requestInit,a={...s,...e,method:"PUT",headers:{...s?.headers,...e?.headers}},t=await fetch(n,a).catch(()=>{throw new o.HttpError("Failed to put url",0)});if(!t.ok)throw new o.HttpError(t.statusText,t.status);return await t.json()}async delete(n,e){const s=c.isFunction(this.requestInit)?await this.requestInit():this.requestInit,a={...s,...e,method:"DELETE",headers:{...s?.headers,...e?.headers}},t=await fetch(n,a).catch(()=>{throw new o.HttpError("Failed to delete url",0)});if(!t.ok)throw new o.HttpError(t.statusText,t.status)}}exports.HTTPService=d;
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
import { isFunction as
|
|
2
|
-
import { HttpError as
|
|
3
|
-
import { HTTP_ERROR_MESSAGE as
|
|
4
|
-
class
|
|
5
|
-
constructor(
|
|
6
|
-
this.requestInit =
|
|
1
|
+
import { isFunction as h } from "lodash-es";
|
|
2
|
+
import { HttpError as o } from "./HttpError.js";
|
|
3
|
+
import { HTTP_ERROR_MESSAGE as u } from "./IHttpService.js";
|
|
4
|
+
class T {
|
|
5
|
+
constructor(n, e = "json") {
|
|
6
|
+
this.requestInit = n, this.responseType = e;
|
|
7
7
|
}
|
|
8
|
-
async get(
|
|
9
|
-
const s =
|
|
8
|
+
async get(n, e) {
|
|
9
|
+
const s = h(this.requestInit) ? await this.requestInit() : this.requestInit, r = {
|
|
10
10
|
...s,
|
|
11
|
-
...
|
|
11
|
+
...e,
|
|
12
12
|
method: "GET",
|
|
13
13
|
// merge headers
|
|
14
14
|
headers: {
|
|
15
|
-
...s
|
|
16
|
-
...
|
|
15
|
+
...s?.headers,
|
|
16
|
+
...e?.headers
|
|
17
17
|
}
|
|
18
|
-
},
|
|
19
|
-
let
|
|
20
|
-
throw
|
|
21
|
-
})), new
|
|
18
|
+
}, t = await fetch(n, r).catch(async (a) => {
|
|
19
|
+
let i;
|
|
20
|
+
throw a instanceof Response && (i = await a.json().catch(() => {
|
|
21
|
+
})), new o(u.FAILED_TO_FETCH_URL, 0, i);
|
|
22
22
|
});
|
|
23
23
|
if (this.responseType === "json") {
|
|
24
|
-
if (!
|
|
25
|
-
throw new
|
|
24
|
+
if (!t.ok)
|
|
25
|
+
throw new o(t.statusText, t.status, await t.json().catch(() => {
|
|
26
26
|
}));
|
|
27
|
-
return await
|
|
27
|
+
return await t.json();
|
|
28
28
|
}
|
|
29
|
-
return
|
|
29
|
+
return t;
|
|
30
30
|
}
|
|
31
|
-
async post(
|
|
32
|
-
const
|
|
33
|
-
...
|
|
34
|
-
...
|
|
31
|
+
async post(n, e, s) {
|
|
32
|
+
const r = h(this.requestInit) ? await this.requestInit() : this.requestInit, t = {
|
|
33
|
+
...r,
|
|
34
|
+
...e,
|
|
35
35
|
method: "POST",
|
|
36
36
|
// merge headers
|
|
37
37
|
headers: {
|
|
38
|
-
...
|
|
39
|
-
...
|
|
38
|
+
...r?.headers,
|
|
39
|
+
...e?.headers
|
|
40
40
|
}
|
|
41
|
-
},
|
|
42
|
-
throw new
|
|
41
|
+
}, a = await fetch(n, t).catch(() => {
|
|
42
|
+
throw new o(u.FAILED_TO_POST_URL, 0);
|
|
43
43
|
});
|
|
44
|
-
if (!
|
|
45
|
-
throw new
|
|
46
|
-
if (
|
|
44
|
+
if (!a.ok)
|
|
45
|
+
throw new o(a.statusText, a.status, await a.json());
|
|
46
|
+
if (a.status === 204)
|
|
47
47
|
return {};
|
|
48
|
-
const
|
|
48
|
+
const i = await a.json();
|
|
49
49
|
if (s)
|
|
50
50
|
try {
|
|
51
|
-
return s.parse(
|
|
52
|
-
} catch (
|
|
53
|
-
throw new
|
|
51
|
+
return s.parse(i);
|
|
52
|
+
} catch (c) {
|
|
53
|
+
throw new o(c.message, 0);
|
|
54
54
|
}
|
|
55
|
-
return
|
|
55
|
+
return i;
|
|
56
56
|
}
|
|
57
|
-
async put(
|
|
58
|
-
const s =
|
|
57
|
+
async put(n, e) {
|
|
58
|
+
const s = h(this.requestInit) ? await this.requestInit() : this.requestInit, r = {
|
|
59
59
|
...s,
|
|
60
|
-
...
|
|
60
|
+
...e,
|
|
61
61
|
method: "PUT",
|
|
62
62
|
// merge headers
|
|
63
63
|
headers: {
|
|
64
|
-
...s
|
|
65
|
-
...
|
|
64
|
+
...s?.headers,
|
|
65
|
+
...e?.headers
|
|
66
66
|
}
|
|
67
|
-
},
|
|
68
|
-
throw new
|
|
67
|
+
}, t = await fetch(n, r).catch(() => {
|
|
68
|
+
throw new o("Failed to put url", 0);
|
|
69
69
|
});
|
|
70
|
-
if (!
|
|
71
|
-
throw new
|
|
72
|
-
return await
|
|
70
|
+
if (!t.ok)
|
|
71
|
+
throw new o(t.statusText, t.status);
|
|
72
|
+
return await t.json();
|
|
73
73
|
}
|
|
74
|
-
async delete(
|
|
75
|
-
const s =
|
|
74
|
+
async delete(n, e) {
|
|
75
|
+
const s = h(this.requestInit) ? await this.requestInit() : this.requestInit, r = {
|
|
76
76
|
...s,
|
|
77
|
-
...
|
|
77
|
+
...e,
|
|
78
78
|
method: "DELETE",
|
|
79
79
|
// merge headers
|
|
80
80
|
headers: {
|
|
81
|
-
...s
|
|
82
|
-
...
|
|
81
|
+
...s?.headers,
|
|
82
|
+
...e?.headers
|
|
83
83
|
}
|
|
84
|
-
},
|
|
85
|
-
throw new
|
|
84
|
+
}, t = await fetch(n, r).catch(() => {
|
|
85
|
+
throw new o("Failed to delete url", 0);
|
|
86
86
|
});
|
|
87
|
-
if (!
|
|
88
|
-
throw new
|
|
87
|
+
if (!t.ok)
|
|
88
|
+
throw new o(t.statusText, t.status);
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
export {
|
|
92
|
-
|
|
92
|
+
T as HTTPService
|
|
93
93
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function n(p){return p?.links?.find(a=>a.name==="dappland")}function r(p){return n(p)?.url}exports.getDapplandLinkForDapp=n;exports.getDapplandUrlForDapp=r;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
return (r = n == null ? void 0 : n.links) == null ? void 0 : r.find((t) => t.name === "dappland");
|
|
1
|
+
function a(n) {
|
|
2
|
+
return n?.links?.find((p) => p.name === "dappland");
|
|
4
3
|
}
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
return (r = e(n)) == null ? void 0 : r.url;
|
|
4
|
+
function r(n) {
|
|
5
|
+
return a(n)?.url;
|
|
8
6
|
}
|
|
9
7
|
export {
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
a as getDapplandLinkForDapp,
|
|
9
|
+
r as getDapplandUrlForDapp
|
|
12
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("url-join"),f=require("./BackendPaginationError.cjs"),A=require("../
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("url-join"),f=require("./BackendPaginationError.cjs"),A=require("../utils/address.cjs"),P=require("../chains/starknet/address.cjs"),u=32;class S{constructor(e,t){this.apiBase=e,this.httpService=t}async getNfts(e,t,a,s=1){const r=this.normalizeAddress(a),c=o(this.apiBase,"pandora",e,t),m=this.pageToPageIndex(s),l=`${o(c,"profile",r,"nfts")}?page=${m}&size=${u}`,i=await this.httpService.get(l),n=i.content.map(p=>this.mapItem(p,a));return{totalPages:i.totalPages,page:i.number+1,count:n.length,nfts:n}}async getCollection(e,t,a){const s=this.normalizeAddress(a),r=o(this.apiBase,"pandora",e,t),c=o(r,"collection",s),m=`${r}/collection/${s}`,[g,l]=await Promise.all([this.httpService.get(c),this.httpService.get(m)]),i=h(g),n=l.content.map(p=>this.mapItem(p));return{...i,nfts:{totalPages:l.totalPages,page:l.number,count:n.length,data:n}}}async getNft(e,t,a,s){const r=this.normalizeAddress(a),c=o(this.apiBase,"pandora",e,t),m=o(c,"nft",r,s),g=await this.httpService.get(m);return this.mapItem(g)}async getProfileCollections(e,t,a,s=1,r=!1){const c=this.pageToPageIndex(s),m=this.normalizeAddress(a),g=o(this.apiBase,"pandora",e,t),l=o(g,"profile",m,"collections",`?page=${c}&size=${u}`),i=await this.httpService.get(l),n=[];for(const p of i.content)if(r){const b=await this.getCollectionMetrics(e,t,p.contractAddress);n.push(h(p,b))}else n.push(h(p));return{totalPages:i.totalPages,page:i.number+1,count:n.length,collections:n}}async getCollectionMetrics(e,t,a){const s=this.normalizeAddress(a),r=o(this.apiBase,"pandora",e,t),c=o(r,"collection",s,"metrics");return this.httpService.get(c)}normalizeAddress(e){return P.addressSchemaArgentBackend.parse(e)}pageToPageIndex(e){if(!Number.isInteger(e))throw new f.BackendPaginationError("notANumber");const t=e-1;if(t<0)throw new f.BackendPaginationError("tooLow");return t}mapItem(e,t){const a=e.name??e.tokenId;return{token_id:e.tokenId,contract_address:e.contractAddress,name:a,spec:"spec"in e?v(e.spec):void 0,description:"",best_bid_order:{payment_amount:"bestListPrice"in e?BigInt(e.bestListPrice):void 0},properties:"properties"in e&&e.properties.map(s=>({key:s.key,value:s.value}))||[],image_uri:e.imageUrls.preview,image_url_copy:e.imageUrls.full,owner:{account_address:e.owner?.address||t},contract_name:A.formatAddress(e.contractAddress)}}}function v(d){switch(d){case"erc721":case"starknetErc721":return"ERC721";case"erc1155":case"starknetErc1155":return"ERC1155"}}function h(d,e){return{contractAddress:P.addressSchema.parse(d.contractAddress),name:d.name||A.formatAddress(d.contractAddress),description:d.description??"",imageUri:d.imageUrls.preview,...e&&{owners:{total:e.numberOfItems,unique:e.uniqueOwners},...e.floorPrice&&{floorPrice:BigInt(e.floorPrice)}}}}exports.BackendNftService=S;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import n from "url-join";
|
|
2
2
|
import { BackendPaginationError as f } from "./BackendPaginationError.js";
|
|
3
|
-
import { addressSchema as P, addressSchemaArgentBackend as S } from "../chains/starknet/address.js";
|
|
4
3
|
import { formatAddress as b } from "../utils/address.js";
|
|
4
|
+
import { addressSchemaArgentBackend as P, addressSchema as S } from "../chains/starknet/address.js";
|
|
5
5
|
const A = 32;
|
|
6
6
|
class k {
|
|
7
7
|
constructor(e, t) {
|
|
8
8
|
this.apiBase = e, this.httpService = t;
|
|
9
9
|
}
|
|
10
|
-
async getNfts(e, t,
|
|
11
|
-
const
|
|
10
|
+
async getNfts(e, t, o, s = 1) {
|
|
11
|
+
const a = this.normalizeAddress(o), c = n(this.apiBase, "pandora", e, t), m = this.pageToPageIndex(s), l = `${n(c, "profile", a, "nfts")}?page=${m}&size=${A}`, i = await this.httpService.get(l), r = i.content.map((p) => this.mapItem(p, o));
|
|
12
12
|
return {
|
|
13
13
|
totalPages: i.totalPages,
|
|
14
14
|
page: i.number + 1,
|
|
@@ -16,8 +16,8 @@ class k {
|
|
|
16
16
|
nfts: r
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
async getCollection(e, t,
|
|
20
|
-
const s = this.normalizeAddress(
|
|
19
|
+
async getCollection(e, t, o) {
|
|
20
|
+
const s = this.normalizeAddress(o), a = n(this.apiBase, "pandora", e, t), c = n(a, "collection", s), m = `${a}/collection/${s}`, [g, l] = await Promise.all([
|
|
21
21
|
this.httpService.get(c),
|
|
22
22
|
this.httpService.get(m)
|
|
23
23
|
]), i = h(g), r = l.content.map((p) => this.mapItem(p));
|
|
@@ -31,14 +31,14 @@ class k {
|
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
async getNft(e, t,
|
|
35
|
-
const
|
|
34
|
+
async getNft(e, t, o, s) {
|
|
35
|
+
const a = this.normalizeAddress(o), c = n(this.apiBase, "pandora", e, t), m = n(c, "nft", a, s), g = await this.httpService.get(m);
|
|
36
36
|
return this.mapItem(g);
|
|
37
37
|
}
|
|
38
|
-
async getProfileCollections(e, t,
|
|
39
|
-
const c = this.pageToPageIndex(s), m = this.normalizeAddress(
|
|
38
|
+
async getProfileCollections(e, t, o, s = 1, a = !1) {
|
|
39
|
+
const c = this.pageToPageIndex(s), m = this.normalizeAddress(o), g = n(this.apiBase, "pandora", e, t), l = n(g, "profile", m, "collections", `?page=${c}&size=${A}`), i = await this.httpService.get(l), r = [];
|
|
40
40
|
for (const p of i.content)
|
|
41
|
-
if (
|
|
41
|
+
if (a) {
|
|
42
42
|
const u = await this.getCollectionMetrics(e, t, p.contractAddress);
|
|
43
43
|
r.push(h(p, u));
|
|
44
44
|
} else
|
|
@@ -50,12 +50,12 @@ class k {
|
|
|
50
50
|
collections: r
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
async getCollectionMetrics(e, t,
|
|
54
|
-
const s = this.normalizeAddress(
|
|
53
|
+
async getCollectionMetrics(e, t, o) {
|
|
54
|
+
const s = this.normalizeAddress(o), a = n(this.apiBase, "pandora", e, t), c = n(a, "collection", s, "metrics");
|
|
55
55
|
return this.httpService.get(c);
|
|
56
56
|
}
|
|
57
57
|
normalizeAddress(e) {
|
|
58
|
-
return
|
|
58
|
+
return P.parse(e);
|
|
59
59
|
}
|
|
60
60
|
pageToPageIndex(e) {
|
|
61
61
|
if (!Number.isInteger(e))
|
|
@@ -66,22 +66,21 @@ class k {
|
|
|
66
66
|
return t;
|
|
67
67
|
}
|
|
68
68
|
mapItem(e, t) {
|
|
69
|
-
|
|
70
|
-
const a = e.name ?? e.tokenId;
|
|
69
|
+
const o = e.name ?? e.tokenId;
|
|
71
70
|
return {
|
|
72
71
|
token_id: e.tokenId,
|
|
73
72
|
contract_address: e.contractAddress,
|
|
74
|
-
name:
|
|
73
|
+
name: o,
|
|
75
74
|
spec: "spec" in e ? w(e.spec) : void 0,
|
|
76
75
|
description: "",
|
|
77
76
|
best_bid_order: {
|
|
78
77
|
payment_amount: "bestListPrice" in e ? BigInt(e.bestListPrice) : void 0
|
|
79
78
|
},
|
|
80
|
-
properties: "properties" in e && e.properties.map((
|
|
79
|
+
properties: "properties" in e && e.properties.map((s) => ({ key: s.key, value: s.value })) || [],
|
|
81
80
|
image_uri: e.imageUrls.preview,
|
|
82
81
|
image_url_copy: e.imageUrls.full,
|
|
83
82
|
owner: {
|
|
84
|
-
account_address:
|
|
83
|
+
account_address: e.owner?.address || t
|
|
85
84
|
},
|
|
86
85
|
contract_name: b(e.contractAddress)
|
|
87
86
|
};
|
|
@@ -99,7 +98,7 @@ function w(d) {
|
|
|
99
98
|
}
|
|
100
99
|
function h(d, e) {
|
|
101
100
|
return {
|
|
102
|
-
contractAddress:
|
|
101
|
+
contractAddress: S.parse(d.contractAddress),
|
|
103
102
|
name: d.name || b(d.contractAddress),
|
|
104
103
|
description: d.description ?? "",
|
|
105
104
|
imageUri: d.imageUrls.preview,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("url-join"),r=require("../../utils/retryUntilInitialised.cjs"),i=require("./types/backend.model.cjs"),h=require("../../utils/schemas.cjs");class d{constructor(
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("url-join"),r=require("../../utils/retryUntilInitialised.cjs"),i=require("./types/backend.model.cjs"),h=require("../../utils/schemas.cjs");class d{constructor(s,e){this.apiBase=s,this.httpService=e,this.TOKENS_INFO_URL="/tokens/info"}async fetchTokensInfoFromBackend(s){const e=o(this.apiBase,this.TOKENS_INFO_URL,s??"","?chain=starknet"),t=await this.httpService.get(e),n=i.apiTokensInfoResponseSchema.safeParse(t);if(n.success)return n.data.tokens;const a=i.apiTokenInfoResponseSchema.safeParse(t);if(a.success)return[a.data]}async fetchAddressTokenBalancesFromBackend(s,e,t){const n=o(this.apiBase,"activity","starknet",e,"account",s,"balance"),a=await r.retryUntilInitialised(()=>this.httpService.get(n),i.apiAccountTokenBalancesSchema,t);return(a?.status==="initialised"?a.balances:[]).map(c=>({address:c.tokenAddress,balance:c.tokenBalance,networkId:e}))}async fetchDefiDecomposition(s,e){const t=o(this.apiBase,"tokens/defi",s,"investments","?chain=starknet",`&application=${e}`),n=await this.httpService.get(t);return h.safeParseAndWarn(i.apiDefiPositionsSchema,n).success||console.error("Backend schema has changed. Make the changes to the models to prevent unknown/unhandled errors."),n.dapps}}exports.TokenServiceWeb=d;
|
|
@@ -3,37 +3,37 @@ import { retryUntilInitialised as c } from "../../utils/retryUntilInitialised.js
|
|
|
3
3
|
import { apiTokensInfoResponseSchema as r, apiTokenInfoResponseSchema as p, apiAccountTokenBalancesSchema as h, apiDefiPositionsSchema as d } from "./types/backend.model.js";
|
|
4
4
|
import { safeParseAndWarn as k } from "../../utils/schemas.js";
|
|
5
5
|
class v {
|
|
6
|
-
constructor(
|
|
7
|
-
this.apiBase =
|
|
6
|
+
constructor(s, e) {
|
|
7
|
+
this.apiBase = s, this.httpService = e, this.TOKENS_INFO_URL = "/tokens/info";
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Fetch tokens info from backend
|
|
11
11
|
* @param {Address} tokenAddress - The token address.
|
|
12
12
|
* @returns {Promise<ApiTokenInfo[]>} - The fetched tokens or undefined if there was an error or not default network
|
|
13
13
|
*/
|
|
14
|
-
async fetchTokensInfoFromBackend(
|
|
15
|
-
const e = o(this.apiBase, this.TOKENS_INFO_URL,
|
|
14
|
+
async fetchTokensInfoFromBackend(s) {
|
|
15
|
+
const e = o(this.apiBase, this.TOKENS_INFO_URL, s ?? "", "?chain=starknet"), t = await this.httpService.get(e), n = r.safeParse(t);
|
|
16
16
|
if (n.success)
|
|
17
17
|
return n.data.tokens;
|
|
18
|
-
const
|
|
19
|
-
if (
|
|
20
|
-
return [
|
|
18
|
+
const a = p.safeParse(t);
|
|
19
|
+
if (a.success)
|
|
20
|
+
return [a.data];
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Fetch list of tokens and balances for given account from backend
|
|
24
24
|
* @param {Address} address - The account address.
|
|
25
25
|
* @returns {Promise<WebBaseTokenWithBalance[]>} - The fetched balances for the account address.
|
|
26
26
|
*/
|
|
27
|
-
async fetchAddressTokenBalancesFromBackend(
|
|
28
|
-
const n = o(this.apiBase, "activity", "starknet", e, "account",
|
|
29
|
-
return (
|
|
27
|
+
async fetchAddressTokenBalancesFromBackend(s, e, t) {
|
|
28
|
+
const n = o(this.apiBase, "activity", "starknet", e, "account", s, "balance"), a = await c(() => this.httpService.get(n), h, t);
|
|
29
|
+
return (a?.status === "initialised" ? a.balances : []).map((i) => ({
|
|
30
30
|
address: i.tokenAddress,
|
|
31
31
|
balance: i.tokenBalance,
|
|
32
32
|
networkId: e
|
|
33
33
|
}));
|
|
34
34
|
}
|
|
35
|
-
async fetchDefiDecomposition(
|
|
36
|
-
const
|
|
35
|
+
async fetchDefiDecomposition(s, e) {
|
|
36
|
+
const t = o(this.apiBase, "tokens/defi", s, "investments", "?chain=starknet", `&application=${e}`), n = await this.httpService.get(t);
|
|
37
37
|
return k(d, n).success || console.error("Backend schema has changed. Make the changes to the models to prevent unknown/unhandled errors."), n.dapps;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z as t } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { addressSchemaArgentBackend as o, addressSchema as a } from "../../../chains/starknet/address.js";
|
|
3
3
|
import { defiPositionTypeSchema as d } from "./defiPositionType.model.js";
|
|
4
4
|
import { createSchemaWithWarnings as g } from "../../../utils/schemas.js";
|
|
5
5
|
const P = t.object({
|