@gardenfi/orderbook 2.5.1 → 2.5.2-beta.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
@@ -1,19 +1,35 @@
1
- ## @gardenfi/orderbook
1
+ # @gardenfi/orderbook
2
2
 
3
- The `@gardenfi/orderbook` package is used to facilitate the creation of orders. It also provides functionality for listening to orders and retrieving orders created by a specific address.
3
+ The `@gardenfi/orderbook` package manages the orderbook for cross-chain atomic swaps. It provides APIs for creating orders, retrieving order information, managing matched orders, and subscribing to real-time order updates. The package handles order lifecycle management, pagination for large order datasets, and supports filtering orders by various criteria including user address, transaction hash, and order status.
4
4
 
5
- ### Installation
5
+ ## Installation
6
6
 
7
7
  ```
8
- npm install @gardenfi/orderbook
8
+ yarn add @gardenfi/orderbook
9
9
  ```
10
10
 
11
- ### Usage
11
+ ## Usage
12
12
 
13
- 1. Creating an order: ([should create an order with the valid configuration](https://github.com/catalogfi/garden.js/blob/4623a0679d1948755500c7179113112a025e33f8/packages/orderbook/src/lib/orderbook.spec.ts#L61 ))
14
- 2. Getting all orders created by an address: ([should return orders where the user is the maker](https://github.com/catalogfi/garden.js/blob/4623a0679d1948755500c7179113112a025e33f8/packages/orderbook/src/lib/orderbook.spec.ts#L79))
15
- 3. Listening to orders: ([should update when order is created](https://github.com/catalogfi/garden.js/blob/4623a0679d1948755500c7179113112a025e33f8/packages/orderbook/src/lib/orderbook.spec.ts#L94))
13
+ ```typescript
14
+ import { Orderbook } from '@gardenfi/orderbook';
15
+ import { Url } from '@gardenfi/utils';
16
16
 
17
- ### Setup
17
+ // Initialize the orderbook with the API URL
18
+ const orderbook = new Orderbook(new Url('<ORDERBOOK_API_URL>'));
18
19
 
19
- Both CommonJs and ES imports are supported so there is not extra setup needed to use the library. To use the orderbook simply import it (using import or require statements) and perform your logic. Make sure to use a signer if you're using the library in an environment where you do not have access to the private keys.
20
+ // Get matched orders for a user
21
+ const matchedOrdersResult = await orderbook.getMatchedOrders(
22
+ '<USER_ADDRESS>', // user address
23
+ 'pending', // status: 'all' | 'pending' | 'fulfilled'
24
+ {
25
+ page: 1,
26
+ per_page: 10,
27
+ },
28
+ );
29
+
30
+ if (matchedOrdersResult.ok) {
31
+ console.log('Matched orders:', matchedOrdersResult.val.data);
32
+ } else {
33
+ console.error('Error fetching matched orders:', matchedOrdersResult.error);
34
+ }
35
+ ```
package/dist/index3.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var l=(e=>(e.Bitcoin="Bitcoin",e.EVM="EVM",e.Solana="Solana",e.Starknet="Starknet",e.Sui="Sui",e))(l||{}),u=(e=>(e.mainnet="mainnet",e.testnet="testnet",e.localnet="localnet",e))(u||{});const t={bitcoin:"bitcoin",bitcoin_testnet:"bitcoin_testnet",bitcoin_regtest:"bitcoin_regtest",ethereum:"ethereum",base:"base",arbitrum:"arbitrum",ethereum_sepolia:"ethereum_sepolia",arbitrum_localnet:"arbitrum_localnet",arbitrum_sepolia:"arbitrum_sepolia",ethereum_localnet:"ethereum_localnet",base_sepolia:"base_sepolia",solana:"solana",solana_testnet:"solana_testnet",solana_localnet:"solana_localnet",bera_testnet:"bera_testnet",citrea_testnet:"citrea_testnet",bera:"bera",monad_testnet:"monad_testnet",starknet:"starknet",starknet_sepolia:"starknet_sepolia",starknet_devnet:"starknet_devnet",hyperliquid_testnet:"hyperliquid_testnet",hyperliquid:"hyperliquid",unichain:"unichain",corn:"corn",botanix:"botanix",bnbchain:"bnbchain",bnbchain_testnet:"bnbchain_testnet",sui:"sui",sui_testnet:"sui_testnet"},k=e=>!(e===t.ethereum_sepolia||e===t.bitcoin_testnet||e===t.bitcoin_regtest||e===t.arbitrum_localnet||e===t.ethereum_localnet||e===t.arbitrum_sepolia||e===t.base_sepolia||e===t.solana_testnet||e===t.solana_localnet||e===t.bera_testnet||e===t.citrea_testnet||e===t.monad_testnet||e===t.starknet_devnet||e===t.starknet_sepolia||e===t.hyperliquid_testnet||e===t.bnbchain_testnet||e===t.sui_testnet),r=e=>e===t.bitcoin||e===t.bitcoin_testnet||e===t.bitcoin_regtest,s=e=>e===t.ethereum||e===t.arbitrum||e===t.ethereum_sepolia||e===t.ethereum_localnet||e===t.arbitrum_localnet||e===t.arbitrum_sepolia||e===t.base_sepolia||e===t.base||e===t.bera_testnet||e===t.citrea_testnet||e===t.bera||e===t.monad_testnet||e===t.hyperliquid_testnet||e===t.hyperliquid||e===t.unichain||e===t.corn||e===t.botanix||e===t.bnbchain||e===t.bnbchain_testnet,i=e=>e===t.solana||e===t.solana_testnet||e===t.solana_localnet,o=e=>e===t.starknet||e===t.starknet_devnet||e===t.starknet_sepolia,a=e=>e===t.sui||e===t.sui_testnet,p=e=>{if(r(e))return"Bitcoin";if(s(e))return"EVM";if(i(e))return"Solana";if(o(e))return"Starknet";if(a(e))return"Sui";throw new Error("Invalid or unsupported chain")},_="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",b=(e,n)=>s(e)&&n.toLowerCase()===_.toLowerCase(),m=(e,n)=>i(e)&&n.toLowerCase()==="primary",d=(e,n)=>a(e)&&n.toLowerCase()==="0x2::sui::sui",E=e=>b(e.chain,e.tokenAddress)||m(e.chain,e.tokenAddress)||r(e.chain)||d(e.chain,e.tokenAddress)||!o(e.chain);exports.BlockchainType=l;exports.Chains=t;exports.NativeTokenAddress=_;exports.NetworkType=u;exports.getBlockchainType=p;exports.isBitcoin=r;exports.isEVM=s;exports.isEvmNativeToken=b;exports.isMainnet=k;exports.isNativeToken=E;exports.isSolana=i;exports.isSolanaNativeToken=m;exports.isStarknet=o;exports.isSui=a;exports.isSuiNativeToken=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var l=(e=>(e.Bitcoin="Bitcoin",e.EVM="EVM",e.Solana="Solana",e.Starknet="Starknet",e.Sui="Sui",e))(l||{}),u=(e=>(e.mainnet="mainnet",e.testnet="testnet",e.localnet="localnet",e))(u||{});const t={bitcoin:"bitcoin",bitcoin_testnet:"bitcoin_testnet",bitcoin_regtest:"bitcoin_regtest",ethereum:"ethereum",base:"base",arbitrum:"arbitrum",ethereum_sepolia:"ethereum_sepolia",arbitrum_localnet:"arbitrum_localnet",arbitrum_sepolia:"arbitrum_sepolia",ethereum_localnet:"ethereum_localnet",base_sepolia:"base_sepolia",solana:"solana",solana_testnet:"solana_testnet",solana_localnet:"solana_localnet",bera_testnet:"bera_testnet",citrea_testnet:"citrea_testnet",bera:"bera",monad_testnet:"monad_testnet",starknet:"starknet",starknet_sepolia:"starknet_sepolia",starknet_devnet:"starknet_devnet",hyperliquid_testnet:"hyperliquid_testnet",hyperliquid:"hyperliquid",unichain:"unichain",corn:"corn",botanix:"botanix",bnbchain:"bnbchain",bnbchain_testnet:"bnbchain_testnet",sui:"sui",sui_testnet:"sui_testnet",core:"core"},k=e=>!(e===t.ethereum_sepolia||e===t.bitcoin_testnet||e===t.bitcoin_regtest||e===t.arbitrum_localnet||e===t.ethereum_localnet||e===t.arbitrum_sepolia||e===t.base_sepolia||e===t.solana_testnet||e===t.solana_localnet||e===t.bera_testnet||e===t.citrea_testnet||e===t.monad_testnet||e===t.starknet_devnet||e===t.starknet_sepolia||e===t.hyperliquid_testnet||e===t.bnbchain_testnet||e===t.sui_testnet),r=e=>e===t.bitcoin||e===t.bitcoin_testnet||e===t.bitcoin_regtest,s=e=>e===t.ethereum||e===t.arbitrum||e===t.ethereum_sepolia||e===t.ethereum_localnet||e===t.arbitrum_localnet||e===t.arbitrum_sepolia||e===t.base_sepolia||e===t.base||e===t.bera_testnet||e===t.citrea_testnet||e===t.bera||e===t.monad_testnet||e===t.hyperliquid_testnet||e===t.hyperliquid||e===t.unichain||e===t.corn||e===t.botanix||e===t.bnbchain||e===t.bnbchain_testnet||e===t.core,o=e=>e===t.solana||e===t.solana_testnet||e===t.solana_localnet,i=e=>e===t.starknet||e===t.starknet_devnet||e===t.starknet_sepolia,a=e=>e===t.sui||e===t.sui_testnet,p=e=>{if(r(e))return"Bitcoin";if(s(e))return"EVM";if(o(e))return"Solana";if(i(e))return"Starknet";if(a(e))return"Sui";throw new Error("Invalid or unsupported chain")},_="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",b=(e,n)=>s(e)&&n.toLowerCase()===_.toLowerCase(),m=(e,n)=>o(e)&&n.toLowerCase()==="primary",d=(e,n)=>a(e)&&n.toLowerCase()==="0x2::sui::sui",c=e=>b(e.chain,e.tokenAddress)||m(e.chain,e.tokenAddress)||r(e.chain)||d(e.chain,e.tokenAddress)||!i(e.chain);exports.BlockchainType=l;exports.Chains=t;exports.NativeTokenAddress=_;exports.NetworkType=u;exports.getBlockchainType=p;exports.isBitcoin=r;exports.isEVM=s;exports.isEvmNativeToken=b;exports.isMainnet=k;exports.isNativeToken=c;exports.isSolana=o;exports.isSolanaNativeToken=m;exports.isStarknet=i;exports.isSui=a;exports.isSuiNativeToken=d;
package/dist/index3.js CHANGED
@@ -29,8 +29,9 @@ const t = {
29
29
  bnbchain: "bnbchain",
30
30
  bnbchain_testnet: "bnbchain_testnet",
31
31
  sui: "sui",
32
- sui_testnet: "sui_testnet"
33
- }, p = (e) => !(e === t.ethereum_sepolia || e === t.bitcoin_testnet || e === t.bitcoin_regtest || e === t.arbitrum_localnet || e === t.ethereum_localnet || e === t.arbitrum_sepolia || e === t.base_sepolia || e === t.solana_testnet || e === t.solana_localnet || e === t.bera_testnet || e === t.citrea_testnet || e === t.monad_testnet || e === t.starknet_devnet || e === t.starknet_sepolia || e === t.hyperliquid_testnet || e === t.bnbchain_testnet || e === t.sui_testnet), r = (e) => e === t.bitcoin || e === t.bitcoin_testnet || e === t.bitcoin_regtest, s = (e) => e === t.ethereum || e === t.arbitrum || e === t.ethereum_sepolia || e === t.ethereum_localnet || e === t.arbitrum_localnet || e === t.arbitrum_sepolia || e === t.base_sepolia || e === t.base || e === t.bera_testnet || e === t.citrea_testnet || e === t.bera || e === t.monad_testnet || e === t.hyperliquid_testnet || e === t.hyperliquid || e === t.unichain || e === t.corn || e === t.botanix || e === t.bnbchain || e === t.bnbchain_testnet, o = (e) => e === t.solana || e === t.solana_testnet || e === t.solana_localnet, a = (e) => e === t.starknet || e === t.starknet_devnet || e === t.starknet_sepolia, i = (e) => e === t.sui || e === t.sui_testnet, E = (e) => {
32
+ sui_testnet: "sui_testnet",
33
+ core: "core"
34
+ }, p = (e) => !(e === t.ethereum_sepolia || e === t.bitcoin_testnet || e === t.bitcoin_regtest || e === t.arbitrum_localnet || e === t.ethereum_localnet || e === t.arbitrum_sepolia || e === t.base_sepolia || e === t.solana_testnet || e === t.solana_localnet || e === t.bera_testnet || e === t.citrea_testnet || e === t.monad_testnet || e === t.starknet_devnet || e === t.starknet_sepolia || e === t.hyperliquid_testnet || e === t.bnbchain_testnet || e === t.sui_testnet), r = (e) => e === t.bitcoin || e === t.bitcoin_testnet || e === t.bitcoin_regtest, s = (e) => e === t.ethereum || e === t.arbitrum || e === t.ethereum_sepolia || e === t.ethereum_localnet || e === t.arbitrum_localnet || e === t.arbitrum_sepolia || e === t.base_sepolia || e === t.base || e === t.bera_testnet || e === t.citrea_testnet || e === t.bera || e === t.monad_testnet || e === t.hyperliquid_testnet || e === t.hyperliquid || e === t.unichain || e === t.corn || e === t.botanix || e === t.bnbchain || e === t.bnbchain_testnet || e === t.core, o = (e) => e === t.solana || e === t.solana_testnet || e === t.solana_localnet, a = (e) => e === t.starknet || e === t.starknet_devnet || e === t.starknet_sepolia, i = (e) => e === t.sui || e === t.sui_testnet, E = (e) => {
34
35
  if (r(e)) return "Bitcoin";
35
36
  if (s(e)) return "EVM";
36
37
  if (o(e)) return "Solana";
@@ -63,12 +63,13 @@ export declare const Chains: {
63
63
  readonly bnbchain_testnet: "bnbchain_testnet";
64
64
  readonly sui: "sui";
65
65
  readonly sui_testnet: "sui_testnet";
66
+ readonly core: "core";
66
67
  };
67
68
  export type Chain = keyof typeof Chains;
68
69
  export type EvmChain = keyof Omit<typeof Chains, 'bitcoin' | 'bitcoin_testnet' | 'bitcoin_regtest' | 'solana' | 'solana_testnet' | 'solana_localnet' | 'starknet' | 'starknet_devnet' | 'starknet_sepolia' | 'sui' | 'sui_testnet'>;
69
- export declare const isMainnet: (chain: Chain) => chain is "bitcoin" | "ethereum" | "base" | "arbitrum" | "solana" | "bera" | "starknet" | "hyperliquid" | "unichain" | "corn" | "botanix" | "bnbchain" | "sui";
70
+ export declare const isMainnet: (chain: Chain) => chain is "bitcoin" | "ethereum" | "base" | "arbitrum" | "solana" | "bera" | "starknet" | "hyperliquid" | "unichain" | "corn" | "botanix" | "bnbchain" | "sui" | "core";
70
71
  export declare const isBitcoin: (chain: Chain) => chain is "bitcoin" | "bitcoin_testnet" | "bitcoin_regtest";
71
- export declare const isEVM: (chain: Chain) => chain is "ethereum" | "base" | "arbitrum" | "ethereum_sepolia" | "arbitrum_localnet" | "arbitrum_sepolia" | "ethereum_localnet" | "base_sepolia" | "bera_testnet" | "citrea_testnet" | "bera" | "monad_testnet" | "hyperliquid_testnet" | "hyperliquid" | "unichain" | "corn" | "botanix" | "bnbchain" | "bnbchain_testnet";
72
+ export declare const isEVM: (chain: Chain) => chain is "ethereum" | "base" | "arbitrum" | "ethereum_sepolia" | "arbitrum_localnet" | "arbitrum_sepolia" | "ethereum_localnet" | "base_sepolia" | "bera_testnet" | "citrea_testnet" | "bera" | "monad_testnet" | "hyperliquid_testnet" | "hyperliquid" | "unichain" | "corn" | "botanix" | "bnbchain" | "bnbchain_testnet" | "core";
72
73
  export declare const isSolana: (chain: Chain) => chain is "solana" | "solana_testnet" | "solana_localnet";
73
74
  export declare const isStarknet: (chain: Chain) => chain is "starknet" | "starknet_sepolia" | "starknet_devnet";
74
75
  export declare const isSui: (chain: Chain) => chain is "sui" | "sui_testnet";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gardenfi/orderbook",
3
- "version": "2.5.1",
3
+ "version": "2.5.2-beta.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@coral-xyz/anchor": "^0.31.1",
31
- "@gardenfi/utils": "2.5.1",
31
+ "@gardenfi/utils": "2.5.2",
32
32
  "bufferutil": "^4.0.8",
33
33
  "siwe": "^2.1.4",
34
34
  "utf-8-validate": "^6.0.3",