@atomiqlabs/sdk 5.0.0-dev.0 → 5.0.0-dev.2

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 CHANGED
@@ -27,7 +27,7 @@ npm install @atomiqlabs/chain-evm@dev
27
27
  - Swaps:
28
28
  - [Smart Chain -> BTC L1](#swap-smart-chain---bitcoin-on-chain)
29
29
  - [BTC L1 -> Solana (Old swap protocol)](#swap-bitcoin-on-chain---solana)
30
- - [BTC L1 -> Starknet/EVM (New swap protocol)](#swap-bitcoin-on-chain---starknet-evm)
30
+ - [BTC L1 -> Starknet/EVM (New swap protocol)](#swap-bitcoin-on-chain---starknetevm)
31
31
  - [Smart Chain -> BTC Lightning network L2](#swap-smart-chain---bitcoin-lightning-network)
32
32
  - [Smart Chain -> BTC Lightning network L2 (LNURL-pay)](#swap-smart-chain---bitcoin-lightning-network-1)
33
33
  - [BTC Lightning network L2 -> Smart Chain](#swap-bitcoin-lightning-network---smart-chain)
@@ -1,4 +1,4 @@
1
- import { ChainData, BitcoinNetwork, BitcoinRpc, BaseTokenType, ChainType, StorageObject, IStorageManager } from "@atomiqlabs/base";
1
+ import { ChainData, BitcoinNetwork, BitcoinRpc, BaseTokenType, ChainType, StorageObject, IStorageManager, Messenger } from "@atomiqlabs/base";
2
2
  import { BtcToken, CustomPriceFunction, MempoolApi, MempoolBitcoinRpc, SCToken, Swapper, SwapperOptions } from "@atomiqlabs/sdk-lib";
3
3
  type ChainInitializer<O, C extends ChainType, T extends BaseTokenType> = {
4
4
  chainId: ChainType["ChainId"];
@@ -33,6 +33,7 @@ export type MultichainSwapperOptions<T extends readonly ChainInitializer<any, an
33
33
  chainStorageCtor?: <T extends StorageObject>(name: string) => IStorageManager<T>;
34
34
  pricingFeeDifferencePPM?: bigint;
35
35
  mempoolApi?: MempoolApi | MempoolBitcoinRpc | string | string[];
36
+ messenger?: Messenger;
36
37
  getPriceFn?: CustomPriceFunction;
37
38
  };
38
39
  export declare class SwapperFactory<T extends readonly ChainInitializer<any, any, any>[]> {
@@ -5,6 +5,7 @@ const base_1 = require("@atomiqlabs/base");
5
5
  const sdk_lib_1 = require("@atomiqlabs/sdk-lib");
6
6
  const SmartChainAssets_1 = require("./SmartChainAssets");
7
7
  const LocalStorageManager_1 = require("./storage/LocalStorageManager");
8
+ const messenger_nostr_1 = require("@atomiqlabs/messenger-nostr");
8
9
  const registries = {
9
10
  [base_1.BitcoinNetwork.MAINNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry-mainnet.json?ref=main",
10
11
  [base_1.BitcoinNetwork.TESTNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry.json?ref=main",
@@ -34,6 +35,9 @@ const mempoolUrls = {
34
35
  "https://mempool.tk7.mempool.space/testnet4/api/"
35
36
  ]
36
37
  };
38
+ const nostrUrls = [
39
+ "wss://relay.damus.io", "wss://nostr.einundzwanzig.space", "wss://nostr.mutinywallet.com"
40
+ ];
37
41
  class SwapperFactory {
38
42
  constructor(initializers) {
39
43
  this.initializers = initializers;
@@ -65,6 +69,7 @@ class SwapperFactory {
65
69
  newSwapper(options) {
66
70
  options.bitcoinNetwork ?? (options.bitcoinNetwork = base_1.BitcoinNetwork.MAINNET);
67
71
  options.storagePrefix ?? (options.storagePrefix = "atomiqsdk-" + options.bitcoinNetwork + "-");
72
+ options.messenger ?? (options.messenger = new messenger_nostr_1.NostrMessenger(nostrUrls));
68
73
  options.defaultTrustedIntermediaryUrl ?? (options.defaultTrustedIntermediaryUrl = trustedIntermediaries[options.bitcoinNetwork]);
69
74
  options.registryUrl ?? (options.registryUrl = registries[options.bitcoinNetwork]);
70
75
  const mempoolApi = options.mempoolApi ?? new sdk_lib_1.MempoolBitcoinRpc(mempoolUrls[options.bitcoinNetwork]);
@@ -99,7 +104,7 @@ class SwapperFactory {
99
104
  };
100
105
  }), options.getPriceFn)) :
101
106
  sdk_lib_1.RedundantSwapPrice.createFromTokenMap(options.pricingFeeDifferencePPM ?? 10000n, pricingAssets);
102
- return new sdk_lib_1.Swapper(bitcoinRpc, chains, swapPricing, pricingAssets, options);
107
+ return new sdk_lib_1.Swapper(bitcoinRpc, chains, swapPricing, pricingAssets, options.messenger, options);
103
108
  }
104
109
  }
105
110
  exports.SwapperFactory = SwapperFactory;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomiqlabs/sdk",
3
- "version": "5.0.0-dev.0",
3
+ "version": "5.0.0-dev.2",
4
4
  "description": "atomiq labs SDK for cross-chain swaps between smart chains and bitcoin",
5
5
  "main": "./dist/index.js",
6
6
  "types:": "./dist/index.d.ts",
@@ -21,8 +21,9 @@
21
21
  "author": "adambor",
22
22
  "license": "ISC",
23
23
  "dependencies": {
24
- "@atomiqlabs/base": "^10.0.0-dev.1",
25
- "@atomiqlabs/sdk-lib": "^14.0.0-dev.3"
24
+ "@atomiqlabs/base": "^10.0.0-dev.7",
25
+ "@atomiqlabs/messenger-nostr": "^1.0.0-dev.2",
26
+ "@atomiqlabs/sdk-lib": "^14.0.0-dev.8"
26
27
  },
27
28
  "devDependencies": {
28
29
  "@types/node": "22.13.5",
@@ -5,7 +5,7 @@ import {
5
5
  BaseTokenType,
6
6
  ChainType,
7
7
  StorageObject,
8
- IStorageManager
8
+ IStorageManager, Messenger
9
9
  } from "@atomiqlabs/base";
10
10
  import {
11
11
  BitcoinTokens,
@@ -17,6 +17,7 @@ import {
17
17
  } from "@atomiqlabs/sdk-lib";
18
18
  import {SmartChainAssets} from "./SmartChainAssets";
19
19
  import {LocalStorageManager} from "./storage/LocalStorageManager";
20
+ import {NostrMessenger} from "@atomiqlabs/messenger-nostr";
20
21
 
21
22
  type ChainInitializer<O, C extends ChainType, T extends BaseTokenType> = {
22
23
  chainId: ChainType["ChainId"],
@@ -67,6 +68,7 @@ export type MultichainSwapperOptions<T extends readonly ChainInitializer<any, an
67
68
  chainStorageCtor?: <T extends StorageObject>(name: string) => IStorageManager<T>,
68
69
  pricingFeeDifferencePPM?: bigint,
69
70
  mempoolApi?: MempoolApi | MempoolBitcoinRpc | string | string[],
71
+ messenger?: Messenger,
70
72
  getPriceFn?: CustomPriceFunction
71
73
  };
72
74
 
@@ -102,6 +104,10 @@ const mempoolUrls = {
102
104
  ]
103
105
  }
104
106
 
107
+ const nostrUrls: string[] = [
108
+ "wss://relay.damus.io", "wss://nostr.einundzwanzig.space", "wss://nostr.mutinywallet.com"
109
+ ];
110
+
105
111
  export class SwapperFactory<T extends readonly ChainInitializer<any, any, any>[]> {
106
112
 
107
113
  Tokens: GetAllTokens<T> & {
@@ -143,6 +149,7 @@ export class SwapperFactory<T extends readonly ChainInitializer<any, any, any>[]
143
149
  newSwapper(options: MultichainSwapperOptions<T>) {
144
150
  options.bitcoinNetwork ??= BitcoinNetwork.MAINNET as any;
145
151
  options.storagePrefix ??= "atomiqsdk-"+options.bitcoinNetwork+"-";
152
+ options.messenger ??= new NostrMessenger(nostrUrls);
146
153
 
147
154
  options.defaultTrustedIntermediaryUrl ??= trustedIntermediaries[options.bitcoinNetwork];
148
155
 
@@ -188,6 +195,7 @@ export class SwapperFactory<T extends readonly ChainInitializer<any, any, any>[]
188
195
  chains as any,
189
196
  swapPricing,
190
197
  pricingAssets,
198
+ options.messenger,
191
199
  options
192
200
  );
193
201
  }