@airgap/mina 0.13.45-beta.3 → 0.13.45-beta.5

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.
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -15,46 +26,71 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
26
  }) : function(o, v) {
16
27
  o["default"] = v;
17
28
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (_) try {
52
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
35
72
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
73
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
74
  };
38
75
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.MINA_TESTNET_PROTOCOL_NETWORK = exports.MINA_MAINNET_PROTOCOL_NETWORK = exports.MinaProtocolImpl = void 0;
40
- exports.createMinaProtocol = createMinaProtocol;
41
- exports.createMinaProtocolOptions = createMinaProtocolOptions;
42
- const coinlib_core_1 = require("@airgap/coinlib-core");
43
- const bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
76
+ exports.createMinaProtocolOptions = exports.MINA_TESTNET_PROTOCOL_NETWORK = exports.MINA_MAINNET_PROTOCOL_NETWORK = exports.createMinaProtocol = exports.MinaProtocolImpl = void 0;
77
+ var coinlib_core_1 = require("@airgap/coinlib-core");
78
+ var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
44
79
  // @ts-ignore
45
- const BitGo = __importStar(require("@airgap/coinlib-core/dependencies/src/bitgo-utxo-lib-5d91049fd7a988382df81c8260e244ee56d57aac/src"));
46
- const errors_1 = require("@airgap/coinlib-core/errors");
47
- const crypto_1 = require("@airgap/crypto");
48
- const module_kit_1 = require("@airgap/module-kit");
49
- const mina_signer_1 = __importDefault(require("mina-signer"));
50
- const MinaExplorerIndexer_1 = require("../indexer/MinaExplorerIndexer");
51
- const GraphQLNode_1 = require("../node/GraphQLNode");
52
- const indexer_1 = require("../types/indexer");
53
- const key_1 = require("../utils/key");
54
- const math_1 = require("../utils/math");
80
+ var BitGo = __importStar(require("@airgap/coinlib-core/dependencies/src/bitgo-utxo-lib-5d91049fd7a988382df81c8260e244ee56d57aac/src"));
81
+ var errors_1 = require("@airgap/coinlib-core/errors");
82
+ var crypto_1 = require("@airgap/crypto");
83
+ var module_kit_1 = require("@airgap/module-kit");
84
+ var mina_signer_1 = __importDefault(require("mina-signer"));
85
+ var MinaExplorerIndexer_1 = require("../indexer/MinaExplorerIndexer");
86
+ var GraphQLNode_1 = require("../node/GraphQLNode");
87
+ var indexer_1 = require("../types/indexer");
88
+ var key_1 = require("../utils/key");
89
+ var math_1 = require("../utils/math");
55
90
  // Implementation
56
- class MinaProtocolImpl {
57
- constructor(options = {}, node, indexer) {
91
+ var MinaProtocolImpl = /** @class */ (function () {
92
+ function MinaProtocolImpl(options, node, indexer) {
93
+ if (options === void 0) { options = {}; }
58
94
  this.bitcoinJS = {
59
95
  lib: BitGo,
60
96
  config: { network: BitGo.networks.bitcoin }
@@ -72,7 +108,7 @@ class MinaProtocolImpl {
72
108
  units: this.units,
73
109
  mainUnit: 'MINA',
74
110
  account: {
75
- standardDerivationPath: `m/44'/12586'/0'/0/0`,
111
+ standardDerivationPath: "m/44'/12586'/0'/0/0",
76
112
  address: {
77
113
  isCaseSensitive: true,
78
114
  regex: '^B62[a-km-zA-HJ-NP-Z1-9]{52}$',
@@ -85,19 +121,31 @@ class MinaProtocolImpl {
85
121
  algorithm: 'secp256k1'
86
122
  };
87
123
  this.options = createMinaProtocolOptions(options.network);
88
- this.node = node ?? new GraphQLNode_1.GraphQLNode(this.options.network.rpcUrl);
89
- this.indexer = indexer ?? new MinaExplorerIndexer_1.MinaExplorerIndexer(this.options.network.blockExplorerApi);
90
- }
91
- async getMetadata() {
92
- return this.metadata;
93
- }
94
- async getAddressFromPublicKey(publicKey) {
95
- return publicKey.value;
124
+ this.node = node !== null && node !== void 0 ? node : new GraphQLNode_1.GraphQLNode(this.options.network.rpcUrl);
125
+ this.indexer = indexer !== null && indexer !== void 0 ? indexer : new MinaExplorerIndexer_1.MinaExplorerIndexer(this.options.network.blockExplorerApi);
96
126
  }
97
- async getDetailsFromTransaction(transaction, publicKey) {
98
- return this.getDetailsFromMinaPayment(publicKey, transaction.data);
99
- }
100
- getDetailsFromMinaPayment(publicKey, payment) {
127
+ MinaProtocolImpl.prototype.getMetadata = function () {
128
+ return __awaiter(this, void 0, void 0, function () {
129
+ return __generator(this, function (_a) {
130
+ return [2 /*return*/, this.metadata];
131
+ });
132
+ });
133
+ };
134
+ MinaProtocolImpl.prototype.getAddressFromPublicKey = function (publicKey) {
135
+ return __awaiter(this, void 0, void 0, function () {
136
+ return __generator(this, function (_a) {
137
+ return [2 /*return*/, publicKey.value];
138
+ });
139
+ });
140
+ };
141
+ MinaProtocolImpl.prototype.getDetailsFromTransaction = function (transaction, publicKey) {
142
+ return __awaiter(this, void 0, void 0, function () {
143
+ return __generator(this, function (_a) {
144
+ return [2 /*return*/, this.getDetailsFromMinaPayment(publicKey, transaction.data)];
145
+ });
146
+ });
147
+ };
148
+ MinaProtocolImpl.prototype.getDetailsFromMinaPayment = function (publicKey, payment) {
101
149
  return [
102
150
  {
103
151
  from: [payment.from],
@@ -109,145 +157,233 @@ class MinaProtocolImpl {
109
157
  network: this.options.network
110
158
  }
111
159
  ];
112
- }
113
- async getCryptoConfiguration() {
114
- return this.cryptoConfiguration;
115
- }
116
- async getKeyPairFromDerivative(derivative) {
117
- const node = this.derivativeToBip32Node(derivative);
118
- const secretKey = (0, key_1.finalizeSecretKey)(node.keyPair.getPrivateKeyBuffer());
119
- return {
120
- secretKey,
121
- publicKey: (0, key_1.derivePublicKey)(this.getMinaClient(), secretKey)
122
- };
123
- }
124
- async signTransactionWithSecretKey(transaction, secretKey) {
125
- const client = this.getMinaClient(transaction.networkType);
126
- const signed = client.signPayment({
127
- to: transaction.data.to,
128
- from: transaction.data.from,
129
- amount: transaction.data.amount,
130
- fee: transaction.data.fee,
131
- nonce: transaction.data.nonce,
132
- memo: transaction.data.memo,
133
- validUntil: transaction.data.validUntil
134
- }, secretKey.value);
135
- return (0, module_kit_1.newSignedTransaction)({
136
- data: {
137
- to: signed.data.to,
138
- from: signed.data.from,
139
- amount: signed.data.amount.toString(),
140
- fee: signed.data.fee.toString(),
141
- nonce: signed.data.nonce.toString(),
142
- memo: signed.data.memo,
143
- validUntil: signed.data.validUntil?.toString()
144
- },
145
- signature: {
146
- type: 'legacy',
147
- field: signed.signature.field,
148
- scalar: signed.signature.scalar
149
- }
160
+ };
161
+ MinaProtocolImpl.prototype.getCryptoConfiguration = function () {
162
+ return __awaiter(this, void 0, void 0, function () {
163
+ return __generator(this, function (_a) {
164
+ return [2 /*return*/, this.cryptoConfiguration];
165
+ });
150
166
  });
151
- }
167
+ };
168
+ MinaProtocolImpl.prototype.getKeyPairFromDerivative = function (derivative) {
169
+ return __awaiter(this, void 0, void 0, function () {
170
+ var node, secretKey;
171
+ return __generator(this, function (_a) {
172
+ node = this.derivativeToBip32Node(derivative);
173
+ secretKey = (0, key_1.finalizeSecretKey)(node.keyPair.getPrivateKeyBuffer());
174
+ return [2 /*return*/, {
175
+ secretKey: secretKey,
176
+ publicKey: (0, key_1.derivePublicKey)(this.getMinaClient(), secretKey)
177
+ }];
178
+ });
179
+ });
180
+ };
181
+ MinaProtocolImpl.prototype.signTransactionWithSecretKey = function (transaction, secretKey) {
182
+ var _a;
183
+ return __awaiter(this, void 0, void 0, function () {
184
+ var client, signed;
185
+ return __generator(this, function (_b) {
186
+ client = this.getMinaClient(transaction.networkType);
187
+ signed = client.signPayment({
188
+ to: transaction.data.to,
189
+ from: transaction.data.from,
190
+ amount: transaction.data.amount,
191
+ fee: transaction.data.fee,
192
+ nonce: transaction.data.nonce,
193
+ memo: transaction.data.memo,
194
+ validUntil: transaction.data.validUntil
195
+ }, secretKey.value);
196
+ return [2 /*return*/, (0, module_kit_1.newSignedTransaction)({
197
+ data: {
198
+ to: signed.data.to,
199
+ from: signed.data.from,
200
+ amount: signed.data.amount.toString(),
201
+ fee: signed.data.fee.toString(),
202
+ nonce: signed.data.nonce.toString(),
203
+ memo: signed.data.memo,
204
+ validUntil: (_a = signed.data.validUntil) === null || _a === void 0 ? void 0 : _a.toString()
205
+ },
206
+ signature: {
207
+ type: 'legacy',
208
+ field: signed.signature.field,
209
+ scalar: signed.signature.scalar
210
+ }
211
+ })];
212
+ });
213
+ });
214
+ };
152
215
  // Online
153
- async getNetwork() {
154
- return this.options.network;
155
- }
156
- async getTransactionsForPublicKey(publicKey, limit, cursor) {
157
- const transactions = await this.indexer.getTransactions(publicKey.value, limit, cursor?.lastDateTime);
158
- const lastDateTime = transactions[transactions.length - 1]?.dateTime;
159
- const hasNext = transactions.length >= limit;
160
- const airGapTransactions = transactions.map((transaction) => ({
161
- from: [transaction.from],
162
- to: [transaction.to],
163
- isInbound: transaction.to === publicKey.value,
164
- amount: (0, module_kit_1.newAmount)(transaction.amount, 'blockchain'),
165
- fee: (0, module_kit_1.newAmount)(transaction.fee, 'blockchain'),
166
- arbitraryData: transaction.memo,
167
- network: this.options.network,
168
- type: transaction.kind !== indexer_1.ACCOUNT_TRANSFER_KIND ? transaction.kind : undefined,
169
- timestamp: Date.parse(transaction.dateTime),
170
- status: {
171
- type: transaction.hash ? 'applied' : transaction.failureReason ? 'failed' : 'unknown',
172
- hash: transaction.hash
173
- }
174
- }));
175
- return {
176
- transactions: airGapTransactions,
177
- cursor: {
178
- hasNext,
179
- lastDateTime
180
- }
181
- };
182
- }
183
- async getBalanceOfPublicKey(publicKey) {
184
- const balance = await this.node.getBalance(publicKey.value);
185
- return {
186
- total: (0, module_kit_1.newAmount)(balance.total, 'blockchain'),
187
- transferable: (0, module_kit_1.newAmount)(balance.liquid, 'blockchain')
188
- };
189
- }
190
- async getTransactionMaxAmountWithPublicKey(publicKey, _to, configuration) {
191
- const balance = await this.node.getBalance(publicKey.value);
192
- const fee = configuration?.fee ? (0, module_kit_1.newAmount)(configuration.fee).blockchain(this.units).value : '0';
193
- const maxAmount = new bignumber_1.default(balance.liquid).minus(fee);
194
- return (0, module_kit_1.newAmount)(maxAmount, 'blockchain');
195
- }
196
- async getTransactionFeeWithPublicKey(_publicKey, _details, _configuration) {
197
- const fees = await this.indexer.getLatestFees(20);
198
- const feesQuantile = (q) => (0, math_1.quantile)(fees, q, {
199
- isSorted: true /* `getLatestFees` returns an already sorted (ASC) list */,
200
- roundingMode: bignumber_1.default.ROUND_CEIL
216
+ MinaProtocolImpl.prototype.getNetwork = function () {
217
+ return __awaiter(this, void 0, void 0, function () {
218
+ return __generator(this, function (_a) {
219
+ return [2 /*return*/, this.options.network];
220
+ });
201
221
  });
202
- return {
203
- low: (0, module_kit_1.newAmount)(feesQuantile(0.25), 'blockchain'),
204
- medium: (0, module_kit_1.newAmount)(feesQuantile(0.5), 'blockchain'),
205
- high: (0, module_kit_1.newAmount)(feesQuantile(0.75), 'blockchain')
206
- };
207
- }
208
- async prepareTransactionWithPublicKey(publicKey, details, configuration) {
209
- if (details.length !== 1) {
210
- throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.MINA, 'Multiple transactions not supported.');
211
- }
212
- const paymentDetails = details[0];
213
- const nonce = await this.node.getNonce(publicKey.value);
214
- const fee = configuration?.fee ?? (await this.getTransactionFeeWithPublicKey(publicKey, details, configuration)).medium;
215
- const balance = await this.getBalanceOfPublicKey(publicKey);
216
- const amountBlockchain = (0, module_kit_1.newAmount)(paymentDetails.amount).blockchain(this.units);
217
- const feeBlockchain = (0, module_kit_1.newAmount)(fee).blockchain(this.units);
218
- const transferableBlockchain = (0, module_kit_1.newAmount)(balance.transferable ?? balance.total).blockchain(this.units);
219
- if (new bignumber_1.default(transferableBlockchain.value).minus(amountBlockchain.value).minus(feeBlockchain.value).lt(0)) {
220
- throw new errors_1.BalanceError(coinlib_core_1.Domain.MINA, 'Insfficient balance.');
221
- }
222
- return (0, module_kit_1.newUnsignedTransaction)({
223
- networkType: this.options.network.minaType,
224
- data: {
225
- to: paymentDetails.to,
226
- from: publicKey.value,
227
- amount: amountBlockchain.value,
228
- fee: feeBlockchain.value,
229
- nonce,
230
- memo: paymentDetails.arbitraryData
231
- }
222
+ };
223
+ MinaProtocolImpl.prototype.getTransactionsForPublicKey = function (publicKey, limit, cursor) {
224
+ var _a;
225
+ return __awaiter(this, void 0, void 0, function () {
226
+ var transactions, lastDateTime, hasNext, airGapTransactions;
227
+ var _this = this;
228
+ return __generator(this, function (_b) {
229
+ switch (_b.label) {
230
+ case 0: return [4 /*yield*/, this.indexer.getTransactions(publicKey.value, limit, cursor === null || cursor === void 0 ? void 0 : cursor.lastDateTime)];
231
+ case 1:
232
+ transactions = _b.sent();
233
+ lastDateTime = (_a = transactions[transactions.length - 1]) === null || _a === void 0 ? void 0 : _a.dateTime;
234
+ hasNext = transactions.length >= limit;
235
+ airGapTransactions = transactions.map(function (transaction) { return ({
236
+ from: [transaction.from],
237
+ to: [transaction.to],
238
+ isInbound: transaction.to === publicKey.value,
239
+ amount: (0, module_kit_1.newAmount)(transaction.amount, 'blockchain'),
240
+ fee: (0, module_kit_1.newAmount)(transaction.fee, 'blockchain'),
241
+ arbitraryData: transaction.memo,
242
+ network: _this.options.network,
243
+ type: transaction.kind !== indexer_1.ACCOUNT_TRANSFER_KIND ? transaction.kind : undefined,
244
+ timestamp: Date.parse(transaction.dateTime),
245
+ status: {
246
+ type: transaction.hash ? 'applied' : transaction.failureReason ? 'failed' : 'unknown',
247
+ hash: transaction.hash
248
+ }
249
+ }); });
250
+ return [2 /*return*/, {
251
+ transactions: airGapTransactions,
252
+ cursor: {
253
+ hasNext: hasNext,
254
+ lastDateTime: lastDateTime
255
+ }
256
+ }];
257
+ }
258
+ });
232
259
  });
233
- }
234
- async broadcastTransaction(transaction) {
235
- return this.node.sendTransaction(transaction.data, transaction.signature);
236
- }
260
+ };
261
+ MinaProtocolImpl.prototype.getBalanceOfPublicKey = function (publicKey) {
262
+ return __awaiter(this, void 0, void 0, function () {
263
+ var balance;
264
+ return __generator(this, function (_a) {
265
+ switch (_a.label) {
266
+ case 0: return [4 /*yield*/, this.node.getBalance(publicKey.value)];
267
+ case 1:
268
+ balance = _a.sent();
269
+ return [2 /*return*/, {
270
+ total: (0, module_kit_1.newAmount)(balance.total, 'blockchain'),
271
+ transferable: (0, module_kit_1.newAmount)(balance.liquid, 'blockchain')
272
+ }];
273
+ }
274
+ });
275
+ });
276
+ };
277
+ MinaProtocolImpl.prototype.getTransactionMaxAmountWithPublicKey = function (publicKey, _to, configuration) {
278
+ return __awaiter(this, void 0, void 0, function () {
279
+ var balance, fee, maxAmount;
280
+ return __generator(this, function (_a) {
281
+ switch (_a.label) {
282
+ case 0: return [4 /*yield*/, this.node.getBalance(publicKey.value)];
283
+ case 1:
284
+ balance = _a.sent();
285
+ fee = (configuration === null || configuration === void 0 ? void 0 : configuration.fee) ? (0, module_kit_1.newAmount)(configuration.fee).blockchain(this.units).value : '0';
286
+ maxAmount = new bignumber_1.default(balance.liquid).minus(fee);
287
+ return [2 /*return*/, (0, module_kit_1.newAmount)(maxAmount, 'blockchain')];
288
+ }
289
+ });
290
+ });
291
+ };
292
+ MinaProtocolImpl.prototype.getTransactionFeeWithPublicKey = function (_publicKey, _details, _configuration) {
293
+ return __awaiter(this, void 0, void 0, function () {
294
+ var fees, feesQuantile;
295
+ return __generator(this, function (_a) {
296
+ switch (_a.label) {
297
+ case 0: return [4 /*yield*/, this.indexer.getLatestFees(20)];
298
+ case 1:
299
+ fees = _a.sent();
300
+ feesQuantile = function (q) {
301
+ return (0, math_1.quantile)(fees, q, {
302
+ isSorted: true /* `getLatestFees` returns an already sorted (ASC) list */,
303
+ roundingMode: bignumber_1.default.ROUND_CEIL
304
+ });
305
+ };
306
+ return [2 /*return*/, {
307
+ low: (0, module_kit_1.newAmount)(feesQuantile(0.25), 'blockchain'),
308
+ medium: (0, module_kit_1.newAmount)(feesQuantile(0.5), 'blockchain'),
309
+ high: (0, module_kit_1.newAmount)(feesQuantile(0.75), 'blockchain')
310
+ }];
311
+ }
312
+ });
313
+ });
314
+ };
315
+ MinaProtocolImpl.prototype.prepareTransactionWithPublicKey = function (publicKey, details, configuration) {
316
+ var _a, _b;
317
+ return __awaiter(this, void 0, void 0, function () {
318
+ var paymentDetails, nonce, fee, _c, balance, amountBlockchain, feeBlockchain, transferableBlockchain;
319
+ return __generator(this, function (_d) {
320
+ switch (_d.label) {
321
+ case 0:
322
+ if (details.length !== 1) {
323
+ throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.MINA, 'Multiple transactions not supported.');
324
+ }
325
+ paymentDetails = details[0];
326
+ return [4 /*yield*/, this.node.getNonce(publicKey.value)];
327
+ case 1:
328
+ nonce = _d.sent();
329
+ if (!((_a = configuration === null || configuration === void 0 ? void 0 : configuration.fee) !== null && _a !== void 0)) return [3 /*break*/, 2];
330
+ _c = _a;
331
+ return [3 /*break*/, 4];
332
+ case 2: return [4 /*yield*/, this.getTransactionFeeWithPublicKey(publicKey, details, configuration)];
333
+ case 3:
334
+ _c = (_d.sent()).medium;
335
+ _d.label = 4;
336
+ case 4:
337
+ fee = _c;
338
+ return [4 /*yield*/, this.getBalanceOfPublicKey(publicKey)];
339
+ case 5:
340
+ balance = _d.sent();
341
+ amountBlockchain = (0, module_kit_1.newAmount)(paymentDetails.amount).blockchain(this.units);
342
+ feeBlockchain = (0, module_kit_1.newAmount)(fee).blockchain(this.units);
343
+ transferableBlockchain = (0, module_kit_1.newAmount)((_b = balance.transferable) !== null && _b !== void 0 ? _b : balance.total).blockchain(this.units);
344
+ if (new bignumber_1.default(transferableBlockchain.value).minus(amountBlockchain.value).minus(feeBlockchain.value).lt(0)) {
345
+ throw new errors_1.BalanceError(coinlib_core_1.Domain.MINA, 'Insfficient balance.');
346
+ }
347
+ return [2 /*return*/, (0, module_kit_1.newUnsignedTransaction)({
348
+ networkType: this.options.network.minaType,
349
+ data: {
350
+ to: paymentDetails.to,
351
+ from: publicKey.value,
352
+ amount: amountBlockchain.value,
353
+ fee: feeBlockchain.value,
354
+ nonce: nonce,
355
+ memo: paymentDetails.arbitraryData
356
+ }
357
+ })];
358
+ }
359
+ });
360
+ });
361
+ };
362
+ MinaProtocolImpl.prototype.broadcastTransaction = function (transaction) {
363
+ return __awaiter(this, void 0, void 0, function () {
364
+ return __generator(this, function (_a) {
365
+ return [2 /*return*/, this.node.sendTransaction(transaction.data, transaction.signature)];
366
+ });
367
+ });
368
+ };
237
369
  // Custom
238
- getMinaClient(network = this.options.network.minaType) {
239
- return new mina_signer_1.default({ network });
240
- }
241
- derivativeToBip32Node(derivative) {
242
- const bip32Node = (0, crypto_1.encodeDerivative)('bip32', derivative);
370
+ MinaProtocolImpl.prototype.getMinaClient = function (network) {
371
+ if (network === void 0) { network = this.options.network.minaType; }
372
+ return new mina_signer_1.default({ network: network });
373
+ };
374
+ MinaProtocolImpl.prototype.derivativeToBip32Node = function (derivative) {
375
+ var bip32Node = (0, crypto_1.encodeDerivative)('bip32', derivative);
243
376
  return this.bitcoinJS.lib.HDNode.fromBase58(bip32Node.secretKey, this.bitcoinJS.config.network);
244
- }
245
- }
377
+ };
378
+ return MinaProtocolImpl;
379
+ }());
246
380
  exports.MinaProtocolImpl = MinaProtocolImpl;
247
381
  // Factory
248
- function createMinaProtocol(options = {}) {
382
+ function createMinaProtocol(options) {
383
+ if (options === void 0) { options = {}; }
249
384
  return new MinaProtocolImpl(options);
250
385
  }
386
+ exports.createMinaProtocol = createMinaProtocol;
251
387
  exports.MINA_MAINNET_PROTOCOL_NETWORK = {
252
388
  name: 'Mainnet',
253
389
  type: 'mainnet',
@@ -264,10 +400,12 @@ exports.MINA_TESTNET_PROTOCOL_NETWORK = {
264
400
  blockExplorerApi: 'https://devnet.graphql.minaexplorer.com',
265
401
  minaType: 'testnet'
266
402
  };
267
- const DEFAULT_MINA_PROTOCOL_NETWORK = exports.MINA_MAINNET_PROTOCOL_NETWORK;
268
- function createMinaProtocolOptions(network = {}) {
403
+ var DEFAULT_MINA_PROTOCOL_NETWORK = exports.MINA_MAINNET_PROTOCOL_NETWORK;
404
+ function createMinaProtocolOptions(network) {
405
+ if (network === void 0) { network = {}; }
269
406
  return {
270
- network: { ...DEFAULT_MINA_PROTOCOL_NETWORK, ...network }
407
+ network: __assign(__assign({}, DEFAULT_MINA_PROTOCOL_NETWORK), network)
271
408
  };
272
409
  }
410
+ exports.createMinaProtocolOptions = createMinaProtocolOptions;
273
411
  //# sourceMappingURL=MinaProtocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MinaProtocol.js","sourceRoot":"","sources":["../../../src/v1/protocol/MinaProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MinaProtocol.js","sourceRoot":"","sources":["../../../src/v1/protocol/MinaProtocol.ts"],"names":[],"mappings":"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"}