@airgap/mina 0.13.19-beta.10

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 (74) hide show
  1. package/LICENSE.md +7 -0
  2. package/index.d.ts +1 -0
  3. package/index.js +18 -0
  4. package/index.js.map +1 -0
  5. package/package.json +63 -0
  6. package/readme.md +121 -0
  7. package/v1/block-explorer/MinaExplorerBlockExplorer.d.ts +9 -0
  8. package/v1/block-explorer/MinaExplorerBlockExplorer.js +72 -0
  9. package/v1/block-explorer/MinaExplorerBlockExplorer.js.map +1 -0
  10. package/v1/index.d.ts +8 -0
  11. package/v1/index.js +8 -0
  12. package/v1/index.js.map +1 -0
  13. package/v1/indexer/MinaExplorerIndexer.d.ts +8 -0
  14. package/v1/indexer/MinaExplorerIndexer.js +116 -0
  15. package/v1/indexer/MinaExplorerIndexer.js.map +1 -0
  16. package/v1/indexer/MinaIndexer.d.ts +5 -0
  17. package/v1/indexer/MinaIndexer.js +3 -0
  18. package/v1/indexer/MinaIndexer.js.map +1 -0
  19. package/v1/module/MinaModule.d.ts +12 -0
  20. package/v1/module/MinaModule.js +109 -0
  21. package/v1/module/MinaModule.js.map +1 -0
  22. package/v1/module.d.ts +3 -0
  23. package/v1/module.js +24 -0
  24. package/v1/module.js.map +1 -0
  25. package/v1/node/GraphQLNode.d.ts +10 -0
  26. package/v1/node/GraphQLNode.js +115 -0
  27. package/v1/node/GraphQLNode.js.map +1 -0
  28. package/v1/node/MinaNode.d.ts +7 -0
  29. package/v1/node/MinaNode.js +3 -0
  30. package/v1/node/MinaNode.js.map +1 -0
  31. package/v1/protocol/MinaProtocol.d.ts +47 -0
  32. package/v1/protocol/MinaProtocol.js +410 -0
  33. package/v1/protocol/MinaProtocol.js.map +1 -0
  34. package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +7 -0
  35. package/v1/serializer/v3/schemas/converter/transaction-converter.js +37 -0
  36. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -0
  37. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-mina.d.ts +4 -0
  38. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-mina.js +3 -0
  39. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-mina.js.map +1 -0
  40. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-mina.d.ts +3 -0
  41. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-mina.js +3 -0
  42. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-mina.js.map +1 -0
  43. package/v1/serializer/v3/schemas/generated/transaction-sign-request-mina.json +61 -0
  44. package/v1/serializer/v3/schemas/generated/transaction-sign-response-mina.json +19 -0
  45. package/v1/serializer/v3/serializer-companion.d.ts +13 -0
  46. package/v1/serializer/v3/serializer-companion.js +173 -0
  47. package/v1/serializer/v3/serializer-companion.js.map +1 -0
  48. package/v1/serializer/v3/validators/transaction-validator.d.ts +7 -0
  49. package/v1/serializer/v3/validators/transaction-validator.js +90 -0
  50. package/v1/serializer/v3/validators/transaction-validator.js.map +1 -0
  51. package/v1/serializer/v3/validators/validators.d.ts +5 -0
  52. package/v1/serializer/v3/validators/validators.js +118 -0
  53. package/v1/serializer/v3/validators/validators.js.map +1 -0
  54. package/v1/types/crypto.d.ts +2 -0
  55. package/v1/types/crypto.js +3 -0
  56. package/v1/types/crypto.js.map +1 -0
  57. package/v1/types/indexer.d.ts +12 -0
  58. package/v1/types/indexer.js +5 -0
  59. package/v1/types/indexer.js.map +1 -0
  60. package/v1/types/node.d.ts +4 -0
  61. package/v1/types/node.js +3 -0
  62. package/v1/types/node.js.map +1 -0
  63. package/v1/types/protocol.d.ts +10 -0
  64. package/v1/types/protocol.js +3 -0
  65. package/v1/types/protocol.js.map +1 -0
  66. package/v1/types/transaction.d.ts +32 -0
  67. package/v1/types/transaction.js +3 -0
  68. package/v1/types/transaction.js.map +1 -0
  69. package/v1/utils/key.d.ts +5 -0
  70. package/v1/utils/key.js +40 -0
  71. package/v1/utils/key.js.map +1 -0
  72. package/v1/utils/math.d.ts +5 -0
  73. package/v1/utils/math.js +24 -0
  74. package/v1/utils/math.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/v1/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,kDAAgD;AAEhD,0CAAuB;AAEvB,SAAgB,MAAM;IACpB,OAAO,IAAI,uBAAU,EAAE,CAAA;AACzB,CAAC;AAFD,wBAEC"}
@@ -0,0 +1,10 @@
1
+ import { AccountBalance } from '../types/node';
2
+ import { MinaPayment, MinaSignature } from '../types/transaction';
3
+ import { MinaNode } from './MinaNode';
4
+ export declare class GraphQLNode implements MinaNode {
5
+ private readonly url;
6
+ constructor(url: string);
7
+ getNonce(publicKey: string): Promise<string>;
8
+ getBalance(publicKey: string): Promise<AccountBalance>;
9
+ sendTransaction(payment: MinaPayment, signature: MinaSignature): Promise<string>;
10
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ var __generator = (this && this.__generator) || function (thisArg, body) {
16
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
17
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
18
+ function verb(n) { return function (v) { return step([n, v]); }; }
19
+ function step(op) {
20
+ if (f) throw new TypeError("Generator is already executing.");
21
+ while (_) try {
22
+ 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;
23
+ if (y = 0, t) op = [op[0] & 2, t.value];
24
+ switch (op[0]) {
25
+ case 0: case 1: t = op; break;
26
+ case 4: _.label++; return { value: op[1], done: false };
27
+ case 5: _.label++; y = op[1]; op = [0]; continue;
28
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
29
+ default:
30
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
31
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
32
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
33
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
34
+ if (t[2]) _.ops.pop();
35
+ _.trys.pop(); continue;
36
+ }
37
+ op = body.call(thisArg, _);
38
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
39
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
40
+ }
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.GraphQLNode = void 0;
44
+ var graphql_request_1 = require("graphql-request");
45
+ var GraphQLNode = /** @class */ (function () {
46
+ function GraphQLNode(url) {
47
+ this.url = url;
48
+ }
49
+ GraphQLNode.prototype.getNonce = function (publicKey) {
50
+ var _a, _b, _c, _d;
51
+ return __awaiter(this, void 0, void 0, function () {
52
+ var query, response;
53
+ return __generator(this, function (_e) {
54
+ switch (_e.label) {
55
+ case 0:
56
+ query = (0, graphql_request_1.gql)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n query AccountNonce($publicKey: PublicKey!) {\n account(publicKey: $publicKey) {\n nonce\n inferredNonce\n }\n }\n "], ["\n query AccountNonce($publicKey: PublicKey!) {\n account(publicKey: $publicKey) {\n nonce\n inferredNonce\n }\n }\n "])));
57
+ return [4 /*yield*/, (0, graphql_request_1.request)(this.url, query, { publicKey: publicKey })];
58
+ case 1:
59
+ response = _e.sent();
60
+ return [2 /*return*/, (_d = (_b = (_a = response.account) === null || _a === void 0 ? void 0 : _a.inferredNonce) !== null && _b !== void 0 ? _b : (_c = response.account) === null || _c === void 0 ? void 0 : _c.nonce) !== null && _d !== void 0 ? _d : '0'];
61
+ }
62
+ });
63
+ });
64
+ };
65
+ GraphQLNode.prototype.getBalance = function (publicKey) {
66
+ var _a, _b, _c, _d, _e, _f;
67
+ return __awaiter(this, void 0, void 0, function () {
68
+ var query, response;
69
+ return __generator(this, function (_g) {
70
+ switch (_g.label) {
71
+ case 0:
72
+ query = (0, graphql_request_1.gql)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n query AccountBalance($publicKey: PublicKey!) {\n account(publicKey: $publicKey) {\n balance {\n total\n liquid\n }\n }\n }\n "], ["\n query AccountBalance($publicKey: PublicKey!) {\n account(publicKey: $publicKey) {\n balance {\n total\n liquid\n }\n }\n }\n "])));
73
+ return [4 /*yield*/, (0, graphql_request_1.request)(this.url, query, { publicKey: publicKey })];
74
+ case 1:
75
+ response = _g.sent();
76
+ return [2 /*return*/, {
77
+ total: (_c = (_b = (_a = response.account) === null || _a === void 0 ? void 0 : _a.balance) === null || _b === void 0 ? void 0 : _b.total) !== null && _c !== void 0 ? _c : '0',
78
+ liquid: (_f = (_e = (_d = response.account) === null || _d === void 0 ? void 0 : _d.balance) === null || _e === void 0 ? void 0 : _e.liquid) !== null && _f !== void 0 ? _f : '0'
79
+ }];
80
+ }
81
+ });
82
+ });
83
+ };
84
+ GraphQLNode.prototype.sendTransaction = function (payment, signature) {
85
+ var _a, _b, _c, _d, _e;
86
+ return __awaiter(this, void 0, void 0, function () {
87
+ var mutation, response;
88
+ return __generator(this, function (_f) {
89
+ switch (_f.label) {
90
+ case 0:
91
+ mutation = (0, graphql_request_1.gql)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n mutation SendTransaction(\n $to: PublicKey!\n $from: PublicKey!\n $amount: UInt64!\n $fee: UInt64!\n $nonce: UInt32!\n $memo: String\n $validUntil: UInt32\n $rawSignature: String\n $field: String\n $scalar: String\n ) {\n sendPayment(\n input: { to: $to, from: $from, amount: $amount, fee: $fee, nonce: $nonce, memo: $memo, validUntil: $validUntil }\n signature: { rawSignature: $rawSignature, field: $field, scalar: $scalar }\n ) {\n payment {\n hash\n }\n }\n }\n "], ["\n mutation SendTransaction(\n $to: PublicKey!\n $from: PublicKey!\n $amount: UInt64!\n $fee: UInt64!\n $nonce: UInt32!\n $memo: String\n $validUntil: UInt32\n $rawSignature: String\n $field: String\n $scalar: String\n ) {\n sendPayment(\n input: { to: $to, from: $from, amount: $amount, fee: $fee, nonce: $nonce, memo: $memo, validUntil: $validUntil }\n signature: { rawSignature: $rawSignature, field: $field, scalar: $scalar }\n ) {\n payment {\n hash\n }\n }\n }\n "])));
92
+ return [4 /*yield*/, (0, graphql_request_1.request)(this.url, mutation, {
93
+ to: payment.to,
94
+ from: payment.from,
95
+ amount: payment.amount,
96
+ fee: payment.fee,
97
+ nonce: payment.nonce,
98
+ memo: (_a = payment.memo) !== null && _a !== void 0 ? _a : null,
99
+ validUntil: (_b = payment.validUntil) !== null && _b !== void 0 ? _b : null,
100
+ rawSignature: signature.type === 'raw' ? signature.value : null,
101
+ field: signature.type === 'legacy' ? signature.field : null,
102
+ scalar: signature.type === 'legacy' ? signature.scalar : null
103
+ })];
104
+ case 1:
105
+ response = _f.sent();
106
+ return [2 /*return*/, (_e = (_d = (_c = response.sendPayment) === null || _c === void 0 ? void 0 : _c.payment) === null || _d === void 0 ? void 0 : _d.hash) !== null && _e !== void 0 ? _e : ''];
107
+ }
108
+ });
109
+ });
110
+ };
111
+ return GraphQLNode;
112
+ }());
113
+ exports.GraphQLNode = GraphQLNode;
114
+ var templateObject_1, templateObject_2, templateObject_3;
115
+ //# sourceMappingURL=GraphQLNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphQLNode.js","sourceRoot":"","sources":["../../../src/v1/node/GraphQLNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAA8C;AA4B9C;IACE,qBAAoC,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEtC,8BAAQ,GAArB,UAAsB,SAAiB;;;;;;;wBAC/B,KAAK,OAAG,qBAAG,wOAAA,oKAOhB,IAAA,CAAA;wBAEsC,qBAAM,IAAA,yBAAO,EAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,SAAS,WAAA,EAAE,CAAC,EAAA;;wBAA9E,QAAQ,GAAyB,SAA6C;wBAEpF,sBAAO,MAAA,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,aAAa,mCAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,mCAAI,GAAG,EAAA;;;;KACzE;IAEY,gCAAU,GAAvB,UAAwB,SAAiB;;;;;;;wBACjC,KAAK,OAAG,qBAAG,yQAAA,qMAShB,IAAA,CAAA;wBAEwC,qBAAM,IAAA,yBAAO,EAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,SAAS,WAAA,EAAE,CAAC,EAAA;;wBAAhF,QAAQ,GAA2B,SAA6C;wBAEtF,sBAAO;gCACL,KAAK,EAAE,MAAA,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,0CAAE,KAAK,mCAAI,GAAG;gCAC9C,MAAM,EAAE,MAAA,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,OAAO,0CAAE,MAAM,mCAAI,GAAG;6BACjD,EAAA;;;;KACF;IAEY,qCAAe,GAA5B,UAA6B,OAAoB,EAAE,SAAwB;;;;;;;wBACnE,QAAQ,OAAG,qBAAG,urBAAA,mnBAsBnB,IAAA,CAAA;wBAEyC,qBAAM,IAAA,yBAAO,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE;gCAC1E,EAAE,EAAE,OAAO,CAAC,EAAE;gCACd,IAAI,EAAE,OAAO,CAAC,IAAI;gCAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gCACtB,GAAG,EAAE,OAAO,CAAC,GAAG;gCAChB,KAAK,EAAE,OAAO,CAAC,KAAK;gCACpB,IAAI,EAAE,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI;gCAC1B,UAAU,EAAE,MAAA,OAAO,CAAC,UAAU,mCAAI,IAAI;gCACtC,YAAY,EAAE,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gCAC/D,KAAK,EAAE,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gCAC3D,MAAM,EAAE,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;6BAC9D,CAAC,EAAA;;wBAXI,QAAQ,GAA4B,SAWxC;wBAEF,sBAAO,MAAA,MAAA,MAAA,QAAQ,CAAC,WAAW,0CAAE,OAAO,0CAAE,IAAI,mCAAI,EAAE,EAAA;;;;KACjD;IACH,kBAAC;AAAD,CAAC,AA9ED,IA8EC;AA9EY,kCAAW"}
@@ -0,0 +1,7 @@
1
+ import { AccountBalance } from '../types/node';
2
+ import { MinaPayment, MinaSignature } from '../types/transaction';
3
+ export interface MinaNode {
4
+ getNonce(publicKey: string): Promise<string>;
5
+ getBalance(publicKey: string): Promise<AccountBalance>;
6
+ sendTransaction(payment: MinaPayment, signature: MinaSignature): Promise<string>;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=MinaNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinaNode.js","sourceRoot":"","sources":["../../../src/v1/node/MinaNode.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { Address, AirGapProtocol, AirGapTransaction, AirGapTransactionsWithCursor, Amount, Balance, CryptoDerivative, FeeDefaults, KeyPair, ProtocolMetadata, PublicKey, RecursivePartial, SecretKey, TransactionDetails, TransactionFullConfiguration, TransactionSimpleConfiguration } from '@airgap/module-kit';
2
+ import { MinaIndexer } from '../indexer/MinaIndexer';
3
+ import { MinaNode } from '../node/MinaNode';
4
+ import { MinaCryptoConfiguration } from '../types/crypto';
5
+ import { MinaProtocolNetwork, MinaProtocolOptions, MinaUnits } from '../types/protocol';
6
+ import { MinaSignedTransaction, MinaTransactionCursor, MinaUnsignedTransaction } from '../types/transaction';
7
+ export interface MinaProtocol extends AirGapProtocol<{
8
+ AddressResult: Address;
9
+ ProtocolNetwork: MinaProtocolNetwork;
10
+ CryptoConfiguration: MinaCryptoConfiguration;
11
+ Units: MinaUnits;
12
+ FeeEstimation: FeeDefaults<MinaUnits>;
13
+ SignedTransaction: MinaSignedTransaction;
14
+ UnsignedTransaction: MinaUnsignedTransaction;
15
+ TransactionCursor: MinaTransactionCursor;
16
+ }> {
17
+ }
18
+ export declare class MinaProtocolImpl implements MinaProtocol {
19
+ private readonly options;
20
+ private readonly node;
21
+ private readonly indexer;
22
+ private readonly bitcoinJS;
23
+ constructor(options?: RecursivePartial<MinaProtocolOptions>, node?: MinaNode, indexer?: MinaIndexer);
24
+ private readonly units;
25
+ readonly metadata: ProtocolMetadata<MinaUnits>;
26
+ getMetadata(): Promise<ProtocolMetadata<MinaUnits>>;
27
+ getAddressFromPublicKey(publicKey: PublicKey): Promise<string>;
28
+ getDetailsFromTransaction(transaction: MinaSignedTransaction | MinaUnsignedTransaction, publicKey: PublicKey): Promise<AirGapTransaction<MinaUnits>[]>;
29
+ private getDetailsFromMinaPayment;
30
+ private readonly cryptoConfiguration;
31
+ getCryptoConfiguration(): Promise<MinaCryptoConfiguration>;
32
+ getKeyPairFromDerivative(derivative: CryptoDerivative): Promise<KeyPair>;
33
+ signTransactionWithSecretKey(transaction: MinaUnsignedTransaction, secretKey: SecretKey): Promise<MinaSignedTransaction>;
34
+ getNetwork(): Promise<MinaProtocolNetwork>;
35
+ getTransactionsForPublicKey(publicKey: PublicKey, limit: number, cursor?: MinaTransactionCursor | undefined): Promise<AirGapTransactionsWithCursor<MinaTransactionCursor, MinaUnits>>;
36
+ getBalanceOfPublicKey(publicKey: PublicKey): Promise<Balance<MinaUnits>>;
37
+ getTransactionMaxAmountWithPublicKey(publicKey: PublicKey, _to: string[], configuration?: TransactionFullConfiguration<MinaUnits>): Promise<Amount<MinaUnits>>;
38
+ getTransactionFeeWithPublicKey(_publicKey: PublicKey, _details: TransactionDetails<MinaUnits>[], _configuration?: TransactionSimpleConfiguration): Promise<FeeDefaults<MinaUnits>>;
39
+ prepareTransactionWithPublicKey(publicKey: PublicKey, details: TransactionDetails<MinaUnits>[], configuration?: TransactionFullConfiguration<MinaUnits>): Promise<MinaUnsignedTransaction>;
40
+ broadcastTransaction(transaction: MinaSignedTransaction): Promise<string>;
41
+ private getMinaClient;
42
+ private derivativeToBip32Node;
43
+ }
44
+ export declare function createMinaProtocol(options?: RecursivePartial<MinaProtocolOptions>): MinaProtocol;
45
+ export declare const MINA_MAINNET_PROTOCOL_NETWORK: MinaProtocolNetwork;
46
+ export declare const MINA_TESTNET_PROTOCOL_NETWORK: MinaProtocolNetwork;
47
+ export declare function createMinaProtocolOptions(network?: Partial<MinaProtocolNetwork>): MinaProtocolOptions;
@@ -0,0 +1,410 @@
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
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
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
+ };
72
+ var __importDefault = (this && this.__importDefault) || function (mod) {
73
+ return (mod && mod.__esModule) ? mod : { "default": mod };
74
+ };
75
+ Object.defineProperty(exports, "__esModule", { value: true });
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"));
79
+ // @ts-ignore
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");
90
+ // Implementation
91
+ var MinaProtocolImpl = /** @class */ (function () {
92
+ function MinaProtocolImpl(options, node, indexer) {
93
+ if (options === void 0) { options = {}; }
94
+ this.bitcoinJS = {
95
+ lib: BitGo,
96
+ config: { network: BitGo.networks.bitcoin }
97
+ };
98
+ // Common
99
+ this.units = {
100
+ MINA: {
101
+ symbol: { value: 'MINA' },
102
+ decimals: 9
103
+ }
104
+ };
105
+ this.metadata = {
106
+ identifier: coinlib_core_1.MainProtocolSymbols.MINA,
107
+ name: 'Mina',
108
+ units: this.units,
109
+ mainUnit: 'MINA',
110
+ account: {
111
+ standardDerivationPath: "m/44'/12586'/0'/0/0",
112
+ address: {
113
+ isCaseSensitive: true,
114
+ regex: '^B62[a-km-zA-HJ-NP-Z1-9]{52}$',
115
+ placeholder: 'B62...'
116
+ }
117
+ }
118
+ };
119
+ // Offline
120
+ this.cryptoConfiguration = {
121
+ algorithm: 'secp256k1'
122
+ };
123
+ this.options = createMinaProtocolOptions(options.network);
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);
126
+ }
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) {
149
+ return [
150
+ {
151
+ from: [payment.from],
152
+ to: [payment.to],
153
+ isInbound: payment.to === publicKey.value,
154
+ amount: (0, module_kit_1.newAmount)(payment.amount, 'blockchain'),
155
+ fee: (0, module_kit_1.newAmount)(payment.fee, 'blockchain'),
156
+ arbitraryData: payment.memo,
157
+ network: this.options.network
158
+ }
159
+ ];
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
+ });
166
+ });
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
+ };
215
+ // Online
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
+ });
221
+ });
222
+ };
223
+ MinaProtocolImpl.prototype.getTransactionsForPublicKey = function (publicKey, limit, cursor) {
224
+ return __awaiter(this, void 0, void 0, function () {
225
+ var transactions, lastDateTime, hasNext, airGapTransactions;
226
+ var _this = this;
227
+ return __generator(this, function (_a) {
228
+ switch (_a.label) {
229
+ case 0: return [4 /*yield*/, this.indexer.getTransactions(publicKey.value, limit, cursor === null || cursor === void 0 ? void 0 : cursor.lastDateTime)];
230
+ case 1:
231
+ transactions = _a.sent();
232
+ lastDateTime = transactions[transactions.length - 1].dateTime;
233
+ hasNext = transactions.length >= limit;
234
+ airGapTransactions = transactions.map(function (transaction) { return ({
235
+ from: [transaction.from],
236
+ to: [transaction.to],
237
+ isInbound: transaction.to === publicKey.value,
238
+ amount: (0, module_kit_1.newAmount)(transaction.amount, 'blockchain'),
239
+ fee: (0, module_kit_1.newAmount)(transaction.fee, 'blockchain'),
240
+ arbitraryData: transaction.memo,
241
+ network: _this.options.network,
242
+ type: transaction.kind !== indexer_1.ACCOUNT_TRANSFER_KIND ? transaction.kind : undefined,
243
+ timestamp: Date.parse(transaction.dateTime),
244
+ status: {
245
+ type: transaction.hash ? 'applied' : transaction.failureReason ? 'failed' : 'unknown',
246
+ hash: transaction.hash
247
+ }
248
+ }); });
249
+ return [2 /*return*/, {
250
+ transactions: airGapTransactions,
251
+ cursor: {
252
+ hasNext: hasNext,
253
+ lastDateTime: lastDateTime
254
+ }
255
+ }];
256
+ }
257
+ });
258
+ });
259
+ };
260
+ MinaProtocolImpl.prototype.getBalanceOfPublicKey = function (publicKey) {
261
+ return __awaiter(this, void 0, void 0, function () {
262
+ var balance;
263
+ return __generator(this, function (_a) {
264
+ switch (_a.label) {
265
+ case 0: return [4 /*yield*/, this.node.getBalance(publicKey.value)];
266
+ case 1:
267
+ balance = _a.sent();
268
+ return [2 /*return*/, {
269
+ total: (0, module_kit_1.newAmount)(balance.total, 'blockchain'),
270
+ transferable: (0, module_kit_1.newAmount)(balance.liquid, 'blockchain')
271
+ }];
272
+ }
273
+ });
274
+ });
275
+ };
276
+ MinaProtocolImpl.prototype.getTransactionMaxAmountWithPublicKey = function (publicKey, _to, configuration) {
277
+ return __awaiter(this, void 0, void 0, function () {
278
+ var balance, fee, maxAmount;
279
+ return __generator(this, function (_a) {
280
+ switch (_a.label) {
281
+ case 0: return [4 /*yield*/, this.node.getBalance(publicKey.value)];
282
+ case 1:
283
+ balance = _a.sent();
284
+ fee = (configuration === null || configuration === void 0 ? void 0 : configuration.fee) ? (0, module_kit_1.newAmount)(configuration.fee).blockchain(this.units).value : '0';
285
+ maxAmount = new bignumber_1.default(balance.liquid).minus(fee);
286
+ return [2 /*return*/, (0, module_kit_1.newAmount)(maxAmount, 'blockchain')];
287
+ }
288
+ });
289
+ });
290
+ };
291
+ MinaProtocolImpl.prototype.getTransactionFeeWithPublicKey = function (_publicKey, _details, _configuration) {
292
+ return __awaiter(this, void 0, void 0, function () {
293
+ var fees, feesQuantile;
294
+ return __generator(this, function (_a) {
295
+ switch (_a.label) {
296
+ case 0: return [4 /*yield*/, this.indexer.getLatestFees(20)];
297
+ case 1:
298
+ fees = _a.sent();
299
+ feesQuantile = function (q) {
300
+ return (0, math_1.quantile)(fees, q, {
301
+ isSorted: true /* `getLatestFees` returns an already sorted (ASC) list */,
302
+ roundingMode: bignumber_1.default.ROUND_CEIL
303
+ });
304
+ };
305
+ return [2 /*return*/, {
306
+ low: (0, module_kit_1.newAmount)(feesQuantile(0.25), 'blockchain'),
307
+ medium: (0, module_kit_1.newAmount)(feesQuantile(0.5), 'blockchain'),
308
+ high: (0, module_kit_1.newAmount)(feesQuantile(0.75), 'blockchain')
309
+ }];
310
+ }
311
+ });
312
+ });
313
+ };
314
+ MinaProtocolImpl.prototype.prepareTransactionWithPublicKey = function (publicKey, details, configuration) {
315
+ var _a, _b;
316
+ return __awaiter(this, void 0, void 0, function () {
317
+ var paymentDetails, nonce, fee, _c, balance, amountBlockchain, feeBlockchain, transferableBlockchain;
318
+ return __generator(this, function (_d) {
319
+ switch (_d.label) {
320
+ case 0:
321
+ if (details.length !== 1) {
322
+ throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.MINA, 'Multiple transactions not supported.');
323
+ }
324
+ paymentDetails = details[0];
325
+ return [4 /*yield*/, this.node.getNonce(publicKey.value)];
326
+ case 1:
327
+ nonce = _d.sent();
328
+ if (!((_a = configuration === null || configuration === void 0 ? void 0 : configuration.fee) !== null && _a !== void 0)) return [3 /*break*/, 2];
329
+ _c = _a;
330
+ return [3 /*break*/, 4];
331
+ case 2: return [4 /*yield*/, this.getTransactionFeeWithPublicKey(publicKey, details, configuration)];
332
+ case 3:
333
+ _c = (_d.sent()).medium;
334
+ _d.label = 4;
335
+ case 4:
336
+ fee = _c;
337
+ return [4 /*yield*/, this.getBalanceOfPublicKey(publicKey)];
338
+ case 5:
339
+ balance = _d.sent();
340
+ amountBlockchain = (0, module_kit_1.newAmount)(paymentDetails.amount).blockchain(this.units);
341
+ feeBlockchain = (0, module_kit_1.newAmount)(fee).blockchain(this.units);
342
+ transferableBlockchain = (0, module_kit_1.newAmount)((_b = balance.transferable) !== null && _b !== void 0 ? _b : balance.total).blockchain(this.units);
343
+ if (new bignumber_1.default(transferableBlockchain.value).minus(amountBlockchain.value).minus(feeBlockchain.value).lt(0)) {
344
+ throw new errors_1.BalanceError(coinlib_core_1.Domain.MINA, 'Insfficient balance.');
345
+ }
346
+ return [2 /*return*/, (0, module_kit_1.newUnsignedTransaction)({
347
+ networkType: this.options.network.minaType,
348
+ data: {
349
+ to: paymentDetails.to,
350
+ from: publicKey.value,
351
+ amount: amountBlockchain.value,
352
+ fee: feeBlockchain.value,
353
+ nonce: nonce,
354
+ memo: paymentDetails.arbitraryData
355
+ }
356
+ })];
357
+ }
358
+ });
359
+ });
360
+ };
361
+ MinaProtocolImpl.prototype.broadcastTransaction = function (transaction) {
362
+ return __awaiter(this, void 0, void 0, function () {
363
+ return __generator(this, function (_a) {
364
+ return [2 /*return*/, this.node.sendTransaction(transaction.data, transaction.signature)];
365
+ });
366
+ });
367
+ };
368
+ // Custom
369
+ MinaProtocolImpl.prototype.getMinaClient = function (network) {
370
+ if (network === void 0) { network = this.options.network.minaType; }
371
+ return new mina_signer_1.default({ network: network });
372
+ };
373
+ MinaProtocolImpl.prototype.derivativeToBip32Node = function (derivative) {
374
+ var bip32Node = (0, crypto_1.encodeDerivative)('bip32', derivative);
375
+ return this.bitcoinJS.lib.HDNode.fromBase58(bip32Node.secretKey, this.bitcoinJS.config.network);
376
+ };
377
+ return MinaProtocolImpl;
378
+ }());
379
+ exports.MinaProtocolImpl = MinaProtocolImpl;
380
+ // Factory
381
+ function createMinaProtocol(options) {
382
+ if (options === void 0) { options = {}; }
383
+ return new MinaProtocolImpl(options);
384
+ }
385
+ exports.createMinaProtocol = createMinaProtocol;
386
+ exports.MINA_MAINNET_PROTOCOL_NETWORK = {
387
+ name: 'Mainnet',
388
+ type: 'mainnet',
389
+ rpcUrl: 'https://proxy.minaexplorer.com',
390
+ blockExplorerUrl: 'https://minaexplorer.com/',
391
+ blockExplorerApi: 'https://graphql.minaexplorer.com',
392
+ minaType: 'mainnet'
393
+ };
394
+ exports.MINA_TESTNET_PROTOCOL_NETWORK = {
395
+ name: 'Devnet',
396
+ type: 'testnet',
397
+ rpcUrl: 'https://proxy.devnet.minaexplorer.com',
398
+ blockExplorerUrl: 'https://devnet.minaexplorer.com',
399
+ blockExplorerApi: 'https://devnet.graphql.minaexplorer.com',
400
+ minaType: 'testnet'
401
+ };
402
+ var DEFAULT_MINA_PROTOCOL_NETWORK = exports.MINA_MAINNET_PROTOCOL_NETWORK;
403
+ function createMinaProtocolOptions(network) {
404
+ if (network === void 0) { network = {}; }
405
+ return {
406
+ network: __assign(__assign({}, DEFAULT_MINA_PROTOCOL_NETWORK), network)
407
+ };
408
+ }
409
+ exports.createMinaProtocolOptions = createMinaProtocolOptions;
410
+ //# sourceMappingURL=MinaProtocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MinaProtocol.js","sourceRoot":"","sources":["../../../src/v1/protocol/MinaProtocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { MinaSignedTransaction, MinaUnsignedTransaction } from '../../../../types/transaction';
2
+ import { MinaTransactionSignRequest } from '../definitions/transaction-sign-request-mina';
3
+ import { MinaTransactionSignResponse } from '../definitions/transaction-sign-response-mina';
4
+ export declare function minaUnsignedTransactionToRequest(unsigned: MinaUnsignedTransaction, publicKey: string, callbackUrl?: string): MinaTransactionSignRequest;
5
+ export declare function minaSignedTransactionToResponse(signed: MinaSignedTransaction, accountIdentifier: string): MinaTransactionSignResponse;
6
+ export declare function minaTransactionSignRequestToUnsigned(request: MinaTransactionSignRequest): MinaUnsignedTransaction;
7
+ export declare function minaTransactionSignResponseToSigned(response: MinaTransactionSignResponse): MinaSignedTransaction;