10.0.0 • Published 5 months ago

@galacticcouncil/xcm-sdk v10.0.0

Weekly downloads
-
License
-
Repository
github
Last release
5 months ago

Galactic XCM SDK

npm version

Wallet interface for asset multi-platform transfer supporting fee swaps & bridging.

Wallet does not perform any signing rather provide transfer data to maintain loose coupling & interoperability with 3rd party code.

Installation

Install with npm:

npm install @galacticcouncil/xcm-sdk

API

transfer(
    asset: string | Asset,
    srcAddr: string,
    srcChain: string | AnyChain,
    dstAddr: string,
    dstChain: string | AnyChain
  ): Promise<Transfer>
subscribeBalance(
    address: string,
    chain: string | AnyChain,
    observer: (balances: AssetAmount[]) => void
  )

Usage

// Import
import {
  assetsMap,
  chainsMap,
  routesMap,
  dex,
  validations,
} from '@galacticcouncil/xcm-cfg';
import { ConfigService, EvmParachain } from '@galacticcouncil/xcm-core';
import { Wallet, Call } from '@galacticcouncil/xcm-sdk';

// Initialize config service
const configService = new ConfigService({
  assets: assetsMap,
  chains: chainsMap,
  routes: routesMap,
});

// Initialize wallet
const wallet = new Wallet({
  configService: configService,
  transferValidations: validations,
});

// Register dex-es
const hydration = configService.getChain('hydration');
const assethub = configService.getChain('assethub');

wallet.registerDex(
  new dex.HydrationDex(hydration),
  new dex.AssethubDex(assethub)
);

// Define transfer
const srcChain = configService.getChain('ethereum');
const destChain = configService.getChain('hydration');
const asset = configService.getAsset('eth');

// Define source & dest accounts
const srcAddr = 'INSERT_ADDRESS';
const destAddr = 'INSERT_ADDRESS';

// Subscribe source chain token balance
const balanceObserver = (balances: AssetAmount[]) => console.log(balances);
const balanceSubscription = await wallet.subscribeBalance(
  srcAddr,
  srcChain,
  balanceObserver
);

// Get transfer data
const transfer = await wallet.transfer(
  asset,
  srcAddr,
  srcChain,
  destAddr,
  destChain
);

// Validate transfer
const status = await transfer.validate();

// Estimate fee & construct calldata with transfer amount (1 ETH)
const fee: AssetAmount = await transfer.estimateFee('1');
const feeInfo = [
  'Estimated fee:',
  fee.toDecimal(fee.decimals),
  fee.originSymbol,
].join(' ');
const call: Call = await transfer.buildCall('1');

// Dump transfer info
console.log(transfer);
console.log(status);
console.log(feeInfo);
console.log(call);

// Unsubscribe source chain balance
balanceSubscription.unsubscribe();
9.2.2

5 months ago

9.2.1

6 months ago

6.1.0

12 months ago

10.0.0

5 months ago

6.3.0

12 months ago

6.3.2

12 months ago

6.3.1

12 months ago

8.4.0

8 months ago

8.6.0

8 months ago

8.1.0

9 months ago

8.3.0

9 months ago

8.1.1

9 months ago

9.1.1

7 months ago

9.1.0

7 months ago

6.2.1

12 months ago

6.2.0

12 months ago

8.5.0

8 months ago

7.0.0

11 months ago

7.0.1

11 months ago

8.0.1

10 months ago

8.0.0

10 months ago

8.2.0

9 months ago

6.3.3

11 months ago

9.2.0

7 months ago

9.0.0

7 months ago

6.0.0

1 year ago

5.1.0

1 year ago

5.2.3

1 year ago

5.2.2

1 year ago

5.2.1

1 year ago

5.2.0

1 year ago

5.0.0

1 year ago

4.3.1

1 year ago

3.4.0

1 year ago

3.0.4

1 year ago

3.2.0

1 year ago

4.0.0

1 year ago

4.2.0

1 year ago

3.3.0

1 year ago

3.1.0

1 year ago

3.5.1

1 year ago

3.5.0

1 year ago

4.1.0

1 year ago

4.3.0

1 year ago

3.0.3

1 year ago

3.0.2

1 year ago

3.0.1

1 year ago

3.0.0

2 years ago

3.0.0-beta.3

2 years ago

3.0.0-beta.4

2 years ago

3.0.0-beta.1

2 years ago

3.0.0-beta.0

2 years ago

3.0.0-beta.2

2 years ago

2.4.0

2 years ago

2.3.1

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

2.3.0

2 years ago

2.2.0

2 years ago

2.1.0

2 years ago

2.0.0

2 years ago

1.0.0-beta.1

2 years ago

1.4.10

2 years ago

1.4.9

2 years ago

1.3.4

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.13

2 years ago