@xoxno/sdk-js 1.0.127 → 1.0.129
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/README.md +0 -3
- package/dist/index.bundled.d.cts +12 -14
- package/dist/index.bundled.d.ts +12 -14
- package/dist/index.cjs +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/sdk/stellar/lending.d.ts +11 -1
- package/dist/sdk/swagger.d.ts +1 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -290,9 +290,6 @@ sdk.collection.drops.search(...); // CollectionMintProfilePaginated
|
|
|
290
290
|
// GET /collection/:collection/analytics/volume
|
|
291
291
|
sdk.collection.collection("...").analytics.volume(...); // AnalyticsVolumeDto[]
|
|
292
292
|
|
|
293
|
-
// GET /collections/analytics/volume
|
|
294
|
-
sdk.collections.analytics.volume(...); // Record<string, AnalyticsVolumeDto[]>
|
|
295
|
-
|
|
296
293
|
// GET /countries
|
|
297
294
|
sdk.countries(...); // string[]
|
|
298
295
|
|
package/dist/index.bundled.d.cts
CHANGED
|
@@ -418,9 +418,7 @@ declare const endpoints: {
|
|
|
418
418
|
readonly output: LendingAccountProfile[];
|
|
419
419
|
};
|
|
420
420
|
readonly "/lending/market/indexes": {
|
|
421
|
-
readonly input: {
|
|
422
|
-
chain?: ActivityChain[];
|
|
423
|
-
};
|
|
421
|
+
readonly input: {};
|
|
424
422
|
readonly output: Record<string, LendingIndexesDto>;
|
|
425
423
|
};
|
|
426
424
|
readonly "/user/lending/position/:identifier": {
|
|
@@ -1179,16 +1177,6 @@ declare const endpoints: {
|
|
|
1179
1177
|
};
|
|
1180
1178
|
readonly output: AnalyticsVolumeDto[];
|
|
1181
1179
|
};
|
|
1182
|
-
readonly "/collections/analytics/volume": {
|
|
1183
|
-
readonly input: {
|
|
1184
|
-
collections: string;
|
|
1185
|
-
startTime?: string;
|
|
1186
|
-
endTime?: string;
|
|
1187
|
-
bin?: string;
|
|
1188
|
-
chain: ActivityChain[];
|
|
1189
|
-
};
|
|
1190
|
-
readonly output: Record<string, AnalyticsVolumeDto[]>;
|
|
1191
|
-
};
|
|
1192
1180
|
readonly "/user/:address/analytics/volume": {
|
|
1193
1181
|
readonly input: {};
|
|
1194
1182
|
readonly output: UserAnalyticsDto;
|
|
@@ -2243,6 +2231,14 @@ export interface StellarBorrowBatchArgs {
|
|
|
2243
2231
|
export interface StellarWithdrawBatchArgs {
|
|
2244
2232
|
accountNonce: number;
|
|
2245
2233
|
withdrawals: ReadonlyArray<StellarTokenAmount>;
|
|
2234
|
+
/**
|
|
2235
|
+
* Optional recipient override (`C...` or `G...`). The pool pays the
|
|
2236
|
+
* withdrawn tokens to this address instead of the caller. Omit for the
|
|
2237
|
+
* standard flow — the contract arg is still sent, encoded as
|
|
2238
|
+
* `Option::None` (ScVal void), which the controller resolves to the
|
|
2239
|
+
* caller.
|
|
2240
|
+
*/
|
|
2241
|
+
to?: string;
|
|
2246
2242
|
}
|
|
2247
2243
|
export interface StellarRepayBatchArgs {
|
|
2248
2244
|
accountNonce: number;
|
|
@@ -2264,7 +2260,9 @@ export declare function buildStellarBorrowBatchTx(opts: StellarBuilderOptions, a
|
|
|
2264
2260
|
export declare function buildStellarBorrowTx(opts: StellarBuilderOptions, args: BorrowArgs): BuiltStellarTx;
|
|
2265
2261
|
export declare function buildStellarWithdrawBatchTx(opts: StellarBuilderOptions, args: StellarWithdrawBatchArgs): BuiltStellarTx;
|
|
2266
2262
|
/**
|
|
2267
|
-
* withdraw(caller, account_id: u64, withdrawals: Vec<(Address, i128)
|
|
2263
|
+
* withdraw(caller, account_id: u64, withdrawals: Vec<(Address, i128)>,
|
|
2264
|
+
* to: Option<Address>) — `to` is always sent; absent means the caller
|
|
2265
|
+
* receives the funds.
|
|
2268
2266
|
*/
|
|
2269
2267
|
export declare function buildStellarWithdrawTx(opts: StellarBuilderOptions, args: WithdrawArgs): BuiltStellarTx;
|
|
2270
2268
|
export declare function buildStellarRepayBatchTx(opts: StellarBuilderOptions, args: StellarRepayBatchArgs): BuiltStellarTx;
|
package/dist/index.bundled.d.ts
CHANGED
|
@@ -418,9 +418,7 @@ declare const endpoints: {
|
|
|
418
418
|
readonly output: LendingAccountProfile[];
|
|
419
419
|
};
|
|
420
420
|
readonly "/lending/market/indexes": {
|
|
421
|
-
readonly input: {
|
|
422
|
-
chain?: ActivityChain[];
|
|
423
|
-
};
|
|
421
|
+
readonly input: {};
|
|
424
422
|
readonly output: Record<string, LendingIndexesDto>;
|
|
425
423
|
};
|
|
426
424
|
readonly "/user/lending/position/:identifier": {
|
|
@@ -1179,16 +1177,6 @@ declare const endpoints: {
|
|
|
1179
1177
|
};
|
|
1180
1178
|
readonly output: AnalyticsVolumeDto[];
|
|
1181
1179
|
};
|
|
1182
|
-
readonly "/collections/analytics/volume": {
|
|
1183
|
-
readonly input: {
|
|
1184
|
-
collections: string;
|
|
1185
|
-
startTime?: string;
|
|
1186
|
-
endTime?: string;
|
|
1187
|
-
bin?: string;
|
|
1188
|
-
chain: ActivityChain[];
|
|
1189
|
-
};
|
|
1190
|
-
readonly output: Record<string, AnalyticsVolumeDto[]>;
|
|
1191
|
-
};
|
|
1192
1180
|
readonly "/user/:address/analytics/volume": {
|
|
1193
1181
|
readonly input: {};
|
|
1194
1182
|
readonly output: UserAnalyticsDto;
|
|
@@ -2243,6 +2231,14 @@ export interface StellarBorrowBatchArgs {
|
|
|
2243
2231
|
export interface StellarWithdrawBatchArgs {
|
|
2244
2232
|
accountNonce: number;
|
|
2245
2233
|
withdrawals: ReadonlyArray<StellarTokenAmount>;
|
|
2234
|
+
/**
|
|
2235
|
+
* Optional recipient override (`C...` or `G...`). The pool pays the
|
|
2236
|
+
* withdrawn tokens to this address instead of the caller. Omit for the
|
|
2237
|
+
* standard flow — the contract arg is still sent, encoded as
|
|
2238
|
+
* `Option::None` (ScVal void), which the controller resolves to the
|
|
2239
|
+
* caller.
|
|
2240
|
+
*/
|
|
2241
|
+
to?: string;
|
|
2246
2242
|
}
|
|
2247
2243
|
export interface StellarRepayBatchArgs {
|
|
2248
2244
|
accountNonce: number;
|
|
@@ -2264,7 +2260,9 @@ export declare function buildStellarBorrowBatchTx(opts: StellarBuilderOptions, a
|
|
|
2264
2260
|
export declare function buildStellarBorrowTx(opts: StellarBuilderOptions, args: BorrowArgs): BuiltStellarTx;
|
|
2265
2261
|
export declare function buildStellarWithdrawBatchTx(opts: StellarBuilderOptions, args: StellarWithdrawBatchArgs): BuiltStellarTx;
|
|
2266
2262
|
/**
|
|
2267
|
-
* withdraw(caller, account_id: u64, withdrawals: Vec<(Address, i128)
|
|
2263
|
+
* withdraw(caller, account_id: u64, withdrawals: Vec<(Address, i128)>,
|
|
2264
|
+
* to: Option<Address>) — `to` is always sent; absent means the caller
|
|
2265
|
+
* receives the funds.
|
|
2268
2266
|
*/
|
|
2269
2267
|
export declare function buildStellarWithdrawTx(opts: StellarBuilderOptions, args: WithdrawArgs): BuiltStellarTx;
|
|
2270
2268
|
export declare function buildStellarRepayBatchTx(opts: StellarBuilderOptions, args: StellarRepayBatchArgs): BuiltStellarTx;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"undefined"!=typeof globalThis&&void 0===globalThis.self&&(globalThis.self=globalThis),(()=>{"use strict";var t={d:(e,o)=>{for(var r in o)t.o(o,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:o[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Chain:()=>i,STELLAR_AGGREGATOR_ROUTER:()=>_,STELLAR_LENDING_CONTROLLER:()=>f,STELLAR_LENDING_TOPICS:()=>se,STELLAR_NETWORK_PASSPHRASE:()=>q,STELLAR_QUOTE_URL:()=>g,STELLAR_SOROBAN_RPC_URL:()=>m,SYNTHETIC_EVENT_ORDER_STRIDE:()=>le,XOXNOClient:()=>a,XOXNO_LENDING_STELLAR_TICKER:()=>de,buildSameTokenRepaySwapSteps:()=>Re,buildSdk:()=>Ne,buildStellarAcceptOwnershipTx:()=>qt,buildStellarAddAssetToEModeCategoryTx:()=>Et,buildStellarAddEModeCategoryTx:()=>At,buildStellarAddRewardsTx:()=>jt,buildStellarApproveTokenTx:()=>Ot,buildStellarBatchSwapTx:()=>ve,buildStellarBorrowBatchTx:()=>X,buildStellarBorrowTx:()=>F,buildStellarCctpForwardTx:()=>Ce,buildStellarClaimRevenueTx:()=>zt,buildStellarConfigureMarketOracleTx:()=>It,buildStellarCreateLiquidityPoolTx:()=>Nt,buildStellarDisableTokenOracleTx:()=>Bt,buildStellarEditAssetConfigTx:()=>vt,buildStellarEditAssetInEModeCategoryTx:()=>Mt,buildStellarEditEModeCategoryTx:()=>xt,buildStellarEditOracleToleranceTx:()=>Ct,buildStellarExecuteStrategyTx:()=>we,buildStellarFlashLoanTx:()=>J,buildStellarGrantRoleTx:()=>_t,buildStellarLendingIdentifier:()=>ce,buildStellarLiquidateTx:()=>K,buildStellarMigrateTx:()=>yt,buildStellarMultiplyTx:()=>Y,buildStellarPauseTx:()=>bt,buildStellarRemoveAssetFromEModeTx:()=>Pt,buildStellarRemoveEModeCategoryTx:()=>kt,buildStellarRenewAccountTx:()=>Lt,buildStellarRepayBatchTx:()=>Z,buildStellarRepayDebtWithCollateralTx:()=>ot,buildStellarRepayTx:()=>Q,buildStellarRevokeRoleTx:()=>mt,buildStellarRevokeTokenTx:()=>Rt,buildStellarSetAccumulatorTx:()=>St,buildStellarSetAggregatorTx:()=>ht,buildStellarSetLiquidityPoolTemplateTx:()=>wt,buildStellarSetPositionLimitsTx:()=>Tt,buildStellarSupplyBatchTx:()=>W,buildStellarSupplyTx:()=>V,buildStellarSwapCollateralTx:()=>et,buildStellarSwapDebtTx:()=>tt,buildStellarTransferOwnershipTx:()=>gt,buildStellarUnpauseTx:()=>ft,buildStellarUpdateAccountThresholdTx:()=>Wt,buildStellarUpdateIndexesTx:()=>Ut,buildStellarUpgradeControllerTx:()=>ct,buildStellarUpgradeLiquidityPoolParamsTx:()=>Dt,buildStellarUpgradeLiquidityPoolTx:()=>$t,buildStellarWithdrawBatchTx:()=>H,buildStellarWithdrawTx:()=>G,buildTx:()=>j,decodeStellarLendingEvent:()=>pe,encodeAssetConfigRaw:()=>it,encodeInterestRateModel:()=>ut,encodeMarketOracleConfigInput:()=>lt,encodeMarketParamsRaw:()=>nt,encodeOracleSourceConfigInput:()=>dt,encodePositionLimits:()=>at,encodeStrategyPayloadToRouteXdr:()=>Se,extractEventOrder:()=>ye,getStellarAggregatorQuote:()=>ge,getStellarAggregatorRouter:()=>S,getStellarLendingController:()=>h,getStellarQuoteTokens:()=>qe,isValidCollectionTicker:()=>s,isValidNftIdentifier:()=>p,mapQuoteResponseToAggregatorSwap:()=>xe,mapQuoteResponseToStrategyPayload:()=>Te,mapQuoteResponseToStrategySwap:()=>Ae,mapStellarPositionActivityType:()=>fe,prepareStellarBuiltTx:()=>Pe,prepareStellarTxXdr:()=>Me,stellarLendingDispatchKey:()=>Ft,syntheticEventOrder:()=>be,tagStellarInvokedContractError:()=>Ee,toBase64Xdr:()=>Vt,toStellarPositionMode:()=>Oe});const o="https://api.xoxno.com",r="erd1qqqqqqqqqqqqqpgq705fxpfrjne0tl3ece0rrspykq88mynn4kxs2cg43s",u="erd1qqqqqqqqqqqqqpgqd9rvv2n378e27jcts8vfwynpx0gfl5ufz6hqhfy0u0",n="erd1qqqqqqqqqqqqqpgq8xwzu82v8ex3h4ayl5lsvxqxnhecpwyvwe0sf2qj4e";var i;!function(t){t.MAINNET="1",t.DEVNET="D"}(i||(i={}));class a{apiUrl;chain;init;config;constructor({chain:t=i.MAINNET,apiUrl:e=o,...a}={}){this.apiUrl=e??{[i.MAINNET]:o,[i.DEVNET]:"https://devnet-api.xoxno.com"}[t],this.chain=t,this.init=a,this.config=t==i.MAINNET?{mediaUrl:"https://media.xoxno.com",gatewayUrl:"https://gateway.xoxno.com",XO_SC:"erd1qqqqqqqqqqqqqpgq6wegs2xkypfpync8mn2sa5cmpqjlvrhwz5nqgepyg8",FM_SC:r,DR_SC:u,KG_SC:n,Staking_SC:"erd1qqqqqqqqqqqqqpgqvpkd3g3uwludduv3797j54qt6c888wa59w2shntt6z",Manager_SC:"erd1qqqqqqqqqqqqqpgqg9fa0dmpn8fu3fnleeqn5zt8rl8mdqjkys5s2gtas7",P2P_SC:"erd1qqqqqqqqqqqqqpgq47y8hnct68v6asjv6gxem6h9rumn9frzah0skhxxt6"}:{mediaUrl:"https://devnet-media.xoxno.com",gatewayUrl:"https://devnet-gateway.xoxno.com",XO_SC:"erd1qqqqqqqqqqqqqpgql0dnz6n5hpuw8cptlt00khd0nn4ja8eadsfq2xrqw4",FM_SC:r,DR_SC:u,KG_SC:n,Staking_SC:"erd1qqqqqqqqqqqqqpgqsc5hnewwpep8qq0d7kjjzrquapuucrygah0s85zres",Manager_SC:"erd1qqqqqqqqqqqqqpgqluclyhfsa2uw7q9cjwd8knk989hg57u8ah0slq2nlr",P2P_SC:"erd1qqqqqqqqqqqqqpgqfja7ukpngrun78ueq583l0vd6aj4ekhrah0sa9wyrv"}}fetchWithTimeout=async(t,{params:e,...o}={})=>{const{next:r,cache:u,debug:n,...i}=this.init,{next:a,cache:s,debug:p,headers:d,method:l="GET",...c}=o,y=d?.Authorization,b="Bearer undefined"===y?void 0:y,f={...d,Referer:"https://xoxno.sdk","User-Agent":"XOXNO/1.0/SDK",..."PUT"===l?{}:{"Content-Type":"application/json"},...b?{Authorization:b}:{}},_=Object.entries(e??{}).flatMap((([t,e])=>Array.isArray(e)?e.map((e=>`${t}=${encodeURIComponent(e)}`)):`${t}=${encodeURIComponent(e)}`)).join("&"),m=`${this.apiUrl}${t}${_.length?`?${_}`:""}`,{revalidate:g,...q}=r??{},{revalidate:h,...S}=a??{},w="GET"!==l||b?void 0:h??g,v="GET"!==l||b||w?void 0:s??u,T={...i,...c,method:l,...Object.keys(f).length?{headers:f}:{},cache:v,next:{...q,...S,revalidate:w}};(p??n)&&console.debug("SDK fetch: ",m,T);const A=await fetch(m,T).catch((t=>{if(t instanceof Error&&!t.message.match(/^http(s?):\/\//))throw new Error(`${m}: ${t.message}`);throw t})),x=await A.text();if(!A.ok){let t;try{t=JSON.parse(x)}catch{t={message:x}}const e=[m,A.status,A.statusText,t.message].filter(Boolean).join(";;");throw new Error(e)}try{return JSON.parse(x)}catch{return x}}}const s=t=>{const e=/^0x[a-fA-F0-9]{1,64}-[a-zA-Z0-9_]+-[a-zA-Z0-9_]+(<.+>)?$/.test(decodeURIComponent(t)),o=/^[A-Z0-9]{3,10}-[a-z0-9]{6}$/.test(t);return e||o},p=t=>{const e=/^0x[a-fA-F0-9]{1,64}$/.test(t),o=/^[A-Za-z0-9]{3,10}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2,7}(?:-\d+(?:-[A-Za-z0-9]+)?)?$/.test(t);return e||o};class d extends Error{constructor(t){super(`Invalid collection ticker: ${t}`)}}class l extends Error{constructor(t){super(`Invalid address: ${t}`)}}Error,Error;const c=t=>!!t&&(t.startsWith("erd1")&&62===t.length||/^0x[a-fA-F0-9]{40,64}$/.test(t)||/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t)||/^G[A-Z2-7]{55}$/.test(t)),y={"/liquid/xoxno/rate":{input:{},output:{}},"/liquid/xoxno/liquid-supply":{input:{},output:{}},"/liquid/xoxno/staked":{input:{},output:{}},"/user/login":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/:address/network-account":{input:{},output:{}},"/user/:address/token-inventory":{input:{},output:{}},"/user/network-account":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/me/profile":{input:{},output:{},securityMode:"requiredAny"},"/user/:address/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me":{input:{},output:{},securityMode:"requiredAny"},"/user/me/settings":{input:{},output:{},securityMode:"optionalAny"},"/user/me/settings/notification-preferences":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"optionalAny"}},"/user/me/settings/email":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredJwt"}},"/user/me/settings/phone":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me/settings/billing":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me/settings/verify-email":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/buy/signature":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:tag/creator/is-registered":{input:{},output:{}},"/user/:address/creator/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/favorite/collections":{input:{},output:{}},"/user/favorite/:favoriteId":{input:{},output:{},securityMode:"requiredAny"},"/user/:address/follow":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/favorite/users":{input:{},output:{}},"/tokens":{input:{},output:{}},"/tokens/swap":{input:{},output:{}},"/stellar/tokens":{input:{},output:{}},"/tokens/restricted":{input:{},output:{}},"/tokens/usd-price":{input:{},output:{}},"/tokens/egld/fiat-price":{input:{},output:{}},"/tokens/xoxno/info":{input:{},output:{}},"/liquid/xoxno/stats":{input:{},output:{}},"/liquid/egld/stats":{input:{},output:{}},"/liquid/sui/stats":{input:{},output:{}},"/analytics/marketplace-unique-users":{input:{},output:{}},"/liquid/egld/rate":{input:{},output:{}},"/liquid/egld/liquid-supply":{input:{},output:{}},"/liquid/egld/staked":{input:{},output:{}},"/liquid/egld/pending-fees":{input:{},output:{}},"/liquid/egld/pending-undelegate":{input:{},output:{}},"/liquid/egld/pending-delegate":{input:{},output:{}},"/liquid/egld/execute-delegate":{input:{},output:{}},"/liquid/egld/execute-undelegate":{input:{},output:{}},"/liquid/egld/protocol-apr":{input:{},output:{}},"/liquid/egld/providers":{input:{},output:{}},"/user/:address/delegation":{input:{},output:{}},"/lending/market/:token/profile":{input:{},output:{}},"/lending/market/query":{input:{},output:{}},"/user/lending/:address":{input:{},output:{}},"/lending/market/indexes":{input:{},output:{}},"/user/lending/position/:identifier":{input:{},output:{}},"/lending/pnl":{input:{},output:{}},"/user/lending/pnl/:address":{input:{},output:{}},"/user/lending/summary/:identifier":{input:{},output:{}},"/user/lending/image/:nonce":{input:{},output:{}},"/lending/market/emode-categories":{input:{},output:{}},"/lending/market/:token/emode-categories":{input:{},output:{}},"/lending/market/:token/analytics":{input:{},output:{}},"/lending/market/:token/average":{input:{},output:{}},"/lending/leaderboard":{input:{},output:{}},"/lending/leaderboard/liquidate":{input:{},output:{}},"/lending/leaderboard/clean-bad-debt":{input:{},output:{}},"/lending/stats":{input:{},output:{}},"/lending/market/prices":{input:{},output:{}},"/nft/query":{input:{},output:{}},"/nft/:identifier/like":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/inventory-summary":{input:{},output:{}},"/user/:address/offers":{input:{},output:{}},"/nft/offer/query":{input:{},output:{}},"/nft/offer/:identifier":{input:{},output:{}},"/user/:address/favorite/nfts":{input:{},output:{}},"/collection/:collection/attributes":{input:{},output:{}},"/nft/:identifier/offers":{input:{},output:{}},"/collection/:collection/ranks":{input:{},output:{}},"/collection/:collection/listings":{input:{},output:{}},"/nft/pinned":{input:{},output:{}},"/nft/sign-withdraw":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/sign-offer":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/sign-mint":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/nft/:identifier":{input:{},output:{}},"/collection/:collection/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/floor-price":{input:{},output:{}},"/collection/floor-price":{input:{},output:{}},"/collection/pinned":{input:{},output:{}},"/collection/pinned-drops":{input:{},output:{}},"/collection/:collection/pinned-drops":{input:{},output:{}},"/collection/:collection/pinned":{input:{},output:{}},"/collection/:collection/follow":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/query":{input:{},output:{}},"/collection/drops/query":{input:{},output:{}},"/collection/:collection/drop-info":{input:{},output:{},securityMode:"optionalAny"},"/collection/:creatorTag/:collectionTag/drop-info":{input:{},output:{},securityMode:"optionalAny"},"/collection/:collection/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/holders":{input:{},output:{}},"/collection/:collection/holders/export":{input:{},output:{}},"/collection/:collection/owner":{input:{},output:{}},"/collection/:collection/stats":{input:{},output:{}},"/collection/stats/query":{input:{},output:{}},"/collection/global-offer/query":{input:{},output:{}},"/user/:address/creator/listing":{input:{},output:{}},"/user/:address/creator/details":{input:{},output:{}},"/launchpad/:scAddress/shareholders/royalties":{input:{},output:{}},"/launchpad/:scAddress/shareholders/collection/:collectionTag":{input:{},output:{}},"/pool/:poolId/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/pool/:poolId/whitelist":{input:{},output:{}},"/pool/:poolId/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/staking/available-pools":{input:{},output:{}},"/user/:address/staking/owned-collections":{input:{},output:{}},"/user/:address/staking/owned-pools":{input:{},output:{}},"/user/:address/staking/summary":{input:{},output:{}},"/user/:address/staking/creator":{input:{},output:{}},"/user/:address/staking/collection/:collection":{input:{},output:{}},"/user/:address/staking/pool/:poolId/nfts":{input:{},output:{}},"/collection/:collection/staking/summary":{input:{},output:{},securityMode:"optionalAny"},"/collection/:collection/staking/delegators":{input:{},output:{}},"/collection/staking/explore":{input:{},output:{}},"/user/:creatorTag/owned-services":{input:{},output:{}},"/search":{input:{},output:{}},"/user/search":{input:{},output:{}},"/collection/search":{input:{},output:{}},"/collection/drops/search":{input:{},output:{}},"/nft/search/query":{input:{},output:{}},"/lending/market-sc":{input:{},output:{}},"/lending/active-accounts":{input:{},output:{}},"/lending/account/:nonce/attributes":{input:{},output:{}},"/lending/account/:nonce/positions":{input:{},output:{}},"/lending/market/:token/price/egld":{input:{},output:{}},"/faucet":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/notifications":{input:{},output:{},securityMode:"requiredAny"},"/user/notifications/unread-count":{input:{},output:{},securityMode:"requiredAny"},"/user/notifications/clear":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/notifications/read":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/device/register":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/mobile/device/:deviceId":{input:{},output:{},securityMode:"requiredWeb2",DELETE:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/mobile/history":{input:{},output:{},securityMode:"requiredAny"},"/mobile/history/unread-count":{input:{},output:{},securityMode:"requiredAny"},"/mobile/history/:notificationId/read":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/read-all":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/clear-all":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/clear-id/:notificationId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/event/:eventId/update":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/event/:eventId/reminder":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/creator/marketing":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/user/:userId/direct":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/stellar/challenge":{input:{},output:{}},"/user/native-token":{input:{},output:{}},"/user/web2":{input:{},output:{},securityMode:"requiredWeb2"},"/user/web2/session-cookie":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet-switch":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet-link":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/:index/wallet-link":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/shards":{input:{},output:{},securityMode:"requiredWeb2"},"/activity/query":{input:{},output:{}},"/activity/:identifier":{input:{},output:{}},"/analytics/volume":{input:{},output:{}},"/collection/:collection/analytics/volume":{input:{},output:{}},"/collections/analytics/volume":{input:{},output:{}},"/user/:address/analytics/volume":{input:{},output:{}},"/analytics/overview":{input:{},output:{}},"/user/stats":{input:{},output:{}},"/user/xoxno-drop":{input:{},output:{}},"/user/me/xoxno-drop":{input:{},output:{},securityMode:"requiredAny"},"/transactions/:txHash":{input:{},output:{}},"/transactions/:txHash/status":{input:{},output:{}},"/transaction/cost":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/transactions":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/transactions/batch":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/perp/exchange/acceptTerms":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/sendAsset":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/sendExternalAsset":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/deposit":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/withdraw":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/order":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/tradingview/bars/:symbol":{input:{},output:{}},"/tradingview/coin/:symbol":{input:{},output:{}},"/perp/coin/:symbol":{input:{},output:{}},"/perp/coin/spot/:symbol":{input:{},output:{}},"/perp/coins":{input:{},output:{}},"/perp/legal-check/:address":{input:{},output:{}},"/perp/coins/spot":{input:{},output:{}},"/perp/orderbook/:symbol":{input:{},output:{}},"/perp/trades/:symbol":{input:{},output:{}},"/perp/stats/spot/:symbol":{input:{},output:{}},"/perp/stats/:symbol":{input:{},output:{}},"/perp/subscribe":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/perp/unsubscribe":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/chat/message":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/conversation":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/conversation/:conversationId":{input:{},output:{},securityMode:"requiredAny",DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/conversation-summary":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/conversation/:conversationId/message/:messageId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/block":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/block/:address":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/token":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/hatom/user/:address":{input:{},output:{}},"/countries":{input:{},output:{}},"/event":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId":{input:{},output:{},securityMode:"optionalAny",PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/profile/query":{input:{},output:{}},"/event/:eventId/profile":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/background":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description/image":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description/image/:imageId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/register":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/ticket":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/ticket/:ticketId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"},POST:{input:{},output:{},body:{}}},"/event/:eventId/stage":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/stage/:stageId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/calculate-prices":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/event/:eventId/validate-discount":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/:address/creator/events":{input:{},output:{},securityMode:"optionalAny"},"/event/:eventId/invite":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/invite/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/invite/:inviteId":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/questions":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/question":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/question/:questionId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/guest/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest/:address":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest-export":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/role":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},securityMode:"requiredAny"},"/event/:eventId/role/:roleId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/guest":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/roleOf/:address":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/past":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/hosted":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/upcoming":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event/badge":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event/badge/payload":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/scan":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher/:voucherCode":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/manual-check-in":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/answered-questions/:address":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest/approve":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/google-pass/:address":{input:{},output:{}},"/event/profile/location":{input:{},output:{}},"/event/:eventId/referral-config":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral-config/:configId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral-configs":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/referral":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral/:referralCode":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referrals":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/referrals/self-serviced":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/notify-attendees":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/notify/global-broadcast":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/stellar/aggregator/quote":{input:{},output:{}}},b=["PATCH","POST","DELETE","PUT"],f={mainnet:process.env.STELLAR_LENDING_CONTROLLER_MAINNET??"",testnet:process.env.STELLAR_LENDING_CONTROLLER_TESTNET??""},_={mainnet:process.env.STELLAR_AGGREGATOR_ROUTER_MAINNET??"",testnet:process.env.STELLAR_AGGREGATOR_ROUTER_TESTNET??""},m={mainnet:"https://soroban-rpc.stellar.org",testnet:"https://soroban-testnet.stellar.org"},g={mainnet:process.env.STELLAR_QUOTE_URL_MAINNET??"https://stellar-swap.xoxno.com",testnet:process.env.STELLAR_QUOTE_URL_TESTNET??"https://testnet-stellar-swap.xoxno.com"},q={mainnet:"Public Global Stellar Network ; September 2015",testnet:"Test SDF Network ; September 2015"};function h(t){const e=f[t];if(!e)throw new Error(`Stellar lending controller address not configured for network "${t}". Set STELLAR_LENDING_CONTROLLER_${t.toUpperCase()} env var.`);return e}function S(t){const e=_[t];if(!e)throw new Error(`Stellar aggregator router address not configured for network "${t}". Set STELLAR_AGGREGATOR_ROUTER_${t.toUpperCase()} env var.`);return e}const w=require("@stellar/stellar-sdk"),v=["Soroswap","Aquarius","Phoenix","Sushi","CometDex"],T=t=>new w.Address(t).toScVal(),A=t=>new w.ScInt(t).toI128(),x=t=>w.xdr.ScVal.scvU32(t),k=t=>new w.ScInt("string"==typeof t?t:t.toString()).toU64(),E=t=>w.xdr.ScVal.scvBool(t),M=t=>w.xdr.ScVal.scvString(t),P=t=>w.xdr.ScVal.scvSymbol(t),O=t=>w.xdr.ScVal.scvVec(t),R=(t,e=32)=>{const o=t.startsWith("0x")?t.slice(2):t,r=Buffer.from(o,"hex");if(r.length!==e)throw new Error(`Stellar builder: expected a ${e}-byte BytesN (got ${r.length} bytes from "${t}")`);return w.xdr.ScVal.scvBytes(r)},I=(t,e)=>null==t?w.xdr.ScVal.scvVoid():e(t),C=(t,e)=>w.xdr.ScVal.scvVec([T(t),A(e)]),B=t=>w.xdr.ScVal.scvVec(t.map((t=>C(t.token,t.amount)))),U=t=>{const e=Object.keys(t).sort().map((e=>new w.xdr.ScMapEntry({key:P(e),val:t[e]})));return w.xdr.ScVal.scvMap(e)},L=t=>{const e=t.paths.map((t=>{const e=t.hops.map((t=>{return U({amount_out:A(t.amountOut),pool:T(t.pool),token_in:T(t.tokenIn),token_out:T(t.tokenOut),venue:(e=t.venue,w.xdr.ScVal.scvVec([P(e)]))});var e}));return U({hops:w.xdr.ScVal.scvVec(e),split_ppm:x(t.splitPpm)})}));return U({paths:w.xdr.ScVal.scvVec(e),referral_id:k(t.referralId??0),token_in:T(t.tokenIn),token_out:T(t.tokenOut),total_min_out:A(t.totalMinOut)})},N=t=>{const e=Buffer.from(t);if(0===e.length)throw new Error("Stellar builder: strategy swap bytes must be non-empty base64 routeXdr, 0x hex string, or Uint8Array");return w.xdr.ScVal.scvBytes(e)},D=t=>{const e=t.trim();if(e.startsWith("0x")){const t=e.slice(2);if(!((o=t).length>0&&o.length%2==0&&/^[0-9a-fA-F]+$/.test(o)))throw new Error("Stellar builder: strategy swap bytes hex string must be 0x-prefixed and even-length");return Buffer.from(t,"hex")}var o;if(!/^[A-Za-z0-9+/]+={0,2}$/.test(e))throw new Error("Stellar builder: strategy swap bytes must be base64 routeXdr or 0x-prefixed hex");const r=Buffer.from(e,"base64");if(0===r.length)throw new Error("Stellar builder: strategy swap bytes must be non-empty base64 routeXdr, 0x hex string, or Uint8Array");return r},$=t=>{if("string"==typeof t)return N(D(t));if(t instanceof Uint8Array)return N(t);if(t&&"object"==typeof t)return"routeXdr"in(o=t)&&"string"==typeof o.routeXdr?N(D(t.routeXdr)):(t=>"swapXdr"in t&&"string"==typeof t.swapXdr)(t)?N(D(t.swapXdr)):(t=>"bytes"in t&&("string"==typeof t.bytes||t.bytes instanceof Uint8Array))(t)?"string"==typeof t.bytes?N(D(t.bytes)):N(t.bytes):(e=(t=>{if(!t||"object"!=typeof t)throw new Error("Stellar builder: decoded strategy `steps` must be a StrategyPayload ({ paths, tokenIn, tokenOut, totalMinOut })");const e=t;if(!Array.isArray(e.paths)||0===e.paths.length)throw new Error("Stellar builder: `steps.paths` must be a non-empty array of strategy paths");if("string"!=typeof e.tokenIn)throw new Error("Stellar builder: `steps.tokenIn` must be a contract address");if("string"!=typeof e.tokenOut)throw new Error("Stellar builder: `steps.tokenOut` must be a contract address");if("string"!=typeof e.totalMinOut)throw new Error("Stellar builder: `steps.totalMinOut` must be an i128 decimal string");let o=0;for(const[t,r]of e.paths.entries()){if(!r||"number"!=typeof r.splitPpm||r.splitPpm<=0||!Array.isArray(r.hops)||0===r.hops.length)throw new Error(`Stellar builder: \`steps.paths[${t}]\` must have splitPpm > 0 and a non-empty hops array`);o+=r.splitPpm;for(const[e,o]of r.hops.entries())if(!o||"string"!=typeof o.amountOut||"string"!=typeof o.pool||"string"!=typeof o.tokenIn||"string"!=typeof o.tokenOut||!v.includes(o.venue))throw new Error(`Stellar builder: \`steps.paths[${t}].hops[${e}]\` must have amountOut, pool, tokenIn, tokenOut, and a valid Soroban venue`)}if(1e6!==o)throw new Error(`Stellar builder: \`steps.paths[].splitPpm\` must sum to 1_000_000, got ${o}`);return e})(t),w.xdr.ScVal.scvBytes(Buffer.from(L(e).toXDR("base64"),"base64")));var e,o;throw new Error("Stellar builder: `steps` must be opaque strategy bytes (`routeXdr`, base64/hex string, or Uint8Array)")},z=t=>{if("string"==typeof t)return(t=>{const e=t.startsWith("0x")?t.slice(2):t,o=Buffer.from(e,"hex");return w.xdr.ScVal.scvBytes(o)})(t);if(t instanceof Uint8Array)return w.xdr.ScVal.scvBytes(Buffer.from(t));throw new Error("Stellar builder: `data` must be a hex string or Uint8Array (Soroban Bytes payload)")};function j(t,e,o){const r=t.controllerAddress??h(t.network),u=new w.Contract(r),n=new w.Account(t.caller,t.sourceSequence);return{xdr:new w.TransactionBuilder(n,{fee:t.fee??w.BASE_FEE,networkPassphrase:q[t.network]}).addOperation(u.call(e,...o)).setTimeout(t.timeoutSeconds??300).build().toXDR()}}function W(t,e){const o=e.accountNonce??0,r=e.eModeCategory??0,u=B([...e.assets]);return j(t,"supply",[T(t.caller),k(o),x(r),u])}function V(t,e){return W(t,{accountNonce:e.accountNonce,eModeCategory:e.eModeCategory,assets:[{token:e.token,amount:e.amount}]})}function X(t,e){const o=B([...e.borrows]);return j(t,"borrow",[T(t.caller),k(e.accountNonce),o])}function F(t,e){return X(t,{accountNonce:e.accountNonce,borrows:[{token:e.token,amount:e.amount}]})}function H(t,e){const o=B([...e.withdrawals]);return j(t,"withdraw",[T(t.caller),k(e.accountNonce),o])}function G(t,e){return H(t,{accountNonce:e.accountNonce,withdrawals:[{token:e.token,amount:e.amount}]})}function Z(t,e){const o=B([...e.payments]);return j(t,"repay",[T(t.caller),k(e.accountNonce),o])}function Q(t,e){return Z(t,{accountNonce:e.accountNonce,payments:[{token:e.token,amount:e.amount}]})}function K(t,e){const o=B(e.debtPayments.map((t=>({token:t.token,amount:t.amount}))));return j(t,"liquidate",[T(t.caller),k(e.accountNonce),o])}function J(t,e){return j(t,"flash_loan",[T(t.caller),T(e.asset),A(e.amount),T(e.receiver),z(e.data)])}function Y(t,e){const o=e.accountNonce??0;return j(t,"multiply",[T(t.caller),k(o),x(e.eModeCategory),T(e.collateralToken),A(e.debtToFlashLoan),T(e.debtToken),x(e.mode),$(e.steps),I(e.initialPayment,(t=>C(t.token,t.amount))),I(e.convertSwap,$)])}function tt(t,e){return j(t,"swap_debt",[T(t.caller),k(e.accountNonce),T(e.existingDebtToken),A(e.newDebtAmount),T(e.newDebtToken),$(e.steps)])}function et(t,e){return j(t,"swap_collateral",[T(t.caller),k(e.accountNonce),T(e.currentCollateral),A(e.fromAmount),T(e.newCollateral),$(e.steps)])}function ot(t,e){return j(t,"repay_debt_with_collateral",[T(t.caller),k(e.accountNonce),T(e.collateralToken),A(e.collateralAmount),T(e.debtToken),$(e.steps),E(e.closePosition)])}const rt={Single:0,PrimaryWithAnchor:1},ut=t=>U({base_borrow_rate_ray:A(t.baseBorrowRateRay),max_borrow_rate_ray:A(t.maxBorrowRateRay),max_utilization_ray:A(t.maxUtilizationRay),mid_utilization_ray:A(t.midUtilizationRay),optimal_utilization_ray:A(t.optimalUtilizationRay),reserve_factor_bps:x(t.reserveFactorBps),slope1_ray:A(t.slope1Ray),slope2_ray:A(t.slope2Ray),slope3_ray:A(t.slope3Ray)}),nt=t=>U({asset_decimals:x(t.assetDecimals),asset_id:T(t.assetId),base_borrow_rate_ray:A(t.baseBorrowRateRay),max_borrow_rate_ray:A(t.maxBorrowRateRay),max_utilization_ray:A(t.maxUtilizationRay),mid_utilization_ray:A(t.midUtilizationRay),optimal_utilization_ray:A(t.optimalUtilizationRay),reserve_factor_bps:x(t.reserveFactorBps),slope1_ray:A(t.slope1Ray),slope2_ray:A(t.slope2Ray),slope3_ray:A(t.slope3Ray)}),it=t=>U({borrow_cap:A(t.borrowCap),e_mode_categories:O(t.eModeCategories.map((t=>x(t)))),flashloan_fee_bps:x(t.flashloanFeeBps),is_borrowable:E(t.isBorrowable),is_collateralizable:E(t.isCollateralizable),is_flashloanable:E(t.isFlashloanable),is_isolated_asset:E(t.isIsolatedAsset),is_siloed_borrowing:E(t.isSiloedBorrowing),isolation_borrow_enabled:E(t.isolationBorrowEnabled),isolation_debt_ceiling_usd_wad:A(t.isolationDebtCeilingUsdWad),liquidation_bonus_bps:x(t.liquidationBonusBps),liquidation_fees_bps:x(t.liquidationFeesBps),liquidation_threshold_bps:x(t.liquidationThresholdBps),loan_to_value_bps:x(t.loanToValueBps),min_collat_floor_usd_wad:A(t.minCollatFloorUsdWad),min_debt_floor_usd_wad:A(t.minDebtFloorUsdWad),supply_cap:A(t.supplyCap)}),at=t=>U({max_borrow_positions:x(t.maxBorrowPositions),max_supply_positions:x(t.maxSupplyPositions)}),st=t=>{const e=t.kind;switch(e){case"Stellar":return O([P("Stellar"),T(t.value)]);case"Symbol":return O([P("Symbol"),P(t.value)]);case"String":return O([P("String"),M(t.value)]);default:throw new Error(`Stellar builder: unknown oracle asset ref kind "${e}"`)}},pt=(t,e)=>{if("Twap"===t){if("number"!=typeof e)throw new Error("Stellar builder: oracle source with Twap read mode requires `twapRecords`");return O([P("Twap"),x(e)])}return O([P("Spot")])},dt=t=>{const e=t.provider;if("ReflectorSep40"===e){if(!t.asset)throw new Error("Stellar builder: Reflector oracle source requires `asset`");return O([P("Reflector"),U({asset:st(t.asset),contract:T(t.contract),read_mode:pt(t.readMode,t.twapRecords)})])}if("RedStonePriceFeed"===e){if("string"!=typeof t.feedId)throw new Error("Stellar builder: RedStone oracle source requires `feedId`");if("number"!=typeof t.maxStaleSeconds)throw new Error("Stellar builder: RedStone oracle source requires `maxStaleSeconds`");return O([P("RedStone"),U({contract:T(t.contract),feed_id:M(t.feedId),max_stale_seconds:k(t.maxStaleSeconds)})])}throw new Error(`Stellar builder: unknown oracle provider "${e}"`)},lt=t=>{const e=rt[t.strategy];if(void 0===e)throw new Error(`Stellar builder: unknown oracle strategy "${t.strategy}"`);return U({anchor:(o=t.anchor,O(null==o?[P("None")]:[P("Some"),dt(o)])),first_tolerance_bps:x(t.firstToleranceBps),last_tolerance_bps:x(t.lastToleranceBps),max_price_stale_seconds:k(t.maxPriceStaleSeconds),max_sanity_price_wad:A(t.maxSanityPriceWad),min_sanity_price_wad:A(t.minSanityPriceWad),primary:dt(t.primary),strategy:x(e)});var o};function ct(t,e){return j(t,"upgrade",[R(e.wasmHash)])}function yt(t,e){return j(t,"migrate",[x(e.newVersion)])}function bt(t){return j(t,"pause",[])}function ft(t){return j(t,"unpause",[])}function _t(t,e){return j(t,"grant_role",[T(e.account),P(e.role)])}function mt(t,e){return j(t,"revoke_role",[T(e.account),P(e.role)])}function gt(t,e){return j(t,"transfer_ownership",[T(e.newOwner),x(e.liveUntilLedger)])}function qt(t){return j(t,"accept_ownership",[])}function ht(t,e){return j(t,"set_aggregator",[T(e.aggregator)])}function St(t,e){return j(t,"set_accumulator",[T(e.accumulator)])}function wt(t,e){return j(t,"set_liquidity_pool_template",[R(e.wasmHash)])}function vt(t,e){return j(t,"edit_asset_config",[T(e.asset),it(e.config)])}function Tt(t,e){return j(t,"set_position_limits",[at(e)])}function At(t,e){return j(t,"add_e_mode_category",[x(e.ltv),x(e.threshold),x(e.bonus)])}function xt(t,e){return j(t,"edit_e_mode_category",[x(e.id),x(e.ltv),x(e.threshold),x(e.bonus)])}function kt(t,e){return j(t,"remove_e_mode_category",[x(e.id)])}function Et(t,e){return j(t,"add_asset_to_e_mode_category",[T(e.asset),x(e.categoryId),E(e.canCollateral),E(e.canBorrow)])}function Mt(t,e){return j(t,"edit_asset_in_e_mode_category",[T(e.asset),x(e.categoryId),E(e.canCollateral),E(e.canBorrow)])}function Pt(t,e){return j(t,"remove_asset_from_e_mode",[T(e.asset),x(e.categoryId)])}function Ot(t,e){return j(t,"approve_token",[T(e.token)])}function Rt(t,e){return j(t,"revoke_token",[T(e.token)])}function It(t,e){return j(t,"configure_market_oracle",[T(t.caller),T(e.asset),lt(e.config)])}function Ct(t,e){return j(t,"edit_oracle_tolerance",[T(t.caller),T(e.asset),x(e.firstTolerance),x(e.lastTolerance)])}function Bt(t,e){return j(t,"disable_token_oracle",[T(t.caller),T(e.asset)])}function Ut(t,e){return j(t,"update_indexes",[T(t.caller),O(e.assets.map((t=>T(t))))])}function Lt(t,e){return j(t,"renew_account",[T(t.caller),k(e.accountNonce)])}function Nt(t,e){return j(t,"create_liquidity_pool",[T(e.asset),nt(e.params),it(e.config)])}function Dt(t,e){return j(t,"upgrade_liquidity_pool_params",[T(e.asset),ut(e.params)])}function $t(t,e){return j(t,"upgrade_liquidity_pool",[T(e.asset),R(e.wasmHash)])}function zt(t,e){return j(t,"claim_revenue",[T(t.caller),O(e.assets.map((t=>T(t))))])}function jt(t,e){return j(t,"add_rewards",[T(t.caller),O(e.rewards.map((t=>O([T(t.token),A(t.amount)]))))])}function Wt(t,e){return j(t,"update_account_threshold",[T(t.caller),T(e.asset),E(e.hasRisks),O(e.accountNonces.map((t=>k(t))))])}const Vt=t=>t.toXDR("base64"),Xt=t=>w.xdr.ScVal.fromXDR(t,"base64"),Ft=t=>t.map((t=>String((0,w.scValToNative)(Xt(t))))).join(":"),Ht=t=>"bigint"==typeof t||"number"==typeof t?t.toString():String(t),Gt=t=>Number(t),Zt=t=>String(t),Qt=t=>null==t?void 0:Ht(t),Kt=t=>null==t?void 0:Zt(t),Jt=t=>t instanceof Uint8Array?Buffer.from(t).toString("hex"):Buffer.isBuffer(t)?t.toString("hex"):String(t),Yt=["None","Multiply","Long","Short"],te=["Single","PrimaryWithAnchor"],ee=["ReflectorSep40","RedStonePriceFeed"],oe=["Spot","Twap"],re=t=>({loanToValueBps:Gt(t.loan_to_value_bps),liquidationThresholdBps:Gt(t.liquidation_threshold_bps),liquidationBonusBps:Gt(t.liquidation_bonus_bps),liquidationFeesBps:Gt(t.liquidation_fees_bps),isCollateralizable:Boolean(t.is_collateralizable),isBorrowable:Boolean(t.is_borrowable),isIsolatedAsset:Boolean(t.is_isolated_asset),isSiloedBorrowing:Boolean(t.is_siloed_borrowing),isFlashloanable:Boolean(t.is_flashloanable),isolationBorrowEnabled:Boolean(t.isolation_borrow_enabled),isolationDebtCeilingUsdWad:Ht(t.isolation_debt_ceiling_usd_wad),flashloanFeeBps:Gt(t.flashloan_fee_bps),borrowCap:Ht(t.borrow_cap),supplyCap:Ht(t.supply_cap),minCollatFloorUsdWad:Ht(t.min_collat_floor_usd_wad),minDebtFloorUsdWad:Ht(t.min_debt_floor_usd_wad),eModeCategories:(t.e_mode_categories??[]).map(Gt)}),ue=t=>{const e=(o=t.position_type,2===Gt(o)?"Borrow":"Deposit");var o;const r="Borrow"===e;return{action:Zt(t.action),positionType:e,asset:Zt(t.asset),scaledAmountRay:Ht(t.scaled_amount_ray),indexRay:Ht(t.index_ray),amount:Ht(t.amount),assetPriceWad:Qt(t.asset_price_wad),liquidationThresholdBps:r?void 0:Gt(t.liquidation_threshold_bps),liquidationBonusBps:r?void 0:Gt(t.liquidation_bonus_bps),loanToValueBps:r?void 0:Gt(t.loan_to_value_bps)}},ne=(t,e)=>{const o=oe[Gt(t[`${e}_read_mode`])]??"Spot",r=t[`${e}_asset`],u=t[`${e}_symbol`],n=null!=r?{kind:"Stellar",value:Zt(r)}:null!=u?{kind:"Symbol",value:Zt(u)}:void 0;return{provider:ee[Gt(t[`${e}_provider`])]??"ReflectorSep40",contractAddress:Zt(t[`${e}_contract`]),asset:n,feedId:Kt(t[`${e}_feed_id`]),readMode:o,twapRecords:"Twap"===o?Gt(t[`${e}_twap_records`]):void 0,decimals:Gt(t[`${e}_decimals`]),resolutionSeconds:Gt(t[`${e}_resolution_seconds`]),maxStaleSeconds:Gt(t[`${e}_max_stale_seconds`])}},ie=t=>{const e=null!==t.anchor_provider&&void 0!==t.anchor_provider;return{baseTokenId:Zt(t.base_token_id),quoteTokenId:Zt(t.quote_token_id),tolerance:{firstUpperRatio:Gt(t.first_upper_ratio_bps??t.tolerance?.first_upper_ratio_bps),firstLowerRatio:Gt(t.first_lower_ratio_bps??t.tolerance?.first_lower_ratio_bps),lastUpperRatio:Gt(t.last_upper_ratio_bps??t.tolerance?.last_upper_ratio_bps),lastLowerRatio:Gt(t.last_lower_ratio_bps??t.tolerance?.last_lower_ratio_bps)},assetDecimals:Gt(t.asset_decimals),maxPriceStaleSeconds:Gt(t.max_price_stale_seconds),strategy:te[Gt(t.strategy)]??"Single",primary:ne(t,"primary"),anchor:e?ne(t,"anchor"):void 0,primaryQuoteToken:Kt(t.primary_quote_token),anchorQuoteToken:Kt(t.anchor_quote_token),minSanityPriceWad:Qt(t.min_sanity_price_wad),maxSanityPriceWad:Qt(t.max_sanity_price_wad)}},ae={"market:create":t=>({topic:"market:create",data:{baseAsset:Zt(t.base_asset),maxBorrowRate:Ht(t.max_borrow_rate),baseBorrowRate:Ht(t.base_borrow_rate),slope1:Ht(t.slope1),slope2:Ht(t.slope2),slope3:Ht(t.slope3),midUtilization:Ht(t.mid_utilization),optimalUtilization:Ht(t.optimal_utilization),maxUtilization:Qt(t.max_utilization),reserveFactor:Gt(t.reserve_factor),marketAddress:Zt(t.market_address),config:re(t.config)}}),"market:params_update":t=>({topic:"market:params_update",data:{asset:Zt(t.asset),maxBorrowRateRay:Ht(t.max_borrow_rate_ray),baseBorrowRateRay:Ht(t.base_borrow_rate_ray),slope1Ray:Ht(t.slope1_ray),slope2Ray:Ht(t.slope2_ray),slope3Ray:Ht(t.slope3_ray),midUtilizationRay:Ht(t.mid_utilization_ray),optimalUtilizationRay:Ht(t.optimal_utilization_ray),maxUtilizationRay:Qt(t.max_utilization_ray),reserveFactorBps:Gt(t.reserve_factor_bps)}}),"market:batch_state_update":t=>({topic:"market:batch_state_update",data:{updates:(t.updates??[]).map((t=>({asset:Zt(t.asset),timestamp:Gt(t.timestamp),supplyIndexRay:Ht(t.supply_index_ray),borrowIndexRay:Ht(t.borrow_index_ray),reservesRay:Ht(t.reserves_ray),suppliedRay:Ht(t.supplied_ray),borrowedRay:Ht(t.borrowed_ray),revenueRay:Ht(t.revenue_ray),assetPriceWad:Qt(t.asset_price_wad)})))}}),"position:batch_update":t=>{return{topic:"position:batch_update",data:{accountId:Ht(t.account_id),accountAttributes:{owner:Zt(t.account_attributes.owner),isIsolatedPosition:Boolean(t.account_attributes.is_isolated_position),eModeCategoryId:Gt(t.account_attributes.e_mode_category_id),mode:(e=t.account_attributes.mode,Yt[Gt(e)]??"None"),isolatedToken:Kt(t.account_attributes.isolated_token)},updates:(t.updates??[]).map(ue)}};var e},"position:flash_loan":t=>({topic:"position:flash_loan",data:{asset:Zt(t.asset),receiver:Zt(t.receiver),caller:Zt(t.caller),amount:Ht(t.amount),fee:Ht(t.fee)}}),"config:asset":t=>({topic:"config:asset",data:{asset:Zt(t.asset),config:re(t.config)}}),"config:oracle":t=>({topic:"config:oracle",data:{asset:Zt(t.asset),oracle:ie(t.oracle)}}),"config:emode_category":t=>({topic:"config:emode_category",data:{category:{categoryId:Gt(t.category.category_id),loanToValueBps:Gt(t.category.loan_to_value_bps),liquidationThresholdBps:Gt(t.category.liquidation_threshold_bps),liquidationBonusBps:Gt(t.category.liquidation_bonus_bps),isDeprecated:Boolean(t.category.is_deprecated)}}}),"config:emode_asset":t=>({topic:"config:emode_asset",data:{asset:Zt(t.asset),config:{isCollateralizable:Boolean(t.config.is_collateralizable),isBorrowable:Boolean(t.config.is_borrowable)},categoryId:Gt(t.category_id)}}),"config:remove_emode_asset":t=>({topic:"config:remove_emode_asset",data:{asset:Zt(t.asset),categoryId:Gt(t.category_id)}}),"debt:ceiling_update":t=>({topic:"debt:ceiling_update",data:{asset:Zt(t.asset),totalDebtUsdWad:Ht(t.total_debt_usd_wad)}}),"debt:ceiling_batch_update":t=>({topic:"debt:ceiling_batch_update",data:{updates:(t.updates??[]).map((t=>({asset:Zt(t.asset),totalDebtUsdWad:Ht(t.total_debt_usd_wad)})))}}),"debt:bad_debt":t=>({topic:"debt:bad_debt",data:{accountId:Ht(t.account_id),totalBorrowUsdWad:Ht(t.total_borrow_usd_wad),totalCollateralUsdWad:Ht(t.total_collateral_usd_wad)}}),"strategy:initial_payment":t=>({topic:"strategy:initial_payment",data:{token:Zt(t.token),amount:Ht(t.amount),usdValueWad:Ht(t.usd_value_wad),accountId:Ht(t.account_id)}}),"config:approve_token":t=>({topic:"config:approve_token",data:{wasmHash:Jt(t.wasm_hash),approved:Boolean(t.approved)}}),"config:aggregator":t=>({topic:"config:aggregator",data:{aggregator:Zt(t.aggregator)}}),"config:accumulator":t=>({topic:"config:accumulator",data:{accumulator:Zt(t.accumulator)}}),"config:pool_template":t=>({topic:"config:pool_template",data:{wasmHash:Jt(t.wasm_hash)}}),"config:position_limits":t=>({topic:"config:position_limits",data:{maxSupplyPositions:Gt(t.max_supply_positions),maxBorrowPositions:Gt(t.max_borrow_positions)}}),"config:oracle_disabled":t=>({topic:"config:oracle_disabled",data:{asset:Zt(t.asset)}}),"oracle:twap_degraded":t=>({topic:"oracle:twap_degraded",data:{oracle:Zt(t.oracle),reasonCode:Gt(t.reason_code)}})},se=Object.freeze(Object.keys(ae));function pe(t,e){const o=Ft(t),r=ae[o];return r?r((0,w.scValToNative)(Xt(e))):null}const de="XLENDXLM-a7c9f3",le=1e4;function ce(t){const e=BigInt(t).toString(16),o=e.length%2==0?e:`0${e}`;return`${de}-${o}`}function ye(t){const e=t.split("-");return e.length>=2&&parseInt(e[1],10)||0}function be(t,e=0){return t*le+e}function fe(t){switch(t){case"liq_repay":return"lendingLiquidateRepayDebt";case"liq_seize":return"lendingLiquidateSeizeCollateral";case"param_upd":return"lendingUpdateAccountParameters";default:return"lendingUpdateAccountPosition"}}const _e=(t,e,o)=>{const r=new URL(e,t.endsWith("/")?t:`${t}/`);if(o)for(const[t,e]of Object.entries(o))void 0!==e&&r.searchParams.set(t,String(e));return r.toString()},me=t=>t.baseUrl??g[t.network];async function ge(t,e){if(null==t.amountIn==(null==t.amountOut))throw new Error("getStellarAggregatorQuote: exactly one of `amountIn` or `amountOut` must be provided");const o=_e(me(e),"api/v1/quote",{from:t.from,to:t.to,amountIn:t.amountIn,amountOut:t.amountOut,maxHops:t.maxHops,maxSplits:t.maxSplits,slippage:t.slippage,includePaths:t.includePaths,sender:t.sender,router:t.router,platform:t.platform,fresh:t.fresh}),r=await fetch(o,e.fetchOptions);if(!r.ok){const t=await r.text().catch((()=>""));throw new Error(`Stellar quote server responded ${r.status} ${r.statusText} for ${o} — ${t}`)}return await r.json()}async function qe(t){const e=_e(me(t),"api/v1/tokens"),o=await fetch(e,t.fetchOptions);if(!o.ok){const t=await o.text().catch((()=>""));throw new Error(`Stellar quote server responded ${o.status} ${o.statusText} for ${e} — ${t}`)}return await o.json()}const he=(t,e)=>(t=>Boolean(t&&"object"==typeof t&&!(t instanceof Uint8Array)&&"paths"in t))(t)&&void 0===t.referralId?{...t,referralId:e??0}:t,Se=t=>L(t).toXDR("base64");function we(t,e){const o=t.routerAddress??S(t.network),r=new w.Contract(o),u=new w.Account(t.caller,t.sourceSequence),n=$(he(e,t.referralId));return{xdr:new w.TransactionBuilder(u,{fee:t.fee??w.BASE_FEE,networkPassphrase:q[t.network]}).addOperation(r.call("execute_strategy",T(t.caller),A(t.totalIn),n)).setTimeout(t.timeoutSeconds??300).build().toXDR()}}function ve(t,e){return we(t,e)}function Te(t,e={}){if("string"!=typeof t.amountOutMin)throw new Error("mapQuoteResponseToStrategyPayload: quote response is missing `amountOutMin`. Pass `slippage` when fetching the quote.");return{paths:t.paths?t.paths.map((t=>({hops:t.swaps.map(ke),splitPpm:t.splitPpm}))):[{hops:t.hops.map(ke),splitPpm:1e6}],referralId:e.referralId??0,tokenIn:t.from,tokenOut:t.to,totalMinOut:t.amountOutMin}}function Ae(t,e={}){const o=t;return"string"==typeof o.routeXdr&&o.routeXdr.length>0?{routeXdr:o.routeXdr}:Te(t,e)}const xe=Te,ke=t=>({amountOut:t.amountOut,pool:t.address,tokenIn:t.from,tokenOut:t.to,venue:t.dex});function Ee(t,e){const o=e instanceof Error?e.message:String(e);return new Error(`[xoxno-invoked:${t}] ${o}`)}async function Me(t,e,o){const r=w.TransactionBuilder.fromXDR(e,"base64");try{return(await t.prepareTransaction(r)).toXDR()}catch(t){if(o?.invokedContractId)throw Ee(o.invokedContractId,t);throw t}}async function Pe(t,e,o){return Me(t,e.xdr,o)}function Oe(t){if(t<=0||t>4)throw new Error(`Invalid PositionMode ${t} for Stellar — expected 1 (Normal) through 4 (Short). "None" (0) has no Stellar equivalent.`);return t-1}function Re(t,e){return{paths:[{hops:[{amountOut:"0",pool:t,tokenIn:t,tokenOut:t,venue:"Soroswap"}],splitPpm:1e6}],referralId:0,tokenIn:t,tokenOut:t,totalMinOut:e}}const Ie=t=>{const e=t.startsWith("0x")?t.slice(2):t;if(e.length%2!=0)throw new Error("buildStellarCctpForwardTx: hex input must have even length");return Buffer.from(e,"hex")};function Ce(t){const e=new w.Account(t.caller,t.sourceSequence),o=new w.Contract(t.forwarderAddress).call("mint_and_forward",w.xdr.ScVal.scvBytes(Ie(t.message)),w.xdr.ScVal.scvBytes(Ie(t.attestation)));return{xdr:new w.TransactionBuilder(e,{fee:t.fee??"10000000",networkPassphrase:q[t.network]}).addOperation(o).setTimeout(t.timeoutSeconds??120).build().toXDR()}}const Be=t=>t.replace(/-([a-z])/g,((t,e)=>e.toUpperCase())),Ue=()=>({static:{},params:{},leaves:[]});function Le(t,e,o,r){const{input:u,output:n,...i}=e,a=async(e={})=>{const u={...o,...e},n=t.replace(/:([a-zA-Z_]+)/g,((t,e)=>`${u[e]}`)),i=[...t.matchAll(/:([a-zA-Z_]+)/g)].map((t=>t[1])),a=Object.fromEntries(Object.entries(u).filter((([t])=>!i.includes(t)))),p=/:address[^A-Z]/.test(t)||"address"in a,y=/:collection[^A-Z]/.test(t)||"collection"in a;if(p){const t=u.address;if(!c(t))throw new l(t)}if(y){const t=u.collection;if(Array.isArray(t)?t.some((t=>!s(t))):!s(t))throw new d(t)}const b=Object.fromEntries(Object.entries(a).map((([t,e])=>[t,e instanceof FormData?e:"filter"===t||"body"===t?JSON.stringify(e):Array.isArray(e)?e.join(","):e]))),{body:f,auth:_,method:m,headers:g,cache:q,next:h,debug:S,continuationToken:w,...v}=b,T=_?`Bearer ${_}`:void 0,A={...g,...T?{Authorization:T}:{},...w?{"X-Continuation-Token":String(w)}:{}},x={...h,tags:[...h?.tags??[],n]};return r.fetchWithTimeout(n,{method:m,params:v,body:f,headers:A,cache:q,debug:S,...x?{next:x}:{}})},p=(t={})=>a(t);for(const t of Object.keys(i))b.includes(t)&&(p[t]=e=>a({...e,method:e.method??t.toUpperCase()}));return p}function Ne(t){const e=function(){const t=Ue();for(const[e,o]of Object.entries(y)){const r=e.split("/").filter(Boolean);let u=t;for(const t of r)if(t.startsWith(":")){const e=Be(t.slice(1));u=u.params[e]||=Ue()}else{const e=Be(t);u=u.static[e]||=Ue()}u.leaves.push({rawPath:e,def:o})}return t}(),o=(e,r)=>{const u=e.leaves.length,n=Object.keys(e.static).length,i=Object.keys(e.params).length;let a;if(1===u&&n+i>0){const{rawPath:o,def:u}=e.leaves[0];a=Le(o,u,r,t)}else{a={};for(const{rawPath:o,def:u}of e.leaves)a[Be(o.split("/").pop().replace(/^:/,""))]=Le(o,u,r,t)}for(const[t,u]of Object.entries(e.static)){const e=o(u,r);let n=e;if(e&&"object"==typeof e&&t in e&&"function"==typeof e[t]){const o=e[t],r=Object.fromEntries(Object.entries(e).filter((([e])=>e!==t)));1===o.length||(Object.assign(o,r),n=o)}void 0===a[t]?a[t]=n:"function"==typeof a[t]?Object.assign(a[t],n):"function"==typeof n?(Object.assign(n,a[t]),a[t]=n):Object.assign(a[t],n)}for(const[t,u]of Object.entries(e.params)){const e=e=>{const n=o(u,{...r,[t]:e});if(n&&"object"==typeof n&&1===Object.keys(n).length&&t in n&&"function"==typeof n[t]){const e=n[t],o=(...t)=>e(...t);return Object.assign(o,e)}return n};if(a[t]){const o=a[t];a[t]=t=>({...o(t),...e(t)})}else a[t]=e}return a};return o(e,{})}module.exports=e})();
|
|
1
|
+
"undefined"!=typeof globalThis&&void 0===globalThis.self&&(globalThis.self=globalThis),(()=>{"use strict";var t={d:(e,o)=>{for(var r in o)t.o(o,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:o[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Chain:()=>i,STELLAR_AGGREGATOR_ROUTER:()=>_,STELLAR_LENDING_CONTROLLER:()=>f,STELLAR_LENDING_TOPICS:()=>se,STELLAR_NETWORK_PASSPHRASE:()=>q,STELLAR_QUOTE_URL:()=>g,STELLAR_SOROBAN_RPC_URL:()=>m,SYNTHETIC_EVENT_ORDER_STRIDE:()=>le,XOXNOClient:()=>a,XOXNO_LENDING_STELLAR_TICKER:()=>de,buildSameTokenRepaySwapSteps:()=>Re,buildSdk:()=>Ne,buildStellarAcceptOwnershipTx:()=>qt,buildStellarAddAssetToEModeCategoryTx:()=>Et,buildStellarAddEModeCategoryTx:()=>At,buildStellarAddRewardsTx:()=>jt,buildStellarApproveTokenTx:()=>Ot,buildStellarBatchSwapTx:()=>ve,buildStellarBorrowBatchTx:()=>X,buildStellarBorrowTx:()=>F,buildStellarCctpForwardTx:()=>Ce,buildStellarClaimRevenueTx:()=>zt,buildStellarConfigureMarketOracleTx:()=>It,buildStellarCreateLiquidityPoolTx:()=>Nt,buildStellarDisableTokenOracleTx:()=>Bt,buildStellarEditAssetConfigTx:()=>vt,buildStellarEditAssetInEModeCategoryTx:()=>Mt,buildStellarEditEModeCategoryTx:()=>xt,buildStellarEditOracleToleranceTx:()=>Ct,buildStellarExecuteStrategyTx:()=>we,buildStellarFlashLoanTx:()=>J,buildStellarGrantRoleTx:()=>_t,buildStellarLendingIdentifier:()=>ce,buildStellarLiquidateTx:()=>K,buildStellarMigrateTx:()=>yt,buildStellarMultiplyTx:()=>Y,buildStellarPauseTx:()=>bt,buildStellarRemoveAssetFromEModeTx:()=>Pt,buildStellarRemoveEModeCategoryTx:()=>kt,buildStellarRenewAccountTx:()=>Lt,buildStellarRepayBatchTx:()=>Z,buildStellarRepayDebtWithCollateralTx:()=>ot,buildStellarRepayTx:()=>Q,buildStellarRevokeRoleTx:()=>mt,buildStellarRevokeTokenTx:()=>Rt,buildStellarSetAccumulatorTx:()=>St,buildStellarSetAggregatorTx:()=>ht,buildStellarSetLiquidityPoolTemplateTx:()=>wt,buildStellarSetPositionLimitsTx:()=>Tt,buildStellarSupplyBatchTx:()=>W,buildStellarSupplyTx:()=>V,buildStellarSwapCollateralTx:()=>et,buildStellarSwapDebtTx:()=>tt,buildStellarTransferOwnershipTx:()=>gt,buildStellarUnpauseTx:()=>ft,buildStellarUpdateAccountThresholdTx:()=>Wt,buildStellarUpdateIndexesTx:()=>Ut,buildStellarUpgradeControllerTx:()=>ct,buildStellarUpgradeLiquidityPoolParamsTx:()=>Dt,buildStellarUpgradeLiquidityPoolTx:()=>$t,buildStellarWithdrawBatchTx:()=>H,buildStellarWithdrawTx:()=>G,buildTx:()=>j,decodeStellarLendingEvent:()=>pe,encodeAssetConfigRaw:()=>it,encodeInterestRateModel:()=>ut,encodeMarketOracleConfigInput:()=>lt,encodeMarketParamsRaw:()=>nt,encodeOracleSourceConfigInput:()=>dt,encodePositionLimits:()=>at,encodeStrategyPayloadToRouteXdr:()=>Se,extractEventOrder:()=>ye,getStellarAggregatorQuote:()=>ge,getStellarAggregatorRouter:()=>S,getStellarLendingController:()=>h,getStellarQuoteTokens:()=>qe,isValidCollectionTicker:()=>s,isValidNftIdentifier:()=>p,mapQuoteResponseToAggregatorSwap:()=>xe,mapQuoteResponseToStrategyPayload:()=>Te,mapQuoteResponseToStrategySwap:()=>Ae,mapStellarPositionActivityType:()=>fe,prepareStellarBuiltTx:()=>Pe,prepareStellarTxXdr:()=>Me,stellarLendingDispatchKey:()=>Ft,syntheticEventOrder:()=>be,tagStellarInvokedContractError:()=>Ee,toBase64Xdr:()=>Vt,toStellarPositionMode:()=>Oe});const o="https://api.xoxno.com",r="erd1qqqqqqqqqqqqqpgq705fxpfrjne0tl3ece0rrspykq88mynn4kxs2cg43s",u="erd1qqqqqqqqqqqqqpgqd9rvv2n378e27jcts8vfwynpx0gfl5ufz6hqhfy0u0",n="erd1qqqqqqqqqqqqqpgq8xwzu82v8ex3h4ayl5lsvxqxnhecpwyvwe0sf2qj4e";var i;!function(t){t.MAINNET="1",t.DEVNET="D"}(i||(i={}));class a{apiUrl;chain;init;config;constructor({chain:t=i.MAINNET,apiUrl:e=o,...a}={}){this.apiUrl=e??{[i.MAINNET]:o,[i.DEVNET]:"https://devnet-api.xoxno.com"}[t],this.chain=t,this.init=a,this.config=t==i.MAINNET?{mediaUrl:"https://media.xoxno.com",gatewayUrl:"https://gateway.xoxno.com",XO_SC:"erd1qqqqqqqqqqqqqpgq6wegs2xkypfpync8mn2sa5cmpqjlvrhwz5nqgepyg8",FM_SC:r,DR_SC:u,KG_SC:n,Staking_SC:"erd1qqqqqqqqqqqqqpgqvpkd3g3uwludduv3797j54qt6c888wa59w2shntt6z",Manager_SC:"erd1qqqqqqqqqqqqqpgqg9fa0dmpn8fu3fnleeqn5zt8rl8mdqjkys5s2gtas7",P2P_SC:"erd1qqqqqqqqqqqqqpgq47y8hnct68v6asjv6gxem6h9rumn9frzah0skhxxt6"}:{mediaUrl:"https://devnet-media.xoxno.com",gatewayUrl:"https://devnet-gateway.xoxno.com",XO_SC:"erd1qqqqqqqqqqqqqpgql0dnz6n5hpuw8cptlt00khd0nn4ja8eadsfq2xrqw4",FM_SC:r,DR_SC:u,KG_SC:n,Staking_SC:"erd1qqqqqqqqqqqqqpgqsc5hnewwpep8qq0d7kjjzrquapuucrygah0s85zres",Manager_SC:"erd1qqqqqqqqqqqqqpgqluclyhfsa2uw7q9cjwd8knk989hg57u8ah0slq2nlr",P2P_SC:"erd1qqqqqqqqqqqqqpgqfja7ukpngrun78ueq583l0vd6aj4ekhrah0sa9wyrv"}}fetchWithTimeout=async(t,{params:e,...o}={})=>{const{next:r,cache:u,debug:n,...i}=this.init,{next:a,cache:s,debug:p,headers:d,method:l="GET",...c}=o,y=d?.Authorization,b="Bearer undefined"===y?void 0:y,f={...d,Referer:"https://xoxno.sdk","User-Agent":"XOXNO/1.0/SDK",..."PUT"===l?{}:{"Content-Type":"application/json"},...b?{Authorization:b}:{}},_=Object.entries(e??{}).flatMap((([t,e])=>Array.isArray(e)?e.map((e=>`${t}=${encodeURIComponent(e)}`)):`${t}=${encodeURIComponent(e)}`)).join("&"),m=`${this.apiUrl}${t}${_.length?`?${_}`:""}`,{revalidate:g,...q}=r??{},{revalidate:h,...S}=a??{},w="GET"!==l||b?void 0:h??g,v="GET"!==l||b||w?void 0:s??u,T={...i,...c,method:l,...Object.keys(f).length?{headers:f}:{},cache:v,next:{...q,...S,revalidate:w}};(p??n)&&console.debug("SDK fetch: ",m,T);const A=await fetch(m,T).catch((t=>{if(t instanceof Error&&!t.message.match(/^http(s?):\/\//))throw new Error(`${m}: ${t.message}`);throw t})),x=await A.text();if(!A.ok){let t;try{t=JSON.parse(x)}catch{t={message:x}}const e=[m,A.status,A.statusText,t.message].filter(Boolean).join(";;");throw new Error(e)}try{return JSON.parse(x)}catch{return x}}}const s=t=>{const e=/^0x[a-fA-F0-9]{1,64}-[a-zA-Z0-9_]+-[a-zA-Z0-9_]+(<.+>)?$/.test(decodeURIComponent(t)),o=/^[A-Z0-9]{3,10}-[a-z0-9]{6}$/.test(t);return e||o},p=t=>{const e=/^0x[a-fA-F0-9]{1,64}$/.test(t),o=/^[A-Za-z0-9]{3,10}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2,7}(?:-\d+(?:-[A-Za-z0-9]+)?)?$/.test(t);return e||o};class d extends Error{constructor(t){super(`Invalid collection ticker: ${t}`)}}class l extends Error{constructor(t){super(`Invalid address: ${t}`)}}Error,Error;const c=t=>!!t&&(t.startsWith("erd1")&&62===t.length||/^0x[a-fA-F0-9]{40,64}$/.test(t)||/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t)||/^G[A-Z2-7]{55}$/.test(t)),y={"/liquid/xoxno/rate":{input:{},output:{}},"/liquid/xoxno/liquid-supply":{input:{},output:{}},"/liquid/xoxno/staked":{input:{},output:{}},"/user/login":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/:address/network-account":{input:{},output:{}},"/user/:address/token-inventory":{input:{},output:{}},"/user/network-account":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/me/profile":{input:{},output:{},securityMode:"requiredAny"},"/user/:address/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me":{input:{},output:{},securityMode:"requiredAny"},"/user/me/settings":{input:{},output:{},securityMode:"optionalAny"},"/user/me/settings/notification-preferences":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"optionalAny"}},"/user/me/settings/email":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredJwt"}},"/user/me/settings/phone":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me/settings/billing":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me/settings/verify-email":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/buy/signature":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:tag/creator/is-registered":{input:{},output:{}},"/user/:address/creator/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/favorite/collections":{input:{},output:{}},"/user/favorite/:favoriteId":{input:{},output:{},securityMode:"requiredAny"},"/user/:address/follow":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/favorite/users":{input:{},output:{}},"/tokens":{input:{},output:{}},"/tokens/swap":{input:{},output:{}},"/stellar/tokens":{input:{},output:{}},"/tokens/restricted":{input:{},output:{}},"/tokens/usd-price":{input:{},output:{}},"/tokens/egld/fiat-price":{input:{},output:{}},"/tokens/xoxno/info":{input:{},output:{}},"/liquid/xoxno/stats":{input:{},output:{}},"/liquid/egld/stats":{input:{},output:{}},"/liquid/sui/stats":{input:{},output:{}},"/analytics/marketplace-unique-users":{input:{},output:{}},"/liquid/egld/rate":{input:{},output:{}},"/liquid/egld/liquid-supply":{input:{},output:{}},"/liquid/egld/staked":{input:{},output:{}},"/liquid/egld/pending-fees":{input:{},output:{}},"/liquid/egld/pending-undelegate":{input:{},output:{}},"/liquid/egld/pending-delegate":{input:{},output:{}},"/liquid/egld/execute-delegate":{input:{},output:{}},"/liquid/egld/execute-undelegate":{input:{},output:{}},"/liquid/egld/protocol-apr":{input:{},output:{}},"/liquid/egld/providers":{input:{},output:{}},"/user/:address/delegation":{input:{},output:{}},"/lending/market/:token/profile":{input:{},output:{}},"/lending/market/query":{input:{},output:{}},"/user/lending/:address":{input:{},output:{}},"/lending/market/indexes":{input:{},output:{}},"/user/lending/position/:identifier":{input:{},output:{}},"/lending/pnl":{input:{},output:{}},"/user/lending/pnl/:address":{input:{},output:{}},"/user/lending/summary/:identifier":{input:{},output:{}},"/user/lending/image/:nonce":{input:{},output:{}},"/lending/market/emode-categories":{input:{},output:{}},"/lending/market/:token/emode-categories":{input:{},output:{}},"/lending/market/:token/analytics":{input:{},output:{}},"/lending/market/:token/average":{input:{},output:{}},"/lending/leaderboard":{input:{},output:{}},"/lending/leaderboard/liquidate":{input:{},output:{}},"/lending/leaderboard/clean-bad-debt":{input:{},output:{}},"/lending/stats":{input:{},output:{}},"/lending/market/prices":{input:{},output:{}},"/nft/query":{input:{},output:{}},"/nft/:identifier/like":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/inventory-summary":{input:{},output:{}},"/user/:address/offers":{input:{},output:{}},"/nft/offer/query":{input:{},output:{}},"/nft/offer/:identifier":{input:{},output:{}},"/user/:address/favorite/nfts":{input:{},output:{}},"/collection/:collection/attributes":{input:{},output:{}},"/nft/:identifier/offers":{input:{},output:{}},"/collection/:collection/ranks":{input:{},output:{}},"/collection/:collection/listings":{input:{},output:{}},"/nft/pinned":{input:{},output:{}},"/nft/sign-withdraw":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/sign-offer":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/sign-mint":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/nft/:identifier":{input:{},output:{}},"/collection/:collection/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/floor-price":{input:{},output:{}},"/collection/floor-price":{input:{},output:{}},"/collection/pinned":{input:{},output:{}},"/collection/pinned-drops":{input:{},output:{}},"/collection/:collection/pinned-drops":{input:{},output:{}},"/collection/:collection/pinned":{input:{},output:{}},"/collection/:collection/follow":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/query":{input:{},output:{}},"/collection/drops/query":{input:{},output:{}},"/collection/:collection/drop-info":{input:{},output:{},securityMode:"optionalAny"},"/collection/:creatorTag/:collectionTag/drop-info":{input:{},output:{},securityMode:"optionalAny"},"/collection/:collection/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/holders":{input:{},output:{}},"/collection/:collection/holders/export":{input:{},output:{}},"/collection/:collection/owner":{input:{},output:{}},"/collection/:collection/stats":{input:{},output:{}},"/collection/stats/query":{input:{},output:{}},"/collection/global-offer/query":{input:{},output:{}},"/user/:address/creator/listing":{input:{},output:{}},"/user/:address/creator/details":{input:{},output:{}},"/launchpad/:scAddress/shareholders/royalties":{input:{},output:{}},"/launchpad/:scAddress/shareholders/collection/:collectionTag":{input:{},output:{}},"/pool/:poolId/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/pool/:poolId/whitelist":{input:{},output:{}},"/pool/:poolId/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/staking/available-pools":{input:{},output:{}},"/user/:address/staking/owned-collections":{input:{},output:{}},"/user/:address/staking/owned-pools":{input:{},output:{}},"/user/:address/staking/summary":{input:{},output:{}},"/user/:address/staking/creator":{input:{},output:{}},"/user/:address/staking/collection/:collection":{input:{},output:{}},"/user/:address/staking/pool/:poolId/nfts":{input:{},output:{}},"/collection/:collection/staking/summary":{input:{},output:{},securityMode:"optionalAny"},"/collection/:collection/staking/delegators":{input:{},output:{}},"/collection/staking/explore":{input:{},output:{}},"/user/:creatorTag/owned-services":{input:{},output:{}},"/search":{input:{},output:{}},"/user/search":{input:{},output:{}},"/collection/search":{input:{},output:{}},"/collection/drops/search":{input:{},output:{}},"/nft/search/query":{input:{},output:{}},"/lending/market-sc":{input:{},output:{}},"/lending/active-accounts":{input:{},output:{}},"/lending/account/:nonce/attributes":{input:{},output:{}},"/lending/account/:nonce/positions":{input:{},output:{}},"/lending/market/:token/price/egld":{input:{},output:{}},"/faucet":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/notifications":{input:{},output:{},securityMode:"requiredAny"},"/user/notifications/unread-count":{input:{},output:{},securityMode:"requiredAny"},"/user/notifications/clear":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/notifications/read":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/device/register":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/mobile/device/:deviceId":{input:{},output:{},securityMode:"requiredWeb2",DELETE:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/mobile/history":{input:{},output:{},securityMode:"requiredAny"},"/mobile/history/unread-count":{input:{},output:{},securityMode:"requiredAny"},"/mobile/history/:notificationId/read":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/read-all":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/clear-all":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/clear-id/:notificationId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/event/:eventId/update":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/event/:eventId/reminder":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/creator/marketing":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/user/:userId/direct":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/stellar/challenge":{input:{},output:{}},"/user/native-token":{input:{},output:{}},"/user/web2":{input:{},output:{},securityMode:"requiredWeb2"},"/user/web2/session-cookie":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet-switch":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet-link":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/:index/wallet-link":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/shards":{input:{},output:{},securityMode:"requiredWeb2"},"/activity/query":{input:{},output:{}},"/activity/:identifier":{input:{},output:{}},"/analytics/volume":{input:{},output:{}},"/collection/:collection/analytics/volume":{input:{},output:{}},"/user/:address/analytics/volume":{input:{},output:{}},"/analytics/overview":{input:{},output:{}},"/user/stats":{input:{},output:{}},"/user/xoxno-drop":{input:{},output:{}},"/user/me/xoxno-drop":{input:{},output:{},securityMode:"requiredAny"},"/transactions/:txHash":{input:{},output:{}},"/transactions/:txHash/status":{input:{},output:{}},"/transaction/cost":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/transactions":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/transactions/batch":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/perp/exchange/acceptTerms":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/sendAsset":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/sendExternalAsset":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/deposit":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/withdraw":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/order":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/tradingview/bars/:symbol":{input:{},output:{}},"/tradingview/coin/:symbol":{input:{},output:{}},"/perp/coin/:symbol":{input:{},output:{}},"/perp/coin/spot/:symbol":{input:{},output:{}},"/perp/coins":{input:{},output:{}},"/perp/legal-check/:address":{input:{},output:{}},"/perp/coins/spot":{input:{},output:{}},"/perp/orderbook/:symbol":{input:{},output:{}},"/perp/trades/:symbol":{input:{},output:{}},"/perp/stats/spot/:symbol":{input:{},output:{}},"/perp/stats/:symbol":{input:{},output:{}},"/perp/subscribe":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/perp/unsubscribe":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/chat/message":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/conversation":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/conversation/:conversationId":{input:{},output:{},securityMode:"requiredAny",DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/conversation-summary":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/conversation/:conversationId/message/:messageId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/block":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/block/:address":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/token":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/hatom/user/:address":{input:{},output:{}},"/countries":{input:{},output:{}},"/event":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId":{input:{},output:{},securityMode:"optionalAny",PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/profile/query":{input:{},output:{}},"/event/:eventId/profile":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/background":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description/image":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description/image/:imageId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/register":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/ticket":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/ticket/:ticketId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"},POST:{input:{},output:{},body:{}}},"/event/:eventId/stage":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/stage/:stageId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/calculate-prices":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/event/:eventId/validate-discount":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/:address/creator/events":{input:{},output:{},securityMode:"optionalAny"},"/event/:eventId/invite":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/invite/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/invite/:inviteId":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/questions":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/question":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/question/:questionId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/guest/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest/:address":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest-export":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/role":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},securityMode:"requiredAny"},"/event/:eventId/role/:roleId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/guest":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/roleOf/:address":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/past":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/hosted":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/upcoming":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event/badge":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event/badge/payload":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/scan":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher/:voucherCode":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/manual-check-in":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/answered-questions/:address":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest/approve":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/google-pass/:address":{input:{},output:{}},"/event/profile/location":{input:{},output:{}},"/event/:eventId/referral-config":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral-config/:configId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral-configs":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/referral":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral/:referralCode":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referrals":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/referrals/self-serviced":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/notify-attendees":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/notify/global-broadcast":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/stellar/aggregator/quote":{input:{},output:{}}},b=["PATCH","POST","DELETE","PUT"],f={mainnet:process.env.STELLAR_LENDING_CONTROLLER_MAINNET??"",testnet:process.env.STELLAR_LENDING_CONTROLLER_TESTNET??""},_={mainnet:process.env.STELLAR_AGGREGATOR_ROUTER_MAINNET??"",testnet:process.env.STELLAR_AGGREGATOR_ROUTER_TESTNET??""},m={mainnet:"https://soroban-rpc.stellar.org",testnet:"https://soroban-testnet.stellar.org"},g={mainnet:process.env.STELLAR_QUOTE_URL_MAINNET??"https://stellar-swap.xoxno.com",testnet:process.env.STELLAR_QUOTE_URL_TESTNET??"https://testnet-stellar-swap.xoxno.com"},q={mainnet:"Public Global Stellar Network ; September 2015",testnet:"Test SDF Network ; September 2015"};function h(t){const e=f[t];if(!e)throw new Error(`Stellar lending controller address not configured for network "${t}". Set STELLAR_LENDING_CONTROLLER_${t.toUpperCase()} env var.`);return e}function S(t){const e=_[t];if(!e)throw new Error(`Stellar aggregator router address not configured for network "${t}". Set STELLAR_AGGREGATOR_ROUTER_${t.toUpperCase()} env var.`);return e}const w=require("@stellar/stellar-sdk"),v=["Soroswap","Aquarius","Phoenix","Sushi","CometDex"],T=t=>new w.Address(t).toScVal(),A=t=>new w.ScInt(t).toI128(),x=t=>w.xdr.ScVal.scvU32(t),k=t=>new w.ScInt("string"==typeof t?t:t.toString()).toU64(),E=t=>w.xdr.ScVal.scvBool(t),M=t=>w.xdr.ScVal.scvString(t),P=t=>w.xdr.ScVal.scvSymbol(t),O=t=>w.xdr.ScVal.scvVec(t),R=(t,e=32)=>{const o=t.startsWith("0x")?t.slice(2):t,r=Buffer.from(o,"hex");if(r.length!==e)throw new Error(`Stellar builder: expected a ${e}-byte BytesN (got ${r.length} bytes from "${t}")`);return w.xdr.ScVal.scvBytes(r)},I=(t,e)=>null==t?w.xdr.ScVal.scvVoid():e(t),C=(t,e)=>w.xdr.ScVal.scvVec([T(t),A(e)]),B=t=>w.xdr.ScVal.scvVec(t.map((t=>C(t.token,t.amount)))),U=t=>{const e=Object.keys(t).sort().map((e=>new w.xdr.ScMapEntry({key:P(e),val:t[e]})));return w.xdr.ScVal.scvMap(e)},L=t=>{const e=t.paths.map((t=>{const e=t.hops.map((t=>{return U({amount_out:A(t.amountOut),pool:T(t.pool),token_in:T(t.tokenIn),token_out:T(t.tokenOut),venue:(e=t.venue,w.xdr.ScVal.scvVec([P(e)]))});var e}));return U({hops:w.xdr.ScVal.scvVec(e),split_ppm:x(t.splitPpm)})}));return U({paths:w.xdr.ScVal.scvVec(e),referral_id:k(t.referralId??0),token_in:T(t.tokenIn),token_out:T(t.tokenOut),total_min_out:A(t.totalMinOut)})},N=t=>{const e=Buffer.from(t);if(0===e.length)throw new Error("Stellar builder: strategy swap bytes must be non-empty base64 routeXdr, 0x hex string, or Uint8Array");return w.xdr.ScVal.scvBytes(e)},D=t=>{const e=t.trim();if(e.startsWith("0x")){const t=e.slice(2);if(!((o=t).length>0&&o.length%2==0&&/^[0-9a-fA-F]+$/.test(o)))throw new Error("Stellar builder: strategy swap bytes hex string must be 0x-prefixed and even-length");return Buffer.from(t,"hex")}var o;if(!/^[A-Za-z0-9+/]+={0,2}$/.test(e))throw new Error("Stellar builder: strategy swap bytes must be base64 routeXdr or 0x-prefixed hex");const r=Buffer.from(e,"base64");if(0===r.length)throw new Error("Stellar builder: strategy swap bytes must be non-empty base64 routeXdr, 0x hex string, or Uint8Array");return r},$=t=>{if("string"==typeof t)return N(D(t));if(t instanceof Uint8Array)return N(t);if(t&&"object"==typeof t)return"routeXdr"in(o=t)&&"string"==typeof o.routeXdr?N(D(t.routeXdr)):(t=>"swapXdr"in t&&"string"==typeof t.swapXdr)(t)?N(D(t.swapXdr)):(t=>"bytes"in t&&("string"==typeof t.bytes||t.bytes instanceof Uint8Array))(t)?"string"==typeof t.bytes?N(D(t.bytes)):N(t.bytes):(e=(t=>{if(!t||"object"!=typeof t)throw new Error("Stellar builder: decoded strategy `steps` must be a StrategyPayload ({ paths, tokenIn, tokenOut, totalMinOut })");const e=t;if(!Array.isArray(e.paths)||0===e.paths.length)throw new Error("Stellar builder: `steps.paths` must be a non-empty array of strategy paths");if("string"!=typeof e.tokenIn)throw new Error("Stellar builder: `steps.tokenIn` must be a contract address");if("string"!=typeof e.tokenOut)throw new Error("Stellar builder: `steps.tokenOut` must be a contract address");if("string"!=typeof e.totalMinOut)throw new Error("Stellar builder: `steps.totalMinOut` must be an i128 decimal string");let o=0;for(const[t,r]of e.paths.entries()){if(!r||"number"!=typeof r.splitPpm||r.splitPpm<=0||!Array.isArray(r.hops)||0===r.hops.length)throw new Error(`Stellar builder: \`steps.paths[${t}]\` must have splitPpm > 0 and a non-empty hops array`);o+=r.splitPpm;for(const[e,o]of r.hops.entries())if(!o||"string"!=typeof o.amountOut||"string"!=typeof o.pool||"string"!=typeof o.tokenIn||"string"!=typeof o.tokenOut||!v.includes(o.venue))throw new Error(`Stellar builder: \`steps.paths[${t}].hops[${e}]\` must have amountOut, pool, tokenIn, tokenOut, and a valid Soroban venue`)}if(1e6!==o)throw new Error(`Stellar builder: \`steps.paths[].splitPpm\` must sum to 1_000_000, got ${o}`);return e})(t),w.xdr.ScVal.scvBytes(Buffer.from(L(e).toXDR("base64"),"base64")));var e,o;throw new Error("Stellar builder: `steps` must be opaque strategy bytes (`routeXdr`, base64/hex string, or Uint8Array)")},z=t=>{if("string"==typeof t)return(t=>{const e=t.startsWith("0x")?t.slice(2):t,o=Buffer.from(e,"hex");return w.xdr.ScVal.scvBytes(o)})(t);if(t instanceof Uint8Array)return w.xdr.ScVal.scvBytes(Buffer.from(t));throw new Error("Stellar builder: `data` must be a hex string or Uint8Array (Soroban Bytes payload)")};function j(t,e,o){const r=t.controllerAddress??h(t.network),u=new w.Contract(r),n=new w.Account(t.caller,t.sourceSequence);return{xdr:new w.TransactionBuilder(n,{fee:t.fee??w.BASE_FEE,networkPassphrase:q[t.network]}).addOperation(u.call(e,...o)).setTimeout(t.timeoutSeconds??300).build().toXDR()}}function W(t,e){const o=e.accountNonce??0,r=e.eModeCategory??0,u=B([...e.assets]);return j(t,"supply",[T(t.caller),k(o),x(r),u])}function V(t,e){return W(t,{accountNonce:e.accountNonce,eModeCategory:e.eModeCategory,assets:[{token:e.token,amount:e.amount}]})}function X(t,e){const o=B([...e.borrows]);return j(t,"borrow",[T(t.caller),k(e.accountNonce),o])}function F(t,e){return X(t,{accountNonce:e.accountNonce,borrows:[{token:e.token,amount:e.amount}]})}function H(t,e){const o=B([...e.withdrawals]);return j(t,"withdraw",[T(t.caller),k(e.accountNonce),o,I(e.to,T)])}function G(t,e){return H(t,{accountNonce:e.accountNonce,withdrawals:[{token:e.token,amount:e.amount}]})}function Z(t,e){const o=B([...e.payments]);return j(t,"repay",[T(t.caller),k(e.accountNonce),o])}function Q(t,e){return Z(t,{accountNonce:e.accountNonce,payments:[{token:e.token,amount:e.amount}]})}function K(t,e){const o=B(e.debtPayments.map((t=>({token:t.token,amount:t.amount}))));return j(t,"liquidate",[T(t.caller),k(e.accountNonce),o])}function J(t,e){return j(t,"flash_loan",[T(t.caller),T(e.asset),A(e.amount),T(e.receiver),z(e.data)])}function Y(t,e){const o=e.accountNonce??0;return j(t,"multiply",[T(t.caller),k(o),x(e.eModeCategory),T(e.collateralToken),A(e.debtToFlashLoan),T(e.debtToken),x(e.mode),$(e.steps),I(e.initialPayment,(t=>C(t.token,t.amount))),I(e.convertSwap,$)])}function tt(t,e){return j(t,"swap_debt",[T(t.caller),k(e.accountNonce),T(e.existingDebtToken),A(e.newDebtAmount),T(e.newDebtToken),$(e.steps)])}function et(t,e){return j(t,"swap_collateral",[T(t.caller),k(e.accountNonce),T(e.currentCollateral),A(e.fromAmount),T(e.newCollateral),$(e.steps)])}function ot(t,e){return j(t,"repay_debt_with_collateral",[T(t.caller),k(e.accountNonce),T(e.collateralToken),A(e.collateralAmount),T(e.debtToken),$(e.steps),E(e.closePosition)])}const rt={Single:0,PrimaryWithAnchor:1},ut=t=>U({base_borrow_rate_ray:A(t.baseBorrowRateRay),max_borrow_rate_ray:A(t.maxBorrowRateRay),max_utilization_ray:A(t.maxUtilizationRay),mid_utilization_ray:A(t.midUtilizationRay),optimal_utilization_ray:A(t.optimalUtilizationRay),reserve_factor_bps:x(t.reserveFactorBps),slope1_ray:A(t.slope1Ray),slope2_ray:A(t.slope2Ray),slope3_ray:A(t.slope3Ray)}),nt=t=>U({asset_decimals:x(t.assetDecimals),asset_id:T(t.assetId),base_borrow_rate_ray:A(t.baseBorrowRateRay),max_borrow_rate_ray:A(t.maxBorrowRateRay),max_utilization_ray:A(t.maxUtilizationRay),mid_utilization_ray:A(t.midUtilizationRay),optimal_utilization_ray:A(t.optimalUtilizationRay),reserve_factor_bps:x(t.reserveFactorBps),slope1_ray:A(t.slope1Ray),slope2_ray:A(t.slope2Ray),slope3_ray:A(t.slope3Ray)}),it=t=>U({borrow_cap:A(t.borrowCap),e_mode_categories:O(t.eModeCategories.map((t=>x(t)))),flashloan_fee_bps:x(t.flashloanFeeBps),is_borrowable:E(t.isBorrowable),is_collateralizable:E(t.isCollateralizable),is_flashloanable:E(t.isFlashloanable),is_isolated_asset:E(t.isIsolatedAsset),is_siloed_borrowing:E(t.isSiloedBorrowing),isolation_borrow_enabled:E(t.isolationBorrowEnabled),isolation_debt_ceiling_usd_wad:A(t.isolationDebtCeilingUsdWad),liquidation_bonus_bps:x(t.liquidationBonusBps),liquidation_fees_bps:x(t.liquidationFeesBps),liquidation_threshold_bps:x(t.liquidationThresholdBps),loan_to_value_bps:x(t.loanToValueBps),min_collat_floor_usd_wad:A(t.minCollatFloorUsdWad),min_debt_floor_usd_wad:A(t.minDebtFloorUsdWad),supply_cap:A(t.supplyCap)}),at=t=>U({max_borrow_positions:x(t.maxBorrowPositions),max_supply_positions:x(t.maxSupplyPositions)}),st=t=>{const e=t.kind;switch(e){case"Stellar":return O([P("Stellar"),T(t.value)]);case"Symbol":return O([P("Symbol"),P(t.value)]);case"String":return O([P("String"),M(t.value)]);default:throw new Error(`Stellar builder: unknown oracle asset ref kind "${e}"`)}},pt=(t,e)=>{if("Twap"===t){if("number"!=typeof e)throw new Error("Stellar builder: oracle source with Twap read mode requires `twapRecords`");return O([P("Twap"),x(e)])}return O([P("Spot")])},dt=t=>{const e=t.provider;if("ReflectorSep40"===e){if(!t.asset)throw new Error("Stellar builder: Reflector oracle source requires `asset`");return O([P("Reflector"),U({asset:st(t.asset),contract:T(t.contract),read_mode:pt(t.readMode,t.twapRecords)})])}if("RedStonePriceFeed"===e){if("string"!=typeof t.feedId)throw new Error("Stellar builder: RedStone oracle source requires `feedId`");if("number"!=typeof t.maxStaleSeconds)throw new Error("Stellar builder: RedStone oracle source requires `maxStaleSeconds`");return O([P("RedStone"),U({contract:T(t.contract),feed_id:M(t.feedId),max_stale_seconds:k(t.maxStaleSeconds)})])}throw new Error(`Stellar builder: unknown oracle provider "${e}"`)},lt=t=>{const e=rt[t.strategy];if(void 0===e)throw new Error(`Stellar builder: unknown oracle strategy "${t.strategy}"`);return U({anchor:(o=t.anchor,O(null==o?[P("None")]:[P("Some"),dt(o)])),first_tolerance_bps:x(t.firstToleranceBps),last_tolerance_bps:x(t.lastToleranceBps),max_price_stale_seconds:k(t.maxPriceStaleSeconds),max_sanity_price_wad:A(t.maxSanityPriceWad),min_sanity_price_wad:A(t.minSanityPriceWad),primary:dt(t.primary),strategy:x(e)});var o};function ct(t,e){return j(t,"upgrade",[R(e.wasmHash)])}function yt(t,e){return j(t,"migrate",[x(e.newVersion)])}function bt(t){return j(t,"pause",[])}function ft(t){return j(t,"unpause",[])}function _t(t,e){return j(t,"grant_role",[T(e.account),P(e.role)])}function mt(t,e){return j(t,"revoke_role",[T(e.account),P(e.role)])}function gt(t,e){return j(t,"transfer_ownership",[T(e.newOwner),x(e.liveUntilLedger)])}function qt(t){return j(t,"accept_ownership",[])}function ht(t,e){return j(t,"set_aggregator",[T(e.aggregator)])}function St(t,e){return j(t,"set_accumulator",[T(e.accumulator)])}function wt(t,e){return j(t,"set_liquidity_pool_template",[R(e.wasmHash)])}function vt(t,e){return j(t,"edit_asset_config",[T(e.asset),it(e.config)])}function Tt(t,e){return j(t,"set_position_limits",[at(e)])}function At(t,e){return j(t,"add_e_mode_category",[x(e.ltv),x(e.threshold),x(e.bonus)])}function xt(t,e){return j(t,"edit_e_mode_category",[x(e.id),x(e.ltv),x(e.threshold),x(e.bonus)])}function kt(t,e){return j(t,"remove_e_mode_category",[x(e.id)])}function Et(t,e){return j(t,"add_asset_to_e_mode_category",[T(e.asset),x(e.categoryId),E(e.canCollateral),E(e.canBorrow)])}function Mt(t,e){return j(t,"edit_asset_in_e_mode_category",[T(e.asset),x(e.categoryId),E(e.canCollateral),E(e.canBorrow)])}function Pt(t,e){return j(t,"remove_asset_from_e_mode",[T(e.asset),x(e.categoryId)])}function Ot(t,e){return j(t,"approve_token",[T(e.token)])}function Rt(t,e){return j(t,"revoke_token",[T(e.token)])}function It(t,e){return j(t,"configure_market_oracle",[T(t.caller),T(e.asset),lt(e.config)])}function Ct(t,e){return j(t,"edit_oracle_tolerance",[T(t.caller),T(e.asset),x(e.firstTolerance),x(e.lastTolerance)])}function Bt(t,e){return j(t,"disable_token_oracle",[T(t.caller),T(e.asset)])}function Ut(t,e){return j(t,"update_indexes",[T(t.caller),O(e.assets.map((t=>T(t))))])}function Lt(t,e){return j(t,"renew_account",[T(t.caller),k(e.accountNonce)])}function Nt(t,e){return j(t,"create_liquidity_pool",[T(e.asset),nt(e.params),it(e.config)])}function Dt(t,e){return j(t,"upgrade_liquidity_pool_params",[T(e.asset),ut(e.params)])}function $t(t,e){return j(t,"upgrade_liquidity_pool",[T(e.asset),R(e.wasmHash)])}function zt(t,e){return j(t,"claim_revenue",[T(t.caller),O(e.assets.map((t=>T(t))))])}function jt(t,e){return j(t,"add_rewards",[T(t.caller),O(e.rewards.map((t=>O([T(t.token),A(t.amount)]))))])}function Wt(t,e){return j(t,"update_account_threshold",[T(t.caller),T(e.asset),E(e.hasRisks),O(e.accountNonces.map((t=>k(t))))])}const Vt=t=>t.toXDR("base64"),Xt=t=>w.xdr.ScVal.fromXDR(t,"base64"),Ft=t=>t.map((t=>String((0,w.scValToNative)(Xt(t))))).join(":"),Ht=t=>"bigint"==typeof t||"number"==typeof t?t.toString():String(t),Gt=t=>Number(t),Zt=t=>String(t),Qt=t=>null==t?void 0:Ht(t),Kt=t=>null==t?void 0:Zt(t),Jt=t=>t instanceof Uint8Array?Buffer.from(t).toString("hex"):Buffer.isBuffer(t)?t.toString("hex"):String(t),Yt=["None","Multiply","Long","Short"],te=["Single","PrimaryWithAnchor"],ee=["ReflectorSep40","RedStonePriceFeed"],oe=["Spot","Twap"],re=t=>({loanToValueBps:Gt(t.loan_to_value_bps),liquidationThresholdBps:Gt(t.liquidation_threshold_bps),liquidationBonusBps:Gt(t.liquidation_bonus_bps),liquidationFeesBps:Gt(t.liquidation_fees_bps),isCollateralizable:Boolean(t.is_collateralizable),isBorrowable:Boolean(t.is_borrowable),isIsolatedAsset:Boolean(t.is_isolated_asset),isSiloedBorrowing:Boolean(t.is_siloed_borrowing),isFlashloanable:Boolean(t.is_flashloanable),isolationBorrowEnabled:Boolean(t.isolation_borrow_enabled),isolationDebtCeilingUsdWad:Ht(t.isolation_debt_ceiling_usd_wad),flashloanFeeBps:Gt(t.flashloan_fee_bps),borrowCap:Ht(t.borrow_cap),supplyCap:Ht(t.supply_cap),minCollatFloorUsdWad:Ht(t.min_collat_floor_usd_wad),minDebtFloorUsdWad:Ht(t.min_debt_floor_usd_wad),eModeCategories:(t.e_mode_categories??[]).map(Gt)}),ue=t=>{const e=(o=t.position_type,2===Gt(o)?"Borrow":"Deposit");var o;const r="Borrow"===e;return{action:Zt(t.action),positionType:e,asset:Zt(t.asset),scaledAmountRay:Ht(t.scaled_amount_ray),indexRay:Ht(t.index_ray),amount:Ht(t.amount),assetPriceWad:Qt(t.asset_price_wad),liquidationThresholdBps:r?void 0:Gt(t.liquidation_threshold_bps),liquidationBonusBps:r?void 0:Gt(t.liquidation_bonus_bps),loanToValueBps:r?void 0:Gt(t.loan_to_value_bps)}},ne=(t,e)=>{const o=oe[Gt(t[`${e}_read_mode`])]??"Spot",r=t[`${e}_asset`],u=t[`${e}_symbol`],n=null!=r?{kind:"Stellar",value:Zt(r)}:null!=u?{kind:"Symbol",value:Zt(u)}:void 0;return{provider:ee[Gt(t[`${e}_provider`])]??"ReflectorSep40",contractAddress:Zt(t[`${e}_contract`]),asset:n,feedId:Kt(t[`${e}_feed_id`]),readMode:o,twapRecords:"Twap"===o?Gt(t[`${e}_twap_records`]):void 0,decimals:Gt(t[`${e}_decimals`]),resolutionSeconds:Gt(t[`${e}_resolution_seconds`]),maxStaleSeconds:Gt(t[`${e}_max_stale_seconds`])}},ie=t=>{const e=null!==t.anchor_provider&&void 0!==t.anchor_provider;return{baseTokenId:Zt(t.base_token_id),quoteTokenId:Zt(t.quote_token_id),tolerance:{firstUpperRatio:Gt(t.first_upper_ratio_bps??t.tolerance?.first_upper_ratio_bps),firstLowerRatio:Gt(t.first_lower_ratio_bps??t.tolerance?.first_lower_ratio_bps),lastUpperRatio:Gt(t.last_upper_ratio_bps??t.tolerance?.last_upper_ratio_bps),lastLowerRatio:Gt(t.last_lower_ratio_bps??t.tolerance?.last_lower_ratio_bps)},assetDecimals:Gt(t.asset_decimals),maxPriceStaleSeconds:Gt(t.max_price_stale_seconds),strategy:te[Gt(t.strategy)]??"Single",primary:ne(t,"primary"),anchor:e?ne(t,"anchor"):void 0,primaryQuoteToken:Kt(t.primary_quote_token),anchorQuoteToken:Kt(t.anchor_quote_token),minSanityPriceWad:Qt(t.min_sanity_price_wad),maxSanityPriceWad:Qt(t.max_sanity_price_wad)}},ae={"market:create":t=>({topic:"market:create",data:{baseAsset:Zt(t.base_asset),maxBorrowRate:Ht(t.max_borrow_rate),baseBorrowRate:Ht(t.base_borrow_rate),slope1:Ht(t.slope1),slope2:Ht(t.slope2),slope3:Ht(t.slope3),midUtilization:Ht(t.mid_utilization),optimalUtilization:Ht(t.optimal_utilization),maxUtilization:Qt(t.max_utilization),reserveFactor:Gt(t.reserve_factor),marketAddress:Zt(t.market_address),config:re(t.config)}}),"market:params_update":t=>({topic:"market:params_update",data:{asset:Zt(t.asset),maxBorrowRateRay:Ht(t.max_borrow_rate_ray),baseBorrowRateRay:Ht(t.base_borrow_rate_ray),slope1Ray:Ht(t.slope1_ray),slope2Ray:Ht(t.slope2_ray),slope3Ray:Ht(t.slope3_ray),midUtilizationRay:Ht(t.mid_utilization_ray),optimalUtilizationRay:Ht(t.optimal_utilization_ray),maxUtilizationRay:Qt(t.max_utilization_ray),reserveFactorBps:Gt(t.reserve_factor_bps)}}),"market:batch_state_update":t=>({topic:"market:batch_state_update",data:{updates:(t.updates??[]).map((t=>({asset:Zt(t.asset),timestamp:Gt(t.timestamp),supplyIndexRay:Ht(t.supply_index_ray),borrowIndexRay:Ht(t.borrow_index_ray),reservesRay:Ht(t.reserves_ray),suppliedRay:Ht(t.supplied_ray),borrowedRay:Ht(t.borrowed_ray),revenueRay:Ht(t.revenue_ray),assetPriceWad:Qt(t.asset_price_wad)})))}}),"position:batch_update":t=>{return{topic:"position:batch_update",data:{accountId:Ht(t.account_id),accountAttributes:{owner:Zt(t.account_attributes.owner),isIsolatedPosition:Boolean(t.account_attributes.is_isolated_position),eModeCategoryId:Gt(t.account_attributes.e_mode_category_id),mode:(e=t.account_attributes.mode,Yt[Gt(e)]??"None"),isolatedToken:Kt(t.account_attributes.isolated_token)},updates:(t.updates??[]).map(ue)}};var e},"position:flash_loan":t=>({topic:"position:flash_loan",data:{asset:Zt(t.asset),receiver:Zt(t.receiver),caller:Zt(t.caller),amount:Ht(t.amount),fee:Ht(t.fee)}}),"config:asset":t=>({topic:"config:asset",data:{asset:Zt(t.asset),config:re(t.config)}}),"config:oracle":t=>({topic:"config:oracle",data:{asset:Zt(t.asset),oracle:ie(t.oracle)}}),"config:emode_category":t=>({topic:"config:emode_category",data:{category:{categoryId:Gt(t.category.category_id),loanToValueBps:Gt(t.category.loan_to_value_bps),liquidationThresholdBps:Gt(t.category.liquidation_threshold_bps),liquidationBonusBps:Gt(t.category.liquidation_bonus_bps),isDeprecated:Boolean(t.category.is_deprecated)}}}),"config:emode_asset":t=>({topic:"config:emode_asset",data:{asset:Zt(t.asset),config:{isCollateralizable:Boolean(t.config.is_collateralizable),isBorrowable:Boolean(t.config.is_borrowable)},categoryId:Gt(t.category_id)}}),"config:remove_emode_asset":t=>({topic:"config:remove_emode_asset",data:{asset:Zt(t.asset),categoryId:Gt(t.category_id)}}),"debt:ceiling_update":t=>({topic:"debt:ceiling_update",data:{asset:Zt(t.asset),totalDebtUsdWad:Ht(t.total_debt_usd_wad)}}),"debt:ceiling_batch_update":t=>({topic:"debt:ceiling_batch_update",data:{updates:(t.updates??[]).map((t=>({asset:Zt(t.asset),totalDebtUsdWad:Ht(t.total_debt_usd_wad)})))}}),"debt:bad_debt":t=>({topic:"debt:bad_debt",data:{accountId:Ht(t.account_id),totalBorrowUsdWad:Ht(t.total_borrow_usd_wad),totalCollateralUsdWad:Ht(t.total_collateral_usd_wad)}}),"strategy:initial_payment":t=>({topic:"strategy:initial_payment",data:{token:Zt(t.token),amount:Ht(t.amount),usdValueWad:Ht(t.usd_value_wad),accountId:Ht(t.account_id)}}),"config:approve_token":t=>({topic:"config:approve_token",data:{wasmHash:Jt(t.wasm_hash),approved:Boolean(t.approved)}}),"config:aggregator":t=>({topic:"config:aggregator",data:{aggregator:Zt(t.aggregator)}}),"config:accumulator":t=>({topic:"config:accumulator",data:{accumulator:Zt(t.accumulator)}}),"config:pool_template":t=>({topic:"config:pool_template",data:{wasmHash:Jt(t.wasm_hash)}}),"config:position_limits":t=>({topic:"config:position_limits",data:{maxSupplyPositions:Gt(t.max_supply_positions),maxBorrowPositions:Gt(t.max_borrow_positions)}}),"config:oracle_disabled":t=>({topic:"config:oracle_disabled",data:{asset:Zt(t.asset)}}),"oracle:twap_degraded":t=>({topic:"oracle:twap_degraded",data:{oracle:Zt(t.oracle),reasonCode:Gt(t.reason_code)}})},se=Object.freeze(Object.keys(ae));function pe(t,e){const o=Ft(t),r=ae[o];return r?r((0,w.scValToNative)(Xt(e))):null}const de="XLENDXLM-a7c9f3",le=1e4;function ce(t){const e=BigInt(t).toString(16),o=e.length%2==0?e:`0${e}`;return`${de}-${o}`}function ye(t){const e=t.split("-");return e.length>=2&&parseInt(e[1],10)||0}function be(t,e=0){return t*le+e}function fe(t){switch(t){case"liq_repay":return"lendingLiquidateRepayDebt";case"liq_seize":return"lendingLiquidateSeizeCollateral";case"param_upd":return"lendingUpdateAccountParameters";default:return"lendingUpdateAccountPosition"}}const _e=(t,e,o)=>{const r=new URL(e,t.endsWith("/")?t:`${t}/`);if(o)for(const[t,e]of Object.entries(o))void 0!==e&&r.searchParams.set(t,String(e));return r.toString()},me=t=>t.baseUrl??g[t.network];async function ge(t,e){if(null==t.amountIn==(null==t.amountOut))throw new Error("getStellarAggregatorQuote: exactly one of `amountIn` or `amountOut` must be provided");const o=_e(me(e),"api/v1/quote",{from:t.from,to:t.to,amountIn:t.amountIn,amountOut:t.amountOut,maxHops:t.maxHops,maxSplits:t.maxSplits,slippage:t.slippage,includePaths:t.includePaths,sender:t.sender,router:t.router,platform:t.platform,fresh:t.fresh}),r=await fetch(o,e.fetchOptions);if(!r.ok){const t=await r.text().catch((()=>""));throw new Error(`Stellar quote server responded ${r.status} ${r.statusText} for ${o} — ${t}`)}return await r.json()}async function qe(t){const e=_e(me(t),"api/v1/tokens"),o=await fetch(e,t.fetchOptions);if(!o.ok){const t=await o.text().catch((()=>""));throw new Error(`Stellar quote server responded ${o.status} ${o.statusText} for ${e} — ${t}`)}return await o.json()}const he=(t,e)=>(t=>Boolean(t&&"object"==typeof t&&!(t instanceof Uint8Array)&&"paths"in t))(t)&&void 0===t.referralId?{...t,referralId:e??0}:t,Se=t=>L(t).toXDR("base64");function we(t,e){const o=t.routerAddress??S(t.network),r=new w.Contract(o),u=new w.Account(t.caller,t.sourceSequence),n=$(he(e,t.referralId));return{xdr:new w.TransactionBuilder(u,{fee:t.fee??w.BASE_FEE,networkPassphrase:q[t.network]}).addOperation(r.call("execute_strategy",T(t.caller),A(t.totalIn),n)).setTimeout(t.timeoutSeconds??300).build().toXDR()}}function ve(t,e){return we(t,e)}function Te(t,e={}){if("string"!=typeof t.amountOutMin)throw new Error("mapQuoteResponseToStrategyPayload: quote response is missing `amountOutMin`. Pass `slippage` when fetching the quote.");return{paths:t.paths?t.paths.map((t=>({hops:t.swaps.map(ke),splitPpm:t.splitPpm}))):[{hops:t.hops.map(ke),splitPpm:1e6}],referralId:e.referralId??0,tokenIn:t.from,tokenOut:t.to,totalMinOut:t.amountOutMin}}function Ae(t,e={}){const o=t;return"string"==typeof o.routeXdr&&o.routeXdr.length>0?{routeXdr:o.routeXdr}:Te(t,e)}const xe=Te,ke=t=>({amountOut:t.amountOut,pool:t.address,tokenIn:t.from,tokenOut:t.to,venue:t.dex});function Ee(t,e){const o=e instanceof Error?e.message:String(e);return new Error(`[xoxno-invoked:${t}] ${o}`)}async function Me(t,e,o){const r=w.TransactionBuilder.fromXDR(e,"base64");try{return(await t.prepareTransaction(r)).toXDR()}catch(t){if(o?.invokedContractId)throw Ee(o.invokedContractId,t);throw t}}async function Pe(t,e,o){return Me(t,e.xdr,o)}function Oe(t){if(t<=0||t>4)throw new Error(`Invalid PositionMode ${t} for Stellar — expected 1 (Normal) through 4 (Short). "None" (0) has no Stellar equivalent.`);return t-1}function Re(t,e){return{paths:[{hops:[{amountOut:"0",pool:t,tokenIn:t,tokenOut:t,venue:"Soroswap"}],splitPpm:1e6}],referralId:0,tokenIn:t,tokenOut:t,totalMinOut:e}}const Ie=t=>{const e=t.startsWith("0x")?t.slice(2):t;if(e.length%2!=0)throw new Error("buildStellarCctpForwardTx: hex input must have even length");return Buffer.from(e,"hex")};function Ce(t){const e=new w.Account(t.caller,t.sourceSequence),o=new w.Contract(t.forwarderAddress).call("mint_and_forward",w.xdr.ScVal.scvBytes(Ie(t.message)),w.xdr.ScVal.scvBytes(Ie(t.attestation)));return{xdr:new w.TransactionBuilder(e,{fee:t.fee??"10000000",networkPassphrase:q[t.network]}).addOperation(o).setTimeout(t.timeoutSeconds??120).build().toXDR()}}const Be=t=>t.replace(/-([a-z])/g,((t,e)=>e.toUpperCase())),Ue=()=>({static:{},params:{},leaves:[]});function Le(t,e,o,r){const{input:u,output:n,...i}=e,a=async(e={})=>{const u={...o,...e},n=t.replace(/:([a-zA-Z_]+)/g,((t,e)=>`${u[e]}`)),i=[...t.matchAll(/:([a-zA-Z_]+)/g)].map((t=>t[1])),a=Object.fromEntries(Object.entries(u).filter((([t])=>!i.includes(t)))),p=/:address[^A-Z]/.test(t)||"address"in a,y=/:collection[^A-Z]/.test(t)||"collection"in a;if(p){const t=u.address;if(!c(t))throw new l(t)}if(y){const t=u.collection;if(Array.isArray(t)?t.some((t=>!s(t))):!s(t))throw new d(t)}const b=Object.fromEntries(Object.entries(a).map((([t,e])=>[t,e instanceof FormData?e:"filter"===t||"body"===t?JSON.stringify(e):Array.isArray(e)?e.join(","):e]))),{body:f,auth:_,method:m,headers:g,cache:q,next:h,debug:S,continuationToken:w,...v}=b,T=_?`Bearer ${_}`:void 0,A={...g,...T?{Authorization:T}:{},...w?{"X-Continuation-Token":String(w)}:{}},x={...h,tags:[...h?.tags??[],n]};return r.fetchWithTimeout(n,{method:m,params:v,body:f,headers:A,cache:q,debug:S,...x?{next:x}:{}})},p=(t={})=>a(t);for(const t of Object.keys(i))b.includes(t)&&(p[t]=e=>a({...e,method:e.method??t.toUpperCase()}));return p}function Ne(t){const e=function(){const t=Ue();for(const[e,o]of Object.entries(y)){const r=e.split("/").filter(Boolean);let u=t;for(const t of r)if(t.startsWith(":")){const e=Be(t.slice(1));u=u.params[e]||=Ue()}else{const e=Be(t);u=u.static[e]||=Ue()}u.leaves.push({rawPath:e,def:o})}return t}(),o=(e,r)=>{const u=e.leaves.length,n=Object.keys(e.static).length,i=Object.keys(e.params).length;let a;if(1===u&&n+i>0){const{rawPath:o,def:u}=e.leaves[0];a=Le(o,u,r,t)}else{a={};for(const{rawPath:o,def:u}of e.leaves)a[Be(o.split("/").pop().replace(/^:/,""))]=Le(o,u,r,t)}for(const[t,u]of Object.entries(e.static)){const e=o(u,r);let n=e;if(e&&"object"==typeof e&&t in e&&"function"==typeof e[t]){const o=e[t],r=Object.fromEntries(Object.entries(e).filter((([e])=>e!==t)));1===o.length||(Object.assign(o,r),n=o)}void 0===a[t]?a[t]=n:"function"==typeof a[t]?Object.assign(a[t],n):"function"==typeof n?(Object.assign(n,a[t]),a[t]=n):Object.assign(a[t],n)}for(const[t,u]of Object.entries(e.params)){const e=e=>{const n=o(u,{...r,[t]:e});if(n&&"object"==typeof n&&1===Object.keys(n).length&&t in n&&"function"==typeof n[t]){const e=n[t],o=(...t)=>e(...t);return Object.assign(o,e)}return n};if(a[t]){const o=a[t];a[t]=t=>({...o(t),...e(t)})}else a[t]=e}return a};return o(e,{})}module.exports=e})();
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"undefined"!=typeof globalThis&&void 0===globalThis.self&&(globalThis.self=globalThis);import{Account as t,Address as e,BASE_FEE as o,Contract as r,ScInt as u,TransactionBuilder as n,scValToNative as i,xdr as a}from"@stellar/stellar-sdk";const s="https://api.xoxno.com",p="erd1qqqqqqqqqqqqqpgq705fxpfrjne0tl3ece0rrspykq88mynn4kxs2cg43s",d="erd1qqqqqqqqqqqqqpgqd9rvv2n378e27jcts8vfwynpx0gfl5ufz6hqhfy0u0",c="erd1qqqqqqqqqqqqqpgq8xwzu82v8ex3h4ayl5lsvxqxnhecpwyvwe0sf2qj4e";var l;!function(t){t.MAINNET="1",t.DEVNET="D"}(l||(l={}));class y{apiUrl;chain;init;config;constructor({chain:t=l.MAINNET,apiUrl:e=s,...o}={}){this.apiUrl=e??{[l.MAINNET]:s,[l.DEVNET]:"https://devnet-api.xoxno.com"}[t],this.chain=t,this.init=o,this.config=t==l.MAINNET?{mediaUrl:"https://media.xoxno.com",gatewayUrl:"https://gateway.xoxno.com",XO_SC:"erd1qqqqqqqqqqqqqpgq6wegs2xkypfpync8mn2sa5cmpqjlvrhwz5nqgepyg8",FM_SC:p,DR_SC:d,KG_SC:c,Staking_SC:"erd1qqqqqqqqqqqqqpgqvpkd3g3uwludduv3797j54qt6c888wa59w2shntt6z",Manager_SC:"erd1qqqqqqqqqqqqqpgqg9fa0dmpn8fu3fnleeqn5zt8rl8mdqjkys5s2gtas7",P2P_SC:"erd1qqqqqqqqqqqqqpgq47y8hnct68v6asjv6gxem6h9rumn9frzah0skhxxt6"}:{mediaUrl:"https://devnet-media.xoxno.com",gatewayUrl:"https://devnet-gateway.xoxno.com",XO_SC:"erd1qqqqqqqqqqqqqpgql0dnz6n5hpuw8cptlt00khd0nn4ja8eadsfq2xrqw4",FM_SC:p,DR_SC:d,KG_SC:c,Staking_SC:"erd1qqqqqqqqqqqqqpgqsc5hnewwpep8qq0d7kjjzrquapuucrygah0s85zres",Manager_SC:"erd1qqqqqqqqqqqqqpgqluclyhfsa2uw7q9cjwd8knk989hg57u8ah0slq2nlr",P2P_SC:"erd1qqqqqqqqqqqqqpgqfja7ukpngrun78ueq583l0vd6aj4ekhrah0sa9wyrv"}}fetchWithTimeout=async(t,{params:e,...o}={})=>{const{next:r,cache:u,debug:n,...i}=this.init,{next:a,cache:s,debug:p,headers:d,method:c="GET",...l}=o,y=d?.Authorization,f="Bearer undefined"===y?void 0:y,_={...d,Referer:"https://xoxno.sdk","User-Agent":"XOXNO/1.0/SDK",..."PUT"===c?{}:{"Content-Type":"application/json"},...f?{Authorization:f}:{}},b=Object.entries(e??{}).flatMap((([t,e])=>Array.isArray(e)?e.map((e=>`${t}=${encodeURIComponent(e)}`)):`${t}=${encodeURIComponent(e)}`)).join("&"),m=`${this.apiUrl}${t}${b.length?`?${b}`:""}`,{revalidate:g,...q}=r??{},{revalidate:h,...v}=a??{},w="GET"!==c||f?void 0:h??g,A="GET"!==c||f||w?void 0:s??u,S={...i,...l,method:c,...Object.keys(_).length?{headers:_}:{},cache:A,next:{...q,...v,revalidate:w}};(p??n)&&console.debug("SDK fetch: ",m,S);const T=await fetch(m,S).catch((t=>{if(t instanceof Error&&!t.message.match(/^http(s?):\/\//))throw new Error(`${m}: ${t.message}`);throw t})),k=await T.text();if(!T.ok){let t;try{t=JSON.parse(k)}catch{t={message:k}}const e=[m,T.status,T.statusText,t.message].filter(Boolean).join(";;");throw new Error(e)}try{return JSON.parse(k)}catch{return k}}}const f=t=>{const e=/^0x[a-fA-F0-9]{1,64}-[a-zA-Z0-9_]+-[a-zA-Z0-9_]+(<.+>)?$/.test(decodeURIComponent(t)),o=/^[A-Z0-9]{3,10}-[a-z0-9]{6}$/.test(t);return e||o},_=t=>{const e=/^0x[a-fA-F0-9]{1,64}$/.test(t),o=/^[A-Za-z0-9]{3,10}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2,7}(?:-\d+(?:-[A-Za-z0-9]+)?)?$/.test(t);return e||o};class b extends Error{constructor(t){super(`Invalid collection ticker: ${t}`)}}class m extends Error{constructor(t){super(`Invalid address: ${t}`)}}Error,Error;const g=t=>!!t&&(t.startsWith("erd1")&&62===t.length||/^0x[a-fA-F0-9]{40,64}$/.test(t)||/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t)||/^G[A-Z2-7]{55}$/.test(t)),q={"/liquid/xoxno/rate":{input:{},output:{}},"/liquid/xoxno/liquid-supply":{input:{},output:{}},"/liquid/xoxno/staked":{input:{},output:{}},"/user/login":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/:address/network-account":{input:{},output:{}},"/user/:address/token-inventory":{input:{},output:{}},"/user/network-account":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/me/profile":{input:{},output:{},securityMode:"requiredAny"},"/user/:address/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me":{input:{},output:{},securityMode:"requiredAny"},"/user/me/settings":{input:{},output:{},securityMode:"optionalAny"},"/user/me/settings/notification-preferences":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"optionalAny"}},"/user/me/settings/email":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredJwt"}},"/user/me/settings/phone":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me/settings/billing":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me/settings/verify-email":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/buy/signature":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:tag/creator/is-registered":{input:{},output:{}},"/user/:address/creator/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/favorite/collections":{input:{},output:{}},"/user/favorite/:favoriteId":{input:{},output:{},securityMode:"requiredAny"},"/user/:address/follow":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/favorite/users":{input:{},output:{}},"/tokens":{input:{},output:{}},"/tokens/swap":{input:{},output:{}},"/stellar/tokens":{input:{},output:{}},"/tokens/restricted":{input:{},output:{}},"/tokens/usd-price":{input:{},output:{}},"/tokens/egld/fiat-price":{input:{},output:{}},"/tokens/xoxno/info":{input:{},output:{}},"/liquid/xoxno/stats":{input:{},output:{}},"/liquid/egld/stats":{input:{},output:{}},"/liquid/sui/stats":{input:{},output:{}},"/analytics/marketplace-unique-users":{input:{},output:{}},"/liquid/egld/rate":{input:{},output:{}},"/liquid/egld/liquid-supply":{input:{},output:{}},"/liquid/egld/staked":{input:{},output:{}},"/liquid/egld/pending-fees":{input:{},output:{}},"/liquid/egld/pending-undelegate":{input:{},output:{}},"/liquid/egld/pending-delegate":{input:{},output:{}},"/liquid/egld/execute-delegate":{input:{},output:{}},"/liquid/egld/execute-undelegate":{input:{},output:{}},"/liquid/egld/protocol-apr":{input:{},output:{}},"/liquid/egld/providers":{input:{},output:{}},"/user/:address/delegation":{input:{},output:{}},"/lending/market/:token/profile":{input:{},output:{}},"/lending/market/query":{input:{},output:{}},"/user/lending/:address":{input:{},output:{}},"/lending/market/indexes":{input:{},output:{}},"/user/lending/position/:identifier":{input:{},output:{}},"/lending/pnl":{input:{},output:{}},"/user/lending/pnl/:address":{input:{},output:{}},"/user/lending/summary/:identifier":{input:{},output:{}},"/user/lending/image/:nonce":{input:{},output:{}},"/lending/market/emode-categories":{input:{},output:{}},"/lending/market/:token/emode-categories":{input:{},output:{}},"/lending/market/:token/analytics":{input:{},output:{}},"/lending/market/:token/average":{input:{},output:{}},"/lending/leaderboard":{input:{},output:{}},"/lending/leaderboard/liquidate":{input:{},output:{}},"/lending/leaderboard/clean-bad-debt":{input:{},output:{}},"/lending/stats":{input:{},output:{}},"/lending/market/prices":{input:{},output:{}},"/nft/query":{input:{},output:{}},"/nft/:identifier/like":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/inventory-summary":{input:{},output:{}},"/user/:address/offers":{input:{},output:{}},"/nft/offer/query":{input:{},output:{}},"/nft/offer/:identifier":{input:{},output:{}},"/user/:address/favorite/nfts":{input:{},output:{}},"/collection/:collection/attributes":{input:{},output:{}},"/nft/:identifier/offers":{input:{},output:{}},"/collection/:collection/ranks":{input:{},output:{}},"/collection/:collection/listings":{input:{},output:{}},"/nft/pinned":{input:{},output:{}},"/nft/sign-withdraw":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/sign-offer":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/sign-mint":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/nft/:identifier":{input:{},output:{}},"/collection/:collection/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/floor-price":{input:{},output:{}},"/collection/floor-price":{input:{},output:{}},"/collection/pinned":{input:{},output:{}},"/collection/pinned-drops":{input:{},output:{}},"/collection/:collection/pinned-drops":{input:{},output:{}},"/collection/:collection/pinned":{input:{},output:{}},"/collection/:collection/follow":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/query":{input:{},output:{}},"/collection/drops/query":{input:{},output:{}},"/collection/:collection/drop-info":{input:{},output:{},securityMode:"optionalAny"},"/collection/:creatorTag/:collectionTag/drop-info":{input:{},output:{},securityMode:"optionalAny"},"/collection/:collection/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/holders":{input:{},output:{}},"/collection/:collection/holders/export":{input:{},output:{}},"/collection/:collection/owner":{input:{},output:{}},"/collection/:collection/stats":{input:{},output:{}},"/collection/stats/query":{input:{},output:{}},"/collection/global-offer/query":{input:{},output:{}},"/user/:address/creator/listing":{input:{},output:{}},"/user/:address/creator/details":{input:{},output:{}},"/launchpad/:scAddress/shareholders/royalties":{input:{},output:{}},"/launchpad/:scAddress/shareholders/collection/:collectionTag":{input:{},output:{}},"/pool/:poolId/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/pool/:poolId/whitelist":{input:{},output:{}},"/pool/:poolId/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/staking/available-pools":{input:{},output:{}},"/user/:address/staking/owned-collections":{input:{},output:{}},"/user/:address/staking/owned-pools":{input:{},output:{}},"/user/:address/staking/summary":{input:{},output:{}},"/user/:address/staking/creator":{input:{},output:{}},"/user/:address/staking/collection/:collection":{input:{},output:{}},"/user/:address/staking/pool/:poolId/nfts":{input:{},output:{}},"/collection/:collection/staking/summary":{input:{},output:{},securityMode:"optionalAny"},"/collection/:collection/staking/delegators":{input:{},output:{}},"/collection/staking/explore":{input:{},output:{}},"/user/:creatorTag/owned-services":{input:{},output:{}},"/search":{input:{},output:{}},"/user/search":{input:{},output:{}},"/collection/search":{input:{},output:{}},"/collection/drops/search":{input:{},output:{}},"/nft/search/query":{input:{},output:{}},"/lending/market-sc":{input:{},output:{}},"/lending/active-accounts":{input:{},output:{}},"/lending/account/:nonce/attributes":{input:{},output:{}},"/lending/account/:nonce/positions":{input:{},output:{}},"/lending/market/:token/price/egld":{input:{},output:{}},"/faucet":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/notifications":{input:{},output:{},securityMode:"requiredAny"},"/user/notifications/unread-count":{input:{},output:{},securityMode:"requiredAny"},"/user/notifications/clear":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/notifications/read":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/device/register":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/mobile/device/:deviceId":{input:{},output:{},securityMode:"requiredWeb2",DELETE:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/mobile/history":{input:{},output:{},securityMode:"requiredAny"},"/mobile/history/unread-count":{input:{},output:{},securityMode:"requiredAny"},"/mobile/history/:notificationId/read":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/read-all":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/clear-all":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/clear-id/:notificationId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/event/:eventId/update":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/event/:eventId/reminder":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/creator/marketing":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/user/:userId/direct":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/stellar/challenge":{input:{},output:{}},"/user/native-token":{input:{},output:{}},"/user/web2":{input:{},output:{},securityMode:"requiredWeb2"},"/user/web2/session-cookie":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet-switch":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet-link":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/:index/wallet-link":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/shards":{input:{},output:{},securityMode:"requiredWeb2"},"/activity/query":{input:{},output:{}},"/activity/:identifier":{input:{},output:{}},"/analytics/volume":{input:{},output:{}},"/collection/:collection/analytics/volume":{input:{},output:{}},"/collections/analytics/volume":{input:{},output:{}},"/user/:address/analytics/volume":{input:{},output:{}},"/analytics/overview":{input:{},output:{}},"/user/stats":{input:{},output:{}},"/user/xoxno-drop":{input:{},output:{}},"/user/me/xoxno-drop":{input:{},output:{},securityMode:"requiredAny"},"/transactions/:txHash":{input:{},output:{}},"/transactions/:txHash/status":{input:{},output:{}},"/transaction/cost":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/transactions":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/transactions/batch":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/perp/exchange/acceptTerms":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/sendAsset":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/sendExternalAsset":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/deposit":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/withdraw":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/order":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/tradingview/bars/:symbol":{input:{},output:{}},"/tradingview/coin/:symbol":{input:{},output:{}},"/perp/coin/:symbol":{input:{},output:{}},"/perp/coin/spot/:symbol":{input:{},output:{}},"/perp/coins":{input:{},output:{}},"/perp/legal-check/:address":{input:{},output:{}},"/perp/coins/spot":{input:{},output:{}},"/perp/orderbook/:symbol":{input:{},output:{}},"/perp/trades/:symbol":{input:{},output:{}},"/perp/stats/spot/:symbol":{input:{},output:{}},"/perp/stats/:symbol":{input:{},output:{}},"/perp/subscribe":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/perp/unsubscribe":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/chat/message":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/conversation":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/conversation/:conversationId":{input:{},output:{},securityMode:"requiredAny",DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/conversation-summary":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/conversation/:conversationId/message/:messageId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/block":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/block/:address":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/token":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/hatom/user/:address":{input:{},output:{}},"/countries":{input:{},output:{}},"/event":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId":{input:{},output:{},securityMode:"optionalAny",PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/profile/query":{input:{},output:{}},"/event/:eventId/profile":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/background":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description/image":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description/image/:imageId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/register":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/ticket":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/ticket/:ticketId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"},POST:{input:{},output:{},body:{}}},"/event/:eventId/stage":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/stage/:stageId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/calculate-prices":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/event/:eventId/validate-discount":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/:address/creator/events":{input:{},output:{},securityMode:"optionalAny"},"/event/:eventId/invite":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/invite/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/invite/:inviteId":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/questions":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/question":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/question/:questionId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/guest/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest/:address":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest-export":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/role":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},securityMode:"requiredAny"},"/event/:eventId/role/:roleId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/guest":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/roleOf/:address":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/past":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/hosted":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/upcoming":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event/badge":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event/badge/payload":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/scan":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher/:voucherCode":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/manual-check-in":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/answered-questions/:address":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest/approve":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/google-pass/:address":{input:{},output:{}},"/event/profile/location":{input:{},output:{}},"/event/:eventId/referral-config":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral-config/:configId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral-configs":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/referral":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral/:referralCode":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referrals":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/referrals/self-serviced":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/notify-attendees":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/notify/global-broadcast":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/stellar/aggregator/quote":{input:{},output:{}}},h=["PATCH","POST","DELETE","PUT"],v={mainnet:process.env.STELLAR_LENDING_CONTROLLER_MAINNET??"",testnet:process.env.STELLAR_LENDING_CONTROLLER_TESTNET??""},w={mainnet:process.env.STELLAR_AGGREGATOR_ROUTER_MAINNET??"",testnet:process.env.STELLAR_AGGREGATOR_ROUTER_TESTNET??""},A={mainnet:"https://soroban-rpc.stellar.org",testnet:"https://soroban-testnet.stellar.org"},S={mainnet:process.env.STELLAR_QUOTE_URL_MAINNET??"https://stellar-swap.xoxno.com",testnet:process.env.STELLAR_QUOTE_URL_TESTNET??"https://testnet-stellar-swap.xoxno.com"},T={mainnet:"Public Global Stellar Network ; September 2015",testnet:"Test SDF Network ; September 2015"};function k(t){const e=v[t];if(!e)throw new Error(`Stellar lending controller address not configured for network "${t}". Set STELLAR_LENDING_CONTROLLER_${t.toUpperCase()} env var.`);return e}function M(t){const e=w[t];if(!e)throw new Error(`Stellar aggregator router address not configured for network "${t}". Set STELLAR_AGGREGATOR_ROUTER_${t.toUpperCase()} env var.`);return e}const x=["Soroswap","Aquarius","Phoenix","Sushi","CometDex"],E=t=>new e(t).toScVal(),P=t=>new u(t).toI128(),O=t=>a.ScVal.scvU32(t),I=t=>new u("string"==typeof t?t:t.toString()).toU64(),R=t=>a.ScVal.scvBool(t),B=t=>a.ScVal.scvString(t),U=t=>a.ScVal.scvSymbol(t),C=t=>a.ScVal.scvVec(t),N=(t,e=32)=>{const o=t.startsWith("0x")?t.slice(2):t,r=Buffer.from(o,"hex");if(r.length!==e)throw new Error(`Stellar builder: expected a ${e}-byte BytesN (got ${r.length} bytes from "${t}")`);return a.ScVal.scvBytes(r)},$=(t,e)=>null==t?a.ScVal.scvVoid():e(t),z=(t,e)=>a.ScVal.scvVec([E(t),P(e)]),D=t=>a.ScVal.scvVec(t.map((t=>z(t.token,t.amount)))),L=t=>{const e=Object.keys(t).sort().map((e=>new a.ScMapEntry({key:U(e),val:t[e]})));return a.ScVal.scvMap(e)},j=t=>{const e=t.paths.map((t=>{const e=t.hops.map((t=>{return L({amount_out:P(t.amountOut),pool:E(t.pool),token_in:E(t.tokenIn),token_out:E(t.tokenOut),venue:(e=t.venue,a.ScVal.scvVec([U(e)]))});var e}));return L({hops:a.ScVal.scvVec(e),split_ppm:O(t.splitPpm)})}));return L({paths:a.ScVal.scvVec(e),referral_id:I(t.referralId??0),token_in:E(t.tokenIn),token_out:E(t.tokenOut),total_min_out:P(t.totalMinOut)})},W=t=>{const e=Buffer.from(t);if(0===e.length)throw new Error("Stellar builder: strategy swap bytes must be non-empty base64 routeXdr, 0x hex string, or Uint8Array");return a.ScVal.scvBytes(e)},V=t=>{const e=t.trim();if(e.startsWith("0x")){const t=e.slice(2);if(!((o=t).length>0&&o.length%2==0&&/^[0-9a-fA-F]+$/.test(o)))throw new Error("Stellar builder: strategy swap bytes hex string must be 0x-prefixed and even-length");return Buffer.from(t,"hex")}var o;if(!/^[A-Za-z0-9+/]+={0,2}$/.test(e))throw new Error("Stellar builder: strategy swap bytes must be base64 routeXdr or 0x-prefixed hex");const r=Buffer.from(e,"base64");if(0===r.length)throw new Error("Stellar builder: strategy swap bytes must be non-empty base64 routeXdr, 0x hex string, or Uint8Array");return r},X=t=>{if("string"==typeof t)return W(V(t));if(t instanceof Uint8Array)return W(t);if(t&&"object"==typeof t)return"routeXdr"in(o=t)&&"string"==typeof o.routeXdr?W(V(t.routeXdr)):(t=>"swapXdr"in t&&"string"==typeof t.swapXdr)(t)?W(V(t.swapXdr)):(t=>"bytes"in t&&("string"==typeof t.bytes||t.bytes instanceof Uint8Array))(t)?"string"==typeof t.bytes?W(V(t.bytes)):W(t.bytes):(e=(t=>{if(!t||"object"!=typeof t)throw new Error("Stellar builder: decoded strategy `steps` must be a StrategyPayload ({ paths, tokenIn, tokenOut, totalMinOut })");const e=t;if(!Array.isArray(e.paths)||0===e.paths.length)throw new Error("Stellar builder: `steps.paths` must be a non-empty array of strategy paths");if("string"!=typeof e.tokenIn)throw new Error("Stellar builder: `steps.tokenIn` must be a contract address");if("string"!=typeof e.tokenOut)throw new Error("Stellar builder: `steps.tokenOut` must be a contract address");if("string"!=typeof e.totalMinOut)throw new Error("Stellar builder: `steps.totalMinOut` must be an i128 decimal string");let o=0;for(const[t,r]of e.paths.entries()){if(!r||"number"!=typeof r.splitPpm||r.splitPpm<=0||!Array.isArray(r.hops)||0===r.hops.length)throw new Error(`Stellar builder: \`steps.paths[${t}]\` must have splitPpm > 0 and a non-empty hops array`);o+=r.splitPpm;for(const[e,o]of r.hops.entries())if(!o||"string"!=typeof o.amountOut||"string"!=typeof o.pool||"string"!=typeof o.tokenIn||"string"!=typeof o.tokenOut||!x.includes(o.venue))throw new Error(`Stellar builder: \`steps.paths[${t}].hops[${e}]\` must have amountOut, pool, tokenIn, tokenOut, and a valid Soroban venue`)}if(1e6!==o)throw new Error(`Stellar builder: \`steps.paths[].splitPpm\` must sum to 1_000_000, got ${o}`);return e})(t),a.ScVal.scvBytes(Buffer.from(j(e).toXDR("base64"),"base64")));var e,o;throw new Error("Stellar builder: `steps` must be opaque strategy bytes (`routeXdr`, base64/hex string, or Uint8Array)")},H=t=>{if("string"==typeof t)return(t=>{const e=t.startsWith("0x")?t.slice(2):t,o=Buffer.from(e,"hex");return a.ScVal.scvBytes(o)})(t);if(t instanceof Uint8Array)return a.ScVal.scvBytes(Buffer.from(t));throw new Error("Stellar builder: `data` must be a hex string or Uint8Array (Soroban Bytes payload)")};function F(e,u,i){const a=e.controllerAddress??k(e.network),s=new r(a),p=new t(e.caller,e.sourceSequence);return{xdr:new n(p,{fee:e.fee??o,networkPassphrase:T[e.network]}).addOperation(s.call(u,...i)).setTimeout(e.timeoutSeconds??300).build().toXDR()}}function G(t,e){const o=e.accountNonce??0,r=e.eModeCategory??0,u=D([...e.assets]);return F(t,"supply",[E(t.caller),I(o),O(r),u])}function Z(t,e){return G(t,{accountNonce:e.accountNonce,eModeCategory:e.eModeCategory,assets:[{token:e.token,amount:e.amount}]})}function Q(t,e){const o=D([...e.borrows]);return F(t,"borrow",[E(t.caller),I(e.accountNonce),o])}function J(t,e){return Q(t,{accountNonce:e.accountNonce,borrows:[{token:e.token,amount:e.amount}]})}function K(t,e){const o=D([...e.withdrawals]);return F(t,"withdraw",[E(t.caller),I(e.accountNonce),o])}function Y(t,e){return K(t,{accountNonce:e.accountNonce,withdrawals:[{token:e.token,amount:e.amount}]})}function tt(t,e){const o=D([...e.payments]);return F(t,"repay",[E(t.caller),I(e.accountNonce),o])}function et(t,e){return tt(t,{accountNonce:e.accountNonce,payments:[{token:e.token,amount:e.amount}]})}function ot(t,e){const o=D(e.debtPayments.map((t=>({token:t.token,amount:t.amount}))));return F(t,"liquidate",[E(t.caller),I(e.accountNonce),o])}function rt(t,e){return F(t,"flash_loan",[E(t.caller),E(e.asset),P(e.amount),E(e.receiver),H(e.data)])}function ut(t,e){const o=e.accountNonce??0;return F(t,"multiply",[E(t.caller),I(o),O(e.eModeCategory),E(e.collateralToken),P(e.debtToFlashLoan),E(e.debtToken),O(e.mode),X(e.steps),$(e.initialPayment,(t=>z(t.token,t.amount))),$(e.convertSwap,X)])}function nt(t,e){return F(t,"swap_debt",[E(t.caller),I(e.accountNonce),E(e.existingDebtToken),P(e.newDebtAmount),E(e.newDebtToken),X(e.steps)])}function it(t,e){return F(t,"swap_collateral",[E(t.caller),I(e.accountNonce),E(e.currentCollateral),P(e.fromAmount),E(e.newCollateral),X(e.steps)])}function at(t,e){return F(t,"repay_debt_with_collateral",[E(t.caller),I(e.accountNonce),E(e.collateralToken),P(e.collateralAmount),E(e.debtToken),X(e.steps),R(e.closePosition)])}const st={Single:0,PrimaryWithAnchor:1},pt=t=>L({base_borrow_rate_ray:P(t.baseBorrowRateRay),max_borrow_rate_ray:P(t.maxBorrowRateRay),max_utilization_ray:P(t.maxUtilizationRay),mid_utilization_ray:P(t.midUtilizationRay),optimal_utilization_ray:P(t.optimalUtilizationRay),reserve_factor_bps:O(t.reserveFactorBps),slope1_ray:P(t.slope1Ray),slope2_ray:P(t.slope2Ray),slope3_ray:P(t.slope3Ray)}),dt=t=>L({asset_decimals:O(t.assetDecimals),asset_id:E(t.assetId),base_borrow_rate_ray:P(t.baseBorrowRateRay),max_borrow_rate_ray:P(t.maxBorrowRateRay),max_utilization_ray:P(t.maxUtilizationRay),mid_utilization_ray:P(t.midUtilizationRay),optimal_utilization_ray:P(t.optimalUtilizationRay),reserve_factor_bps:O(t.reserveFactorBps),slope1_ray:P(t.slope1Ray),slope2_ray:P(t.slope2Ray),slope3_ray:P(t.slope3Ray)}),ct=t=>L({borrow_cap:P(t.borrowCap),e_mode_categories:C(t.eModeCategories.map((t=>O(t)))),flashloan_fee_bps:O(t.flashloanFeeBps),is_borrowable:R(t.isBorrowable),is_collateralizable:R(t.isCollateralizable),is_flashloanable:R(t.isFlashloanable),is_isolated_asset:R(t.isIsolatedAsset),is_siloed_borrowing:R(t.isSiloedBorrowing),isolation_borrow_enabled:R(t.isolationBorrowEnabled),isolation_debt_ceiling_usd_wad:P(t.isolationDebtCeilingUsdWad),liquidation_bonus_bps:O(t.liquidationBonusBps),liquidation_fees_bps:O(t.liquidationFeesBps),liquidation_threshold_bps:O(t.liquidationThresholdBps),loan_to_value_bps:O(t.loanToValueBps),min_collat_floor_usd_wad:P(t.minCollatFloorUsdWad),min_debt_floor_usd_wad:P(t.minDebtFloorUsdWad),supply_cap:P(t.supplyCap)}),lt=t=>L({max_borrow_positions:O(t.maxBorrowPositions),max_supply_positions:O(t.maxSupplyPositions)}),yt=t=>{const e=t.kind;switch(e){case"Stellar":return C([U("Stellar"),E(t.value)]);case"Symbol":return C([U("Symbol"),U(t.value)]);case"String":return C([U("String"),B(t.value)]);default:throw new Error(`Stellar builder: unknown oracle asset ref kind "${e}"`)}},ft=(t,e)=>{if("Twap"===t){if("number"!=typeof e)throw new Error("Stellar builder: oracle source with Twap read mode requires `twapRecords`");return C([U("Twap"),O(e)])}return C([U("Spot")])},_t=t=>{const e=t.provider;if("ReflectorSep40"===e){if(!t.asset)throw new Error("Stellar builder: Reflector oracle source requires `asset`");return C([U("Reflector"),L({asset:yt(t.asset),contract:E(t.contract),read_mode:ft(t.readMode,t.twapRecords)})])}if("RedStonePriceFeed"===e){if("string"!=typeof t.feedId)throw new Error("Stellar builder: RedStone oracle source requires `feedId`");if("number"!=typeof t.maxStaleSeconds)throw new Error("Stellar builder: RedStone oracle source requires `maxStaleSeconds`");return C([U("RedStone"),L({contract:E(t.contract),feed_id:B(t.feedId),max_stale_seconds:I(t.maxStaleSeconds)})])}throw new Error(`Stellar builder: unknown oracle provider "${e}"`)},bt=t=>{const e=st[t.strategy];if(void 0===e)throw new Error(`Stellar builder: unknown oracle strategy "${t.strategy}"`);return L({anchor:(o=t.anchor,C(null==o?[U("None")]:[U("Some"),_t(o)])),first_tolerance_bps:O(t.firstToleranceBps),last_tolerance_bps:O(t.lastToleranceBps),max_price_stale_seconds:I(t.maxPriceStaleSeconds),max_sanity_price_wad:P(t.maxSanityPriceWad),min_sanity_price_wad:P(t.minSanityPriceWad),primary:_t(t.primary),strategy:O(e)});var o};function mt(t,e){return F(t,"upgrade",[N(e.wasmHash)])}function gt(t,e){return F(t,"migrate",[O(e.newVersion)])}function qt(t){return F(t,"pause",[])}function ht(t){return F(t,"unpause",[])}function vt(t,e){return F(t,"grant_role",[E(e.account),U(e.role)])}function wt(t,e){return F(t,"revoke_role",[E(e.account),U(e.role)])}function At(t,e){return F(t,"transfer_ownership",[E(e.newOwner),O(e.liveUntilLedger)])}function St(t){return F(t,"accept_ownership",[])}function Tt(t,e){return F(t,"set_aggregator",[E(e.aggregator)])}function kt(t,e){return F(t,"set_accumulator",[E(e.accumulator)])}function Mt(t,e){return F(t,"set_liquidity_pool_template",[N(e.wasmHash)])}function xt(t,e){return F(t,"edit_asset_config",[E(e.asset),ct(e.config)])}function Et(t,e){return F(t,"set_position_limits",[lt(e)])}function Pt(t,e){return F(t,"add_e_mode_category",[O(e.ltv),O(e.threshold),O(e.bonus)])}function Ot(t,e){return F(t,"edit_e_mode_category",[O(e.id),O(e.ltv),O(e.threshold),O(e.bonus)])}function It(t,e){return F(t,"remove_e_mode_category",[O(e.id)])}function Rt(t,e){return F(t,"add_asset_to_e_mode_category",[E(e.asset),O(e.categoryId),R(e.canCollateral),R(e.canBorrow)])}function Bt(t,e){return F(t,"edit_asset_in_e_mode_category",[E(e.asset),O(e.categoryId),R(e.canCollateral),R(e.canBorrow)])}function Ut(t,e){return F(t,"remove_asset_from_e_mode",[E(e.asset),O(e.categoryId)])}function Ct(t,e){return F(t,"approve_token",[E(e.token)])}function Nt(t,e){return F(t,"revoke_token",[E(e.token)])}function $t(t,e){return F(t,"configure_market_oracle",[E(t.caller),E(e.asset),bt(e.config)])}function zt(t,e){return F(t,"edit_oracle_tolerance",[E(t.caller),E(e.asset),O(e.firstTolerance),O(e.lastTolerance)])}function Dt(t,e){return F(t,"disable_token_oracle",[E(t.caller),E(e.asset)])}function Lt(t,e){return F(t,"update_indexes",[E(t.caller),C(e.assets.map((t=>E(t))))])}function jt(t,e){return F(t,"renew_account",[E(t.caller),I(e.accountNonce)])}function Wt(t,e){return F(t,"create_liquidity_pool",[E(e.asset),dt(e.params),ct(e.config)])}function Vt(t,e){return F(t,"upgrade_liquidity_pool_params",[E(e.asset),pt(e.params)])}function Xt(t,e){return F(t,"upgrade_liquidity_pool",[E(e.asset),N(e.wasmHash)])}function Ht(t,e){return F(t,"claim_revenue",[E(t.caller),C(e.assets.map((t=>E(t))))])}function Ft(t,e){return F(t,"add_rewards",[E(t.caller),C(e.rewards.map((t=>C([E(t.token),P(t.amount)]))))])}function Gt(t,e){return F(t,"update_account_threshold",[E(t.caller),E(e.asset),R(e.hasRisks),C(e.accountNonces.map((t=>I(t))))])}const Zt=t=>t.toXDR("base64"),Qt=t=>a.ScVal.fromXDR(t,"base64"),Jt=t=>t.map((t=>String(i(Qt(t))))).join(":"),Kt=t=>"bigint"==typeof t||"number"==typeof t?t.toString():String(t),Yt=t=>Number(t),te=t=>String(t),ee=t=>null==t?void 0:Kt(t),oe=t=>null==t?void 0:te(t),re=t=>t instanceof Uint8Array?Buffer.from(t).toString("hex"):Buffer.isBuffer(t)?t.toString("hex"):String(t),ue=["None","Multiply","Long","Short"],ne=["Single","PrimaryWithAnchor"],ie=["ReflectorSep40","RedStonePriceFeed"],ae=["Spot","Twap"],se=t=>({loanToValueBps:Yt(t.loan_to_value_bps),liquidationThresholdBps:Yt(t.liquidation_threshold_bps),liquidationBonusBps:Yt(t.liquidation_bonus_bps),liquidationFeesBps:Yt(t.liquidation_fees_bps),isCollateralizable:Boolean(t.is_collateralizable),isBorrowable:Boolean(t.is_borrowable),isIsolatedAsset:Boolean(t.is_isolated_asset),isSiloedBorrowing:Boolean(t.is_siloed_borrowing),isFlashloanable:Boolean(t.is_flashloanable),isolationBorrowEnabled:Boolean(t.isolation_borrow_enabled),isolationDebtCeilingUsdWad:Kt(t.isolation_debt_ceiling_usd_wad),flashloanFeeBps:Yt(t.flashloan_fee_bps),borrowCap:Kt(t.borrow_cap),supplyCap:Kt(t.supply_cap),minCollatFloorUsdWad:Kt(t.min_collat_floor_usd_wad),minDebtFloorUsdWad:Kt(t.min_debt_floor_usd_wad),eModeCategories:(t.e_mode_categories??[]).map(Yt)}),pe=t=>{const e=(o=t.position_type,2===Yt(o)?"Borrow":"Deposit");var o;const r="Borrow"===e;return{action:te(t.action),positionType:e,asset:te(t.asset),scaledAmountRay:Kt(t.scaled_amount_ray),indexRay:Kt(t.index_ray),amount:Kt(t.amount),assetPriceWad:ee(t.asset_price_wad),liquidationThresholdBps:r?void 0:Yt(t.liquidation_threshold_bps),liquidationBonusBps:r?void 0:Yt(t.liquidation_bonus_bps),loanToValueBps:r?void 0:Yt(t.loan_to_value_bps)}},de=(t,e)=>{const o=ae[Yt(t[`${e}_read_mode`])]??"Spot",r=t[`${e}_asset`],u=t[`${e}_symbol`],n=null!=r?{kind:"Stellar",value:te(r)}:null!=u?{kind:"Symbol",value:te(u)}:void 0;return{provider:ie[Yt(t[`${e}_provider`])]??"ReflectorSep40",contractAddress:te(t[`${e}_contract`]),asset:n,feedId:oe(t[`${e}_feed_id`]),readMode:o,twapRecords:"Twap"===o?Yt(t[`${e}_twap_records`]):void 0,decimals:Yt(t[`${e}_decimals`]),resolutionSeconds:Yt(t[`${e}_resolution_seconds`]),maxStaleSeconds:Yt(t[`${e}_max_stale_seconds`])}},ce=t=>{const e=null!==t.anchor_provider&&void 0!==t.anchor_provider;return{baseTokenId:te(t.base_token_id),quoteTokenId:te(t.quote_token_id),tolerance:{firstUpperRatio:Yt(t.first_upper_ratio_bps??t.tolerance?.first_upper_ratio_bps),firstLowerRatio:Yt(t.first_lower_ratio_bps??t.tolerance?.first_lower_ratio_bps),lastUpperRatio:Yt(t.last_upper_ratio_bps??t.tolerance?.last_upper_ratio_bps),lastLowerRatio:Yt(t.last_lower_ratio_bps??t.tolerance?.last_lower_ratio_bps)},assetDecimals:Yt(t.asset_decimals),maxPriceStaleSeconds:Yt(t.max_price_stale_seconds),strategy:ne[Yt(t.strategy)]??"Single",primary:de(t,"primary"),anchor:e?de(t,"anchor"):void 0,primaryQuoteToken:oe(t.primary_quote_token),anchorQuoteToken:oe(t.anchor_quote_token),minSanityPriceWad:ee(t.min_sanity_price_wad),maxSanityPriceWad:ee(t.max_sanity_price_wad)}},le={"market:create":t=>({topic:"market:create",data:{baseAsset:te(t.base_asset),maxBorrowRate:Kt(t.max_borrow_rate),baseBorrowRate:Kt(t.base_borrow_rate),slope1:Kt(t.slope1),slope2:Kt(t.slope2),slope3:Kt(t.slope3),midUtilization:Kt(t.mid_utilization),optimalUtilization:Kt(t.optimal_utilization),maxUtilization:ee(t.max_utilization),reserveFactor:Yt(t.reserve_factor),marketAddress:te(t.market_address),config:se(t.config)}}),"market:params_update":t=>({topic:"market:params_update",data:{asset:te(t.asset),maxBorrowRateRay:Kt(t.max_borrow_rate_ray),baseBorrowRateRay:Kt(t.base_borrow_rate_ray),slope1Ray:Kt(t.slope1_ray),slope2Ray:Kt(t.slope2_ray),slope3Ray:Kt(t.slope3_ray),midUtilizationRay:Kt(t.mid_utilization_ray),optimalUtilizationRay:Kt(t.optimal_utilization_ray),maxUtilizationRay:ee(t.max_utilization_ray),reserveFactorBps:Yt(t.reserve_factor_bps)}}),"market:batch_state_update":t=>({topic:"market:batch_state_update",data:{updates:(t.updates??[]).map((t=>({asset:te(t.asset),timestamp:Yt(t.timestamp),supplyIndexRay:Kt(t.supply_index_ray),borrowIndexRay:Kt(t.borrow_index_ray),reservesRay:Kt(t.reserves_ray),suppliedRay:Kt(t.supplied_ray),borrowedRay:Kt(t.borrowed_ray),revenueRay:Kt(t.revenue_ray),assetPriceWad:ee(t.asset_price_wad)})))}}),"position:batch_update":t=>{return{topic:"position:batch_update",data:{accountId:Kt(t.account_id),accountAttributes:{owner:te(t.account_attributes.owner),isIsolatedPosition:Boolean(t.account_attributes.is_isolated_position),eModeCategoryId:Yt(t.account_attributes.e_mode_category_id),mode:(e=t.account_attributes.mode,ue[Yt(e)]??"None"),isolatedToken:oe(t.account_attributes.isolated_token)},updates:(t.updates??[]).map(pe)}};var e},"position:flash_loan":t=>({topic:"position:flash_loan",data:{asset:te(t.asset),receiver:te(t.receiver),caller:te(t.caller),amount:Kt(t.amount),fee:Kt(t.fee)}}),"config:asset":t=>({topic:"config:asset",data:{asset:te(t.asset),config:se(t.config)}}),"config:oracle":t=>({topic:"config:oracle",data:{asset:te(t.asset),oracle:ce(t.oracle)}}),"config:emode_category":t=>({topic:"config:emode_category",data:{category:{categoryId:Yt(t.category.category_id),loanToValueBps:Yt(t.category.loan_to_value_bps),liquidationThresholdBps:Yt(t.category.liquidation_threshold_bps),liquidationBonusBps:Yt(t.category.liquidation_bonus_bps),isDeprecated:Boolean(t.category.is_deprecated)}}}),"config:emode_asset":t=>({topic:"config:emode_asset",data:{asset:te(t.asset),config:{isCollateralizable:Boolean(t.config.is_collateralizable),isBorrowable:Boolean(t.config.is_borrowable)},categoryId:Yt(t.category_id)}}),"config:remove_emode_asset":t=>({topic:"config:remove_emode_asset",data:{asset:te(t.asset),categoryId:Yt(t.category_id)}}),"debt:ceiling_update":t=>({topic:"debt:ceiling_update",data:{asset:te(t.asset),totalDebtUsdWad:Kt(t.total_debt_usd_wad)}}),"debt:ceiling_batch_update":t=>({topic:"debt:ceiling_batch_update",data:{updates:(t.updates??[]).map((t=>({asset:te(t.asset),totalDebtUsdWad:Kt(t.total_debt_usd_wad)})))}}),"debt:bad_debt":t=>({topic:"debt:bad_debt",data:{accountId:Kt(t.account_id),totalBorrowUsdWad:Kt(t.total_borrow_usd_wad),totalCollateralUsdWad:Kt(t.total_collateral_usd_wad)}}),"strategy:initial_payment":t=>({topic:"strategy:initial_payment",data:{token:te(t.token),amount:Kt(t.amount),usdValueWad:Kt(t.usd_value_wad),accountId:Kt(t.account_id)}}),"config:approve_token":t=>({topic:"config:approve_token",data:{wasmHash:re(t.wasm_hash),approved:Boolean(t.approved)}}),"config:aggregator":t=>({topic:"config:aggregator",data:{aggregator:te(t.aggregator)}}),"config:accumulator":t=>({topic:"config:accumulator",data:{accumulator:te(t.accumulator)}}),"config:pool_template":t=>({topic:"config:pool_template",data:{wasmHash:re(t.wasm_hash)}}),"config:position_limits":t=>({topic:"config:position_limits",data:{maxSupplyPositions:Yt(t.max_supply_positions),maxBorrowPositions:Yt(t.max_borrow_positions)}}),"config:oracle_disabled":t=>({topic:"config:oracle_disabled",data:{asset:te(t.asset)}}),"oracle:twap_degraded":t=>({topic:"oracle:twap_degraded",data:{oracle:te(t.oracle),reasonCode:Yt(t.reason_code)}})},ye=Object.freeze(Object.keys(le));function fe(t,e){const o=Jt(t),r=le[o];return r?r(i(Qt(e))):null}const _e="XLENDXLM-a7c9f3",be=1e4;function me(t){const e=BigInt(t).toString(16),o=e.length%2==0?e:`0${e}`;return`${_e}-${o}`}function ge(t){const e=t.split("-");return e.length>=2&&parseInt(e[1],10)||0}function qe(t,e=0){return 1e4*t+e}function he(t){switch(t){case"liq_repay":return"lendingLiquidateRepayDebt";case"liq_seize":return"lendingLiquidateSeizeCollateral";case"param_upd":return"lendingUpdateAccountParameters";default:return"lendingUpdateAccountPosition"}}const ve=(t,e,o)=>{const r=new URL(e,t.endsWith("/")?t:`${t}/`);if(o)for(const[t,e]of Object.entries(o))void 0!==e&&r.searchParams.set(t,String(e));return r.toString()},we=t=>t.baseUrl??S[t.network];async function Ae(t,e){if(null==t.amountIn==(null==t.amountOut))throw new Error("getStellarAggregatorQuote: exactly one of `amountIn` or `amountOut` must be provided");const o=ve(we(e),"api/v1/quote",{from:t.from,to:t.to,amountIn:t.amountIn,amountOut:t.amountOut,maxHops:t.maxHops,maxSplits:t.maxSplits,slippage:t.slippage,includePaths:t.includePaths,sender:t.sender,router:t.router,platform:t.platform,fresh:t.fresh}),r=await fetch(o,e.fetchOptions);if(!r.ok){const t=await r.text().catch((()=>""));throw new Error(`Stellar quote server responded ${r.status} ${r.statusText} for ${o} — ${t}`)}return await r.json()}async function Se(t){const e=ve(we(t),"api/v1/tokens"),o=await fetch(e,t.fetchOptions);if(!o.ok){const t=await o.text().catch((()=>""));throw new Error(`Stellar quote server responded ${o.status} ${o.statusText} for ${e} — ${t}`)}return await o.json()}const Te=(t,e)=>(t=>Boolean(t&&"object"==typeof t&&!(t instanceof Uint8Array)&&"paths"in t))(t)&&void 0===t.referralId?{...t,referralId:e??0}:t,ke=t=>j(t).toXDR("base64");function Me(e,u){const i=e.routerAddress??M(e.network),a=new r(i),s=new t(e.caller,e.sourceSequence),p=X(Te(u,e.referralId));return{xdr:new n(s,{fee:e.fee??o,networkPassphrase:T[e.network]}).addOperation(a.call("execute_strategy",E(e.caller),P(e.totalIn),p)).setTimeout(e.timeoutSeconds??300).build().toXDR()}}function xe(t,e){return Me(t,e)}function Ee(t,e={}){if("string"!=typeof t.amountOutMin)throw new Error("mapQuoteResponseToStrategyPayload: quote response is missing `amountOutMin`. Pass `slippage` when fetching the quote.");return{paths:t.paths?t.paths.map((t=>({hops:t.swaps.map(Ie),splitPpm:t.splitPpm}))):[{hops:t.hops.map(Ie),splitPpm:1e6}],referralId:e.referralId??0,tokenIn:t.from,tokenOut:t.to,totalMinOut:t.amountOutMin}}function Pe(t,e={}){const o=t;return"string"==typeof o.routeXdr&&o.routeXdr.length>0?{routeXdr:o.routeXdr}:Ee(t,e)}const Oe=Ee,Ie=t=>({amountOut:t.amountOut,pool:t.address,tokenIn:t.from,tokenOut:t.to,venue:t.dex});function Re(t,e){const o=e instanceof Error?e.message:String(e);return new Error(`[xoxno-invoked:${t}] ${o}`)}async function Be(t,e,o){const r=n.fromXDR(e,"base64");try{return(await t.prepareTransaction(r)).toXDR()}catch(t){if(o?.invokedContractId)throw Re(o.invokedContractId,t);throw t}}async function Ue(t,e,o){return Be(t,e.xdr,o)}function Ce(t){if(t<=0||t>4)throw new Error(`Invalid PositionMode ${t} for Stellar — expected 1 (Normal) through 4 (Short). "None" (0) has no Stellar equivalent.`);return t-1}function Ne(t,e){return{paths:[{hops:[{amountOut:"0",pool:t,tokenIn:t,tokenOut:t,venue:"Soroswap"}],splitPpm:1e6}],referralId:0,tokenIn:t,tokenOut:t,totalMinOut:e}}const $e=t=>{const e=t.startsWith("0x")?t.slice(2):t;if(e.length%2!=0)throw new Error("buildStellarCctpForwardTx: hex input must have even length");return Buffer.from(e,"hex")};function ze(e){const o=new t(e.caller,e.sourceSequence),u=new r(e.forwarderAddress).call("mint_and_forward",a.ScVal.scvBytes($e(e.message)),a.ScVal.scvBytes($e(e.attestation)));return{xdr:new n(o,{fee:e.fee??"10000000",networkPassphrase:T[e.network]}).addOperation(u).setTimeout(e.timeoutSeconds??120).build().toXDR()}}const De=t=>t.replace(/-([a-z])/g,((t,e)=>e.toUpperCase()));function Le(t,e,o,r){const{input:u,output:n,...i}=e,a=async(e={})=>{const u={...o,...e},n=t.replace(/:([a-zA-Z_]+)/g,((t,e)=>`${u[e]}`)),i=[...t.matchAll(/:([a-zA-Z_]+)/g)].map((t=>t[1])),a=Object.fromEntries(Object.entries(u).filter((([t])=>!i.includes(t)))),s=/:address[^A-Z]/.test(t)||"address"in a,p=/:collection[^A-Z]/.test(t)||"collection"in a;if(s){const t=u.address;if(!g(t))throw new m(t)}if(p){const t=u.collection;if(Array.isArray(t)?t.some((t=>!f(t))):!f(t))throw new b(t)}const d=Object.fromEntries(Object.entries(a).map((([t,e])=>[t,e instanceof FormData?e:"filter"===t||"body"===t?JSON.stringify(e):Array.isArray(e)?e.join(","):e]))),{body:c,auth:l,method:y,headers:_,cache:q,next:h,debug:v,continuationToken:w,...A}=d,S=l?`Bearer ${l}`:void 0,T={..._,...S?{Authorization:S}:{},...w?{"X-Continuation-Token":String(w)}:{}},k={...h,tags:[...h?.tags??[],n]};return r.fetchWithTimeout(n,{method:y,params:A,body:c,headers:T,cache:q,debug:v,...k?{next:k}:{}})},s=(t={})=>a(t);for(const t of Object.keys(i))h.includes(t)&&(s[t]=e=>a({...e,method:e.method??t.toUpperCase()}));return s}function je(t){const e=function(){const t={static:{},params:{},leaves:[]};for(const[e,o]of Object.entries(q)){const r=e.split("/").filter(Boolean);let u=t;for(const t of r)if(t.startsWith(":")){const e=De(t.slice(1));u=u.params[e]||={static:{},params:{},leaves:[]}}else{const e=De(t);u=u.static[e]||={static:{},params:{},leaves:[]}}u.leaves.push({rawPath:e,def:o})}return t}(),o=(e,r)=>{const u=e.leaves.length,n=Object.keys(e.static).length,i=Object.keys(e.params).length;let a;if(1===u&&n+i>0){const{rawPath:o,def:u}=e.leaves[0];a=Le(o,u,r,t)}else{a={};for(const{rawPath:o,def:u}of e.leaves)a[De(o.split("/").pop().replace(/^:/,""))]=Le(o,u,r,t)}for(const[t,u]of Object.entries(e.static)){const e=o(u,r);let n=e;if(e&&"object"==typeof e&&t in e&&"function"==typeof e[t]){const o=e[t],r=Object.fromEntries(Object.entries(e).filter((([e])=>e!==t)));1===o.length||(Object.assign(o,r),n=o)}void 0===a[t]?a[t]=n:"function"==typeof a[t]?Object.assign(a[t],n):"function"==typeof n?(Object.assign(n,a[t]),a[t]=n):Object.assign(a[t],n)}for(const[t,u]of Object.entries(e.params)){const e=e=>{const n=o(u,{...r,[t]:e});if(n&&"object"==typeof n&&1===Object.keys(n).length&&t in n&&"function"==typeof n[t]){const e=n[t],o=(...t)=>e(...t);return Object.assign(o,e)}return n};if(a[t]){const o=a[t];a[t]=t=>({...o(t),...e(t)})}else a[t]=e}return a};return o(e,{})}export{l as Chain,w as STELLAR_AGGREGATOR_ROUTER,v as STELLAR_LENDING_CONTROLLER,ye as STELLAR_LENDING_TOPICS,T as STELLAR_NETWORK_PASSPHRASE,S as STELLAR_QUOTE_URL,A as STELLAR_SOROBAN_RPC_URL,be as SYNTHETIC_EVENT_ORDER_STRIDE,y as XOXNOClient,_e as XOXNO_LENDING_STELLAR_TICKER,Ne as buildSameTokenRepaySwapSteps,je as buildSdk,St as buildStellarAcceptOwnershipTx,Rt as buildStellarAddAssetToEModeCategoryTx,Pt as buildStellarAddEModeCategoryTx,Ft as buildStellarAddRewardsTx,Ct as buildStellarApproveTokenTx,xe as buildStellarBatchSwapTx,Q as buildStellarBorrowBatchTx,J as buildStellarBorrowTx,ze as buildStellarCctpForwardTx,Ht as buildStellarClaimRevenueTx,$t as buildStellarConfigureMarketOracleTx,Wt as buildStellarCreateLiquidityPoolTx,Dt as buildStellarDisableTokenOracleTx,xt as buildStellarEditAssetConfigTx,Bt as buildStellarEditAssetInEModeCategoryTx,Ot as buildStellarEditEModeCategoryTx,zt as buildStellarEditOracleToleranceTx,Me as buildStellarExecuteStrategyTx,rt as buildStellarFlashLoanTx,vt as buildStellarGrantRoleTx,me as buildStellarLendingIdentifier,ot as buildStellarLiquidateTx,gt as buildStellarMigrateTx,ut as buildStellarMultiplyTx,qt as buildStellarPauseTx,Ut as buildStellarRemoveAssetFromEModeTx,It as buildStellarRemoveEModeCategoryTx,jt as buildStellarRenewAccountTx,tt as buildStellarRepayBatchTx,at as buildStellarRepayDebtWithCollateralTx,et as buildStellarRepayTx,wt as buildStellarRevokeRoleTx,Nt as buildStellarRevokeTokenTx,kt as buildStellarSetAccumulatorTx,Tt as buildStellarSetAggregatorTx,Mt as buildStellarSetLiquidityPoolTemplateTx,Et as buildStellarSetPositionLimitsTx,G as buildStellarSupplyBatchTx,Z as buildStellarSupplyTx,it as buildStellarSwapCollateralTx,nt as buildStellarSwapDebtTx,At as buildStellarTransferOwnershipTx,ht as buildStellarUnpauseTx,Gt as buildStellarUpdateAccountThresholdTx,Lt as buildStellarUpdateIndexesTx,mt as buildStellarUpgradeControllerTx,Vt as buildStellarUpgradeLiquidityPoolParamsTx,Xt as buildStellarUpgradeLiquidityPoolTx,K as buildStellarWithdrawBatchTx,Y as buildStellarWithdrawTx,F as buildTx,fe as decodeStellarLendingEvent,ct as encodeAssetConfigRaw,pt as encodeInterestRateModel,bt as encodeMarketOracleConfigInput,dt as encodeMarketParamsRaw,_t as encodeOracleSourceConfigInput,lt as encodePositionLimits,ke as encodeStrategyPayloadToRouteXdr,ge as extractEventOrder,Ae as getStellarAggregatorQuote,M as getStellarAggregatorRouter,k as getStellarLendingController,Se as getStellarQuoteTokens,f as isValidCollectionTicker,_ as isValidNftIdentifier,Oe as mapQuoteResponseToAggregatorSwap,Ee as mapQuoteResponseToStrategyPayload,Pe as mapQuoteResponseToStrategySwap,he as mapStellarPositionActivityType,Ue as prepareStellarBuiltTx,Be as prepareStellarTxXdr,Jt as stellarLendingDispatchKey,qe as syntheticEventOrder,Re as tagStellarInvokedContractError,Zt as toBase64Xdr,Ce as toStellarPositionMode};
|
|
1
|
+
"undefined"!=typeof globalThis&&void 0===globalThis.self&&(globalThis.self=globalThis);import{Account as t,Address as e,BASE_FEE as o,Contract as r,ScInt as u,TransactionBuilder as n,scValToNative as i,xdr as a}from"@stellar/stellar-sdk";const s="https://api.xoxno.com",p="erd1qqqqqqqqqqqqqpgq705fxpfrjne0tl3ece0rrspykq88mynn4kxs2cg43s",d="erd1qqqqqqqqqqqqqpgqd9rvv2n378e27jcts8vfwynpx0gfl5ufz6hqhfy0u0",c="erd1qqqqqqqqqqqqqpgq8xwzu82v8ex3h4ayl5lsvxqxnhecpwyvwe0sf2qj4e";var l;!function(t){t.MAINNET="1",t.DEVNET="D"}(l||(l={}));class y{apiUrl;chain;init;config;constructor({chain:t=l.MAINNET,apiUrl:e=s,...o}={}){this.apiUrl=e??{[l.MAINNET]:s,[l.DEVNET]:"https://devnet-api.xoxno.com"}[t],this.chain=t,this.init=o,this.config=t==l.MAINNET?{mediaUrl:"https://media.xoxno.com",gatewayUrl:"https://gateway.xoxno.com",XO_SC:"erd1qqqqqqqqqqqqqpgq6wegs2xkypfpync8mn2sa5cmpqjlvrhwz5nqgepyg8",FM_SC:p,DR_SC:d,KG_SC:c,Staking_SC:"erd1qqqqqqqqqqqqqpgqvpkd3g3uwludduv3797j54qt6c888wa59w2shntt6z",Manager_SC:"erd1qqqqqqqqqqqqqpgqg9fa0dmpn8fu3fnleeqn5zt8rl8mdqjkys5s2gtas7",P2P_SC:"erd1qqqqqqqqqqqqqpgq47y8hnct68v6asjv6gxem6h9rumn9frzah0skhxxt6"}:{mediaUrl:"https://devnet-media.xoxno.com",gatewayUrl:"https://devnet-gateway.xoxno.com",XO_SC:"erd1qqqqqqqqqqqqqpgql0dnz6n5hpuw8cptlt00khd0nn4ja8eadsfq2xrqw4",FM_SC:p,DR_SC:d,KG_SC:c,Staking_SC:"erd1qqqqqqqqqqqqqpgqsc5hnewwpep8qq0d7kjjzrquapuucrygah0s85zres",Manager_SC:"erd1qqqqqqqqqqqqqpgqluclyhfsa2uw7q9cjwd8knk989hg57u8ah0slq2nlr",P2P_SC:"erd1qqqqqqqqqqqqqpgqfja7ukpngrun78ueq583l0vd6aj4ekhrah0sa9wyrv"}}fetchWithTimeout=async(t,{params:e,...o}={})=>{const{next:r,cache:u,debug:n,...i}=this.init,{next:a,cache:s,debug:p,headers:d,method:c="GET",...l}=o,y=d?.Authorization,f="Bearer undefined"===y?void 0:y,_={...d,Referer:"https://xoxno.sdk","User-Agent":"XOXNO/1.0/SDK",..."PUT"===c?{}:{"Content-Type":"application/json"},...f?{Authorization:f}:{}},b=Object.entries(e??{}).flatMap((([t,e])=>Array.isArray(e)?e.map((e=>`${t}=${encodeURIComponent(e)}`)):`${t}=${encodeURIComponent(e)}`)).join("&"),m=`${this.apiUrl}${t}${b.length?`?${b}`:""}`,{revalidate:g,...q}=r??{},{revalidate:h,...w}=a??{},v="GET"!==c||f?void 0:h??g,A="GET"!==c||f||v?void 0:s??u,S={...i,...l,method:c,...Object.keys(_).length?{headers:_}:{},cache:A,next:{...q,...w,revalidate:v}};(p??n)&&console.debug("SDK fetch: ",m,S);const T=await fetch(m,S).catch((t=>{if(t instanceof Error&&!t.message.match(/^http(s?):\/\//))throw new Error(`${m}: ${t.message}`);throw t})),k=await T.text();if(!T.ok){let t;try{t=JSON.parse(k)}catch{t={message:k}}const e=[m,T.status,T.statusText,t.message].filter(Boolean).join(";;");throw new Error(e)}try{return JSON.parse(k)}catch{return k}}}const f=t=>{const e=/^0x[a-fA-F0-9]{1,64}-[a-zA-Z0-9_]+-[a-zA-Z0-9_]+(<.+>)?$/.test(decodeURIComponent(t)),o=/^[A-Z0-9]{3,10}-[a-z0-9]{6}$/.test(t);return e||o},_=t=>{const e=/^0x[a-fA-F0-9]{1,64}$/.test(t),o=/^[A-Za-z0-9]{3,10}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2,7}(?:-\d+(?:-[A-Za-z0-9]+)?)?$/.test(t);return e||o};class b extends Error{constructor(t){super(`Invalid collection ticker: ${t}`)}}class m extends Error{constructor(t){super(`Invalid address: ${t}`)}}Error,Error;const g=t=>!!t&&(t.startsWith("erd1")&&62===t.length||/^0x[a-fA-F0-9]{40,64}$/.test(t)||/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(t)||/^G[A-Z2-7]{55}$/.test(t)),q={"/liquid/xoxno/rate":{input:{},output:{}},"/liquid/xoxno/liquid-supply":{input:{},output:{}},"/liquid/xoxno/staked":{input:{},output:{}},"/user/login":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/:address/network-account":{input:{},output:{}},"/user/:address/token-inventory":{input:{},output:{}},"/user/network-account":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/me/profile":{input:{},output:{},securityMode:"requiredAny"},"/user/:address/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me":{input:{},output:{},securityMode:"requiredAny"},"/user/me/settings":{input:{},output:{},securityMode:"optionalAny"},"/user/me/settings/notification-preferences":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"optionalAny"}},"/user/me/settings/email":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredJwt"}},"/user/me/settings/phone":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me/settings/billing":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/me/settings/verify-email":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/buy/signature":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:tag/creator/is-registered":{input:{},output:{}},"/user/:address/creator/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/creator/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/favorite/collections":{input:{},output:{}},"/user/favorite/:favoriteId":{input:{},output:{},securityMode:"requiredAny"},"/user/:address/follow":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/favorite/users":{input:{},output:{}},"/tokens":{input:{},output:{}},"/tokens/swap":{input:{},output:{}},"/stellar/tokens":{input:{},output:{}},"/tokens/restricted":{input:{},output:{}},"/tokens/usd-price":{input:{},output:{}},"/tokens/egld/fiat-price":{input:{},output:{}},"/tokens/xoxno/info":{input:{},output:{}},"/liquid/xoxno/stats":{input:{},output:{}},"/liquid/egld/stats":{input:{},output:{}},"/liquid/sui/stats":{input:{},output:{}},"/analytics/marketplace-unique-users":{input:{},output:{}},"/liquid/egld/rate":{input:{},output:{}},"/liquid/egld/liquid-supply":{input:{},output:{}},"/liquid/egld/staked":{input:{},output:{}},"/liquid/egld/pending-fees":{input:{},output:{}},"/liquid/egld/pending-undelegate":{input:{},output:{}},"/liquid/egld/pending-delegate":{input:{},output:{}},"/liquid/egld/execute-delegate":{input:{},output:{}},"/liquid/egld/execute-undelegate":{input:{},output:{}},"/liquid/egld/protocol-apr":{input:{},output:{}},"/liquid/egld/providers":{input:{},output:{}},"/user/:address/delegation":{input:{},output:{}},"/lending/market/:token/profile":{input:{},output:{}},"/lending/market/query":{input:{},output:{}},"/user/lending/:address":{input:{},output:{}},"/lending/market/indexes":{input:{},output:{}},"/user/lending/position/:identifier":{input:{},output:{}},"/lending/pnl":{input:{},output:{}},"/user/lending/pnl/:address":{input:{},output:{}},"/user/lending/summary/:identifier":{input:{},output:{}},"/user/lending/image/:nonce":{input:{},output:{}},"/lending/market/emode-categories":{input:{},output:{}},"/lending/market/:token/emode-categories":{input:{},output:{}},"/lending/market/:token/analytics":{input:{},output:{}},"/lending/market/:token/average":{input:{},output:{}},"/lending/leaderboard":{input:{},output:{}},"/lending/leaderboard/liquidate":{input:{},output:{}},"/lending/leaderboard/clean-bad-debt":{input:{},output:{}},"/lending/stats":{input:{},output:{}},"/lending/market/prices":{input:{},output:{}},"/nft/query":{input:{},output:{}},"/nft/:identifier/like":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/inventory-summary":{input:{},output:{}},"/user/:address/offers":{input:{},output:{}},"/nft/offer/query":{input:{},output:{}},"/nft/offer/:identifier":{input:{},output:{}},"/user/:address/favorite/nfts":{input:{},output:{}},"/collection/:collection/attributes":{input:{},output:{}},"/nft/:identifier/offers":{input:{},output:{}},"/collection/:collection/ranks":{input:{},output:{}},"/collection/:collection/listings":{input:{},output:{}},"/nft/pinned":{input:{},output:{}},"/nft/sign-withdraw":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/sign-offer":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/sign-mint":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/nft/:identifier":{input:{},output:{}},"/collection/:collection/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/floor-price":{input:{},output:{}},"/collection/floor-price":{input:{},output:{}},"/collection/pinned":{input:{},output:{}},"/collection/pinned-drops":{input:{},output:{}},"/collection/:collection/pinned-drops":{input:{},output:{}},"/collection/:collection/pinned":{input:{},output:{}},"/collection/:collection/follow":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/query":{input:{},output:{}},"/collection/drops/query":{input:{},output:{}},"/collection/:collection/drop-info":{input:{},output:{},securityMode:"optionalAny"},"/collection/:creatorTag/:collectionTag/drop-info":{input:{},output:{},securityMode:"optionalAny"},"/collection/:collection/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/upload-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/reset-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/reset-banner":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/collection/:collection/holders":{input:{},output:{}},"/collection/:collection/holders/export":{input:{},output:{}},"/collection/:collection/owner":{input:{},output:{}},"/collection/:collection/stats":{input:{},output:{}},"/collection/stats/query":{input:{},output:{}},"/collection/global-offer/query":{input:{},output:{}},"/user/:address/creator/listing":{input:{},output:{}},"/user/:address/creator/details":{input:{},output:{}},"/launchpad/:scAddress/shareholders/royalties":{input:{},output:{}},"/launchpad/:scAddress/shareholders/collection/:collectionTag":{input:{},output:{}},"/pool/:poolId/profile":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/pool/:poolId/whitelist":{input:{},output:{}},"/pool/:poolId/upload-picture":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/:address/staking/available-pools":{input:{},output:{}},"/user/:address/staking/owned-collections":{input:{},output:{}},"/user/:address/staking/owned-pools":{input:{},output:{}},"/user/:address/staking/summary":{input:{},output:{}},"/user/:address/staking/creator":{input:{},output:{}},"/user/:address/staking/collection/:collection":{input:{},output:{}},"/user/:address/staking/pool/:poolId/nfts":{input:{},output:{}},"/collection/:collection/staking/summary":{input:{},output:{},securityMode:"optionalAny"},"/collection/:collection/staking/delegators":{input:{},output:{}},"/collection/staking/explore":{input:{},output:{}},"/user/:creatorTag/owned-services":{input:{},output:{}},"/search":{input:{},output:{}},"/user/search":{input:{},output:{}},"/collection/search":{input:{},output:{}},"/collection/drops/search":{input:{},output:{}},"/nft/search/query":{input:{},output:{}},"/lending/market-sc":{input:{},output:{}},"/lending/active-accounts":{input:{},output:{}},"/lending/account/:nonce/attributes":{input:{},output:{}},"/lending/account/:nonce/positions":{input:{},output:{}},"/lending/market/:token/price/egld":{input:{},output:{}},"/faucet":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/notifications":{input:{},output:{},securityMode:"requiredAny"},"/user/notifications/unread-count":{input:{},output:{},securityMode:"requiredAny"},"/user/notifications/clear":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/notifications/read":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/device/register":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/mobile/device/:deviceId":{input:{},output:{},securityMode:"requiredWeb2",DELETE:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/mobile/history":{input:{},output:{},securityMode:"requiredAny"},"/mobile/history/unread-count":{input:{},output:{},securityMode:"requiredAny"},"/mobile/history/:notificationId/read":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/read-all":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/clear-all":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/mobile/history/clear-id/:notificationId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/event/:eventId/update":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/event/:eventId/reminder":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/creator/marketing":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/eventNotifications/user/:userId/direct":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/stellar/challenge":{input:{},output:{}},"/user/native-token":{input:{},output:{}},"/user/web2":{input:{},output:{},securityMode:"requiredWeb2"},"/user/web2/session-cookie":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet-switch":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/wallet-link":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/:index/wallet-link":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredWeb2"}},"/user/web2/shards":{input:{},output:{},securityMode:"requiredWeb2"},"/activity/query":{input:{},output:{}},"/activity/:identifier":{input:{},output:{}},"/analytics/volume":{input:{},output:{}},"/collection/:collection/analytics/volume":{input:{},output:{}},"/user/:address/analytics/volume":{input:{},output:{}},"/analytics/overview":{input:{},output:{}},"/user/stats":{input:{},output:{}},"/user/xoxno-drop":{input:{},output:{}},"/user/me/xoxno-drop":{input:{},output:{},securityMode:"requiredAny"},"/transactions/:txHash":{input:{},output:{}},"/transactions/:txHash/status":{input:{},output:{}},"/transaction/cost":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/transactions":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/transactions/batch":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/perp/exchange/acceptTerms":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/sendAsset":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/sendExternalAsset":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/deposit":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/withdraw":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/perp/exchange/order":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/tradingview/bars/:symbol":{input:{},output:{}},"/tradingview/coin/:symbol":{input:{},output:{}},"/perp/coin/:symbol":{input:{},output:{}},"/perp/coin/spot/:symbol":{input:{},output:{}},"/perp/coins":{input:{},output:{}},"/perp/legal-check/:address":{input:{},output:{}},"/perp/coins/spot":{input:{},output:{}},"/perp/orderbook/:symbol":{input:{},output:{}},"/perp/trades/:symbol":{input:{},output:{}},"/perp/stats/spot/:symbol":{input:{},output:{}},"/perp/stats/:symbol":{input:{},output:{}},"/perp/subscribe":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/perp/unsubscribe":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/chat/message":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/conversation":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/conversation/:conversationId":{input:{},output:{},securityMode:"requiredAny",DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/conversation-summary":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/conversation/:conversationId/message/:messageId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/block":{input:{},output:{},securityMode:"requiredAny"},"/user/chat/block/:address":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/user/chat/token":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/hatom/user/:address":{input:{},output:{}},"/countries":{input:{},output:{}},"/event":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId":{input:{},output:{},securityMode:"optionalAny",PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/profile/query":{input:{},output:{}},"/event/:eventId/profile":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/background":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description/image":{input:{},output:{},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/description/image/:imageId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/register":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/ticket":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/ticket/:ticketId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},PUT:{input:{},output:{},body:{},securityMode:"requiredAny"},POST:{input:{},output:{},body:{}}},"/event/:eventId/stage":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/stage/:stageId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/calculate-prices":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/event/:eventId/validate-discount":{input:{},output:{},POST:{input:{},output:{},body:{}}},"/user/:address/creator/events":{input:{},output:{},securityMode:"optionalAny"},"/event/:eventId/invite":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/invite/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/invite/:inviteId":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/questions":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/question":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/question/:questionId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/guest/query":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest/:address":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest-export":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/role":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},securityMode:"requiredAny"},"/event/:eventId/role/:roleId":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/guest":{input:{},output:{},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/roleOf/:address":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/past":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/hosted":{input:{},output:{},securityMode:"requiredAny"},"/user/me/events/upcoming":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event/badge":{input:{},output:{},securityMode:"requiredAny"},"/user/me/event/badge/payload":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/scan":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/voucher/:voucherCode":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/manual-check-in":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/answered-questions/:address":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/guest/approve":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/google-pass/:address":{input:{},output:{}},"/event/profile/location":{input:{},output:{}},"/event/:eventId/referral-config":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral-config/:configId":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral-configs":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/referral":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referral/:referralCode":{input:{},output:{},PATCH:{input:{},output:{},body:{},securityMode:"requiredAny"},DELETE:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/event/:eventId/referrals":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/referrals/self-serviced":{input:{},output:{},securityMode:"requiredAny"},"/event/:eventId/notify-attendees":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/notify/global-broadcast":{input:{},output:{},POST:{input:{},output:{},body:{},securityMode:"requiredAny"}},"/stellar/aggregator/quote":{input:{},output:{}}},h=["PATCH","POST","DELETE","PUT"],w={mainnet:process.env.STELLAR_LENDING_CONTROLLER_MAINNET??"",testnet:process.env.STELLAR_LENDING_CONTROLLER_TESTNET??""},v={mainnet:process.env.STELLAR_AGGREGATOR_ROUTER_MAINNET??"",testnet:process.env.STELLAR_AGGREGATOR_ROUTER_TESTNET??""},A={mainnet:"https://soroban-rpc.stellar.org",testnet:"https://soroban-testnet.stellar.org"},S={mainnet:process.env.STELLAR_QUOTE_URL_MAINNET??"https://stellar-swap.xoxno.com",testnet:process.env.STELLAR_QUOTE_URL_TESTNET??"https://testnet-stellar-swap.xoxno.com"},T={mainnet:"Public Global Stellar Network ; September 2015",testnet:"Test SDF Network ; September 2015"};function k(t){const e=w[t];if(!e)throw new Error(`Stellar lending controller address not configured for network "${t}". Set STELLAR_LENDING_CONTROLLER_${t.toUpperCase()} env var.`);return e}function M(t){const e=v[t];if(!e)throw new Error(`Stellar aggregator router address not configured for network "${t}". Set STELLAR_AGGREGATOR_ROUTER_${t.toUpperCase()} env var.`);return e}const x=["Soroswap","Aquarius","Phoenix","Sushi","CometDex"],E=t=>new e(t).toScVal(),P=t=>new u(t).toI128(),O=t=>a.ScVal.scvU32(t),I=t=>new u("string"==typeof t?t:t.toString()).toU64(),R=t=>a.ScVal.scvBool(t),B=t=>a.ScVal.scvString(t),U=t=>a.ScVal.scvSymbol(t),C=t=>a.ScVal.scvVec(t),N=(t,e=32)=>{const o=t.startsWith("0x")?t.slice(2):t,r=Buffer.from(o,"hex");if(r.length!==e)throw new Error(`Stellar builder: expected a ${e}-byte BytesN (got ${r.length} bytes from "${t}")`);return a.ScVal.scvBytes(r)},$=(t,e)=>null==t?a.ScVal.scvVoid():e(t),z=(t,e)=>a.ScVal.scvVec([E(t),P(e)]),D=t=>a.ScVal.scvVec(t.map((t=>z(t.token,t.amount)))),L=t=>{const e=Object.keys(t).sort().map((e=>new a.ScMapEntry({key:U(e),val:t[e]})));return a.ScVal.scvMap(e)},j=t=>{const e=t.paths.map((t=>{const e=t.hops.map((t=>{return L({amount_out:P(t.amountOut),pool:E(t.pool),token_in:E(t.tokenIn),token_out:E(t.tokenOut),venue:(e=t.venue,a.ScVal.scvVec([U(e)]))});var e}));return L({hops:a.ScVal.scvVec(e),split_ppm:O(t.splitPpm)})}));return L({paths:a.ScVal.scvVec(e),referral_id:I(t.referralId??0),token_in:E(t.tokenIn),token_out:E(t.tokenOut),total_min_out:P(t.totalMinOut)})},W=t=>{const e=Buffer.from(t);if(0===e.length)throw new Error("Stellar builder: strategy swap bytes must be non-empty base64 routeXdr, 0x hex string, or Uint8Array");return a.ScVal.scvBytes(e)},V=t=>{const e=t.trim();if(e.startsWith("0x")){const t=e.slice(2);if(!((o=t).length>0&&o.length%2==0&&/^[0-9a-fA-F]+$/.test(o)))throw new Error("Stellar builder: strategy swap bytes hex string must be 0x-prefixed and even-length");return Buffer.from(t,"hex")}var o;if(!/^[A-Za-z0-9+/]+={0,2}$/.test(e))throw new Error("Stellar builder: strategy swap bytes must be base64 routeXdr or 0x-prefixed hex");const r=Buffer.from(e,"base64");if(0===r.length)throw new Error("Stellar builder: strategy swap bytes must be non-empty base64 routeXdr, 0x hex string, or Uint8Array");return r},X=t=>{if("string"==typeof t)return W(V(t));if(t instanceof Uint8Array)return W(t);if(t&&"object"==typeof t)return"routeXdr"in(o=t)&&"string"==typeof o.routeXdr?W(V(t.routeXdr)):(t=>"swapXdr"in t&&"string"==typeof t.swapXdr)(t)?W(V(t.swapXdr)):(t=>"bytes"in t&&("string"==typeof t.bytes||t.bytes instanceof Uint8Array))(t)?"string"==typeof t.bytes?W(V(t.bytes)):W(t.bytes):(e=(t=>{if(!t||"object"!=typeof t)throw new Error("Stellar builder: decoded strategy `steps` must be a StrategyPayload ({ paths, tokenIn, tokenOut, totalMinOut })");const e=t;if(!Array.isArray(e.paths)||0===e.paths.length)throw new Error("Stellar builder: `steps.paths` must be a non-empty array of strategy paths");if("string"!=typeof e.tokenIn)throw new Error("Stellar builder: `steps.tokenIn` must be a contract address");if("string"!=typeof e.tokenOut)throw new Error("Stellar builder: `steps.tokenOut` must be a contract address");if("string"!=typeof e.totalMinOut)throw new Error("Stellar builder: `steps.totalMinOut` must be an i128 decimal string");let o=0;for(const[t,r]of e.paths.entries()){if(!r||"number"!=typeof r.splitPpm||r.splitPpm<=0||!Array.isArray(r.hops)||0===r.hops.length)throw new Error(`Stellar builder: \`steps.paths[${t}]\` must have splitPpm > 0 and a non-empty hops array`);o+=r.splitPpm;for(const[e,o]of r.hops.entries())if(!o||"string"!=typeof o.amountOut||"string"!=typeof o.pool||"string"!=typeof o.tokenIn||"string"!=typeof o.tokenOut||!x.includes(o.venue))throw new Error(`Stellar builder: \`steps.paths[${t}].hops[${e}]\` must have amountOut, pool, tokenIn, tokenOut, and a valid Soroban venue`)}if(1e6!==o)throw new Error(`Stellar builder: \`steps.paths[].splitPpm\` must sum to 1_000_000, got ${o}`);return e})(t),a.ScVal.scvBytes(Buffer.from(j(e).toXDR("base64"),"base64")));var e,o;throw new Error("Stellar builder: `steps` must be opaque strategy bytes (`routeXdr`, base64/hex string, or Uint8Array)")},H=t=>{if("string"==typeof t)return(t=>{const e=t.startsWith("0x")?t.slice(2):t,o=Buffer.from(e,"hex");return a.ScVal.scvBytes(o)})(t);if(t instanceof Uint8Array)return a.ScVal.scvBytes(Buffer.from(t));throw new Error("Stellar builder: `data` must be a hex string or Uint8Array (Soroban Bytes payload)")};function F(e,u,i){const a=e.controllerAddress??k(e.network),s=new r(a),p=new t(e.caller,e.sourceSequence);return{xdr:new n(p,{fee:e.fee??o,networkPassphrase:T[e.network]}).addOperation(s.call(u,...i)).setTimeout(e.timeoutSeconds??300).build().toXDR()}}function G(t,e){const o=e.accountNonce??0,r=e.eModeCategory??0,u=D([...e.assets]);return F(t,"supply",[E(t.caller),I(o),O(r),u])}function Z(t,e){return G(t,{accountNonce:e.accountNonce,eModeCategory:e.eModeCategory,assets:[{token:e.token,amount:e.amount}]})}function Q(t,e){const o=D([...e.borrows]);return F(t,"borrow",[E(t.caller),I(e.accountNonce),o])}function J(t,e){return Q(t,{accountNonce:e.accountNonce,borrows:[{token:e.token,amount:e.amount}]})}function K(t,e){const o=D([...e.withdrawals]);return F(t,"withdraw",[E(t.caller),I(e.accountNonce),o,$(e.to,E)])}function Y(t,e){return K(t,{accountNonce:e.accountNonce,withdrawals:[{token:e.token,amount:e.amount}]})}function tt(t,e){const o=D([...e.payments]);return F(t,"repay",[E(t.caller),I(e.accountNonce),o])}function et(t,e){return tt(t,{accountNonce:e.accountNonce,payments:[{token:e.token,amount:e.amount}]})}function ot(t,e){const o=D(e.debtPayments.map((t=>({token:t.token,amount:t.amount}))));return F(t,"liquidate",[E(t.caller),I(e.accountNonce),o])}function rt(t,e){return F(t,"flash_loan",[E(t.caller),E(e.asset),P(e.amount),E(e.receiver),H(e.data)])}function ut(t,e){const o=e.accountNonce??0;return F(t,"multiply",[E(t.caller),I(o),O(e.eModeCategory),E(e.collateralToken),P(e.debtToFlashLoan),E(e.debtToken),O(e.mode),X(e.steps),$(e.initialPayment,(t=>z(t.token,t.amount))),$(e.convertSwap,X)])}function nt(t,e){return F(t,"swap_debt",[E(t.caller),I(e.accountNonce),E(e.existingDebtToken),P(e.newDebtAmount),E(e.newDebtToken),X(e.steps)])}function it(t,e){return F(t,"swap_collateral",[E(t.caller),I(e.accountNonce),E(e.currentCollateral),P(e.fromAmount),E(e.newCollateral),X(e.steps)])}function at(t,e){return F(t,"repay_debt_with_collateral",[E(t.caller),I(e.accountNonce),E(e.collateralToken),P(e.collateralAmount),E(e.debtToken),X(e.steps),R(e.closePosition)])}const st={Single:0,PrimaryWithAnchor:1},pt=t=>L({base_borrow_rate_ray:P(t.baseBorrowRateRay),max_borrow_rate_ray:P(t.maxBorrowRateRay),max_utilization_ray:P(t.maxUtilizationRay),mid_utilization_ray:P(t.midUtilizationRay),optimal_utilization_ray:P(t.optimalUtilizationRay),reserve_factor_bps:O(t.reserveFactorBps),slope1_ray:P(t.slope1Ray),slope2_ray:P(t.slope2Ray),slope3_ray:P(t.slope3Ray)}),dt=t=>L({asset_decimals:O(t.assetDecimals),asset_id:E(t.assetId),base_borrow_rate_ray:P(t.baseBorrowRateRay),max_borrow_rate_ray:P(t.maxBorrowRateRay),max_utilization_ray:P(t.maxUtilizationRay),mid_utilization_ray:P(t.midUtilizationRay),optimal_utilization_ray:P(t.optimalUtilizationRay),reserve_factor_bps:O(t.reserveFactorBps),slope1_ray:P(t.slope1Ray),slope2_ray:P(t.slope2Ray),slope3_ray:P(t.slope3Ray)}),ct=t=>L({borrow_cap:P(t.borrowCap),e_mode_categories:C(t.eModeCategories.map((t=>O(t)))),flashloan_fee_bps:O(t.flashloanFeeBps),is_borrowable:R(t.isBorrowable),is_collateralizable:R(t.isCollateralizable),is_flashloanable:R(t.isFlashloanable),is_isolated_asset:R(t.isIsolatedAsset),is_siloed_borrowing:R(t.isSiloedBorrowing),isolation_borrow_enabled:R(t.isolationBorrowEnabled),isolation_debt_ceiling_usd_wad:P(t.isolationDebtCeilingUsdWad),liquidation_bonus_bps:O(t.liquidationBonusBps),liquidation_fees_bps:O(t.liquidationFeesBps),liquidation_threshold_bps:O(t.liquidationThresholdBps),loan_to_value_bps:O(t.loanToValueBps),min_collat_floor_usd_wad:P(t.minCollatFloorUsdWad),min_debt_floor_usd_wad:P(t.minDebtFloorUsdWad),supply_cap:P(t.supplyCap)}),lt=t=>L({max_borrow_positions:O(t.maxBorrowPositions),max_supply_positions:O(t.maxSupplyPositions)}),yt=t=>{const e=t.kind;switch(e){case"Stellar":return C([U("Stellar"),E(t.value)]);case"Symbol":return C([U("Symbol"),U(t.value)]);case"String":return C([U("String"),B(t.value)]);default:throw new Error(`Stellar builder: unknown oracle asset ref kind "${e}"`)}},ft=(t,e)=>{if("Twap"===t){if("number"!=typeof e)throw new Error("Stellar builder: oracle source with Twap read mode requires `twapRecords`");return C([U("Twap"),O(e)])}return C([U("Spot")])},_t=t=>{const e=t.provider;if("ReflectorSep40"===e){if(!t.asset)throw new Error("Stellar builder: Reflector oracle source requires `asset`");return C([U("Reflector"),L({asset:yt(t.asset),contract:E(t.contract),read_mode:ft(t.readMode,t.twapRecords)})])}if("RedStonePriceFeed"===e){if("string"!=typeof t.feedId)throw new Error("Stellar builder: RedStone oracle source requires `feedId`");if("number"!=typeof t.maxStaleSeconds)throw new Error("Stellar builder: RedStone oracle source requires `maxStaleSeconds`");return C([U("RedStone"),L({contract:E(t.contract),feed_id:B(t.feedId),max_stale_seconds:I(t.maxStaleSeconds)})])}throw new Error(`Stellar builder: unknown oracle provider "${e}"`)},bt=t=>{const e=st[t.strategy];if(void 0===e)throw new Error(`Stellar builder: unknown oracle strategy "${t.strategy}"`);return L({anchor:(o=t.anchor,C(null==o?[U("None")]:[U("Some"),_t(o)])),first_tolerance_bps:O(t.firstToleranceBps),last_tolerance_bps:O(t.lastToleranceBps),max_price_stale_seconds:I(t.maxPriceStaleSeconds),max_sanity_price_wad:P(t.maxSanityPriceWad),min_sanity_price_wad:P(t.minSanityPriceWad),primary:_t(t.primary),strategy:O(e)});var o};function mt(t,e){return F(t,"upgrade",[N(e.wasmHash)])}function gt(t,e){return F(t,"migrate",[O(e.newVersion)])}function qt(t){return F(t,"pause",[])}function ht(t){return F(t,"unpause",[])}function wt(t,e){return F(t,"grant_role",[E(e.account),U(e.role)])}function vt(t,e){return F(t,"revoke_role",[E(e.account),U(e.role)])}function At(t,e){return F(t,"transfer_ownership",[E(e.newOwner),O(e.liveUntilLedger)])}function St(t){return F(t,"accept_ownership",[])}function Tt(t,e){return F(t,"set_aggregator",[E(e.aggregator)])}function kt(t,e){return F(t,"set_accumulator",[E(e.accumulator)])}function Mt(t,e){return F(t,"set_liquidity_pool_template",[N(e.wasmHash)])}function xt(t,e){return F(t,"edit_asset_config",[E(e.asset),ct(e.config)])}function Et(t,e){return F(t,"set_position_limits",[lt(e)])}function Pt(t,e){return F(t,"add_e_mode_category",[O(e.ltv),O(e.threshold),O(e.bonus)])}function Ot(t,e){return F(t,"edit_e_mode_category",[O(e.id),O(e.ltv),O(e.threshold),O(e.bonus)])}function It(t,e){return F(t,"remove_e_mode_category",[O(e.id)])}function Rt(t,e){return F(t,"add_asset_to_e_mode_category",[E(e.asset),O(e.categoryId),R(e.canCollateral),R(e.canBorrow)])}function Bt(t,e){return F(t,"edit_asset_in_e_mode_category",[E(e.asset),O(e.categoryId),R(e.canCollateral),R(e.canBorrow)])}function Ut(t,e){return F(t,"remove_asset_from_e_mode",[E(e.asset),O(e.categoryId)])}function Ct(t,e){return F(t,"approve_token",[E(e.token)])}function Nt(t,e){return F(t,"revoke_token",[E(e.token)])}function $t(t,e){return F(t,"configure_market_oracle",[E(t.caller),E(e.asset),bt(e.config)])}function zt(t,e){return F(t,"edit_oracle_tolerance",[E(t.caller),E(e.asset),O(e.firstTolerance),O(e.lastTolerance)])}function Dt(t,e){return F(t,"disable_token_oracle",[E(t.caller),E(e.asset)])}function Lt(t,e){return F(t,"update_indexes",[E(t.caller),C(e.assets.map((t=>E(t))))])}function jt(t,e){return F(t,"renew_account",[E(t.caller),I(e.accountNonce)])}function Wt(t,e){return F(t,"create_liquidity_pool",[E(e.asset),dt(e.params),ct(e.config)])}function Vt(t,e){return F(t,"upgrade_liquidity_pool_params",[E(e.asset),pt(e.params)])}function Xt(t,e){return F(t,"upgrade_liquidity_pool",[E(e.asset),N(e.wasmHash)])}function Ht(t,e){return F(t,"claim_revenue",[E(t.caller),C(e.assets.map((t=>E(t))))])}function Ft(t,e){return F(t,"add_rewards",[E(t.caller),C(e.rewards.map((t=>C([E(t.token),P(t.amount)]))))])}function Gt(t,e){return F(t,"update_account_threshold",[E(t.caller),E(e.asset),R(e.hasRisks),C(e.accountNonces.map((t=>I(t))))])}const Zt=t=>t.toXDR("base64"),Qt=t=>a.ScVal.fromXDR(t,"base64"),Jt=t=>t.map((t=>String(i(Qt(t))))).join(":"),Kt=t=>"bigint"==typeof t||"number"==typeof t?t.toString():String(t),Yt=t=>Number(t),te=t=>String(t),ee=t=>null==t?void 0:Kt(t),oe=t=>null==t?void 0:te(t),re=t=>t instanceof Uint8Array?Buffer.from(t).toString("hex"):Buffer.isBuffer(t)?t.toString("hex"):String(t),ue=["None","Multiply","Long","Short"],ne=["Single","PrimaryWithAnchor"],ie=["ReflectorSep40","RedStonePriceFeed"],ae=["Spot","Twap"],se=t=>({loanToValueBps:Yt(t.loan_to_value_bps),liquidationThresholdBps:Yt(t.liquidation_threshold_bps),liquidationBonusBps:Yt(t.liquidation_bonus_bps),liquidationFeesBps:Yt(t.liquidation_fees_bps),isCollateralizable:Boolean(t.is_collateralizable),isBorrowable:Boolean(t.is_borrowable),isIsolatedAsset:Boolean(t.is_isolated_asset),isSiloedBorrowing:Boolean(t.is_siloed_borrowing),isFlashloanable:Boolean(t.is_flashloanable),isolationBorrowEnabled:Boolean(t.isolation_borrow_enabled),isolationDebtCeilingUsdWad:Kt(t.isolation_debt_ceiling_usd_wad),flashloanFeeBps:Yt(t.flashloan_fee_bps),borrowCap:Kt(t.borrow_cap),supplyCap:Kt(t.supply_cap),minCollatFloorUsdWad:Kt(t.min_collat_floor_usd_wad),minDebtFloorUsdWad:Kt(t.min_debt_floor_usd_wad),eModeCategories:(t.e_mode_categories??[]).map(Yt)}),pe=t=>{const e=(o=t.position_type,2===Yt(o)?"Borrow":"Deposit");var o;const r="Borrow"===e;return{action:te(t.action),positionType:e,asset:te(t.asset),scaledAmountRay:Kt(t.scaled_amount_ray),indexRay:Kt(t.index_ray),amount:Kt(t.amount),assetPriceWad:ee(t.asset_price_wad),liquidationThresholdBps:r?void 0:Yt(t.liquidation_threshold_bps),liquidationBonusBps:r?void 0:Yt(t.liquidation_bonus_bps),loanToValueBps:r?void 0:Yt(t.loan_to_value_bps)}},de=(t,e)=>{const o=ae[Yt(t[`${e}_read_mode`])]??"Spot",r=t[`${e}_asset`],u=t[`${e}_symbol`],n=null!=r?{kind:"Stellar",value:te(r)}:null!=u?{kind:"Symbol",value:te(u)}:void 0;return{provider:ie[Yt(t[`${e}_provider`])]??"ReflectorSep40",contractAddress:te(t[`${e}_contract`]),asset:n,feedId:oe(t[`${e}_feed_id`]),readMode:o,twapRecords:"Twap"===o?Yt(t[`${e}_twap_records`]):void 0,decimals:Yt(t[`${e}_decimals`]),resolutionSeconds:Yt(t[`${e}_resolution_seconds`]),maxStaleSeconds:Yt(t[`${e}_max_stale_seconds`])}},ce=t=>{const e=null!==t.anchor_provider&&void 0!==t.anchor_provider;return{baseTokenId:te(t.base_token_id),quoteTokenId:te(t.quote_token_id),tolerance:{firstUpperRatio:Yt(t.first_upper_ratio_bps??t.tolerance?.first_upper_ratio_bps),firstLowerRatio:Yt(t.first_lower_ratio_bps??t.tolerance?.first_lower_ratio_bps),lastUpperRatio:Yt(t.last_upper_ratio_bps??t.tolerance?.last_upper_ratio_bps),lastLowerRatio:Yt(t.last_lower_ratio_bps??t.tolerance?.last_lower_ratio_bps)},assetDecimals:Yt(t.asset_decimals),maxPriceStaleSeconds:Yt(t.max_price_stale_seconds),strategy:ne[Yt(t.strategy)]??"Single",primary:de(t,"primary"),anchor:e?de(t,"anchor"):void 0,primaryQuoteToken:oe(t.primary_quote_token),anchorQuoteToken:oe(t.anchor_quote_token),minSanityPriceWad:ee(t.min_sanity_price_wad),maxSanityPriceWad:ee(t.max_sanity_price_wad)}},le={"market:create":t=>({topic:"market:create",data:{baseAsset:te(t.base_asset),maxBorrowRate:Kt(t.max_borrow_rate),baseBorrowRate:Kt(t.base_borrow_rate),slope1:Kt(t.slope1),slope2:Kt(t.slope2),slope3:Kt(t.slope3),midUtilization:Kt(t.mid_utilization),optimalUtilization:Kt(t.optimal_utilization),maxUtilization:ee(t.max_utilization),reserveFactor:Yt(t.reserve_factor),marketAddress:te(t.market_address),config:se(t.config)}}),"market:params_update":t=>({topic:"market:params_update",data:{asset:te(t.asset),maxBorrowRateRay:Kt(t.max_borrow_rate_ray),baseBorrowRateRay:Kt(t.base_borrow_rate_ray),slope1Ray:Kt(t.slope1_ray),slope2Ray:Kt(t.slope2_ray),slope3Ray:Kt(t.slope3_ray),midUtilizationRay:Kt(t.mid_utilization_ray),optimalUtilizationRay:Kt(t.optimal_utilization_ray),maxUtilizationRay:ee(t.max_utilization_ray),reserveFactorBps:Yt(t.reserve_factor_bps)}}),"market:batch_state_update":t=>({topic:"market:batch_state_update",data:{updates:(t.updates??[]).map((t=>({asset:te(t.asset),timestamp:Yt(t.timestamp),supplyIndexRay:Kt(t.supply_index_ray),borrowIndexRay:Kt(t.borrow_index_ray),reservesRay:Kt(t.reserves_ray),suppliedRay:Kt(t.supplied_ray),borrowedRay:Kt(t.borrowed_ray),revenueRay:Kt(t.revenue_ray),assetPriceWad:ee(t.asset_price_wad)})))}}),"position:batch_update":t=>{return{topic:"position:batch_update",data:{accountId:Kt(t.account_id),accountAttributes:{owner:te(t.account_attributes.owner),isIsolatedPosition:Boolean(t.account_attributes.is_isolated_position),eModeCategoryId:Yt(t.account_attributes.e_mode_category_id),mode:(e=t.account_attributes.mode,ue[Yt(e)]??"None"),isolatedToken:oe(t.account_attributes.isolated_token)},updates:(t.updates??[]).map(pe)}};var e},"position:flash_loan":t=>({topic:"position:flash_loan",data:{asset:te(t.asset),receiver:te(t.receiver),caller:te(t.caller),amount:Kt(t.amount),fee:Kt(t.fee)}}),"config:asset":t=>({topic:"config:asset",data:{asset:te(t.asset),config:se(t.config)}}),"config:oracle":t=>({topic:"config:oracle",data:{asset:te(t.asset),oracle:ce(t.oracle)}}),"config:emode_category":t=>({topic:"config:emode_category",data:{category:{categoryId:Yt(t.category.category_id),loanToValueBps:Yt(t.category.loan_to_value_bps),liquidationThresholdBps:Yt(t.category.liquidation_threshold_bps),liquidationBonusBps:Yt(t.category.liquidation_bonus_bps),isDeprecated:Boolean(t.category.is_deprecated)}}}),"config:emode_asset":t=>({topic:"config:emode_asset",data:{asset:te(t.asset),config:{isCollateralizable:Boolean(t.config.is_collateralizable),isBorrowable:Boolean(t.config.is_borrowable)},categoryId:Yt(t.category_id)}}),"config:remove_emode_asset":t=>({topic:"config:remove_emode_asset",data:{asset:te(t.asset),categoryId:Yt(t.category_id)}}),"debt:ceiling_update":t=>({topic:"debt:ceiling_update",data:{asset:te(t.asset),totalDebtUsdWad:Kt(t.total_debt_usd_wad)}}),"debt:ceiling_batch_update":t=>({topic:"debt:ceiling_batch_update",data:{updates:(t.updates??[]).map((t=>({asset:te(t.asset),totalDebtUsdWad:Kt(t.total_debt_usd_wad)})))}}),"debt:bad_debt":t=>({topic:"debt:bad_debt",data:{accountId:Kt(t.account_id),totalBorrowUsdWad:Kt(t.total_borrow_usd_wad),totalCollateralUsdWad:Kt(t.total_collateral_usd_wad)}}),"strategy:initial_payment":t=>({topic:"strategy:initial_payment",data:{token:te(t.token),amount:Kt(t.amount),usdValueWad:Kt(t.usd_value_wad),accountId:Kt(t.account_id)}}),"config:approve_token":t=>({topic:"config:approve_token",data:{wasmHash:re(t.wasm_hash),approved:Boolean(t.approved)}}),"config:aggregator":t=>({topic:"config:aggregator",data:{aggregator:te(t.aggregator)}}),"config:accumulator":t=>({topic:"config:accumulator",data:{accumulator:te(t.accumulator)}}),"config:pool_template":t=>({topic:"config:pool_template",data:{wasmHash:re(t.wasm_hash)}}),"config:position_limits":t=>({topic:"config:position_limits",data:{maxSupplyPositions:Yt(t.max_supply_positions),maxBorrowPositions:Yt(t.max_borrow_positions)}}),"config:oracle_disabled":t=>({topic:"config:oracle_disabled",data:{asset:te(t.asset)}}),"oracle:twap_degraded":t=>({topic:"oracle:twap_degraded",data:{oracle:te(t.oracle),reasonCode:Yt(t.reason_code)}})},ye=Object.freeze(Object.keys(le));function fe(t,e){const o=Jt(t),r=le[o];return r?r(i(Qt(e))):null}const _e="XLENDXLM-a7c9f3",be=1e4;function me(t){const e=BigInt(t).toString(16),o=e.length%2==0?e:`0${e}`;return`${_e}-${o}`}function ge(t){const e=t.split("-");return e.length>=2&&parseInt(e[1],10)||0}function qe(t,e=0){return 1e4*t+e}function he(t){switch(t){case"liq_repay":return"lendingLiquidateRepayDebt";case"liq_seize":return"lendingLiquidateSeizeCollateral";case"param_upd":return"lendingUpdateAccountParameters";default:return"lendingUpdateAccountPosition"}}const we=(t,e,o)=>{const r=new URL(e,t.endsWith("/")?t:`${t}/`);if(o)for(const[t,e]of Object.entries(o))void 0!==e&&r.searchParams.set(t,String(e));return r.toString()},ve=t=>t.baseUrl??S[t.network];async function Ae(t,e){if(null==t.amountIn==(null==t.amountOut))throw new Error("getStellarAggregatorQuote: exactly one of `amountIn` or `amountOut` must be provided");const o=we(ve(e),"api/v1/quote",{from:t.from,to:t.to,amountIn:t.amountIn,amountOut:t.amountOut,maxHops:t.maxHops,maxSplits:t.maxSplits,slippage:t.slippage,includePaths:t.includePaths,sender:t.sender,router:t.router,platform:t.platform,fresh:t.fresh}),r=await fetch(o,e.fetchOptions);if(!r.ok){const t=await r.text().catch((()=>""));throw new Error(`Stellar quote server responded ${r.status} ${r.statusText} for ${o} — ${t}`)}return await r.json()}async function Se(t){const e=we(ve(t),"api/v1/tokens"),o=await fetch(e,t.fetchOptions);if(!o.ok){const t=await o.text().catch((()=>""));throw new Error(`Stellar quote server responded ${o.status} ${o.statusText} for ${e} — ${t}`)}return await o.json()}const Te=(t,e)=>(t=>Boolean(t&&"object"==typeof t&&!(t instanceof Uint8Array)&&"paths"in t))(t)&&void 0===t.referralId?{...t,referralId:e??0}:t,ke=t=>j(t).toXDR("base64");function Me(e,u){const i=e.routerAddress??M(e.network),a=new r(i),s=new t(e.caller,e.sourceSequence),p=X(Te(u,e.referralId));return{xdr:new n(s,{fee:e.fee??o,networkPassphrase:T[e.network]}).addOperation(a.call("execute_strategy",E(e.caller),P(e.totalIn),p)).setTimeout(e.timeoutSeconds??300).build().toXDR()}}function xe(t,e){return Me(t,e)}function Ee(t,e={}){if("string"!=typeof t.amountOutMin)throw new Error("mapQuoteResponseToStrategyPayload: quote response is missing `amountOutMin`. Pass `slippage` when fetching the quote.");return{paths:t.paths?t.paths.map((t=>({hops:t.swaps.map(Ie),splitPpm:t.splitPpm}))):[{hops:t.hops.map(Ie),splitPpm:1e6}],referralId:e.referralId??0,tokenIn:t.from,tokenOut:t.to,totalMinOut:t.amountOutMin}}function Pe(t,e={}){const o=t;return"string"==typeof o.routeXdr&&o.routeXdr.length>0?{routeXdr:o.routeXdr}:Ee(t,e)}const Oe=Ee,Ie=t=>({amountOut:t.amountOut,pool:t.address,tokenIn:t.from,tokenOut:t.to,venue:t.dex});function Re(t,e){const o=e instanceof Error?e.message:String(e);return new Error(`[xoxno-invoked:${t}] ${o}`)}async function Be(t,e,o){const r=n.fromXDR(e,"base64");try{return(await t.prepareTransaction(r)).toXDR()}catch(t){if(o?.invokedContractId)throw Re(o.invokedContractId,t);throw t}}async function Ue(t,e,o){return Be(t,e.xdr,o)}function Ce(t){if(t<=0||t>4)throw new Error(`Invalid PositionMode ${t} for Stellar — expected 1 (Normal) through 4 (Short). "None" (0) has no Stellar equivalent.`);return t-1}function Ne(t,e){return{paths:[{hops:[{amountOut:"0",pool:t,tokenIn:t,tokenOut:t,venue:"Soroswap"}],splitPpm:1e6}],referralId:0,tokenIn:t,tokenOut:t,totalMinOut:e}}const $e=t=>{const e=t.startsWith("0x")?t.slice(2):t;if(e.length%2!=0)throw new Error("buildStellarCctpForwardTx: hex input must have even length");return Buffer.from(e,"hex")};function ze(e){const o=new t(e.caller,e.sourceSequence),u=new r(e.forwarderAddress).call("mint_and_forward",a.ScVal.scvBytes($e(e.message)),a.ScVal.scvBytes($e(e.attestation)));return{xdr:new n(o,{fee:e.fee??"10000000",networkPassphrase:T[e.network]}).addOperation(u).setTimeout(e.timeoutSeconds??120).build().toXDR()}}const De=t=>t.replace(/-([a-z])/g,((t,e)=>e.toUpperCase()));function Le(t,e,o,r){const{input:u,output:n,...i}=e,a=async(e={})=>{const u={...o,...e},n=t.replace(/:([a-zA-Z_]+)/g,((t,e)=>`${u[e]}`)),i=[...t.matchAll(/:([a-zA-Z_]+)/g)].map((t=>t[1])),a=Object.fromEntries(Object.entries(u).filter((([t])=>!i.includes(t)))),s=/:address[^A-Z]/.test(t)||"address"in a,p=/:collection[^A-Z]/.test(t)||"collection"in a;if(s){const t=u.address;if(!g(t))throw new m(t)}if(p){const t=u.collection;if(Array.isArray(t)?t.some((t=>!f(t))):!f(t))throw new b(t)}const d=Object.fromEntries(Object.entries(a).map((([t,e])=>[t,e instanceof FormData?e:"filter"===t||"body"===t?JSON.stringify(e):Array.isArray(e)?e.join(","):e]))),{body:c,auth:l,method:y,headers:_,cache:q,next:h,debug:w,continuationToken:v,...A}=d,S=l?`Bearer ${l}`:void 0,T={..._,...S?{Authorization:S}:{},...v?{"X-Continuation-Token":String(v)}:{}},k={...h,tags:[...h?.tags??[],n]};return r.fetchWithTimeout(n,{method:y,params:A,body:c,headers:T,cache:q,debug:w,...k?{next:k}:{}})},s=(t={})=>a(t);for(const t of Object.keys(i))h.includes(t)&&(s[t]=e=>a({...e,method:e.method??t.toUpperCase()}));return s}function je(t){const e=function(){const t={static:{},params:{},leaves:[]};for(const[e,o]of Object.entries(q)){const r=e.split("/").filter(Boolean);let u=t;for(const t of r)if(t.startsWith(":")){const e=De(t.slice(1));u=u.params[e]||={static:{},params:{},leaves:[]}}else{const e=De(t);u=u.static[e]||={static:{},params:{},leaves:[]}}u.leaves.push({rawPath:e,def:o})}return t}(),o=(e,r)=>{const u=e.leaves.length,n=Object.keys(e.static).length,i=Object.keys(e.params).length;let a;if(1===u&&n+i>0){const{rawPath:o,def:u}=e.leaves[0];a=Le(o,u,r,t)}else{a={};for(const{rawPath:o,def:u}of e.leaves)a[De(o.split("/").pop().replace(/^:/,""))]=Le(o,u,r,t)}for(const[t,u]of Object.entries(e.static)){const e=o(u,r);let n=e;if(e&&"object"==typeof e&&t in e&&"function"==typeof e[t]){const o=e[t],r=Object.fromEntries(Object.entries(e).filter((([e])=>e!==t)));1===o.length||(Object.assign(o,r),n=o)}void 0===a[t]?a[t]=n:"function"==typeof a[t]?Object.assign(a[t],n):"function"==typeof n?(Object.assign(n,a[t]),a[t]=n):Object.assign(a[t],n)}for(const[t,u]of Object.entries(e.params)){const e=e=>{const n=o(u,{...r,[t]:e});if(n&&"object"==typeof n&&1===Object.keys(n).length&&t in n&&"function"==typeof n[t]){const e=n[t],o=(...t)=>e(...t);return Object.assign(o,e)}return n};if(a[t]){const o=a[t];a[t]=t=>({...o(t),...e(t)})}else a[t]=e}return a};return o(e,{})}export{l as Chain,v as STELLAR_AGGREGATOR_ROUTER,w as STELLAR_LENDING_CONTROLLER,ye as STELLAR_LENDING_TOPICS,T as STELLAR_NETWORK_PASSPHRASE,S as STELLAR_QUOTE_URL,A as STELLAR_SOROBAN_RPC_URL,be as SYNTHETIC_EVENT_ORDER_STRIDE,y as XOXNOClient,_e as XOXNO_LENDING_STELLAR_TICKER,Ne as buildSameTokenRepaySwapSteps,je as buildSdk,St as buildStellarAcceptOwnershipTx,Rt as buildStellarAddAssetToEModeCategoryTx,Pt as buildStellarAddEModeCategoryTx,Ft as buildStellarAddRewardsTx,Ct as buildStellarApproveTokenTx,xe as buildStellarBatchSwapTx,Q as buildStellarBorrowBatchTx,J as buildStellarBorrowTx,ze as buildStellarCctpForwardTx,Ht as buildStellarClaimRevenueTx,$t as buildStellarConfigureMarketOracleTx,Wt as buildStellarCreateLiquidityPoolTx,Dt as buildStellarDisableTokenOracleTx,xt as buildStellarEditAssetConfigTx,Bt as buildStellarEditAssetInEModeCategoryTx,Ot as buildStellarEditEModeCategoryTx,zt as buildStellarEditOracleToleranceTx,Me as buildStellarExecuteStrategyTx,rt as buildStellarFlashLoanTx,wt as buildStellarGrantRoleTx,me as buildStellarLendingIdentifier,ot as buildStellarLiquidateTx,gt as buildStellarMigrateTx,ut as buildStellarMultiplyTx,qt as buildStellarPauseTx,Ut as buildStellarRemoveAssetFromEModeTx,It as buildStellarRemoveEModeCategoryTx,jt as buildStellarRenewAccountTx,tt as buildStellarRepayBatchTx,at as buildStellarRepayDebtWithCollateralTx,et as buildStellarRepayTx,vt as buildStellarRevokeRoleTx,Nt as buildStellarRevokeTokenTx,kt as buildStellarSetAccumulatorTx,Tt as buildStellarSetAggregatorTx,Mt as buildStellarSetLiquidityPoolTemplateTx,Et as buildStellarSetPositionLimitsTx,G as buildStellarSupplyBatchTx,Z as buildStellarSupplyTx,it as buildStellarSwapCollateralTx,nt as buildStellarSwapDebtTx,At as buildStellarTransferOwnershipTx,ht as buildStellarUnpauseTx,Gt as buildStellarUpdateAccountThresholdTx,Lt as buildStellarUpdateIndexesTx,mt as buildStellarUpgradeControllerTx,Vt as buildStellarUpgradeLiquidityPoolParamsTx,Xt as buildStellarUpgradeLiquidityPoolTx,K as buildStellarWithdrawBatchTx,Y as buildStellarWithdrawTx,F as buildTx,fe as decodeStellarLendingEvent,ct as encodeAssetConfigRaw,pt as encodeInterestRateModel,bt as encodeMarketOracleConfigInput,dt as encodeMarketParamsRaw,_t as encodeOracleSourceConfigInput,lt as encodePositionLimits,ke as encodeStrategyPayloadToRouteXdr,ge as extractEventOrder,Ae as getStellarAggregatorQuote,M as getStellarAggregatorRouter,k as getStellarLendingController,Se as getStellarQuoteTokens,f as isValidCollectionTicker,_ as isValidNftIdentifier,Oe as mapQuoteResponseToAggregatorSwap,Ee as mapQuoteResponseToStrategyPayload,Pe as mapQuoteResponseToStrategySwap,he as mapStellarPositionActivityType,Ue as prepareStellarBuiltTx,Be as prepareStellarTxXdr,Jt as stellarLendingDispatchKey,qe as syntheticEventOrder,Re as tagStellarInvokedContractError,Zt as toBase64Xdr,Ce as toStellarPositionMode};
|
|
@@ -88,6 +88,14 @@ export interface StellarBorrowBatchArgs {
|
|
|
88
88
|
export interface StellarWithdrawBatchArgs {
|
|
89
89
|
accountNonce: number;
|
|
90
90
|
withdrawals: ReadonlyArray<StellarTokenAmount>;
|
|
91
|
+
/**
|
|
92
|
+
* Optional recipient override (`C...` or `G...`). The pool pays the
|
|
93
|
+
* withdrawn tokens to this address instead of the caller. Omit for the
|
|
94
|
+
* standard flow — the contract arg is still sent, encoded as
|
|
95
|
+
* `Option::None` (ScVal void), which the controller resolves to the
|
|
96
|
+
* caller.
|
|
97
|
+
*/
|
|
98
|
+
to?: string;
|
|
91
99
|
}
|
|
92
100
|
export interface StellarRepayBatchArgs {
|
|
93
101
|
accountNonce: number;
|
|
@@ -109,7 +117,9 @@ export declare function buildStellarBorrowBatchTx(opts: StellarBuilderOptions, a
|
|
|
109
117
|
export declare function buildStellarBorrowTx(opts: StellarBuilderOptions, args: BorrowArgs): BuiltStellarTx;
|
|
110
118
|
export declare function buildStellarWithdrawBatchTx(opts: StellarBuilderOptions, args: StellarWithdrawBatchArgs): BuiltStellarTx;
|
|
111
119
|
/**
|
|
112
|
-
* withdraw(caller, account_id: u64, withdrawals: Vec<(Address, i128)
|
|
120
|
+
* withdraw(caller, account_id: u64, withdrawals: Vec<(Address, i128)>,
|
|
121
|
+
* to: Option<Address>) — `to` is always sent; absent means the caller
|
|
122
|
+
* receives the funds.
|
|
113
123
|
*/
|
|
114
124
|
export declare function buildStellarWithdrawTx(opts: StellarBuilderOptions, args: WithdrawArgs): BuiltStellarTx;
|
|
115
125
|
export declare function buildStellarRepayBatchTx(opts: StellarBuilderOptions, args: StellarRepayBatchArgs): BuiltStellarTx;
|
package/dist/sdk/swagger.d.ts
CHANGED
|
@@ -376,9 +376,7 @@ export declare const endpoints: {
|
|
|
376
376
|
readonly output: LendingAccountProfile[];
|
|
377
377
|
};
|
|
378
378
|
readonly "/lending/market/indexes": {
|
|
379
|
-
readonly input: {
|
|
380
|
-
chain?: ActivityChain[];
|
|
381
|
-
};
|
|
379
|
+
readonly input: {};
|
|
382
380
|
readonly output: Record<string, LendingIndexesDto>;
|
|
383
381
|
};
|
|
384
382
|
readonly "/user/lending/position/:identifier": {
|
|
@@ -1137,16 +1135,6 @@ export declare const endpoints: {
|
|
|
1137
1135
|
};
|
|
1138
1136
|
readonly output: AnalyticsVolumeDto[];
|
|
1139
1137
|
};
|
|
1140
|
-
readonly "/collections/analytics/volume": {
|
|
1141
|
-
readonly input: {
|
|
1142
|
-
collections: string;
|
|
1143
|
-
startTime?: string;
|
|
1144
|
-
endTime?: string;
|
|
1145
|
-
bin?: string;
|
|
1146
|
-
chain: ActivityChain[];
|
|
1147
|
-
};
|
|
1148
|
-
readonly output: Record<string, AnalyticsVolumeDto[]>;
|
|
1149
|
-
};
|
|
1150
1138
|
readonly "/user/:address/analytics/volume": {
|
|
1151
1139
|
readonly input: {};
|
|
1152
1140
|
readonly output: UserAnalyticsDto;
|