@yaswap/yacoin 2.1.0 → 2.3.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 (30) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/lib/chain/YacoinBaseChainProvider.d.ts +5 -1
  3. package/dist/lib/chain/YacoinBaseChainProvider.js.map +1 -1
  4. package/dist/lib/chain/esplora/YacoinEsploraApiProvider.d.ts +2 -1
  5. package/dist/lib/chain/esplora/YacoinEsploraApiProvider.js +15 -0
  6. package/dist/lib/chain/esplora/YacoinEsploraApiProvider.js.map +1 -1
  7. package/dist/lib/chain/esplora/YacoinEsploraBaseProvider.d.ts +6 -0
  8. package/dist/lib/chain/esplora/YacoinEsploraBaseProvider.js +48 -0
  9. package/dist/lib/chain/esplora/YacoinEsploraBaseProvider.js.map +1 -1
  10. package/dist/lib/chain/esplora/YacoinEsploraBatchBaseProvider.d.ts +6 -0
  11. package/dist/lib/chain/esplora/YacoinEsploraBatchBaseProvider.js +47 -0
  12. package/dist/lib/chain/esplora/YacoinEsploraBatchBaseProvider.js.map +1 -1
  13. package/dist/lib/chain/esplora/types.d.ts +14 -4
  14. package/dist/lib/index.d.ts +1 -0
  15. package/dist/lib/index.js +3 -1
  16. package/dist/lib/index.js.map +1 -1
  17. package/dist/lib/nft/YacoinNftProvider.d.ts +13 -0
  18. package/dist/lib/nft/YacoinNftProvider.js +98 -0
  19. package/dist/lib/nft/YacoinNftProvider.js.map +1 -0
  20. package/dist/lib/types.d.ts +6 -1
  21. package/dist/lib/types.js.map +1 -1
  22. package/dist/lib/utils.d.ts +15 -3
  23. package/dist/lib/utils.js +60 -9
  24. package/dist/lib/utils.js.map +1 -1
  25. package/dist/lib/wallet/YacoinBaseWallet.d.ts +10 -3
  26. package/dist/lib/wallet/YacoinBaseWallet.js +349 -96
  27. package/dist/lib/wallet/YacoinBaseWallet.js.map +1 -1
  28. package/dist/lib/wallet/YacoinHDWallet.js +11 -7
  29. package/dist/lib/wallet/YacoinHDWallet.js.map +1 -1
  30. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @yaswap/bitcoin
2
2
 
3
+ ## 2.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Support create YA-Token/YA-NFT
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+ - @yaswap/client@2.3.0
13
+ - @yaswap/errors@2.3.0
14
+ - @yaswap/types@2.3.0
15
+ - @yaswap/utils@2.3.0
16
+
17
+ ## 2.2.0
18
+
19
+ ### Minor Changes
20
+
21
+ - Integrate YA-token/YA-NFT
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies
26
+ - @yaswap/client@2.2.0
27
+ - @yaswap/errors@2.2.0
28
+ - @yaswap/types@2.2.0
29
+ - @yaswap/utils@2.2.0
30
+
3
31
  ## 2.1.0
4
32
 
5
33
  ### Minor Changes
@@ -1,5 +1,5 @@
1
1
  import { AddressType, Transaction } from '@yaswap/types';
2
- import { AddressTxCounts, UTXO } from '../types';
2
+ import { AddressTxCounts, UTXO, YacoinEsploraTypes } from '../types';
3
3
  export declare abstract class YacoinBaseChainProvider {
4
4
  abstract formatTransaction(tx: any): Promise<Transaction>;
5
5
  abstract getRawTransactionByHash(transactionHash: string): Promise<string>;
@@ -7,6 +7,10 @@ export declare abstract class YacoinBaseChainProvider {
7
7
  abstract getTransaction(transactionHash: string): Promise<Transaction>;
8
8
  abstract getFeePerByte(numberOfBlocks?: number): Promise<number>;
9
9
  abstract getUnspentTransactions(addresses: AddressType[]): Promise<UTXO[]>;
10
+ abstract getTokenUnspentTransactions(addresses: AddressType[], tokenName: string): Promise<UTXO[]>;
11
+ abstract getAllTokenUnspentTransactions(addresses: AddressType[]): Promise<YacoinEsploraTypes.BatchTokenUTXOInfo>;
12
+ abstract getNFTUnspentTransactions(addresses: AddressType[], tokenName: string): Promise<UTXO[]>;
13
+ abstract getAllNFTUnspentTransactions(addresses: AddressType[]): Promise<YacoinEsploraTypes.BatchTokenUTXOInfo>;
10
14
  abstract getAddressTransactionCounts(_addresses: AddressType[]): Promise<AddressTxCounts>;
11
15
  abstract getMinRelayFee(): Promise<number>;
12
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"YacoinBaseChainProvider.js","sourceRoot":"","sources":["../../../lib/chain/YacoinBaseChainProvider.ts"],"names":[],"mappings":";;;AAGA,MAAsB,uBAAuB;CAe5C;AAfD,0DAeC"}
1
+ {"version":3,"file":"YacoinBaseChainProvider.js","sourceRoot":"","sources":["../../../lib/chain/YacoinBaseChainProvider.ts"],"names":[],"mappings":";;;AAGA,MAAsB,uBAAuB;CAmB5C;AAnBD,0DAmBC"}
@@ -1,5 +1,5 @@
1
1
  import { Chain, Fee } from '@yaswap/client';
2
- import { AddressType, BigNumber, Block, FeeDetails, Transaction } from '@yaswap/types';
2
+ import { AddressType, BigNumber, Block, FeeDetails, Transaction, TokenBalance } from '@yaswap/types';
3
3
  import { YacoinEsploraBaseProvider } from './YacoinEsploraBaseProvider';
4
4
  import * as EsploraTypes from './types';
5
5
  export declare class YacoinEsploraApiProvider extends Chain<YacoinEsploraBaseProvider> {
@@ -11,6 +11,7 @@ export declare class YacoinEsploraApiProvider extends Chain<YacoinEsploraBasePro
11
11
  getBlockHeight(): Promise<number>;
12
12
  getTransactionByHash(txHash: string): Promise<Transaction<any>>;
13
13
  getBalance(_addresses: AddressType[]): Promise<BigNumber[]>;
14
+ getTokenBalance(_addresses: AddressType[]): Promise<TokenBalance[]>;
14
15
  getFees(): Promise<FeeDetails>;
15
16
  sendRawTransaction(rawTransaction: string): Promise<string>;
16
17
  sendRpcRequest(_method: string, _params: any[]): Promise<any>;
@@ -88,6 +88,21 @@ class YacoinEsploraApiProvider extends client_1.Chain {
88
88
  return [utxos.reduce((acc, utxo) => acc.plus(utxo.value), new types_1.BigNumber(0))];
89
89
  });
90
90
  }
91
+ getTokenBalance(_addresses) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ const addresses = _addresses.map((a) => a.toString());
94
+ const batchTokenUTXOInfo = yield this.provider.getAllTokenUnspentTransactions(addresses);
95
+ return batchTokenUTXOInfo.map(({ token_name, balance, token_info }) => ({
96
+ "name": token_name.split('/').join('|'),
97
+ "balance": new types_1.BigNumber(balance).dividedBy(1e6 / Math.pow(10, token_info.units)).toNumber(),
98
+ "totalSupply": token_info.amount,
99
+ "units": token_info.units,
100
+ "reissuable": token_info.reissuable,
101
+ "blockHash": token_info.block_hash,
102
+ "ipfsHash": token_info.ipfs_hash,
103
+ }));
104
+ });
105
+ }
91
106
  getFees() {
92
107
  return __awaiter(this, void 0, void 0, function* () {
93
108
  if (this.feeProvider) {
@@ -1 +1 @@
1
- {"version":3,"file":"YacoinEsploraApiProvider.js","sourceRoot":"","sources":["../../../../lib/chain/esplora/YacoinEsploraApiProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"YacoinEsploraApiProvider.js","sourceRoot":"","sources":["../../../../lib/chain/esplora/YacoinEsploraApiProvider.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,12 @@ export declare class YacoinEsploraBaseProvider extends YacoinBaseChainProvider {
13
13
  getTransaction(transactionHash: string): Promise<import("@yaswap/types").Transaction<import("../../types").Transaction>>;
14
14
  getFeePerByte(numberOfBlocks?: number): Promise<number>;
15
15
  getUnspentTransactions(_addresses: AddressType[]): Promise<UTXO[]>;
16
+ getTokenUnspentTransactions(_addresses: AddressType[], tokenName: string): Promise<UTXO[]>;
17
+ getNFTUnspentTransactions(_addresses: AddressType[], tokenName: string): Promise<UTXO[]>;
18
+ protected _getTokenUnspentTransactions(_addresses: AddressType[], tokenName: string, url: string): Promise<UTXO[]>;
19
+ getAllTokenUnspentTransactions(_addresses: AddressType[]): Promise<EsploraTypes.BatchTokenUTXOInfo>;
20
+ getAllNFTUnspentTransactions(_addresses: AddressType[]): Promise<EsploraTypes.BatchTokenUTXOInfo>;
21
+ protected _getAllTokenUnspentTransactions(_addresses: AddressType[], url: string): Promise<EsploraTypes.BatchTokenUTXOInfo>;
16
22
  getAddressTransactionCounts(_addresses: AddressType[]): Promise<any>;
17
23
  getMinRelayFee(): Promise<number>;
18
24
  private _getUnspentTransactions;
@@ -22,6 +22,7 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.YacoinEsploraBaseProvider = void 0;
24
24
  const client_1 = require("@yaswap/client");
25
+ const types_1 = require("@yaswap/types");
25
26
  const errors_1 = require("@yaswap/errors");
26
27
  const lodash_1 = require("lodash");
27
28
  const utils_1 = require("../../utils");
@@ -105,6 +106,53 @@ class YacoinEsploraBaseProvider extends YacoinBaseChainProvider_1.YacoinBaseChai
105
106
  return utxos;
106
107
  });
107
108
  }
109
+ getTokenUnspentTransactions(_addresses, tokenName) {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ return this._getTokenUnspentTransactions(_addresses, tokenName, '/addresses/token_utxo');
112
+ });
113
+ }
114
+ getNFTUnspentTransactions(_addresses, tokenName) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ return this._getTokenUnspentTransactions(_addresses, tokenName, '/addresses/nft');
117
+ });
118
+ }
119
+ _getTokenUnspentTransactions(_addresses, tokenName, url) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ const addresses = _addresses.map((a) => a.toString());
122
+ const data = yield this._getAllTokenUnspentTransactions(addresses, url);
123
+ const utxos = data.filter(({ token_name }) => {
124
+ if (token_name === tokenName) {
125
+ return true;
126
+ }
127
+ return false;
128
+ })
129
+ .map(({ token_utxos }) => {
130
+ return token_utxos.map(({ address, utxo }) => {
131
+ return utxo.map((obj) => (Object.assign(Object.assign({}, obj), { address, satoshis: obj.value, amount: new types_1.BigNumber(obj.value).dividedBy(1e6).toNumber(), blockHeight: obj.status.block_height })));
132
+ });
133
+ });
134
+ return (0, lodash_1.flatten)((0, lodash_1.flatten)(utxos));
135
+ });
136
+ }
137
+ getAllTokenUnspentTransactions(_addresses) {
138
+ return __awaiter(this, void 0, void 0, function* () {
139
+ return this._getAllTokenUnspentTransactions(_addresses, '/addresses/token_utxo');
140
+ });
141
+ }
142
+ getAllNFTUnspentTransactions(_addresses) {
143
+ return __awaiter(this, void 0, void 0, function* () {
144
+ return this._getAllTokenUnspentTransactions(_addresses, '/addresses/nft');
145
+ });
146
+ }
147
+ _getAllTokenUnspentTransactions(_addresses, url) {
148
+ return __awaiter(this, void 0, void 0, function* () {
149
+ const addresses = _addresses.map((a) => a.toString());
150
+ const data = yield this.httpClient.nodePost(url, {
151
+ addresses: (0, lodash_1.uniq)(addresses),
152
+ });
153
+ return data;
154
+ });
155
+ }
108
156
  getAddressTransactionCounts(_addresses) {
109
157
  return __awaiter(this, void 0, void 0, function* () {
110
158
  const addresses = _addresses.map((a) => a.toString());
@@ -1 +1 @@
1
- {"version":3,"file":"YacoinEsploraBaseProvider.js","sourceRoot":"","sources":["../../../../lib/chain/esplora/YacoinEsploraBaseProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"YacoinEsploraBaseProvider.js","sourceRoot":"","sources":["../../../../lib/chain/esplora/YacoinEsploraBaseProvider.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@ export declare class YacoinEsploraBatchBaseProvider extends YacoinEsploraBasePro
6
6
  private _batchHttpClient;
7
7
  constructor(options: EsploraTypes.EsploraBatchApiProviderOptions);
8
8
  getUnspentTransactions(_addresses: AddressType[]): Promise<UTXO[]>;
9
+ getTokenUnspentTransactions(_addresses: AddressType[], tokenName: string): Promise<UTXO[]>;
10
+ getNFTUnspentTransactions(_addresses: AddressType[], tokenName: string): Promise<UTXO[]>;
11
+ protected _getTokenUnspentTransactions(_addresses: AddressType[], tokenName: string, url: string): Promise<UTXO[]>;
12
+ getAllTokenUnspentTransactions(_addresses: AddressType[]): Promise<EsploraTypes.BatchTokenUTXOInfo>;
13
+ getAllNFTUnspentTransactions(_addresses: AddressType[]): Promise<EsploraTypes.BatchTokenUTXOInfo>;
14
+ protected _getAllTokenUnspentTransactions(_addresses: AddressType[], url: string): Promise<EsploraTypes.BatchTokenUTXOInfo>;
9
15
  getAddressTransactionCounts(_addresses: AddressType[]): Promise<{
10
16
  [index: string]: number;
11
17
  }>;
@@ -31,6 +31,53 @@ class YacoinEsploraBatchBaseProvider extends YacoinEsploraBaseProvider_1.YacoinE
31
31
  return (0, lodash_1.flatten)(utxos);
32
32
  });
33
33
  }
34
+ getTokenUnspentTransactions(_addresses, tokenName) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ return this._getTokenUnspentTransactions(_addresses, tokenName, '/addresses/token_utxo');
37
+ });
38
+ }
39
+ getNFTUnspentTransactions(_addresses, tokenName) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ return this._getTokenUnspentTransactions(_addresses, tokenName, '/addresses/nft');
42
+ });
43
+ }
44
+ _getTokenUnspentTransactions(_addresses, tokenName, url) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const addresses = _addresses.map((a) => a.toString());
47
+ const data = yield this._getAllTokenUnspentTransactions(addresses, url);
48
+ const utxos = data.filter(({ token_name }) => {
49
+ if (token_name === tokenName) {
50
+ return true;
51
+ }
52
+ return false;
53
+ })
54
+ .map(({ token_utxos }) => {
55
+ return token_utxos.map(({ address, utxo }) => {
56
+ return utxo.map((obj) => (Object.assign(Object.assign({}, obj), { address, satoshis: obj.value, amount: new types_1.BigNumber(obj.value).dividedBy(1e6).toNumber(), blockHeight: obj.status.block_height })));
57
+ });
58
+ });
59
+ return (0, lodash_1.flatten)((0, lodash_1.flatten)(utxos));
60
+ });
61
+ }
62
+ getAllTokenUnspentTransactions(_addresses) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ return this._getAllTokenUnspentTransactions(_addresses, '/addresses/token_utxo');
65
+ });
66
+ }
67
+ getAllNFTUnspentTransactions(_addresses) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ return this._getAllTokenUnspentTransactions(_addresses, '/addresses/nft');
70
+ });
71
+ }
72
+ _getAllTokenUnspentTransactions(_addresses, url) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ const addresses = _addresses.map((a) => a.toString());
75
+ const data = yield this._batchHttpClient.nodePost(url, {
76
+ addresses: (0, lodash_1.uniq)(addresses),
77
+ });
78
+ return data;
79
+ });
80
+ }
34
81
  getAddressTransactionCounts(_addresses) {
35
82
  return __awaiter(this, void 0, void 0, function* () {
36
83
  const addresses = _addresses.map((a) => a.toString());
@@ -1 +1 @@
1
- {"version":3,"file":"YacoinEsploraBatchBaseProvider.js","sourceRoot":"","sources":["../../../../lib/chain/esplora/YacoinEsploraBatchBaseProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yCAAuD;AACvD,mCAAuC;AAEvC,2EAAwE;AAGxE,MAAa,8BAA+B,SAAQ,qDAAyB;IAGzE,YAAY,OAAoD;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,gBAAgB,GAAG,IAAI,mBAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEK,sBAAsB,CAAC,UAAyB;;YAClD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,MAAM,IAAI,GAA4B,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,EAAE;gBAC1F,SAAS,EAAE,IAAA,aAAI,EAAC,SAAS,CAAC;aAC7B,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;gBACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iCAClB,GAAG,KACN,OAAO,EACP,QAAQ,EAAE,GAAG,CAAC,KAAK,EACnB,MAAM,EAAE,IAAI,iBAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAC1D,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IACtC,CAAC,CAAC;YACR,CAAC,CAAC,CAAC;YAEH,OAAO,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;KAAA;IAEK,2BAA2B,CAAC,UAAyB;;YACvD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,MAAM,IAAI,GAA2B,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE;gBACpF,SAAS,EAAE,IAAA,aAAI,EAAC,SAAS,CAAC;aAC7B,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAgC,EAAE,GAAG,EAAE,EAAE;gBACzD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAChC,OAAO,GAAG,CAAC;YACf,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC;KAAA;CACJ;AAtCD,wEAsCC"}
1
+ {"version":3,"file":"YacoinEsploraBatchBaseProvider.js","sourceRoot":"","sources":["../../../../lib/chain/esplora/YacoinEsploraBatchBaseProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yCAAuD;AACvD,mCAAuC;AAEvC,2EAAwE;AAGxE,MAAa,8BAA+B,SAAQ,qDAAyB;IAGzE,YAAY,OAAoD;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,gBAAgB,GAAG,IAAI,mBAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEK,sBAAsB,CAAC,UAAyB;;YAClD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,MAAM,IAAI,GAA4B,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,EAAE;gBAC1F,SAAS,EAAE,IAAA,aAAI,EAAC,SAAS,CAAC;aAC7B,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;gBACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iCAClB,GAAG,KACN,OAAO,EACP,QAAQ,EAAE,GAAG,CAAC,KAAK,EACnB,MAAM,EAAE,IAAI,iBAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAC1D,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IACtC,CAAC,CAAC;YACR,CAAC,CAAC,CAAC;YAEH,OAAO,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;KAAA;IAEK,2BAA2B,CAAC,UAAyB,EAAE,SAAiB;;YAC1E,OAAO,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAA;QAC5F,CAAC;KAAA;IAEK,yBAAyB,CAAC,UAAyB,EAAE,SAAiB;;YACxE,OAAO,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAA;QACrF,CAAC;KAAA;IAEe,4BAA4B,CAAC,UAAyB,EAAE,SAAiB,EAAE,GAAW;;YAClG,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,MAAM,IAAI,GAAoC,MAAM,IAAI,CAAC,+BAA+B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YAExG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;gBACzC,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC1B,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC;iBACD,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBACrB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;oBACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iCAClB,GAAG,KACN,OAAO,EACP,QAAQ,EAAE,GAAG,CAAC,KAAK,EACnB,MAAM,EAAE,IAAI,iBAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAC1D,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IACtC,CAAC,CAAC;gBACR,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,OAAO,IAAA,gBAAO,EAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;KAAA;IAEK,8BAA8B,CAAC,UAAyB;;YAC1D,OAAO,IAAI,CAAC,+BAA+B,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAA;QACpF,CAAC;KAAA;IAEK,4BAA4B,CAAC,UAAyB;;YACxD,OAAO,IAAI,CAAC,+BAA+B,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;QAC7E,CAAC;KAAA;IAEe,+BAA+B,CAAC,UAAyB,EAAE,GAAW;;YAClF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,MAAM,IAAI,GAAoC,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACpF,SAAS,EAAE,IAAA,aAAI,EAAC,SAAS,CAAC;aAC7B,CAAC,CAAC;YACH,OAAO,IAAI,CAAA;QACf,CAAC;KAAA;IAEK,2BAA2B,CAAC,UAAyB;;YACvD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,MAAM,IAAI,GAA2B,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE;gBACpF,SAAS,EAAE,IAAA,aAAI,EAAC,SAAS,CAAC;aAC7B,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAgC,EAAE,GAAG,EAAE,EAAE;gBACzD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAChC,OAAO,GAAG,CAAC;YACf,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC;KAAA;CACJ;AAvFD,wEAuFC"}
@@ -1,4 +1,5 @@
1
1
  import { YacoinNetwork } from '../../types';
2
+ import { TokenInfo } from '@yaswap/types';
2
3
  export declare type FeeEstimates = {
3
4
  [index: string]: number;
4
5
  };
@@ -13,7 +14,20 @@ export declare type UTXO = {
13
14
  vout: number;
14
15
  status: TxStatus;
15
16
  value: number;
17
+ token_value?: number;
18
+ script?: string;
16
19
  };
20
+ export declare type BatchUTXOs = {
21
+ address: string;
22
+ utxo: UTXO[];
23
+ }[];
24
+ export declare type TokenUTXOInfo = {
25
+ token_name: string;
26
+ balance: number;
27
+ token_info: TokenInfo;
28
+ token_utxos: BatchUTXOs;
29
+ };
30
+ export declare type BatchTokenUTXOInfo = TokenUTXOInfo[];
17
31
  export declare type Address = {
18
32
  address: string;
19
33
  funded_txo_count: number;
@@ -60,10 +74,6 @@ export declare type Block = {
60
74
  bits: number;
61
75
  difficulty: number;
62
76
  };
63
- export declare type BatchUTXOs = {
64
- address: string;
65
- utxo: UTXO[];
66
- }[];
67
77
  export interface EsploraApiProviderOptions {
68
78
  url: string;
69
79
  network: YacoinNetwork;
@@ -10,3 +10,4 @@ export * as YacoinTypes from './types';
10
10
  export * as YacoinUtils from './utils';
11
11
  export { YacoinBaseWalletProvider } from './wallet/YacoinBaseWallet';
12
12
  export { YacoinHDWalletProvider } from './wallet/YacoinHDWallet';
13
+ export { YacoinNftProvider } from './nft/YacoinNftProvider';
package/dist/lib/index.js CHANGED
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.YacoinHDWalletProvider = exports.YacoinBaseWalletProvider = exports.YacoinUtils = exports.YacoinTypes = exports.YacoinSwapEsploraProvider = exports.YacoinSwapBaseProvider = exports.YacoinNetworks = exports.YacoinFeeApiProvider = exports.YacoinEsploraBatchBaseProvider = exports.YacoinEsploraBaseProvider = exports.YacoinEsploraApiProvider = exports.YacoinBaseChainProvider = void 0;
26
+ exports.YacoinNftProvider = exports.YacoinHDWalletProvider = exports.YacoinBaseWalletProvider = exports.YacoinUtils = exports.YacoinTypes = exports.YacoinSwapEsploraProvider = exports.YacoinSwapBaseProvider = exports.YacoinNetworks = exports.YacoinFeeApiProvider = exports.YacoinEsploraBatchBaseProvider = exports.YacoinEsploraBaseProvider = exports.YacoinEsploraApiProvider = exports.YacoinBaseChainProvider = void 0;
27
27
  var YacoinBaseChainProvider_1 = require("./chain/YacoinBaseChainProvider");
28
28
  Object.defineProperty(exports, "YacoinBaseChainProvider", { enumerable: true, get: function () { return YacoinBaseChainProvider_1.YacoinBaseChainProvider; } });
29
29
  var YacoinEsploraApiProvider_1 = require("./chain/esplora/YacoinEsploraApiProvider");
@@ -46,4 +46,6 @@ var YacoinBaseWallet_1 = require("./wallet/YacoinBaseWallet");
46
46
  Object.defineProperty(exports, "YacoinBaseWalletProvider", { enumerable: true, get: function () { return YacoinBaseWallet_1.YacoinBaseWalletProvider; } });
47
47
  var YacoinHDWallet_1 = require("./wallet/YacoinHDWallet");
48
48
  Object.defineProperty(exports, "YacoinHDWalletProvider", { enumerable: true, get: function () { return YacoinHDWallet_1.YacoinHDWalletProvider; } });
49
+ var YacoinNftProvider_1 = require("./nft/YacoinNftProvider");
50
+ Object.defineProperty(exports, "YacoinNftProvider", { enumerable: true, get: function () { return YacoinNftProvider_1.YacoinNftProvider; } });
49
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2EAA0E;AAAjE,kIAAA,uBAAuB,OAAA;AAChC,qFAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AACjC,uFAAsF;AAA7E,sIAAA,yBAAyB,OAAA;AAClC,iGAAgG;AAAvF,gJAAA,8BAA8B,OAAA;AACvC,mEAAkE;AAAzD,4HAAA,oBAAoB,OAAA;AAC7B,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,wEAAuE;AAA9D,gIAAA,sBAAsB,OAAA;AAC/B,8EAA6E;AAApE,sIAAA,yBAAyB,OAAA;AAClC,uDAAuC;AACvC,uDAAuC;AACvC,8DAAqE;AAA5D,4HAAA,wBAAwB,OAAA;AACjC,0DAAiE;AAAxD,wHAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2EAA0E;AAAjE,kIAAA,uBAAuB,OAAA;AAChC,qFAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AACjC,uFAAsF;AAA7E,sIAAA,yBAAyB,OAAA;AAClC,iGAAgG;AAAvF,gJAAA,8BAA8B,OAAA;AACvC,mEAAkE;AAAzD,4HAAA,oBAAoB,OAAA;AAC7B,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,wEAAuE;AAA9D,gIAAA,sBAAsB,OAAA;AAC/B,8EAA6E;AAApE,sIAAA,yBAAyB,OAAA;AAClC,uDAAuC;AACvC,uDAAuC;AACvC,8DAAqE;AAA5D,4HAAA,wBAAwB,OAAA;AACjC,0DAAiE;AAAxD,wHAAA,sBAAsB,OAAA;AAC/B,6DAA4D;AAAnD,sHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,13 @@
1
+ import { Nft, Wallet } from '@yaswap/client';
2
+ import { AddressType, BigNumber, NFTAsset, Transaction } from '@yaswap/types';
3
+ import { YacoinBaseChainProvider } from '../chain/YacoinBaseChainProvider';
4
+ import { YacoinBaseWalletProvider } from '../wallet/YacoinBaseWallet';
5
+ export declare class YacoinNftProvider extends Nft<YacoinBaseChainProvider, YacoinBaseWalletProvider> {
6
+ constructor(walletProvider: Wallet<YacoinBaseChainProvider, YacoinBaseWalletProvider>);
7
+ fetch(): Promise<NFTAsset[]>;
8
+ transfer(contract: AddressType, receiver: AddressType, tokenIDs: string[], values?: number[], data?: string, fee?: number): Promise<Transaction<any>>;
9
+ balanceOf(_contractAddress: AddressType, _owners: AddressType[], _tokenIDs: number[]): Promise<BigNumber | BigNumber[]>;
10
+ approve(_contract: AddressType, _operator: AddressType, _tokenID: number): Promise<Transaction<any>>;
11
+ approveAll(_contract: AddressType, _operator: AddressType, _state: boolean): Promise<Transaction<any>>;
12
+ isApprovedForAll(_contract: AddressType, _operator: AddressType): Promise<boolean>;
13
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.YacoinNftProvider = void 0;
13
+ const client_1 = require("@yaswap/client");
14
+ const errors_1 = require("@yaswap/errors");
15
+ const types_1 = require("@yaswap/types");
16
+ const utils_1 = require("../utils");
17
+ class YacoinNftProvider extends client_1.Nft {
18
+ constructor(walletProvider) {
19
+ super(walletProvider);
20
+ }
21
+ fetch() {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const _addresses = yield this.walletProvider.getUsedAddresses();
24
+ const addresses = _addresses.map((a) => a.toString());
25
+ const data = yield this.walletProvider.getChainProvider().getProvider().getAllNFTUnspentTransactions(addresses);
26
+ const nftAssets = [];
27
+ for (const tokenInfo of data) {
28
+ if (tokenInfo.token_info) {
29
+ const { token_type, amount, units, reissuable, block_hash, ipfs_hash } = tokenInfo.token_info;
30
+ // Sanity check NFT
31
+ if (token_type !== 'Unique-token' || amount !== 1 || units !== 0 || reissuable !== false) {
32
+ console.warn(`Invalid nft ${tokenInfo.token_name}`);
33
+ }
34
+ else {
35
+ // Parse NFT name
36
+ // Workaround for displaying YA-NFT created by sub YA-Token
37
+ const fullNFTName = tokenInfo.token_name.split('/').join('|');
38
+ const nftCollectionName = fullNFTName.split('#')[0];
39
+ const nftName = fullNFTName.split('#')[1];
40
+ // Get NFT metdata
41
+ const nftMetadata = yield (0, utils_1.getTokenMetadata)(ipfs_hash);
42
+ nftAssets.push({
43
+ token_id: fullNFTName,
44
+ asset_contract: {
45
+ address: block_hash,
46
+ image_url: nftMetadata.imageURL,
47
+ name: nftName,
48
+ symbol: nftName,
49
+ ipfs_hash,
50
+ },
51
+ collection: {
52
+ name: nftCollectionName,
53
+ },
54
+ description: nftMetadata.description,
55
+ image_original_url: nftMetadata.imageURL,
56
+ image_preview_url: nftMetadata.imageURL,
57
+ image_thumbnail_url: nftMetadata.imageURL,
58
+ name: nftName,
59
+ metadataName: nftMetadata.name,
60
+ });
61
+ }
62
+ }
63
+ }
64
+ return nftAssets;
65
+ });
66
+ }
67
+ transfer(contract, receiver, tokenIDs, values, data, fee) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ return yield this.walletProvider.sendTransaction({
70
+ to: receiver,
71
+ value: new types_1.BigNumber(1e6),
72
+ asset: {
73
+ contractAddress: contract.toString(),
74
+ chain: types_1.ChainId.Yacoin,
75
+ decimals: 0,
76
+ code: tokenIDs[0],
77
+ name: tokenIDs[0],
78
+ type: types_1.AssetTypes.nft,
79
+ },
80
+ fee
81
+ });
82
+ });
83
+ }
84
+ balanceOf(_contractAddress, _owners, _tokenIDs) {
85
+ throw new errors_1.UnsupportedMethodError('Method not supported');
86
+ }
87
+ approve(_contract, _operator, _tokenID) {
88
+ throw new errors_1.UnsupportedMethodError('Method not supported');
89
+ }
90
+ approveAll(_contract, _operator, _state) {
91
+ throw new errors_1.UnsupportedMethodError('Method not supported');
92
+ }
93
+ isApprovedForAll(_contract, _operator) {
94
+ throw new errors_1.UnsupportedMethodError('Method not supported');
95
+ }
96
+ }
97
+ exports.YacoinNftProvider = YacoinNftProvider;
98
+ //# sourceMappingURL=YacoinNftProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YacoinNftProvider.js","sourceRoot":"","sources":["../../../lib/nft/YacoinNftProvider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { Network } from '@yaswap/types';
2
+ import { Network, TokenScriptType } from '@yaswap/types';
3
3
  import { Network as YacoinJsLibNetwork } from '@yaswap/yacoinjs-lib';
4
4
  export * as YacoinEsploraTypes from './chain/esplora/types';
5
5
  export * from './swap/types';
@@ -18,7 +18,10 @@ export interface YacoinHDWalletProviderOptions extends YacoinWalletProviderOptio
18
18
  export interface OutputTarget {
19
19
  address?: string;
20
20
  script?: Buffer;
21
+ tokenName?: string;
22
+ token_value?: number;
21
23
  value: number;
24
+ tokenScriptType?: TokenScriptType;
22
25
  }
23
26
  export interface ScriptPubKey {
24
27
  asm: string;
@@ -60,7 +63,9 @@ export interface UTXO {
60
63
  txid: string;
61
64
  vout: number;
62
65
  value: number;
66
+ token_value?: number;
63
67
  address: string;
68
+ script?: string;
64
69
  derivationPath?: string;
65
70
  }
66
71
  export declare enum AddressType {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,4EAA4D;AAC5D,+CAA6B;AAsE7B,IAAY,WAEX;AAFD,WAAY,WAAW;IACnB,gCAAiB,CAAA;AACrB,CAAC,EAFW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAEtB;AAED,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,yBAAa,CAAA;AACjB,CAAC,EAFW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAEnB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,4EAA4D;AAC5D,+CAA6B;AA2E7B,IAAY,WAEX;AAFD,WAAY,WAAW;IACnB,gCAAiB,CAAA;AACrB,CAAC,EAFW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAEtB;AAED,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,yBAAa,CAAA;AACjB,CAAC,EAFW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAEnB"}
@@ -2,6 +2,14 @@
2
2
  import { AddressType, Transaction } from '@yaswap/types';
3
3
  import { YacoinNetwork, Transaction as YacoinTransaction, UTXO } from './types';
4
4
  declare const AddressTypes: string[];
5
+ interface TokenMetadata {
6
+ name?: string;
7
+ description?: string;
8
+ imageURL?: string;
9
+ }
10
+ declare const timelockFeeDuration: () => number;
11
+ declare const timelockFeeAmountInSatoshis: () => number;
12
+ declare const timelockFeeAmount: () => number;
5
13
  declare function calculateFee(numInputs: number, numOutputs: number, feePerByte: number): number;
6
14
  /**
7
15
  * Get compressed pubKey from pubKey.
@@ -11,14 +19,17 @@ declare function calculateFee(numInputs: number, numOutputs: number, feePerByte:
11
19
  declare function compressPubKey(pubKey: string): string;
12
20
  declare type CoinSelectTarget = {
13
21
  value: number;
22
+ tokenName?: string;
23
+ token_value?: number;
14
24
  script?: Buffer;
15
25
  id?: string;
16
26
  };
17
- declare function selectCoins(utxos: UTXO[], targets: CoinSelectTarget[], feePerByte: number, fixedInputs?: UTXO[]): {
27
+ declare function selectCoins(utxos: UTXO[], tokenUtxos: UTXO[], targets: CoinSelectTarget[], feePerByte: number, fixedInputs?: UTXO[]): {
18
28
  inputs: UTXO[];
19
29
  outputs: CoinSelectTarget[];
20
30
  fee: number;
21
- change: CoinSelectTarget;
31
+ coinChange: CoinSelectTarget;
32
+ tokenChange: CoinSelectTarget;
22
33
  };
23
34
  declare function decodeRawTransaction(hex: string, network: YacoinNetwork): YacoinTransaction;
24
35
  declare function normalizeTransactionObject(tx: YacoinTransaction, fee: number, block?: {
@@ -27,4 +38,5 @@ declare function normalizeTransactionObject(tx: YacoinTransaction, fee: number,
27
38
  }): Transaction<YacoinTransaction>;
28
39
  declare function getPubKeyHash(address: string, network: YacoinNetwork): Buffer;
29
40
  declare function validateAddress(_address: AddressType, network: YacoinNetwork): void;
30
- export { calculateFee, compressPubKey, CoinSelectTarget, selectCoins, decodeRawTransaction, normalizeTransactionObject, AddressTypes, getPubKeyHash, validateAddress, };
41
+ declare function getTokenMetadata(ipfsHash: string): Promise<TokenMetadata>;
42
+ export { calculateFee, compressPubKey, CoinSelectTarget, selectCoins, decodeRawTransaction, normalizeTransactionObject, AddressTypes, getPubKeyHash, validateAddress, getTokenMetadata, timelockFeeDuration, timelockFeeAmountInSatoshis, timelockFeeAmount };