@multiplechain/bitcoin 0.1.18 → 0.4.0

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.
Files changed (40) hide show
  1. package/README.md +7 -1
  2. package/dist/assets/Coin.d.ts +38 -0
  3. package/dist/assets/index.d.ts +1 -0
  4. package/dist/browser/Wallet.d.ts +81 -0
  5. package/dist/browser/adapters/Leather.d.ts +16 -0
  6. package/dist/browser/adapters/UniSat.d.ts +19 -0
  7. package/dist/browser/adapters/Xverse.d.ts +6 -0
  8. package/dist/browser/adapters/icons.d.ts +6 -0
  9. package/dist/browser/adapters/index.d.ts +3 -0
  10. package/dist/browser/index.d.ts +11 -0
  11. package/dist/index.cjs +83 -0
  12. package/dist/index.cjs.map +7 -0
  13. package/dist/index.d.ts +6 -0
  14. package/dist/index.es.js +43583 -0
  15. package/dist/index.es.js.map +1 -0
  16. package/dist/index.umd.js +133 -0
  17. package/dist/index.umd.js.map +1 -0
  18. package/dist/models/CoinTransaction.d.ts +24 -0
  19. package/dist/models/Transaction.d.ts +106 -0
  20. package/dist/models/index.d.ts +2 -0
  21. package/dist/services/Provider.d.ts +80 -0
  22. package/dist/services/TransactionListener.d.ts +120 -0
  23. package/dist/services/TransactionSigner.d.ts +50 -0
  24. package/dist/services/index.d.ts +2 -0
  25. package/dist/utils.d.ts +3 -0
  26. package/package.json +85 -50
  27. package/LICENSE +0 -21
  28. package/dist/bitcoin-provider.js +0 -2
  29. package/dist/bitcoin-provider.js.LICENSE.txt +0 -30
  30. package/src/adapters/leather.js +0 -75
  31. package/src/adapters/trustwallet.js +0 -32
  32. package/src/adapters/unisat.js +0 -42
  33. package/src/adapters/xverse.js +0 -86
  34. package/src/entity/coin.js +0 -74
  35. package/src/entity/token.js +0 -5
  36. package/src/entity/transaction.js +0 -183
  37. package/src/get-adapter.js +0 -14
  38. package/src/provider.js +0 -221
  39. package/src/utils.js +0 -26
  40. package/src/wallet.js +0 -180
package/README.md CHANGED
@@ -1 +1,7 @@
1
- Preparing
1
+ # MultipleChain standard for JavaScript
2
+
3
+ ## Introduction
4
+
5
+ MultipleChain aims for easy access by simplifying the complex structure of many blockchains. For example, each blockchain network has a different structure for transfer initiation or transaction data. You may need to learn new things from scratch for each blockchain network. This is necessary if you want to go into detail. But if you just want to get to the basics. MultipleChain will make your work much easier. In many different programming languages.
6
+
7
+ #### 📚 [Documentation](https://multiplechain.gitbook.io/multiplechain-docs)
@@ -0,0 +1,38 @@
1
+ import { CoinInterface, TransferAmount, WalletAddress } from '@multiplechain/types';
2
+ import { TransactionSigner } from '../services/TransactionSigner.ts';
3
+ import { Provider } from '../services/Provider.ts';
4
+
5
+ export declare class Coin implements CoinInterface<TransactionSigner> {
6
+ /**
7
+ * Blockchain network provider
8
+ */
9
+ provider: Provider;
10
+ /**
11
+ * @param {Provider} provider network provider
12
+ */
13
+ constructor(provider?: Provider);
14
+ /**
15
+ * @returns {string} Coin name
16
+ */
17
+ getName(): string;
18
+ /**
19
+ * @returns {string} Coin symbol
20
+ */
21
+ getSymbol(): string;
22
+ /**
23
+ * @returns {number} Decimal value of the coin
24
+ */
25
+ getDecimals(): number;
26
+ /**
27
+ * @param {WalletAddress} owner Wallet address
28
+ * @returns {Promise<number>} Wallet balance as currency of COIN
29
+ */
30
+ getBalance(owner: WalletAddress): Promise<number>;
31
+ /**
32
+ * @param {WalletAddress} sender Sender wallet address
33
+ * @param {WalletAddress} receiver Receiver wallet address
34
+ * @param {TransferAmount} amount Amount of assets that will be transferred
35
+ * @returns {Promise<TransactionSigner>} Transaction signer
36
+ */
37
+ transfer(sender: WalletAddress, receiver: WalletAddress, amount: TransferAmount): Promise<TransactionSigner>;
38
+ }
@@ -0,0 +1 @@
1
+ export * from './Coin.ts';
@@ -0,0 +1,81 @@
1
+ import { TransactionSigner } from '../services/TransactionSigner.ts';
2
+ import { Provider } from '../services/Provider.ts';
3
+ import { WalletInterface, WalletAdapterInterface, WalletPlatformEnum, UnknownConfig, ConnectConfig, WalletAddress, SignedMessage, TransactionId } from '@multiplechain/types';
4
+
5
+ export interface BitcoinWalletAdapter {
6
+ getAddress: () => Promise<string>;
7
+ signMessage: (message: string) => Promise<string>;
8
+ sendBitcoin: (to: string, amount: number) => Promise<string>;
9
+ on: (event: string, callback: (data: any) => void) => void;
10
+ }
11
+ type WalletAdapter = WalletAdapterInterface<Provider, BitcoinWalletAdapter>;
12
+ export declare class Wallet implements WalletInterface<Provider, BitcoinWalletAdapter, TransactionSigner> {
13
+ adapter: WalletAdapter;
14
+ walletProvider: BitcoinWalletAdapter;
15
+ networkProvider: Provider;
16
+ /**
17
+ * @param {WalletAdapter} adapter
18
+ * @param {Provider} provider
19
+ */
20
+ constructor(adapter: WalletAdapter, provider?: Provider);
21
+ /**
22
+ * @returns {string}
23
+ */
24
+ getId(): string;
25
+ /**
26
+ * @returns {string}
27
+ */
28
+ getName(): string;
29
+ /**
30
+ * @returns {string}
31
+ */
32
+ getIcon(): string;
33
+ /**
34
+ * @returns {WalletPlatformEnum[]}
35
+ */
36
+ getPlatforms(): WalletPlatformEnum[];
37
+ /**
38
+ * @returns {string}
39
+ */
40
+ getDownloadLink(): string | undefined;
41
+ /**
42
+ * @param {string} url
43
+ * @param {UnknownConfig} config
44
+ * @returns {string}
45
+ */
46
+ createDeepLink(url: string, config?: UnknownConfig): string | null;
47
+ /**
48
+ * @param {ConnectConfig} config
49
+ * @returns {Promise<WalletAddress>}
50
+ */
51
+ connect(config?: ConnectConfig): Promise<WalletAddress>;
52
+ /**
53
+ * @returns {boolean}
54
+ */
55
+ isDetected(): Promise<boolean>;
56
+ /**
57
+ * @returns {boolean}
58
+ */
59
+ isConnected(): Promise<boolean>;
60
+ /**
61
+ * @returns {Promise<WalletAddress>}
62
+ */
63
+ getAddress(): Promise<WalletAddress>;
64
+ /**
65
+ * @param {string} message
66
+ * @returns {Promise<SignedMessage>}
67
+ */
68
+ signMessage(message: string): Promise<SignedMessage>;
69
+ /**
70
+ * @param {TransactionSigner} transactionSigner
71
+ * @returns {Promise<TransactionId>}
72
+ */
73
+ sendTransaction(transactionSigner: TransactionSigner): Promise<TransactionId>;
74
+ /**
75
+ * @param {string} eventName
76
+ * @param {Function} callback
77
+ * @returns {void}
78
+ */
79
+ on(eventName: string, callback: (...args: any[]) => void): void;
80
+ }
81
+ export {};
@@ -0,0 +1,16 @@
1
+ import { Provider } from '../../services/Provider.ts';
2
+ import { BitcoinWalletAdapter } from '../Wallet.ts';
3
+ import { WalletAdapterInterface } from '@multiplechain/types';
4
+
5
+ declare global {
6
+ interface Window {
7
+ btc: {
8
+ listen?: (event: string, callback: (data: any) => void) => void;
9
+ };
10
+ LeatherProvider: {
11
+ request: (method: string, params: any) => Promise<any>;
12
+ };
13
+ }
14
+ }
15
+ declare const Leather: WalletAdapterInterface<Provider, BitcoinWalletAdapter>;
16
+ export default Leather;
@@ -0,0 +1,19 @@
1
+ import { WalletAdapterInterface } from '@multiplechain/types';
2
+ import { Provider } from '../../services/Provider.ts';
3
+ import { BitcoinWalletAdapter } from '../Wallet.ts';
4
+
5
+ declare global {
6
+ interface Window {
7
+ unisat: {
8
+ _isConnected: boolean;
9
+ getAccounts: () => Promise<string[]>;
10
+ requestAccounts: () => Promise<void>;
11
+ signMessage: (message: string) => Promise<string>;
12
+ switchNetwork: (network: string) => Promise<void>;
13
+ on: (event: string, callback: (data: any) => void) => void;
14
+ sendBitcoin: (to: string, amount: number) => Promise<string>;
15
+ };
16
+ }
17
+ }
18
+ declare const UniSat: WalletAdapterInterface<Provider, BitcoinWalletAdapter>;
19
+ export default UniSat;
@@ -0,0 +1,6 @@
1
+ import { Provider } from '../../services/Provider.ts';
2
+ import { WalletAdapterInterface } from '@multiplechain/types';
3
+ import { BitcoinWalletAdapter } from '../Wallet.ts';
4
+
5
+ declare const Xverse: WalletAdapterInterface<Provider, BitcoinWalletAdapter>;
6
+ export default Xverse;
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ UniSat: string;
3
+ Xverse: string;
4
+ Leather: string;
5
+ };
6
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as UniSat } from './UniSat.ts';
2
+ export { default as Xverse } from './Xverse.ts';
3
+ export { default as Leather } from './Leather.ts';
@@ -0,0 +1,11 @@
1
+ import { WalletAdapterListType, RegisterWalletAdapterType } from '@multiplechain/types';
2
+ import { Wallet, BitcoinWalletAdapter } from './Wallet.ts';
3
+ import { Provider } from 'sats-connect';
4
+
5
+ import * as adapterList from './adapters/index.ts';
6
+ export * from '../index.ts';
7
+ export declare const browser: {
8
+ Wallet: typeof Wallet;
9
+ registerAdapter: RegisterWalletAdapterType<Provider, BitcoinWalletAdapter>;
10
+ adapters: WalletAdapterListType<Provider, BitcoinWalletAdapter> & typeof adapterList;
11
+ };