lampamazaza-new-internal-utils 0.24.3
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/LICENSE +21 -0
- package/dist/_virtual/rolldown_runtime.cjs +43 -0
- package/dist/_virtual/rolldown_runtime.js +18 -0
- package/dist/config.cjs +82 -0
- package/dist/config.d.cts +42 -0
- package/dist/config.d.ts +42 -0
- package/dist/config.js +72 -0
- package/dist/errors/assert.cjs +11 -0
- package/dist/errors/assert.d.cts +11 -0
- package/dist/errors/assert.d.ts +11 -0
- package/dist/errors/assert.js +11 -0
- package/dist/errors/base.cjs +34 -0
- package/dist/errors/base.d.cts +21 -0
- package/dist/errors/base.d.ts +21 -0
- package/dist/errors/base.js +33 -0
- package/dist/errors/index.cjs +23 -0
- package/dist/errors/index.d.cts +11 -0
- package/dist/errors/index.d.ts +11 -0
- package/dist/errors/index.js +18 -0
- package/dist/errors/request.cjs +48 -0
- package/dist/errors/request.d.cts +61 -0
- package/dist/errors/request.d.ts +61 -0
- package/dist/errors/request.js +46 -0
- package/dist/errors/utils/isNetworkError.cjs +23 -0
- package/dist/errors/utils/isNetworkError.js +22 -0
- package/dist/errors/utils/toError.cjs +8 -0
- package/dist/errors/utils/toError.d.cts +4 -0
- package/dist/errors/utils/toError.d.ts +4 -0
- package/dist/errors/utils/toError.js +7 -0
- package/dist/index.cjs +125 -0
- package/dist/index.d.cts +30 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +30 -0
- package/dist/logger.d.cts +11 -0
- package/dist/logger.d.ts +11 -0
- package/dist/nearClient.cjs +18 -0
- package/dist/nearClient.d.cts +8 -0
- package/dist/nearClient.d.ts +8 -0
- package/dist/nearClient.js +18 -0
- package/dist/poaBridge/constants/blockchains.cjs +57 -0
- package/dist/poaBridge/constants/blockchains.d.cts +86 -0
- package/dist/poaBridge/constants/blockchains.d.ts +86 -0
- package/dist/poaBridge/constants/blockchains.js +54 -0
- package/dist/poaBridge/errors/withdrawal.cjs +52 -0
- package/dist/poaBridge/errors/withdrawal.d.cts +34 -0
- package/dist/poaBridge/errors/withdrawal.d.ts +34 -0
- package/dist/poaBridge/errors/withdrawal.js +50 -0
- package/dist/poaBridge/getPendingDeposits.cjs +9 -0
- package/dist/poaBridge/getPendingDeposits.d.cts +12 -0
- package/dist/poaBridge/getPendingDeposits.d.ts +13 -0
- package/dist/poaBridge/getPendingDeposits.js +9 -0
- package/dist/poaBridge/index.cjs +23 -0
- package/dist/poaBridge/index.d.cts +11 -0
- package/dist/poaBridge/index.d.ts +11 -0
- package/dist/poaBridge/index.js +18 -0
- package/dist/poaBridge/poaBridgeHttpClient/apis.cjs +38 -0
- package/dist/poaBridge/poaBridgeHttpClient/apis.d.cts +12 -0
- package/dist/poaBridge/poaBridgeHttpClient/apis.d.ts +12 -0
- package/dist/poaBridge/poaBridgeHttpClient/apis.js +32 -0
- package/dist/poaBridge/poaBridgeHttpClient/index.cjs +21 -0
- package/dist/poaBridge/poaBridgeHttpClient/index.d.cts +9 -0
- package/dist/poaBridge/poaBridgeHttpClient/index.d.ts +9 -0
- package/dist/poaBridge/poaBridgeHttpClient/index.js +16 -0
- package/dist/poaBridge/poaBridgeHttpClient/runtime.cjs +49 -0
- package/dist/poaBridge/poaBridgeHttpClient/runtime.js +47 -0
- package/dist/poaBridge/poaBridgeHttpClient/types.d.cts +161 -0
- package/dist/poaBridge/poaBridgeHttpClient/types.d.ts +161 -0
- package/dist/poaBridge/waitForWithdrawalCompletion.cjs +57 -0
- package/dist/poaBridge/waitForWithdrawalCompletion.d.cts +31 -0
- package/dist/poaBridge/waitForWithdrawalCompletion.d.ts +31 -0
- package/dist/poaBridge/waitForWithdrawalCompletion.js +56 -0
- package/dist/services/blockchainBalanceService.cjs +40 -0
- package/dist/services/blockchainBalanceService.d.cts +21 -0
- package/dist/services/blockchainBalanceService.d.ts +21 -0
- package/dist/services/blockchainBalanceService.js +37 -0
- package/dist/solverRelay/errors/intentSettlement.cjs +20 -0
- package/dist/solverRelay/errors/intentSettlement.d.cts +13 -0
- package/dist/solverRelay/errors/intentSettlement.d.ts +13 -0
- package/dist/solverRelay/errors/intentSettlement.js +20 -0
- package/dist/solverRelay/errors/quote.cjs +18 -0
- package/dist/solverRelay/errors/quote.d.cts +21 -0
- package/dist/solverRelay/errors/quote.d.ts +22 -0
- package/dist/solverRelay/errors/quote.js +18 -0
- package/dist/solverRelay/getQuote.cjs +49 -0
- package/dist/solverRelay/getQuote.d.cts +14 -0
- package/dist/solverRelay/getQuote.d.ts +14 -0
- package/dist/solverRelay/getQuote.js +49 -0
- package/dist/solverRelay/getStatus.cjs +26 -0
- package/dist/solverRelay/getStatus.d.cts +17 -0
- package/dist/solverRelay/getStatus.d.ts +18 -0
- package/dist/solverRelay/getStatus.js +26 -0
- package/dist/solverRelay/index.cjs +27 -0
- package/dist/solverRelay/index.d.cts +16 -0
- package/dist/solverRelay/index.d.ts +16 -0
- package/dist/solverRelay/index.js +22 -0
- package/dist/solverRelay/publishIntent.cjs +20 -0
- package/dist/solverRelay/publishIntent.d.cts +15 -0
- package/dist/solverRelay/publishIntent.d.ts +16 -0
- package/dist/solverRelay/publishIntent.js +20 -0
- package/dist/solverRelay/publishIntents.cjs +43 -0
- package/dist/solverRelay/publishIntents.d.cts +10 -0
- package/dist/solverRelay/publishIntents.d.ts +11 -0
- package/dist/solverRelay/publishIntents.js +42 -0
- package/dist/solverRelay/solverRelayHttpClient/apis.cjs +21 -0
- package/dist/solverRelay/solverRelayHttpClient/apis.d.cts +9 -0
- package/dist/solverRelay/solverRelayHttpClient/apis.d.ts +9 -0
- package/dist/solverRelay/solverRelayHttpClient/apis.js +18 -0
- package/dist/solverRelay/solverRelayHttpClient/index.cjs +18 -0
- package/dist/solverRelay/solverRelayHttpClient/index.d.cts +9 -0
- package/dist/solverRelay/solverRelayHttpClient/index.d.ts +9 -0
- package/dist/solverRelay/solverRelayHttpClient/index.js +13 -0
- package/dist/solverRelay/solverRelayHttpClient/runtime.cjs +60 -0
- package/dist/solverRelay/solverRelayHttpClient/runtime.js +58 -0
- package/dist/solverRelay/solverRelayHttpClient/types.d.cts +109 -0
- package/dist/solverRelay/solverRelayHttpClient/types.d.ts +109 -0
- package/dist/solverRelay/utils/parseFailedPublishError.cjs +40 -0
- package/dist/solverRelay/utils/parseFailedPublishError.d.cts +25 -0
- package/dist/solverRelay/utils/parseFailedPublishError.d.ts +26 -0
- package/dist/solverRelay/utils/parseFailedPublishError.js +39 -0
- package/dist/solverRelay/utils/quoteWithLog.cjs +21 -0
- package/dist/solverRelay/utils/quoteWithLog.d.cts +12 -0
- package/dist/solverRelay/utils/quoteWithLog.d.ts +14 -0
- package/dist/solverRelay/utils/quoteWithLog.js +21 -0
- package/dist/solverRelay/waitForIntentSettlement.cjs +52 -0
- package/dist/solverRelay/waitForIntentSettlement.d.cts +30 -0
- package/dist/solverRelay/waitForIntentSettlement.d.ts +30 -0
- package/dist/solverRelay/waitForIntentSettlement.js +52 -0
- package/dist/types/authHandle.cjs +22 -0
- package/dist/types/authHandle.d.cts +25 -0
- package/dist/types/authHandle.d.ts +25 -0
- package/dist/types/authHandle.js +16 -0
- package/dist/types/base.d.cts +45 -0
- package/dist/types/base.d.ts +45 -0
- package/dist/types/intentsUserId.d.cts +10 -0
- package/dist/types/intentsUserId.d.ts +10 -0
- package/dist/types/walletMessage.cjs +11 -0
- package/dist/types/walletMessage.d.cts +106 -0
- package/dist/types/walletMessage.d.ts +106 -0
- package/dist/types/walletMessage.js +5 -0
- package/dist/utils/abortSignal.cjs +19 -0
- package/dist/utils/abortSignal.js +18 -0
- package/dist/utils/appFee.cjs +20 -0
- package/dist/utils/appFee.d.cts +9 -0
- package/dist/utils/appFee.d.ts +9 -0
- package/dist/utils/appFee.js +15 -0
- package/dist/utils/assert.cjs +9 -0
- package/dist/utils/assert.d.cts +7 -0
- package/dist/utils/assert.d.ts +7 -0
- package/dist/utils/assert.js +9 -0
- package/dist/utils/authIdentity.cjs +56 -0
- package/dist/utils/authIdentity.d.cts +34 -0
- package/dist/utils/authIdentity.d.ts +34 -0
- package/dist/utils/authIdentity.js +50 -0
- package/dist/utils/failover.cjs +22 -0
- package/dist/utils/failover.d.cts +16 -0
- package/dist/utils/failover.d.ts +16 -0
- package/dist/utils/failover.js +20 -0
- package/dist/utils/handleRPCResponse.cjs +30 -0
- package/dist/utils/handleRPCResponse.js +28 -0
- package/dist/utils/index.cjs +55 -0
- package/dist/utils/index.d.cts +13 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.js +50 -0
- package/dist/utils/messageFactory.cjs +137 -0
- package/dist/utils/messageFactory.d.cts +70 -0
- package/dist/utils/messageFactory.d.ts +70 -0
- package/dist/utils/messageFactory.js +132 -0
- package/dist/utils/multiPayload/webauthn.cjs +27 -0
- package/dist/utils/multiPayload/webauthn.js +26 -0
- package/dist/utils/near.cjs +58 -0
- package/dist/utils/near.d.cts +35 -0
- package/dist/utils/near.d.ts +35 -0
- package/dist/utils/near.js +53 -0
- package/dist/utils/poll.cjs +87 -0
- package/dist/utils/poll.d.cts +54 -0
- package/dist/utils/poll.d.ts +54 -0
- package/dist/utils/poll.js +85 -0
- package/dist/utils/prepareBroadcastRequest.cjs +98 -0
- package/dist/utils/prepareBroadcastRequest.d.cts +16 -0
- package/dist/utils/prepareBroadcastRequest.d.ts +16 -0
- package/dist/utils/prepareBroadcastRequest.js +90 -0
- package/dist/utils/promise/withTimeout.cjs +34 -0
- package/dist/utils/promise/withTimeout.d.cts +16 -0
- package/dist/utils/promise/withTimeout.d.ts +16 -0
- package/dist/utils/promise/withTimeout.js +34 -0
- package/dist/utils/request.cjs +100 -0
- package/dist/utils/request.d.cts +27 -0
- package/dist/utils/request.d.ts +27 -0
- package/dist/utils/request.js +99 -0
- package/dist/utils/requestShouldRetry.cjs +20 -0
- package/dist/utils/requestShouldRetry.js +20 -0
- package/dist/utils/retry.cjs +66 -0
- package/dist/utils/retry.d.cts +56 -0
- package/dist/utils/retry.d.ts +56 -0
- package/dist/utils/retry.js +64 -0
- package/dist/utils/serialize.cjs +82 -0
- package/dist/utils/serialize.d.cts +17 -0
- package/dist/utils/serialize.d.ts +17 -0
- package/dist/utils/serialize.js +81 -0
- package/dist/utils/stellarAddressToBytes.cjs +295 -0
- package/dist/utils/stellarAddressToBytes.js +294 -0
- package/dist/utils/token.cjs +8 -0
- package/dist/utils/token.js +7 -0
- package/dist/utils/tokenUtils.cjs +263 -0
- package/dist/utils/tokenUtils.d.cts +88 -0
- package/dist/utils/tokenUtils.d.ts +88 -0
- package/dist/utils/tokenUtils.js +238 -0
- package/dist/utils/tronAddressToHex.cjs +18 -0
- package/dist/utils/tronAddressToHex.js +17 -0
- package/dist/utils/uint8Array.cjs +15 -0
- package/dist/utils/uint8Array.d.cts +4 -0
- package/dist/utils/uint8Array.d.ts +4 -0
- package/dist/utils/uint8Array.js +14 -0
- package/dist/utils/webAuthn.cjs +91 -0
- package/dist/utils/webAuthn.js +89 -0
- package/package.json +56 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const require_base = require('../errors/base.cjs');
|
|
2
|
+
const require_request = require('../errors/request.cjs');
|
|
3
|
+
const require_apis = require('./solverRelayHttpClient/apis.cjs');
|
|
4
|
+
const require_poll = require('../utils/poll.cjs');
|
|
5
|
+
const require_intentSettlement = require('./errors/intentSettlement.cjs');
|
|
6
|
+
|
|
7
|
+
//#region src/solverRelay/waitForIntentSettlement.ts
|
|
8
|
+
/**
|
|
9
|
+
* Default timing stats for intent settlement based on production data.
|
|
10
|
+
* Polls aggressively early, backs off for outliers.
|
|
11
|
+
*/
|
|
12
|
+
const DEFAULT_SETTLEMENT_STATS = {
|
|
13
|
+
p50: 2e3,
|
|
14
|
+
p90: 1e4,
|
|
15
|
+
p99: 356e3
|
|
16
|
+
};
|
|
17
|
+
async function waitForIntentSettlement({ intentHash, signal, baseURL, logger, solverRelayApiKey, ...events }) {
|
|
18
|
+
let txHashEmitted = false;
|
|
19
|
+
return require_poll.poll(async () => {
|
|
20
|
+
try {
|
|
21
|
+
const res = await require_apis.getStatus({ intent_hash: intentHash }, {
|
|
22
|
+
baseURL,
|
|
23
|
+
fetchOptions: { signal },
|
|
24
|
+
logger,
|
|
25
|
+
solverRelayApiKey
|
|
26
|
+
});
|
|
27
|
+
if (!txHashEmitted && (res.status === "TX_BROADCASTED" || res.status === "SETTLED")) {
|
|
28
|
+
txHashEmitted = true;
|
|
29
|
+
events.onTxHashKnown?.(res.data.hash);
|
|
30
|
+
}
|
|
31
|
+
if (res.status === "SETTLED") return {
|
|
32
|
+
txHash: res.data.hash,
|
|
33
|
+
intentHash: res.intent_hash
|
|
34
|
+
};
|
|
35
|
+
if (res.status === "NOT_FOUND_OR_NOT_VALID" && res.status_details === "FAILED") throw new require_intentSettlement.IntentSettlementError(res);
|
|
36
|
+
return require_poll.POLL_PENDING;
|
|
37
|
+
} catch (err) {
|
|
38
|
+
if (isTransientError(err)) return require_poll.POLL_PENDING;
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
}, {
|
|
42
|
+
stats: DEFAULT_SETTLEMENT_STATS,
|
|
43
|
+
signal
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function isTransientError(err) {
|
|
47
|
+
if (err instanceof require_intentSettlement.IntentSettlementError) return false;
|
|
48
|
+
return err instanceof require_base.BaseError && err.walk((err$1) => err$1 instanceof require_request.HttpRequestError || err$1 instanceof require_request.TimeoutError || err$1 instanceof require_request.RpcRequestError) !== null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
//#endregion
|
|
52
|
+
exports.waitForIntentSettlement = waitForIntentSettlement;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ILogger } from "../logger.cjs";
|
|
2
|
+
import { JSONRPCErrorType } from "./solverRelayHttpClient/types.cjs";
|
|
3
|
+
import { IntentSettlementErrorType } from "./errors/intentSettlement.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/solverRelay/waitForIntentSettlement.d.ts
|
|
6
|
+
type WaitForIntentSettlementReturnType = {
|
|
7
|
+
txHash: string;
|
|
8
|
+
intentHash: string;
|
|
9
|
+
};
|
|
10
|
+
type WaitForIntentSettlementErrorType = IntentSettlementErrorType | JSONRPCErrorType;
|
|
11
|
+
type IntentSettlementCallbacks = {
|
|
12
|
+
/** Fires once when tx hash first becomes available */
|
|
13
|
+
onTxHashKnown?: (txHash: string) => void;
|
|
14
|
+
};
|
|
15
|
+
declare function waitForIntentSettlement({
|
|
16
|
+
intentHash,
|
|
17
|
+
signal,
|
|
18
|
+
baseURL,
|
|
19
|
+
logger,
|
|
20
|
+
solverRelayApiKey,
|
|
21
|
+
...events
|
|
22
|
+
}: {
|
|
23
|
+
intentHash: string;
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
baseURL?: string;
|
|
26
|
+
logger?: ILogger;
|
|
27
|
+
solverRelayApiKey?: string;
|
|
28
|
+
} & IntentSettlementCallbacks): Promise<WaitForIntentSettlementReturnType>;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { IntentSettlementCallbacks, WaitForIntentSettlementErrorType, WaitForIntentSettlementReturnType, waitForIntentSettlement };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ILogger } from "../logger.js";
|
|
2
|
+
import { JSONRPCErrorType } from "./solverRelayHttpClient/types.js";
|
|
3
|
+
import { IntentSettlementErrorType } from "./errors/intentSettlement.js";
|
|
4
|
+
|
|
5
|
+
//#region src/solverRelay/waitForIntentSettlement.d.ts
|
|
6
|
+
type WaitForIntentSettlementReturnType = {
|
|
7
|
+
txHash: string;
|
|
8
|
+
intentHash: string;
|
|
9
|
+
};
|
|
10
|
+
type WaitForIntentSettlementErrorType = IntentSettlementErrorType | JSONRPCErrorType;
|
|
11
|
+
type IntentSettlementCallbacks = {
|
|
12
|
+
/** Fires once when tx hash first becomes available */
|
|
13
|
+
onTxHashKnown?: (txHash: string) => void;
|
|
14
|
+
};
|
|
15
|
+
declare function waitForIntentSettlement({
|
|
16
|
+
intentHash,
|
|
17
|
+
signal,
|
|
18
|
+
baseURL,
|
|
19
|
+
logger,
|
|
20
|
+
solverRelayApiKey,
|
|
21
|
+
...events
|
|
22
|
+
}: {
|
|
23
|
+
intentHash: string;
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
baseURL?: string;
|
|
26
|
+
logger?: ILogger;
|
|
27
|
+
solverRelayApiKey?: string;
|
|
28
|
+
} & IntentSettlementCallbacks): Promise<WaitForIntentSettlementReturnType>;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { IntentSettlementCallbacks, WaitForIntentSettlementErrorType, WaitForIntentSettlementReturnType, waitForIntentSettlement };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { BaseError } from "../errors/base.js";
|
|
2
|
+
import { HttpRequestError, RpcRequestError, TimeoutError } from "../errors/request.js";
|
|
3
|
+
import { getStatus } from "./solverRelayHttpClient/apis.js";
|
|
4
|
+
import { POLL_PENDING, poll } from "../utils/poll.js";
|
|
5
|
+
import { IntentSettlementError } from "./errors/intentSettlement.js";
|
|
6
|
+
|
|
7
|
+
//#region src/solverRelay/waitForIntentSettlement.ts
|
|
8
|
+
/**
|
|
9
|
+
* Default timing stats for intent settlement based on production data.
|
|
10
|
+
* Polls aggressively early, backs off for outliers.
|
|
11
|
+
*/
|
|
12
|
+
const DEFAULT_SETTLEMENT_STATS = {
|
|
13
|
+
p50: 2e3,
|
|
14
|
+
p90: 1e4,
|
|
15
|
+
p99: 356e3
|
|
16
|
+
};
|
|
17
|
+
async function waitForIntentSettlement({ intentHash, signal, baseURL, logger, solverRelayApiKey, ...events }) {
|
|
18
|
+
let txHashEmitted = false;
|
|
19
|
+
return poll(async () => {
|
|
20
|
+
try {
|
|
21
|
+
const res = await getStatus({ intent_hash: intentHash }, {
|
|
22
|
+
baseURL,
|
|
23
|
+
fetchOptions: { signal },
|
|
24
|
+
logger,
|
|
25
|
+
solverRelayApiKey
|
|
26
|
+
});
|
|
27
|
+
if (!txHashEmitted && (res.status === "TX_BROADCASTED" || res.status === "SETTLED")) {
|
|
28
|
+
txHashEmitted = true;
|
|
29
|
+
events.onTxHashKnown?.(res.data.hash);
|
|
30
|
+
}
|
|
31
|
+
if (res.status === "SETTLED") return {
|
|
32
|
+
txHash: res.data.hash,
|
|
33
|
+
intentHash: res.intent_hash
|
|
34
|
+
};
|
|
35
|
+
if (res.status === "NOT_FOUND_OR_NOT_VALID" && res.status_details === "FAILED") throw new IntentSettlementError(res);
|
|
36
|
+
return POLL_PENDING;
|
|
37
|
+
} catch (err) {
|
|
38
|
+
if (isTransientError(err)) return POLL_PENDING;
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
}, {
|
|
42
|
+
stats: DEFAULT_SETTLEMENT_STATS,
|
|
43
|
+
signal
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function isTransientError(err) {
|
|
47
|
+
if (err instanceof IntentSettlementError) return false;
|
|
48
|
+
return err instanceof BaseError && err.walk((err$1) => err$1 instanceof HttpRequestError || err$1 instanceof TimeoutError || err$1 instanceof RpcRequestError) !== null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
//#endregion
|
|
52
|
+
export { waitForIntentSettlement };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/types/authHandle.ts
|
|
4
|
+
var authHandle_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({ AuthMethod: () => AuthMethod });
|
|
5
|
+
const AuthMethod = {
|
|
6
|
+
Near: "near",
|
|
7
|
+
EVM: "evm",
|
|
8
|
+
Solana: "solana",
|
|
9
|
+
WebAuthn: "webauthn",
|
|
10
|
+
Ton: "ton",
|
|
11
|
+
Stellar: "stellar",
|
|
12
|
+
Tron: "tron"
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
exports.AuthMethod = AuthMethod;
|
|
17
|
+
Object.defineProperty(exports, 'authHandle_exports', {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () {
|
|
20
|
+
return authHandle_exports;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
declare namespace authHandle_d_exports {
|
|
2
|
+
export { AuthHandle, AuthIdentifier, AuthMethod };
|
|
3
|
+
}
|
|
4
|
+
type AuthMethod = "near" | "evm" | "solana" | "webauthn" | "ton" | "stellar" | "tron";
|
|
5
|
+
declare const AuthMethod: {
|
|
6
|
+
readonly Near: "near";
|
|
7
|
+
readonly EVM: "evm";
|
|
8
|
+
readonly Solana: "solana";
|
|
9
|
+
readonly WebAuthn: "webauthn";
|
|
10
|
+
readonly Ton: "ton";
|
|
11
|
+
readonly Stellar: "stellar";
|
|
12
|
+
readonly Tron: "tron";
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Represents a public identifier used for authentication.
|
|
16
|
+
* This could be a blockchain address, account name, or public key.
|
|
17
|
+
* This is always a public value - never contains private keys or passwords.
|
|
18
|
+
*/
|
|
19
|
+
type AuthIdentifier = string;
|
|
20
|
+
type AuthHandle = {
|
|
21
|
+
identifier: AuthIdentifier;
|
|
22
|
+
method: AuthMethod;
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { AuthHandle, AuthIdentifier, AuthMethod, authHandle_d_exports };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
declare namespace authHandle_d_exports {
|
|
2
|
+
export { AuthHandle, AuthIdentifier, AuthMethod };
|
|
3
|
+
}
|
|
4
|
+
type AuthMethod = "near" | "evm" | "solana" | "webauthn" | "ton" | "stellar" | "tron";
|
|
5
|
+
declare const AuthMethod: {
|
|
6
|
+
readonly Near: "near";
|
|
7
|
+
readonly EVM: "evm";
|
|
8
|
+
readonly Solana: "solana";
|
|
9
|
+
readonly WebAuthn: "webauthn";
|
|
10
|
+
readonly Ton: "ton";
|
|
11
|
+
readonly Stellar: "stellar";
|
|
12
|
+
readonly Tron: "tron";
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Represents a public identifier used for authentication.
|
|
16
|
+
* This could be a blockchain address, account name, or public key.
|
|
17
|
+
* This is always a public value - never contains private keys or passwords.
|
|
18
|
+
*/
|
|
19
|
+
type AuthIdentifier = string;
|
|
20
|
+
type AuthHandle = {
|
|
21
|
+
identifier: AuthIdentifier;
|
|
22
|
+
method: AuthMethod;
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { AuthHandle, AuthIdentifier, AuthMethod, authHandle_d_exports };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __exportAll } from "../_virtual/rolldown_runtime.js";
|
|
2
|
+
|
|
3
|
+
//#region src/types/authHandle.ts
|
|
4
|
+
var authHandle_exports = /* @__PURE__ */ __exportAll({ AuthMethod: () => AuthMethod });
|
|
5
|
+
const AuthMethod = {
|
|
6
|
+
Near: "near",
|
|
7
|
+
EVM: "evm",
|
|
8
|
+
Solana: "solana",
|
|
9
|
+
WebAuthn: "webauthn",
|
|
10
|
+
Ton: "ton",
|
|
11
|
+
Stellar: "stellar",
|
|
12
|
+
Tron: "tron"
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { AuthMethod, authHandle_exports };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/types/base.d.ts
|
|
2
|
+
type SupportedChainName = "eth" | "near" | "base" | "arbitrum" | "bitcoin" | "bitcoincash" | "solana" | "dogecoin" | "turbochain" | "tuxappchain" | "vertex" | "optima" | "easychain" | "hako" | "aurora" | "aurora_devnet" | "xrpledger" | "zcash" | "gnosis" | "berachain" | "tron" | "polygon" | "bsc" | "hyperliquid" | "cardano";
|
|
3
|
+
type SupportedBridge = "direct" | "poa" | "aurora_engine" | "hot_omni";
|
|
4
|
+
interface FungibleTokenInfo {
|
|
5
|
+
defuseAssetId: string;
|
|
6
|
+
address: string;
|
|
7
|
+
symbol: string;
|
|
8
|
+
name: string;
|
|
9
|
+
decimals: number;
|
|
10
|
+
icon: string;
|
|
11
|
+
chainName: SupportedChainName;
|
|
12
|
+
bridge: SupportedBridge;
|
|
13
|
+
}
|
|
14
|
+
interface NativeTokenInfo {
|
|
15
|
+
defuseAssetId: string;
|
|
16
|
+
type: "native";
|
|
17
|
+
symbol: string;
|
|
18
|
+
name: string;
|
|
19
|
+
decimals: number;
|
|
20
|
+
icon: string;
|
|
21
|
+
chainName: SupportedChainName;
|
|
22
|
+
bridge: SupportedBridge;
|
|
23
|
+
}
|
|
24
|
+
type BaseTokenInfo = FungibleTokenInfo | NativeTokenInfo;
|
|
25
|
+
/**
|
|
26
|
+
* A virtual aggregation of the same token across multiple blockchains.
|
|
27
|
+
* This is not an on-chain token but a unified view of network-specific tokens
|
|
28
|
+
* with shared properties.
|
|
29
|
+
*
|
|
30
|
+
* The name avoids "NativeMultichainAsset" to clarify that it doesn't represent
|
|
31
|
+
* an actual multichain token, just a virtual abstraction.
|
|
32
|
+
*/
|
|
33
|
+
interface UnifiedTokenInfo {
|
|
34
|
+
unifiedAssetId: string;
|
|
35
|
+
symbol: string;
|
|
36
|
+
name: string;
|
|
37
|
+
icon: string;
|
|
38
|
+
groupedTokens: BaseTokenInfo[];
|
|
39
|
+
}
|
|
40
|
+
interface TokenValue {
|
|
41
|
+
amount: bigint;
|
|
42
|
+
decimals: number;
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
export { BaseTokenInfo, TokenValue, UnifiedTokenInfo };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//#region src/types/base.d.ts
|
|
2
|
+
type SupportedChainName = "eth" | "near" | "base" | "arbitrum" | "bitcoin" | "bitcoincash" | "solana" | "dogecoin" | "turbochain" | "tuxappchain" | "vertex" | "optima" | "easychain" | "hako" | "aurora" | "aurora_devnet" | "xrpledger" | "zcash" | "gnosis" | "berachain" | "tron" | "polygon" | "bsc" | "hyperliquid" | "cardano";
|
|
3
|
+
type SupportedBridge = "direct" | "poa" | "aurora_engine" | "hot_omni";
|
|
4
|
+
interface FungibleTokenInfo {
|
|
5
|
+
defuseAssetId: string;
|
|
6
|
+
address: string;
|
|
7
|
+
symbol: string;
|
|
8
|
+
name: string;
|
|
9
|
+
decimals: number;
|
|
10
|
+
icon: string;
|
|
11
|
+
chainName: SupportedChainName;
|
|
12
|
+
bridge: SupportedBridge;
|
|
13
|
+
}
|
|
14
|
+
interface NativeTokenInfo {
|
|
15
|
+
defuseAssetId: string;
|
|
16
|
+
type: "native";
|
|
17
|
+
symbol: string;
|
|
18
|
+
name: string;
|
|
19
|
+
decimals: number;
|
|
20
|
+
icon: string;
|
|
21
|
+
chainName: SupportedChainName;
|
|
22
|
+
bridge: SupportedBridge;
|
|
23
|
+
}
|
|
24
|
+
type BaseTokenInfo = FungibleTokenInfo | NativeTokenInfo;
|
|
25
|
+
/**
|
|
26
|
+
* A virtual aggregation of the same token across multiple blockchains.
|
|
27
|
+
* This is not an on-chain token but a unified view of network-specific tokens
|
|
28
|
+
* with shared properties.
|
|
29
|
+
*
|
|
30
|
+
* The name avoids "NativeMultichainAsset" to clarify that it doesn't represent
|
|
31
|
+
* an actual multichain token, just a virtual abstraction.
|
|
32
|
+
*/
|
|
33
|
+
interface UnifiedTokenInfo {
|
|
34
|
+
unifiedAssetId: string;
|
|
35
|
+
symbol: string;
|
|
36
|
+
name: string;
|
|
37
|
+
icon: string;
|
|
38
|
+
groupedTokens: BaseTokenInfo[];
|
|
39
|
+
}
|
|
40
|
+
interface TokenValue {
|
|
41
|
+
amount: bigint;
|
|
42
|
+
decimals: number;
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
export { BaseTokenInfo, TokenValue, UnifiedTokenInfo };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/types/intentsUserId.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* A branded string type representing a Defuse user ID.
|
|
4
|
+
* The brand prevents accidental mixing with regular strings in TypeScript.
|
|
5
|
+
*/
|
|
6
|
+
type IntentsUserId = string & {
|
|
7
|
+
__brand: "IntentsUserId";
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { IntentsUserId };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/types/intentsUserId.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* A branded string type representing a Defuse user ID.
|
|
4
|
+
* The brand prevents accidental mixing with regular strings in TypeScript.
|
|
5
|
+
*/
|
|
6
|
+
type IntentsUserId = string & {
|
|
7
|
+
__brand: "IntentsUserId";
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { IntentsUserId };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { DefusePayloadFor_DefuseIntents, TonConnectPayloadSchema } from "lampamazaza-contract-types";
|
|
2
|
+
|
|
3
|
+
//#region src/types/walletMessage.d.ts
|
|
4
|
+
declare namespace walletMessage_d_exports {
|
|
5
|
+
export { ERC191Message, ERC191SignatureData, NEP413Message, NEP413SignatureData, SolanaMessage, SolanaSignatureData, StellarMessage, StellarSignatureData, TonConnectMessage, TonConnectSignatureData, TronMessage, TronSignatureData, WalletMessage, WalletSignatureResult, WebAuthnMessage, WebAuthnSignature, WebAuthnSignatureData };
|
|
6
|
+
}
|
|
7
|
+
type ERC191Message = {
|
|
8
|
+
message: string;
|
|
9
|
+
};
|
|
10
|
+
type ERC191SignatureData = {
|
|
11
|
+
type: "ERC191";
|
|
12
|
+
signatureData: string;
|
|
13
|
+
signedData: ERC191Message;
|
|
14
|
+
};
|
|
15
|
+
type NEP413Message = {
|
|
16
|
+
message: string;
|
|
17
|
+
recipient: string;
|
|
18
|
+
nonce: Uint8Array;
|
|
19
|
+
callbackUrl?: string;
|
|
20
|
+
};
|
|
21
|
+
type NEP413SignatureData = {
|
|
22
|
+
type: "NEP413";
|
|
23
|
+
signatureData: {
|
|
24
|
+
accountId: string;
|
|
25
|
+
/**
|
|
26
|
+
* Base58-encoded signature with curve prefix. Example:
|
|
27
|
+
* ed25519:Gxa24TGbJu4mqdhW3GbvLXmf4bSEyxVicrtpChDWbgga
|
|
28
|
+
*/
|
|
29
|
+
publicKey: string;
|
|
30
|
+
/** Base64-encoded signature */
|
|
31
|
+
signature: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The exact data that was signed. Wallet connectors may modify this during the signing process,
|
|
35
|
+
* so this property contains the actual data that was signed by the wallet.
|
|
36
|
+
*/
|
|
37
|
+
signedData: NEP413Message;
|
|
38
|
+
};
|
|
39
|
+
type SolanaMessage = {
|
|
40
|
+
message: Uint8Array;
|
|
41
|
+
};
|
|
42
|
+
type SolanaSignatureData = {
|
|
43
|
+
type: "SOLANA";
|
|
44
|
+
signatureData: Uint8Array;
|
|
45
|
+
signedData: SolanaMessage;
|
|
46
|
+
};
|
|
47
|
+
type StellarMessage = {
|
|
48
|
+
message: string;
|
|
49
|
+
};
|
|
50
|
+
type StellarSignatureData = {
|
|
51
|
+
type: "STELLAR_SEP53";
|
|
52
|
+
signatureData: Uint8Array;
|
|
53
|
+
signedData: StellarMessage;
|
|
54
|
+
};
|
|
55
|
+
type WebAuthnMessage = {
|
|
56
|
+
/** Hash that needs to be signed */
|
|
57
|
+
challenge: Uint8Array;
|
|
58
|
+
/** Underlying payload that will be executed onchain */
|
|
59
|
+
payload: string;
|
|
60
|
+
/** Parsed payload in case UI needs to display it */
|
|
61
|
+
parsedPayload: DefusePayloadFor_DefuseIntents;
|
|
62
|
+
};
|
|
63
|
+
/** Full response of WebAuthn Login */
|
|
64
|
+
type WebAuthnSignature = AuthenticatorAssertionResponse;
|
|
65
|
+
type WebAuthnSignatureData = {
|
|
66
|
+
type: "WEBAUTHN";
|
|
67
|
+
signatureData: WebAuthnSignature;
|
|
68
|
+
signedData: WebAuthnMessage;
|
|
69
|
+
};
|
|
70
|
+
type TonConnectMessage = {
|
|
71
|
+
message: {
|
|
72
|
+
type: "text";
|
|
73
|
+
text: string;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
type TonConnectSignatureData = {
|
|
77
|
+
type: "TON_CONNECT";
|
|
78
|
+
signatureData: {
|
|
79
|
+
signature: string;
|
|
80
|
+
address: string;
|
|
81
|
+
timestamp: number;
|
|
82
|
+
domain: string;
|
|
83
|
+
payload: TonConnectPayloadSchema;
|
|
84
|
+
};
|
|
85
|
+
signedData: TonConnectMessage;
|
|
86
|
+
};
|
|
87
|
+
type TronMessage = {
|
|
88
|
+
message: string;
|
|
89
|
+
};
|
|
90
|
+
type TronSignatureData = {
|
|
91
|
+
type: "TRON";
|
|
92
|
+
signatureData: string;
|
|
93
|
+
signedData: TronMessage;
|
|
94
|
+
};
|
|
95
|
+
type WalletMessage = {
|
|
96
|
+
ERC191: ERC191Message;
|
|
97
|
+
NEP413: NEP413Message;
|
|
98
|
+
SOLANA: SolanaMessage;
|
|
99
|
+
STELLAR: StellarMessage;
|
|
100
|
+
WEBAUTHN: WebAuthnMessage;
|
|
101
|
+
TON_CONNECT: TonConnectMessage;
|
|
102
|
+
TRON: TronMessage;
|
|
103
|
+
};
|
|
104
|
+
type WalletSignatureResult = ERC191SignatureData | NEP413SignatureData | SolanaSignatureData | StellarSignatureData | WebAuthnSignatureData | TonConnectSignatureData | TronSignatureData;
|
|
105
|
+
//#endregion
|
|
106
|
+
export { WalletMessage, WalletSignatureResult, walletMessage_d_exports };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { DefusePayloadFor_DefuseIntents, TonConnectPayloadSchema } from "lampamazaza-contract-types";
|
|
2
|
+
|
|
3
|
+
//#region src/types/walletMessage.d.ts
|
|
4
|
+
declare namespace walletMessage_d_exports {
|
|
5
|
+
export { ERC191Message, ERC191SignatureData, NEP413Message, NEP413SignatureData, SolanaMessage, SolanaSignatureData, StellarMessage, StellarSignatureData, TonConnectMessage, TonConnectSignatureData, TronMessage, TronSignatureData, WalletMessage, WalletSignatureResult, WebAuthnMessage, WebAuthnSignature, WebAuthnSignatureData };
|
|
6
|
+
}
|
|
7
|
+
type ERC191Message = {
|
|
8
|
+
message: string;
|
|
9
|
+
};
|
|
10
|
+
type ERC191SignatureData = {
|
|
11
|
+
type: "ERC191";
|
|
12
|
+
signatureData: string;
|
|
13
|
+
signedData: ERC191Message;
|
|
14
|
+
};
|
|
15
|
+
type NEP413Message = {
|
|
16
|
+
message: string;
|
|
17
|
+
recipient: string;
|
|
18
|
+
nonce: Uint8Array;
|
|
19
|
+
callbackUrl?: string;
|
|
20
|
+
};
|
|
21
|
+
type NEP413SignatureData = {
|
|
22
|
+
type: "NEP413";
|
|
23
|
+
signatureData: {
|
|
24
|
+
accountId: string;
|
|
25
|
+
/**
|
|
26
|
+
* Base58-encoded signature with curve prefix. Example:
|
|
27
|
+
* ed25519:Gxa24TGbJu4mqdhW3GbvLXmf4bSEyxVicrtpChDWbgga
|
|
28
|
+
*/
|
|
29
|
+
publicKey: string;
|
|
30
|
+
/** Base64-encoded signature */
|
|
31
|
+
signature: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The exact data that was signed. Wallet connectors may modify this during the signing process,
|
|
35
|
+
* so this property contains the actual data that was signed by the wallet.
|
|
36
|
+
*/
|
|
37
|
+
signedData: NEP413Message;
|
|
38
|
+
};
|
|
39
|
+
type SolanaMessage = {
|
|
40
|
+
message: Uint8Array;
|
|
41
|
+
};
|
|
42
|
+
type SolanaSignatureData = {
|
|
43
|
+
type: "SOLANA";
|
|
44
|
+
signatureData: Uint8Array;
|
|
45
|
+
signedData: SolanaMessage;
|
|
46
|
+
};
|
|
47
|
+
type StellarMessage = {
|
|
48
|
+
message: string;
|
|
49
|
+
};
|
|
50
|
+
type StellarSignatureData = {
|
|
51
|
+
type: "STELLAR_SEP53";
|
|
52
|
+
signatureData: Uint8Array;
|
|
53
|
+
signedData: StellarMessage;
|
|
54
|
+
};
|
|
55
|
+
type WebAuthnMessage = {
|
|
56
|
+
/** Hash that needs to be signed */
|
|
57
|
+
challenge: Uint8Array;
|
|
58
|
+
/** Underlying payload that will be executed onchain */
|
|
59
|
+
payload: string;
|
|
60
|
+
/** Parsed payload in case UI needs to display it */
|
|
61
|
+
parsedPayload: DefusePayloadFor_DefuseIntents;
|
|
62
|
+
};
|
|
63
|
+
/** Full response of WebAuthn Login */
|
|
64
|
+
type WebAuthnSignature = AuthenticatorAssertionResponse;
|
|
65
|
+
type WebAuthnSignatureData = {
|
|
66
|
+
type: "WEBAUTHN";
|
|
67
|
+
signatureData: WebAuthnSignature;
|
|
68
|
+
signedData: WebAuthnMessage;
|
|
69
|
+
};
|
|
70
|
+
type TonConnectMessage = {
|
|
71
|
+
message: {
|
|
72
|
+
type: "text";
|
|
73
|
+
text: string;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
type TonConnectSignatureData = {
|
|
77
|
+
type: "TON_CONNECT";
|
|
78
|
+
signatureData: {
|
|
79
|
+
signature: string;
|
|
80
|
+
address: string;
|
|
81
|
+
timestamp: number;
|
|
82
|
+
domain: string;
|
|
83
|
+
payload: TonConnectPayloadSchema;
|
|
84
|
+
};
|
|
85
|
+
signedData: TonConnectMessage;
|
|
86
|
+
};
|
|
87
|
+
type TronMessage = {
|
|
88
|
+
message: string;
|
|
89
|
+
};
|
|
90
|
+
type TronSignatureData = {
|
|
91
|
+
type: "TRON";
|
|
92
|
+
signatureData: string;
|
|
93
|
+
signedData: TronMessage;
|
|
94
|
+
};
|
|
95
|
+
type WalletMessage = {
|
|
96
|
+
ERC191: ERC191Message;
|
|
97
|
+
NEP413: NEP413Message;
|
|
98
|
+
SOLANA: SolanaMessage;
|
|
99
|
+
STELLAR: StellarMessage;
|
|
100
|
+
WEBAUTHN: WebAuthnMessage;
|
|
101
|
+
TON_CONNECT: TonConnectMessage;
|
|
102
|
+
TRON: TronMessage;
|
|
103
|
+
};
|
|
104
|
+
type WalletSignatureResult = ERC191SignatureData | NEP413SignatureData | SolanaSignatureData | StellarSignatureData | WebAuthnSignatureData | TonConnectSignatureData | TronSignatureData;
|
|
105
|
+
//#endregion
|
|
106
|
+
export { WalletMessage, WalletSignatureResult, walletMessage_d_exports };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/utils/abortSignal.ts
|
|
3
|
+
function mergeAbortSignals(signals) {
|
|
4
|
+
if (signals.length === 1) return signals[0];
|
|
5
|
+
const controller = new AbortController();
|
|
6
|
+
for (const signal of signals) if (signal.aborted) {
|
|
7
|
+
controller.abort(signal.reason);
|
|
8
|
+
break;
|
|
9
|
+
}
|
|
10
|
+
const abortHandler = (event) => {
|
|
11
|
+
const signal = event.target;
|
|
12
|
+
controller.abort(signal.reason);
|
|
13
|
+
};
|
|
14
|
+
for (const signal of signals) signal.addEventListener("abort", abortHandler, { once: true });
|
|
15
|
+
return controller.signal;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
exports.mergeAbortSignals = mergeAbortSignals;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/utils/abortSignal.ts
|
|
2
|
+
function mergeAbortSignals(signals) {
|
|
3
|
+
if (signals.length === 1) return signals[0];
|
|
4
|
+
const controller = new AbortController();
|
|
5
|
+
for (const signal of signals) if (signal.aborted) {
|
|
6
|
+
controller.abort(signal.reason);
|
|
7
|
+
break;
|
|
8
|
+
}
|
|
9
|
+
const abortHandler = (event) => {
|
|
10
|
+
const signal = event.target;
|
|
11
|
+
controller.abort(signal.reason);
|
|
12
|
+
};
|
|
13
|
+
for (const signal of signals) signal.addEventListener("abort", abortHandler, { once: true });
|
|
14
|
+
return controller.signal;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { mergeAbortSignals };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/utils/appFee.ts
|
|
4
|
+
var appFee_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({ computeAppFeeBps: () => computeAppFeeBps });
|
|
5
|
+
function computeAppFeeBps(defaultAppFeeBps, token1, token2) {
|
|
6
|
+
if (hasTags(token1) && hasTags(token2) && token1.tags.includes("type:stablecoin") && token2.tags.includes("type:stablecoin")) return 0;
|
|
7
|
+
return defaultAppFeeBps;
|
|
8
|
+
}
|
|
9
|
+
function hasTags(a) {
|
|
10
|
+
if ("tags" in a) return true;
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
Object.defineProperty(exports, 'appFee_exports', {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () {
|
|
18
|
+
return appFee_exports;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseTokenInfo, UnifiedTokenInfo } from "../types/base.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/appFee.d.ts
|
|
4
|
+
declare namespace appFee_d_exports {
|
|
5
|
+
export { computeAppFeeBps };
|
|
6
|
+
}
|
|
7
|
+
declare function computeAppFeeBps(defaultAppFeeBps: number, token1: BaseTokenInfo | UnifiedTokenInfo, token2: BaseTokenInfo | UnifiedTokenInfo): number;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { appFee_d_exports };
|