@airgap/stellar 0.13.41-beta.1 → 0.13.41-beta.11
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.
- package/package.json +6 -6
- package/v1/data/StellarAddress.js +3 -1
- package/v1/data/StellarAddress.js.map +1 -1
- package/v1/index.d.ts +4 -3
- package/v1/index.js +3 -1
- package/v1/index.js.map +1 -1
- package/v1/module/StellarAssets.js +6 -6
- package/v1/module/StellarAssets.js.map +1 -1
- package/v1/module/StellarModule.d.ts +4 -9
- package/v1/module/StellarModule.js +10 -11
- package/v1/module/StellarModule.js.map +1 -1
- package/v1/protocol/StellarProtocol.d.ts +23 -4
- package/v1/protocol/StellarProtocol.js +555 -123
- package/v1/protocol/StellarProtocol.js.map +1 -1
- package/v1/protocol/stellarAssets/StellarAsset.d.ts +6 -3
- package/v1/protocol/stellarAssets/StellarAsset.js +169 -77
- package/v1/protocol/stellarAssets/StellarAsset.js.map +1 -1
- package/v1/serializer/v3/serializer-companion.js +18 -8
- package/v1/serializer/v3/serializer-companion.js.map +1 -1
- package/v1/serializer/v3/validators/validators.js +0 -1
- package/v1/serializer/v3/validators/validators.js.map +1 -1
- package/v1/types/protocol.d.ts +26 -0
- package/v1/types/protocol.js +19 -0
- package/v1/types/protocol.js.map +1 -1
- package/v1/protocol/StellarCryptoClient.d.ts +0 -8
- package/v1/protocol/StellarCryptoClient.js +0 -104
- package/v1/protocol/StellarCryptoClient.js.map +0 -1
|
@@ -57,47 +57,11 @@ var errors_1 = require("@airgap/coinlib-core/errors");
|
|
|
57
57
|
var module_kit_1 = require("@airgap/module-kit");
|
|
58
58
|
var stellar_sdk_1 = require("@stellar/stellar-sdk");
|
|
59
59
|
var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
|
|
60
|
+
var protocol_1 = require("../types/protocol");
|
|
60
61
|
var StellarAddress_1 = require("../data/StellarAddress");
|
|
61
62
|
var StellarProtocolImpl = /** @class */ (function () {
|
|
62
63
|
function StellarProtocolImpl(options) {
|
|
63
64
|
if (options === void 0) { options = {}; }
|
|
64
|
-
// public async signMessageWithKeyPair(message: string, keyPair: KeyPair): Promise<Signature> {
|
|
65
|
-
// const secretValue = keyPair.secretKey.value
|
|
66
|
-
// const privateKeyHex =
|
|
67
|
-
// keyPair.secretKey.format === 'hex' ? secretValue : Buffer.from(StrKey.decodeEd25519SecretSeed(secretValue)).toString('hex')
|
|
68
|
-
// const stellarFormat = StrKey.isValidEd25519SecretSeed(secretValue)
|
|
69
|
-
// if (!stellarFormat && !isHex(secretValue)) {
|
|
70
|
-
// throw new ConditionViolationError(Domain.STELLAR, 'Invalid private key format.')
|
|
71
|
-
// }
|
|
72
|
-
// const signatureHex = await this.cryptoClient.signMessage(message, { privateKey: privateKeyHex })
|
|
73
|
-
// return newSignature(signatureHex, 'hex')
|
|
74
|
-
// }
|
|
75
|
-
// public async decryptAsymmetricWithKeyPair(payload: string, keyPair: KeyPair | ExtendedKeyPair): Promise<string> {
|
|
76
|
-
// if (keyPair.secretKey.format !== 'hex') {
|
|
77
|
-
// throw new ConditionViolationError(Domain.STELLAR, 'Secret key is of an unexpected format.')
|
|
78
|
-
// }
|
|
79
|
-
// if (keyPair.publicKey.type !== 'pub') {
|
|
80
|
-
// throw new ConditionViolationError(Domain.STELLAR, 'Public key must be of type "pub"')
|
|
81
|
-
// }
|
|
82
|
-
// const hexPublicKey = convertPublicKey(keyPair.publicKey, 'hex')
|
|
83
|
-
// return this.cryptoClient.decryptAsymmetric(payload, { publicKey: hexPublicKey.value, privateKey: keyPair.secretKey.value })
|
|
84
|
-
// }
|
|
85
|
-
// public async encryptAsymmetricWithPublicKey(payload: string, publicKey: PublicKey): Promise<string> {
|
|
86
|
-
// const hexPublicKey: PublicKey = convertPublicKey(publicKey, 'hex')
|
|
87
|
-
// return this.cryptoClient.encryptAsymmetric(payload, hexPublicKey.value)
|
|
88
|
-
// }
|
|
89
|
-
// encryptAESWithSecretKey(payload: string, secretKey: SecretKey): Promise<string> {
|
|
90
|
-
// if (secretKey.format !== 'hex') {
|
|
91
|
-
// throw new ConditionViolationError(Domain.STELLAR, 'Secret key is of an unexpected format.')
|
|
92
|
-
// }
|
|
93
|
-
// return this.cryptoClient.encryptAES(payload, secretKey.value)
|
|
94
|
-
// }
|
|
95
|
-
// public async decryptAESWithSecretKey(payload: string, secretKey: SecretKey): Promise<string> {
|
|
96
|
-
// if (secretKey.format !== 'hex') {
|
|
97
|
-
// throw new ConditionViolationError(Domain.STELLAR, 'Secret key is of an unexpected format.')
|
|
98
|
-
// }
|
|
99
|
-
// return this.cryptoClient.decryptAES(payload, secretKey.value)
|
|
100
|
-
// }
|
|
101
65
|
this.units = {
|
|
102
66
|
XLM: {
|
|
103
67
|
symbol: { value: 'XLM', market: 'xlm' },
|
|
@@ -110,12 +74,22 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
110
74
|
high: (0, module_kit_1.newAmount)(stellar_sdk_1.BASE_FEE, 'blockchain')
|
|
111
75
|
};
|
|
112
76
|
this.metadata = {
|
|
113
|
-
identifier: coinlib_core_1.MainProtocolSymbols.
|
|
77
|
+
identifier: coinlib_core_1.MainProtocolSymbols.STELLAR,
|
|
114
78
|
name: 'Stellar',
|
|
115
79
|
units: this.units,
|
|
116
80
|
mainUnit: 'XLM',
|
|
117
81
|
fee: {
|
|
118
|
-
defaults: this.feeDefaults
|
|
82
|
+
defaults: this.feeDefaults,
|
|
83
|
+
mainUnit: 'XLM',
|
|
84
|
+
units: {
|
|
85
|
+
XLM: {
|
|
86
|
+
symbol: {
|
|
87
|
+
value: 'XLM',
|
|
88
|
+
market: 'xlm'
|
|
89
|
+
},
|
|
90
|
+
decimals: 7
|
|
91
|
+
}
|
|
92
|
+
}
|
|
119
93
|
},
|
|
120
94
|
account: {
|
|
121
95
|
standardDerivationPath: "m/44h/148h/0h",
|
|
@@ -131,17 +105,205 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
131
105
|
}
|
|
132
106
|
}
|
|
133
107
|
};
|
|
134
|
-
// public async verifyMessageWithPublicKey(message: string, signature: Signature, publicKey: PublicKey): Promise<boolean> {
|
|
135
|
-
// return this.cryptoClient.verifyMessage(message, signature.value, publicKey.value)
|
|
136
|
-
// }
|
|
137
|
-
// Offline methods
|
|
138
108
|
this.cryptoConfiguration = {
|
|
139
109
|
algorithm: 'ed25519'
|
|
140
110
|
};
|
|
141
111
|
this.options = createStellarProtocolOptions(options.network);
|
|
142
112
|
this.server = new stellar_sdk_1.Horizon.Server(this.options.network.rpcUrl);
|
|
143
|
-
// this.cryptoClient = new StellarCryptoClient()
|
|
144
113
|
}
|
|
114
|
+
StellarProtocolImpl.prototype.getMultisigStatus = function (publicKey) {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
116
|
+
var address, account, error_1;
|
|
117
|
+
return __generator(this, function (_a) {
|
|
118
|
+
switch (_a.label) {
|
|
119
|
+
case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey)];
|
|
120
|
+
case 1:
|
|
121
|
+
address = _a.sent();
|
|
122
|
+
_a.label = 2;
|
|
123
|
+
case 2:
|
|
124
|
+
_a.trys.push([2, 4, , 5]);
|
|
125
|
+
return [4 /*yield*/, this.server.loadAccount(address)];
|
|
126
|
+
case 3:
|
|
127
|
+
account = _a.sent();
|
|
128
|
+
return [2 /*return*/, account.signers.length > 1];
|
|
129
|
+
case 4:
|
|
130
|
+
error_1 = _a.sent();
|
|
131
|
+
return [2 /*return*/, false];
|
|
132
|
+
case 5: return [2 /*return*/];
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
StellarProtocolImpl.prototype.getSigners = function (publicKey) {
|
|
138
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
139
|
+
var address, account, error_2;
|
|
140
|
+
return __generator(this, function (_a) {
|
|
141
|
+
switch (_a.label) {
|
|
142
|
+
case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey)];
|
|
143
|
+
case 1:
|
|
144
|
+
address = _a.sent();
|
|
145
|
+
_a.label = 2;
|
|
146
|
+
case 2:
|
|
147
|
+
_a.trys.push([2, 4, , 5]);
|
|
148
|
+
return [4 /*yield*/, this.server.loadAccount(address)];
|
|
149
|
+
case 3:
|
|
150
|
+
account = _a.sent();
|
|
151
|
+
return [2 /*return*/, account.signers];
|
|
152
|
+
case 4:
|
|
153
|
+
error_2 = _a.sent();
|
|
154
|
+
throw new errors_1.NetworkError(coinlib_core_1.Domain.STELLAR, error_2);
|
|
155
|
+
case 5: return [2 /*return*/];
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
StellarProtocolImpl.prototype.getThresholds = function (publicKey) {
|
|
161
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
162
|
+
var address, account, error_3;
|
|
163
|
+
return __generator(this, function (_a) {
|
|
164
|
+
switch (_a.label) {
|
|
165
|
+
case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey)];
|
|
166
|
+
case 1:
|
|
167
|
+
address = _a.sent();
|
|
168
|
+
_a.label = 2;
|
|
169
|
+
case 2:
|
|
170
|
+
_a.trys.push([2, 4, , 5]);
|
|
171
|
+
return [4 /*yield*/, this.server.loadAccount(address)];
|
|
172
|
+
case 3:
|
|
173
|
+
account = _a.sent();
|
|
174
|
+
return [2 /*return*/, account.thresholds];
|
|
175
|
+
case 4:
|
|
176
|
+
error_3 = _a.sent();
|
|
177
|
+
throw new errors_1.NetworkError(coinlib_core_1.Domain.STELLAR, error_3);
|
|
178
|
+
case 5: return [2 /*return*/];
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
StellarProtocolImpl.prototype.getThresholdReachedStatus = function (transaction) {
|
|
184
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
185
|
+
var tx, sourceAccountId, account, signers, thresholds, requiredThreshold, totalWeight, _i, _a, sig, _b, signers_1, signer, keypair, hint, threshold, error_4;
|
|
186
|
+
return __generator(this, function (_c) {
|
|
187
|
+
switch (_c.label) {
|
|
188
|
+
case 0:
|
|
189
|
+
_c.trys.push([0, 2, , 3]);
|
|
190
|
+
tx = stellar_sdk_1.TransactionBuilder.fromXDR(transaction, stellar_sdk_1.Networks.PUBLIC);
|
|
191
|
+
sourceAccountId = tx.source;
|
|
192
|
+
return [4 /*yield*/, this.server.loadAccount(sourceAccountId)];
|
|
193
|
+
case 1:
|
|
194
|
+
account = _c.sent();
|
|
195
|
+
signers = account.signers;
|
|
196
|
+
thresholds = account.thresholds;
|
|
197
|
+
requiredThreshold = tx.operations.some(function (op) { return ['setOptions', 'accountMerge'].includes(op.type); })
|
|
198
|
+
? thresholds.high_threshold
|
|
199
|
+
: tx.operations.some(function (op) {
|
|
200
|
+
return [
|
|
201
|
+
'createAccount',
|
|
202
|
+
'payment',
|
|
203
|
+
'pathPaymentStrictReceive',
|
|
204
|
+
'pathPaymentStrictSend',
|
|
205
|
+
'manageSellOffer',
|
|
206
|
+
'manageBuyOffer',
|
|
207
|
+
'createPassiveSellOffer',
|
|
208
|
+
'changeTrust',
|
|
209
|
+
'manageData',
|
|
210
|
+
'createClaimableBalance',
|
|
211
|
+
'beginSponsoringFutureReserves',
|
|
212
|
+
'endSponsoringFutureReserves',
|
|
213
|
+
'revokeSponsorship',
|
|
214
|
+
'clawback',
|
|
215
|
+
'clawbackClaimableBalance',
|
|
216
|
+
'liquidityPoolDeposit',
|
|
217
|
+
'liquidityPoolWithdraw',
|
|
218
|
+
'invokeHostFunction',
|
|
219
|
+
'extendFootprintTtl',
|
|
220
|
+
'restoreFootprint'
|
|
221
|
+
].includes(op.type);
|
|
222
|
+
})
|
|
223
|
+
? thresholds.med_threshold
|
|
224
|
+
: thresholds.low_threshold;
|
|
225
|
+
totalWeight = 0;
|
|
226
|
+
for (_i = 0, _a = tx.signatures; _i < _a.length; _i++) {
|
|
227
|
+
sig = _a[_i];
|
|
228
|
+
for (_b = 0, signers_1 = signers; _b < signers_1.length; _b++) {
|
|
229
|
+
signer = signers_1[_b];
|
|
230
|
+
keypair = stellar_sdk_1.Keypair.fromPublicKey(signer.key);
|
|
231
|
+
hint = keypair.signatureHint();
|
|
232
|
+
if (hint.equals(sig.hint())) {
|
|
233
|
+
totalWeight += signer.weight;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
threshold = {
|
|
238
|
+
thresholdRequired: requiredThreshold,
|
|
239
|
+
currentThreshold: totalWeight
|
|
240
|
+
};
|
|
241
|
+
return [2 /*return*/, threshold];
|
|
242
|
+
case 2:
|
|
243
|
+
error_4 = _c.sent();
|
|
244
|
+
return [2 /*return*/, {
|
|
245
|
+
thresholdRequired: 0,
|
|
246
|
+
currentThreshold: 0
|
|
247
|
+
}];
|
|
248
|
+
case 3: return [2 /*return*/];
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
};
|
|
253
|
+
StellarProtocolImpl.prototype.adjustSigner = function (masterPublicky, signerPublicKey, weight, lowThreshold, medThreshold, highThreshold) {
|
|
254
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
255
|
+
var masterAddress, signerAddress, account, signers, txBuilder, masterWeight;
|
|
256
|
+
return __generator(this, function (_a) {
|
|
257
|
+
switch (_a.label) {
|
|
258
|
+
case 0: return [4 /*yield*/, this.getAddressFromPublicKey(masterPublicky)];
|
|
259
|
+
case 1:
|
|
260
|
+
masterAddress = _a.sent();
|
|
261
|
+
return [4 /*yield*/, this.getAddressFromPublicKey(signerPublicKey)];
|
|
262
|
+
case 2:
|
|
263
|
+
signerAddress = _a.sent();
|
|
264
|
+
return [4 /*yield*/, this.server.loadAccount(masterAddress)];
|
|
265
|
+
case 3:
|
|
266
|
+
account = _a.sent();
|
|
267
|
+
signers = account.signers;
|
|
268
|
+
txBuilder = new stellar_sdk_1.TransactionBuilder(account, {
|
|
269
|
+
fee: stellar_sdk_1.BASE_FEE,
|
|
270
|
+
networkPassphrase: stellar_sdk_1.Networks.PUBLIC
|
|
271
|
+
});
|
|
272
|
+
if (signers.length === 1) {
|
|
273
|
+
masterWeight = weight;
|
|
274
|
+
txBuilder
|
|
275
|
+
.addOperation(stellar_sdk_1.Operation.setOptions({
|
|
276
|
+
masterWeight: masterWeight,
|
|
277
|
+
lowThreshold: lowThreshold,
|
|
278
|
+
medThreshold: medThreshold,
|
|
279
|
+
highThreshold: highThreshold,
|
|
280
|
+
signer: {
|
|
281
|
+
ed25519PublicKey: signerAddress,
|
|
282
|
+
weight: weight
|
|
283
|
+
}
|
|
284
|
+
}))
|
|
285
|
+
.setTimeout(600);
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
txBuilder
|
|
289
|
+
.addOperation(stellar_sdk_1.Operation.setOptions({
|
|
290
|
+
lowThreshold: lowThreshold,
|
|
291
|
+
medThreshold: medThreshold,
|
|
292
|
+
highThreshold: highThreshold,
|
|
293
|
+
signer: {
|
|
294
|
+
ed25519PublicKey: signerAddress,
|
|
295
|
+
weight: weight
|
|
296
|
+
}
|
|
297
|
+
}))
|
|
298
|
+
.setTimeout(600);
|
|
299
|
+
}
|
|
300
|
+
return [2 /*return*/, (0, module_kit_1.newUnsignedTransaction)({
|
|
301
|
+
transaction: txBuilder.build().toXDR()
|
|
302
|
+
})];
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
};
|
|
145
307
|
StellarProtocolImpl.prototype.getTransactionsForPublicKey = function (publicKey, limit, cursor) {
|
|
146
308
|
return __awaiter(this, void 0, void 0, function () {
|
|
147
309
|
var address;
|
|
@@ -158,7 +320,7 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
158
320
|
StellarProtocolImpl.prototype.getTransactionsForAddress = function (address, limit, cursor) {
|
|
159
321
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
160
322
|
return __awaiter(this, void 0, void 0, function () {
|
|
161
|
-
var endpoint, url, response, data, paymentTransactions, transactions,
|
|
323
|
+
var endpoint, url, response, data, paymentTransactions, transactions, error_5;
|
|
162
324
|
var _this = this;
|
|
163
325
|
return __generator(this, function (_l) {
|
|
164
326
|
switch (_l.label) {
|
|
@@ -172,10 +334,12 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
172
334
|
data = response.data;
|
|
173
335
|
paymentTransactions = (_c = (_b = data._embedded) === null || _b === void 0 ? void 0 : _b.records) !== null && _c !== void 0 ? _c : [];
|
|
174
336
|
transactions = paymentTransactions
|
|
175
|
-
.filter(function (tx) {
|
|
337
|
+
.filter(function (tx) {
|
|
338
|
+
return (tx.type === protocol_1.StellarTransactionType.PAYMENT && tx.asset_type === protocol_1.StellarAssetType.NATIVE) || tx.type === 'create_account';
|
|
339
|
+
})
|
|
176
340
|
.map(function (tx) {
|
|
177
341
|
var txData = tx.transaction;
|
|
178
|
-
var isPayment = tx.type ===
|
|
342
|
+
var isPayment = tx.type === protocol_1.StellarTransactionType.PAYMENT;
|
|
179
343
|
var txAmount = isPayment ? tx.amount : tx.starting_balance;
|
|
180
344
|
var amount = new bignumber_1.default(txAmount).multipliedBy(1e7).toString();
|
|
181
345
|
var from = isPayment ? tx.from : tx.funder;
|
|
@@ -201,12 +365,12 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
201
365
|
transactions: transactions,
|
|
202
366
|
cursor: {
|
|
203
367
|
hasNext: ((_e = (_d = data._links) === null || _d === void 0 ? void 0 : _d.next) === null || _e === void 0 ? void 0 : _e.href) !== undefined,
|
|
204
|
-
next: (_j = (_h = (_g = (_f = data._links) === null || _f === void 0 ? void 0 : _f.next) === null || _g === void 0 ? void 0 : _g.href) === null || _h === void 0 ? void 0 : _h.replace(this.options.network.rpcUrl, '')) !== null && _j !== void 0 ? _j :
|
|
368
|
+
next: (_j = (_h = (_g = (_f = data._links) === null || _f === void 0 ? void 0 : _f.next) === null || _g === void 0 ? void 0 : _g.href) === null || _h === void 0 ? void 0 : _h.replace(this.options.network.rpcUrl, '')) !== null && _j !== void 0 ? _j : undefined
|
|
205
369
|
}
|
|
206
370
|
}];
|
|
207
371
|
case 2:
|
|
208
|
-
|
|
209
|
-
if (((_k =
|
|
372
|
+
error_5 = _l.sent();
|
|
373
|
+
if (((_k = error_5.response) === null || _k === void 0 ? void 0 : _k.status) === 404) {
|
|
210
374
|
return [2 /*return*/, {
|
|
211
375
|
transactions: [],
|
|
212
376
|
cursor: {
|
|
@@ -215,7 +379,7 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
215
379
|
}
|
|
216
380
|
}];
|
|
217
381
|
}
|
|
218
|
-
throw new errors_1.NetworkError(coinlib_core_1.Domain.STELLAR,
|
|
382
|
+
throw new errors_1.NetworkError(coinlib_core_1.Domain.STELLAR, error_5);
|
|
219
383
|
case 3: return [2 /*return*/];
|
|
220
384
|
}
|
|
221
385
|
});
|
|
@@ -223,7 +387,7 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
223
387
|
};
|
|
224
388
|
StellarProtocolImpl.prototype.getTransactionMaxAmountWithPublicKey = function (publicKey, to, configuration) {
|
|
225
389
|
return __awaiter(this, void 0, void 0, function () {
|
|
226
|
-
var balance, balanceBn, fee, amountWithoutFees,
|
|
390
|
+
var balance, balanceBn, fee, amountWithoutFees, error_6;
|
|
227
391
|
return __generator(this, function (_a) {
|
|
228
392
|
switch (_a.label) {
|
|
229
393
|
case 0:
|
|
@@ -237,16 +401,16 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
237
401
|
fee = new bignumber_1.default((0, module_kit_1.newAmount)(configuration.fee).blockchain(this.units).value);
|
|
238
402
|
}
|
|
239
403
|
else {
|
|
240
|
-
fee = new bignumber_1.default(
|
|
404
|
+
fee = new bignumber_1.default(stellar_sdk_1.BASE_FEE).multipliedBy(to.length).dividedBy(1e7);
|
|
241
405
|
}
|
|
242
406
|
if (fee.gte(balanceBn)) {
|
|
243
|
-
|
|
407
|
+
return [2 /*return*/, (0, module_kit_1.newAmount)(0, 'blockchain')];
|
|
244
408
|
}
|
|
245
409
|
amountWithoutFees = balanceBn.minus(fee);
|
|
246
|
-
return [2 /*return*/, (0, module_kit_1.newAmount)(amountWithoutFees
|
|
410
|
+
return [2 /*return*/, (0, module_kit_1.newAmount)(amountWithoutFees, 'blockchain')];
|
|
247
411
|
case 2:
|
|
248
|
-
|
|
249
|
-
throw new errors_1.NetworkError(coinlib_core_1.Domain.STELLAR,
|
|
412
|
+
error_6 = _a.sent();
|
|
413
|
+
throw new errors_1.NetworkError(coinlib_core_1.Domain.STELLAR, error_6);
|
|
250
414
|
case 3: return [2 /*return*/];
|
|
251
415
|
}
|
|
252
416
|
});
|
|
@@ -278,7 +442,6 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
278
442
|
return __generator(this, function (_a) {
|
|
279
443
|
switch (transaction.type) {
|
|
280
444
|
case 'signed':
|
|
281
|
-
return [2 /*return*/, this.getDetailsFromEncodedTransaction(transaction.transaction, _publicKey)];
|
|
282
445
|
case 'unsigned':
|
|
283
446
|
return [2 /*return*/, this.getDetailsFromEncodedTransaction(transaction.transaction, _publicKey)];
|
|
284
447
|
default:
|
|
@@ -289,30 +452,272 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
289
452
|
});
|
|
290
453
|
});
|
|
291
454
|
};
|
|
455
|
+
StellarProtocolImpl.prototype.getDetailsFromEncodedGenericTransaction = function (transaction) {
|
|
456
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
457
|
+
return __generator(this, function (_a) {
|
|
458
|
+
return [2 /*return*/, stellar_sdk_1.TransactionBuilder.fromXDR(transaction, stellar_sdk_1.Networks.PUBLIC)];
|
|
459
|
+
});
|
|
460
|
+
});
|
|
461
|
+
};
|
|
292
462
|
StellarProtocolImpl.prototype.getDetailsFromEncodedTransaction = function (transaction, publicKey) {
|
|
293
|
-
var _a, _b, _c;
|
|
463
|
+
var _a, _b, _c, _d;
|
|
294
464
|
return __awaiter(this, void 0, void 0, function () {
|
|
295
|
-
var transactions, tx, op, isInbound,
|
|
296
|
-
return __generator(this, function (
|
|
465
|
+
var transactions, tx, _i, _e, txDetails, amount, op, to, fee, isInbound, type, uiAlerts, displayFromTo, asetType, asetType, cont, contractAddress, sendAssetIsNative, sendAssetIsNative, signer, descriptionParts, memo;
|
|
466
|
+
return __generator(this, function (_f) {
|
|
297
467
|
transactions = [];
|
|
298
468
|
tx = stellar_sdk_1.TransactionBuilder.fromXDR(transaction, stellar_sdk_1.Networks.PUBLIC);
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
469
|
+
for (_i = 0, _e = tx.operations; _i < _e.length; _i++) {
|
|
470
|
+
txDetails = _e[_i];
|
|
471
|
+
amount = void 0;
|
|
472
|
+
op = void 0;
|
|
473
|
+
to = void 0;
|
|
474
|
+
fee = void 0;
|
|
475
|
+
isInbound = void 0;
|
|
476
|
+
type = void 0;
|
|
477
|
+
uiAlerts = [];
|
|
478
|
+
displayFromTo = true;
|
|
479
|
+
if (txDetails.type === protocol_1.StellarTransactionType.PAYMENT) {
|
|
480
|
+
op = txDetails;
|
|
481
|
+
if (op.asset.code === protocol_1.StellarAssetType.XLM) {
|
|
482
|
+
amount = new bignumber_1.default(op.amount).multipliedBy(1e7).toString();
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
uiAlerts.push({
|
|
486
|
+
type: 'warning',
|
|
487
|
+
title: { value: protocol_1.StellarTransactionType.PAYMENT, type: 'plain' },
|
|
488
|
+
description: {
|
|
489
|
+
value: "".concat(op.amount, " ").concat(op.asset.code, " will be deducted from the source wallet"),
|
|
490
|
+
type: 'plain'
|
|
491
|
+
}
|
|
492
|
+
});
|
|
493
|
+
amount = new bignumber_1.default(0).multipliedBy(1e7).toString();
|
|
494
|
+
}
|
|
495
|
+
fee = tx.fee;
|
|
496
|
+
to = [op.destination];
|
|
497
|
+
type = protocol_1.StellarTransactionType.PAYMENT;
|
|
498
|
+
isInbound = to[0].toLowerCase() === publicKey.value.toLowerCase();
|
|
499
|
+
}
|
|
500
|
+
else if (txDetails.type === protocol_1.StellarTransactionType.CREATE_ACCOUNT) {
|
|
501
|
+
op = txDetails;
|
|
502
|
+
amount = new bignumber_1.default(op.startingBalance).multipliedBy(1e7).toString();
|
|
503
|
+
to = [op.destination];
|
|
504
|
+
fee = tx.fee;
|
|
505
|
+
isInbound = to[0].toLowerCase() === publicKey.value.toLowerCase();
|
|
506
|
+
type = protocol_1.StellarTransactionType.CREATE_ACCOUNT;
|
|
507
|
+
}
|
|
508
|
+
else if (txDetails.type === protocol_1.StellarTransactionType.CHANGE_TRUST) {
|
|
509
|
+
op = txDetails;
|
|
510
|
+
amount = new bignumber_1.default(0).toString();
|
|
511
|
+
if (op.line instanceof stellar_sdk_1.Asset) {
|
|
512
|
+
asetType = op.line;
|
|
513
|
+
to = [asetType.getIssuer()];
|
|
514
|
+
}
|
|
515
|
+
else if (op.line instanceof stellar_sdk_1.LiquidityPoolAsset) {
|
|
516
|
+
asetType = op.line;
|
|
517
|
+
to = [(_a = asetType.assetA.getIssuer()) !== null && _a !== void 0 ? _a : protocol_1.StellarAssetType.NATIVE, (_b = asetType.assetB.getIssuer()) !== null && _b !== void 0 ? _b : protocol_1.StellarAssetType.NATIVE];
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
to = [tx.source];
|
|
521
|
+
}
|
|
522
|
+
fee = new bignumber_1.default(tx.fee).dividedBy(tx.operations.length).toString();
|
|
523
|
+
isInbound = false;
|
|
524
|
+
type = protocol_1.StellarTransactionType.CHANGE_TRUST;
|
|
525
|
+
}
|
|
526
|
+
else if (txDetails.type === protocol_1.StellarTransactionType.INOKE_HOST_FUNCTION) {
|
|
527
|
+
isInbound = false;
|
|
528
|
+
op = txDetails;
|
|
529
|
+
fee = tx.fee;
|
|
530
|
+
cont = op.func.value();
|
|
531
|
+
amount = new bignumber_1.default(0).toString();
|
|
532
|
+
try {
|
|
533
|
+
Buffer.from(cont.contractAddress().value(), 'hex');
|
|
534
|
+
contractAddress = stellar_sdk_1.StrKey.encodeContract(Buffer.from(cont.contractAddress().value(), 'hex'));
|
|
535
|
+
to = [contractAddress];
|
|
536
|
+
}
|
|
537
|
+
catch (error) {
|
|
538
|
+
to = [tx.source];
|
|
539
|
+
}
|
|
540
|
+
type = protocol_1.StellarTransactionType.INOKE_HOST_FUNCTION;
|
|
541
|
+
displayFromTo = false;
|
|
542
|
+
uiAlerts.push({
|
|
543
|
+
type: 'warning',
|
|
544
|
+
title: { value: protocol_1.StellarTransactionType.INOKE_HOST_FUNCTION, type: 'plain' },
|
|
545
|
+
description: {
|
|
546
|
+
value: "Transaction ".concat(txDetails.type, " type was not decoded. Please understand what you are signing before proceeding."),
|
|
547
|
+
type: 'plain'
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
else if (txDetails.type === protocol_1.StellarTransactionType.PATH_PAYMENT_RECIEVE) {
|
|
552
|
+
op = txDetails;
|
|
553
|
+
fee = tx.fee;
|
|
554
|
+
sendAssetIsNative = op.sendAsset.isNative();
|
|
555
|
+
amount = new bignumber_1.default(sendAssetIsNative ? op.sendMax : 0).multipliedBy(1e7).toString();
|
|
556
|
+
to = [txDetails.destination];
|
|
557
|
+
isInbound = false;
|
|
558
|
+
type = protocol_1.StellarTransactionType.PATH_PAYMENT_RECIEVE;
|
|
559
|
+
if (!sendAssetIsNative) {
|
|
560
|
+
uiAlerts.push({
|
|
561
|
+
type: 'warning',
|
|
562
|
+
title: { value: protocol_1.StellarTransactionType.PATH_PAYMENT_SEND, type: 'plain' },
|
|
563
|
+
description: {
|
|
564
|
+
value: "Maximum of ".concat(op.sendMax, " ").concat(op.sendAsset, " will be deducted from the source wallet"),
|
|
565
|
+
type: 'plain'
|
|
566
|
+
}
|
|
567
|
+
});
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
uiAlerts.push({
|
|
571
|
+
type: 'info',
|
|
572
|
+
title: { value: protocol_1.StellarTransactionType.PATH_PAYMENT_SEND, type: 'plain' },
|
|
573
|
+
description: {
|
|
574
|
+
value: "".concat(op.destAmount, " ").concat(op.destAsset, " will added to your wallet"),
|
|
575
|
+
type: 'plain'
|
|
576
|
+
}
|
|
577
|
+
});
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
else if (txDetails.type === protocol_1.StellarTransactionType.PATH_PAYMENT_SEND) {
|
|
581
|
+
op = txDetails;
|
|
582
|
+
fee = tx.fee;
|
|
583
|
+
sendAssetIsNative = op.sendAsset.isNative();
|
|
584
|
+
amount = new bignumber_1.default(sendAssetIsNative ? op.sendAmount : 0).multipliedBy(1e7).toString();
|
|
585
|
+
to = [txDetails.destination];
|
|
586
|
+
isInbound = false;
|
|
587
|
+
type = protocol_1.StellarTransactionType.PATH_PAYMENT_SEND;
|
|
588
|
+
if (!sendAssetIsNative) {
|
|
589
|
+
uiAlerts.push({
|
|
590
|
+
type: 'warning',
|
|
591
|
+
title: { value: protocol_1.StellarTransactionType.PATH_PAYMENT_SEND, type: 'plain' },
|
|
592
|
+
description: {
|
|
593
|
+
value: "".concat(op.sendAmount, " ").concat(op.sendAsset, " will be deducted from the source wallet"),
|
|
594
|
+
type: 'plain'
|
|
595
|
+
}
|
|
596
|
+
});
|
|
597
|
+
}
|
|
598
|
+
else {
|
|
599
|
+
uiAlerts.push({
|
|
600
|
+
type: 'info',
|
|
601
|
+
title: { value: protocol_1.StellarTransactionType.PATH_PAYMENT_SEND, type: 'plain' },
|
|
602
|
+
description: {
|
|
603
|
+
value: "Minimum of ".concat(op.destMin, " ").concat(op.destAsset, " will added to your wallet"),
|
|
604
|
+
type: 'plain'
|
|
605
|
+
}
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
else if (txDetails.type === protocol_1.StellarTransactionType.LIQUIDITY_POOL_DEPOSIT) {
|
|
610
|
+
amount = new bignumber_1.default(0).toString();
|
|
611
|
+
op = txDetails;
|
|
612
|
+
fee = tx.fee;
|
|
613
|
+
to = [op.liquidityPoolId];
|
|
614
|
+
uiAlerts.push({
|
|
615
|
+
type: 'warning',
|
|
616
|
+
title: { value: protocol_1.StellarTransactionType.LIQUIDITY_POOL_DEPOSIT, type: 'plain' },
|
|
617
|
+
description: {
|
|
618
|
+
value: "Transaction is not fully decoded",
|
|
619
|
+
type: 'plain'
|
|
620
|
+
}
|
|
621
|
+
});
|
|
622
|
+
uiAlerts.push({
|
|
623
|
+
type: 'warning',
|
|
624
|
+
title: { value: protocol_1.StellarTransactionType.LIQUIDITY_POOL_DEPOSIT, type: 'plain' },
|
|
625
|
+
description: {
|
|
626
|
+
value: "".concat(op.maxAmountA, " & ").concat(op.maxAmountB, " of two different assets will be deducted from the source wallet"),
|
|
627
|
+
type: 'plain'
|
|
628
|
+
}
|
|
629
|
+
});
|
|
630
|
+
type = protocol_1.StellarTransactionType.LIQUIDITY_POOL_DEPOSIT;
|
|
631
|
+
}
|
|
632
|
+
else if (txDetails.type === protocol_1.StellarTransactionType.LIQUIDITY_POOL_WITHDRAW) {
|
|
633
|
+
amount = new bignumber_1.default(0).toString();
|
|
634
|
+
op = txDetails;
|
|
635
|
+
fee = tx.fee;
|
|
636
|
+
to = [op.liquidityPoolId];
|
|
637
|
+
uiAlerts.push({
|
|
638
|
+
type: 'info',
|
|
639
|
+
title: { value: protocol_1.StellarTransactionType.LIQUIDITY_POOL_WITHDRAW, type: 'plain' },
|
|
640
|
+
description: {
|
|
641
|
+
value: "".concat(op.minAmountA, " & ").concat(op.minAmountB, " of two different assets will be added to your wallet"),
|
|
642
|
+
type: 'plain'
|
|
643
|
+
}
|
|
644
|
+
});
|
|
645
|
+
type = protocol_1.StellarTransactionType.LIQUIDITY_POOL_WITHDRAW;
|
|
646
|
+
}
|
|
647
|
+
else if (txDetails.type === protocol_1.StellarTransactionType.SET_OPTIONS) {
|
|
648
|
+
op = txDetails;
|
|
649
|
+
fee = tx.fee;
|
|
650
|
+
signer = op.signer;
|
|
651
|
+
if ('ed25519PublicKey' in signer && signer.ed25519PublicKey) {
|
|
652
|
+
to = [signer.ed25519PublicKey];
|
|
653
|
+
}
|
|
654
|
+
else if ('ed25519SignedPayload' in signer && signer.ed25519SignedPayload) {
|
|
655
|
+
to = [signer.ed25519SignedPayload];
|
|
656
|
+
}
|
|
657
|
+
else if ('preAuthTx' in signer && signer.preAuthTx) {
|
|
658
|
+
to = [signer.preAuthTx.toString('hex')];
|
|
659
|
+
}
|
|
660
|
+
else if ('sha256Hash' in signer && signer.sha256Hash) {
|
|
661
|
+
to = [signer.sha256Hash.toString('hex')];
|
|
662
|
+
}
|
|
663
|
+
else {
|
|
664
|
+
to = [tx.source];
|
|
665
|
+
}
|
|
666
|
+
descriptionParts = [
|
|
667
|
+
to[0] && "Signer: ".concat(to[0]),
|
|
668
|
+
op.masterWeight !== undefined && "MasterWeight: ".concat(op.masterWeight),
|
|
669
|
+
op.lowThreshold !== undefined && "LowThreshold: ".concat(op.lowThreshold),
|
|
670
|
+
op.medThreshold !== undefined && "MedThreshold: ".concat(op.medThreshold),
|
|
671
|
+
op.highThreshold !== undefined && "HighThreshold: ".concat(op.highThreshold)
|
|
672
|
+
]
|
|
673
|
+
.filter(Boolean)
|
|
674
|
+
.join('\n');
|
|
675
|
+
uiAlerts.push({
|
|
676
|
+
type: 'info',
|
|
677
|
+
title: { value: protocol_1.StellarTransactionType.SET_OPTIONS, type: 'plain' },
|
|
678
|
+
description: {
|
|
679
|
+
value: "You are setting the following parameters:\n".concat(descriptionParts),
|
|
680
|
+
type: 'plain'
|
|
681
|
+
}
|
|
682
|
+
});
|
|
683
|
+
amount = new bignumber_1.default(0).toString();
|
|
684
|
+
type = protocol_1.StellarTransactionType.SET_OPTIONS;
|
|
685
|
+
}
|
|
686
|
+
else {
|
|
687
|
+
to = [tx.source];
|
|
688
|
+
fee = tx.fee;
|
|
689
|
+
amount = new bignumber_1.default(0).toString();
|
|
690
|
+
isInbound = false;
|
|
691
|
+
type = txDetails.type;
|
|
692
|
+
uiAlerts.push({
|
|
693
|
+
type: 'warning',
|
|
694
|
+
title: { value: txDetails.type, type: 'plain' },
|
|
695
|
+
description: {
|
|
696
|
+
value: "Transaction ".concat(txDetails.type, " type was not decoded. Please understand what you are signing before proceeding."),
|
|
697
|
+
type: 'plain'
|
|
698
|
+
}
|
|
699
|
+
});
|
|
700
|
+
displayFromTo = false;
|
|
701
|
+
}
|
|
702
|
+
memo = tx.memo.type === 'text' || tx.memo.type === 'id'
|
|
703
|
+
? (_c = tx.memo.value) === null || _c === void 0 ? void 0 : _c.toString()
|
|
704
|
+
: tx.memo.type === 'hash' || tx.memo.type === 'return'
|
|
705
|
+
? (_d = tx.memo.value) === null || _d === void 0 ? void 0 : _d.toString('hex')
|
|
706
|
+
: undefined;
|
|
707
|
+
transactions.push({
|
|
708
|
+
from: [tx.source],
|
|
709
|
+
to: to,
|
|
710
|
+
isInbound: isInbound,
|
|
711
|
+
amount: (0, module_kit_1.newAmount)(amount, 'blockchain'),
|
|
712
|
+
fee: (0, module_kit_1.newAmount)(fee, 'blockchain'),
|
|
713
|
+
network: this.options.network,
|
|
714
|
+
arbitraryData: memo,
|
|
715
|
+
type: type,
|
|
716
|
+
uiAlerts: uiAlerts,
|
|
717
|
+
json: JSON.stringify(tx),
|
|
718
|
+
displayFromTo: displayFromTo
|
|
719
|
+
});
|
|
720
|
+
}
|
|
316
721
|
return [2 /*return*/, transactions];
|
|
317
722
|
});
|
|
318
723
|
});
|
|
@@ -367,64 +772,61 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
367
772
|
});
|
|
368
773
|
};
|
|
369
774
|
StellarProtocolImpl.prototype.getBalanceOfAddress = function (address) {
|
|
370
|
-
var _a;
|
|
371
775
|
return __awaiter(this, void 0, void 0, function () {
|
|
372
|
-
var data, balance, btnBalance,
|
|
373
|
-
return __generator(this, function (
|
|
374
|
-
switch (
|
|
776
|
+
var data, balance, btnBalance, error_7;
|
|
777
|
+
return __generator(this, function (_a) {
|
|
778
|
+
switch (_a.label) {
|
|
375
779
|
case 0:
|
|
376
|
-
|
|
780
|
+
_a.trys.push([0, 2, , 3]);
|
|
377
781
|
return [4 /*yield*/, index_1.default.get("".concat(this.options.network.rpcUrl, "/accounts/").concat(address))];
|
|
378
782
|
case 1:
|
|
379
|
-
data = (
|
|
380
|
-
balance = data.balances.find(function (b) { return b.asset_type ===
|
|
783
|
+
data = (_a.sent()).data;
|
|
784
|
+
balance = data.balances.find(function (b) { return b.asset_type === protocol_1.StellarAssetType.NATIVE; });
|
|
381
785
|
btnBalance = new bignumber_1.default(balance.balance).multipliedBy(1e7).toString();
|
|
382
786
|
return [2 /*return*/, {
|
|
383
787
|
total: (0, module_kit_1.newAmount)(btnBalance, 'blockchain')
|
|
384
788
|
}];
|
|
385
789
|
case 2:
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
return [2 /*return*/, { total: (0, module_kit_1.newAmount)('0', 'blockchain') }];
|
|
389
|
-
}
|
|
390
|
-
throw new errors_1.NetworkError(coinlib_core_1.Domain.STELLAR, error_3);
|
|
790
|
+
error_7 = _a.sent();
|
|
791
|
+
return [2 /*return*/, { total: (0, module_kit_1.newAmount)('0', 'blockchain') }];
|
|
391
792
|
case 3: return [2 /*return*/];
|
|
392
793
|
}
|
|
393
794
|
});
|
|
394
795
|
});
|
|
395
796
|
};
|
|
396
797
|
StellarProtocolImpl.prototype.prepareTransactionWithPublicKey = function (publicKey, details, configuration) {
|
|
397
|
-
var _a;
|
|
798
|
+
var _a, _b;
|
|
398
799
|
return __awaiter(this, void 0, void 0, function () {
|
|
399
|
-
var address, account, txBuilder, _i, details_1, detail, destinationExists, e_1, amount,
|
|
400
|
-
return __generator(this, function (
|
|
401
|
-
switch (
|
|
800
|
+
var address, account, fee, txBuilder, _i, details_1, detail, destinationExists, e_1, amount, memo, tx;
|
|
801
|
+
return __generator(this, function (_c) {
|
|
802
|
+
switch (_c.label) {
|
|
402
803
|
case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey)];
|
|
403
804
|
case 1:
|
|
404
|
-
address =
|
|
805
|
+
address = _c.sent();
|
|
405
806
|
return [4 /*yield*/, this.server.loadAccount(address)];
|
|
406
807
|
case 2:
|
|
407
|
-
account =
|
|
808
|
+
account = _c.sent();
|
|
809
|
+
fee = (configuration === null || configuration === void 0 ? void 0 : configuration.fee) !== undefined ? (_a = configuration === null || configuration === void 0 ? void 0 : configuration.fee) === null || _a === void 0 ? void 0 : _a.value : stellar_sdk_1.BASE_FEE;
|
|
408
810
|
txBuilder = new stellar_sdk_1.TransactionBuilder(account, {
|
|
409
|
-
fee:
|
|
811
|
+
fee: fee,
|
|
410
812
|
networkPassphrase: stellar_sdk_1.Networks.PUBLIC
|
|
411
813
|
});
|
|
412
814
|
_i = 0, details_1 = details;
|
|
413
|
-
|
|
815
|
+
_c.label = 3;
|
|
414
816
|
case 3:
|
|
415
817
|
if (!(_i < details_1.length)) return [3 /*break*/, 9];
|
|
416
818
|
detail = details_1[_i];
|
|
417
819
|
destinationExists = true;
|
|
418
|
-
|
|
820
|
+
_c.label = 4;
|
|
419
821
|
case 4:
|
|
420
|
-
|
|
822
|
+
_c.trys.push([4, 6, , 7]);
|
|
421
823
|
return [4 /*yield*/, this.server.loadAccount(detail.to)];
|
|
422
824
|
case 5:
|
|
423
|
-
|
|
825
|
+
_c.sent();
|
|
424
826
|
return [3 /*break*/, 7];
|
|
425
827
|
case 6:
|
|
426
|
-
e_1 =
|
|
427
|
-
if (((
|
|
828
|
+
e_1 = _c.sent();
|
|
829
|
+
if (((_b = e_1.response) === null || _b === void 0 ? void 0 : _b.status) === 404) {
|
|
428
830
|
destinationExists = false;
|
|
429
831
|
}
|
|
430
832
|
else {
|
|
@@ -446,25 +848,14 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
446
848
|
startingBalance: amount
|
|
447
849
|
}));
|
|
448
850
|
}
|
|
449
|
-
|
|
851
|
+
_c.label = 8;
|
|
450
852
|
case 8:
|
|
451
853
|
_i++;
|
|
452
854
|
return [3 /*break*/, 3];
|
|
453
855
|
case 9:
|
|
454
856
|
if (configuration === null || configuration === void 0 ? void 0 : configuration.arbitraryData) {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
txBuilder.addMemo(stellar_sdk_1.Memo.hash(Buffer.from(memoPlusMemoType.split(':')[1].trim(), 'hex')));
|
|
458
|
-
}
|
|
459
|
-
else if (memoPlusMemoType.startsWith('id:')) {
|
|
460
|
-
txBuilder.addMemo(stellar_sdk_1.Memo.id(memoPlusMemoType.split(':')[1].trim()));
|
|
461
|
-
}
|
|
462
|
-
else if (memoPlusMemoType.startsWith('return:')) {
|
|
463
|
-
txBuilder.addMemo(stellar_sdk_1.Memo.return(Buffer.from(memoPlusMemoType.split(':')[1].trim(), 'hex').toString('hex')));
|
|
464
|
-
}
|
|
465
|
-
else if (memoPlusMemoType.startsWith('text:')) {
|
|
466
|
-
txBuilder.addMemo(stellar_sdk_1.Memo.text(memoPlusMemoType.split(':')[1].trim()));
|
|
467
|
-
}
|
|
857
|
+
memo = configuration === null || configuration === void 0 ? void 0 : configuration.arbitraryData;
|
|
858
|
+
txBuilder.addMemo(stellar_sdk_1.Memo.id(memo));
|
|
468
859
|
}
|
|
469
860
|
tx = txBuilder.setTimeout(600).build();
|
|
470
861
|
return [2 /*return*/, (0, module_kit_1.newUnsignedTransaction)({
|
|
@@ -494,6 +885,52 @@ var StellarProtocolImpl = /** @class */ (function () {
|
|
|
494
885
|
});
|
|
495
886
|
});
|
|
496
887
|
};
|
|
888
|
+
StellarProtocolImpl.prototype.getWalletConnectChain = function () {
|
|
889
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
890
|
+
var chain;
|
|
891
|
+
return __generator(this, function (_a) {
|
|
892
|
+
chain = this.options.network.type === 'mainnet' ? 'pubnet' : 'testnet';
|
|
893
|
+
return [2 /*return*/, "stellar:".concat(chain)];
|
|
894
|
+
});
|
|
895
|
+
});
|
|
896
|
+
};
|
|
897
|
+
StellarProtocolImpl.prototype.prepareWalletConnectTransactionWithPublicKey = function (publicKey, request) {
|
|
898
|
+
var _a, _b;
|
|
899
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
900
|
+
var sourceAddress, sourceAccount, destination, value, amount, fee, txBuilder, tx;
|
|
901
|
+
return __generator(this, function (_c) {
|
|
902
|
+
switch (_c.label) {
|
|
903
|
+
case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey)];
|
|
904
|
+
case 1:
|
|
905
|
+
sourceAddress = _c.sent();
|
|
906
|
+
return [4 /*yield*/, this.server.loadAccount(sourceAddress)];
|
|
907
|
+
case 2:
|
|
908
|
+
sourceAccount = _c.sent();
|
|
909
|
+
destination = (_a = request.to) !== null && _a !== void 0 ? _a : '';
|
|
910
|
+
value = (_b = request.value) !== null && _b !== void 0 ? _b : '0';
|
|
911
|
+
amount = new bignumber_1.default(value).dividedBy(1e7).toString() // convert from stroops to XLM
|
|
912
|
+
;
|
|
913
|
+
fee = stellar_sdk_1.BASE_FEE;
|
|
914
|
+
txBuilder = new stellar_sdk_1.TransactionBuilder(sourceAccount, {
|
|
915
|
+
fee: fee,
|
|
916
|
+
networkPassphrase: stellar_sdk_1.Networks.PUBLIC
|
|
917
|
+
});
|
|
918
|
+
txBuilder.addOperation(stellar_sdk_1.Operation.payment({
|
|
919
|
+
destination: destination,
|
|
920
|
+
asset: stellar_sdk_1.Asset.native(),
|
|
921
|
+
amount: amount
|
|
922
|
+
}));
|
|
923
|
+
if (request.data) {
|
|
924
|
+
txBuilder.addMemo(stellar_sdk_1.Memo.id(request.data.toString()));
|
|
925
|
+
}
|
|
926
|
+
tx = txBuilder.setTimeout(600).build();
|
|
927
|
+
return [2 /*return*/, (0, module_kit_1.newUnsignedTransaction)({
|
|
928
|
+
transaction: tx.toXDR()
|
|
929
|
+
})];
|
|
930
|
+
}
|
|
931
|
+
});
|
|
932
|
+
});
|
|
933
|
+
};
|
|
497
934
|
return StellarProtocolImpl;
|
|
498
935
|
}());
|
|
499
936
|
exports.StellarProtocolImpl = StellarProtocolImpl;
|
|
@@ -506,7 +943,7 @@ exports.STELLAR_MAINNET_PROTOCOL_NETWORK = {
|
|
|
506
943
|
name: 'Mainnet',
|
|
507
944
|
type: 'mainnet',
|
|
508
945
|
rpcUrl: 'https://horizon.stellar.org',
|
|
509
|
-
blockExplorerUrl: 'https://stellar.expert/explorer'
|
|
946
|
+
blockExplorerUrl: 'https://stellar.expert/explorer/public'
|
|
510
947
|
};
|
|
511
948
|
var DEFAULT_STELLAR_PROTOCOL_NETWORK = exports.STELLAR_MAINNET_PROTOCOL_NETWORK;
|
|
512
949
|
function createStellarProtocolOptions(network) {
|
|
@@ -516,9 +953,4 @@ function createStellarProtocolOptions(network) {
|
|
|
516
953
|
};
|
|
517
954
|
}
|
|
518
955
|
exports.createStellarProtocolOptions = createStellarProtocolOptions;
|
|
519
|
-
// function flattenArray(
|
|
520
|
-
// transactions: AirGapTransaction<StellarUnits>[][]
|
|
521
|
-
// ): AirGapTransaction<StellarUnits>[] | PromiseLike<AirGapTransaction<StellarUnits>[]> {
|
|
522
|
-
// throw new Error('Function not implemented.')
|
|
523
|
-
// }
|
|
524
956
|
//# sourceMappingURL=StellarProtocol.js.map
|