@sip-protocol/sdk 0.7.2 → 0.7.4
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/README.md +267 -0
- package/dist/{TransportWebUSB-TQ7WZ4LE.mjs → TransportWebUSB-YQMAGJAJ.mjs} +12 -9
- package/dist/browser.d.mts +10 -4
- package/dist/browser.d.ts +10 -4
- package/dist/browser.js +48874 -18336
- package/dist/browser.mjs +674 -48
- package/dist/chunk-4GRJ5MAW.mjs +152 -0
- package/dist/chunk-5D7A3L3W.mjs +717 -0
- package/dist/chunk-64AYA5F5.mjs +7834 -0
- package/dist/chunk-GMDGB22A.mjs +379 -0
- package/dist/chunk-I534WKN7.mjs +328 -0
- package/dist/chunk-IBZVA5Y7.mjs +1003 -0
- package/dist/chunk-PRRZAWJE.mjs +223 -0
- package/dist/{chunk-UJCSKKID.mjs → chunk-XGB3TDIC.mjs} +13 -1
- package/dist/chunk-YWGJ77A2.mjs +33806 -0
- package/dist/{chunk-6WGN57S2.mjs → chunk-Z3K7W5S3.mjs} +48 -0
- package/dist/constants-LHAAUC2T.mjs +51 -0
- package/dist/dist-2OGQ7FED.mjs +3957 -0
- package/dist/dist-IFHPYLDX.mjs +254 -0
- package/dist/fulfillment_proof-ANHVPKTB.mjs +21 -0
- package/dist/funding_proof-ICFZ5LHY.mjs +21 -0
- package/dist/index-DXh2IGkz.d.ts +24681 -0
- package/dist/index-DeE1ZzA4.d.mts +24681 -0
- package/dist/index.d.mts +9 -3
- package/dist/index.d.ts +9 -3
- package/dist/index.js +48676 -17318
- package/dist/index.mjs +583 -19
- package/dist/interface-Bf7w1PLW.d.mts +679 -0
- package/dist/interface-Bf7w1PLW.d.ts +679 -0
- package/dist/{noir-DKfEzWy9.d.mts → noir-kzbLVTei.d.mts} +31 -21
- package/dist/{noir-DKfEzWy9.d.ts → noir-kzbLVTei.d.ts} +31 -21
- package/dist/proofs/halo2.d.mts +151 -0
- package/dist/proofs/halo2.d.ts +151 -0
- package/dist/proofs/halo2.js +350 -0
- package/dist/proofs/halo2.mjs +11 -0
- package/dist/proofs/kimchi.d.mts +160 -0
- package/dist/proofs/kimchi.d.ts +160 -0
- package/dist/proofs/kimchi.js +431 -0
- package/dist/proofs/kimchi.mjs +13 -0
- package/dist/proofs/noir.d.mts +1 -1
- package/dist/proofs/noir.d.ts +1 -1
- package/dist/proofs/noir.js +74 -18
- package/dist/proofs/noir.mjs +84 -24
- package/dist/solana-U3MEGU7W.mjs +280 -0
- package/dist/validity_proof-3POXLPNY.mjs +21 -0
- package/package.json +54 -21
- package/src/adapters/index.ts +41 -0
- package/src/adapters/jupiter.ts +571 -0
- package/src/adapters/near-intents.ts +135 -0
- package/src/advisor/advisor.ts +653 -0
- package/src/advisor/index.ts +54 -0
- package/src/advisor/tools.ts +303 -0
- package/src/advisor/types.ts +164 -0
- package/src/chains/ethereum/announcement.ts +536 -0
- package/src/chains/ethereum/bnb-optimizations.ts +474 -0
- package/src/chains/ethereum/commitment.ts +522 -0
- package/src/chains/ethereum/constants.ts +462 -0
- package/src/chains/ethereum/deployment.ts +596 -0
- package/src/chains/ethereum/gas-estimation.ts +538 -0
- package/src/chains/ethereum/index.ts +268 -0
- package/src/chains/ethereum/optimizations.ts +614 -0
- package/src/chains/ethereum/privacy-adapter.ts +855 -0
- package/src/chains/ethereum/registry.ts +584 -0
- package/src/chains/ethereum/rpc.ts +905 -0
- package/src/chains/ethereum/stealth.ts +491 -0
- package/src/chains/ethereum/token.ts +790 -0
- package/src/chains/ethereum/transfer.ts +637 -0
- package/src/chains/ethereum/types.ts +456 -0
- package/src/chains/ethereum/viewing-key.ts +455 -0
- package/src/chains/near/commitment.ts +608 -0
- package/src/chains/near/constants.ts +284 -0
- package/src/chains/near/function-call.ts +871 -0
- package/src/chains/near/history.ts +654 -0
- package/src/chains/near/implicit-account.ts +840 -0
- package/src/chains/near/index.ts +393 -0
- package/src/chains/near/native-transfer.ts +658 -0
- package/src/chains/near/nep141.ts +775 -0
- package/src/chains/near/privacy-adapter.ts +889 -0
- package/src/chains/near/resolver.ts +971 -0
- package/src/chains/near/rpc.ts +1016 -0
- package/src/chains/near/stealth.ts +419 -0
- package/src/chains/near/types.ts +317 -0
- package/src/chains/near/viewing-key.ts +876 -0
- package/src/chains/solana/anchor-transfer.ts +386 -0
- package/src/chains/solana/commitment.ts +577 -0
- package/src/chains/solana/constants.ts +126 -12
- package/src/chains/solana/ephemeral-keys.ts +543 -0
- package/src/chains/solana/index.ts +276 -1
- package/src/chains/solana/key-derivation.ts +418 -0
- package/src/chains/solana/kit-compat.ts +334 -0
- package/src/chains/solana/optimizations.ts +560 -0
- package/src/chains/solana/privacy-adapter.ts +605 -0
- package/src/chains/solana/providers/generic.ts +201 -0
- package/src/chains/solana/providers/helius-enhanced-types.ts +336 -0
- package/src/chains/solana/providers/helius-enhanced.ts +623 -0
- package/src/chains/solana/providers/helius.ts +402 -0
- package/src/chains/solana/providers/index.ts +85 -0
- package/src/chains/solana/providers/interface.ts +221 -0
- package/src/chains/solana/providers/quicknode.ts +409 -0
- package/src/chains/solana/providers/triton.ts +426 -0
- package/src/chains/solana/providers/webhook.ts +790 -0
- package/src/chains/solana/rpc-client.ts +1150 -0
- package/src/chains/solana/scan.ts +170 -73
- package/src/chains/solana/sol-transfer.ts +732 -0
- package/src/chains/solana/spl-transfer.ts +886 -0
- package/src/chains/solana/stealth-scanner.ts +703 -0
- package/src/chains/solana/sunspot-verifier.ts +453 -0
- package/src/chains/solana/transaction-builder.ts +755 -0
- package/src/chains/solana/transfer.ts +74 -5
- package/src/chains/solana/types.ts +77 -7
- package/src/chains/solana/utils.ts +110 -0
- package/src/chains/solana/viewing-key.ts +807 -0
- package/src/compliance/fireblocks.ts +921 -0
- package/src/compliance/index.ts +37 -0
- package/src/compliance/range-sas.ts +956 -0
- package/src/config/endpoints.ts +100 -0
- package/src/crypto.ts +11 -8
- package/src/errors.ts +82 -0
- package/src/evm/erc4337-relayer.ts +830 -0
- package/src/evm/index.ts +47 -0
- package/src/fees/calculator.ts +396 -0
- package/src/fees/index.ts +87 -0
- package/src/fees/near-contract.ts +429 -0
- package/src/fees/types.ts +268 -0
- package/src/index.ts +785 -1
- package/src/intent.ts +6 -3
- package/src/logger.ts +324 -0
- package/src/network/index.ts +80 -0
- package/src/network/proxy.ts +691 -0
- package/src/optimizations/index.ts +541 -0
- package/src/oracle/types.ts +1 -0
- package/src/privacy-backends/arcium-types.ts +727 -0
- package/src/privacy-backends/arcium.ts +719 -0
- package/src/privacy-backends/combined-privacy.ts +866 -0
- package/src/privacy-backends/cspl-token.ts +595 -0
- package/src/privacy-backends/cspl-types.ts +512 -0
- package/src/privacy-backends/cspl.ts +907 -0
- package/src/privacy-backends/health.ts +488 -0
- package/src/privacy-backends/inco-types.ts +323 -0
- package/src/privacy-backends/inco.ts +616 -0
- package/src/privacy-backends/index.ts +336 -0
- package/src/privacy-backends/interface.ts +906 -0
- package/src/privacy-backends/lru-cache.ts +343 -0
- package/src/privacy-backends/magicblock.ts +458 -0
- package/src/privacy-backends/mock.ts +258 -0
- package/src/privacy-backends/privacycash-types.ts +278 -0
- package/src/privacy-backends/privacycash.ts +456 -0
- package/src/privacy-backends/private-swap.ts +570 -0
- package/src/privacy-backends/rate-limiter.ts +683 -0
- package/src/privacy-backends/registry.ts +690 -0
- package/src/privacy-backends/router.ts +626 -0
- package/src/privacy-backends/shadowwire.ts +449 -0
- package/src/privacy-backends/sip-native.ts +256 -0
- package/src/privacy-logger.ts +191 -0
- package/src/production-safety.ts +373 -0
- package/src/proofs/aggregator.ts +1029 -0
- package/src/proofs/browser-composer.ts +1150 -0
- package/src/proofs/browser.ts +113 -25
- package/src/proofs/cache/index.ts +127 -0
- package/src/proofs/cache/interface.ts +545 -0
- package/src/proofs/cache/key-generator.ts +188 -0
- package/src/proofs/cache/lru-cache.ts +481 -0
- package/src/proofs/cache/multi-tier-cache.ts +575 -0
- package/src/proofs/cache/persistent-cache.ts +788 -0
- package/src/proofs/compliance-proof.ts +872 -0
- package/src/proofs/composer/base.ts +923 -0
- package/src/proofs/composer/index.ts +25 -0
- package/src/proofs/composer/interface.ts +518 -0
- package/src/proofs/composer/types.ts +383 -0
- package/src/proofs/converters/halo2.ts +452 -0
- package/src/proofs/converters/index.ts +208 -0
- package/src/proofs/converters/interface.ts +363 -0
- package/src/proofs/converters/kimchi.ts +462 -0
- package/src/proofs/converters/noir.ts +451 -0
- package/src/proofs/fallback.ts +888 -0
- package/src/proofs/halo2.ts +42 -0
- package/src/proofs/index.ts +471 -0
- package/src/proofs/interface.ts +13 -0
- package/src/proofs/kimchi.ts +42 -0
- package/src/proofs/lazy.ts +1004 -0
- package/src/proofs/mock.ts +25 -1
- package/src/proofs/noir.ts +111 -30
- package/src/proofs/orchestrator.ts +960 -0
- package/src/proofs/parallel/concurrency.ts +297 -0
- package/src/proofs/parallel/dependency-graph.ts +602 -0
- package/src/proofs/parallel/executor.ts +420 -0
- package/src/proofs/parallel/index.ts +131 -0
- package/src/proofs/parallel/interface.ts +685 -0
- package/src/proofs/parallel/worker-pool.ts +644 -0
- package/src/proofs/providers/halo2.ts +560 -0
- package/src/proofs/providers/index.ts +34 -0
- package/src/proofs/providers/kimchi.ts +641 -0
- package/src/proofs/validator.ts +881 -0
- package/src/proofs/verifier.ts +867 -0
- package/src/quantum/index.ts +112 -0
- package/src/quantum/winternitz-vault.ts +639 -0
- package/src/quantum/wots.ts +611 -0
- package/src/settlement/backends/direct-chain.ts +1 -0
- package/src/settlement/index.ts +9 -0
- package/src/settlement/router.ts +732 -46
- package/src/solana/index.ts +72 -0
- package/src/solana/jito-relayer.ts +687 -0
- package/src/solana/noir-verifier-types.ts +430 -0
- package/src/solana/noir-verifier.ts +816 -0
- package/src/stealth/address-derivation.ts +193 -0
- package/src/stealth/ed25519.ts +431 -0
- package/src/stealth/index.ts +233 -0
- package/src/stealth/meta-address.ts +221 -0
- package/src/stealth/secp256k1.ts +368 -0
- package/src/stealth/utils.ts +194 -0
- package/src/stealth.ts +50 -1504
- package/src/surveillance/algorithms/address-reuse.ts +143 -0
- package/src/surveillance/algorithms/cluster.ts +247 -0
- package/src/surveillance/algorithms/exchange.ts +295 -0
- package/src/surveillance/algorithms/temporal.ts +337 -0
- package/src/surveillance/analyzer.ts +442 -0
- package/src/surveillance/index.ts +64 -0
- package/src/surveillance/scoring.ts +372 -0
- package/src/surveillance/types.ts +264 -0
- package/src/sync/index.ts +106 -0
- package/src/sync/manager.ts +504 -0
- package/src/sync/mock-provider.ts +318 -0
- package/src/sync/oblivious.ts +625 -0
- package/src/tokens/index.ts +15 -0
- package/src/tokens/registry.ts +301 -0
- package/src/utils/deprecation.ts +94 -0
- package/src/utils/index.ts +9 -0
- package/src/wallet/ethereum/index.ts +68 -0
- package/src/wallet/ethereum/metamask-privacy.ts +420 -0
- package/src/wallet/ethereum/multi-wallet.ts +646 -0
- package/src/wallet/ethereum/privacy-adapter.ts +700 -0
- package/src/wallet/ethereum/types.ts +3 -1
- package/src/wallet/ethereum/walletconnect-adapter.ts +675 -0
- package/src/wallet/hardware/index.ts +10 -0
- package/src/wallet/hardware/ledger-privacy.ts +414 -0
- package/src/wallet/index.ts +71 -0
- package/src/wallet/near/adapter.ts +626 -0
- package/src/wallet/near/index.ts +86 -0
- package/src/wallet/near/meteor-wallet.ts +1153 -0
- package/src/wallet/near/my-near-wallet.ts +790 -0
- package/src/wallet/near/wallet-selector.ts +702 -0
- package/src/wallet/solana/adapter.ts +6 -4
- package/src/wallet/solana/index.ts +13 -0
- package/src/wallet/solana/privacy-adapter.ts +567 -0
- package/src/wallet/sui/types.ts +6 -4
- package/src/zcash/rpc-client.ts +13 -6
- package/dist/chunk-3INS3PR5.mjs +0 -884
- package/dist/chunk-3OVABDRH.mjs +0 -17096
- package/dist/chunk-DLDWZFYC.mjs +0 -1495
- package/dist/chunk-E6SZWREQ.mjs +0 -57
- package/dist/chunk-G33LB27A.mjs +0 -16166
- package/dist/chunk-HGU6HZRC.mjs +0 -231
- package/dist/chunk-L2K34JCU.mjs +0 -1496
- package/dist/chunk-SN4ZDTVW.mjs +0 -16166
- package/dist/constants-VOI7BSLK.mjs +0 -27
- package/dist/index-BYZbDjal.d.ts +0 -11390
- package/dist/index-CHB3KuOB.d.mts +0 -11859
- package/dist/index-CzWPI6Le.d.ts +0 -11859
- package/dist/index-xbWjohNq.d.mts +0 -11390
- package/dist/solana-5EMCTPTS.mjs +0 -46
- package/dist/solana-Q4NAVBTS.mjs +0 -46
|
@@ -43,6 +43,7 @@ import { ed25519PublicKeyToAptosAddress } from '../move/aptos'
|
|
|
43
43
|
import { ed25519PublicKeyToSuiAddress } from '../move/sui'
|
|
44
44
|
import { ValidationError } from '../errors'
|
|
45
45
|
import { isAddressValidForChain, getChainAddressType } from '../validation'
|
|
46
|
+
import { FeeCalculator, DEFAULT_CHAIN_FEES } from '../fees/calculator'
|
|
46
47
|
|
|
47
48
|
/**
|
|
48
49
|
* Swap request parameters (simplified interface for adapter)
|
|
@@ -82,6 +83,8 @@ export interface PreparedSwap {
|
|
|
82
83
|
curve?: StealthCurve
|
|
83
84
|
/** Native recipient address (converted from stealth public key) */
|
|
84
85
|
nativeRecipientAddress?: string
|
|
86
|
+
/** Estimated fee disclosure */
|
|
87
|
+
estimatedFees?: SwapFeeDisclosure
|
|
85
88
|
}
|
|
86
89
|
|
|
87
90
|
/**
|
|
@@ -108,6 +111,26 @@ export interface SwapResult {
|
|
|
108
111
|
stealthRecipient?: string
|
|
109
112
|
/** Ephemeral public key (for recipient to derive stealth key) */
|
|
110
113
|
ephemeralPublicKey?: string
|
|
114
|
+
/** Fee disclosure (if fees enabled) */
|
|
115
|
+
fees?: SwapFeeDisclosure
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Fee disclosure in swap results
|
|
120
|
+
*/
|
|
121
|
+
export interface SwapFeeDisclosure {
|
|
122
|
+
/** Protocol fee amount in source token */
|
|
123
|
+
protocolFee: bigint
|
|
124
|
+
/** Protocol fee in USD */
|
|
125
|
+
protocolFeeUsd: number
|
|
126
|
+
/** Fee rate in basis points */
|
|
127
|
+
feeBps: number
|
|
128
|
+
/** Fee tier (if tiered pricing) */
|
|
129
|
+
tierName?: string
|
|
130
|
+
/** Discount applied (if viewing key disclosed) */
|
|
131
|
+
discountBps: number
|
|
132
|
+
/** Treasury account receiving fee */
|
|
133
|
+
treasuryAccount: string
|
|
111
134
|
}
|
|
112
135
|
|
|
113
136
|
/**
|
|
@@ -126,6 +149,17 @@ export interface NEARIntentsAdapterConfig {
|
|
|
126
149
|
defaultDeadlineOffset?: number
|
|
127
150
|
/** Custom asset mappings (merged with defaults) */
|
|
128
151
|
assetMappings?: Record<string, DefuseAssetId>
|
|
152
|
+
/** Enable fee collection (default: true) */
|
|
153
|
+
enableFees?: boolean
|
|
154
|
+
/** Custom fee configuration */
|
|
155
|
+
feeConfig?: {
|
|
156
|
+
/** Override base fee in basis points */
|
|
157
|
+
baseBps?: number
|
|
158
|
+
/** Disable viewing key discount */
|
|
159
|
+
disableViewingKeyDiscount?: boolean
|
|
160
|
+
/** Custom treasury account */
|
|
161
|
+
treasuryAccount?: string
|
|
162
|
+
}
|
|
129
163
|
}
|
|
130
164
|
|
|
131
165
|
/**
|
|
@@ -210,6 +244,7 @@ const CHAIN_BLOCKCHAIN_MAP: Record<ChainId, string> = {
|
|
|
210
244
|
celestia: 'cosmos',
|
|
211
245
|
sei: 'cosmos',
|
|
212
246
|
dydx: 'cosmos',
|
|
247
|
+
bsc: 'evm',
|
|
213
248
|
}
|
|
214
249
|
|
|
215
250
|
/**
|
|
@@ -246,6 +281,9 @@ export class NEARIntentsAdapter {
|
|
|
246
281
|
private readonly defaultSlippage: number
|
|
247
282
|
private readonly defaultDeadlineOffset: number
|
|
248
283
|
private readonly assetMappings: Record<string, DefuseAssetId>
|
|
284
|
+
private readonly feesEnabled: boolean
|
|
285
|
+
private readonly feeCalculator: FeeCalculator
|
|
286
|
+
private readonly treasuryAccount: string
|
|
249
287
|
|
|
250
288
|
constructor(config: NEARIntentsAdapterConfig = {}) {
|
|
251
289
|
this.client = config.client ?? new OneClickClient({
|
|
@@ -258,6 +296,25 @@ export class NEARIntentsAdapter {
|
|
|
258
296
|
...DEFAULT_ASSET_MAPPINGS,
|
|
259
297
|
...config.assetMappings,
|
|
260
298
|
}
|
|
299
|
+
|
|
300
|
+
// Fee configuration
|
|
301
|
+
this.feesEnabled = config.enableFees ?? true
|
|
302
|
+
this.treasuryAccount = config.feeConfig?.treasuryAccount ?? 'treasury.sip-protocol.near'
|
|
303
|
+
|
|
304
|
+
// Initialize fee calculator with custom config if provided
|
|
305
|
+
const chainConfigs = config.feeConfig?.baseBps
|
|
306
|
+
? {
|
|
307
|
+
near: {
|
|
308
|
+
...DEFAULT_CHAIN_FEES.near,
|
|
309
|
+
baseBps: config.feeConfig.baseBps,
|
|
310
|
+
viewingKeyDiscountBps: config.feeConfig.disableViewingKeyDiscount
|
|
311
|
+
? 0
|
|
312
|
+
: DEFAULT_CHAIN_FEES.near.viewingKeyDiscountBps,
|
|
313
|
+
},
|
|
314
|
+
}
|
|
315
|
+
: undefined
|
|
316
|
+
|
|
317
|
+
this.feeCalculator = new FeeCalculator({ chainConfigs })
|
|
261
318
|
}
|
|
262
319
|
|
|
263
320
|
/**
|
|
@@ -503,6 +560,30 @@ export class NEARIntentsAdapter {
|
|
|
503
560
|
// Build quote request
|
|
504
561
|
const quoteRequest = this.buildQuoteRequest(request, recipientAddress, refundAddress)
|
|
505
562
|
|
|
563
|
+
// Calculate estimated fees
|
|
564
|
+
let estimatedFees: SwapFeeDisclosure | undefined
|
|
565
|
+
if (this.feesEnabled) {
|
|
566
|
+
// Estimate USD value (simplified - would use price oracle in production)
|
|
567
|
+
const amountUsd = Number(request.inputAmount) / 1e18 * 1 // Assume $1 per token for estimation
|
|
568
|
+
const isPrivate = request.privacyLevel !== PrivacyLevel.TRANSPARENT
|
|
569
|
+
const feeResult = this.feeCalculator.calculate({
|
|
570
|
+
amount: request.inputAmount,
|
|
571
|
+
amountUsd,
|
|
572
|
+
sourceChain: request.inputAsset.chain,
|
|
573
|
+
destinationChain: request.outputAsset.chain,
|
|
574
|
+
viewingKeyDisclosed: isPrivate, // Privacy modes get discount
|
|
575
|
+
})
|
|
576
|
+
|
|
577
|
+
estimatedFees = {
|
|
578
|
+
protocolFee: feeResult.protocolFee,
|
|
579
|
+
protocolFeeUsd: feeResult.protocolFeeUsd,
|
|
580
|
+
feeBps: feeResult.appliedBps,
|
|
581
|
+
tierName: feeResult.tierName,
|
|
582
|
+
discountBps: feeResult.discountBps,
|
|
583
|
+
treasuryAccount: this.treasuryAccount,
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
|
|
506
587
|
return {
|
|
507
588
|
request,
|
|
508
589
|
quoteRequest,
|
|
@@ -510,6 +591,7 @@ export class NEARIntentsAdapter {
|
|
|
510
591
|
sharedSecret,
|
|
511
592
|
curve,
|
|
512
593
|
nativeRecipientAddress,
|
|
594
|
+
estimatedFees,
|
|
513
595
|
}
|
|
514
596
|
}
|
|
515
597
|
|
|
@@ -613,9 +695,62 @@ export class NEARIntentsAdapter {
|
|
|
613
695
|
status: OneClickSwapStatus.PENDING_DEPOSIT,
|
|
614
696
|
stealthRecipient: prepared.stealthAddress?.address,
|
|
615
697
|
ephemeralPublicKey: prepared.stealthAddress?.ephemeralPublicKey,
|
|
698
|
+
fees: prepared.estimatedFees,
|
|
616
699
|
}
|
|
617
700
|
}
|
|
618
701
|
|
|
702
|
+
// ─── Fee Estimation ──────────────────────────────────────────────────────────
|
|
703
|
+
|
|
704
|
+
/**
|
|
705
|
+
* Estimate fees for a swap (for UI display)
|
|
706
|
+
*
|
|
707
|
+
* @param amountUsd - Swap amount in USD
|
|
708
|
+
* @param sourceChain - Source chain
|
|
709
|
+
* @param isPrivate - Whether privacy mode is enabled
|
|
710
|
+
* @returns Fee estimate
|
|
711
|
+
*/
|
|
712
|
+
estimateFees(
|
|
713
|
+
amountUsd: number,
|
|
714
|
+
sourceChain: ChainId = 'near',
|
|
715
|
+
isPrivate = true
|
|
716
|
+
): SwapFeeDisclosure | null {
|
|
717
|
+
if (!this.feesEnabled) {
|
|
718
|
+
return null
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
const amount = BigInt(Math.floor(amountUsd * 1e18))
|
|
722
|
+
const feeResult = this.feeCalculator.calculate({
|
|
723
|
+
amount,
|
|
724
|
+
amountUsd,
|
|
725
|
+
sourceChain,
|
|
726
|
+
destinationChain: sourceChain,
|
|
727
|
+
viewingKeyDisclosed: isPrivate,
|
|
728
|
+
})
|
|
729
|
+
|
|
730
|
+
return {
|
|
731
|
+
protocolFee: feeResult.protocolFee,
|
|
732
|
+
protocolFeeUsd: feeResult.protocolFeeUsd,
|
|
733
|
+
feeBps: feeResult.appliedBps,
|
|
734
|
+
tierName: feeResult.tierName,
|
|
735
|
+
discountBps: feeResult.discountBps,
|
|
736
|
+
treasuryAccount: this.treasuryAccount,
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
/**
|
|
741
|
+
* Check if fees are enabled
|
|
742
|
+
*/
|
|
743
|
+
areFeesEnabled(): boolean {
|
|
744
|
+
return this.feesEnabled
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
/**
|
|
748
|
+
* Get the fee calculator instance
|
|
749
|
+
*/
|
|
750
|
+
getFeeCalculator(): FeeCalculator {
|
|
751
|
+
return this.feeCalculator
|
|
752
|
+
}
|
|
753
|
+
|
|
619
754
|
// ─── Asset Mapping ────────────────────────────────────────────────────────────
|
|
620
755
|
|
|
621
756
|
/**
|