@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/dist/lib/utils.js CHANGED
@@ -22,19 +22,44 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
25
34
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
36
  };
28
37
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.validateAddress = exports.getPubKeyHash = exports.AddressTypes = exports.normalizeTransactionObject = exports.decodeRawTransaction = exports.selectCoins = exports.compressPubKey = exports.calculateFee = void 0;
38
+ exports.timelockFeeAmount = exports.timelockFeeAmountInSatoshis = exports.timelockFeeDuration = exports.getTokenMetadata = exports.validateAddress = exports.getPubKeyHash = exports.AddressTypes = exports.normalizeTransactionObject = exports.decodeRawTransaction = exports.selectCoins = exports.compressPubKey = exports.calculateFee = void 0;
30
39
  const errors_1 = require("@yaswap/errors");
31
40
  const types_1 = require("@yaswap/types");
41
+ const client_1 = require("@yaswap/client");
32
42
  const yacoin = __importStar(require("@yaswap/yacoinjs-lib"));
33
43
  const classify = __importStar(require("@yaswap/yacoinjs-lib/src/classify"));
34
- const coinselect_1 = __importDefault(require("coinselect"));
35
- const accumulative_1 = __importDefault(require("coinselect/accumulative"));
44
+ const yacoinjs_coinselect_1 = __importDefault(require("@yaswap/yacoinjs-coinselect"));
45
+ const accumulative_1 = require("@yaswap/yacoinjs-coinselect/accumulative");
36
46
  const AddressTypes = ['legacy', 'p2sh-segwit', 'bech32'];
37
47
  exports.AddressTypes = AddressTypes;
48
+ // JUST FOR TESTING
49
+ const TIMELOCK_FEE_DURATION = 10; // 21000 blocks
50
+ const TIMELOCK_FEE_AMOUNT = 10 * 1e6; // 2100 YAC
51
+ const timelockFeeDuration = () => {
52
+ return TIMELOCK_FEE_DURATION;
53
+ };
54
+ exports.timelockFeeDuration = timelockFeeDuration;
55
+ const timelockFeeAmountInSatoshis = () => {
56
+ return TIMELOCK_FEE_AMOUNT;
57
+ };
58
+ exports.timelockFeeAmountInSatoshis = timelockFeeAmountInSatoshis;
59
+ const timelockFeeAmount = () => {
60
+ return TIMELOCK_FEE_AMOUNT / 1e6;
61
+ };
62
+ exports.timelockFeeAmount = timelockFeeAmount;
38
63
  function calculateFee(numInputs, numOutputs, feePerByte) {
39
64
  // {
40
65
  // "txid" : "bc744444f5410e5b03639a0a92d37737b4fa2d6d6f1e97c5a6ed0390e2acfbcf",
@@ -86,11 +111,11 @@ function compressPubKey(pubKey) {
86
111
  return prefix + x;
87
112
  }
88
113
  exports.compressPubKey = compressPubKey;
89
- function selectCoins(utxos, targets, feePerByte, fixedInputs = []) {
114
+ function selectCoins(utxos, tokenUtxos, targets, feePerByte, fixedInputs = []) {
90
115
  let selectUtxos = utxos;
91
116
  // Default coinselect won't accumulate some inputs
92
117
  // TODO: does coinselect need to be modified to ABSOLUTELY not skip an input?
93
- const coinselectStrat = fixedInputs.length ? accumulative_1.default : coinselect_1.default;
118
+ const coinselectStrat = fixedInputs.length ? accumulative_1.accumulativeCoin : yacoinjs_coinselect_1.default;
94
119
  if (fixedInputs.length) {
95
120
  selectUtxos = [
96
121
  // Order fixed inputs to the start of the list so they are used
@@ -98,12 +123,14 @@ function selectCoins(utxos, targets, feePerByte, fixedInputs = []) {
98
123
  ...utxos.filter((utxo) => !fixedInputs.find((input) => input.vout === utxo.vout && input.txid === utxo.txid)),
99
124
  ];
100
125
  }
101
- const { inputs, outputs, fee } = coinselectStrat(selectUtxos, targets, Math.ceil(feePerByte));
102
- let change;
126
+ const { inputs, outputs, fee } = coinselectStrat(selectUtxos, tokenUtxos, targets, Math.ceil(feePerByte));
127
+ let coinChange;
128
+ let tokenChange;
103
129
  if (inputs && outputs) {
104
- change = outputs.find((output) => output.id !== 'main');
130
+ coinChange = outputs.find((output) => output.id === 'coin_change');
131
+ tokenChange = outputs.find((output) => output.id === 'token_change');
105
132
  }
106
- return { inputs, outputs, fee, change };
133
+ return { inputs, outputs, fee, coinChange, tokenChange };
107
134
  }
108
135
  exports.selectCoins = selectCoins;
109
136
  const OUTPUT_TYPES_MAP = {
@@ -213,4 +240,28 @@ function validateAddress(_address, network) {
213
240
  }
214
241
  }
215
242
  exports.validateAddress = validateAddress;
243
+ function getTokenMetadata(ipfsHash) {
244
+ var _a;
245
+ return __awaiter(this, void 0, void 0, function* () {
246
+ if (!ipfsHash) {
247
+ return {};
248
+ }
249
+ const ipfsHashUrl = `https://ipfs.io/ipfs/${ipfsHash}`;
250
+ const headers = yield client_1.HttpClient.head(ipfsHashUrl);
251
+ let metadata = {};
252
+ if (headers['content-type'] === 'application/json') {
253
+ const { name, description, image } = yield client_1.HttpClient.get(ipfsHashUrl);
254
+ metadata = {
255
+ name,
256
+ description,
257
+ imageURL: image.replace('ipfs://', 'https://ipfs.io/ipfs/')
258
+ };
259
+ }
260
+ else if ((_a = headers['content-type']) === null || _a === void 0 ? void 0 : _a.startsWith('image')) {
261
+ metadata.imageURL = ipfsHashUrl;
262
+ }
263
+ return metadata;
264
+ });
265
+ }
266
+ exports.getTokenMetadata = getTokenMetadata;
216
267
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { Chain, Wallet } from '@yaswap/client';
3
- import { Address, AddressType, Asset, Transaction, TransactionRequest } from '@yaswap/types';
3
+ import { Address, AddressType, Asset, Transaction, TransactionRequest, CreateTokenTransaction } from '@yaswap/types';
4
4
  import { BIP32Interface } from 'bip32';
5
5
  import { payments } from '@yaswap/yacoinjs-lib';
6
6
  import { YacoinBaseChainProvider } from '../chain/YacoinBaseChainProvider';
@@ -37,6 +37,7 @@ export declare abstract class YacoinBaseWalletProvider<T extends YacoinBaseChain
37
37
  getUnusedAddress(change?: boolean, numAddressPerCall?: number): Promise<Address>;
38
38
  getUsedAddresses(numAddressPerCall?: number): Promise<Address[]>;
39
39
  getAddresses(startingIndex?: number, numAddresses?: number, change?: boolean): Promise<Address[]>;
40
+ createToken(options: CreateTokenTransaction): Promise<Transaction>;
40
41
  sendTransaction(options: TransactionRequest): Promise<Transaction<YaTransaction>>;
41
42
  sendBatchTransaction(transactions: TransactionRequest[]): Promise<Transaction<YaTransaction>[]>;
42
43
  sendSweepTransaction(externalChangeAddress: AddressType, _asset: Asset, feePerByte: number): Promise<Transaction<YaTransaction>>;
@@ -55,12 +56,18 @@ export declare abstract class YacoinBaseWalletProvider<T extends YacoinBaseChain
55
56
  }>;
56
57
  protected withCachedUtxos(func: () => any): Promise<any>;
57
58
  protected getTotalFee(opts: TransactionRequest, max: boolean): Promise<number>;
58
- protected getInputsForAmount(_targets: OutputTarget[], feePerByte?: number, fixedInputs?: Input[], numAddressPerCall?: number, sweep?: boolean): Promise<{
59
+ protected getInputsForAmount(_targets: OutputTarget[], feePerByte?: number, fixedInputs?: Input[], sweep?: boolean): Promise<{
59
60
  inputs: UTXO[];
60
- change: CoinSelectTarget;
61
+ coinChange: CoinSelectTarget;
62
+ tokenChange: CoinSelectTarget;
61
63
  outputs: CoinSelectTarget[];
62
64
  fee: number;
63
65
  }>;
66
+ protected compileTokenTransferTarget(address: string, tokenName: string, tokenValue: number): OutputTarget;
67
+ protected compileNewTokenTarget(address: string, tokenName: string, tokenAmount: number, decimals: number, reissuable: Boolean, ipfsHash: string): OutputTarget;
68
+ protected compileTokenOwnerTarget(address: string, ownerTokenName: string): OutputTarget;
69
+ protected compileTimelockFeesTarget(address: string): OutputTarget;
70
+ protected tokenInfoToOutputs(transaction: CreateTokenTransaction): OutputTarget[];
64
71
  protected sendOptionsToOutputs(transactions: TransactionRequest[]): OutputTarget[];
65
72
  protected getAddressFromPublicKey(publicKey: Buffer): string;
66
73
  protected getPaymentVariantFromPublicKey(publicKey: Buffer): payments.Payment;