@atomiqlabs/sdk
Advanced tools
Comparing version
@@ -1,6 +0,7 @@ | ||
import { SolanaChainType, SolanaRetryPolicy, StoredDataAccount } from "crosslightning-solana"; | ||
import { SolanaChainType, SolanaFees, SolanaRetryPolicy, StoredDataAccount } from "crosslightning-solana"; | ||
import { IStorageManager } from "crosslightning-base"; | ||
import { Connection } from "@solana/web3.js"; | ||
import { SdkChain } from "../ChainInitializer"; | ||
type SolanaSwapperOptions = { | ||
rpcUrl: string; | ||
rpcUrl: string | Connection; | ||
dataAccountStorage?: IStorageManager<StoredDataAccount>; | ||
@@ -11,2 +12,3 @@ retryPolicy?: SolanaRetryPolicy; | ||
trustedIntermediary?: string; | ||
fees?: SolanaFees; | ||
}; | ||
@@ -13,0 +15,0 @@ declare const SolanaAssets: { |
@@ -10,7 +10,9 @@ "use strict"; | ||
function getSolanaCtorData(options, bitcoinRpc, network) { | ||
var _a, _b, _c, _d; | ||
const connection = new web3_js_1.Connection(options.chains.SOLANA.rpcUrl); | ||
const Fees = new crosslightning_solana_1.SolanaFees(connection, 200000, 2, 100); | ||
const btcRelay = new crosslightning_solana_1.SolanaBtcRelay(connection, bitcoinRpc, (_a = options.chains.SOLANA.btcRelayContract) !== null && _a !== void 0 ? _a : SolanaChains_1.SolanaChains[network].addresses.btcRelayContract, Fees); | ||
const swapContract = new crosslightning_solana_1.SolanaSwapProgram(connection, btcRelay, options.chains.SOLANA.dataAccountStorage || options.storageCtor("solAccounts"), (_b = options.chains.SOLANA.swapContract) !== null && _b !== void 0 ? _b : SolanaChains_1.SolanaChains[network].addresses.swapContract, (_c = options.chains.SOLANA.retryPolicy) !== null && _c !== void 0 ? _c : { transactionResendInterval: 1000 }, Fees); | ||
var _a, _b, _c, _d, _e; | ||
const connection = typeof (options.chains.SOLANA.rpcUrl) === "string" ? | ||
new web3_js_1.Connection(options.chains.SOLANA.rpcUrl) : | ||
options.chains.SOLANA.rpcUrl; | ||
const Fees = (_a = options.chains.SOLANA.fees) !== null && _a !== void 0 ? _a : new crosslightning_solana_1.SolanaFees(connection, 200000, 4, 100); | ||
const btcRelay = new crosslightning_solana_1.SolanaBtcRelay(connection, bitcoinRpc, (_b = options.chains.SOLANA.btcRelayContract) !== null && _b !== void 0 ? _b : SolanaChains_1.SolanaChains[network].addresses.btcRelayContract, Fees); | ||
const swapContract = new crosslightning_solana_1.SolanaSwapProgram(connection, btcRelay, options.chains.SOLANA.dataAccountStorage || options.storageCtor("solAccounts"), (_c = options.chains.SOLANA.swapContract) !== null && _c !== void 0 ? _c : SolanaChains_1.SolanaChains[network].addresses.swapContract, (_d = options.chains.SOLANA.retryPolicy) !== null && _d !== void 0 ? _d : { transactionResendInterval: 1000 }, Fees); | ||
const chainEvents = new SolanaChainEventsBrowser_1.SolanaChainEventsBrowser(connection, swapContract); | ||
@@ -22,3 +24,3 @@ return { | ||
swapDataConstructor: crosslightning_solana_1.SolanaSwapData, | ||
defaultTrustedIntermediaryUrl: (_d = options.chains.SOLANA.trustedIntermediary) !== null && _d !== void 0 ? _d : SolanaChains_1.SolanaChains[network].trustedSwapForGasUrl, | ||
defaultTrustedIntermediaryUrl: (_e = options.chains.SOLANA.trustedIntermediary) !== null && _e !== void 0 ? _e : SolanaChains_1.SolanaChains[network].trustedSwapForGasUrl, | ||
//These are defined here to keep the data from old SolLightning-sdk, not needed for other chains | ||
@@ -25,0 +27,0 @@ storage: { |
import { BtcToken, SCToken, Swapper, SwapperOptions } from "crosslightning-sdk-base"; | ||
import { SdkSolanaType } from "./chains/solana/SolanaChainInitializer"; | ||
import { SdkChain } from "./chains/ChainInitializer"; | ||
import * as BN from "bn.js"; | ||
import { IStorageManager, StorageObject } from "crosslightning-base"; | ||
@@ -20,2 +21,3 @@ type Chains = { | ||
storageCtor?: <T extends StorageObject>(name: string) => IStorageManager<T>; | ||
pricingFeeDifferencePPM?: BN; | ||
}; | ||
@@ -27,6 +29,3 @@ export declare class MultichainSwapper extends Swapper<SdkMultichain> { | ||
[C in keyof Chains]: { | ||
[T in keyof Chains[C]["Assets"]]: SCToken<Chains[C]["ChainType"]["ChainId"]> & { | ||
name: string; | ||
decimals: number; | ||
}; | ||
[T in keyof Chains[C]["Assets"]]: SCToken<C>; | ||
}; | ||
@@ -41,8 +40,5 @@ } & { | ||
[C in keyof Chains]: { | ||
getToken(address: string): { | ||
ticker: string; | ||
name: string; | ||
}; | ||
getToken(address: string): SCToken<C>; | ||
}; | ||
}; | ||
export {}; |
@@ -14,3 +14,3 @@ "use strict"; | ||
constructor(options) { | ||
var _a, _b, _c, _d; | ||
var _a, _b, _c, _d, _e; | ||
(_a = options.bitcoinNetwork) !== null && _a !== void 0 ? _a : (options.bitcoinNetwork = crosslightning_sdk_base_1.BitcoinNetwork.MAINNET); | ||
@@ -33,3 +33,5 @@ (_b = options.storagePrefix) !== null && _b !== void 0 ? _b : (options.storagePrefix = "atomiqsdk-" + options.bitcoinNetwork); | ||
} | ||
pricingAssets.push(Object.assign(Object.assign({}, SmartChainAssets_1.SmartChainAssets[ticker].pricing), { chains })); | ||
const assetData = SmartChainAssets_1.SmartChainAssets[ticker]; | ||
pricingAssets.push(Object.assign(Object.assign({}, assetData.pricing), { chains, | ||
ticker, name: assetData.name })); | ||
}); | ||
@@ -39,3 +41,3 @@ const ctorChainData = (0, Utils_1.objectMap)(Chains, (value, key) => { | ||
}); | ||
super(bitcoinRpc, ctorChainData, crosslightning_sdk_base_1.RedundantSwapPrice.createFromTokenMap(new BN(10000), pricingAssets), options); | ||
super(bitcoinRpc, ctorChainData, crosslightning_sdk_base_1.RedundantSwapPrice.createFromTokenMap((_e = options.pricingFeeDifferencePPM) !== null && _e !== void 0 ? _e : new BN(10000), pricingAssets), pricingAssets, options); | ||
} | ||
@@ -51,19 +53,14 @@ } | ||
name: SmartChainAssets_1.SmartChainAssets[ticker].name, | ||
decimals: assetData.decimals | ||
decimals: assetData.decimals, | ||
ticker | ||
}; | ||
}); | ||
})), { BITCOIN: { | ||
BTC: { | ||
chain: "BTC", | ||
lightning: false | ||
}, | ||
BTCLN: { | ||
chain: "BTC", | ||
lightning: true | ||
} | ||
} }); | ||
exports.TokenResolver = (0, Utils_1.objectMap)(Chains, (value, key) => { | ||
})), { BITCOIN: crosslightning_sdk_base_1.BitcoinTokens }); | ||
exports.TokenResolver = Object.assign({}, (0, Utils_1.objectMap)(Chains, (value, key) => { | ||
const addressMap = {}; | ||
for (let ticker in value.assets) { | ||
addressMap[value.assets[ticker].address] = { | ||
chain: "SC", | ||
chainId: value.chainIdentifier, | ||
address: value.assets[ticker].address, | ||
ticker, | ||
@@ -77,2 +74,2 @@ name: SmartChainAssets_1.SmartChainAssets[ticker].name, | ||
}; | ||
}); | ||
})); |
{ | ||
"name": "@atomiqlabs/sdk", | ||
"version": "1.0.0-beta4", | ||
"version": "1.0.0-beta40", | ||
"description": "atomiq labs SDK for cross-chain swaps between smart chains and bitcoin", | ||
@@ -25,3 +25,3 @@ "main": "./dist/index.js", | ||
"crosslightning-base": "7.0.0-beta1", | ||
"crosslightning-sdk-base": "10.0.5-beta8", | ||
"crosslightning-sdk-base": "10.0.5-beta43", | ||
"crosslightning-solana": "7.0.0-beta4" | ||
@@ -28,0 +28,0 @@ }, |
@@ -22,3 +22,3 @@ import { | ||
type SolanaSwapperOptions = { | ||
rpcUrl: string, | ||
rpcUrl: string | Connection, | ||
dataAccountStorage?: IStorageManager<StoredDataAccount>, | ||
@@ -30,9 +30,13 @@ retryPolicy?: SolanaRetryPolicy, | ||
trustedIntermediary?: string | ||
trustedIntermediary?: string, | ||
fees?: SolanaFees | ||
}; | ||
function getSolanaCtorData(options: MultichainSwapperOptions, bitcoinRpc: BitcoinRpc<any>, network: BitcoinNetwork): CtorChainData<SolanaChainType> { | ||
const connection = new Connection(options.chains.SOLANA.rpcUrl); | ||
const connection = typeof(options.chains.SOLANA.rpcUrl)==="string" ? | ||
new Connection(options.chains.SOLANA.rpcUrl) : | ||
options.chains.SOLANA.rpcUrl; | ||
const Fees = new SolanaFees(connection, 200000, 2, 100); | ||
const Fees = options.chains.SOLANA.fees ?? new SolanaFees(connection, 200000, 4, 100); | ||
const btcRelay = new SolanaBtcRelay(connection, bitcoinRpc, options.chains.SOLANA.btcRelayContract ?? SolanaChains[network].addresses.btcRelayContract, Fees); | ||
@@ -39,0 +43,0 @@ const swapContract = new SolanaSwapProgram( |
import { | ||
BitcoinNetwork, | ||
BtcToken, IndexedDBStorageManager, | ||
BitcoinNetwork, BitcoinTokens, | ||
BtcToken, IndexedDBStorageManager, isToken, | ||
MempoolApi, | ||
@@ -10,3 +10,3 @@ MempoolBitcoinRpc, | ||
Swapper, | ||
SwapperOptions | ||
SwapperOptions, Token | ||
} from "crosslightning-sdk-base"; | ||
@@ -37,3 +37,4 @@ import {objectMap} from "crosslightning-sdk-base/dist/utils/Utils"; | ||
} & { | ||
storageCtor?: <T extends StorageObject>(name: string) => IStorageManager<T> | ||
storageCtor?: <T extends StorageObject>(name: string) => IStorageManager<T>, | ||
pricingFeeDifferencePPM?: BN | ||
}; | ||
@@ -59,3 +60,3 @@ | ||
const pricingAssets: RedundantSwapPriceAssets<SdkMultichain> = []; | ||
const pricingAssets: (RedundantSwapPriceAssets<SdkMultichain>[number] & {ticker: string, name: string})[] = []; | ||
Object.keys(SmartChainAssets).forEach((ticker) => { | ||
@@ -66,5 +67,8 @@ const chains: any = {}; | ||
} | ||
const assetData = SmartChainAssets[ticker]; | ||
pricingAssets.push({ | ||
...SmartChainAssets[ticker].pricing, | ||
chains | ||
...assetData.pricing, | ||
chains, | ||
ticker, | ||
name: assetData.name | ||
}) | ||
@@ -77,3 +81,9 @@ }); | ||
super(bitcoinRpc, ctorChainData, RedundantSwapPrice.createFromTokenMap<SdkMultichain>(new BN(10000), pricingAssets), options); | ||
super( | ||
bitcoinRpc, | ||
ctorChainData, | ||
RedundantSwapPrice.createFromTokenMap<SdkMultichain>(options.pricingFeeDifferencePPM ?? new BN(10000), pricingAssets), | ||
pricingAssets, | ||
options | ||
); | ||
} | ||
@@ -85,3 +95,3 @@ | ||
[C in keyof Chains]: { | ||
[T in keyof Chains[C]["Assets"]]: SCToken<Chains[C]["ChainType"]["ChainId"]> & {name: string, decimals: number} | ||
[T in keyof Chains[C]["Assets"]]: SCToken<C> | ||
} | ||
@@ -101,16 +111,8 @@ } & { | ||
name: SmartChainAssets[ticker].name, | ||
decimals: assetData.decimals | ||
decimals: assetData.decimals, | ||
ticker | ||
} | ||
}); | ||
}), | ||
BITCOIN: { | ||
BTC: { | ||
chain: "BTC", | ||
lightning: false | ||
}, | ||
BTCLN: { | ||
chain: "BTC", | ||
lightning: true | ||
} | ||
} | ||
BITCOIN: BitcoinTokens | ||
}; | ||
@@ -120,16 +122,21 @@ | ||
[C in keyof Chains]: { | ||
getToken(address: string): {ticker: string, name: string} | ||
getToken(address: string): SCToken<C> | ||
} | ||
} = objectMap(Chains, (value, key) => { | ||
const addressMap: {[tokenAddress: string]: {ticker: string, name: string, decimals: number}} = {}; | ||
for(let ticker in value.assets) { | ||
addressMap[value.assets[ticker].address] = { | ||
ticker, | ||
name: SmartChainAssets[ticker].name, | ||
decimals: value.assets[ticker].decimals | ||
} = { | ||
...objectMap(Chains, (value, key) => { | ||
const addressMap: {[tokenAddress: string]: SCToken} = {}; | ||
for(let ticker in value.assets) { | ||
addressMap[value.assets[ticker].address] = { | ||
chain: "SC", | ||
chainId: value.chainIdentifier, | ||
address: value.assets[ticker].address, | ||
ticker, | ||
name: SmartChainAssets[ticker].name, | ||
decimals: value.assets[ticker].decimals | ||
} | ||
} | ||
} | ||
return { | ||
getToken: (address: string) => addressMap[address] | ||
}; | ||
}); | ||
return { | ||
getToken: (address: string) => addressMap[address] | ||
}; | ||
}) | ||
}; |
29097
3%715
0.99%+ Added
- Removed