@meshsdk/core 1.5.8 → 1.5.9-beta.1
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/dist/common/contracts/fetcher.d.ts +1 -0
- package/dist/common/types/UTxO.d.ts +1 -0
- package/dist/core.cjs +1 -1
- package/dist/core.js +1902 -1372
- package/dist/providers/blockfrost.provider.d.ts +3 -0
- package/dist/providers/koios.provider.d.ts +3 -0
- package/dist/providers/maestro.provider.d.ts +7 -3
- package/dist/providers/tango.provider.d.ts +1 -0
- package/dist/transaction/index.d.ts +1 -0
- package/dist/transaction/meshTxBuilder/index.d.ts +1 -0
- package/dist/transaction/meshTxBuilder/meshTxBuilder.service.d.ts +44 -0
- package/dist/transaction/meshTxBuilder/meshTxBuilder.spec.d.ts +1 -0
- package/dist/transaction/meshTxBuilder/meshTxBuilderCore.d.ts +239 -0
- package/dist/transaction/meshTxBuilder/type.d.ts +95 -0
- package/package.json +3 -3
package/dist/core.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { customAlphabet as
|
|
2
|
-
import * as
|
|
1
|
+
import { customAlphabet as Ce } from "nanoid";
|
|
2
|
+
import * as a from "@emurgo/cardano-serialization-lib-nodejs";
|
|
3
3
|
import L from "axios";
|
|
4
|
-
import { mnemonicToEntropy as
|
|
5
|
-
import { COSEKey as
|
|
6
|
-
const
|
|
4
|
+
import { mnemonicToEntropy as we, generateMnemonic as ze } from "bip39";
|
|
5
|
+
import { COSEKey as Be, COSESign1 as We, Label as X, Int as Ct, BigNum as Kt, KeyType as Je, AlgorithmId as Ee, CBORValue as Nt, HeaderMap as Xt, Headers as je, ProtectedHeaderMap as Xe, COSESign1Builder as Ze } from "@emurgo/cardano-message-signing-nodejs";
|
|
6
|
+
const ts = ["testnet", "preview", "preprod", "mainnet"], es = (r) => ts.includes(r), At = {
|
|
7
7
|
mem: 7e6,
|
|
8
8
|
steps: 3e9
|
|
9
|
-
},
|
|
9
|
+
}, P = {
|
|
10
10
|
epoch: 0,
|
|
11
11
|
coinsPerUTxOSize: "4310",
|
|
12
12
|
priceMem: 0.0577,
|
|
@@ -27,23 +27,23 @@ const Ze = ["testnet", "preview", "preprod", "mainnet"], ts = (s) => Ze.includes
|
|
|
27
27
|
maxTxExSteps: "10000000000",
|
|
28
28
|
maxBlockExMem: "80000000",
|
|
29
29
|
maxBlockExSteps: "40000000000"
|
|
30
|
-
}, Ut = 2147483648,
|
|
31
|
-
V1:
|
|
32
|
-
V2:
|
|
33
|
-
},
|
|
34
|
-
CERT:
|
|
35
|
-
MINT:
|
|
36
|
-
REWARD:
|
|
37
|
-
SPEND:
|
|
38
|
-
},
|
|
30
|
+
}, Ut = 2147483648, Et = {
|
|
31
|
+
V1: a.Language.new_plutus_v1(),
|
|
32
|
+
V2: a.Language.new_plutus_v2()
|
|
33
|
+
}, F = 56, ss = {
|
|
34
|
+
CERT: a.RedeemerTag.new_cert(),
|
|
35
|
+
MINT: a.RedeemerTag.new_mint(),
|
|
36
|
+
REWARD: a.RedeemerTag.new_reward(),
|
|
37
|
+
SPEND: a.RedeemerTag.new_spend()
|
|
38
|
+
}, St = {
|
|
39
39
|
testnet: ["74", "1598400", "1595967616", "432000"],
|
|
40
40
|
preview: ["183", "15811222", "1682467200", "86400"],
|
|
41
41
|
preprod: ["65", "26438400", "1682121600", "432000"],
|
|
42
42
|
mainnet: ["208", "4492800", "1596059091", "432000"]
|
|
43
|
-
},
|
|
44
|
-
ALONZO:
|
|
43
|
+
}, Zt = {
|
|
44
|
+
ALONZO: a.TxBuilderConstants.plutus_alonzo_cost_models(),
|
|
45
45
|
BABBAGE: (() => {
|
|
46
|
-
const
|
|
46
|
+
const r = a.Costmdls.new(), e = a.CostModel.new();
|
|
47
47
|
Object.values({
|
|
48
48
|
"addInteger-cpu-arguments-intercept": 205665,
|
|
49
49
|
"addInteger-cpu-arguments-slope": 812,
|
|
@@ -211,8 +211,8 @@ const Ze = ["testnet", "preview", "preprod", "mainnet"], ts = (s) => Ze.includes
|
|
|
211
211
|
"verifyEd25519Signature-cpu-arguments-intercept": 57996947,
|
|
212
212
|
"verifyEd25519Signature-cpu-arguments-slope": 18975,
|
|
213
213
|
"verifyEd25519Signature-memory-arguments": 10
|
|
214
|
-
}).forEach((
|
|
215
|
-
const t =
|
|
214
|
+
}).forEach((s, n) => e.set(n, a.Int.new_i32(s)));
|
|
215
|
+
const t = a.CostModel.new();
|
|
216
216
|
return Object.values({
|
|
217
217
|
"addInteger-cpu-arguments-intercept": 205665,
|
|
218
218
|
"addInteger-cpu-arguments-slope": 812,
|
|
@@ -389,9 +389,9 @@ const Ze = ["testnet", "preview", "preprod", "mainnet"], ts = (s) => Ze.includes
|
|
|
389
389
|
"verifySchnorrSecp256k1Signature-cpu-arguments-intercept": 38887044,
|
|
390
390
|
"verifySchnorrSecp256k1Signature-cpu-arguments-slope": 32947,
|
|
391
391
|
"verifySchnorrSecp256k1Signature-memory-arguments": 10
|
|
392
|
-
}).forEach((
|
|
392
|
+
}).forEach((s, n) => t.set(n, a.Int.new_i32(s))), r.insert(a.Language.new_plutus_v1(), e), r.insert(a.Language.new_plutus_v2(), t), r;
|
|
393
393
|
})()
|
|
394
|
-
},
|
|
394
|
+
}, rs = {
|
|
395
395
|
ALONZO: {
|
|
396
396
|
V1: "a141005901d59f1a000302590001011a00060bc719026d00011a000249f01903e800011a000249f018201a0025cea81971f70419744d186419744d186419744d186419744d186419744d186419744d18641864186419744d18641a000249f018201a000249f018201a000249f018201a000249f01903e800011a000249f018201a000249f01903e800081a000242201a00067e2318760001011a000249f01903e800081a000249f01a0001b79818f7011a000249f0192710011a0002155e19052e011903e81a000249f01903e8011a000249f018201a000249f018201a000249f0182001011a000249f0011a000249f0041a000194af18f8011a000194af18f8011a0002377c190556011a0002bdea1901f1011a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a000242201a00067e23187600010119f04c192bd200011a000249f018201a000242201a00067e2318760001011a000242201a00067e2318760001011a0025cea81971f704001a000141bb041a000249f019138800011a000249f018201a000302590001011a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a00330da70101ff"
|
|
397
397
|
},
|
|
@@ -399,10 +399,10 @@ const Ze = ["testnet", "preview", "preprod", "mainnet"], ts = (s) => Ze.includes
|
|
|
399
399
|
V1: "a141005901b69f1a0003236119032c01011903e819023b00011903e8195e7104011903e818201a0001ca761928eb041959d818641959d818641959d818641959d818641959d818641959d81864186418641959d81864194c5118201a0002acfa182019b551041a000363151901ff00011a00015c3518201a000797751936f404021a0002ff941a0006ea7818dc0001011903e8196ff604021a0003bd081a00034ec5183e011a00102e0f19312a011a00032e801901a5011a0002da781903e819cf06011a00013a34182019a8f118201903e818201a00013aac0119e143041903e80a1a00030219189c011a00030219189c011a0003207c1901d9011a000330001901ff0119ccf3182019fd40182019ffd5182019581e18201940b318201a00012adf18201a0002ff941a0006ea7818dc0001011a00010f92192da7000119eabb18201a0002ff941a0006ea7818dc0001011a0002ff941a0006ea7818dc0001011a000c504e197712041a001d6af61a0001425b041a00040c660004001a00014fab18201a0003236119032c010119a0de18201a00033d7618201979f41820197fb8182019a95d1820197df718201995aa18201a009063b91903fd0aff",
|
|
400
400
|
V2: "a20198af1a0003236119032c01011903e819023b00011903e8195e7104011903e818201a0001ca761928eb041959d818641959d818641959d818641959d818641959d818641959d81864186418641959d81864194c5118201a0002acfa182019b551041a000363151901ff00011a00015c3518201a000797751936f404021a0002ff941a0006ea7818dc0001011903e8196ff604021a0003bd081a00034ec5183e011a00102e0f19312a011a00032e801901a5011a0002da781903e819cf06011a00013a34182019a8f118201903e818201a00013aac0119e143041903e80a1a00030219189c011a00030219189c011a0003207c1901d9011a000330001901ff0119ccf3182019fd40182019ffd5182019581e18201940b318201a00012adf18201a0002ff941a0006ea7818dc0001011a00010f92192da7000119eabb18201a0002ff941a0006ea7818dc0001011a0002ff941a0006ea7818dc0001011a0011b22c1a0005fdde00021a000c504e197712041a001d6af61a0001425b041a00040c660004001a00014fab18201a0003236119032c010119a0de18201a00033d7618201979f41820197fb8182019a95d1820197df718201995aa18201b00000004a817c8001b00000004a817c8001a009063b91903fd0a1b00000004a817c800001b00000004a817c80041005901b69f1a0003236119032c01011903e819023b00011903e8195e7104011903e818201a0001ca761928eb041959d818641959d818641959d818641959d818641959d818641959d81864186418641959d81864194c5118201a0002acfa182019b551041a000363151901ff00011a00015c3518201a000797751936f404021a0002ff941a0006ea7818dc0001011903e8196ff604021a0003bd081a00034ec5183e011a00102e0f19312a011a00032e801901a5011a0002da781903e819cf06011a00013a34182019a8f118201903e818201a00013aac0119e143041903e80a1a00030219189c011a00030219189c011a0003207c1901d9011a000330001901ff0119ccf3182019fd40182019ffd5182019581e18201940b318201a00012adf18201a0002ff941a0006ea7818dc0001011a00010f92192da7000119eabb18201a0002ff941a0006ea7818dc0001011a0002ff941a0006ea7818dc0001011a000c504e197712041a001d6af61a0001425b041a00040c660004001a00014fab18201a0003236119032c010119a0de18201a00033d7618201979f41820197fb8182019a95d1820197df718201995aa18201a009063b91903fd0aff"
|
|
401
401
|
}
|
|
402
|
-
},
|
|
403
|
-
[
|
|
404
|
-
[
|
|
405
|
-
},
|
|
402
|
+
}, Vt = {
|
|
403
|
+
[a.NetworkInfo.testnet().network_id()]: "8d18d786e92776c824607fd8e193ec535c79dc61ea2405ddf3b09fe3",
|
|
404
|
+
[a.NetworkInfo.mainnet().network_id()]: "f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a"
|
|
405
|
+
}, ns = {
|
|
406
406
|
mainnet: "wss://ogmios-api.mainnet.dandelion.link",
|
|
407
407
|
preprod: "wss://ogmios-api.iohk-preprod.dandelion.link",
|
|
408
408
|
preview: "__TBD_SOON_TM__",
|
|
@@ -436,7 +436,7 @@ const Ze = ["testnet", "preview", "preprod", "mainnet"], ts = (s) => Ze.includes
|
|
|
436
436
|
SHEN: "8db269c3ec630e06ae29f74bc39edd1f87c819f1056206e879a1cd615368656e4d6963726f555344",
|
|
437
437
|
WMT: "1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e776f726c646d6f62696c65746f6b656e",
|
|
438
438
|
COPI: "b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0436f726e75636f70696173205b76696120436861696e506f72742e696f5d"
|
|
439
|
-
},
|
|
439
|
+
}, te = [
|
|
440
440
|
"begin",
|
|
441
441
|
"eternl",
|
|
442
442
|
"flint",
|
|
@@ -447,222 +447,222 @@ const Ze = ["testnet", "preview", "preprod", "mainnet"], ts = (s) => Ze.includes
|
|
|
447
447
|
"typhoncip30",
|
|
448
448
|
"vespr",
|
|
449
449
|
"yoroi"
|
|
450
|
-
],
|
|
451
|
-
const
|
|
450
|
+
], is = (r, e, t = "5000000") => {
|
|
451
|
+
const s = a.BigNum.from_str(r.get("lovelace") ?? "0").checked_add(a.BigNum.from_str(t)), n = e.filter((c) => c.output.amount.filter((u) => u.unit !== "lovelace").some((u) => r.has(u.unit))), i = ds(n);
|
|
452
452
|
return [
|
|
453
|
-
...
|
|
454
|
-
...
|
|
453
|
+
...i.less_than(s) ? hs(s.clamped_sub(i).to_str(), e.filter((c) => !n.some((u) => u.input.txHash === c.input.txHash && u.input.outputIndex === c.input.outputIndex))) : [],
|
|
454
|
+
...n
|
|
455
455
|
];
|
|
456
|
-
},
|
|
457
|
-
const o = e.filter((
|
|
458
|
-
return
|
|
456
|
+
}, or = (r, e, t = !1, { maxTxSize: s, minFeeA: n, minFeeB: i } = P) => {
|
|
457
|
+
const o = e.filter((l) => Se(l) === !1).sort(qt), c = a.BigNum.from_str(Le(s, n, i)), u = t ? a.BigNum.from_str(r).checked_add(c).to_str() : r;
|
|
458
|
+
return mt(o, /* @__PURE__ */ new Map([
|
|
459
459
|
["lovelace", u]
|
|
460
460
|
]));
|
|
461
|
-
},
|
|
462
|
-
const
|
|
463
|
-
return
|
|
464
|
-
},
|
|
465
|
-
const
|
|
466
|
-
return
|
|
467
|
-
},
|
|
468
|
-
var
|
|
469
|
-
const t =
|
|
470
|
-
return
|
|
471
|
-
},
|
|
472
|
-
const { maxTxSize: e, minFeeA: t, minFeeB:
|
|
473
|
-
return
|
|
474
|
-
},
|
|
475
|
-
var
|
|
476
|
-
const
|
|
477
|
-
return e.checked_add(
|
|
478
|
-
},
|
|
479
|
-
const t = e.sort(
|
|
480
|
-
return
|
|
481
|
-
["lovelace",
|
|
461
|
+
}, os = (r, e, t = !1, s = P) => {
|
|
462
|
+
const n = e.filter(Se).sort(qt), i = us(s), o = r.get("lovelace") ?? "0", c = t ? a.BigNum.from_str(o).checked_add(i).to_str() : o;
|
|
463
|
+
return r.set("lovelace", c), mt(n, r);
|
|
464
|
+
}, cs = (r, e) => Array.from(e, (t) => ({ unit: t[0], quantity: a.BigNum.from_str(t[1]) })).every((t) => r.filter((s) => s.output.amount.find((n) => n.unit === t.unit) !== void 0).reduce((s, n) => {
|
|
465
|
+
const i = n.output.amount.reduce((o, c) => o.checked_add(a.BigNum.from_str(t.unit === c.unit ? c.quantity : "0")), a.BigNum.from_str("0"));
|
|
466
|
+
return s.checked_add(i);
|
|
467
|
+
}, a.BigNum.from_str("0")).less_than(t.quantity) === !1), qt = (r, e) => {
|
|
468
|
+
var n, i;
|
|
469
|
+
const t = a.BigNum.from_str(((n = r.output.amount.find((o) => o.unit === "lovelace")) == null ? void 0 : n.quantity) ?? "0");
|
|
470
|
+
return a.BigNum.from_str(((i = e.output.amount.find((o) => o.unit === "lovelace")) == null ? void 0 : i.quantity) ?? "0").compare(t);
|
|
471
|
+
}, us = (r) => {
|
|
472
|
+
const { maxTxSize: e, minFeeA: t, minFeeB: s } = r;
|
|
473
|
+
return a.BigNum.from_str(Le(e, t, s));
|
|
474
|
+
}, Se = (r) => r.output.amount.length > 1, ds = (r) => r.reduce((e, t) => {
|
|
475
|
+
var n;
|
|
476
|
+
const s = ((n = t.output.amount.find((i) => i.unit === "lovelace")) == null ? void 0 : n.quantity) ?? "0";
|
|
477
|
+
return e.checked_add(a.BigNum.from_str(s));
|
|
478
|
+
}, a.BigNum.from_str("0")), hs = (r, e) => {
|
|
479
|
+
const t = e.sort(qt);
|
|
480
|
+
return mt(t, /* @__PURE__ */ new Map([
|
|
481
|
+
["lovelace", r]
|
|
482
482
|
]));
|
|
483
|
-
},
|
|
484
|
-
const t =
|
|
483
|
+
}, mt = (r, e, t = []) => r.length === 0 || cs(t, e) ? t : ls(r[0], e) ? mt(r.slice(1), e, [...t, r[0]]) : mt(r.slice(1), e, t), ls = (r, e) => Array.from(e.keys()).some((t) => r.output.amount.find((s) => s.unit === t) !== void 0), As = (r, e) => {
|
|
484
|
+
const t = ms(e), s = Is(r, e);
|
|
485
485
|
return {
|
|
486
|
-
coseKey:
|
|
487
|
-
coseSign1:
|
|
486
|
+
coseKey: v(t.to_bytes()),
|
|
487
|
+
coseSign1: v(s.to_bytes())
|
|
488
488
|
};
|
|
489
|
-
},
|
|
489
|
+
}, cr = (r, e, { key: t, signature: s }) => {
|
|
490
490
|
var o, c;
|
|
491
|
-
const
|
|
492
|
-
if ((
|
|
493
|
-
const u =
|
|
494
|
-
if (S(
|
|
491
|
+
const n = Be.from_bytes(I(t)), i = We.from_bytes(I(s));
|
|
492
|
+
if ((r == null ? void 0 : r.length) > 0) {
|
|
493
|
+
const u = v(i.payload() ?? new Uint8Array());
|
|
494
|
+
if (S(r) !== u)
|
|
495
495
|
return !1;
|
|
496
496
|
}
|
|
497
497
|
if ((e == null ? void 0 : e.length) > 0) {
|
|
498
|
-
const
|
|
499
|
-
if (
|
|
498
|
+
const d = (o = i.headers().protected().deserialized_headers().header(X.new_text("address"))) == null ? void 0 : o.as_bytes();
|
|
499
|
+
if (d === void 0)
|
|
500
500
|
throw new Error("Couldn't find a signer address in signature");
|
|
501
|
-
const
|
|
502
|
-
if (
|
|
501
|
+
const A = (c = n.header(X.new_int(Ct.new_negative(Kt.from_str("2"))))) == null ? void 0 : c.as_bytes();
|
|
502
|
+
if (A === void 0)
|
|
503
503
|
throw new Error("Couldn't find a signer key in signature");
|
|
504
|
-
const
|
|
505
|
-
if (
|
|
504
|
+
const l = rt(v(d)), g = qs(v(A));
|
|
505
|
+
if (gs(e, l, g) === !1)
|
|
506
506
|
throw new Error("Couldn't check signature because of address mismatch");
|
|
507
|
-
const f =
|
|
508
|
-
return
|
|
507
|
+
const f = Vs(v(i.signature())), y = i.signed_data().to_bytes();
|
|
508
|
+
return g.verify(y, f);
|
|
509
509
|
}
|
|
510
510
|
return !1;
|
|
511
|
-
},
|
|
512
|
-
if (
|
|
511
|
+
}, gs = (r, e, t) => {
|
|
512
|
+
if (r !== e.to_bech32())
|
|
513
513
|
return !1;
|
|
514
514
|
try {
|
|
515
|
-
return
|
|
515
|
+
return lt(r) === t.hash().to_hex();
|
|
516
516
|
} catch {
|
|
517
517
|
return !1;
|
|
518
518
|
}
|
|
519
|
-
},
|
|
520
|
-
const e =
|
|
521
|
-
return e.set_algorithm_id(
|
|
522
|
-
}, Is = (
|
|
523
|
-
const t =
|
|
524
|
-
t.set_algorithm_id(
|
|
525
|
-
const
|
|
526
|
-
|
|
527
|
-
const o =
|
|
528
|
-
return
|
|
519
|
+
}, ms = (r) => {
|
|
520
|
+
const e = Be.new(X.from_key_type(Je.OKP));
|
|
521
|
+
return e.set_algorithm_id(X.from_algorithm_id(Ee.EdDSA)), e.set_header(X.new_int(Ct.new_negative(Kt.from_str("1"))), Nt.new_int(Ct.new_i32(6))), e.set_header(X.new_int(Ct.new_negative(Kt.from_str("2"))), Nt.new_bytes(r.key.to_public().as_bytes())), e;
|
|
522
|
+
}, Is = (r, e) => {
|
|
523
|
+
const t = Xt.new(), s = Xt.new();
|
|
524
|
+
t.set_algorithm_id(X.from_algorithm_id(Ee.EdDSA)), t.set_header(X.new_text("address"), Nt.new_bytes(e.address.to_bytes()));
|
|
525
|
+
const n = je.new(Xe.new(t), s), i = Ze.new(n, I(r.payload), !1);
|
|
526
|
+
r.externalAAD !== void 0 && i.set_external_aad(I(r.externalAAD));
|
|
527
|
+
const o = i.make_data_to_sign(), c = e.key.sign(o.to_bytes());
|
|
528
|
+
return i.build(c.to_bytes());
|
|
529
529
|
};
|
|
530
|
-
var
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
var
|
|
536
|
-
function
|
|
537
|
-
|
|
530
|
+
var ee = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Qe = {}, Q = { exports: {} };
|
|
531
|
+
G.notEqual = fs;
|
|
532
|
+
G.notOk = _s;
|
|
533
|
+
G.equal = ps;
|
|
534
|
+
G.ok = G;
|
|
535
|
+
var be = G;
|
|
536
|
+
function ps(r, e, t) {
|
|
537
|
+
G(r == e, t);
|
|
538
538
|
}
|
|
539
|
-
function
|
|
540
|
-
|
|
539
|
+
function fs(r, e, t) {
|
|
540
|
+
G(r != e, t);
|
|
541
541
|
}
|
|
542
|
-
function
|
|
543
|
-
|
|
542
|
+
function _s(r, e) {
|
|
543
|
+
G(!r, e);
|
|
544
544
|
}
|
|
545
|
-
function
|
|
546
|
-
if (!
|
|
545
|
+
function G(r, e) {
|
|
546
|
+
if (!r)
|
|
547
547
|
throw new Error(e || "AssertionError");
|
|
548
548
|
}
|
|
549
549
|
var O = { exports: {} };
|
|
550
|
-
function
|
|
551
|
-
throw new Error('Could not dynamically require "' +
|
|
550
|
+
function ys(r) {
|
|
551
|
+
throw new Error('Could not dynamically require "' + r + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
552
552
|
}
|
|
553
|
-
var
|
|
554
|
-
|
|
555
|
-
function
|
|
556
|
-
if (!
|
|
553
|
+
var xs = Rt;
|
|
554
|
+
Rt.supported = typeof WebAssembly < "u";
|
|
555
|
+
function Rt(r) {
|
|
556
|
+
if (!Rt.supported)
|
|
557
557
|
return null;
|
|
558
|
-
var e = s && s.imports, t = Cs("AGFzbQEAAAABEANgAn9/AGADf39/AGABfwADBQQAAQICBQUBAQroBwdNBQZtZW1vcnkCAAxibGFrZTJiX2luaXQAAA5ibGFrZTJiX3VwZGF0ZQABDWJsYWtlMmJfZmluYWwAAhBibGFrZTJiX2NvbXByZXNzAAMK00AElgMAIABCADcDACAAQQhqQgA3AwAgAEEQakIANwMAIABBGGpCADcDACAAQSBqQgA3AwAgAEEoakIANwMAIABBMGpCADcDACAAQThqQgA3AwAgAEHAAGpCADcDACAAQcgAakIANwMAIABB0ABqQgA3AwAgAEHYAGpCADcDACAAQeAAakIANwMAIABB6ABqQgA3AwAgAEHwAGpCADcDACAAQfgAakIANwMAIABBgAFqQoiS853/zPmE6gBBACkDAIU3AwAgAEGIAWpCu86qptjQ67O7f0EIKQMAhTcDACAAQZABakKr8NP0r+68tzxBECkDAIU3AwAgAEGYAWpC8e30+KWn/aelf0EYKQMAhTcDACAAQaABakLRhZrv+s+Uh9EAQSApAwCFNwMAIABBqAFqQp/Y+dnCkdqCm39BKCkDAIU3AwAgAEGwAWpC6/qG2r+19sEfQTApAwCFNwMAIABBuAFqQvnC+JuRo7Pw2wBBOCkDAIU3AwAgAEHAAWpCADcDACAAQcgBakIANwMAIABB0AFqQgA3AwALbQEDfyAAQcABaiEDIABByAFqIQQgBCkDAKchBQJAA0AgASACRg0BIAVBgAFGBEAgAyADKQMAIAWtfDcDAEEAIQUgABADCyAAIAVqIAEtAAA6AAAgBUEBaiEFIAFBAWohAQwACwsgBCAFrTcDAAtkAQN/IABBwAFqIQEgAEHIAWohAiABIAEpAwAgAikDAHw3AwAgAEHQAWpCfzcDACACKQMApyEDAkADQCADQYABRg0BIAAgA2pBADoAACADQQFqIQMMAAsLIAIgA603AwAgABADC+U7AiB+CX8gAEGAAWohISAAQYgBaiEiIABBkAFqISMgAEGYAWohJCAAQaABaiElIABBqAFqISYgAEGwAWohJyAAQbgBaiEoICEpAwAhASAiKQMAIQIgIykDACEDICQpAwAhBCAlKQMAIQUgJikDACEGICcpAwAhByAoKQMAIQhCiJLznf/M+YTqACEJQrvOqqbY0Ouzu38hCkKr8NP0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"), r = null, a = {
|
|
558
|
+
var e = r && r.imports, t = Cs("AGFzbQEAAAABEANgAn9/AGADf39/AGABfwADBQQAAQICBQUBAQroBwdNBQZtZW1vcnkCAAxibGFrZTJiX2luaXQAAA5ibGFrZTJiX3VwZGF0ZQABDWJsYWtlMmJfZmluYWwAAhBibGFrZTJiX2NvbXByZXNzAAMK00AElgMAIABCADcDACAAQQhqQgA3AwAgAEEQakIANwMAIABBGGpCADcDACAAQSBqQgA3AwAgAEEoakIANwMAIABBMGpCADcDACAAQThqQgA3AwAgAEHAAGpCADcDACAAQcgAakIANwMAIABB0ABqQgA3AwAgAEHYAGpCADcDACAAQeAAakIANwMAIABB6ABqQgA3AwAgAEHwAGpCADcDACAAQfgAakIANwMAIABBgAFqQoiS853/zPmE6gBBACkDAIU3AwAgAEGIAWpCu86qptjQ67O7f0EIKQMAhTcDACAAQZABakKr8NP0r+68tzxBECkDAIU3AwAgAEGYAWpC8e30+KWn/aelf0EYKQMAhTcDACAAQaABakLRhZrv+s+Uh9EAQSApAwCFNwMAIABBqAFqQp/Y+dnCkdqCm39BKCkDAIU3AwAgAEGwAWpC6/qG2r+19sEfQTApAwCFNwMAIABBuAFqQvnC+JuRo7Pw2wBBOCkDAIU3AwAgAEHAAWpCADcDACAAQcgBakIANwMAIABB0AFqQgA3AwALbQEDfyAAQcABaiEDIABByAFqIQQgBCkDAKchBQJAA0AgASACRg0BIAVBgAFGBEAgAyADKQMAIAWtfDcDAEEAIQUgABADCyAAIAVqIAEtAAA6AAAgBUEBaiEFIAFBAWohAQwACwsgBCAFrTcDAAtkAQN/IABBwAFqIQEgAEHIAWohAiABIAEpAwAgAikDAHw3AwAgAEHQAWpCfzcDACACKQMApyEDAkADQCADQYABRg0BIAAgA2pBADoAACADQQFqIQMMAAsLIAIgA603AwAgABADC+U7AiB+CX8gAEGAAWohISAAQYgBaiEiIABBkAFqISMgAEGYAWohJCAAQaABaiElIABBqAFqISYgAEGwAWohJyAAQbgBaiEoICEpAwAhASAiKQMAIQIgIykDACEDICQpAwAhBCAlKQMAIQUgJikDACEGICcpAwAhByAoKQMAIQhCiJLznf/M+YTqACEJQrvOqqbY0Ouzu38hCkKr8NP0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"), s = null, n = {
|
|
559
559
|
buffer: t,
|
|
560
560
|
memory: null,
|
|
561
561
|
exports: null,
|
|
562
|
-
realloc:
|
|
562
|
+
realloc: i,
|
|
563
563
|
onload: o
|
|
564
564
|
};
|
|
565
565
|
return o(function() {
|
|
566
|
-
}),
|
|
567
|
-
function
|
|
568
|
-
|
|
566
|
+
}), n;
|
|
567
|
+
function i(u) {
|
|
568
|
+
n.exports.memory.grow(Math.ceil(Math.abs(u - n.memory.length) / 65536)), n.memory = new Uint8Array(n.exports.memory.buffer);
|
|
569
569
|
}
|
|
570
570
|
function o(u) {
|
|
571
|
-
if (
|
|
571
|
+
if (n.exports)
|
|
572
572
|
return u();
|
|
573
|
-
if (
|
|
574
|
-
|
|
573
|
+
if (s) {
|
|
574
|
+
s.then(u.bind(null, null)).catch(u);
|
|
575
575
|
return;
|
|
576
576
|
}
|
|
577
577
|
try {
|
|
578
|
-
if (
|
|
578
|
+
if (r && r.async)
|
|
579
579
|
throw new Error("async");
|
|
580
580
|
c({ instance: new WebAssembly.Instance(new WebAssembly.Module(t), e) });
|
|
581
581
|
} catch {
|
|
582
|
-
|
|
582
|
+
s = WebAssembly.instantiate(t, e).then(c);
|
|
583
583
|
}
|
|
584
584
|
o(u);
|
|
585
585
|
}
|
|
586
586
|
function c(u) {
|
|
587
|
-
|
|
587
|
+
n.exports = u.instance.exports, n.memory = n.exports.memory && n.exports.memory.buffer && new Uint8Array(n.exports.memory.buffer);
|
|
588
588
|
}
|
|
589
589
|
}
|
|
590
|
-
function Cs(
|
|
591
|
-
return typeof atob == "function" ? new Uint8Array(atob(
|
|
590
|
+
function Cs(r) {
|
|
591
|
+
return typeof atob == "function" ? new Uint8Array(atob(r).split("").map(ws)) : new (ys("buffer")).Buffer(r, "base64");
|
|
592
592
|
}
|
|
593
|
-
function ws(
|
|
594
|
-
return
|
|
593
|
+
function ws(r) {
|
|
594
|
+
return r.charCodeAt(0);
|
|
595
595
|
}
|
|
596
|
-
var
|
|
597
|
-
O.exports =
|
|
598
|
-
var
|
|
596
|
+
var N = be, _ = xs(), R = 64, wt = [];
|
|
597
|
+
O.exports = D;
|
|
598
|
+
var se = O.exports.BYTES_MIN = 16, re = O.exports.BYTES_MAX = 64;
|
|
599
599
|
O.exports.BYTES = 32;
|
|
600
|
-
var
|
|
600
|
+
var ne = O.exports.KEYBYTES_MIN = 16, ae = O.exports.KEYBYTES_MAX = 64;
|
|
601
601
|
O.exports.KEYBYTES = 32;
|
|
602
|
-
var
|
|
603
|
-
function
|
|
604
|
-
if (!(this instanceof
|
|
605
|
-
return new
|
|
602
|
+
var ie = O.exports.SALTBYTES = 16, oe = O.exports.PERSONALBYTES = 16;
|
|
603
|
+
function D(r, e, t, s, n) {
|
|
604
|
+
if (!(this instanceof D))
|
|
605
|
+
return new D(r, e, t, s, n);
|
|
606
606
|
if (!(_ && _.exports))
|
|
607
607
|
throw new Error("WASM not loaded. Wait for Blake2b.ready(cb)");
|
|
608
|
-
|
|
608
|
+
r || (r = 32), n !== !0 && (N(r >= se, "digestLength must be at least " + se + ", was given " + r), N(r <= re, "digestLength must be at most " + re + ", was given " + r), e != null && N(e.length >= ne, "key must be at least " + ne + ", was given " + e.length), e != null && N(e.length <= ae, "key must be at least " + ae + ", was given " + e.length), t != null && N(t.length === ie, "salt must be exactly " + ie + ", was given " + t.length), s != null && N(s.length === oe, "personal must be exactly " + oe + ", was given " + s.length)), wt.length || (wt.push(R), R += 216), this.digestLength = r, this.finalized = !1, this.pointer = wt.pop(), _.memory.fill(0, 0, 64), _.memory[0] = this.digestLength, _.memory[1] = e ? e.length : 0, _.memory[2] = 1, _.memory[3] = 1, t && _.memory.set(t, 32), s && _.memory.set(s, 48), this.pointer + 216 > _.memory.length && _.realloc(this.pointer + 216), _.exports.blake2b_init(this.pointer, this.digestLength), e && (this.update(e), _.memory.fill(0, R, R + e.length), _.memory[this.pointer + 200] = 128);
|
|
609
609
|
}
|
|
610
|
-
|
|
611
|
-
return
|
|
610
|
+
D.prototype.update = function(r) {
|
|
611
|
+
return N(this.finalized === !1, "Hash instance finalized"), N(r, "input must be TypedArray or Buffer"), R + r.length > _.memory.length && _.realloc(R + r.length), _.memory.set(r, R), _.exports.blake2b_update(this.pointer, R, R + r.length), this;
|
|
612
612
|
};
|
|
613
|
-
|
|
614
|
-
if (
|
|
613
|
+
D.prototype.digest = function(r) {
|
|
614
|
+
if (N(this.finalized === !1, "Hash instance finalized"), this.finalized = !0, wt.push(this.pointer), _.exports.blake2b_final(this.pointer), !r || r === "binary")
|
|
615
615
|
return _.memory.slice(this.pointer + 128, this.pointer + 128 + this.digestLength);
|
|
616
|
-
if (
|
|
617
|
-
return
|
|
618
|
-
|
|
616
|
+
if (r === "hex")
|
|
617
|
+
return Es(_.memory, this.pointer + 128, this.digestLength);
|
|
618
|
+
N(r.length >= this.digestLength, "input must be TypedArray or Buffer");
|
|
619
619
|
for (var e = 0; e < this.digestLength; e++)
|
|
620
|
-
|
|
621
|
-
return
|
|
620
|
+
r[e] = _.memory[this.pointer + 128 + e];
|
|
621
|
+
return r;
|
|
622
622
|
};
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
if (
|
|
628
|
-
return
|
|
629
|
-
var e = new Promise(function(t,
|
|
630
|
-
_.onload(function(
|
|
631
|
-
|
|
623
|
+
D.prototype.final = D.prototype.digest;
|
|
624
|
+
D.WASM = _ && _.buffer;
|
|
625
|
+
D.SUPPORTED = typeof WebAssembly < "u";
|
|
626
|
+
D.ready = function(r) {
|
|
627
|
+
if (r || (r = Bs), !_)
|
|
628
|
+
return r(new Error("WebAssembly not supported"));
|
|
629
|
+
var e = new Promise(function(t, s) {
|
|
630
|
+
_.onload(function(n) {
|
|
631
|
+
n ? s() : t(), r(n);
|
|
632
632
|
});
|
|
633
633
|
});
|
|
634
634
|
return e;
|
|
635
635
|
};
|
|
636
|
-
|
|
636
|
+
D.prototype.ready = D.ready;
|
|
637
637
|
function Bs() {
|
|
638
638
|
}
|
|
639
|
-
function
|
|
640
|
-
for (var
|
|
641
|
-
|
|
642
|
-
return
|
|
639
|
+
function Es(r, e, t) {
|
|
640
|
+
for (var s = "", n = 0; n < t; n++)
|
|
641
|
+
s += Ss(r[e + n]);
|
|
642
|
+
return s;
|
|
643
643
|
}
|
|
644
|
-
function
|
|
645
|
-
return
|
|
644
|
+
function Ss(r) {
|
|
645
|
+
return r < 16 ? "0" + r.toString(16) : r.toString(16);
|
|
646
646
|
}
|
|
647
|
-
var
|
|
648
|
-
function
|
|
649
|
-
var
|
|
650
|
-
|
|
647
|
+
var j = be, It = O.exports;
|
|
648
|
+
function ft(r, e, t) {
|
|
649
|
+
var s = r[e] + r[t], n = r[e + 1] + r[t + 1];
|
|
650
|
+
s >= 4294967296 && n++, r[e] = s, r[e + 1] = n;
|
|
651
651
|
}
|
|
652
|
-
function
|
|
653
|
-
var
|
|
654
|
-
t < 0 && (
|
|
655
|
-
var
|
|
656
|
-
|
|
652
|
+
function ce(r, e, t, s) {
|
|
653
|
+
var n = r[e] + t;
|
|
654
|
+
t < 0 && (n += 4294967296);
|
|
655
|
+
var i = r[e + 1] + s;
|
|
656
|
+
n >= 4294967296 && i++, r[e] = n, r[e + 1] = i;
|
|
657
657
|
}
|
|
658
|
-
function
|
|
659
|
-
return
|
|
658
|
+
function ve(r, e) {
|
|
659
|
+
return r[e] ^ r[e + 1] << 8 ^ r[e + 2] << 16 ^ r[e + 3] << 24;
|
|
660
660
|
}
|
|
661
|
-
function
|
|
662
|
-
var o =
|
|
663
|
-
|
|
664
|
-
var
|
|
665
|
-
|
|
661
|
+
function W(r, e, t, s, n, i) {
|
|
662
|
+
var o = ht[n], c = ht[n + 1], u = ht[i], d = ht[i + 1];
|
|
663
|
+
ft(m, r, e), ce(m, r, o, c);
|
|
664
|
+
var A = m[s] ^ m[r], l = m[s + 1] ^ m[r + 1];
|
|
665
|
+
m[s] = l, m[s + 1] = A, ft(m, t, s), A = m[e] ^ m[t], l = m[e + 1] ^ m[t + 1], m[e] = A >>> 24 ^ l << 8, m[e + 1] = l >>> 24 ^ A << 8, ft(m, r, e), ce(m, r, u, d), A = m[s] ^ m[r], l = m[s + 1] ^ m[r + 1], m[s] = A >>> 16 ^ l << 16, m[s + 1] = l >>> 16 ^ A << 16, ft(m, t, s), A = m[e] ^ m[t], l = m[e + 1] ^ m[t + 1], m[e] = l >>> 31 ^ A << 1, m[e + 1] = A >>> 31 ^ l << 1;
|
|
666
666
|
}
|
|
667
667
|
var De = new Uint32Array([
|
|
668
668
|
4089235720,
|
|
@@ -681,7 +681,7 @@ var De = new Uint32Array([
|
|
|
681
681
|
528734635,
|
|
682
682
|
327033209,
|
|
683
683
|
1541459225
|
|
684
|
-
]),
|
|
684
|
+
]), Qs = [
|
|
685
685
|
0,
|
|
686
686
|
1,
|
|
687
687
|
2,
|
|
@@ -874,21 +874,21 @@ var De = new Uint32Array([
|
|
|
874
874
|
7,
|
|
875
875
|
5,
|
|
876
876
|
3
|
|
877
|
-
],
|
|
878
|
-
return
|
|
879
|
-
})),
|
|
880
|
-
function
|
|
877
|
+
], B = new Uint8Array(Qs.map(function(r) {
|
|
878
|
+
return r * 2;
|
|
879
|
+
})), m = new Uint32Array(32), ht = new Uint32Array(32);
|
|
880
|
+
function ke(r, e) {
|
|
881
881
|
var t = 0;
|
|
882
882
|
for (t = 0; t < 16; t++)
|
|
883
|
-
|
|
884
|
-
for (
|
|
885
|
-
|
|
883
|
+
m[t] = r.h[t], m[t + 16] = De[t];
|
|
884
|
+
for (m[24] = m[24] ^ r.t, m[25] = m[25] ^ r.t / 4294967296, e && (m[28] = ~m[28], m[29] = ~m[29]), t = 0; t < 32; t++)
|
|
885
|
+
ht[t] = ve(r.b, 4 * t);
|
|
886
886
|
for (t = 0; t < 12; t++)
|
|
887
|
-
|
|
887
|
+
W(0, 8, 16, 24, B[t * 16 + 0], B[t * 16 + 1]), W(2, 10, 18, 26, B[t * 16 + 2], B[t * 16 + 3]), W(4, 12, 20, 28, B[t * 16 + 4], B[t * 16 + 5]), W(6, 14, 22, 30, B[t * 16 + 6], B[t * 16 + 7]), W(0, 10, 20, 30, B[t * 16 + 8], B[t * 16 + 9]), W(2, 12, 22, 24, B[t * 16 + 10], B[t * 16 + 11]), W(4, 14, 16, 26, B[t * 16 + 12], B[t * 16 + 13]), W(6, 8, 18, 28, B[t * 16 + 14], B[t * 16 + 15]);
|
|
888
888
|
for (t = 0; t < 16; t++)
|
|
889
|
-
|
|
889
|
+
r.h[t] = r.h[t] ^ m[t] ^ m[t + 16];
|
|
890
890
|
}
|
|
891
|
-
var
|
|
891
|
+
var J = new Uint8Array([
|
|
892
892
|
0,
|
|
893
893
|
0,
|
|
894
894
|
0,
|
|
@@ -954,203 +954,203 @@ var W = new Uint8Array([
|
|
|
954
954
|
0,
|
|
955
955
|
0
|
|
956
956
|
]);
|
|
957
|
-
function
|
|
958
|
-
|
|
959
|
-
for (var
|
|
960
|
-
this.h[
|
|
961
|
-
e && (
|
|
957
|
+
function it(r, e, t, s) {
|
|
958
|
+
J.fill(0), this.b = new Uint8Array(128), this.h = new Uint32Array(16), this.t = 0, this.c = 0, this.outlen = r, J[0] = r, e && (J[1] = e.length), J[2] = 1, J[3] = 1, t && J.set(t, 32), s && J.set(s, 48);
|
|
959
|
+
for (var n = 0; n < 16; n++)
|
|
960
|
+
this.h[n] = De[n] ^ ve(J, n * 4);
|
|
961
|
+
e && (Te(this, e), this.c = 128);
|
|
962
962
|
}
|
|
963
|
-
|
|
964
|
-
return
|
|
963
|
+
it.prototype.update = function(r) {
|
|
964
|
+
return j(r != null, "input must be Uint8Array or Buffer"), Te(this, r), this;
|
|
965
965
|
};
|
|
966
|
-
|
|
967
|
-
var e = !
|
|
968
|
-
return
|
|
966
|
+
it.prototype.digest = function(r) {
|
|
967
|
+
var e = !r || r === "binary" || r === "hex" ? new Uint8Array(this.outlen) : r;
|
|
968
|
+
return j(e.length >= this.outlen, "out must have at least outlen bytes of space"), bs(this, e), r === "hex" ? vs(e) : e;
|
|
969
969
|
};
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
970
|
+
it.prototype.final = it.prototype.digest;
|
|
971
|
+
it.ready = function(r) {
|
|
972
|
+
It.ready(function() {
|
|
973
|
+
r();
|
|
974
974
|
});
|
|
975
975
|
};
|
|
976
|
-
function
|
|
976
|
+
function Te(r, e) {
|
|
977
977
|
for (var t = 0; t < e.length; t++)
|
|
978
|
-
|
|
978
|
+
r.c === 128 && (r.t += r.c, ke(r, !1), r.c = 0), r.b[r.c++] = e[t];
|
|
979
979
|
}
|
|
980
|
-
function
|
|
981
|
-
for (
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
for (var t = 0; t <
|
|
985
|
-
e[t] =
|
|
980
|
+
function bs(r, e) {
|
|
981
|
+
for (r.t += r.c; r.c < 128; )
|
|
982
|
+
r.b[r.c++] = 0;
|
|
983
|
+
ke(r, !0);
|
|
984
|
+
for (var t = 0; t < r.outlen; t++)
|
|
985
|
+
e[t] = r.h[t >> 2] >> 8 * (t & 3);
|
|
986
986
|
return e;
|
|
987
987
|
}
|
|
988
|
-
function
|
|
989
|
-
for (var e = "", t = 0; t <
|
|
990
|
-
e += Ds(
|
|
988
|
+
function vs(r) {
|
|
989
|
+
for (var e = "", t = 0; t < r.length; t++)
|
|
990
|
+
e += Ds(r[t]);
|
|
991
991
|
return e;
|
|
992
992
|
}
|
|
993
|
-
function Ds(
|
|
994
|
-
return
|
|
993
|
+
function Ds(r) {
|
|
994
|
+
return r < 16 ? "0" + r.toString(16) : r.toString(16);
|
|
995
995
|
}
|
|
996
|
-
var Ue =
|
|
997
|
-
Q.exports = function(e, t,
|
|
998
|
-
return
|
|
996
|
+
var Ue = it;
|
|
997
|
+
Q.exports = function(e, t, s, n, i) {
|
|
998
|
+
return i !== !0 && (j(e >= ue, "outlen must be at least " + ue + ", was given " + e), j(e <= de, "outlen must be at most " + de + ", was given " + e), t != null && j(t.length >= he, "key must be at least " + he + ", was given " + t.length), t != null && j(t.length <= le, "key must be at most " + le + ", was given " + t.length), s != null && j(s.length === Ae, "salt must be exactly " + Ae + ", was given " + s.length), n != null && j(n.length === ge, "personal must be exactly " + ge + ", was given " + n.length)), new Ue(e, t, s, n);
|
|
999
999
|
};
|
|
1000
|
-
Q.exports.ready = function(
|
|
1001
|
-
|
|
1002
|
-
|
|
1000
|
+
Q.exports.ready = function(r) {
|
|
1001
|
+
It.ready(function() {
|
|
1002
|
+
r();
|
|
1003
1003
|
});
|
|
1004
1004
|
};
|
|
1005
|
-
Q.exports.WASM_SUPPORTED =
|
|
1005
|
+
Q.exports.WASM_SUPPORTED = It.SUPPORTED;
|
|
1006
1006
|
Q.exports.WASM_LOADED = !1;
|
|
1007
|
-
var
|
|
1007
|
+
var ue = Q.exports.BYTES_MIN = 16, de = Q.exports.BYTES_MAX = 64;
|
|
1008
1008
|
Q.exports.BYTES = 32;
|
|
1009
|
-
var
|
|
1009
|
+
var he = Q.exports.KEYBYTES_MIN = 16, le = Q.exports.KEYBYTES_MAX = 64;
|
|
1010
1010
|
Q.exports.KEYBYTES = 32;
|
|
1011
|
-
var Ae = Q.exports.SALTBYTES = 16,
|
|
1012
|
-
|
|
1013
|
-
|
|
1011
|
+
var Ae = Q.exports.SALTBYTES = 16, ge = Q.exports.PERSONALBYTES = 16;
|
|
1012
|
+
It.ready(function(r) {
|
|
1013
|
+
r || (Q.exports.WASM_LOADED = !0, Ue = It);
|
|
1014
1014
|
});
|
|
1015
|
-
var
|
|
1016
|
-
Object.defineProperty(
|
|
1017
|
-
|
|
1018
|
-
const
|
|
1019
|
-
for (let
|
|
1020
|
-
const e =
|
|
1021
|
-
|
|
1015
|
+
var ot = {};
|
|
1016
|
+
Object.defineProperty(ot, "__esModule", { value: !0 });
|
|
1017
|
+
ot.bech32m = ot.bech32 = void 0;
|
|
1018
|
+
const Qt = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", Pe = {};
|
|
1019
|
+
for (let r = 0; r < Qt.length; r++) {
|
|
1020
|
+
const e = Qt.charAt(r);
|
|
1021
|
+
Pe[e] = r;
|
|
1022
1022
|
}
|
|
1023
|
-
function at(
|
|
1024
|
-
const e =
|
|
1025
|
-
return (
|
|
1023
|
+
function at(r) {
|
|
1024
|
+
const e = r >> 25;
|
|
1025
|
+
return (r & 33554431) << 5 ^ -(e >> 0 & 1) & 996825010 ^ -(e >> 1 & 1) & 642813549 ^ -(e >> 2 & 1) & 513874426 ^ -(e >> 3 & 1) & 1027748829 ^ -(e >> 4 & 1) & 705979059;
|
|
1026
1026
|
}
|
|
1027
|
-
function
|
|
1027
|
+
function me(r) {
|
|
1028
1028
|
let e = 1;
|
|
1029
|
-
for (let t = 0; t <
|
|
1030
|
-
const
|
|
1031
|
-
if (
|
|
1032
|
-
return "Invalid prefix (" +
|
|
1033
|
-
e = at(e) ^
|
|
1029
|
+
for (let t = 0; t < r.length; ++t) {
|
|
1030
|
+
const s = r.charCodeAt(t);
|
|
1031
|
+
if (s < 33 || s > 126)
|
|
1032
|
+
return "Invalid prefix (" + r + ")";
|
|
1033
|
+
e = at(e) ^ s >> 5;
|
|
1034
1034
|
}
|
|
1035
1035
|
e = at(e);
|
|
1036
|
-
for (let t = 0; t <
|
|
1037
|
-
const
|
|
1038
|
-
e = at(e) ^
|
|
1036
|
+
for (let t = 0; t < r.length; ++t) {
|
|
1037
|
+
const s = r.charCodeAt(t);
|
|
1038
|
+
e = at(e) ^ s & 31;
|
|
1039
1039
|
}
|
|
1040
1040
|
return e;
|
|
1041
1041
|
}
|
|
1042
|
-
function
|
|
1043
|
-
let
|
|
1042
|
+
function Yt(r, e, t, s) {
|
|
1043
|
+
let n = 0, i = 0;
|
|
1044
1044
|
const o = (1 << t) - 1, c = [];
|
|
1045
|
-
for (let u = 0; u <
|
|
1046
|
-
for (
|
|
1047
|
-
|
|
1048
|
-
if (
|
|
1049
|
-
|
|
1045
|
+
for (let u = 0; u < r.length; ++u)
|
|
1046
|
+
for (n = n << e | r[u], i += e; i >= t; )
|
|
1047
|
+
i -= t, c.push(n >> i & o);
|
|
1048
|
+
if (s)
|
|
1049
|
+
i > 0 && c.push(n << t - i & o);
|
|
1050
1050
|
else {
|
|
1051
|
-
if (
|
|
1051
|
+
if (i >= e)
|
|
1052
1052
|
return "Excess padding";
|
|
1053
|
-
if (
|
|
1053
|
+
if (n << t - i & o)
|
|
1054
1054
|
return "Non-zero padding";
|
|
1055
1055
|
}
|
|
1056
1056
|
return c;
|
|
1057
1057
|
}
|
|
1058
|
-
function
|
|
1059
|
-
return
|
|
1058
|
+
function ks(r) {
|
|
1059
|
+
return Yt(r, 8, 5, !0);
|
|
1060
1060
|
}
|
|
1061
|
-
function
|
|
1062
|
-
const e =
|
|
1061
|
+
function Ts(r) {
|
|
1062
|
+
const e = Yt(r, 5, 8, !1);
|
|
1063
1063
|
if (Array.isArray(e))
|
|
1064
1064
|
return e;
|
|
1065
1065
|
}
|
|
1066
|
-
function Us(
|
|
1067
|
-
const e =
|
|
1066
|
+
function Us(r) {
|
|
1067
|
+
const e = Yt(r, 5, 8, !1);
|
|
1068
1068
|
if (Array.isArray(e))
|
|
1069
1069
|
return e;
|
|
1070
1070
|
throw new Error(e);
|
|
1071
1071
|
}
|
|
1072
|
-
function
|
|
1072
|
+
function Ke(r) {
|
|
1073
1073
|
let e;
|
|
1074
|
-
|
|
1074
|
+
r === "bech32" ? e = 1 : e = 734539939;
|
|
1075
1075
|
function t(o, c, u) {
|
|
1076
1076
|
if (u = u || 90, o.length + 7 + c.length > u)
|
|
1077
1077
|
throw new TypeError("Exceeds length limit");
|
|
1078
1078
|
o = o.toLowerCase();
|
|
1079
|
-
let
|
|
1080
|
-
if (typeof
|
|
1081
|
-
throw new Error(
|
|
1082
|
-
let
|
|
1083
|
-
for (let
|
|
1084
|
-
const
|
|
1085
|
-
if (
|
|
1079
|
+
let d = me(o);
|
|
1080
|
+
if (typeof d == "string")
|
|
1081
|
+
throw new Error(d);
|
|
1082
|
+
let A = o + "1";
|
|
1083
|
+
for (let l = 0; l < c.length; ++l) {
|
|
1084
|
+
const g = c[l];
|
|
1085
|
+
if (g >> 5 !== 0)
|
|
1086
1086
|
throw new Error("Non 5-bit word");
|
|
1087
|
-
|
|
1087
|
+
d = at(d) ^ g, A += Qt.charAt(g);
|
|
1088
1088
|
}
|
|
1089
|
-
for (let
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
for (let
|
|
1093
|
-
const
|
|
1094
|
-
|
|
1089
|
+
for (let l = 0; l < 6; ++l)
|
|
1090
|
+
d = at(d);
|
|
1091
|
+
d ^= e;
|
|
1092
|
+
for (let l = 0; l < 6; ++l) {
|
|
1093
|
+
const g = d >> (5 - l) * 5 & 31;
|
|
1094
|
+
A += Qt.charAt(g);
|
|
1095
1095
|
}
|
|
1096
|
-
return
|
|
1096
|
+
return A;
|
|
1097
1097
|
}
|
|
1098
|
-
function
|
|
1098
|
+
function s(o, c) {
|
|
1099
1099
|
if (c = c || 90, o.length < 8)
|
|
1100
1100
|
return o + " too short";
|
|
1101
1101
|
if (o.length > c)
|
|
1102
1102
|
return "Exceeds length limit";
|
|
1103
|
-
const u = o.toLowerCase(),
|
|
1104
|
-
if (o !== u && o !==
|
|
1103
|
+
const u = o.toLowerCase(), d = o.toUpperCase();
|
|
1104
|
+
if (o !== u && o !== d)
|
|
1105
1105
|
return "Mixed-case string " + o;
|
|
1106
1106
|
o = u;
|
|
1107
|
-
const
|
|
1108
|
-
if (
|
|
1107
|
+
const A = o.lastIndexOf("1");
|
|
1108
|
+
if (A === -1)
|
|
1109
1109
|
return "No separator character for " + o;
|
|
1110
|
-
if (
|
|
1110
|
+
if (A === 0)
|
|
1111
1111
|
return "Missing prefix for " + o;
|
|
1112
|
-
const
|
|
1113
|
-
if (
|
|
1112
|
+
const l = o.slice(0, A), g = o.slice(A + 1);
|
|
1113
|
+
if (g.length < 6)
|
|
1114
1114
|
return "Data too short";
|
|
1115
|
-
let f =
|
|
1115
|
+
let f = me(l);
|
|
1116
1116
|
if (typeof f == "string")
|
|
1117
1117
|
return f;
|
|
1118
1118
|
const y = [];
|
|
1119
|
-
for (let
|
|
1120
|
-
const
|
|
1119
|
+
for (let V = 0; V < g.length; ++V) {
|
|
1120
|
+
const z = g.charAt(V), p = Pe[z];
|
|
1121
1121
|
if (p === void 0)
|
|
1122
|
-
return "Unknown character " +
|
|
1123
|
-
f = at(f) ^ p, !(
|
|
1122
|
+
return "Unknown character " + z;
|
|
1123
|
+
f = at(f) ^ p, !(V + 6 >= g.length) && y.push(p);
|
|
1124
1124
|
}
|
|
1125
|
-
return f !== e ? "Invalid checksum for " + o : { prefix:
|
|
1125
|
+
return f !== e ? "Invalid checksum for " + o : { prefix: l, words: y };
|
|
1126
1126
|
}
|
|
1127
|
-
function
|
|
1128
|
-
const u =
|
|
1127
|
+
function n(o, c) {
|
|
1128
|
+
const u = s(o, c);
|
|
1129
1129
|
if (typeof u == "object")
|
|
1130
1130
|
return u;
|
|
1131
1131
|
}
|
|
1132
|
-
function
|
|
1133
|
-
const u =
|
|
1132
|
+
function i(o, c) {
|
|
1133
|
+
const u = s(o, c);
|
|
1134
1134
|
if (typeof u == "object")
|
|
1135
1135
|
return u;
|
|
1136
1136
|
throw new Error(u);
|
|
1137
1137
|
}
|
|
1138
1138
|
return {
|
|
1139
|
-
decodeUnsafe:
|
|
1140
|
-
decode:
|
|
1139
|
+
decodeUnsafe: n,
|
|
1140
|
+
decode: i,
|
|
1141
1141
|
encode: t,
|
|
1142
|
-
toWords:
|
|
1143
|
-
fromWordsUnsafe:
|
|
1142
|
+
toWords: ks,
|
|
1143
|
+
fromWordsUnsafe: Ts,
|
|
1144
1144
|
fromWords: Us
|
|
1145
1145
|
};
|
|
1146
1146
|
}
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
var
|
|
1150
|
-
return
|
|
1147
|
+
ot.bech32 = Ke("bech32");
|
|
1148
|
+
ot.bech32m = Ke("bech32m");
|
|
1149
|
+
var Ps = ee && ee.__importDefault || function(r) {
|
|
1150
|
+
return r && r.__esModule ? r : { default: r };
|
|
1151
1151
|
};
|
|
1152
|
-
Object.defineProperty(
|
|
1153
|
-
const
|
|
1152
|
+
Object.defineProperty(Qe, "__esModule", { value: !0 });
|
|
1153
|
+
const Ks = Ps(Q.exports), _t = ot, Pt = "asset";
|
|
1154
1154
|
class gt {
|
|
1155
1155
|
constructor(e) {
|
|
1156
1156
|
this.hashBuf = e;
|
|
@@ -1159,478 +1159,484 @@ class gt {
|
|
|
1159
1159
|
return new gt(e);
|
|
1160
1160
|
}
|
|
1161
1161
|
static fromParts(e, t) {
|
|
1162
|
-
const
|
|
1163
|
-
return gt.fromHash(
|
|
1162
|
+
const s = (0, Ks.default)(20).update(new Uint8Array([...e, ...t])).digest("binary");
|
|
1163
|
+
return gt.fromHash(s);
|
|
1164
1164
|
}
|
|
1165
1165
|
static fromBech32(e) {
|
|
1166
|
-
const { prefix: t, words:
|
|
1167
|
-
if (t !==
|
|
1166
|
+
const { prefix: t, words: s } = _t.bech32.decode(e);
|
|
1167
|
+
if (t !== Pt)
|
|
1168
1168
|
throw new Error("Invalid asset fingerprint");
|
|
1169
|
-
const
|
|
1170
|
-
return gt.fromHash(
|
|
1169
|
+
const n = Buffer.from(_t.bech32.fromWords(s));
|
|
1170
|
+
return gt.fromHash(n);
|
|
1171
1171
|
}
|
|
1172
1172
|
fingerprint() {
|
|
1173
|
-
const e =
|
|
1174
|
-
return
|
|
1173
|
+
const e = _t.bech32.toWords(this.hashBuf);
|
|
1174
|
+
return _t.bech32.encode(Pt, e);
|
|
1175
1175
|
}
|
|
1176
1176
|
hash() {
|
|
1177
1177
|
return Buffer.from(this.hashBuf).toString("hex");
|
|
1178
1178
|
}
|
|
1179
1179
|
prefix() {
|
|
1180
|
-
return
|
|
1180
|
+
return Pt;
|
|
1181
1181
|
}
|
|
1182
1182
|
checksum() {
|
|
1183
1183
|
return this.fingerprint().slice(-6);
|
|
1184
1184
|
}
|
|
1185
1185
|
}
|
|
1186
|
-
var
|
|
1187
|
-
const
|
|
1188
|
-
const t =
|
|
1189
|
-
return
|
|
1190
|
-
},
|
|
1186
|
+
var Ns = Qe.default = gt;
|
|
1187
|
+
const Hs = Ns, Ms = (r, e) => {
|
|
1188
|
+
const t = Fs(r), s = t.derive(Ut + 1852).derive(Ut + 1815).derive(Ut + e), n = s.derive(0).derive(0).to_raw_key(), i = s.derive(2).derive(0).to_raw_key();
|
|
1189
|
+
return s.free(), t.free(), { paymentKey: n, stakeKey: i };
|
|
1190
|
+
}, rt = (r) => a.Address.from_bytes(I(r)), Fs = (r) => a.Bip32PrivateKey.from_bytes(I(r)), Os = (r) => a.DataHash.from_bytes(I(r)), M = (r) => a.Ed25519KeyHash.from_bytes(I(r)), Vs = (r) => a.Ed25519Signature.from_bytes(I(r)), vt = (r) => a.NativeScript.from_bytes(I(r)), qs = (r) => a.PublicKey.from_bytes(I(r)), Ne = (r) => a.PlutusData.from_bytes(I(r)), ct = (r, e) => a.PlutusScript.from_bytes_with_version(I(r), Et[e]), Rs = (r) => a.ScriptRef.from_bytes(I(r)), Ys = (r) => a.ScriptHash.from_bytes(I(r)), Y = (r) => a.Transaction.from_bytes(I(r)), He = (r) => a.TransactionHash.from_bytes(I(r)), Ie = (r) => a.TransactionUnspentOutput.from_bytes(I(r)), Ls = (r) => a.TransactionWitnessSet.from_bytes(I(r)), Gs = (r) => a.Value.from_bytes(I(r)), K = (r) => a.Address.from_bech32(r), Lt = (r) => a.BaseAddress.from_address(K(r)), Me = (r) => a.EnterpriseAddress.from_address(K(r)), Fe = (r) => a.RewardAddress.from_address(K(r)), v = (r) => Buffer.from(r).toString("hex"), I = (r) => r.length % 2 === 0 && /^[0-9A-F]*$/i.test(r) ? Buffer.from(r, "hex") : Buffer.from(r, "utf-8"), Dt = (r) => {
|
|
1191
1191
|
const e = (t) => {
|
|
1192
|
-
const
|
|
1193
|
-
for (let
|
|
1194
|
-
|
|
1195
|
-
return
|
|
1192
|
+
const s = new Array();
|
|
1193
|
+
for (let n = 0; n < t.len(); n += 1)
|
|
1194
|
+
s.push(Dt(t.get(n)));
|
|
1195
|
+
return s;
|
|
1196
1196
|
};
|
|
1197
|
-
switch (
|
|
1198
|
-
case
|
|
1199
|
-
const t =
|
|
1197
|
+
switch (r.kind()) {
|
|
1198
|
+
case a.NativeScriptKind.ScriptAll: {
|
|
1199
|
+
const t = r.as_script_all();
|
|
1200
1200
|
return {
|
|
1201
1201
|
type: "all",
|
|
1202
1202
|
scripts: e(t.native_scripts())
|
|
1203
1203
|
};
|
|
1204
1204
|
}
|
|
1205
|
-
case
|
|
1206
|
-
const t =
|
|
1205
|
+
case a.NativeScriptKind.ScriptAny: {
|
|
1206
|
+
const t = r.as_script_any();
|
|
1207
1207
|
return {
|
|
1208
1208
|
type: "any",
|
|
1209
1209
|
scripts: e(t.native_scripts())
|
|
1210
1210
|
};
|
|
1211
1211
|
}
|
|
1212
|
-
case
|
|
1213
|
-
const t =
|
|
1212
|
+
case a.NativeScriptKind.ScriptNOfK: {
|
|
1213
|
+
const t = r.as_script_n_of_k();
|
|
1214
1214
|
return {
|
|
1215
1215
|
type: "atLeast",
|
|
1216
1216
|
required: t.n(),
|
|
1217
1217
|
scripts: e(t.native_scripts())
|
|
1218
1218
|
};
|
|
1219
1219
|
}
|
|
1220
|
-
case
|
|
1221
|
-
const t =
|
|
1220
|
+
case a.NativeScriptKind.TimelockStart: {
|
|
1221
|
+
const t = r.as_timelock_start();
|
|
1222
1222
|
return {
|
|
1223
1223
|
type: "after",
|
|
1224
1224
|
slot: t.slot_bignum().to_str()
|
|
1225
1225
|
};
|
|
1226
1226
|
}
|
|
1227
|
-
case
|
|
1228
|
-
const t =
|
|
1227
|
+
case a.NativeScriptKind.TimelockExpiry: {
|
|
1228
|
+
const t = r.as_timelock_expiry();
|
|
1229
1229
|
return {
|
|
1230
1230
|
type: "before",
|
|
1231
1231
|
slot: t.slot_bignum().to_str()
|
|
1232
1232
|
};
|
|
1233
1233
|
}
|
|
1234
|
-
case
|
|
1235
|
-
const t =
|
|
1234
|
+
case a.NativeScriptKind.ScriptPubkey: {
|
|
1235
|
+
const t = r.as_script_pubkey();
|
|
1236
1236
|
return {
|
|
1237
1237
|
type: "sig",
|
|
1238
1238
|
keyHash: t.addr_keyhash().to_hex()
|
|
1239
1239
|
};
|
|
1240
1240
|
}
|
|
1241
1241
|
default:
|
|
1242
|
-
throw new Error(`Script Kind: ${
|
|
1242
|
+
throw new Error(`Script Kind: ${r.kind()}, is not supported`);
|
|
1243
1243
|
}
|
|
1244
|
-
},
|
|
1244
|
+
}, kt = (r) => {
|
|
1245
1245
|
const e = (t) => {
|
|
1246
|
-
const
|
|
1247
|
-
return t.forEach((
|
|
1248
|
-
|
|
1249
|
-
}),
|
|
1246
|
+
const s = a.NativeScripts.new();
|
|
1247
|
+
return t.forEach((n) => {
|
|
1248
|
+
s.add(kt(n));
|
|
1249
|
+
}), s;
|
|
1250
1250
|
};
|
|
1251
|
-
switch (
|
|
1251
|
+
switch (r.type) {
|
|
1252
1252
|
case "all":
|
|
1253
|
-
return
|
|
1253
|
+
return a.NativeScript.new_script_all(a.ScriptAll.new(e(r.scripts)));
|
|
1254
1254
|
case "any":
|
|
1255
|
-
return
|
|
1255
|
+
return a.NativeScript.new_script_any(a.ScriptAny.new(e(r.scripts)));
|
|
1256
1256
|
case "atLeast":
|
|
1257
|
-
return
|
|
1257
|
+
return a.NativeScript.new_script_n_of_k(a.ScriptNOfK.new(r.required, e(r.scripts)));
|
|
1258
1258
|
case "after":
|
|
1259
|
-
return
|
|
1259
|
+
return a.NativeScript.new_timelock_start(a.TimelockStart.new_timelockstart(a.BigNum.from_str(r.slot)));
|
|
1260
1260
|
case "before":
|
|
1261
|
-
return
|
|
1261
|
+
return a.NativeScript.new_timelock_expiry(a.TimelockExpiry.new_timelockexpiry(a.BigNum.from_str(r.slot)));
|
|
1262
1262
|
case "sig":
|
|
1263
|
-
return
|
|
1263
|
+
return a.NativeScript.new_script_pubkey(a.ScriptPubkey.new(M(r.keyHash)));
|
|
1264
1264
|
}
|
|
1265
|
-
},
|
|
1266
|
-
var
|
|
1265
|
+
}, Bt = (r) => {
|
|
1266
|
+
var s, n, i;
|
|
1267
1267
|
const e = (o) => {
|
|
1268
1268
|
const c = [];
|
|
1269
1269
|
for (let u = 0; u < o.len(); u += 1)
|
|
1270
|
-
c.push(
|
|
1270
|
+
c.push(Bt(o.get(u)));
|
|
1271
1271
|
return c;
|
|
1272
1272
|
}, t = (o) => {
|
|
1273
1273
|
const c = /* @__PURE__ */ new Map();
|
|
1274
1274
|
for (let u = 0; u < o.len(); u += 1) {
|
|
1275
|
-
const
|
|
1276
|
-
c.set(
|
|
1275
|
+
const d = o.keys().get(u), A = o.get(d) ?? a.PlutusData.from_hex(S("NO_ITEM_FOUND_INSIDE_GOLD_ROOM"));
|
|
1276
|
+
c.set(Bt(d), Bt(A));
|
|
1277
1277
|
}
|
|
1278
1278
|
return c;
|
|
1279
1279
|
};
|
|
1280
|
-
switch (
|
|
1281
|
-
case
|
|
1282
|
-
return
|
|
1283
|
-
case
|
|
1284
|
-
return parseInt(((
|
|
1285
|
-
case
|
|
1286
|
-
return e(
|
|
1287
|
-
case
|
|
1288
|
-
return t(
|
|
1289
|
-
case
|
|
1280
|
+
switch (r.kind()) {
|
|
1281
|
+
case a.PlutusDataKind.Bytes:
|
|
1282
|
+
return v(r.as_bytes() ?? new Uint8Array());
|
|
1283
|
+
case a.PlutusDataKind.Integer:
|
|
1284
|
+
return parseInt(((s = r.as_integer()) == null ? void 0 : s.to_str()) ?? "0", 10);
|
|
1285
|
+
case a.PlutusDataKind.List:
|
|
1286
|
+
return e(r.as_list() ?? a.PlutusList.new());
|
|
1287
|
+
case a.PlutusDataKind.Map:
|
|
1288
|
+
return t(r.as_map() ?? a.PlutusMap.new());
|
|
1289
|
+
case a.PlutusDataKind.ConstrPlutusData:
|
|
1290
1290
|
return {
|
|
1291
|
-
alternative: parseInt(((
|
|
1292
|
-
fields: e(((
|
|
1291
|
+
alternative: parseInt(((n = r.as_constr_plutus_data()) == null ? void 0 : n.alternative().to_str()) ?? "0", 10),
|
|
1292
|
+
fields: e(((i = r.as_constr_plutus_data()) == null ? void 0 : i.data()) ?? a.PlutusList.new())
|
|
1293
1293
|
};
|
|
1294
1294
|
default:
|
|
1295
|
-
throw new Error(`PlutusData Kind: ${
|
|
1295
|
+
throw new Error(`PlutusData Kind: ${r.kind()}, is not supported`);
|
|
1296
1296
|
}
|
|
1297
|
-
},
|
|
1297
|
+
}, b = (r) => {
|
|
1298
1298
|
const e = (t) => {
|
|
1299
|
-
const
|
|
1300
|
-
return t.forEach((
|
|
1301
|
-
|
|
1302
|
-
}),
|
|
1299
|
+
const s = a.PlutusList.new();
|
|
1300
|
+
return t.forEach((n) => {
|
|
1301
|
+
s.add(b(n));
|
|
1302
|
+
}), s;
|
|
1303
1303
|
};
|
|
1304
|
-
switch (typeof
|
|
1304
|
+
switch (typeof r) {
|
|
1305
1305
|
case "string":
|
|
1306
|
-
return
|
|
1306
|
+
return a.PlutusData.new_bytes(I(r));
|
|
1307
1307
|
case "number":
|
|
1308
|
-
return
|
|
1308
|
+
return a.PlutusData.new_integer(a.BigInt.from_str(r.toString()));
|
|
1309
1309
|
case "object":
|
|
1310
|
-
if (
|
|
1311
|
-
const t = e(
|
|
1312
|
-
return
|
|
1313
|
-
} else if (
|
|
1314
|
-
const t =
|
|
1315
|
-
return
|
|
1316
|
-
t.insert(
|
|
1317
|
-
}),
|
|
1310
|
+
if (r instanceof Array) {
|
|
1311
|
+
const t = e(r);
|
|
1312
|
+
return a.PlutusData.new_list(t);
|
|
1313
|
+
} else if (r instanceof Map) {
|
|
1314
|
+
const t = a.PlutusMap.new();
|
|
1315
|
+
return r.forEach((s, n) => {
|
|
1316
|
+
t.insert(b(n), b(s));
|
|
1317
|
+
}), a.PlutusData.new_map(t);
|
|
1318
1318
|
} else
|
|
1319
|
-
return
|
|
1319
|
+
return a.PlutusData.new_constr_plutus_data(a.ConstrPlutusData.new(a.BigNum.from_str(r.alternative.toString()), e(r.fields)));
|
|
1320
1320
|
}
|
|
1321
|
-
},
|
|
1322
|
-
const e =
|
|
1323
|
-
throw
|
|
1324
|
-
e.add(
|
|
1321
|
+
}, $s = (r) => {
|
|
1322
|
+
const e = a.Relays.new();
|
|
1323
|
+
throw r.relays.forEach((t) => {
|
|
1324
|
+
e.add(zs(t));
|
|
1325
1325
|
}), new Error("toPoolParams not implemented.");
|
|
1326
|
-
},
|
|
1327
|
-
const e = (t) =>
|
|
1328
|
-
return
|
|
1329
|
-
},
|
|
1330
|
-
switch (
|
|
1326
|
+
}, Oe = (r) => {
|
|
1327
|
+
const e = (t) => ss[t];
|
|
1328
|
+
return a.Redeemer.new(e(r.tag), a.BigNum.from_str(r.index.toString()), b(r.data), a.ExUnits.new(a.BigNum.from_str(r.budget.mem.toString()), a.BigNum.from_str(r.budget.steps.toString())));
|
|
1329
|
+
}, zs = (r) => {
|
|
1330
|
+
switch (r.type) {
|
|
1331
1331
|
case "SingleHostAddr": {
|
|
1332
|
-
const e =
|
|
1333
|
-
return
|
|
1332
|
+
const e = r.IPV4 ? a.Ipv4.new(new Uint8Array(r.IPV4.split(".").map((s) => parseInt(s)))) : void 0, t = r.IPV6 ? a.Ipv6.new(I(r.IPV6.replaceAll(":", ""))) : void 0;
|
|
1333
|
+
return a.Relay.new_single_host_addr(a.SingleHostAddr.new(r.port, e, t));
|
|
1334
1334
|
}
|
|
1335
1335
|
case "SingleHostName":
|
|
1336
|
-
return
|
|
1336
|
+
return a.Relay.new_single_host_name(a.SingleHostName.new(r.port, a.DNSRecordAorAAAA.new(r.domainName)));
|
|
1337
1337
|
case "MultiHostName":
|
|
1338
|
-
return
|
|
1338
|
+
return a.Relay.new_multi_host_name(a.MultiHostName.new(a.DNSRecordSRV.new(r.domainName)));
|
|
1339
1339
|
}
|
|
1340
|
-
},
|
|
1341
|
-
if (
|
|
1342
|
-
const t =
|
|
1340
|
+
}, Ve = (r) => {
|
|
1341
|
+
if (r.is_plutus_script()) {
|
|
1342
|
+
const t = r.plutus_script();
|
|
1343
1343
|
return {
|
|
1344
1344
|
code: t.to_hex(),
|
|
1345
|
-
version: Object.keys(
|
|
1345
|
+
version: Object.keys(Et).find((s) => Et[s].to_hex() === t.language_version().to_hex())
|
|
1346
1346
|
};
|
|
1347
1347
|
}
|
|
1348
|
-
const e =
|
|
1348
|
+
const e = r.native_script();
|
|
1349
1349
|
return Dt(e);
|
|
1350
|
-
},
|
|
1351
|
-
if ("code" in
|
|
1352
|
-
const e =
|
|
1353
|
-
return
|
|
1354
|
-
}
|
|
1355
|
-
return
|
|
1356
|
-
},
|
|
1357
|
-
var
|
|
1358
|
-
const e =
|
|
1350
|
+
}, ut = (r) => {
|
|
1351
|
+
if ("code" in r) {
|
|
1352
|
+
const e = ct(r.code, r.version);
|
|
1353
|
+
return a.ScriptRef.new_plutus_script(e);
|
|
1354
|
+
}
|
|
1355
|
+
return a.ScriptRef.new_native_script(kt(r));
|
|
1356
|
+
}, bt = (r) => {
|
|
1357
|
+
var n, i, o;
|
|
1358
|
+
const e = r.output().has_data_hash() ? (n = r.output().data_hash()) == null ? void 0 : n.to_hex() : void 0, t = r.output().has_plutus_data() ? (i = r.output().plutus_data()) == null ? void 0 : i.to_hex() : void 0, s = r.output().has_script_ref() ? (o = r.output().script_ref()) == null ? void 0 : o.to_hex() : void 0;
|
|
1359
1359
|
return {
|
|
1360
1360
|
input: {
|
|
1361
|
-
outputIndex:
|
|
1362
|
-
txHash:
|
|
1361
|
+
outputIndex: r.input().index(),
|
|
1362
|
+
txHash: r.input().transaction_id().to_hex()
|
|
1363
1363
|
},
|
|
1364
1364
|
output: {
|
|
1365
|
-
address:
|
|
1366
|
-
amount:
|
|
1365
|
+
address: r.output().address().to_bech32(),
|
|
1366
|
+
amount: qe(r.output().amount()),
|
|
1367
1367
|
dataHash: e,
|
|
1368
1368
|
plutusData: t,
|
|
1369
|
-
scriptRef:
|
|
1369
|
+
scriptRef: s
|
|
1370
1370
|
}
|
|
1371
1371
|
};
|
|
1372
|
-
},
|
|
1373
|
-
const e =
|
|
1374
|
-
return
|
|
1375
|
-
},
|
|
1376
|
-
const e =
|
|
1377
|
-
return
|
|
1378
|
-
}, S = (
|
|
1372
|
+
}, H = (r) => {
|
|
1373
|
+
const e = a.TransactionInput.new(He(r.input.txHash), r.input.outputIndex), t = a.TransactionOutput.new(K(r.output.address), Z(r.output.amount));
|
|
1374
|
+
return r.output.dataHash !== void 0 && t.set_data_hash(Os(r.output.dataHash)), r.output.plutusData !== void 0 && t.set_plutus_data(Ne(r.output.plutusData)), r.output.scriptRef !== void 0 && t.set_script_ref(Rs(r.output.scriptRef)), a.TransactionUnspentOutput.new(e, t);
|
|
1375
|
+
}, pe = (r) => {
|
|
1376
|
+
const e = r.split(".")[1] ?? "0", t = `${parseInt(e, 10)}`, s = "1" + "0".repeat(e.length);
|
|
1377
|
+
return a.UnitInterval.new(a.BigNum.from_str(t), a.BigNum.from_str(s));
|
|
1378
|
+
}, S = (r) => r.length % 2 === 0 && /^[0-9A-F]*$/i.test(r) ? r : v(Buffer.from(r, "utf-8")), Gt = (r) => Buffer.from(r, "hex").toString("utf-8"), qe = (r) => {
|
|
1379
1379
|
const e = [
|
|
1380
|
-
{ unit: "lovelace", quantity:
|
|
1381
|
-
], t =
|
|
1380
|
+
{ unit: "lovelace", quantity: r.coin().to_str() }
|
|
1381
|
+
], t = r.multiasset();
|
|
1382
1382
|
if (t !== void 0) {
|
|
1383
|
-
const
|
|
1384
|
-
for (let
|
|
1385
|
-
const
|
|
1383
|
+
const s = t.keys();
|
|
1384
|
+
for (let n = 0; n < s.len(); n += 1) {
|
|
1385
|
+
const i = s.get(n), o = t.get(i);
|
|
1386
1386
|
if (o !== void 0) {
|
|
1387
1387
|
const c = o.keys();
|
|
1388
1388
|
for (let u = 0; u < c.len(); u += 1) {
|
|
1389
|
-
const
|
|
1390
|
-
e.push({ unit:
|
|
1389
|
+
const d = c.get(u), A = o.get(d) ?? a.BigNum.from_str("0"), l = i.to_hex() + v(d.name());
|
|
1390
|
+
e.push({ unit: l, quantity: A.to_str() });
|
|
1391
1391
|
}
|
|
1392
1392
|
}
|
|
1393
1393
|
}
|
|
1394
1394
|
}
|
|
1395
1395
|
return e;
|
|
1396
|
-
},
|
|
1397
|
-
const e =
|
|
1398
|
-
t.forEach((
|
|
1399
|
-
const o =
|
|
1400
|
-
|
|
1401
|
-
o.insert(
|
|
1402
|
-
}),
|
|
1396
|
+
}, Z = (r) => {
|
|
1397
|
+
const e = r.find((i) => i.unit === "lovelace"), t = Array.from(new Set(r.filter((i) => i.unit !== "lovelace").map((i) => i.unit.slice(0, F)))), s = a.MultiAsset.new();
|
|
1398
|
+
t.forEach((i) => {
|
|
1399
|
+
const o = a.Assets.new();
|
|
1400
|
+
r.filter((c) => c.unit.slice(0, F) === i).forEach((c) => {
|
|
1401
|
+
o.insert(a.AssetName.new(I(c.unit.slice(F))), a.BigNum.from_str(c.quantity));
|
|
1402
|
+
}), s.insert(Ys(i), o);
|
|
1403
1403
|
});
|
|
1404
|
-
const
|
|
1405
|
-
return (
|
|
1406
|
-
},
|
|
1407
|
-
if (typeof
|
|
1408
|
-
return
|
|
1409
|
-
const e =
|
|
1404
|
+
const n = a.Value.new(a.BigNum.from_str(e ? e.quantity : "0"));
|
|
1405
|
+
return (r.length > 1 || !e) && n.set_multiasset(s), n;
|
|
1406
|
+
}, fe = (r, e, t) => a.BaseAddress.new(r, a.StakeCredential.from_keyhash(e), a.StakeCredential.from_keyhash(t)), Re = (r, e = "") => a.Bip32PrivateKey.from_bip39_entropy(I(r), I(S(e))), Ht = (r) => a.DataCost.new_coins_per_byte(a.BigNum.from_str(r)), Ws = (r) => {
|
|
1407
|
+
if (typeof r != "object" || !("input" in r))
|
|
1408
|
+
return a.DatumSource.new(b(r));
|
|
1409
|
+
const e = H(r);
|
|
1410
1410
|
if (e.output().has_plutus_data())
|
|
1411
|
-
return
|
|
1411
|
+
return a.DatumSource.new_ref_input(e.input());
|
|
1412
1412
|
throw new Error(`No inline datum found in UTxO: ${e.input().transaction_id().to_hex()}`);
|
|
1413
|
-
},
|
|
1414
|
-
if (typeof
|
|
1415
|
-
return
|
|
1413
|
+
}, _e = (r, e) => a.EnterpriseAddress.new(r, a.StakeCredential.from_keyhash(e)), ye = (r, e) => {
|
|
1414
|
+
if (typeof r == "string")
|
|
1415
|
+
return a.MintWitness.new_native_script(vt(r));
|
|
1416
1416
|
if (e === void 0)
|
|
1417
1417
|
throw new Error("Minting with plutus requires a redeemer to be defined");
|
|
1418
1418
|
if (e.tag !== "MINT")
|
|
1419
1419
|
throw new Error("Minting redeemer's tag must be defined as 'MINT'");
|
|
1420
|
-
return
|
|
1420
|
+
return a.MintWitness.new_plutus_script(Ye(r), Oe({
|
|
1421
1421
|
tag: "MINT",
|
|
1422
1422
|
index: 0,
|
|
1423
|
-
budget:
|
|
1423
|
+
budget: At,
|
|
1424
1424
|
data: {
|
|
1425
1425
|
alternative: 0,
|
|
1426
1426
|
fields: []
|
|
1427
1427
|
},
|
|
1428
1428
|
...e
|
|
1429
1429
|
}));
|
|
1430
|
-
},
|
|
1431
|
-
if ("code" in
|
|
1432
|
-
return
|
|
1433
|
-
const e =
|
|
1430
|
+
}, Mt = (r, e) => a.RewardAddress.new(r, a.StakeCredential.from_keyhash(e)), Ye = (r) => {
|
|
1431
|
+
if ("code" in r)
|
|
1432
|
+
return a.PlutusScriptSource.new(ct(r.code, r.version));
|
|
1433
|
+
const e = H(r);
|
|
1434
1434
|
if (e.output().has_script_ref()) {
|
|
1435
1435
|
const t = e.output().script_ref();
|
|
1436
1436
|
if (t.is_plutus_script()) {
|
|
1437
|
-
const
|
|
1438
|
-
return
|
|
1437
|
+
const s = Ve(t), n = ct(s.code, s.version).hash();
|
|
1438
|
+
return a.PlutusScriptSource.new_ref_input_with_lang_ver(n, e.input(), Et[s.version]);
|
|
1439
1439
|
}
|
|
1440
1440
|
}
|
|
1441
1441
|
throw new Error(`No plutus script reference found in UTxO: ${e.input().transaction_id().to_hex()}`);
|
|
1442
|
-
},
|
|
1443
|
-
const e =
|
|
1444
|
-
return
|
|
1445
|
-
},
|
|
1446
|
-
const e =
|
|
1447
|
-
return
|
|
1448
|
-
},
|
|
1449
|
-
const e =
|
|
1450
|
-
return
|
|
1442
|
+
}, yt = (r) => {
|
|
1443
|
+
const e = a.ScriptPubkey.new(r);
|
|
1444
|
+
return a.NativeScript.new_script_pubkey(e);
|
|
1445
|
+
}, Ft = (r = P) => {
|
|
1446
|
+
const e = a.TransactionBuilderConfigBuilder.new().coins_per_utxo_byte(a.BigNum.from_str(r.coinsPerUTxOSize)).ex_unit_prices(a.ExUnitPrices.new(pe(r.priceMem.toString()), pe(r.priceStep.toString()))).fee_algo(a.LinearFee.new(a.BigNum.from_str(r.minFeeA.toString()), a.BigNum.from_str(r.minFeeB.toString()))).key_deposit(a.BigNum.from_str(r.keyDeposit)).max_tx_size(r.maxTxSize).max_value_size(parseInt(r.maxValSize, 10)).pool_deposit(a.BigNum.from_str(r.poolDeposit)).build();
|
|
1447
|
+
return a.TransactionBuilder.new(e);
|
|
1448
|
+
}, xe = (r) => {
|
|
1449
|
+
const e = a.TxInputsBuilder.new();
|
|
1450
|
+
return r.map((t) => t instanceof a.TransactionUnspentOutput ? t : H(t)).forEach((t) => {
|
|
1451
1451
|
e.add_input(t.output().address(), t.input(), t.output().amount());
|
|
1452
1452
|
}), e;
|
|
1453
|
-
},
|
|
1454
|
-
if (typeof
|
|
1455
|
-
return
|
|
1456
|
-
let e =
|
|
1457
|
-
if (
|
|
1458
|
-
const { value: t, inline:
|
|
1459
|
-
e = e.with_data_hash(
|
|
1460
|
-
}
|
|
1461
|
-
if (
|
|
1462
|
-
const t =
|
|
1453
|
+
}, xt = (r) => {
|
|
1454
|
+
if (typeof r == "string")
|
|
1455
|
+
return a.TransactionOutputBuilder.new().with_address(K(r));
|
|
1456
|
+
let e = a.TransactionOutputBuilder.new().with_address(K(r.address));
|
|
1457
|
+
if (r.datum) {
|
|
1458
|
+
const { value: t, inline: s } = r.datum, n = b(t);
|
|
1459
|
+
e = e.with_data_hash(a.hash_plutus_data(n)), s && (e = e.with_plutus_data(n));
|
|
1460
|
+
}
|
|
1461
|
+
if (r.script) {
|
|
1462
|
+
const t = ut(r.script);
|
|
1463
1463
|
e = e.with_script_ref(t);
|
|
1464
1464
|
}
|
|
1465
1465
|
return e;
|
|
1466
|
-
},
|
|
1467
|
-
const e =
|
|
1466
|
+
}, tt = (r) => {
|
|
1467
|
+
const e = r.slice(0, F), t = r.includes(".") ? S(r.split(".")[1]) : r.slice(F);
|
|
1468
1468
|
return { policyId: e, assetName: t };
|
|
1469
|
-
},
|
|
1470
|
-
data:
|
|
1471
|
-
headers:
|
|
1472
|
-
status:
|
|
1473
|
-
}) :
|
|
1474
|
-
const e =
|
|
1475
|
-
return
|
|
1476
|
-
},
|
|
1477
|
-
if (
|
|
1478
|
-
const [t,
|
|
1479
|
-
return parseInt(
|
|
1480
|
-
}
|
|
1481
|
-
throw new Error(`Couldn't resolve EpochNo for network: ${
|
|
1482
|
-
}, Js = (
|
|
1469
|
+
}, h = (r) => L.isAxiosError(r) ? r.response ? JSON.stringify({
|
|
1470
|
+
data: r.response.data,
|
|
1471
|
+
headers: r.response.headers,
|
|
1472
|
+
status: r.response.status
|
|
1473
|
+
}) : r.request ? JSON.stringify(r.request) : r.message : JSON.stringify(r), ur = (r) => {
|
|
1474
|
+
const e = b(r);
|
|
1475
|
+
return a.hash_plutus_data(e).to_hex();
|
|
1476
|
+
}, dr = (r, e = Date.now()) => {
|
|
1477
|
+
if (St[r]) {
|
|
1478
|
+
const [t, s, n, i] = St[r];
|
|
1479
|
+
return parseInt(a.BigNum.from_str(e.toString()).div_floor(a.BigNum.from_str("1000")).checked_sub(a.BigNum.from_str(n)).div_floor(a.BigNum.from_str(i)).checked_add(a.BigNum.from_str(t)).to_str(), 10);
|
|
1480
|
+
}
|
|
1481
|
+
throw new Error(`Couldn't resolve EpochNo for network: ${r}`);
|
|
1482
|
+
}, Js = (r, e) => Hs.fromParts(I(r), I(e)).fingerprint(), hr = (r, e) => rs[r][e], lr = (r) => kt(r).hash().to_hex(), nt = (r) => {
|
|
1483
1483
|
var e, t;
|
|
1484
1484
|
try {
|
|
1485
|
-
const
|
|
1486
|
-
(e =
|
|
1487
|
-
(t =
|
|
1488
|
-
].find((
|
|
1489
|
-
if (
|
|
1490
|
-
return
|
|
1491
|
-
throw new Error(`Couldn't resolve payment key hash from address: ${
|
|
1492
|
-
} catch (
|
|
1493
|
-
throw new Error(`An error occurred during resolvePaymentKeyHash: ${
|
|
1494
|
-
}
|
|
1495
|
-
},
|
|
1496
|
-
const t =
|
|
1497
|
-
return
|
|
1498
|
-
},
|
|
1485
|
+
const s = [
|
|
1486
|
+
(e = Lt(r)) == null ? void 0 : e.payment_cred().to_keyhash(),
|
|
1487
|
+
(t = Me(r)) == null ? void 0 : t.payment_cred().to_keyhash()
|
|
1488
|
+
].find((n) => n !== void 0);
|
|
1489
|
+
if (s !== void 0)
|
|
1490
|
+
return s.to_hex();
|
|
1491
|
+
throw new Error(`Couldn't resolve payment key hash from address: ${r}`);
|
|
1492
|
+
} catch (s) {
|
|
1493
|
+
throw new Error(`An error occurred during resolvePaymentKeyHash: ${s}.`);
|
|
1494
|
+
}
|
|
1495
|
+
}, Ar = (r, e = 0) => {
|
|
1496
|
+
const t = ct(r.code, r.version);
|
|
1497
|
+
return a.EnterpriseAddress.new(e, a.StakeCredential.from_scripthash(t.hash())).to_address().to_bech32();
|
|
1498
|
+
}, gr = (r) => {
|
|
1499
1499
|
try {
|
|
1500
|
-
const e =
|
|
1500
|
+
const e = Me(r), t = e == null ? void 0 : e.payment_cred().to_scripthash();
|
|
1501
1501
|
if (t !== void 0)
|
|
1502
1502
|
return t.to_hex();
|
|
1503
|
-
throw new Error(`Couldn't resolve script hash from address: ${
|
|
1503
|
+
throw new Error(`Couldn't resolve script hash from address: ${r}`);
|
|
1504
1504
|
} catch (e) {
|
|
1505
1505
|
throw new Error(`An error occurred during resolveScriptHash: ${e}.`);
|
|
1506
1506
|
}
|
|
1507
|
-
},
|
|
1508
|
-
const e =
|
|
1509
|
-
return t.free(),
|
|
1510
|
-
},
|
|
1511
|
-
if (
|
|
1512
|
-
const [t,
|
|
1513
|
-
return
|
|
1507
|
+
}, mr = (r) => a.Ed25519KeyHash.from_hex(r).to_bech32("pool1"), Ir = (r) => {
|
|
1508
|
+
const e = we(r.join(" ")), t = Re(e), s = t.to_bech32();
|
|
1509
|
+
return t.free(), s;
|
|
1510
|
+
}, pr = (r) => ut(r).to_hex(), fr = (r, e = Date.now()) => {
|
|
1511
|
+
if (St[r]) {
|
|
1512
|
+
const [t, s, n] = St[r];
|
|
1513
|
+
return a.BigNum.from_str(e.toString()).div_floor(a.BigNum.from_str("1000")).checked_sub(a.BigNum.from_str(n)).checked_add(a.BigNum.from_str(s)).to_str();
|
|
1514
1514
|
}
|
|
1515
|
-
throw new Error(`Couldn't resolve SlotNo for network: ${
|
|
1516
|
-
},
|
|
1515
|
+
throw new Error(`Couldn't resolve SlotNo for network: ${r}`);
|
|
1516
|
+
}, Tt = (r) => {
|
|
1517
1517
|
try {
|
|
1518
|
-
const e =
|
|
1519
|
-
if (
|
|
1520
|
-
return
|
|
1521
|
-
throw new Error(`Couldn't resolve reward address from address: ${
|
|
1518
|
+
const e = K(r), t = Lt(r), s = t == null ? void 0 : t.stake_cred().to_keyhash();
|
|
1519
|
+
if (s !== void 0)
|
|
1520
|
+
return Mt(e.network_id(), s).to_address().to_bech32();
|
|
1521
|
+
throw new Error(`Couldn't resolve reward address from address: ${r}`);
|
|
1522
1522
|
} catch (e) {
|
|
1523
1523
|
throw new Error(`An error occurred during resolveRewardAddress: ${e}.`);
|
|
1524
1524
|
}
|
|
1525
|
-
},
|
|
1525
|
+
}, lt = (r) => {
|
|
1526
1526
|
var e, t;
|
|
1527
1527
|
try {
|
|
1528
|
-
const
|
|
1529
|
-
(e =
|
|
1530
|
-
(t =
|
|
1531
|
-
].find((
|
|
1532
|
-
if (
|
|
1533
|
-
return
|
|
1534
|
-
throw new Error(`Couldn't resolve stake key hash from address: ${
|
|
1535
|
-
} catch (
|
|
1536
|
-
throw new Error(`An error occurred during resolveStakeKeyHash: ${
|
|
1537
|
-
}
|
|
1538
|
-
}, Le = (
|
|
1539
|
-
const e =
|
|
1540
|
-
return
|
|
1541
|
-
},
|
|
1528
|
+
const s = [
|
|
1529
|
+
(e = Lt(r)) == null ? void 0 : e.stake_cred().to_keyhash(),
|
|
1530
|
+
(t = Fe(r)) == null ? void 0 : t.payment_cred().to_keyhash()
|
|
1531
|
+
].find((n) => n !== void 0);
|
|
1532
|
+
if (s !== void 0)
|
|
1533
|
+
return s.to_hex();
|
|
1534
|
+
throw new Error(`Couldn't resolve stake key hash from address: ${r}`);
|
|
1535
|
+
} catch (s) {
|
|
1536
|
+
throw new Error(`An error occurred during resolveStakeKeyHash: ${s}.`);
|
|
1537
|
+
}
|
|
1538
|
+
}, Le = (r, e = P.minFeeA, t = P.minFeeB) => (BigInt(e) * BigInt(r) + BigInt(t)).toString(), js = (r) => {
|
|
1539
|
+
const e = Y(r).body();
|
|
1540
|
+
return a.hash_transaction(e).to_hex();
|
|
1541
|
+
}, _r = (r = "", e = 32) => {
|
|
1542
1542
|
if (e <= 0 || e > 2048)
|
|
1543
1543
|
throw new Error("Length must be bewteen 1 and 2048");
|
|
1544
|
-
const
|
|
1545
|
-
return S(`${
|
|
1546
|
-
}, Ge = (
|
|
1547
|
-
const t =
|
|
1544
|
+
const s = Ce("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")(e);
|
|
1545
|
+
return S(`${r}${s}`);
|
|
1546
|
+
}, Ge = (r, e) => {
|
|
1547
|
+
const t = r.vkeys();
|
|
1548
1548
|
if (t !== void 0) {
|
|
1549
|
-
const
|
|
1550
|
-
for (let
|
|
1551
|
-
|
|
1552
|
-
for (let
|
|
1553
|
-
|
|
1554
|
-
const
|
|
1555
|
-
return
|
|
1556
|
-
|
|
1557
|
-
}),
|
|
1549
|
+
const s = /* @__PURE__ */ new Set();
|
|
1550
|
+
for (let i = 0; i < t.len(); i += 1)
|
|
1551
|
+
s.add(t.get(i).to_hex());
|
|
1552
|
+
for (let i = 0; i < e.len(); i += 1)
|
|
1553
|
+
s.add(e.get(i).to_hex());
|
|
1554
|
+
const n = a.Vkeywitnesses.new();
|
|
1555
|
+
return s.forEach((i) => {
|
|
1556
|
+
n.add(a.Vkeywitness.from_hex(i));
|
|
1557
|
+
}), n;
|
|
1558
1558
|
}
|
|
1559
1559
|
return e;
|
|
1560
|
-
},
|
|
1560
|
+
}, yr = (r) => Bt(Ne(r)), xr = (r) => Y(r).to_js_value();
|
|
1561
1561
|
class Cr {
|
|
1562
1562
|
_axiosInstance;
|
|
1563
1563
|
constructor(...e) {
|
|
1564
1564
|
if (typeof e[0] == "string" && e[0].startsWith("http"))
|
|
1565
1565
|
this._axiosInstance = L.create({ baseURL: e[0] });
|
|
1566
1566
|
else {
|
|
1567
|
-
const t = e[0],
|
|
1567
|
+
const t = e[0], s = t.slice(0, 7);
|
|
1568
1568
|
this._axiosInstance = L.create({
|
|
1569
|
-
baseURL: `https://cardano-${
|
|
1569
|
+
baseURL: `https://cardano-${s}.blockfrost.io/api/v${e[1] ?? 0}`,
|
|
1570
1570
|
headers: { project_id: t }
|
|
1571
1571
|
});
|
|
1572
1572
|
}
|
|
1573
1573
|
}
|
|
1574
1574
|
async fetchAccountInfo(e) {
|
|
1575
|
-
const t = e.startsWith("addr") ?
|
|
1575
|
+
const t = e.startsWith("addr") ? Tt(e) : e;
|
|
1576
1576
|
try {
|
|
1577
|
-
const { data:
|
|
1578
|
-
if (
|
|
1577
|
+
const { data: s, status: n } = await this._axiosInstance.get(`accounts/${t}`);
|
|
1578
|
+
if (n === 200)
|
|
1579
1579
|
return {
|
|
1580
|
-
poolId:
|
|
1581
|
-
active:
|
|
1582
|
-
balance:
|
|
1583
|
-
rewards:
|
|
1584
|
-
withdrawals:
|
|
1580
|
+
poolId: s.pool_id,
|
|
1581
|
+
active: s.active || s.active_epoch !== null,
|
|
1582
|
+
balance: s.controlled_amount,
|
|
1583
|
+
rewards: s.withdrawable_amount,
|
|
1584
|
+
withdrawals: s.withdrawals_sum
|
|
1585
1585
|
};
|
|
1586
|
-
throw
|
|
1587
|
-
} catch (
|
|
1588
|
-
throw
|
|
1586
|
+
throw h(s);
|
|
1587
|
+
} catch (s) {
|
|
1588
|
+
throw h(s);
|
|
1589
|
+
}
|
|
1590
|
+
}
|
|
1591
|
+
resolveScriptRef = async (e) => {
|
|
1592
|
+
if (e) {
|
|
1593
|
+
const { data: t, status: s } = await this._axiosInstance.get(`scripts/${e}`);
|
|
1594
|
+
if (s === 200) {
|
|
1595
|
+
const n = t.type.startsWith("plutus") ? {
|
|
1596
|
+
code: await this.fetchPlutusScriptCBOR(e),
|
|
1597
|
+
version: t.type.replace("plutus", "")
|
|
1598
|
+
} : await this.fetchNativeScriptJSON(e);
|
|
1599
|
+
return ut(n).to_hex();
|
|
1600
|
+
}
|
|
1601
|
+
throw h(t);
|
|
1589
1602
|
}
|
|
1590
|
-
}
|
|
1603
|
+
};
|
|
1604
|
+
toUTxO = async (e, t) => ({
|
|
1605
|
+
input: {
|
|
1606
|
+
outputIndex: e.output_index,
|
|
1607
|
+
txHash: t
|
|
1608
|
+
},
|
|
1609
|
+
output: {
|
|
1610
|
+
address: e.address,
|
|
1611
|
+
amount: e.amount,
|
|
1612
|
+
dataHash: e.data_hash ?? void 0,
|
|
1613
|
+
plutusData: e.inline_datum ?? void 0,
|
|
1614
|
+
scriptRef: await this.resolveScriptRef(e.reference_script_hash),
|
|
1615
|
+
scriptHash: e.reference_script_hash
|
|
1616
|
+
}
|
|
1617
|
+
});
|
|
1591
1618
|
async fetchAddressUTxOs(e, t) {
|
|
1592
|
-
const
|
|
1593
|
-
const { data:
|
|
1594
|
-
if (
|
|
1595
|
-
return
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
const g = A.type.startsWith("plutus") ? {
|
|
1602
|
-
code: await this.fetchPlutusScriptCBOR(u),
|
|
1603
|
-
version: A.type.replace("plutus", "")
|
|
1604
|
-
} : await this.fetchNativeScriptJSON(u);
|
|
1605
|
-
return ct(g).to_hex();
|
|
1606
|
-
}
|
|
1607
|
-
throw d(A);
|
|
1608
|
-
}
|
|
1609
|
-
}, c = async (u) => ({
|
|
1610
|
-
input: {
|
|
1611
|
-
outputIndex: u.output_index,
|
|
1612
|
-
txHash: u.tx_hash
|
|
1613
|
-
},
|
|
1614
|
-
output: {
|
|
1615
|
-
address: e,
|
|
1616
|
-
amount: u.amount,
|
|
1617
|
-
dataHash: u.data_hash ?? void 0,
|
|
1618
|
-
plutusData: u.inline_datum ?? void 0,
|
|
1619
|
-
scriptRef: await o(u.reference_script_hash)
|
|
1620
|
-
}
|
|
1621
|
-
});
|
|
1619
|
+
const s = t !== void 0 ? `/${t}` : "", n = `addresses/${e}/utxos` + s, i = async (o = 1, c = []) => {
|
|
1620
|
+
const { data: u, status: d } = await this._axiosInstance.get(`${n}?page=${o}`);
|
|
1621
|
+
if (d === 200)
|
|
1622
|
+
return u.length > 0 ? i(o + 1, [
|
|
1623
|
+
...c,
|
|
1624
|
+
...await Promise.all(u.map((A) => this.toUTxO(A, A.tx_hash)))
|
|
1625
|
+
]) : c;
|
|
1626
|
+
throw h(u);
|
|
1627
|
+
};
|
|
1622
1628
|
try {
|
|
1623
|
-
return await
|
|
1629
|
+
return await i();
|
|
1624
1630
|
} catch {
|
|
1625
1631
|
return [];
|
|
1626
1632
|
}
|
|
1627
1633
|
}
|
|
1628
1634
|
async fetchAssetAddresses(e) {
|
|
1629
|
-
const t = async (
|
|
1630
|
-
const { policyId:
|
|
1635
|
+
const t = async (s = 1, n = []) => {
|
|
1636
|
+
const { policyId: i, assetName: o } = tt(e), { data: c, status: u } = await this._axiosInstance.get(`assets/${i}${o}/addresses?page=${s}`);
|
|
1631
1637
|
if (u === 200)
|
|
1632
|
-
return c.length > 0 ? t(
|
|
1633
|
-
throw
|
|
1638
|
+
return c.length > 0 ? t(s + 1, [...n, ...c]) : n;
|
|
1639
|
+
throw h(c);
|
|
1634
1640
|
};
|
|
1635
1641
|
try {
|
|
1636
1642
|
return await t();
|
|
@@ -1640,20 +1646,20 @@ class Cr {
|
|
|
1640
1646
|
}
|
|
1641
1647
|
async fetchAssetMetadata(e) {
|
|
1642
1648
|
try {
|
|
1643
|
-
const { policyId: t, assetName:
|
|
1644
|
-
if (
|
|
1649
|
+
const { policyId: t, assetName: s } = tt(e), { data: n, status: i } = await this._axiosInstance.get(`assets/${t}${s}`);
|
|
1650
|
+
if (i === 200)
|
|
1645
1651
|
return {
|
|
1646
|
-
...
|
|
1652
|
+
...n.onchain_metadata
|
|
1647
1653
|
};
|
|
1648
|
-
throw
|
|
1654
|
+
throw h(n);
|
|
1649
1655
|
} catch (t) {
|
|
1650
|
-
throw
|
|
1656
|
+
throw h(t);
|
|
1651
1657
|
}
|
|
1652
1658
|
}
|
|
1653
1659
|
async fetchBlockInfo(e) {
|
|
1654
1660
|
try {
|
|
1655
|
-
const { data: t, status:
|
|
1656
|
-
if (
|
|
1661
|
+
const { data: t, status: s } = await this._axiosInstance.get(`blocks/${e}`);
|
|
1662
|
+
if (s === 200)
|
|
1657
1663
|
return {
|
|
1658
1664
|
confirmations: t.confirmations,
|
|
1659
1665
|
epoch: t.epoch,
|
|
@@ -1671,41 +1677,41 @@ class Cr {
|
|
|
1671
1677
|
txCount: t.tx_count,
|
|
1672
1678
|
VRFKey: t.block_vrf
|
|
1673
1679
|
};
|
|
1674
|
-
throw
|
|
1680
|
+
throw h(t);
|
|
1675
1681
|
} catch (t) {
|
|
1676
|
-
throw
|
|
1682
|
+
throw h(t);
|
|
1677
1683
|
}
|
|
1678
1684
|
}
|
|
1679
1685
|
async fetchCollectionAssets(e, t = 1) {
|
|
1680
1686
|
try {
|
|
1681
|
-
const { data:
|
|
1682
|
-
if (
|
|
1687
|
+
const { data: s, status: n } = await this._axiosInstance.get(`assets/policy/${e}?page=${t}`);
|
|
1688
|
+
if (n === 200)
|
|
1683
1689
|
return {
|
|
1684
|
-
assets:
|
|
1685
|
-
unit:
|
|
1686
|
-
quantity:
|
|
1690
|
+
assets: s.map((i) => ({
|
|
1691
|
+
unit: i.asset,
|
|
1692
|
+
quantity: i.quantity
|
|
1687
1693
|
})),
|
|
1688
|
-
next:
|
|
1694
|
+
next: s.length === 100 ? t + 1 : null
|
|
1689
1695
|
};
|
|
1690
|
-
throw
|
|
1696
|
+
throw h(s);
|
|
1691
1697
|
} catch {
|
|
1692
1698
|
return { assets: [], next: null };
|
|
1693
1699
|
}
|
|
1694
1700
|
}
|
|
1695
1701
|
async fetchHandleAddress(e) {
|
|
1696
1702
|
try {
|
|
1697
|
-
const t = S(e.replace("$", "")), { data:
|
|
1698
|
-
if (
|
|
1699
|
-
return
|
|
1700
|
-
throw
|
|
1703
|
+
const t = S(e.replace("$", "")), { data: s, status: n } = await this._axiosInstance.get(`assets/${Vt[1]}${t}/addresses`);
|
|
1704
|
+
if (n === 200)
|
|
1705
|
+
return s[0].address;
|
|
1706
|
+
throw h(s);
|
|
1701
1707
|
} catch (t) {
|
|
1702
|
-
throw
|
|
1708
|
+
throw h(t);
|
|
1703
1709
|
}
|
|
1704
1710
|
}
|
|
1705
1711
|
async fetchProtocolParameters(e = Number.NaN) {
|
|
1706
1712
|
try {
|
|
1707
|
-
const { data: t, status:
|
|
1708
|
-
if (
|
|
1713
|
+
const { data: t, status: s } = await this._axiosInstance.get(`epochs/${isNaN(e) ? "latest" : e}/parameters`);
|
|
1714
|
+
if (s === 200)
|
|
1709
1715
|
return {
|
|
1710
1716
|
coinsPerUTxOSize: t.coins_per_utxo_word,
|
|
1711
1717
|
collateralPercent: t.collateral_percent,
|
|
@@ -1728,15 +1734,15 @@ class Cr {
|
|
|
1728
1734
|
priceMem: t.price_mem,
|
|
1729
1735
|
priceStep: t.price_step
|
|
1730
1736
|
};
|
|
1731
|
-
throw
|
|
1737
|
+
throw h(t);
|
|
1732
1738
|
} catch (t) {
|
|
1733
|
-
throw
|
|
1739
|
+
throw h(t);
|
|
1734
1740
|
}
|
|
1735
1741
|
}
|
|
1736
1742
|
async fetchTxInfo(e) {
|
|
1737
1743
|
try {
|
|
1738
|
-
const { data: t, status:
|
|
1739
|
-
if (
|
|
1744
|
+
const { data: t, status: s } = await this._axiosInstance.get(`txs/${e}`);
|
|
1745
|
+
if (s === 200)
|
|
1740
1746
|
return {
|
|
1741
1747
|
block: t.block,
|
|
1742
1748
|
deposit: t.deposit,
|
|
@@ -1748,65 +1754,79 @@ class Cr {
|
|
|
1748
1754
|
slot: t.slot.toString(),
|
|
1749
1755
|
size: t.size
|
|
1750
1756
|
};
|
|
1751
|
-
throw
|
|
1757
|
+
throw h(t);
|
|
1752
1758
|
} catch (t) {
|
|
1753
|
-
throw
|
|
1759
|
+
throw h(t);
|
|
1754
1760
|
}
|
|
1755
1761
|
}
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1762
|
+
async fetchUTxOs(e) {
|
|
1763
|
+
try {
|
|
1764
|
+
const { data: t, status: s } = await this._axiosInstance.get(`txs/${e}/utxos`);
|
|
1765
|
+
if (s === 200) {
|
|
1766
|
+
const n = t.outputs, i = [];
|
|
1767
|
+
return n.forEach((c) => {
|
|
1768
|
+
i.push(this.toUTxO(c, e));
|
|
1769
|
+
}), await Promise.all(i);
|
|
1770
|
+
}
|
|
1771
|
+
throw h(t);
|
|
1772
|
+
} catch (t) {
|
|
1773
|
+
throw h(t);
|
|
1774
|
+
}
|
|
1775
|
+
}
|
|
1776
|
+
onTxConfirmed(e, t, s = 100) {
|
|
1777
|
+
let n = 0;
|
|
1778
|
+
const i = setInterval(() => {
|
|
1779
|
+
n >= s && clearInterval(i), this.fetchTxInfo(e).then((o) => {
|
|
1760
1780
|
this.fetchBlockInfo(o.block).then((c) => {
|
|
1761
|
-
(c == null ? void 0 : c.confirmations) > 0 && (clearInterval(
|
|
1781
|
+
(c == null ? void 0 : c.confirmations) > 0 && (clearInterval(i), t());
|
|
1762
1782
|
}).catch(() => {
|
|
1763
|
-
|
|
1783
|
+
n += 1;
|
|
1764
1784
|
});
|
|
1765
1785
|
}).catch(() => {
|
|
1766
|
-
|
|
1786
|
+
n += 1;
|
|
1767
1787
|
});
|
|
1768
1788
|
}, 5e3);
|
|
1769
1789
|
}
|
|
1770
1790
|
async submitTx(e) {
|
|
1771
1791
|
try {
|
|
1772
|
-
const t = { "Content-Type": "application/cbor" }, { data:
|
|
1773
|
-
if (
|
|
1774
|
-
return
|
|
1775
|
-
throw
|
|
1792
|
+
const t = { "Content-Type": "application/cbor" }, { data: s, status: n } = await this._axiosInstance.post("tx/submit", I(e), { headers: t });
|
|
1793
|
+
if (n === 200)
|
|
1794
|
+
return s;
|
|
1795
|
+
throw h(s);
|
|
1776
1796
|
} catch (t) {
|
|
1777
|
-
throw
|
|
1797
|
+
throw h(t);
|
|
1778
1798
|
}
|
|
1779
1799
|
}
|
|
1780
1800
|
async fetchPlutusScriptCBOR(e) {
|
|
1781
|
-
const { data: t, status:
|
|
1782
|
-
if (
|
|
1801
|
+
const { data: t, status: s } = await this._axiosInstance.get(`scripts/${e}/cbor`);
|
|
1802
|
+
if (s === 200)
|
|
1783
1803
|
return t.cbor;
|
|
1784
|
-
throw
|
|
1804
|
+
throw h(t);
|
|
1785
1805
|
}
|
|
1786
1806
|
async fetchNativeScriptJSON(e) {
|
|
1787
|
-
const { data: t, status:
|
|
1788
|
-
if (
|
|
1807
|
+
const { data: t, status: s } = await this._axiosInstance.get(`scripts/${e}/json`);
|
|
1808
|
+
if (s === 200)
|
|
1789
1809
|
return t.json;
|
|
1790
|
-
throw
|
|
1810
|
+
throw h(t);
|
|
1791
1811
|
}
|
|
1792
1812
|
}
|
|
1793
1813
|
class wr {
|
|
1794
1814
|
_axiosInstance;
|
|
1795
|
-
constructor(e, t,
|
|
1796
|
-
const
|
|
1815
|
+
constructor(e, t, s) {
|
|
1816
|
+
const n = s.host ?? "ipfs.infura.io", i = s.port ?? 5001, o = s.version ?? 0;
|
|
1797
1817
|
this._axiosInstance = L.create({
|
|
1798
|
-
baseURL: `https://${
|
|
1818
|
+
baseURL: `https://${n}:${i}/api/v${o}`,
|
|
1799
1819
|
auth: { username: e, password: t }
|
|
1800
1820
|
});
|
|
1801
1821
|
}
|
|
1802
1822
|
async uploadContent(e, t = !1) {
|
|
1803
1823
|
try {
|
|
1804
|
-
const
|
|
1805
|
-
if (
|
|
1806
|
-
return
|
|
1807
|
-
throw
|
|
1808
|
-
} catch (
|
|
1809
|
-
throw
|
|
1824
|
+
const s = { "Content-Type": "multipart/form-data" }, { data: n, status: i } = await this._axiosInstance.post(`add?recursive=${t}`, e, { headers: s });
|
|
1825
|
+
if (i === 200)
|
|
1826
|
+
return n;
|
|
1827
|
+
throw h(n);
|
|
1828
|
+
} catch (s) {
|
|
1829
|
+
throw h(s);
|
|
1810
1830
|
}
|
|
1811
1831
|
}
|
|
1812
1832
|
}
|
|
@@ -1819,91 +1839,67 @@ class Br {
|
|
|
1819
1839
|
}
|
|
1820
1840
|
async fetchAccountInfo(e) {
|
|
1821
1841
|
try {
|
|
1822
|
-
const t = e.startsWith("addr") ?
|
|
1823
|
-
|
|
1842
|
+
const t = e.startsWith("addr") ? Tt(e) : e, { data: s, status: n } = await this._axiosInstance.post("account_info", {
|
|
1843
|
+
_stake_addresses: [t]
|
|
1844
|
+
});
|
|
1845
|
+
if (n === 200)
|
|
1824
1846
|
return {
|
|
1825
|
-
poolId:
|
|
1826
|
-
active:
|
|
1827
|
-
balance:
|
|
1828
|
-
rewards:
|
|
1829
|
-
withdrawals:
|
|
1847
|
+
poolId: s[0].delegated_pool,
|
|
1848
|
+
active: s[0].status === "registered",
|
|
1849
|
+
balance: s[0].total_balance.toString(),
|
|
1850
|
+
rewards: s[0].rewards_available,
|
|
1851
|
+
withdrawals: s[0].withdrawals
|
|
1830
1852
|
};
|
|
1831
|
-
throw
|
|
1853
|
+
throw h(s);
|
|
1832
1854
|
} catch (t) {
|
|
1833
|
-
throw
|
|
1855
|
+
throw h(t);
|
|
1834
1856
|
}
|
|
1835
1857
|
}
|
|
1836
1858
|
async fetchAddressUTxOs(e, t) {
|
|
1837
|
-
const r = (a) => {
|
|
1838
|
-
if (a) {
|
|
1839
|
-
const n = a.type.startsWith("plutus") ? {
|
|
1840
|
-
code: a.bytes,
|
|
1841
|
-
version: a.type.replace("plutus", "")
|
|
1842
|
-
} : Dt(bt(a.bytes));
|
|
1843
|
-
return ct(n).to_hex();
|
|
1844
|
-
}
|
|
1845
|
-
};
|
|
1846
1859
|
try {
|
|
1847
|
-
const { data:
|
|
1860
|
+
const { data: s, status: n } = await this._axiosInstance.post("address_info", {
|
|
1861
|
+
_addresses: [e]
|
|
1862
|
+
});
|
|
1848
1863
|
if (n === 200) {
|
|
1849
|
-
const
|
|
1850
|
-
|
|
1851
|
-
return {
|
|
1852
|
-
input: {
|
|
1853
|
-
outputIndex: c.tx_index,
|
|
1854
|
-
txHash: c.tx_hash
|
|
1855
|
-
},
|
|
1856
|
-
output: {
|
|
1857
|
-
address: e,
|
|
1858
|
-
amount: [
|
|
1859
|
-
{ unit: "lovelace", quantity: c.value },
|
|
1860
|
-
...c.asset_list.map((A) => ({
|
|
1861
|
-
unit: `${A.policy_id}${A.asset_name}`,
|
|
1862
|
-
quantity: `${A.quantity}`
|
|
1863
|
-
}))
|
|
1864
|
-
],
|
|
1865
|
-
dataHash: c.datum_hash ?? void 0,
|
|
1866
|
-
plutusData: ((u = c.inline_datum) == null ? void 0 : u.bytes) ?? void 0,
|
|
1867
|
-
scriptRef: r(c.reference_script)
|
|
1868
|
-
}
|
|
1869
|
-
};
|
|
1870
|
-
});
|
|
1871
|
-
return t !== void 0 ? o.filter((c) => c.output.amount.find((u) => u.unit === t) !== void 0) : o;
|
|
1864
|
+
const i = s.flatMap((o) => o.utxo_set).map((o) => this.toUTxO(o, e));
|
|
1865
|
+
return t !== void 0 ? i.filter((o) => o.output.amount.find((c) => c.unit === t) !== void 0) : i;
|
|
1872
1866
|
}
|
|
1873
|
-
throw
|
|
1867
|
+
throw h(s);
|
|
1874
1868
|
} catch {
|
|
1875
1869
|
return [];
|
|
1876
1870
|
}
|
|
1877
1871
|
}
|
|
1878
1872
|
async fetchAssetAddresses(e) {
|
|
1879
1873
|
try {
|
|
1880
|
-
const { policyId: t, assetName:
|
|
1881
|
-
if (
|
|
1882
|
-
return
|
|
1874
|
+
const { policyId: t, assetName: s } = tt(e), { data: n, status: i } = await this._axiosInstance.get(`asset_address_list?_asset_policy=${t}&_asset_name=${s}`);
|
|
1875
|
+
if (i === 200)
|
|
1876
|
+
return n.map((o) => ({
|
|
1883
1877
|
address: o.payment_address,
|
|
1884
1878
|
quantity: o.quantity
|
|
1885
1879
|
}));
|
|
1886
|
-
throw
|
|
1880
|
+
throw h(n);
|
|
1887
1881
|
} catch (t) {
|
|
1888
|
-
throw
|
|
1882
|
+
throw h(t);
|
|
1889
1883
|
}
|
|
1890
1884
|
}
|
|
1891
1885
|
async fetchAssetMetadata(e) {
|
|
1892
1886
|
try {
|
|
1893
|
-
const { policyId: t, assetName:
|
|
1894
|
-
if (
|
|
1887
|
+
const { policyId: t, assetName: s } = tt(e), { data: n, status: i } = await this._axiosInstance.get(`asset_info?_asset_policy=${t}&_asset_name=${s}`);
|
|
1888
|
+
if (i === 200)
|
|
1895
1889
|
return {
|
|
1896
|
-
...
|
|
1890
|
+
...n[0].minting_tx_metadata[721][t][Gt(s)]
|
|
1897
1891
|
};
|
|
1898
|
-
throw
|
|
1892
|
+
throw h(n);
|
|
1899
1893
|
} catch (t) {
|
|
1900
|
-
throw
|
|
1894
|
+
throw h(t);
|
|
1901
1895
|
}
|
|
1902
1896
|
}
|
|
1903
1897
|
async fetchBlockInfo(e) {
|
|
1904
1898
|
try {
|
|
1905
|
-
const { data: t, status:
|
|
1906
|
-
|
|
1899
|
+
const { data: t, status: s } = await this._axiosInstance.post("block_info", {
|
|
1900
|
+
_block_hashes: [e]
|
|
1901
|
+
});
|
|
1902
|
+
if (s === 200)
|
|
1907
1903
|
return {
|
|
1908
1904
|
confirmations: t[0].num_confirmations,
|
|
1909
1905
|
epoch: t[0].epoch_no,
|
|
@@ -1921,41 +1917,41 @@ class Br {
|
|
|
1921
1917
|
txCount: t[0].tx_count,
|
|
1922
1918
|
VRFKey: t[0].vrf_key
|
|
1923
1919
|
};
|
|
1924
|
-
throw
|
|
1920
|
+
throw h(t);
|
|
1925
1921
|
} catch (t) {
|
|
1926
|
-
throw
|
|
1922
|
+
throw h(t);
|
|
1927
1923
|
}
|
|
1928
1924
|
}
|
|
1929
1925
|
async fetchCollectionAssets(e, t = 0) {
|
|
1930
1926
|
try {
|
|
1931
|
-
const { data:
|
|
1932
|
-
if (
|
|
1927
|
+
const { data: s, status: n } = await this._axiosInstance.get(`asset_policy_info?_asset_policy=${e}&limit=100&offset=${t}`);
|
|
1928
|
+
if (n === 200)
|
|
1933
1929
|
return {
|
|
1934
|
-
assets:
|
|
1935
|
-
unit: `${e}${
|
|
1936
|
-
quantity:
|
|
1930
|
+
assets: s.map((i) => ({
|
|
1931
|
+
unit: `${e}${i.asset_name}`,
|
|
1932
|
+
quantity: i.total_supply
|
|
1937
1933
|
})),
|
|
1938
|
-
next:
|
|
1934
|
+
next: s.length === 100 ? t + 100 : null
|
|
1939
1935
|
};
|
|
1940
|
-
throw
|
|
1941
|
-
} catch (
|
|
1942
|
-
throw
|
|
1936
|
+
throw h(s);
|
|
1937
|
+
} catch (s) {
|
|
1938
|
+
throw h(s);
|
|
1943
1939
|
}
|
|
1944
1940
|
}
|
|
1945
1941
|
async fetchHandleAddress(e) {
|
|
1946
1942
|
try {
|
|
1947
|
-
const t = S(e.replace("$", "")), { data:
|
|
1948
|
-
if (
|
|
1949
|
-
return
|
|
1950
|
-
throw
|
|
1943
|
+
const t = S(e.replace("$", "")), { data: s, status: n } = await this._axiosInstance.get(`asset_address_list?_asset_policy=${Vt[1]}&_asset_name=${t}`);
|
|
1944
|
+
if (n === 200)
|
|
1945
|
+
return s[0].payment_address;
|
|
1946
|
+
throw h(s);
|
|
1951
1947
|
} catch (t) {
|
|
1952
|
-
throw
|
|
1948
|
+
throw h(t);
|
|
1953
1949
|
}
|
|
1954
1950
|
}
|
|
1955
1951
|
async fetchProtocolParameters(e) {
|
|
1956
1952
|
try {
|
|
1957
|
-
const { data: t, status:
|
|
1958
|
-
if (
|
|
1953
|
+
const { data: t, status: s } = await this._axiosInstance.get(`epoch_params?_epoch_no=${e}`);
|
|
1954
|
+
if (s === 200)
|
|
1959
1955
|
return {
|
|
1960
1956
|
coinsPerUTxOSize: t[0].coins_per_utxo_size,
|
|
1961
1957
|
collateralPercent: t[0].collateral_percent,
|
|
@@ -1978,104 +1974,151 @@ class Br {
|
|
|
1978
1974
|
priceMem: t[0].price_mem,
|
|
1979
1975
|
priceStep: t[0].price_step
|
|
1980
1976
|
};
|
|
1981
|
-
throw
|
|
1977
|
+
throw h(t);
|
|
1982
1978
|
} catch (t) {
|
|
1983
|
-
throw
|
|
1979
|
+
throw h(t);
|
|
1984
1980
|
}
|
|
1985
1981
|
}
|
|
1986
1982
|
async fetchTxInfo(e) {
|
|
1987
|
-
var t,
|
|
1983
|
+
var t, s;
|
|
1988
1984
|
try {
|
|
1989
|
-
const { data:
|
|
1990
|
-
|
|
1985
|
+
const { data: n, status: i } = await this._axiosInstance.post("tx_info", {
|
|
1986
|
+
_tx_hashes: [e]
|
|
1987
|
+
});
|
|
1988
|
+
if (i === 200)
|
|
1991
1989
|
return {
|
|
1992
|
-
block:
|
|
1993
|
-
deposit:
|
|
1994
|
-
fees:
|
|
1995
|
-
hash:
|
|
1996
|
-
index:
|
|
1997
|
-
invalidAfter: ((t =
|
|
1998
|
-
invalidBefore: ((
|
|
1999
|
-
slot:
|
|
2000
|
-
size:
|
|
1990
|
+
block: n[0].block_hash,
|
|
1991
|
+
deposit: n[0].deposit,
|
|
1992
|
+
fees: n[0].fee,
|
|
1993
|
+
hash: n[0].tx_hash,
|
|
1994
|
+
index: n[0].tx_block_index,
|
|
1995
|
+
invalidAfter: ((t = n[0].invalid_after) == null ? void 0 : t.toString()) ?? "",
|
|
1996
|
+
invalidBefore: ((s = n[0].invalid_before) == null ? void 0 : s.toString()) ?? "",
|
|
1997
|
+
slot: n[0].absolute_slot.toString(),
|
|
1998
|
+
size: n[0].tx_size
|
|
2001
1999
|
};
|
|
2002
|
-
throw
|
|
2003
|
-
} catch (
|
|
2004
|
-
throw
|
|
2000
|
+
throw h(n);
|
|
2001
|
+
} catch (n) {
|
|
2002
|
+
throw h(n);
|
|
2003
|
+
}
|
|
2004
|
+
}
|
|
2005
|
+
async fetchUTxOs(e) {
|
|
2006
|
+
try {
|
|
2007
|
+
console.log("hi");
|
|
2008
|
+
const { data: t, status: s } = await this._axiosInstance.post("tx_info", {
|
|
2009
|
+
_tx_hashes: [e]
|
|
2010
|
+
});
|
|
2011
|
+
if (s === 200)
|
|
2012
|
+
return console.log(t[0]), t[0].outputs.map((i) => this.toUTxO(i, i.payment_addr.bech32));
|
|
2013
|
+
throw h(t);
|
|
2014
|
+
} catch (t) {
|
|
2015
|
+
throw h(t);
|
|
2005
2016
|
}
|
|
2006
2017
|
}
|
|
2007
|
-
onTxConfirmed(e, t,
|
|
2008
|
-
let
|
|
2009
|
-
const
|
|
2010
|
-
|
|
2018
|
+
onTxConfirmed(e, t, s = 100) {
|
|
2019
|
+
let n = 0;
|
|
2020
|
+
const i = setInterval(() => {
|
|
2021
|
+
n >= s && clearInterval(i), this.fetchTxInfo(e).then((o) => {
|
|
2011
2022
|
this.fetchBlockInfo(o.block).then((c) => {
|
|
2012
|
-
(c == null ? void 0 : c.confirmations) > 0 && (clearInterval(
|
|
2023
|
+
(c == null ? void 0 : c.confirmations) > 0 && (clearInterval(i), t());
|
|
2013
2024
|
}).catch(() => {
|
|
2014
|
-
|
|
2025
|
+
n += 1;
|
|
2015
2026
|
});
|
|
2016
2027
|
}).catch(() => {
|
|
2017
|
-
|
|
2028
|
+
n += 1;
|
|
2018
2029
|
});
|
|
2019
2030
|
}, 5e3);
|
|
2020
2031
|
}
|
|
2021
2032
|
async submitTx(e) {
|
|
2022
2033
|
try {
|
|
2023
|
-
const t = { "Content-Type": "application/cbor" }, { data:
|
|
2024
|
-
if (
|
|
2025
|
-
return
|
|
2026
|
-
throw
|
|
2034
|
+
const t = { "Content-Type": "application/cbor" }, { data: s, status: n } = await this._axiosInstance.post("submittx", I(e), { headers: t });
|
|
2035
|
+
if (n === 202)
|
|
2036
|
+
return s;
|
|
2037
|
+
throw h(s);
|
|
2027
2038
|
} catch (t) {
|
|
2028
|
-
throw
|
|
2039
|
+
throw h(t);
|
|
2029
2040
|
}
|
|
2030
2041
|
}
|
|
2042
|
+
toUTxO(e, t) {
|
|
2043
|
+
var s, n;
|
|
2044
|
+
return {
|
|
2045
|
+
input: {
|
|
2046
|
+
outputIndex: e.tx_index,
|
|
2047
|
+
txHash: e.tx_hash
|
|
2048
|
+
},
|
|
2049
|
+
output: {
|
|
2050
|
+
address: t,
|
|
2051
|
+
amount: [
|
|
2052
|
+
{ unit: "lovelace", quantity: e.value },
|
|
2053
|
+
...e.asset_list.map((i) => ({
|
|
2054
|
+
unit: `${i.policy_id}${i.asset_name}`,
|
|
2055
|
+
quantity: `${i.quantity}`
|
|
2056
|
+
}))
|
|
2057
|
+
],
|
|
2058
|
+
dataHash: e.datum_hash ?? void 0,
|
|
2059
|
+
plutusData: ((s = e.inline_datum) == null ? void 0 : s.bytes) ?? void 0,
|
|
2060
|
+
scriptRef: this.resolveScriptRef(e.reference_script),
|
|
2061
|
+
scriptHash: ((n = e.reference_script) == null ? void 0 : n.hash) ?? void 0
|
|
2062
|
+
}
|
|
2063
|
+
};
|
|
2064
|
+
}
|
|
2065
|
+
resolveScriptRef = (e) => {
|
|
2066
|
+
if (e) {
|
|
2067
|
+
const t = e.type.startsWith("plutus") ? {
|
|
2068
|
+
code: e.bytes,
|
|
2069
|
+
version: e.type.replace("plutus", "")
|
|
2070
|
+
} : Dt(vt(e.bytes));
|
|
2071
|
+
return ut(t).to_hex();
|
|
2072
|
+
}
|
|
2073
|
+
};
|
|
2031
2074
|
}
|
|
2032
|
-
class
|
|
2075
|
+
class Er {
|
|
2033
2076
|
_baseUrl;
|
|
2034
2077
|
constructor(...e) {
|
|
2035
|
-
this._baseUrl =
|
|
2078
|
+
this._baseUrl = es(e[0]) ? ns[e[0]] : e[0];
|
|
2036
2079
|
}
|
|
2037
2080
|
async evaluateTx(e) {
|
|
2038
2081
|
const t = await this.open();
|
|
2039
2082
|
return this.send(t, "EvaluateTx", {
|
|
2040
2083
|
evaluate: e
|
|
2041
|
-
}), new Promise((
|
|
2042
|
-
t.addEventListener("message", (
|
|
2084
|
+
}), new Promise((s, n) => {
|
|
2085
|
+
t.addEventListener("message", (i) => {
|
|
2043
2086
|
try {
|
|
2044
|
-
const { result: o } = JSON.parse(
|
|
2045
|
-
o.EvaluationResult ?
|
|
2087
|
+
const { result: o } = JSON.parse(i.data);
|
|
2088
|
+
o.EvaluationResult ? s(Object.keys(o.EvaluationResult).map((c) => ({
|
|
2046
2089
|
index: parseInt(c.split(":")[1], 10),
|
|
2047
2090
|
tag: c.split(":")[0].toUpperCase(),
|
|
2048
2091
|
budget: {
|
|
2049
2092
|
mem: o.EvaluationResult[c].memory,
|
|
2050
2093
|
steps: o.EvaluationResult[c].steps
|
|
2051
2094
|
}
|
|
2052
|
-
}))) :
|
|
2095
|
+
}))) : n(o.EvaluationFailure), t.close();
|
|
2053
2096
|
} catch (o) {
|
|
2054
|
-
|
|
2097
|
+
n(o);
|
|
2055
2098
|
}
|
|
2056
2099
|
}, { once: !0 });
|
|
2057
2100
|
});
|
|
2058
2101
|
}
|
|
2059
2102
|
async onNextTx(e) {
|
|
2060
2103
|
const t = await this.open();
|
|
2061
|
-
return this.send(t, "AwaitAcquire", {}), t.addEventListener("message", (
|
|
2062
|
-
const { result:
|
|
2063
|
-
if (
|
|
2104
|
+
return this.send(t, "AwaitAcquire", {}), t.addEventListener("message", (s) => {
|
|
2105
|
+
const { result: n } = JSON.parse(s.data);
|
|
2106
|
+
if (n === null)
|
|
2064
2107
|
return this.send(t, "AwaitAcquire", {});
|
|
2065
|
-
|
|
2108
|
+
n.AwaitAcquired === void 0 && e(n), this.send(t, "NextTx", {});
|
|
2066
2109
|
}), () => t.close();
|
|
2067
2110
|
}
|
|
2068
2111
|
async submitTx(e) {
|
|
2069
2112
|
const t = await this.open();
|
|
2070
2113
|
return this.send(t, "SubmitTx", {
|
|
2071
2114
|
submit: e
|
|
2072
|
-
}), new Promise((
|
|
2073
|
-
t.addEventListener("message", (
|
|
2115
|
+
}), new Promise((s, n) => {
|
|
2116
|
+
t.addEventListener("message", (i) => {
|
|
2074
2117
|
try {
|
|
2075
|
-
const { result: o } = JSON.parse(
|
|
2076
|
-
o.SubmitSuccess ?
|
|
2118
|
+
const { result: o } = JSON.parse(i.data);
|
|
2119
|
+
o.SubmitSuccess ? s(o.SubmitSuccess.txId) : n(o.SubmitFail), t.close();
|
|
2077
2120
|
} catch (o) {
|
|
2078
|
-
|
|
2121
|
+
n(o);
|
|
2079
2122
|
}
|
|
2080
2123
|
}, { once: !0 });
|
|
2081
2124
|
});
|
|
@@ -2086,119 +2129,124 @@ class xr {
|
|
|
2086
2129
|
e.addEventListener("open", () => t(!0), { once: !0 });
|
|
2087
2130
|
}), e;
|
|
2088
2131
|
}
|
|
2089
|
-
send(e, t,
|
|
2132
|
+
send(e, t, s) {
|
|
2090
2133
|
e.send(JSON.stringify({
|
|
2091
2134
|
version: "1.0",
|
|
2092
2135
|
type: "jsonwsp/request",
|
|
2093
2136
|
servicename: "ogmios",
|
|
2094
2137
|
methodname: t,
|
|
2095
|
-
args:
|
|
2138
|
+
args: s
|
|
2096
2139
|
}));
|
|
2097
2140
|
}
|
|
2098
2141
|
}
|
|
2099
|
-
class
|
|
2142
|
+
class Sr {
|
|
2100
2143
|
_axiosInstance;
|
|
2101
|
-
constructor(e, t,
|
|
2144
|
+
constructor(e, t, s, n = 1) {
|
|
2102
2145
|
this._axiosInstance = L.create({
|
|
2103
|
-
baseURL: `https://cardano-${e}.tangocrypto.com/${t}/v${
|
|
2104
|
-
headers: { "x-api-key":
|
|
2146
|
+
baseURL: `https://cardano-${e}.tangocrypto.com/${t}/v${n}`,
|
|
2147
|
+
headers: { "x-api-key": s }
|
|
2105
2148
|
});
|
|
2106
2149
|
}
|
|
2107
2150
|
async evaluateTx(e) {
|
|
2108
2151
|
try {
|
|
2109
|
-
const { data: t, status:
|
|
2110
|
-
if (
|
|
2111
|
-
return t.redeemers.map((
|
|
2112
|
-
index:
|
|
2113
|
-
tag:
|
|
2152
|
+
const { data: t, status: s } = await this._axiosInstance.post("transactions/evaluate", { tx: e, utxos: [] });
|
|
2153
|
+
if (s === 200)
|
|
2154
|
+
return t.redeemers.map((n) => ({
|
|
2155
|
+
index: n.index,
|
|
2156
|
+
tag: n.purpose.toUpperCase(),
|
|
2114
2157
|
budget: {
|
|
2115
|
-
mem:
|
|
2116
|
-
steps:
|
|
2158
|
+
mem: n.unit_mem,
|
|
2159
|
+
steps: n.unit_steps
|
|
2117
2160
|
}
|
|
2118
2161
|
}));
|
|
2119
|
-
throw
|
|
2162
|
+
throw h(t);
|
|
2120
2163
|
} catch (t) {
|
|
2121
|
-
throw
|
|
2164
|
+
throw h(t);
|
|
2122
2165
|
}
|
|
2123
2166
|
}
|
|
2124
2167
|
async fetchAccountInfo(e) {
|
|
2125
2168
|
try {
|
|
2126
|
-
const t = e.startsWith("addr") ?
|
|
2127
|
-
if (
|
|
2169
|
+
const t = e.startsWith("addr") ? Tt(e) : e, { data: s, status: n } = await this._axiosInstance.get(`wallets/${t}`);
|
|
2170
|
+
if (n === 200)
|
|
2128
2171
|
return {
|
|
2129
|
-
poolId:
|
|
2130
|
-
active:
|
|
2131
|
-
balance:
|
|
2132
|
-
rewards:
|
|
2133
|
-
withdrawals:
|
|
2172
|
+
poolId: s.pool_id,
|
|
2173
|
+
active: s.active,
|
|
2174
|
+
balance: s.controlled_total_stake,
|
|
2175
|
+
rewards: s.rewards_sum,
|
|
2176
|
+
withdrawals: s.withdrawals_sum
|
|
2134
2177
|
};
|
|
2135
|
-
throw
|
|
2178
|
+
throw h(s);
|
|
2136
2179
|
} catch (t) {
|
|
2137
|
-
throw
|
|
2180
|
+
throw h(t);
|
|
2138
2181
|
}
|
|
2139
2182
|
}
|
|
2140
2183
|
async fetchAddressUTxOs(e, t) {
|
|
2141
|
-
const
|
|
2184
|
+
const s = t !== void 0 ? `/assets/${t}` : "", n = `addresses/${e}${s}/utxos?size=50`, i = async (d = "", A = []) => {
|
|
2142
2185
|
var f;
|
|
2143
|
-
const { data:
|
|
2144
|
-
if (
|
|
2145
|
-
return
|
|
2146
|
-
throw
|
|
2147
|
-
}, o = (
|
|
2148
|
-
const
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2186
|
+
const { data: l, status: g } = await this._axiosInstance.get(`${n}&cursor=${d}`);
|
|
2187
|
+
if (g === 200)
|
|
2188
|
+
return l.cursor !== null && ((f = l.cursor) == null ? void 0 : f.length) > 0 ? i(l.cursor, [...A, ...l.data.map(u)]) : l.data.map(u);
|
|
2189
|
+
throw h(l);
|
|
2190
|
+
}, o = (d, A) => {
|
|
2191
|
+
const l = [
|
|
2192
|
+
{
|
|
2193
|
+
unit: "lovelace",
|
|
2194
|
+
quantity: d.toString()
|
|
2195
|
+
}
|
|
2196
|
+
];
|
|
2197
|
+
return A.forEach((g) => {
|
|
2198
|
+
const f = S(g.asset_name);
|
|
2199
|
+
l.push({
|
|
2200
|
+
unit: `${g.policy_id}${f}`,
|
|
2201
|
+
quantity: g.quantity.toString()
|
|
2157
2202
|
});
|
|
2158
|
-
}),
|
|
2159
|
-
}, c = (
|
|
2160
|
-
if (
|
|
2161
|
-
const
|
|
2162
|
-
code:
|
|
2163
|
-
version:
|
|
2164
|
-
} : Dt(
|
|
2165
|
-
return
|
|
2203
|
+
}), l;
|
|
2204
|
+
}, c = (d) => {
|
|
2205
|
+
if (d) {
|
|
2206
|
+
const A = d.type.startsWith("plutus") ? {
|
|
2207
|
+
code: d.code,
|
|
2208
|
+
version: d.type.replace("plutus", "")
|
|
2209
|
+
} : Dt(vt(d.json));
|
|
2210
|
+
return ut(A).to_hex();
|
|
2166
2211
|
}
|
|
2167
|
-
}, u = (
|
|
2168
|
-
var
|
|
2212
|
+
}, u = (d) => {
|
|
2213
|
+
var A;
|
|
2169
2214
|
return {
|
|
2170
2215
|
input: {
|
|
2171
|
-
outputIndex:
|
|
2172
|
-
txHash:
|
|
2216
|
+
outputIndex: d.index,
|
|
2217
|
+
txHash: d.hash
|
|
2173
2218
|
},
|
|
2174
2219
|
output: {
|
|
2175
2220
|
address: e,
|
|
2176
|
-
amount: o(
|
|
2221
|
+
amount: o(d.value, d.assets),
|
|
2177
2222
|
dataHash: void 0,
|
|
2178
|
-
plutusData: ((
|
|
2179
|
-
scriptRef: c(
|
|
2223
|
+
plutusData: ((A = d.inline_datum) == null ? void 0 : A.value_raw) ?? void 0,
|
|
2224
|
+
scriptRef: c(d.reference_script)
|
|
2180
2225
|
}
|
|
2181
2226
|
};
|
|
2182
2227
|
};
|
|
2183
2228
|
try {
|
|
2184
|
-
return await
|
|
2229
|
+
return await i();
|
|
2185
2230
|
} catch {
|
|
2186
2231
|
return [];
|
|
2187
2232
|
}
|
|
2188
2233
|
}
|
|
2189
2234
|
async fetchAssetAddresses(e) {
|
|
2190
|
-
const t = (
|
|
2191
|
-
address:
|
|
2192
|
-
quantity:
|
|
2193
|
-
}),
|
|
2194
|
-
var
|
|
2195
|
-
const { policyId: o, assetName: c } =
|
|
2196
|
-
if (
|
|
2197
|
-
return u.cursor !== null && ((
|
|
2198
|
-
|
|
2235
|
+
const t = (n) => ({
|
|
2236
|
+
address: n.address,
|
|
2237
|
+
quantity: n.quantity.toString()
|
|
2238
|
+
}), s = async (n = "", i = []) => {
|
|
2239
|
+
var A;
|
|
2240
|
+
const { policyId: o, assetName: c } = tt(e), { data: u, status: d } = await this._axiosInstance.get(`assets/${o}${c}/addresses?size=100&cursor=${n}`);
|
|
2241
|
+
if (d === 200)
|
|
2242
|
+
return u.cursor !== null && ((A = u.cursor) == null ? void 0 : A.length) > 0 ? s(u.cursor, [
|
|
2243
|
+
...i,
|
|
2244
|
+
...u.data.map(t)
|
|
2245
|
+
]) : u.data.map(t);
|
|
2246
|
+
throw h(u);
|
|
2199
2247
|
};
|
|
2200
2248
|
try {
|
|
2201
|
-
return await
|
|
2249
|
+
return await s();
|
|
2202
2250
|
} catch {
|
|
2203
2251
|
return [];
|
|
2204
2252
|
}
|
|
@@ -2206,20 +2254,20 @@ class Er {
|
|
|
2206
2254
|
async fetchAssetMetadata(e) {
|
|
2207
2255
|
var t;
|
|
2208
2256
|
try {
|
|
2209
|
-
const { policyId:
|
|
2257
|
+
const { policyId: s, assetName: n } = tt(e), { data: i, status: o } = await this._axiosInstance.get(`assets/${s}${n}`);
|
|
2210
2258
|
if (o === 200)
|
|
2211
2259
|
return {
|
|
2212
|
-
...(t =
|
|
2260
|
+
...(t = i.metadata.find((c) => c.label === 721)) == null ? void 0 : t.json[s][Gt(n)]
|
|
2213
2261
|
};
|
|
2214
|
-
throw
|
|
2215
|
-
} catch (
|
|
2216
|
-
throw
|
|
2262
|
+
throw h(i);
|
|
2263
|
+
} catch (s) {
|
|
2264
|
+
throw h(s);
|
|
2217
2265
|
}
|
|
2218
2266
|
}
|
|
2219
2267
|
async fetchBlockInfo(e) {
|
|
2220
2268
|
try {
|
|
2221
|
-
const { data: t, status:
|
|
2222
|
-
if (
|
|
2269
|
+
const { data: t, status: s } = await this._axiosInstance.get(`blocks/${e}`);
|
|
2270
|
+
if (s === 200)
|
|
2223
2271
|
return {
|
|
2224
2272
|
confirmations: t.confirmations,
|
|
2225
2273
|
epoch: t.epoch_no,
|
|
@@ -2237,41 +2285,41 @@ class Er {
|
|
|
2237
2285
|
txCount: t.tx_count,
|
|
2238
2286
|
VRFKey: t.vrf_key
|
|
2239
2287
|
};
|
|
2240
|
-
throw
|
|
2288
|
+
throw h(t);
|
|
2241
2289
|
} catch (t) {
|
|
2242
|
-
throw
|
|
2290
|
+
throw h(t);
|
|
2243
2291
|
}
|
|
2244
2292
|
}
|
|
2245
2293
|
async fetchCollectionAssets(e, t = "") {
|
|
2246
2294
|
try {
|
|
2247
|
-
const { data:
|
|
2248
|
-
if (
|
|
2295
|
+
const { data: s, status: n } = await this._axiosInstance.get(`policies/${e}/assets?size=100&cursor=${t}`);
|
|
2296
|
+
if (n === 200)
|
|
2249
2297
|
return {
|
|
2250
|
-
assets:
|
|
2251
|
-
unit: `${
|
|
2252
|
-
quantity:
|
|
2298
|
+
assets: s.data.map((i) => ({
|
|
2299
|
+
unit: `${i.policy_id}${i.asset_name}`,
|
|
2300
|
+
quantity: i.quantity
|
|
2253
2301
|
})),
|
|
2254
|
-
next:
|
|
2302
|
+
next: s.cursor
|
|
2255
2303
|
};
|
|
2256
|
-
throw
|
|
2304
|
+
throw h(s);
|
|
2257
2305
|
} catch {
|
|
2258
2306
|
return { assets: [], next: null };
|
|
2259
2307
|
}
|
|
2260
2308
|
}
|
|
2261
2309
|
async fetchHandleAddress(e) {
|
|
2262
2310
|
try {
|
|
2263
|
-
const t = S(e.replace("$", "")), { data:
|
|
2264
|
-
if (
|
|
2265
|
-
return
|
|
2266
|
-
throw
|
|
2311
|
+
const t = S(e.replace("$", "")), { data: s, status: n } = await this._axiosInstance.get(`assets/${Vt[1]}${t}/addresses`);
|
|
2312
|
+
if (n === 200)
|
|
2313
|
+
return s.data[0].address;
|
|
2314
|
+
throw h(s);
|
|
2267
2315
|
} catch (t) {
|
|
2268
|
-
throw
|
|
2316
|
+
throw h(t);
|
|
2269
2317
|
}
|
|
2270
2318
|
}
|
|
2271
2319
|
async fetchProtocolParameters(e) {
|
|
2272
2320
|
try {
|
|
2273
|
-
const { data: t, status:
|
|
2274
|
-
if (
|
|
2321
|
+
const { data: t, status: s } = await this._axiosInstance.get(`epochs/${e}/parameters`);
|
|
2322
|
+
if (s === 200)
|
|
2275
2323
|
return {
|
|
2276
2324
|
coinsPerUTxOSize: t.coins_per_utxo_size.toString(),
|
|
2277
2325
|
collateralPercent: t.collateral_percent,
|
|
@@ -2294,15 +2342,15 @@ class Er {
|
|
|
2294
2342
|
priceMem: t.price_mem,
|
|
2295
2343
|
priceStep: t.price_step
|
|
2296
2344
|
};
|
|
2297
|
-
throw
|
|
2345
|
+
throw h(t);
|
|
2298
2346
|
} catch (t) {
|
|
2299
|
-
throw
|
|
2347
|
+
throw h(t);
|
|
2300
2348
|
}
|
|
2301
2349
|
}
|
|
2302
2350
|
async fetchTxInfo(e) {
|
|
2303
2351
|
try {
|
|
2304
|
-
const { data: t, status:
|
|
2305
|
-
if (
|
|
2352
|
+
const { data: t, status: s } = await this._axiosInstance.get(`transactions/${e}`);
|
|
2353
|
+
if (s === 200)
|
|
2306
2354
|
return {
|
|
2307
2355
|
block: t.block.hash,
|
|
2308
2356
|
deposit: t.deposit,
|
|
@@ -2314,338 +2362,381 @@ class Er {
|
|
|
2314
2362
|
slot: t.block.slot_no.toString(),
|
|
2315
2363
|
size: t.size
|
|
2316
2364
|
};
|
|
2317
|
-
throw
|
|
2365
|
+
throw h(t);
|
|
2318
2366
|
} catch (t) {
|
|
2319
|
-
throw
|
|
2367
|
+
throw h(t);
|
|
2320
2368
|
}
|
|
2321
2369
|
}
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2370
|
+
async fetchUTxOs(e) {
|
|
2371
|
+
try {
|
|
2372
|
+
return [];
|
|
2373
|
+
} catch (t) {
|
|
2374
|
+
throw h(t);
|
|
2375
|
+
}
|
|
2376
|
+
}
|
|
2377
|
+
onTxConfirmed(e, t, s = 100) {
|
|
2378
|
+
let n = 0;
|
|
2379
|
+
const i = setInterval(() => {
|
|
2380
|
+
n >= s && clearInterval(i), this.fetchTxInfo(e).then((o) => {
|
|
2326
2381
|
this.fetchBlockInfo(o.block).then((c) => {
|
|
2327
|
-
(c == null ? void 0 : c.confirmations) > 0 && (clearInterval(
|
|
2382
|
+
(c == null ? void 0 : c.confirmations) > 0 && (clearInterval(i), t());
|
|
2328
2383
|
}).catch(() => {
|
|
2329
|
-
|
|
2384
|
+
n += 1;
|
|
2330
2385
|
});
|
|
2331
2386
|
}).catch(() => {
|
|
2332
|
-
|
|
2387
|
+
n += 1;
|
|
2333
2388
|
});
|
|
2334
2389
|
}, 5e3);
|
|
2335
2390
|
}
|
|
2336
2391
|
async submitTx(e) {
|
|
2337
2392
|
try {
|
|
2338
|
-
const t = { "Content-Type": "application/json" }, { data:
|
|
2339
|
-
if (
|
|
2340
|
-
return
|
|
2341
|
-
throw
|
|
2393
|
+
const t = { "Content-Type": "application/json" }, { data: s, status: n } = await this._axiosInstance.post("transactions/submit", { tx: e }, { headers: t });
|
|
2394
|
+
if (n === 200)
|
|
2395
|
+
return s.tx_id;
|
|
2396
|
+
throw h(s);
|
|
2342
2397
|
} catch (t) {
|
|
2343
|
-
throw
|
|
2398
|
+
throw h(t);
|
|
2344
2399
|
}
|
|
2345
2400
|
}
|
|
2346
2401
|
}
|
|
2347
|
-
class
|
|
2402
|
+
class Qr {
|
|
2348
2403
|
_axiosInstance;
|
|
2349
2404
|
submitUrl;
|
|
2350
|
-
constructor({ network: e, apiKey: t, turboSubmit:
|
|
2405
|
+
constructor({ network: e, apiKey: t, turboSubmit: s = !1 }) {
|
|
2351
2406
|
this._axiosInstance = L.create({
|
|
2352
2407
|
baseURL: `https://${e}.gomaestro-api.org/v1`,
|
|
2353
2408
|
headers: { "api-key": t }
|
|
2354
|
-
}), this.submitUrl =
|
|
2409
|
+
}), this.submitUrl = s ? "txmanager/turbosubmit" : "txmanager";
|
|
2410
|
+
}
|
|
2411
|
+
async evaluateTx(e) {
|
|
2412
|
+
try {
|
|
2413
|
+
const { data: t, status: s } = await this._axiosInstance.post("transactions/evaluate", { cbor: e });
|
|
2414
|
+
if (s === 200) {
|
|
2415
|
+
const n = {
|
|
2416
|
+
spend: "SPEND",
|
|
2417
|
+
mint: "MINT",
|
|
2418
|
+
cert: "CERT",
|
|
2419
|
+
wdrl: "REWARD"
|
|
2420
|
+
};
|
|
2421
|
+
return t.map((o) => {
|
|
2422
|
+
const c = o.ex_units, u = o.redeemer_index, d = n[o.redeemer_tag];
|
|
2423
|
+
return { budget: c, index: u, tag: d };
|
|
2424
|
+
});
|
|
2425
|
+
}
|
|
2426
|
+
throw h(t);
|
|
2427
|
+
} catch (t) {
|
|
2428
|
+
throw h(t);
|
|
2429
|
+
}
|
|
2355
2430
|
}
|
|
2356
2431
|
async fetchAccountInfo(e) {
|
|
2357
|
-
const t = e.startsWith("addr") ?
|
|
2432
|
+
const t = e.startsWith("addr") ? Tt(e) : e;
|
|
2358
2433
|
try {
|
|
2359
|
-
const { data:
|
|
2360
|
-
if (
|
|
2361
|
-
const
|
|
2434
|
+
const { data: s, status: n } = await this._axiosInstance.get(`accounts/${t}`);
|
|
2435
|
+
if (n === 200) {
|
|
2436
|
+
const i = s.data;
|
|
2362
2437
|
return {
|
|
2363
|
-
poolId:
|
|
2364
|
-
active:
|
|
2365
|
-
balance:
|
|
2366
|
-
rewards:
|
|
2367
|
-
withdrawals:
|
|
2438
|
+
poolId: i.delegated_pool,
|
|
2439
|
+
active: i.registered,
|
|
2440
|
+
balance: i.total_balance.toString(),
|
|
2441
|
+
rewards: i.rewards_available.toString(),
|
|
2442
|
+
withdrawals: i.total_withdrawn.toString()
|
|
2368
2443
|
};
|
|
2369
2444
|
}
|
|
2370
|
-
throw
|
|
2371
|
-
} catch (
|
|
2372
|
-
throw
|
|
2445
|
+
throw h(s);
|
|
2446
|
+
} catch (s) {
|
|
2447
|
+
throw h(s);
|
|
2373
2448
|
}
|
|
2374
2449
|
}
|
|
2375
2450
|
async fetchAddressUTxOs(e, t) {
|
|
2376
|
-
const
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
};
|
|
2382
|
-
return ct(A).to_hex();
|
|
2383
|
-
} else
|
|
2384
|
-
return;
|
|
2385
|
-
}, o = async (u = null, A = []) => {
|
|
2386
|
-
const l = u === null ? "" : `&cursor=${u}`, { data: g, status: I } = await this._axiosInstance.get(`${r}/utxos?count=100${a}${l}`);
|
|
2387
|
-
if (I === 200) {
|
|
2388
|
-
const y = g.data.map(c), b = [...A, ...y], k = g.next_cursor;
|
|
2389
|
-
return k == null ? b : o(k, b);
|
|
2451
|
+
const s = (() => e.startsWith("addr_vkh") || e.startsWith("addr_shared_vkh") ? `addresses/cred/${e}` : `addresses/${e}`)(), n = t ? `&asset=${t}` : "", i = async (o = null, c = []) => {
|
|
2452
|
+
const u = o === null ? "" : `&cursor=${o}`, { data: d, status: A } = await this._axiosInstance.get(`${s}/utxos?count=100${n}${u}`);
|
|
2453
|
+
if (A === 200) {
|
|
2454
|
+
const g = d.data.map(this.toUTxO), f = [...c, ...g], y = d.next_cursor;
|
|
2455
|
+
return y == null ? f : i(y, f);
|
|
2390
2456
|
}
|
|
2391
|
-
throw d
|
|
2392
|
-
}, c = (u) => {
|
|
2393
|
-
var A, l;
|
|
2394
|
-
return {
|
|
2395
|
-
input: {
|
|
2396
|
-
outputIndex: u.index,
|
|
2397
|
-
txHash: u.tx_hash
|
|
2398
|
-
},
|
|
2399
|
-
output: {
|
|
2400
|
-
address: e,
|
|
2401
|
-
amount: u.assets.map((g) => ({
|
|
2402
|
-
unit: g.unit,
|
|
2403
|
-
quantity: g.amount.toString()
|
|
2404
|
-
})),
|
|
2405
|
-
dataHash: (A = u.datum) == null ? void 0 : A.hash,
|
|
2406
|
-
plutusData: (l = u.datum) == null ? void 0 : l.bytes,
|
|
2407
|
-
scriptRef: n(u)
|
|
2408
|
-
}
|
|
2409
|
-
};
|
|
2457
|
+
throw h(d);
|
|
2410
2458
|
};
|
|
2411
2459
|
try {
|
|
2412
|
-
return await
|
|
2460
|
+
return await i();
|
|
2413
2461
|
} catch {
|
|
2414
2462
|
return [];
|
|
2415
2463
|
}
|
|
2416
2464
|
}
|
|
2417
2465
|
async fetchAssetAddresses(e) {
|
|
2418
|
-
const { policyId: t, assetName:
|
|
2419
|
-
const c =
|
|
2420
|
-
if (
|
|
2421
|
-
const
|
|
2422
|
-
|
|
2466
|
+
const { policyId: t, assetName: s } = tt(e), n = async (i = null, o = []) => {
|
|
2467
|
+
const c = i === null ? "" : `&cursor=${i}`, { data: u, status: d } = await this._axiosInstance.get(`assets/${t}${s}/addresses?count=100${c}`);
|
|
2468
|
+
if (d === 200) {
|
|
2469
|
+
const l = u.data.map((y) => ({ address: y.address, quantity: y.amount.toString() })), g = u.next_cursor, f = [
|
|
2470
|
+
...o,
|
|
2471
|
+
...l
|
|
2472
|
+
];
|
|
2473
|
+
return g == null ? f : n(g, f);
|
|
2423
2474
|
}
|
|
2424
|
-
throw
|
|
2475
|
+
throw h(u);
|
|
2425
2476
|
};
|
|
2426
2477
|
try {
|
|
2427
|
-
return await
|
|
2478
|
+
return await n();
|
|
2428
2479
|
} catch {
|
|
2429
2480
|
return [];
|
|
2430
2481
|
}
|
|
2431
2482
|
}
|
|
2432
2483
|
async fetchAssetMetadata(e) {
|
|
2433
2484
|
try {
|
|
2434
|
-
const { policyId: t, assetName:
|
|
2435
|
-
if (
|
|
2436
|
-
const o =
|
|
2485
|
+
const { policyId: t, assetName: s } = tt(e), { data: n, status: i } = await this._axiosInstance.get(`assets/${t}${s}`);
|
|
2486
|
+
if (i === 200) {
|
|
2487
|
+
const o = n.data;
|
|
2437
2488
|
return {
|
|
2438
2489
|
...o.asset_standards.cip25_metadata,
|
|
2439
2490
|
...o.asset_standards.cip68_metadata
|
|
2440
2491
|
};
|
|
2441
2492
|
}
|
|
2442
|
-
throw
|
|
2493
|
+
throw h(n);
|
|
2443
2494
|
} catch (t) {
|
|
2444
|
-
throw
|
|
2495
|
+
throw h(t);
|
|
2445
2496
|
}
|
|
2446
2497
|
}
|
|
2447
2498
|
async fetchBlockInfo(e) {
|
|
2448
2499
|
var t;
|
|
2449
2500
|
try {
|
|
2450
|
-
const { data:
|
|
2451
|
-
if (
|
|
2452
|
-
const
|
|
2501
|
+
const { data: s, status: n } = await this._axiosInstance.get(`blocks/${e}`);
|
|
2502
|
+
if (n === 200) {
|
|
2503
|
+
const i = s.data;
|
|
2453
2504
|
return {
|
|
2454
|
-
confirmations:
|
|
2455
|
-
epoch:
|
|
2456
|
-
epochSlot:
|
|
2457
|
-
fees:
|
|
2458
|
-
hash:
|
|
2459
|
-
nextBlock:
|
|
2460
|
-
operationalCertificate: (t =
|
|
2461
|
-
output:
|
|
2462
|
-
previousBlock:
|
|
2463
|
-
size:
|
|
2464
|
-
slot:
|
|
2465
|
-
slotLeader:
|
|
2466
|
-
time: Date.parse(
|
|
2467
|
-
txCount:
|
|
2468
|
-
VRFKey:
|
|
2505
|
+
confirmations: i.confirmations,
|
|
2506
|
+
epoch: i.epoch,
|
|
2507
|
+
epochSlot: i.epoch_slot.toString(),
|
|
2508
|
+
fees: i.total_fees.toString(),
|
|
2509
|
+
hash: i.hash,
|
|
2510
|
+
nextBlock: i.next_block ?? "",
|
|
2511
|
+
operationalCertificate: (t = i.operational_certificate) == null ? void 0 : t.hot_vkey,
|
|
2512
|
+
output: i.total_output_lovelace ?? "0",
|
|
2513
|
+
previousBlock: i.previous_block,
|
|
2514
|
+
size: i.size,
|
|
2515
|
+
slot: i.absolute_slot.toString(),
|
|
2516
|
+
slotLeader: i.block_producer ?? "",
|
|
2517
|
+
time: Date.parse(i.timestamp) / 1e3,
|
|
2518
|
+
txCount: i.tx_hashes.length,
|
|
2519
|
+
VRFKey: a.VRFVKey.from_hex(i.vrf_key).to_bech32("vrf_vk")
|
|
2469
2520
|
};
|
|
2470
2521
|
}
|
|
2471
|
-
throw
|
|
2472
|
-
} catch (
|
|
2473
|
-
throw
|
|
2522
|
+
throw h(s);
|
|
2523
|
+
} catch (s) {
|
|
2524
|
+
throw h(s);
|
|
2474
2525
|
}
|
|
2475
2526
|
}
|
|
2476
2527
|
async fetchCollectionAssets(e, t) {
|
|
2477
2528
|
try {
|
|
2478
|
-
const { data:
|
|
2479
|
-
if (console.log(
|
|
2529
|
+
const { data: s, status: n } = await this._axiosInstance.get(`assets/policy/${e}?count=100${t ? `&cursor=${t}` : ""}`);
|
|
2530
|
+
if (console.log(s), n === 200)
|
|
2480
2531
|
return {
|
|
2481
|
-
assets:
|
|
2532
|
+
assets: s.data.map((o) => ({
|
|
2482
2533
|
unit: e + o.asset_name,
|
|
2483
2534
|
quantity: o.total_supply.toString()
|
|
2484
2535
|
})),
|
|
2485
|
-
next:
|
|
2536
|
+
next: s.next_cursor
|
|
2486
2537
|
};
|
|
2487
|
-
throw
|
|
2538
|
+
throw h(s);
|
|
2488
2539
|
} catch {
|
|
2489
2540
|
return { assets: [], next: null };
|
|
2490
2541
|
}
|
|
2491
2542
|
}
|
|
2492
2543
|
async fetchHandleAddress(e) {
|
|
2493
2544
|
try {
|
|
2494
|
-
const t = e.charAt(0) === "$" ? e.substring(1) : e, { data:
|
|
2495
|
-
if (
|
|
2496
|
-
return
|
|
2497
|
-
throw
|
|
2545
|
+
const t = e.charAt(0) === "$" ? e.substring(1) : e, { data: s, status: n } = await this._axiosInstance.get(`ecosystem/adahandle/${t}`);
|
|
2546
|
+
if (n === 200)
|
|
2547
|
+
return s.data;
|
|
2548
|
+
throw h(s);
|
|
2498
2549
|
} catch (t) {
|
|
2499
|
-
throw
|
|
2550
|
+
throw h(t);
|
|
2500
2551
|
}
|
|
2501
2552
|
}
|
|
2502
2553
|
async fetchProtocolParameters(e = Number.NaN) {
|
|
2503
2554
|
if (!isNaN(e))
|
|
2504
2555
|
throw new Error("Maestro only supports fetching Protocol parameters of the latest completed epoch.");
|
|
2505
|
-
const t = (
|
|
2506
|
-
const
|
|
2507
|
-
return parseInt(
|
|
2556
|
+
const t = (s) => {
|
|
2557
|
+
const n = s.indexOf("/");
|
|
2558
|
+
return parseInt(s.slice(0, n)) / parseInt(s.slice(n + 1));
|
|
2508
2559
|
};
|
|
2509
2560
|
try {
|
|
2510
|
-
const { data:
|
|
2511
|
-
if (
|
|
2512
|
-
const
|
|
2561
|
+
const { data: s, status: n } = await this._axiosInstance.get("protocol-params");
|
|
2562
|
+
if (n === 200) {
|
|
2563
|
+
const i = s.data;
|
|
2513
2564
|
try {
|
|
2514
2565
|
const { data: o, status: c } = await this._axiosInstance.get("epochs/current");
|
|
2515
2566
|
if (c === 200) {
|
|
2516
2567
|
const u = o.data;
|
|
2517
2568
|
return {
|
|
2518
|
-
coinsPerUTxOSize:
|
|
2519
|
-
collateralPercent: parseInt(
|
|
2569
|
+
coinsPerUTxOSize: i.coins_per_utxo_byte.toString(),
|
|
2570
|
+
collateralPercent: parseInt(i.collateral_percentage),
|
|
2520
2571
|
decentralisation: 0,
|
|
2521
2572
|
epoch: parseInt(u.epoch_no),
|
|
2522
|
-
keyDeposit:
|
|
2523
|
-
maxBlockExMem:
|
|
2524
|
-
maxBlockExSteps:
|
|
2525
|
-
maxBlockHeaderSize: parseInt(
|
|
2526
|
-
maxBlockSize: parseInt(
|
|
2527
|
-
maxCollateralInputs: parseInt(
|
|
2528
|
-
maxTxExMem:
|
|
2529
|
-
maxTxExSteps:
|
|
2530
|
-
maxTxSize: parseInt(
|
|
2531
|
-
maxValSize:
|
|
2532
|
-
minFeeA:
|
|
2533
|
-
minFeeB:
|
|
2534
|
-
minPoolCost:
|
|
2535
|
-
poolDeposit:
|
|
2536
|
-
priceMem: t(
|
|
2537
|
-
priceStep: t(
|
|
2573
|
+
keyDeposit: i.stake_key_deposit.toString(),
|
|
2574
|
+
maxBlockExMem: i.max_execution_units_per_block.memory.toString(),
|
|
2575
|
+
maxBlockExSteps: i.max_execution_units_per_block.steps.toString(),
|
|
2576
|
+
maxBlockHeaderSize: parseInt(i.max_block_header_size),
|
|
2577
|
+
maxBlockSize: parseInt(i.max_block_body_size),
|
|
2578
|
+
maxCollateralInputs: parseInt(i.max_collateral_inputs),
|
|
2579
|
+
maxTxExMem: i.max_execution_units_per_transaction.memory.toString(),
|
|
2580
|
+
maxTxExSteps: i.max_execution_units_per_transaction.steps.toString(),
|
|
2581
|
+
maxTxSize: parseInt(i.max_tx_size),
|
|
2582
|
+
maxValSize: i.max_value_size.toString(),
|
|
2583
|
+
minFeeA: i.min_fee_coefficient,
|
|
2584
|
+
minFeeB: i.min_fee_constant,
|
|
2585
|
+
minPoolCost: i.min_pool_cost.toString(),
|
|
2586
|
+
poolDeposit: i.pool_deposit.toString(),
|
|
2587
|
+
priceMem: t(i.prices.memory),
|
|
2588
|
+
priceStep: t(i.prices.steps)
|
|
2538
2589
|
};
|
|
2539
2590
|
}
|
|
2540
|
-
throw
|
|
2591
|
+
throw h(o);
|
|
2541
2592
|
} catch (o) {
|
|
2542
|
-
throw
|
|
2593
|
+
throw h(o);
|
|
2543
2594
|
}
|
|
2544
2595
|
}
|
|
2545
|
-
throw
|
|
2546
|
-
} catch (
|
|
2547
|
-
throw
|
|
2596
|
+
throw h(s);
|
|
2597
|
+
} catch (s) {
|
|
2598
|
+
throw h(s);
|
|
2548
2599
|
}
|
|
2549
2600
|
}
|
|
2550
2601
|
async fetchTxInfo(e) {
|
|
2551
2602
|
try {
|
|
2552
|
-
const { data: t, status:
|
|
2553
|
-
if (
|
|
2554
|
-
const
|
|
2603
|
+
const { data: t, status: s } = await this._axiosInstance.get(`transactions/${e}`);
|
|
2604
|
+
if (s === 200) {
|
|
2605
|
+
const n = t.data;
|
|
2555
2606
|
return {
|
|
2556
|
-
block:
|
|
2557
|
-
deposit:
|
|
2558
|
-
fees:
|
|
2559
|
-
hash:
|
|
2560
|
-
index:
|
|
2561
|
-
invalidAfter:
|
|
2562
|
-
invalidBefore:
|
|
2563
|
-
slot:
|
|
2564
|
-
size:
|
|
2607
|
+
block: n.block_hash,
|
|
2608
|
+
deposit: n.deposit.toString(),
|
|
2609
|
+
fees: n.fee.toString(),
|
|
2610
|
+
hash: n.tx_hash,
|
|
2611
|
+
index: n.block_tx_index,
|
|
2612
|
+
invalidAfter: n.invalid_hereafter ?? "",
|
|
2613
|
+
invalidBefore: n.invalid_before ?? "",
|
|
2614
|
+
slot: n.block_absolute_slot.toString(),
|
|
2615
|
+
size: n.size - 1
|
|
2565
2616
|
};
|
|
2566
2617
|
}
|
|
2567
|
-
throw
|
|
2618
|
+
throw h(t);
|
|
2568
2619
|
} catch (t) {
|
|
2569
|
-
throw
|
|
2620
|
+
throw h(t);
|
|
2570
2621
|
}
|
|
2571
2622
|
}
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
|
|
2623
|
+
async fetchUTxOs(e) {
|
|
2624
|
+
try {
|
|
2625
|
+
const { data: t, status: s } = await this._axiosInstance.get(`transactions/${e}`);
|
|
2626
|
+
if (s === 200)
|
|
2627
|
+
return t.data.outputs.map(this.toUTxO);
|
|
2628
|
+
throw h(t);
|
|
2629
|
+
} catch (t) {
|
|
2630
|
+
throw h(t);
|
|
2631
|
+
}
|
|
2632
|
+
}
|
|
2633
|
+
onTxConfirmed(e, t, s = 100) {
|
|
2634
|
+
let n = 0;
|
|
2635
|
+
const i = setInterval(() => {
|
|
2636
|
+
n >= s && clearInterval(i), this.fetchTxInfo(e).then((o) => {
|
|
2576
2637
|
this.fetchBlockInfo(o.block).then((c) => {
|
|
2577
|
-
(c == null ? void 0 : c.confirmations) > 0 && (clearInterval(
|
|
2638
|
+
(c == null ? void 0 : c.confirmations) > 0 && (clearInterval(i), t());
|
|
2578
2639
|
}).catch(() => {
|
|
2579
|
-
|
|
2640
|
+
n += 1;
|
|
2580
2641
|
});
|
|
2581
2642
|
}).catch(() => {
|
|
2582
|
-
|
|
2643
|
+
n += 1;
|
|
2583
2644
|
});
|
|
2584
2645
|
}, 5e3);
|
|
2585
2646
|
}
|
|
2586
2647
|
async submitTx(e) {
|
|
2587
2648
|
try {
|
|
2588
|
-
const t = { "Content-Type": "application/cbor" }, { data:
|
|
2589
|
-
if (
|
|
2590
|
-
return
|
|
2591
|
-
throw
|
|
2649
|
+
const t = { "Content-Type": "application/cbor" }, { data: s, status: n } = await this._axiosInstance.post(this.submitUrl, I(e), { headers: t });
|
|
2650
|
+
if (n === 202)
|
|
2651
|
+
return s;
|
|
2652
|
+
throw h(s);
|
|
2592
2653
|
} catch (t) {
|
|
2593
|
-
throw
|
|
2654
|
+
throw h(t);
|
|
2594
2655
|
}
|
|
2595
2656
|
}
|
|
2657
|
+
toUTxO = (e) => {
|
|
2658
|
+
var t, s, n;
|
|
2659
|
+
return {
|
|
2660
|
+
input: {
|
|
2661
|
+
outputIndex: e.index,
|
|
2662
|
+
txHash: e.tx_hash
|
|
2663
|
+
},
|
|
2664
|
+
output: {
|
|
2665
|
+
address: e.address,
|
|
2666
|
+
amount: e.assets.map((i) => ({
|
|
2667
|
+
unit: i.unit,
|
|
2668
|
+
quantity: i.amount.toString()
|
|
2669
|
+
})),
|
|
2670
|
+
dataHash: (t = e.datum) == null ? void 0 : t.hash,
|
|
2671
|
+
plutusData: (s = e.datum) == null ? void 0 : s.bytes,
|
|
2672
|
+
scriptRef: this.resolveScript(e),
|
|
2673
|
+
scriptHash: (n = e.reference_script) == null ? void 0 : n.hash
|
|
2674
|
+
}
|
|
2675
|
+
};
|
|
2676
|
+
};
|
|
2677
|
+
resolveScript = (e) => {
|
|
2678
|
+
if (e.reference_script) {
|
|
2679
|
+
const t = e.reference_script.type === "native" ? e.reference_script.json : {
|
|
2680
|
+
code: e.reference_script.bytes,
|
|
2681
|
+
version: e.reference_script.type.replace("plutusv", "V")
|
|
2682
|
+
};
|
|
2683
|
+
return ut(t).to_hex();
|
|
2684
|
+
} else
|
|
2685
|
+
return;
|
|
2686
|
+
};
|
|
2596
2687
|
}
|
|
2597
|
-
class
|
|
2688
|
+
class br {
|
|
2598
2689
|
static withOneSignature(e) {
|
|
2599
|
-
const t =
|
|
2600
|
-
return
|
|
2690
|
+
const t = M(nt(e));
|
|
2691
|
+
return yt(t).to_hex();
|
|
2601
2692
|
}
|
|
2602
2693
|
static withAtLeastNSignatures(e, t) {
|
|
2603
|
-
const
|
|
2604
|
-
e.forEach((
|
|
2605
|
-
const o =
|
|
2606
|
-
|
|
2694
|
+
const s = a.NativeScripts.new();
|
|
2695
|
+
e.forEach((i) => {
|
|
2696
|
+
const o = M(nt(i));
|
|
2697
|
+
s.add(yt(o));
|
|
2607
2698
|
});
|
|
2608
|
-
const
|
|
2609
|
-
return
|
|
2699
|
+
const n = a.ScriptNOfK.new(t, s);
|
|
2700
|
+
return a.NativeScript.new_script_any(n).to_hex();
|
|
2610
2701
|
}
|
|
2611
2702
|
static withAnySignature(e) {
|
|
2612
|
-
const t =
|
|
2613
|
-
e.forEach((
|
|
2614
|
-
const
|
|
2615
|
-
t.add(
|
|
2703
|
+
const t = a.NativeScripts.new();
|
|
2704
|
+
e.forEach((n) => {
|
|
2705
|
+
const i = M(nt(n));
|
|
2706
|
+
t.add(yt(i));
|
|
2616
2707
|
});
|
|
2617
|
-
const
|
|
2618
|
-
return
|
|
2708
|
+
const s = a.ScriptAny.new(t);
|
|
2709
|
+
return a.NativeScript.new_script_any(s).to_hex();
|
|
2619
2710
|
}
|
|
2620
2711
|
static withAllSignatures(e) {
|
|
2621
|
-
const t =
|
|
2622
|
-
e.forEach((
|
|
2623
|
-
const
|
|
2624
|
-
t.add(
|
|
2712
|
+
const t = a.NativeScripts.new();
|
|
2713
|
+
e.forEach((n) => {
|
|
2714
|
+
const i = M(nt(n));
|
|
2715
|
+
t.add(yt(i));
|
|
2625
2716
|
});
|
|
2626
|
-
const
|
|
2627
|
-
return
|
|
2717
|
+
const s = a.ScriptAll.new(t);
|
|
2718
|
+
return a.NativeScript.new_script_any(s).to_hex();
|
|
2628
2719
|
}
|
|
2629
2720
|
static fromNativeScript(e) {
|
|
2630
|
-
return
|
|
2721
|
+
return kt(e).to_hex();
|
|
2631
2722
|
}
|
|
2632
2723
|
}
|
|
2633
|
-
function
|
|
2634
|
-
var
|
|
2724
|
+
function et(r, e, t, s) {
|
|
2725
|
+
var n = arguments.length, i = n < 3 ? e : s === null ? s = Object.getOwnPropertyDescriptor(e, t) : s, o;
|
|
2635
2726
|
if (typeof Reflect == "object" && typeof Reflect.decorate == "function")
|
|
2636
|
-
|
|
2727
|
+
i = Reflect.decorate(r, e, t, s);
|
|
2637
2728
|
else
|
|
2638
|
-
for (var c =
|
|
2639
|
-
(o =
|
|
2640
|
-
return
|
|
2729
|
+
for (var c = r.length - 1; c >= 0; c--)
|
|
2730
|
+
(o = r[c]) && (i = (n < 3 ? o(i) : n > 3 ? o(e, t, i) : o(e, t)) || i);
|
|
2731
|
+
return n > 3 && i && Object.defineProperty(e, t, i), i;
|
|
2641
2732
|
}
|
|
2642
|
-
const Xs = (
|
|
2733
|
+
const Xs = (r) => class extends r {
|
|
2643
2734
|
__visits = [];
|
|
2644
|
-
},
|
|
2645
|
-
const
|
|
2646
|
-
t.value = function(...
|
|
2647
|
-
const
|
|
2648
|
-
return this.__visits && this.__visits.push(e),
|
|
2735
|
+
}, st = () => function(r, e, t) {
|
|
2736
|
+
const s = t.value;
|
|
2737
|
+
t.value = function(...n) {
|
|
2738
|
+
const i = s.call(this, ...n);
|
|
2739
|
+
return this.__visits && this.__visits.push(e), i;
|
|
2649
2740
|
};
|
|
2650
2741
|
};
|
|
2651
2742
|
let $ = class {
|
|
@@ -2663,29 +2754,29 @@ let $ = class {
|
|
|
2663
2754
|
_txInputsBuilder;
|
|
2664
2755
|
_txWithdrawals;
|
|
2665
2756
|
constructor(e = {}) {
|
|
2666
|
-
this._era = e.era, this._initiator = e.initiator, this._mintBuilder =
|
|
2757
|
+
this._era = e.era, this._initiator = e.initiator, this._mintBuilder = a.MintBuilder.new(), this._protocolParameters = e.parameters ?? P, this._txBuilder = Ft(e.parameters), this._txCertificates = a.Certificates.new(), this._txInputsBuilder = a.TxInputsBuilder.new(), this._txWithdrawals = a.Withdrawals.new();
|
|
2667
2758
|
}
|
|
2668
2759
|
static maskMetadata(e, t = "BABBAGE") {
|
|
2669
|
-
var
|
|
2670
|
-
const
|
|
2671
|
-
if (
|
|
2672
|
-
const o =
|
|
2673
|
-
for (let u = 0; u <
|
|
2674
|
-
const
|
|
2675
|
-
o.insert(
|
|
2760
|
+
var i;
|
|
2761
|
+
const s = Y(e), n = (i = s.auxiliary_data()) == null ? void 0 : i.metadata();
|
|
2762
|
+
if (n !== void 0) {
|
|
2763
|
+
const o = a.GeneralTransactionMetadata.new();
|
|
2764
|
+
for (let u = 0; u < n.len(); u += 1) {
|
|
2765
|
+
const d = n.keys().get(u), A = n.get(d);
|
|
2766
|
+
o.insert(d, a.TransactionMetadatum.from_hex("0".repeat(((A == null ? void 0 : A.to_hex()) ?? "").length)));
|
|
2676
2767
|
}
|
|
2677
|
-
const c =
|
|
2678
|
-
return c !== void 0 && (c.set_metadata(o), c.set_prefer_alonzo_format(t === "ALONZO")),
|
|
2768
|
+
const c = s.auxiliary_data();
|
|
2769
|
+
return c !== void 0 && (c.set_metadata(o), c.set_prefer_alonzo_format(t === "ALONZO")), a.Transaction.new(s.body(), s.witness_set(), c).to_hex();
|
|
2679
2770
|
}
|
|
2680
2771
|
return e;
|
|
2681
2772
|
}
|
|
2682
2773
|
static readMetadata(e) {
|
|
2683
|
-
var
|
|
2684
|
-
return ((
|
|
2774
|
+
var s, n;
|
|
2775
|
+
return ((n = (s = Y(e).auxiliary_data()) == null ? void 0 : s.metadata()) == null ? void 0 : n.to_hex()) ?? "";
|
|
2685
2776
|
}
|
|
2686
|
-
static writeMetadata(e, t,
|
|
2687
|
-
const
|
|
2688
|
-
return
|
|
2777
|
+
static writeMetadata(e, t, s = "BABBAGE") {
|
|
2778
|
+
const n = Y(e), i = n.auxiliary_data() ?? a.AuxiliaryData.new();
|
|
2779
|
+
return i.set_metadata(a.GeneralTransactionMetadata.from_hex(t)), i.set_prefer_alonzo_format(s === "ALONZO"), a.Transaction.new(n.body(), n.witness_set(), i).to_hex();
|
|
2689
2780
|
}
|
|
2690
2781
|
get size() {
|
|
2691
2782
|
return this._txBuilder.full_size();
|
|
@@ -2697,40 +2788,40 @@ let $ = class {
|
|
|
2697
2788
|
throw new Error(`[Transaction] An error occurred during build: ${e}.`);
|
|
2698
2789
|
}
|
|
2699
2790
|
}
|
|
2700
|
-
burnAsset(e, t,
|
|
2701
|
-
const
|
|
2702
|
-
return this._mintBuilder.add_asset(
|
|
2791
|
+
burnAsset(e, t, s) {
|
|
2792
|
+
const n = this._totalBurns.has(t.unit) ? a.BigNum.from_str(this._totalBurns.get(t.unit) ?? "0").checked_add(a.BigNum.from_str(t.quantity)).to_str() : t.quantity;
|
|
2793
|
+
return this._mintBuilder.add_asset(ye(e, s), a.AssetName.new(I(t.unit.slice(F))), a.Int.new_negative(a.BigNum.from_str(t.quantity))), this._totalBurns.set(t.unit, n), this;
|
|
2703
2794
|
}
|
|
2704
2795
|
delegateStake(e, t) {
|
|
2705
|
-
const
|
|
2706
|
-
return this._txCertificates.add(
|
|
2796
|
+
const s = a.Certificate.new_stake_delegation(a.StakeDelegation.new(a.StakeCredential.from_keyhash(M(lt(e))), a.Ed25519KeyHash.from_bech32(t)));
|
|
2797
|
+
return this._txCertificates.add(s), this;
|
|
2707
2798
|
}
|
|
2708
2799
|
deregisterStake(e) {
|
|
2709
|
-
const t =
|
|
2800
|
+
const t = a.Certificate.new_stake_deregistration(a.StakeDeregistration.new(a.StakeCredential.from_keyhash(M(lt(e)))));
|
|
2710
2801
|
return this._txCertificates.add(t), this;
|
|
2711
2802
|
}
|
|
2712
|
-
mintAsset(e, t,
|
|
2713
|
-
var
|
|
2714
|
-
const
|
|
2715
|
-
const f = typeof
|
|
2803
|
+
mintAsset(e, t, s) {
|
|
2804
|
+
var d, A;
|
|
2805
|
+
const n = (l, g) => {
|
|
2806
|
+
const f = typeof l == "string" ? vt(l).hash().to_hex() : i(l).hash().to_hex(), y = S(g.assetName);
|
|
2716
2807
|
return {
|
|
2717
2808
|
unit: `${f}${y}`,
|
|
2718
|
-
quantity:
|
|
2809
|
+
quantity: g.assetQuantity
|
|
2719
2810
|
};
|
|
2720
|
-
},
|
|
2721
|
-
if ("code" in
|
|
2722
|
-
return
|
|
2723
|
-
const
|
|
2724
|
-
if (
|
|
2725
|
-
const f =
|
|
2811
|
+
}, i = (l) => {
|
|
2812
|
+
if ("code" in l)
|
|
2813
|
+
return ct(l.code, l.version);
|
|
2814
|
+
const g = H(l);
|
|
2815
|
+
if (g.output().has_script_ref()) {
|
|
2816
|
+
const f = g.output().script_ref();
|
|
2726
2817
|
if (f.is_plutus_script()) {
|
|
2727
|
-
const y =
|
|
2728
|
-
return
|
|
2818
|
+
const y = Ve(f);
|
|
2819
|
+
return ct(y.code, y.version);
|
|
2729
2820
|
}
|
|
2730
2821
|
}
|
|
2731
|
-
throw new Error(`No plutus script reference found in UTxO: ${
|
|
2732
|
-
}, o =
|
|
2733
|
-
return this._mintBuilder.add_asset(
|
|
2822
|
+
throw new Error(`No plutus script reference found in UTxO: ${g.input().transaction_id().to_hex()}`);
|
|
2823
|
+
}, o = n(e, t), u = a.BigNum.from_str(((d = this._totalMints.get(o.unit)) == null ? void 0 : d.assetQuantity) ?? "0").checked_add(a.BigNum.from_str(o.quantity));
|
|
2824
|
+
return this._mintBuilder.add_asset(ye(e, s), a.AssetName.new(I(S(t.assetName))), a.Int.new(a.BigNum.from_str(o.quantity))), this._recipients.has(t.recipient) ? (A = this._recipients.get(t.recipient)) == null || A.push(o) : this._recipients.set(t.recipient, [o]), this._totalMints.set(o.unit, {
|
|
2734
2825
|
...t,
|
|
2735
2826
|
assetQuantity: u.to_str()
|
|
2736
2827
|
}), this;
|
|
@@ -2738,96 +2829,96 @@ let $ = class {
|
|
|
2738
2829
|
redeemValue(e) {
|
|
2739
2830
|
const t = {
|
|
2740
2831
|
tag: "SPEND",
|
|
2741
|
-
budget:
|
|
2832
|
+
budget: At,
|
|
2742
2833
|
index: this._txInputsBuilder.inputs().len(),
|
|
2743
2834
|
data: {
|
|
2744
2835
|
alternative: 0,
|
|
2745
2836
|
fields: []
|
|
2746
2837
|
},
|
|
2747
2838
|
...e.redeemer
|
|
2748
|
-
},
|
|
2749
|
-
return this._txInputsBuilder.add_plutus_script_input(
|
|
2839
|
+
}, s = H(e.value), n = a.PlutusWitness.new_with_ref(Ye(e.script), Ws(e.datum), Oe(t));
|
|
2840
|
+
return this._txInputsBuilder.add_plutus_script_input(n, s.input(), s.output().amount()), this;
|
|
2750
2841
|
}
|
|
2751
2842
|
registerStake(e) {
|
|
2752
|
-
const t =
|
|
2843
|
+
const t = a.Certificate.new_stake_registration(a.StakeRegistration.new(a.StakeCredential.from_keyhash(M(lt(e)))));
|
|
2753
2844
|
return this._txCertificates.add(t), this;
|
|
2754
2845
|
}
|
|
2755
2846
|
registerPool(e) {
|
|
2756
|
-
const t =
|
|
2847
|
+
const t = a.Certificate.new_pool_registration(a.PoolRegistration.new($s(e)));
|
|
2757
2848
|
return this._txCertificates.add(t), this;
|
|
2758
2849
|
}
|
|
2759
2850
|
retirePool(e, t) {
|
|
2760
|
-
const
|
|
2761
|
-
return this._txCertificates.add(
|
|
2851
|
+
const s = a.Certificate.new_pool_retirement(a.PoolRetirement.new(a.Ed25519KeyHash.from_bech32(e), t));
|
|
2852
|
+
return this._txCertificates.add(s), this;
|
|
2762
2853
|
}
|
|
2763
2854
|
sendAssets(e, t) {
|
|
2764
|
-
const
|
|
2765
|
-
if (
|
|
2855
|
+
const s = Z(t), n = s.multiasset();
|
|
2856
|
+
if (s.is_zero() || n === void 0)
|
|
2766
2857
|
return this;
|
|
2767
|
-
const
|
|
2858
|
+
const i = xt(e).next(), o = s.coin().is_zero() ? i.with_asset_and_min_required_coin_by_utxo_cost(n, Ht(this._protocolParameters.coinsPerUTxOSize)).build() : i.with_coin_and_asset(s.coin(), n).build();
|
|
2768
2859
|
return t.forEach((c) => {
|
|
2769
2860
|
this.setTxOutput(c);
|
|
2770
2861
|
}), this._txBuilder.add_output(o), this;
|
|
2771
2862
|
}
|
|
2772
2863
|
sendLovelace(e, t) {
|
|
2773
|
-
const
|
|
2864
|
+
const n = xt(e).next().with_coin(a.BigNum.from_str(t)).build();
|
|
2774
2865
|
return this.setTxOutput({
|
|
2775
2866
|
unit: "lovelace",
|
|
2776
2867
|
quantity: t
|
|
2777
|
-
}), this._txBuilder.add_output(
|
|
2868
|
+
}), this._txBuilder.add_output(n), this;
|
|
2778
2869
|
}
|
|
2779
|
-
sendToken(e, t,
|
|
2870
|
+
sendToken(e, t, s) {
|
|
2780
2871
|
return this.sendAssets(e, [{
|
|
2781
|
-
quantity:
|
|
2872
|
+
quantity: s,
|
|
2782
2873
|
unit: as[t]
|
|
2783
2874
|
}]), this;
|
|
2784
2875
|
}
|
|
2785
2876
|
sendValue(e, t) {
|
|
2786
|
-
const
|
|
2877
|
+
const s = Z(t.output.amount), i = xt(e).next().with_value(s).build();
|
|
2787
2878
|
return t.output.amount.forEach((o) => {
|
|
2788
2879
|
this.setTxOutput(o);
|
|
2789
|
-
}), this._txBuilder.add_output(
|
|
2880
|
+
}), this._txBuilder.add_output(i), this;
|
|
2790
2881
|
}
|
|
2791
2882
|
setChangeAddress(e) {
|
|
2792
|
-
return this._changeAddress =
|
|
2883
|
+
return this._changeAddress = K(e), this;
|
|
2793
2884
|
}
|
|
2794
2885
|
setCollateral(e) {
|
|
2795
|
-
const t =
|
|
2886
|
+
const t = xe(e);
|
|
2796
2887
|
return this._txBuilder.set_collateral(t), this;
|
|
2797
2888
|
}
|
|
2798
2889
|
setMetadata(e, t) {
|
|
2799
|
-
return this._txBuilder.add_json_metadatum_with_schema(
|
|
2890
|
+
return this._txBuilder.add_json_metadatum_with_schema(a.BigNum.from_str(e.toString()), JSON.stringify(t), a.MetadataJsonSchema.NoConversions), this;
|
|
2800
2891
|
}
|
|
2801
2892
|
setRequiredSigners(e) {
|
|
2802
|
-
return Array.from(new Set(e.map((
|
|
2803
|
-
this._txBuilder.add_required_signer(
|
|
2893
|
+
return Array.from(new Set(e.map((s) => s.startsWith("addr") ? nt(s) : lt(s)).map((s) => M(s)))).forEach((s) => {
|
|
2894
|
+
this._txBuilder.add_required_signer(s);
|
|
2804
2895
|
}), this;
|
|
2805
2896
|
}
|
|
2806
2897
|
setTimeToStart(e) {
|
|
2807
|
-
return this._txBuilder.set_validity_start_interval_bignum(
|
|
2898
|
+
return this._txBuilder.set_validity_start_interval_bignum(a.BigNum.from_str(e)), this;
|
|
2808
2899
|
}
|
|
2809
2900
|
setTimeToExpire(e) {
|
|
2810
|
-
return this._txBuilder.set_ttl_bignum(
|
|
2901
|
+
return this._txBuilder.set_ttl_bignum(a.BigNum.from_str(e)), this;
|
|
2811
2902
|
}
|
|
2812
2903
|
setTxInputs(e) {
|
|
2813
|
-
return e.map((t) =>
|
|
2904
|
+
return e.map((t) => H(t)).forEach((t) => {
|
|
2814
2905
|
this._txInputsBuilder.add_input(t.output().address(), t.input(), t.output().amount());
|
|
2815
2906
|
}), this;
|
|
2816
2907
|
}
|
|
2817
2908
|
setTxRefInputs(e) {
|
|
2818
|
-
return e.map((t) =>
|
|
2909
|
+
return e.map((t) => H(t)).forEach((t) => {
|
|
2819
2910
|
this._txBuilder.add_reference_input(t.input());
|
|
2820
2911
|
}), this;
|
|
2821
2912
|
}
|
|
2822
2913
|
withdrawRewards(e, t) {
|
|
2823
|
-
const
|
|
2824
|
-
return
|
|
2914
|
+
const s = Fe(e);
|
|
2915
|
+
return s !== void 0 && this._txWithdrawals.insert(s, a.BigNum.from_str(t)), this;
|
|
2825
2916
|
}
|
|
2826
2917
|
async addBurnInputsIfNeeded() {
|
|
2827
2918
|
if (this._initiator && this._totalBurns.size > 0 && this.notVisited("setTxInputs")) {
|
|
2828
2919
|
const e = await this._initiator.getUsedUTxOs();
|
|
2829
|
-
|
|
2830
|
-
this._txInputsBuilder.add_input(
|
|
2920
|
+
os(this._totalBurns, e.map((s) => bt(s))).map((s) => H(s)).forEach((s) => {
|
|
2921
|
+
this._txInputsBuilder.add_input(s.output().address(), s.input(), s.output().amount());
|
|
2831
2922
|
});
|
|
2832
2923
|
}
|
|
2833
2924
|
}
|
|
@@ -2841,68 +2932,68 @@ let $ = class {
|
|
|
2841
2932
|
async addCollateralIfNeeded() {
|
|
2842
2933
|
if (this._initiator && this.notVisited("setCollateral")) {
|
|
2843
2934
|
const e = await this._initiator.getUsedCollateral();
|
|
2844
|
-
this._txBuilder.set_collateral(
|
|
2935
|
+
this._txBuilder.set_collateral(xe(e));
|
|
2845
2936
|
}
|
|
2846
2937
|
}
|
|
2847
2938
|
async addRequiredSignersIfNeeded() {
|
|
2848
2939
|
if (this._initiator && this.notVisited("setRequiredSigners")) {
|
|
2849
|
-
const e = await this._initiator.getUsedAddress(), t =
|
|
2850
|
-
this._txBuilder.add_required_signer(
|
|
2940
|
+
const e = await this._initiator.getUsedAddress(), t = nt(e.to_bech32());
|
|
2941
|
+
this._txBuilder.add_required_signer(M(t));
|
|
2851
2942
|
}
|
|
2852
2943
|
}
|
|
2853
2944
|
async addTxInputsAsNeeded() {
|
|
2854
2945
|
if (this.notVisited("setTxInputs")) {
|
|
2855
2946
|
const e = await this.filterAvailableUTxOs();
|
|
2856
|
-
|
|
2857
|
-
this._txInputsBuilder.add_input(
|
|
2947
|
+
is(this._txOutputs, e.map((s) => bt(s))).map((s) => H(s)).forEach((s) => {
|
|
2948
|
+
this._txInputsBuilder.add_input(s.output().address(), s.input(), s.output().amount());
|
|
2858
2949
|
});
|
|
2859
2950
|
}
|
|
2860
2951
|
if (this._txBuilder.set_inputs(this._txInputsBuilder), (this._mintBuilder.has_native_scripts() || this._mintBuilder.has_plutus_scripts()) && this._txBuilder.set_mint_builder(this._mintBuilder), this._txCertificates.len() > 0 && this._txBuilder.set_certs(this._txCertificates), this._txWithdrawals.len() > 0 && this._txBuilder.set_withdrawals(this._txWithdrawals), this._txBuilder.get_mint_builder() || this.notVisited("redeemValue") === !1) {
|
|
2861
|
-
const e = this._era !== void 0 ?
|
|
2952
|
+
const e = this._era !== void 0 ? Zt[this._era] : Zt.BABBAGE;
|
|
2862
2953
|
this._txBuilder.calc_script_data_hash(e);
|
|
2863
2954
|
}
|
|
2864
2955
|
}
|
|
2865
2956
|
async forgeAssetsIfNeeded() {
|
|
2866
|
-
const e = (t,
|
|
2867
|
-
const
|
|
2957
|
+
const e = (t, s) => {
|
|
2958
|
+
const n = t.data.assetName, i = t.data.metadata, o = t.unit.slice(0, F);
|
|
2868
2959
|
if (t.data.label === "777")
|
|
2869
|
-
return
|
|
2870
|
-
if (
|
|
2871
|
-
const { [o]: c, ...u } =
|
|
2872
|
-
[
|
|
2960
|
+
return i;
|
|
2961
|
+
if (s && s[o]) {
|
|
2962
|
+
const { [o]: c, ...u } = s, d = {
|
|
2963
|
+
[n]: i,
|
|
2873
2964
|
...c
|
|
2874
2965
|
};
|
|
2875
2966
|
return {
|
|
2876
2967
|
[o]: {
|
|
2877
|
-
...
|
|
2968
|
+
...d
|
|
2878
2969
|
},
|
|
2879
2970
|
...u
|
|
2880
2971
|
};
|
|
2881
2972
|
}
|
|
2882
|
-
return
|
|
2973
|
+
return s !== void 0 ? {
|
|
2883
2974
|
[o]: {
|
|
2884
|
-
[
|
|
2975
|
+
[n]: i
|
|
2885
2976
|
},
|
|
2886
|
-
...
|
|
2977
|
+
...s
|
|
2887
2978
|
} : {
|
|
2888
|
-
[o]: { [
|
|
2979
|
+
[o]: { [n]: i }
|
|
2889
2980
|
};
|
|
2890
2981
|
};
|
|
2891
2982
|
await this.addBurnInputsIfNeeded(), Array.from(this._totalMints, (t) => ({
|
|
2892
2983
|
unit: t[0],
|
|
2893
2984
|
data: t[1]
|
|
2894
|
-
})).reduce((t,
|
|
2895
|
-
this._txBuilder.add_json_metadatum(
|
|
2985
|
+
})).reduce((t, s) => t.set(s.data.label, e(s, t.get(s.data.label))), /* @__PURE__ */ new Map()).forEach((t, s) => {
|
|
2986
|
+
this._txBuilder.add_json_metadatum(a.BigNum.from_str(s), JSON.stringify(t));
|
|
2896
2987
|
}), this.addMintOutputs();
|
|
2897
2988
|
}
|
|
2898
2989
|
async filterAvailableUTxOs(e = []) {
|
|
2899
|
-
return this._initiator === void 0 ? [] : (await this._initiator.getUsedUTxOs()).filter((
|
|
2990
|
+
return this._initiator === void 0 ? [] : (await this._initiator.getUsedUTxOs()).filter((s) => e.find((n) => n.input.txHash === s.input().transaction_id().to_hex()) === void 0);
|
|
2900
2991
|
}
|
|
2901
2992
|
addMintOutputs() {
|
|
2902
2993
|
this._recipients.forEach((e, t) => {
|
|
2903
|
-
const
|
|
2904
|
-
if (
|
|
2905
|
-
const o =
|
|
2994
|
+
const n = Z(e).multiasset();
|
|
2995
|
+
if (n !== void 0) {
|
|
2996
|
+
const o = xt(t).next().with_asset_and_min_required_coin_by_utxo_cost(n, Ht(this._protocolParameters.coinsPerUTxOSize)).build();
|
|
2906
2997
|
this._txBuilder.add_output(o);
|
|
2907
2998
|
}
|
|
2908
2999
|
});
|
|
@@ -2911,286 +3002,724 @@ let $ = class {
|
|
|
2911
3002
|
return this.__visits.includes(e) === !1;
|
|
2912
3003
|
}
|
|
2913
3004
|
setTxOutput(e) {
|
|
2914
|
-
const
|
|
2915
|
-
this._txOutputs.set(e.unit,
|
|
3005
|
+
const s = a.BigNum.from_str(this._txOutputs.get(e.unit) ?? "0").checked_add(a.BigNum.from_str(e.quantity)).to_str();
|
|
3006
|
+
this._txOutputs.set(e.unit, s);
|
|
2916
3007
|
}
|
|
2917
3008
|
};
|
|
2918
|
-
|
|
2919
|
-
|
|
3009
|
+
et([
|
|
3010
|
+
st()
|
|
2920
3011
|
], $.prototype, "mintAsset", null);
|
|
2921
|
-
|
|
2922
|
-
|
|
3012
|
+
et([
|
|
3013
|
+
st()
|
|
2923
3014
|
], $.prototype, "redeemValue", null);
|
|
2924
|
-
|
|
2925
|
-
|
|
3015
|
+
et([
|
|
3016
|
+
st()
|
|
2926
3017
|
], $.prototype, "sendAssets", null);
|
|
2927
|
-
|
|
2928
|
-
|
|
3018
|
+
et([
|
|
3019
|
+
st()
|
|
2929
3020
|
], $.prototype, "sendValue", null);
|
|
2930
|
-
|
|
2931
|
-
|
|
3021
|
+
et([
|
|
3022
|
+
st()
|
|
2932
3023
|
], $.prototype, "setCollateral", null);
|
|
2933
|
-
|
|
2934
|
-
|
|
3024
|
+
et([
|
|
3025
|
+
st()
|
|
2935
3026
|
], $.prototype, "setRequiredSigners", null);
|
|
2936
|
-
|
|
2937
|
-
|
|
3027
|
+
et([
|
|
3028
|
+
st()
|
|
2938
3029
|
], $.prototype, "setTxInputs", null);
|
|
2939
|
-
$ =
|
|
3030
|
+
$ = et([
|
|
2940
3031
|
Xs
|
|
2941
3032
|
], $);
|
|
2942
|
-
class
|
|
3033
|
+
class Zs {
|
|
3034
|
+
txHex = "";
|
|
3035
|
+
txBuilder = Ft();
|
|
3036
|
+
_protocolParams = P;
|
|
3037
|
+
txOutput;
|
|
3038
|
+
addingScriptInput = !1;
|
|
3039
|
+
addingPlutusMint = !1;
|
|
3040
|
+
isHydra = !1;
|
|
3041
|
+
meshTxBuilderBody = {
|
|
3042
|
+
inputs: [],
|
|
3043
|
+
outputs: [],
|
|
3044
|
+
collaterals: [],
|
|
3045
|
+
requiredSignatures: [],
|
|
3046
|
+
referenceInputs: [],
|
|
3047
|
+
mints: [],
|
|
3048
|
+
changeAddress: "",
|
|
3049
|
+
metadata: [],
|
|
3050
|
+
validityRange: {},
|
|
3051
|
+
signingKey: []
|
|
3052
|
+
};
|
|
3053
|
+
mintItem;
|
|
3054
|
+
txInQueueItem;
|
|
3055
|
+
collateralQueueItem;
|
|
3056
|
+
refScriptTxInQueueItem;
|
|
3057
|
+
completeSync = (e) => (e && (this.meshTxBuilderBody = e), this.serializeTxBody(this.meshTxBuilderBody));
|
|
3058
|
+
completeSigning = () => {
|
|
3059
|
+
const { signingKey: e } = this.meshTxBuilderBody;
|
|
3060
|
+
return e.length > 0 && this.addAllSigningKeys(e), this.txHex;
|
|
3061
|
+
};
|
|
3062
|
+
serializeTxBody = (e) => {
|
|
3063
|
+
const { inputs: t, outputs: s, collaterals: n, referenceInputs: i, mints: o, changeAddress: c, validityRange: u, requiredSignatures: d, metadata: A } = e;
|
|
3064
|
+
return this.isHydra ? this.protocolParams({
|
|
3065
|
+
minFeeA: 0,
|
|
3066
|
+
minFeeB: 0,
|
|
3067
|
+
priceMem: 0,
|
|
3068
|
+
priceStep: 0,
|
|
3069
|
+
collateralPercent: 0,
|
|
3070
|
+
coinsPerUTxOSize: "0"
|
|
3071
|
+
}) : this.protocolParams({}), this.meshTxBuilderBody.mints.sort((l, g) => l.policyId.localeCompare(g.policyId)), this.meshTxBuilderBody.inputs.sort((l, g) => l.txIn.txHash === g.txIn.txHash ? l.txIn.txIndex - g.txIn.txIndex : l.txIn.txHash.localeCompare(g.txIn.txHash)), this.addAllInputs(t), this.addAllOutputs(s), this.addAllCollaterals(n), this.addAllReferenceInputs(i), this.addAllMints(o), this.addValidityRange(u), this.addAllRequiredSignatures(d), this.addAllMetadata(A), this.addCostModels(), c && this.addChange(c), this.buildTx(), this;
|
|
3072
|
+
};
|
|
3073
|
+
txIn = (e, t, s, n) => (this.txInQueueItem && this.queueInput(), this.addingScriptInput ? this.txInQueueItem = {
|
|
3074
|
+
type: "Script",
|
|
3075
|
+
txIn: {
|
|
3076
|
+
txHash: e,
|
|
3077
|
+
txIndex: t,
|
|
3078
|
+
amount: s,
|
|
3079
|
+
address: n
|
|
3080
|
+
},
|
|
3081
|
+
scriptTxIn: {}
|
|
3082
|
+
} : this.txInQueueItem = {
|
|
3083
|
+
type: "PubKey",
|
|
3084
|
+
txIn: {
|
|
3085
|
+
txHash: e,
|
|
3086
|
+
txIndex: t,
|
|
3087
|
+
amount: s,
|
|
3088
|
+
address: n
|
|
3089
|
+
}
|
|
3090
|
+
}, this.addingScriptInput = !1, this);
|
|
3091
|
+
txInScript = (e) => {
|
|
3092
|
+
if (!this.txInQueueItem)
|
|
3093
|
+
throw Error("Undefined input");
|
|
3094
|
+
if (this.txInQueueItem.type === "PubKey")
|
|
3095
|
+
throw Error("Datum value attempted to be called a non script input");
|
|
3096
|
+
this.txInQueueItem.scriptTxIn.scriptSource = {
|
|
3097
|
+
type: "Provided",
|
|
3098
|
+
scriptCbor: e
|
|
3099
|
+
};
|
|
3100
|
+
};
|
|
3101
|
+
txInDatumValue = (e) => {
|
|
3102
|
+
if (!this.txInQueueItem)
|
|
3103
|
+
throw Error("Undefined input");
|
|
3104
|
+
if (this.txInQueueItem.type === "PubKey")
|
|
3105
|
+
throw Error("Datum value attempted to be called a non script input");
|
|
3106
|
+
return this.txInQueueItem.scriptTxIn.datumSource = {
|
|
3107
|
+
type: "Provided",
|
|
3108
|
+
data: e
|
|
3109
|
+
}, this;
|
|
3110
|
+
};
|
|
3111
|
+
txInInlineDatumPresent = () => {
|
|
3112
|
+
if (!this.txInQueueItem)
|
|
3113
|
+
throw Error("Undefined input");
|
|
3114
|
+
if (this.txInQueueItem.type === "PubKey")
|
|
3115
|
+
throw Error("Inline datum present attempted to be called a non script input");
|
|
3116
|
+
const { txHash: e, txIndex: t } = this.txInQueueItem.txIn;
|
|
3117
|
+
return e && t.toString() && (this.txInQueueItem.scriptTxIn.datumSource = {
|
|
3118
|
+
type: "Inline",
|
|
3119
|
+
txHash: e,
|
|
3120
|
+
txIndex: t
|
|
3121
|
+
}), this;
|
|
3122
|
+
};
|
|
3123
|
+
txInRedeemerValue = (e, t = At) => {
|
|
3124
|
+
if (!this.txInQueueItem)
|
|
3125
|
+
throw Error("Undefined input");
|
|
3126
|
+
if (this.txInQueueItem.type === "PubKey")
|
|
3127
|
+
throw Error("Spending tx in reference redeemer attempted to be called a non script input");
|
|
3128
|
+
return this.txInQueueItem.scriptTxIn.redeemer = {
|
|
3129
|
+
data: e,
|
|
3130
|
+
exUnits: t
|
|
3131
|
+
}, this;
|
|
3132
|
+
};
|
|
3133
|
+
txOut = (e, t) => (this.txOutput && (this.meshTxBuilderBody.outputs.push(this.txOutput), this.txOutput = void 0), this.txOutput = {
|
|
3134
|
+
address: e,
|
|
3135
|
+
amount: t
|
|
3136
|
+
}, this);
|
|
3137
|
+
txOutDatumHashValue = (e) => (this.txOutput && (this.txOutput.datum = {
|
|
3138
|
+
type: "Hash",
|
|
3139
|
+
data: e
|
|
3140
|
+
}), this);
|
|
3141
|
+
txOutInlineDatumValue = (e) => (this.txOutput && (this.txOutput.datum = {
|
|
3142
|
+
type: "Inline",
|
|
3143
|
+
data: e
|
|
3144
|
+
}), this);
|
|
3145
|
+
txOutReferenceScript = (e) => (this.txOutput && (this.txOutput.referenceScript = e), this);
|
|
3146
|
+
spendingPlutusScriptV2 = () => (this.addingScriptInput = !0, this);
|
|
3147
|
+
spendingTxInReference = (e, t, s) => {
|
|
3148
|
+
if (!this.txInQueueItem)
|
|
3149
|
+
throw Error("Undefined input");
|
|
3150
|
+
if (this.txInQueueItem.type === "PubKey")
|
|
3151
|
+
throw Error("Spending tx in reference attempted to be called a non script input");
|
|
3152
|
+
return this.txInQueueItem.scriptTxIn.scriptSource = {
|
|
3153
|
+
type: "Inline",
|
|
3154
|
+
txInInfo: {
|
|
3155
|
+
txHash: e,
|
|
3156
|
+
txIndex: t,
|
|
3157
|
+
spendingScriptHash: s
|
|
3158
|
+
}
|
|
3159
|
+
}, this;
|
|
3160
|
+
};
|
|
3161
|
+
spendingReferenceTxInInlineDatumPresent = () => (this.txInInlineDatumPresent(), this);
|
|
3162
|
+
spendingReferenceTxInRedeemerValue = (e, t = At) => (this.txInRedeemerValue(e, t), this);
|
|
3163
|
+
readOnlyTxInReference = (e, t) => (this.meshTxBuilderBody.referenceInputs.push({ txHash: e, txIndex: t }), this);
|
|
3164
|
+
mintPlutusScriptV2 = () => (this.addingPlutusMint = !0, this);
|
|
3165
|
+
mint = (e, t, s) => (this.mintItem && this.queueMint(), this.mintItem = {
|
|
3166
|
+
type: this.addingPlutusMint ? "Plutus" : "Native",
|
|
3167
|
+
policyId: t,
|
|
3168
|
+
assetName: s,
|
|
3169
|
+
amount: e
|
|
3170
|
+
}, this.addingPlutusMint = !1, this);
|
|
3171
|
+
mintingScript = (e) => {
|
|
3172
|
+
if (!this.mintItem)
|
|
3173
|
+
throw Error("Undefined mint");
|
|
3174
|
+
if (!this.mintItem.type)
|
|
3175
|
+
throw Error("Mint information missing");
|
|
3176
|
+
return this.mintItem.scriptSource = { type: "Provided", cbor: e }, this;
|
|
3177
|
+
};
|
|
3178
|
+
mintTxInReference = (e, t) => {
|
|
3179
|
+
if (!this.mintItem)
|
|
3180
|
+
throw Error("Undefined mint");
|
|
3181
|
+
if (!this.mintItem.type)
|
|
3182
|
+
throw Error("Mint information missing");
|
|
3183
|
+
if (this.mintItem.type == "Native")
|
|
3184
|
+
throw Error("Mint tx in reference can only be used on plutus script tokens");
|
|
3185
|
+
if (!this.mintItem.policyId)
|
|
3186
|
+
throw Error("PolicyId information missing from mint asset");
|
|
3187
|
+
return this.mintItem.scriptSource = {
|
|
3188
|
+
type: "Reference Script",
|
|
3189
|
+
txHash: e,
|
|
3190
|
+
txIndex: t
|
|
3191
|
+
}, this;
|
|
3192
|
+
};
|
|
3193
|
+
mintReferenceTxInRedeemerValue = (e, t = At) => {
|
|
3194
|
+
if (!this.mintItem)
|
|
3195
|
+
throw Error("Undefined mint");
|
|
3196
|
+
if (this.mintItem.type == "Native")
|
|
3197
|
+
throw Error("Mint tx in reference can only be used on plutus script tokens");
|
|
3198
|
+
if (this.mintItem.type == "Plutus") {
|
|
3199
|
+
if (!this.mintItem.policyId)
|
|
3200
|
+
throw Error("PolicyId information missing from mint asset");
|
|
3201
|
+
this.mintItem.redeemer = {
|
|
3202
|
+
data: e,
|
|
3203
|
+
exUnits: t
|
|
3204
|
+
};
|
|
3205
|
+
}
|
|
3206
|
+
return this;
|
|
3207
|
+
};
|
|
3208
|
+
mintRedeemerValue = (e, t) => (this.mintReferenceTxInRedeemerValue(e, t), this);
|
|
3209
|
+
requiredSignerHash = (e) => (this.meshTxBuilderBody.requiredSignatures.push(e), this);
|
|
3210
|
+
txInCollateral = (e, t, s, n) => (this.collateralQueueItem && this.meshTxBuilderBody.collaterals.push(this.collateralQueueItem), this.collateralQueueItem = {
|
|
3211
|
+
type: "PubKey",
|
|
3212
|
+
txIn: {
|
|
3213
|
+
txHash: e,
|
|
3214
|
+
txIndex: t,
|
|
3215
|
+
amount: s,
|
|
3216
|
+
address: n
|
|
3217
|
+
}
|
|
3218
|
+
}, this);
|
|
3219
|
+
changeAddress = (e) => (this.meshTxBuilderBody.changeAddress = e, this);
|
|
3220
|
+
invalidBefore = (e) => (this.meshTxBuilderBody.validityRange.invalidBefore = e, this);
|
|
3221
|
+
invalidHereafter = (e) => (this.meshTxBuilderBody.validityRange.invalidHereafter = e, this);
|
|
3222
|
+
metadataValue = (e, t) => (this.meshTxBuilderBody.metadata.push({ tag: e, metadata: t }), this);
|
|
3223
|
+
protocolParams = (e) => {
|
|
3224
|
+
const t = { ...P, ...e };
|
|
3225
|
+
return this._protocolParams = t, this.txBuilder = Ft(t), this;
|
|
3226
|
+
};
|
|
3227
|
+
signingKey = (e) => (this.meshTxBuilderBody.signingKey.push(e), this);
|
|
3228
|
+
addAllSigningKeys = (e) => {
|
|
3229
|
+
if (e.length > 0) {
|
|
3230
|
+
const t = a.Vkeywitnesses.new(), s = a.Transaction.from_hex(this.txHex), n = s.body();
|
|
3231
|
+
e.forEach((c) => {
|
|
3232
|
+
const u = c.slice(0, 4) === "5820" ? c.slice(4) : c, d = a.PrivateKey.from_hex(u), A = a.make_vkey_witness(a.hash_transaction(n), d);
|
|
3233
|
+
t.add(A);
|
|
3234
|
+
});
|
|
3235
|
+
const i = s.witness_set();
|
|
3236
|
+
i.set_vkeys(t);
|
|
3237
|
+
const o = a.Transaction.new(n, i, s.auxiliary_data());
|
|
3238
|
+
this.txHex = o.to_hex();
|
|
3239
|
+
}
|
|
3240
|
+
};
|
|
3241
|
+
buildTx = () => {
|
|
3242
|
+
const e = this.txBuilder.build_tx();
|
|
3243
|
+
this.txHex = e.to_hex();
|
|
3244
|
+
};
|
|
3245
|
+
queueInput = () => {
|
|
3246
|
+
if (!this.txInQueueItem)
|
|
3247
|
+
throw Error("Undefined input");
|
|
3248
|
+
if (this.txInQueueItem.type === "Script")
|
|
3249
|
+
if (this.txInQueueItem.scriptTxIn) {
|
|
3250
|
+
if (!this.txInQueueItem.scriptTxIn.datumSource)
|
|
3251
|
+
throw Error("Script input does not contain datum information");
|
|
3252
|
+
if (!this.txInQueueItem.scriptTxIn.redeemer)
|
|
3253
|
+
throw Error("Script input does not contain redeemer information");
|
|
3254
|
+
if (!this.txInQueueItem.scriptTxIn.scriptSource)
|
|
3255
|
+
throw Error("Script input does not contain script information");
|
|
3256
|
+
} else
|
|
3257
|
+
throw Error("Script input does not contain script, datum, or redeemer information");
|
|
3258
|
+
this.meshTxBuilderBody.inputs.push(this.txInQueueItem), this.txInQueueItem = void 0;
|
|
3259
|
+
};
|
|
3260
|
+
queueMint = () => {
|
|
3261
|
+
if (!this.mintItem)
|
|
3262
|
+
throw Error("Undefined mint");
|
|
3263
|
+
if (!this.mintItem.scriptSource)
|
|
3264
|
+
throw Error("Missing mint script information");
|
|
3265
|
+
this.meshTxBuilderBody.mints.push(this.mintItem), this.mintItem = void 0;
|
|
3266
|
+
};
|
|
3267
|
+
makePlutusScriptSource = (e) => {
|
|
3268
|
+
const t = a.ScriptHash.from_hex(e.spendingScriptHash), s = a.TransactionInput.new(a.TransactionHash.from_hex(e.txHash), e.txIndex);
|
|
3269
|
+
return a.PlutusScriptSource.new_ref_input_with_lang_ver(t, s, a.Language.new_plutus_v2());
|
|
3270
|
+
};
|
|
3271
|
+
addAllInputs = (e) => {
|
|
3272
|
+
for (let t = 0; t < e.length; t++) {
|
|
3273
|
+
const s = e[t];
|
|
3274
|
+
switch (s.type) {
|
|
3275
|
+
case "PubKey":
|
|
3276
|
+
this.addTxIn(s);
|
|
3277
|
+
break;
|
|
3278
|
+
case "Script":
|
|
3279
|
+
this.addScriptTxIn(s);
|
|
3280
|
+
break;
|
|
3281
|
+
}
|
|
3282
|
+
}
|
|
3283
|
+
};
|
|
3284
|
+
addTxIn = (e) => {
|
|
3285
|
+
this.txBuilder.add_input(a.Address.from_bech32(e.txIn.address), a.TransactionInput.new(a.TransactionHash.from_hex(e.txIn.txHash), e.txIn.txIndex), Z(e.txIn.amount));
|
|
3286
|
+
};
|
|
3287
|
+
addScriptTxIn = ({ scriptTxIn: e, txIn: t }) => {
|
|
3288
|
+
let s;
|
|
3289
|
+
const { datumSource: n, scriptSource: i, redeemer: o } = e;
|
|
3290
|
+
if (n.type === "Provided")
|
|
3291
|
+
s = a.DatumSource.new(b(n.data));
|
|
3292
|
+
else {
|
|
3293
|
+
const d = a.TransactionInput.new(a.TransactionHash.from_hex(n.txHash), n.txIndex);
|
|
3294
|
+
s = a.DatumSource.new_ref_input(d);
|
|
3295
|
+
}
|
|
3296
|
+
let c;
|
|
3297
|
+
i.type == "Inline" ? c = this.makePlutusScriptSource(i.txInInfo) : c = a.PlutusScriptSource.new(a.PlutusScript.from_hex_with_version(i.scriptCbor, a.Language.new_plutus_v2()));
|
|
3298
|
+
const u = a.Redeemer.new(a.RedeemerTag.new_spend(), a.BigNum.from_str("0"), b(o.data), a.ExUnits.new(a.BigNum.from_str(String(o.exUnits.mem)), a.BigNum.from_str(String(o.exUnits.steps))));
|
|
3299
|
+
this.txBuilder.add_plutus_script_input(a.PlutusWitness.new_with_ref(c, s, u), a.TransactionInput.new(a.TransactionHash.from_hex(t.txHash), t.txIndex), Z(t.amount));
|
|
3300
|
+
};
|
|
3301
|
+
addAllOutputs = (e) => {
|
|
3302
|
+
for (let t = 0; t < e.length; t++) {
|
|
3303
|
+
const s = e[t];
|
|
3304
|
+
this.addOutput(s);
|
|
3305
|
+
}
|
|
3306
|
+
};
|
|
3307
|
+
addOutput = ({ amount: e, address: t, datum: s, referenceScript: n }) => {
|
|
3308
|
+
const i = Z(e), o = i.multiasset();
|
|
3309
|
+
if (i.is_zero() && o === void 0)
|
|
3310
|
+
throw Error("Invalid output amount");
|
|
3311
|
+
let c = a.TransactionOutputBuilder.new().with_address(K(t));
|
|
3312
|
+
s && s.type === "Hash" && (c = c.with_data_hash(a.hash_plutus_data(b(s.data)))), s && s.type === "Inline" && (c = c.with_plutus_data(b(s.data))), n && (c = c.with_script_ref(a.ScriptRef.new_plutus_script(a.PlutusScript.from_hex(n))));
|
|
3313
|
+
const u = c.next();
|
|
3314
|
+
if (o) {
|
|
3315
|
+
const d = i.coin().is_zero() ? u.with_asset_and_min_required_coin_by_utxo_cost(o, Ht(this._protocolParams.coinsPerUTxOSize)).build() : u.with_coin_and_asset(i.coin(), o).build();
|
|
3316
|
+
this.txBuilder.add_output(d);
|
|
3317
|
+
} else {
|
|
3318
|
+
const d = u.with_coin(i.coin()).build();
|
|
3319
|
+
this.txBuilder.add_output(d);
|
|
3320
|
+
}
|
|
3321
|
+
};
|
|
3322
|
+
addAllCollaterals = (e) => {
|
|
3323
|
+
const t = a.TxInputsBuilder.new();
|
|
3324
|
+
for (let s = 0; s < e.length; s++) {
|
|
3325
|
+
const n = e[s];
|
|
3326
|
+
this.addCollateral(t, n);
|
|
3327
|
+
}
|
|
3328
|
+
this.txBuilder.set_collateral(t);
|
|
3329
|
+
};
|
|
3330
|
+
addCollateral = (e, t) => {
|
|
3331
|
+
e.add_input(a.Address.from_bech32(t.txIn.address), a.TransactionInput.new(a.TransactionHash.from_hex(t.txIn.txHash), t.txIn.txIndex), Z(t.txIn.amount));
|
|
3332
|
+
};
|
|
3333
|
+
addCollateralReturn = (e, t = 0) => {
|
|
3334
|
+
};
|
|
3335
|
+
addAllReferenceInputs = (e) => {
|
|
3336
|
+
e.forEach((t) => {
|
|
3337
|
+
this.addReferenceInput(t);
|
|
3338
|
+
});
|
|
3339
|
+
};
|
|
3340
|
+
addReferenceInput = ({ txHash: e, txIndex: t }) => {
|
|
3341
|
+
const s = a.TransactionInput.new(a.TransactionHash.from_hex(e), t);
|
|
3342
|
+
this.txBuilder.add_reference_input(s);
|
|
3343
|
+
};
|
|
3344
|
+
addAllMints = (e) => {
|
|
3345
|
+
const t = a.MintBuilder.new();
|
|
3346
|
+
let s = 0;
|
|
3347
|
+
for (let n = 0; n < e.length; n++) {
|
|
3348
|
+
const i = e[n];
|
|
3349
|
+
if (!i.scriptSource)
|
|
3350
|
+
throw Error("Mint script is expected to be provided");
|
|
3351
|
+
if (i.type === "Plutus") {
|
|
3352
|
+
if (!i.redeemer)
|
|
3353
|
+
throw Error("Missing mint redeemer information");
|
|
3354
|
+
this.addPlutusMint(t, i, s), s++;
|
|
3355
|
+
} else
|
|
3356
|
+
i.type === "Native" && this.addNativeMint(t, i);
|
|
3357
|
+
}
|
|
3358
|
+
this.txBuilder.set_mint_builder(t);
|
|
3359
|
+
};
|
|
3360
|
+
addPlutusMint = (e, { redeemer: t, policyId: s, scriptSource: n, assetName: i, amount: o }, c) => {
|
|
3361
|
+
const u = a.Redeemer.new(a.RedeemerTag.new_mint(), a.BigNum.from_str(String(c)), b(t.data), a.ExUnits.new(a.BigNum.from_str(String(t.exUnits.mem)), a.BigNum.from_str(String(t.exUnits.steps)))), d = n.type === "Reference Script" ? a.PlutusScriptSource.new_ref_input_with_lang_ver(a.ScriptHash.from_hex(s), a.TransactionInput.new(a.TransactionHash.from_hex(n.txHash), n.txIndex), a.Language.new_plutus_v2()) : a.PlutusScriptSource.new(a.PlutusScript.from_hex_with_version(n.cbor, a.Language.new_plutus_v2()));
|
|
3362
|
+
e.add_asset(a.MintWitness.new_plutus_script(d, u), a.AssetName.new(Buffer.from(i, "hex")), a.Int.new_i32(o));
|
|
3363
|
+
};
|
|
3364
|
+
addNativeMint = (e, { scriptSource: t, assetName: s, amount: n }) => {
|
|
3365
|
+
if (t.type === "Reference Script")
|
|
3366
|
+
throw Error("Native mint cannot have reference script");
|
|
3367
|
+
e.add_asset(a.MintWitness.new_native_script(a.NativeScript.from_hex(t.cbor)), a.AssetName.new(Buffer.from(s, "hex")), a.Int.new_i32(n));
|
|
3368
|
+
};
|
|
3369
|
+
queueAllLastItem = () => {
|
|
3370
|
+
this.txOutput && (this.meshTxBuilderBody.outputs.push(this.txOutput), this.txOutput = void 0), this.txInQueueItem && this.queueInput(), this.collateralQueueItem && this.meshTxBuilderBody.collaterals.push(this.collateralQueueItem), this.mintItem && this.queueMint();
|
|
3371
|
+
};
|
|
3372
|
+
addCostModels = () => {
|
|
3373
|
+
this.txBuilder.calc_script_data_hash(a.TxBuilderConstants.plutus_vasil_cost_models());
|
|
3374
|
+
};
|
|
3375
|
+
addChange = (e) => {
|
|
3376
|
+
this.txBuilder.add_change_if_needed(a.Address.from_bech32(e));
|
|
3377
|
+
};
|
|
3378
|
+
addValidityRange = ({ invalidBefore: e, invalidHereafter: t }) => {
|
|
3379
|
+
e && this.txBuilder.set_validity_start_interval_bignum(a.BigNum.from_str(e.toString())), t && this.txBuilder.set_ttl_bignum(a.BigNum.from_str(t.toString()));
|
|
3380
|
+
};
|
|
3381
|
+
addAllRequiredSignatures = (e) => {
|
|
3382
|
+
e.forEach((t) => {
|
|
3383
|
+
this.txBuilder.add_required_signer(a.Ed25519KeyHash.from_hex(t));
|
|
3384
|
+
});
|
|
3385
|
+
};
|
|
3386
|
+
addAllMetadata = (e) => {
|
|
3387
|
+
e.forEach(({ tag: t, metadata: s }) => {
|
|
3388
|
+
this.txBuilder.add_json_metadatum(a.BigNum.from_str(t), JSON.stringify(s));
|
|
3389
|
+
});
|
|
3390
|
+
};
|
|
3391
|
+
updateRedeemer = (e, t) => {
|
|
3392
|
+
t.forEach((s) => {
|
|
3393
|
+
switch (s.tag) {
|
|
3394
|
+
case "SPEND": {
|
|
3395
|
+
const n = e.inputs[s.index];
|
|
3396
|
+
n.type == "Script" && n.scriptTxIn.redeemer && (n.scriptTxIn.redeemer.exUnits.mem = s.budget.mem, n.scriptTxIn.redeemer.exUnits.steps = s.budget.steps);
|
|
3397
|
+
break;
|
|
3398
|
+
}
|
|
3399
|
+
case "MINT": {
|
|
3400
|
+
const n = e.mints[s.index];
|
|
3401
|
+
n.type == "Plutus" && n.redeemer && (n.redeemer.exUnits.mem = s.budget.mem, n.redeemer.exUnits.steps = s.budget.steps);
|
|
3402
|
+
break;
|
|
3403
|
+
}
|
|
3404
|
+
}
|
|
3405
|
+
});
|
|
3406
|
+
};
|
|
3407
|
+
}
|
|
3408
|
+
class Dr extends Zs {
|
|
3409
|
+
_fetcher;
|
|
3410
|
+
_submitter;
|
|
3411
|
+
_evaluator;
|
|
3412
|
+
queriedTxHashes = /* @__PURE__ */ new Set();
|
|
3413
|
+
queriedUTxOs = {};
|
|
3414
|
+
constructor({ fetcher: e, submitter: t, evaluator: s, isHydra: n = !1 }) {
|
|
3415
|
+
super(), e && (this._fetcher = e), t && (this._submitter = t), s && (this._evaluator = s), n && (this.isHydra = !0);
|
|
3416
|
+
}
|
|
3417
|
+
complete = async (e) => {
|
|
3418
|
+
e ? this.meshTxBuilderBody = e : this.queueAllLastItem(), await this.queryAllTxInfo();
|
|
3419
|
+
const { inputs: t, collaterals: s } = this.meshTxBuilderBody;
|
|
3420
|
+
if ([...t, ...s].forEach((n) => {
|
|
3421
|
+
this.completeTxInformation(n);
|
|
3422
|
+
}), this.completeSync(e), this._evaluator) {
|
|
3423
|
+
const n = await this._evaluator.evaluateTx(this.txHex);
|
|
3424
|
+
this.updateRedeemer(this.meshTxBuilderBody, n), this.completeSync(e);
|
|
3425
|
+
}
|
|
3426
|
+
return this;
|
|
3427
|
+
};
|
|
3428
|
+
submitTx = async (e) => {
|
|
3429
|
+
var s;
|
|
3430
|
+
return await ((s = this._submitter) == null ? void 0 : s.submitTx(e));
|
|
3431
|
+
};
|
|
3432
|
+
getUTxOInfo = async (e) => {
|
|
3433
|
+
var s;
|
|
3434
|
+
let t = [];
|
|
3435
|
+
this.queriedTxHashes.has(e) || (this.queriedTxHashes.add(e), t = await ((s = this._fetcher) == null ? void 0 : s.fetchUTxOs(e)) || [], this.queriedUTxOs[e] = t);
|
|
3436
|
+
};
|
|
3437
|
+
queryAllTxInfo = () => {
|
|
3438
|
+
var n, i;
|
|
3439
|
+
const e = [], { inputs: t, collaterals: s } = this.meshTxBuilderBody;
|
|
3440
|
+
if (t.length + s.length > 0 && !this._fetcher)
|
|
3441
|
+
throw Error("Transaction information is incomplete while no fetcher instance is provided");
|
|
3442
|
+
for (let o = 0; o < t.length; o++) {
|
|
3443
|
+
const c = t[o];
|
|
3444
|
+
if ((!c.txIn.amount || !c.txIn.address) && e.push(this.getUTxOInfo(c.txIn.txHash)), c.type === "Script" && ((n = c.scriptTxIn.scriptSource) == null ? void 0 : n.type) == "Inline" && c.scriptTxIn.scriptSource.txInInfo && !((i = c.scriptTxIn.scriptSource) != null && i.txInInfo.spendingScriptHash)) {
|
|
3445
|
+
const u = c.scriptTxIn.scriptSource.txInInfo.txHash;
|
|
3446
|
+
e.push(this.getUTxOInfo(u));
|
|
3447
|
+
}
|
|
3448
|
+
}
|
|
3449
|
+
for (let o = 0; o < s.length; o++) {
|
|
3450
|
+
const c = s[o];
|
|
3451
|
+
(!c.txIn.amount || !c.txIn.address) && e.push(this.getUTxOInfo(c.txIn.txHash));
|
|
3452
|
+
}
|
|
3453
|
+
return Promise.all(e);
|
|
3454
|
+
};
|
|
3455
|
+
completeTxInformation = (e) => {
|
|
3456
|
+
var o;
|
|
3457
|
+
const s = this.queriedUTxOs[e.txIn.txHash].find((c) => c.input.outputIndex === e.txIn.txIndex), n = s == null ? void 0 : s.output.address, i = s == null ? void 0 : s.output.amount;
|
|
3458
|
+
if (!n || n === "" || !i || i.length === 0)
|
|
3459
|
+
throw Error(`Couldn't find information for ${e.txIn.txHash}#${e.txIn.txIndex}`);
|
|
3460
|
+
if (e.txIn.address = n, e.txIn.amount = i, e.type === "Script" && ((o = e.scriptTxIn.scriptSource) == null ? void 0 : o.type) == "Inline") {
|
|
3461
|
+
const c = e.scriptTxIn.scriptSource.txInInfo;
|
|
3462
|
+
if (!c.spendingScriptHash) {
|
|
3463
|
+
const d = this.queriedUTxOs[c.txHash].find((A) => A.input.outputIndex === c.txIndex);
|
|
3464
|
+
if (!d)
|
|
3465
|
+
throw Error(`Couldn't find script reference utxo for ${c.txHash}#${c.txIndex}`);
|
|
3466
|
+
c.spendingScriptHash = d == null ? void 0 : d.output.scriptHash;
|
|
3467
|
+
}
|
|
3468
|
+
}
|
|
3469
|
+
};
|
|
3470
|
+
}
|
|
3471
|
+
class C {
|
|
2943
3472
|
_networkId;
|
|
2944
3473
|
_encryptedSecret;
|
|
2945
3474
|
constructor(e, t) {
|
|
2946
3475
|
this._networkId = e, this._encryptedSecret = t;
|
|
2947
3476
|
}
|
|
2948
3477
|
getAccount(e, t) {
|
|
2949
|
-
return this.accountContext(e, t, (
|
|
2950
|
-
const
|
|
3478
|
+
return this.accountContext(e, t, (s, n) => {
|
|
3479
|
+
const i = fe(this._networkId, s.to_public().hash(), n.to_public().hash()).to_address().to_bech32(), o = _e(this._networkId, s.to_public().hash()).to_address().to_bech32(), c = Mt(this._networkId, n.to_public().hash()).to_address().to_bech32();
|
|
2951
3480
|
return {
|
|
2952
|
-
baseAddress:
|
|
3481
|
+
baseAddress: i,
|
|
2953
3482
|
enterpriseAddress: o,
|
|
2954
3483
|
rewardAddress: c
|
|
2955
3484
|
};
|
|
2956
3485
|
});
|
|
2957
3486
|
}
|
|
2958
|
-
signData(e, t,
|
|
3487
|
+
signData(e, t, s, n) {
|
|
2959
3488
|
try {
|
|
2960
|
-
return this.accountContext(e, t, (
|
|
2961
|
-
const c = { payload:
|
|
2962
|
-
address:
|
|
2963
|
-
key:
|
|
2964
|
-
}, { coseSign1:
|
|
2965
|
-
return { signature:
|
|
3489
|
+
return this.accountContext(e, t, (i, o) => {
|
|
3490
|
+
const c = { payload: n }, u = {
|
|
3491
|
+
address: C.resolveAddress(this._networkId, s, i, o),
|
|
3492
|
+
key: s.startsWith("stake") ? o : i
|
|
3493
|
+
}, { coseSign1: d, coseKey: A } = As(c, u);
|
|
3494
|
+
return { signature: d, key: A };
|
|
2966
3495
|
});
|
|
2967
|
-
} catch (
|
|
2968
|
-
throw new Error(`An error occurred during signData: ${
|
|
3496
|
+
} catch (i) {
|
|
3497
|
+
throw new Error(`An error occurred during signData: ${i}.`);
|
|
2969
3498
|
}
|
|
2970
3499
|
}
|
|
2971
|
-
signTx(e, t,
|
|
3500
|
+
signTx(e, t, s, n, i) {
|
|
2972
3501
|
try {
|
|
2973
|
-
const o =
|
|
3502
|
+
const o = He(js(n));
|
|
2974
3503
|
return this.accountContext(e, t, (c, u) => {
|
|
2975
|
-
const
|
|
2976
|
-
return
|
|
2977
|
-
if (
|
|
2978
|
-
|
|
2979
|
-
else if (
|
|
2980
|
-
|
|
2981
|
-
else if (
|
|
2982
|
-
throw new Error(`Missing key witness for: ${
|
|
2983
|
-
}),
|
|
3504
|
+
const d = a.Vkeywitnesses.new();
|
|
3505
|
+
return C.resolveSigners(n, s, c.to_public().hash().to_hex()).forEach((l) => {
|
|
3506
|
+
if (l === c.to_public().hash().to_hex())
|
|
3507
|
+
d.add(a.make_vkey_witness(o, c));
|
|
3508
|
+
else if (l === u.to_public().hash().to_hex())
|
|
3509
|
+
d.add(a.make_vkey_witness(o, u));
|
|
3510
|
+
else if (i === !1)
|
|
3511
|
+
throw new Error(`Missing key witness for: ${l}`);
|
|
3512
|
+
}), d;
|
|
2984
3513
|
});
|
|
2985
3514
|
} catch (o) {
|
|
2986
3515
|
throw new Error(`An error occurred during signTx: ${o}.`);
|
|
2987
3516
|
}
|
|
2988
3517
|
}
|
|
2989
3518
|
static encryptMnemonic(e, t) {
|
|
2990
|
-
const
|
|
2991
|
-
return
|
|
3519
|
+
const s = we(e.join(" ")), n = Re(s), i = v(n.as_bytes());
|
|
3520
|
+
return n.free(), C.encrypt(i, t);
|
|
2992
3521
|
}
|
|
2993
3522
|
static encryptPrivateKey(e, t) {
|
|
2994
|
-
const
|
|
2995
|
-
return
|
|
3523
|
+
const s = a.Bip32PrivateKey.from_bech32(e), n = v(s.as_bytes());
|
|
3524
|
+
return s.free(), C.encrypt(n, t);
|
|
2996
3525
|
}
|
|
2997
|
-
static encryptSigningKeys(e, t,
|
|
2998
|
-
const
|
|
2999
|
-
return [
|
|
3526
|
+
static encryptSigningKeys(e, t, s) {
|
|
3527
|
+
const n = C.encrypt(e.slice(4), s), i = C.encrypt(t.slice(4), s);
|
|
3528
|
+
return [n, i];
|
|
3000
3529
|
}
|
|
3001
3530
|
static generateMnemonic(e = 256) {
|
|
3002
|
-
return
|
|
3531
|
+
return ze(e).split(" ");
|
|
3003
3532
|
}
|
|
3004
|
-
accountContext(e, t,
|
|
3005
|
-
const { paymentKey:
|
|
3006
|
-
return
|
|
3533
|
+
accountContext(e, t, s) {
|
|
3534
|
+
const { paymentKey: n, stakeKey: i } = C.resolveKeys(e, t, this._encryptedSecret), o = s(n, i);
|
|
3535
|
+
return n.free(), i.free(), o;
|
|
3007
3536
|
}
|
|
3008
3537
|
static decrypt(e, t) {
|
|
3009
3538
|
try {
|
|
3010
|
-
return
|
|
3539
|
+
return a.decrypt_with_password(S(t), e);
|
|
3011
3540
|
} catch {
|
|
3012
3541
|
throw new Error("The password is incorrect.");
|
|
3013
3542
|
}
|
|
3014
3543
|
}
|
|
3015
3544
|
static encrypt(e, t) {
|
|
3016
|
-
const
|
|
3017
|
-
return
|
|
3018
|
-
}
|
|
3019
|
-
static resolveAddress(e, t,
|
|
3020
|
-
const
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3545
|
+
const s = Ce("0123456789abcdef"), n = s(64), i = s(24);
|
|
3546
|
+
return a.encrypt_with_password(S(t), n, i, e);
|
|
3547
|
+
}
|
|
3548
|
+
static resolveAddress(e, t, s, n) {
|
|
3549
|
+
const i = [
|
|
3550
|
+
fe(e, s.to_public().hash(), n.to_public().hash()),
|
|
3551
|
+
_e(e, s.to_public().hash()),
|
|
3552
|
+
Mt(e, n.to_public().hash())
|
|
3024
3553
|
].find((o) => o.to_address().to_bech32() === t);
|
|
3025
|
-
if (
|
|
3026
|
-
return
|
|
3554
|
+
if (i !== void 0)
|
|
3555
|
+
return i.to_address();
|
|
3027
3556
|
throw new Error(`Address: ${t} doesn't belong to this account.`);
|
|
3028
3557
|
}
|
|
3029
|
-
static resolveKeys(e, t,
|
|
3030
|
-
if (typeof
|
|
3031
|
-
const o =
|
|
3032
|
-
return
|
|
3558
|
+
static resolveKeys(e, t, s) {
|
|
3559
|
+
if (typeof s == "string") {
|
|
3560
|
+
const o = C.decrypt(s, t);
|
|
3561
|
+
return Ms(o, e);
|
|
3033
3562
|
}
|
|
3034
|
-
const
|
|
3563
|
+
const n = C.decrypt(s[0], t), i = C.decrypt(s[1], t);
|
|
3035
3564
|
return {
|
|
3036
|
-
paymentKey:
|
|
3037
|
-
stakeKey:
|
|
3565
|
+
paymentKey: a.PrivateKey.from_hex(n),
|
|
3566
|
+
stakeKey: a.PrivateKey.from_hex(i)
|
|
3038
3567
|
};
|
|
3039
3568
|
}
|
|
3040
|
-
static resolveSigners(e, t,
|
|
3041
|
-
const
|
|
3042
|
-
const u = (p, E = [],
|
|
3043
|
-
var
|
|
3044
|
-
if (p === void 0 ||
|
|
3569
|
+
static resolveSigners(e, t, s) {
|
|
3570
|
+
const n = (c) => {
|
|
3571
|
+
const u = (p, E = [], w = 0) => {
|
|
3572
|
+
var pt, dt, $t, zt, Wt;
|
|
3573
|
+
if (p === void 0 || w >= p.len())
|
|
3045
3574
|
return E;
|
|
3046
|
-
const
|
|
3047
|
-
switch (
|
|
3048
|
-
case
|
|
3049
|
-
const
|
|
3050
|
-
|
|
3575
|
+
const k = p.get(w), T = new Array();
|
|
3576
|
+
switch (k.kind()) {
|
|
3577
|
+
case a.CertificateKind.StakeDeregistration: {
|
|
3578
|
+
const x = (pt = k.as_stake_deregistration()) == null ? void 0 : pt.stake_credential(), q = (x == null ? void 0 : x.kind()) === a.StakeCredKind.Key ? x.to_keyhash() : void 0;
|
|
3579
|
+
q && T.push(q.to_hex());
|
|
3051
3580
|
break;
|
|
3052
3581
|
}
|
|
3053
|
-
case
|
|
3054
|
-
const
|
|
3055
|
-
|
|
3582
|
+
case a.CertificateKind.StakeDelegation: {
|
|
3583
|
+
const x = (dt = k.as_stake_delegation()) == null ? void 0 : dt.stake_credential(), q = (x == null ? void 0 : x.kind()) === a.StakeCredKind.Key ? x.to_keyhash() : void 0;
|
|
3584
|
+
q && T.push(q.to_hex());
|
|
3056
3585
|
break;
|
|
3057
3586
|
}
|
|
3058
|
-
case
|
|
3059
|
-
const
|
|
3060
|
-
|
|
3587
|
+
case a.CertificateKind.PoolRegistration: {
|
|
3588
|
+
const x = ($t = k.as_pool_registration()) == null ? void 0 : $t.pool_params().pool_owners();
|
|
3589
|
+
T.push(...A(x));
|
|
3061
3590
|
break;
|
|
3062
3591
|
}
|
|
3063
|
-
case
|
|
3064
|
-
const
|
|
3065
|
-
|
|
3592
|
+
case a.CertificateKind.PoolRetirement: {
|
|
3593
|
+
const x = (zt = k.as_pool_retirement()) == null ? void 0 : zt.pool_keyhash();
|
|
3594
|
+
x && T.push(x.to_hex());
|
|
3066
3595
|
break;
|
|
3067
3596
|
}
|
|
3068
|
-
case
|
|
3069
|
-
const
|
|
3070
|
-
if (
|
|
3071
|
-
for (let
|
|
3072
|
-
const
|
|
3073
|
-
|
|
3597
|
+
case a.CertificateKind.MoveInstantaneousRewardsCert: {
|
|
3598
|
+
const x = (Wt = k.as_move_instantaneous_rewards_cert()) == null ? void 0 : Wt.move_instantaneous_reward().as_to_stake_creds();
|
|
3599
|
+
if (x)
|
|
3600
|
+
for (let q = 0; q < x.len(); q += 1) {
|
|
3601
|
+
const Jt = x.keys().get(q), jt = Jt.kind() === a.StakeCredKind.Key ? Jt.to_keyhash() : void 0;
|
|
3602
|
+
jt && T.push(jt.to_hex());
|
|
3074
3603
|
}
|
|
3075
3604
|
break;
|
|
3076
3605
|
}
|
|
3077
3606
|
}
|
|
3078
|
-
return u(p, [...E, ...
|
|
3079
|
-
},
|
|
3080
|
-
if (p === void 0 ||
|
|
3607
|
+
return u(p, [...E, ...T], w + 1);
|
|
3608
|
+
}, d = (p, E = [], w = 0) => {
|
|
3609
|
+
if (p === void 0 || w >= p.len())
|
|
3081
3610
|
return E;
|
|
3082
|
-
const
|
|
3083
|
-
return
|
|
3084
|
-
},
|
|
3085
|
-
if (p === void 0 ||
|
|
3611
|
+
const k = p.get(w).index(), T = p.get(w).transaction_id(), pt = t.find((dt) => dt.input.outputIndex === k && dt.input.txHash === T.to_hex()) !== void 0 ? s : "OUR_PRINCESS_IS_IN_ANOTHER_CASTLE";
|
|
3612
|
+
return d(p, [...E, pt], w + 1);
|
|
3613
|
+
}, A = (p, E = [], w = 0) => p === void 0 || w >= p.len() ? E : A(p, [...E, p.get(w).to_hex()], w + 1), l = (p, E = [], w = 0) => {
|
|
3614
|
+
if (p === void 0 || w >= p.len())
|
|
3086
3615
|
return E;
|
|
3087
|
-
const
|
|
3088
|
-
return
|
|
3089
|
-
},
|
|
3616
|
+
const k = p.keys().get(w).payment_cred(), T = k.kind() === a.StakeCredKind.Key ? k.to_keyhash() : void 0;
|
|
3617
|
+
return l(p, T ? [...E, T.to_hex()] : E, w + 1);
|
|
3618
|
+
}, g = c.certs(), f = c.collateral(), y = c.inputs(), V = c.required_signers(), z = c.withdrawals();
|
|
3090
3619
|
return [
|
|
3091
|
-
...u(
|
|
3092
|
-
...
|
|
3093
|
-
...
|
|
3094
|
-
...
|
|
3095
|
-
...
|
|
3620
|
+
...u(g),
|
|
3621
|
+
...d(f),
|
|
3622
|
+
...d(y),
|
|
3623
|
+
...A(V),
|
|
3624
|
+
...l(z)
|
|
3096
3625
|
];
|
|
3097
|
-
},
|
|
3098
|
-
const u = (
|
|
3099
|
-
var
|
|
3100
|
-
if (
|
|
3101
|
-
for (let
|
|
3102
|
-
const p =
|
|
3626
|
+
}, i = (c) => {
|
|
3627
|
+
const u = (A, l = []) => {
|
|
3628
|
+
var g, f, y, V;
|
|
3629
|
+
if (A)
|
|
3630
|
+
for (let z = 0; z < A.len(); z += 1) {
|
|
3631
|
+
const p = A.get(z);
|
|
3103
3632
|
switch (p.kind()) {
|
|
3104
|
-
case
|
|
3105
|
-
const E = (
|
|
3106
|
-
return E ? [...
|
|
3633
|
+
case a.NativeScriptKind.ScriptPubkey: {
|
|
3634
|
+
const E = (g = p.as_script_pubkey()) == null ? void 0 : g.addr_keyhash().to_hex();
|
|
3635
|
+
return E ? [...l, E] : l;
|
|
3107
3636
|
}
|
|
3108
|
-
case
|
|
3109
|
-
return u((f = p.as_script_all()) == null ? void 0 : f.native_scripts(),
|
|
3110
|
-
case
|
|
3111
|
-
return u((y = p.as_script_any()) == null ? void 0 : y.native_scripts(),
|
|
3112
|
-
case
|
|
3113
|
-
return u((
|
|
3637
|
+
case a.NativeScriptKind.ScriptAll:
|
|
3638
|
+
return u((f = p.as_script_all()) == null ? void 0 : f.native_scripts(), l);
|
|
3639
|
+
case a.NativeScriptKind.ScriptAny:
|
|
3640
|
+
return u((y = p.as_script_any()) == null ? void 0 : y.native_scripts(), l);
|
|
3641
|
+
case a.NativeScriptKind.ScriptNOfK:
|
|
3642
|
+
return u((V = p.as_script_n_of_k()) == null ? void 0 : V.native_scripts(), l);
|
|
3114
3643
|
}
|
|
3115
3644
|
}
|
|
3116
|
-
return
|
|
3117
|
-
},
|
|
3645
|
+
return l;
|
|
3646
|
+
}, d = c.native_scripts();
|
|
3118
3647
|
return [
|
|
3119
|
-
...u(
|
|
3648
|
+
...u(d)
|
|
3120
3649
|
];
|
|
3121
|
-
}, o =
|
|
3650
|
+
}, o = Y(e);
|
|
3122
3651
|
return /* @__PURE__ */ new Set([
|
|
3123
|
-
...
|
|
3124
|
-
...
|
|
3652
|
+
...n(o.body()),
|
|
3653
|
+
...i(o.witness_set())
|
|
3125
3654
|
]);
|
|
3126
3655
|
}
|
|
3127
3656
|
}
|
|
3128
|
-
const
|
|
3129
|
-
class
|
|
3657
|
+
const U = "MARI0TIME";
|
|
3658
|
+
class kr {
|
|
3130
3659
|
_fetcher;
|
|
3131
3660
|
_submitter;
|
|
3132
3661
|
_wallet;
|
|
3133
3662
|
constructor(e) {
|
|
3134
3663
|
switch (this._fetcher = e.fetcher, this._submitter = e.submitter, e.key.type) {
|
|
3135
3664
|
case "mnemonic":
|
|
3136
|
-
this._wallet = new
|
|
3665
|
+
this._wallet = new C(e.networkId, C.encryptMnemonic(e.key.words, U));
|
|
3137
3666
|
break;
|
|
3138
3667
|
case "root":
|
|
3139
|
-
this._wallet = new
|
|
3668
|
+
this._wallet = new C(e.networkId, C.encryptPrivateKey(e.key.bech32, U));
|
|
3140
3669
|
break;
|
|
3141
3670
|
case "cli":
|
|
3142
|
-
this._wallet = new
|
|
3671
|
+
this._wallet = new C(e.networkId, C.encryptSigningKeys(e.key.payment, e.key.stake ?? "f0".repeat(34), U));
|
|
3143
3672
|
}
|
|
3144
3673
|
}
|
|
3145
3674
|
getBaseAddress(e = 0) {
|
|
3146
|
-
return this._wallet.getAccount(e,
|
|
3675
|
+
return this._wallet.getAccount(e, U).baseAddress;
|
|
3147
3676
|
}
|
|
3148
3677
|
getPaymentAddress(e = 0) {
|
|
3149
|
-
return this._wallet.getAccount(e,
|
|
3678
|
+
return this._wallet.getAccount(e, U).enterpriseAddress;
|
|
3150
3679
|
}
|
|
3151
3680
|
getRewardAddress(e = 0) {
|
|
3152
|
-
return this._wallet.getAccount(e,
|
|
3681
|
+
return this._wallet.getAccount(e, U).rewardAddress;
|
|
3153
3682
|
}
|
|
3154
3683
|
getUsedAddress(e = 0) {
|
|
3155
|
-
const t = this._wallet.getAccount(e,
|
|
3156
|
-
return
|
|
3684
|
+
const t = this._wallet.getAccount(e, U);
|
|
3685
|
+
return K(t.enterpriseAddress);
|
|
3157
3686
|
}
|
|
3158
|
-
getUsedCollateral(e =
|
|
3687
|
+
getUsedCollateral(e = P.maxCollateralInputs) {
|
|
3159
3688
|
throw new Error("getUsedCollateral not implemented.");
|
|
3160
3689
|
}
|
|
3161
3690
|
async getUsedUTxOs(e = 0) {
|
|
3162
|
-
const t = this._wallet.getAccount(e,
|
|
3163
|
-
return (await this._fetcher.fetchAddressUTxOs(t.enterpriseAddress)).map((
|
|
3691
|
+
const t = this._wallet.getAccount(e, U);
|
|
3692
|
+
return (await this._fetcher.fetchAddressUTxOs(t.enterpriseAddress)).map((n) => H(n));
|
|
3164
3693
|
}
|
|
3165
|
-
signData(e, t,
|
|
3694
|
+
signData(e, t, s = 0) {
|
|
3166
3695
|
try {
|
|
3167
|
-
return this._wallet.signData(
|
|
3168
|
-
} catch (
|
|
3169
|
-
throw new Error(`[AppWallet] An error occurred during signData: ${
|
|
3696
|
+
return this._wallet.signData(s, U, e, t);
|
|
3697
|
+
} catch (n) {
|
|
3698
|
+
throw new Error(`[AppWallet] An error occurred during signData: ${n}.`);
|
|
3170
3699
|
}
|
|
3171
3700
|
}
|
|
3172
|
-
async signTx(e, t = !1,
|
|
3701
|
+
async signTx(e, t = !1, s = 0) {
|
|
3173
3702
|
try {
|
|
3174
|
-
const
|
|
3175
|
-
return u.set_vkeys(
|
|
3176
|
-
} catch (
|
|
3177
|
-
throw new Error(`[AppWallet] An error occurred during signTx: ${
|
|
3703
|
+
const n = this._wallet.getAccount(s, U), i = await this._fetcher.fetchAddressUTxOs(n.enterpriseAddress), o = this._wallet.signTx(s, U, i, e, t), c = Y(e), u = c.witness_set(), d = Ge(u, o);
|
|
3704
|
+
return u.set_vkeys(d), a.Transaction.new(c.body(), u, c.auxiliary_data()).to_hex();
|
|
3705
|
+
} catch (n) {
|
|
3706
|
+
throw new Error(`[AppWallet] An error occurred during signTx: ${n}.`);
|
|
3178
3707
|
}
|
|
3179
3708
|
}
|
|
3180
3709
|
submitTx(e) {
|
|
3181
3710
|
return this._submitter.submitTx(e);
|
|
3182
3711
|
}
|
|
3183
3712
|
static brew(e = 256) {
|
|
3184
|
-
return
|
|
3713
|
+
return C.generateMnemonic(e);
|
|
3185
3714
|
}
|
|
3186
3715
|
}
|
|
3187
|
-
class
|
|
3716
|
+
class Ot {
|
|
3188
3717
|
_walletInstance;
|
|
3189
3718
|
constructor(e) {
|
|
3190
3719
|
this._walletInstance = e;
|
|
3191
3720
|
}
|
|
3192
3721
|
static getInstalledWallets() {
|
|
3193
|
-
return window.cardano === void 0 ? [] :
|
|
3722
|
+
return window.cardano === void 0 ? [] : te.filter((e) => window.cardano[e] !== void 0).map((e) => ({
|
|
3194
3723
|
name: window.cardano[e].name,
|
|
3195
3724
|
icon: window.cardano[e].icon,
|
|
3196
3725
|
version: window.cardano[e].apiVersion
|
|
@@ -3198,9 +3727,9 @@ class Tt {
|
|
|
3198
3727
|
}
|
|
3199
3728
|
static async enable(e) {
|
|
3200
3729
|
try {
|
|
3201
|
-
const t = await
|
|
3730
|
+
const t = await Ot.resolveInstance(e);
|
|
3202
3731
|
if (t !== void 0)
|
|
3203
|
-
return new
|
|
3732
|
+
return new Ot(t);
|
|
3204
3733
|
throw new Error(`Couldn't create an instance of wallet: ${e}`);
|
|
3205
3734
|
} catch (t) {
|
|
3206
3735
|
throw new Error(`[BrowserWallet] An error occurred during enable: ${t}.`);
|
|
@@ -3208,40 +3737,40 @@ class Tt {
|
|
|
3208
3737
|
}
|
|
3209
3738
|
async getBalance() {
|
|
3210
3739
|
const e = await this._walletInstance.getBalance();
|
|
3211
|
-
return
|
|
3740
|
+
return qe(Gs(e));
|
|
3212
3741
|
}
|
|
3213
3742
|
async getChangeAddress() {
|
|
3214
3743
|
const e = await this._walletInstance.getChangeAddress();
|
|
3215
|
-
return
|
|
3744
|
+
return rt(e).to_bech32();
|
|
3216
3745
|
}
|
|
3217
|
-
async getCollateral(e =
|
|
3218
|
-
return (await this.getUsedCollateral(e)).map((
|
|
3746
|
+
async getCollateral(e = P.maxCollateralInputs) {
|
|
3747
|
+
return (await this.getUsedCollateral(e)).map((s) => bt(s));
|
|
3219
3748
|
}
|
|
3220
3749
|
getNetworkId() {
|
|
3221
3750
|
return this._walletInstance.getNetworkId();
|
|
3222
3751
|
}
|
|
3223
3752
|
async getRewardAddresses() {
|
|
3224
|
-
return (await this._walletInstance.getRewardAddresses()).map((t) =>
|
|
3753
|
+
return (await this._walletInstance.getRewardAddresses()).map((t) => rt(t).to_bech32());
|
|
3225
3754
|
}
|
|
3226
3755
|
async getUnusedAddresses() {
|
|
3227
|
-
return (await this._walletInstance.getUnusedAddresses()).map((t) =>
|
|
3756
|
+
return (await this._walletInstance.getUnusedAddresses()).map((t) => rt(t).to_bech32());
|
|
3228
3757
|
}
|
|
3229
3758
|
async getUsedAddresses() {
|
|
3230
|
-
return (await this._walletInstance.getUsedAddresses()).map((t) =>
|
|
3759
|
+
return (await this._walletInstance.getUsedAddresses()).map((t) => rt(t).to_bech32());
|
|
3231
3760
|
}
|
|
3232
3761
|
async getUtxos() {
|
|
3233
|
-
return (await this.getUsedUTxOs()).map((t) =>
|
|
3762
|
+
return (await this.getUsedUTxOs()).map((t) => bt(t));
|
|
3234
3763
|
}
|
|
3235
3764
|
signData(e, t) {
|
|
3236
|
-
const
|
|
3237
|
-
return this._walletInstance.signData(
|
|
3765
|
+
const s = K(e).to_hex();
|
|
3766
|
+
return this._walletInstance.signData(s, S(t));
|
|
3238
3767
|
}
|
|
3239
3768
|
async signTx(e, t = !1) {
|
|
3240
3769
|
try {
|
|
3241
|
-
const
|
|
3242
|
-
return
|
|
3243
|
-
} catch (
|
|
3244
|
-
throw new Error(`[BrowserWallet] An error occurred during signTx: ${JSON.stringify(
|
|
3770
|
+
const s = Y(e), n = s.witness_set(), i = await this._walletInstance.signTx(e, t), o = Ls(i).vkeys() ?? a.Vkeywitnesses.new(), c = Ge(n, o);
|
|
3771
|
+
return n.set_vkeys(c), v(a.Transaction.new(s.body(), n, s.auxiliary_data()).to_bytes());
|
|
3772
|
+
} catch (s) {
|
|
3773
|
+
throw new Error(`[BrowserWallet] An error occurred during signTx: ${JSON.stringify(s)}.`);
|
|
3245
3774
|
}
|
|
3246
3775
|
}
|
|
3247
3776
|
submitTx(e) {
|
|
@@ -3249,49 +3778,49 @@ class Tt {
|
|
|
3249
3778
|
}
|
|
3250
3779
|
async getUsedAddress() {
|
|
3251
3780
|
const e = await this._walletInstance.getUsedAddresses();
|
|
3252
|
-
return
|
|
3781
|
+
return rt(e[0]);
|
|
3253
3782
|
}
|
|
3254
|
-
async getUsedCollateral(e =
|
|
3255
|
-
return (await this._walletInstance.experimental.getCollateral() ?? []).map((
|
|
3783
|
+
async getUsedCollateral(e = P.maxCollateralInputs) {
|
|
3784
|
+
return (await this._walletInstance.experimental.getCollateral() ?? []).map((s) => Ie(s)).slice(0, e);
|
|
3256
3785
|
}
|
|
3257
3786
|
async getUsedUTxOs() {
|
|
3258
|
-
return (await this._walletInstance.getUtxos() ?? []).map((t) =>
|
|
3787
|
+
return (await this._walletInstance.getUtxos() ?? []).map((t) => Ie(t));
|
|
3259
3788
|
}
|
|
3260
3789
|
async getAssets() {
|
|
3261
3790
|
return (await this.getBalance()).filter((t) => t.unit !== "lovelace").map((t) => {
|
|
3262
|
-
const
|
|
3791
|
+
const s = t.unit.slice(0, F), n = t.unit.slice(F), i = Js(s, n);
|
|
3263
3792
|
return {
|
|
3264
3793
|
unit: t.unit,
|
|
3265
|
-
policyId:
|
|
3266
|
-
assetName:
|
|
3267
|
-
fingerprint:
|
|
3794
|
+
policyId: s,
|
|
3795
|
+
assetName: Gt(n),
|
|
3796
|
+
fingerprint: i,
|
|
3268
3797
|
quantity: t.quantity
|
|
3269
3798
|
};
|
|
3270
3799
|
});
|
|
3271
3800
|
}
|
|
3272
3801
|
async getLovelace() {
|
|
3273
|
-
const t = (await this.getBalance()).find((
|
|
3802
|
+
const t = (await this.getBalance()).find((s) => s.unit === "lovelace");
|
|
3274
3803
|
return t !== void 0 ? t.quantity : "0";
|
|
3275
3804
|
}
|
|
3276
3805
|
async getPolicyIdAssets(e) {
|
|
3277
|
-
return (await this.getAssets()).filter((
|
|
3806
|
+
return (await this.getAssets()).filter((s) => s.policyId === e);
|
|
3278
3807
|
}
|
|
3279
3808
|
async getPolicyIds() {
|
|
3280
3809
|
const e = await this.getBalance();
|
|
3281
|
-
return Array.from(new Set(e.map((t) => t.unit.slice(0,
|
|
3810
|
+
return Array.from(new Set(e.map((t) => t.unit.slice(0, F)))).filter((t) => t !== "lovelace");
|
|
3282
3811
|
}
|
|
3283
3812
|
static resolveInstance(e) {
|
|
3284
3813
|
if (window.cardano === void 0)
|
|
3285
3814
|
return;
|
|
3286
|
-
const t =
|
|
3815
|
+
const t = te.map((s) => window.cardano[s]).filter((s) => s !== void 0).find((s) => s.name.toLowerCase() === e.toLowerCase());
|
|
3287
3816
|
return t == null ? void 0 : t.enable();
|
|
3288
3817
|
}
|
|
3289
3818
|
}
|
|
3290
|
-
const
|
|
3291
|
-
class
|
|
3819
|
+
const $e = "http://localhost:4000/", tr = "http://localhost:5000/", er = `${$e}access`, sr = `${$e}transaction/signtx`;
|
|
3820
|
+
class Tr {
|
|
3292
3821
|
static getAxiosInstance() {
|
|
3293
3822
|
return L.create({
|
|
3294
|
-
baseURL:
|
|
3823
|
+
baseURL: tr,
|
|
3295
3824
|
withCredentials: !0
|
|
3296
3825
|
});
|
|
3297
3826
|
}
|
|
@@ -3301,18 +3830,18 @@ class vr {
|
|
|
3301
3830
|
static async openMinaFrontend(e) {
|
|
3302
3831
|
const t = this.getAppId();
|
|
3303
3832
|
e.includes("?") ? e = `${e}&appId=${t}` : e = `${e}?appId=${t}`;
|
|
3304
|
-
const
|
|
3305
|
-
return
|
|
3833
|
+
const s = "left=100,top=100,width=540,height=540", n = window.open(e, "meshWindow", s);
|
|
3834
|
+
return n || console.error("the window did not open", n), await (async () => new Promise((i) => {
|
|
3306
3835
|
window.addEventListener("message", async (o) => {
|
|
3307
|
-
o.data.target == "minaWallet" &&
|
|
3836
|
+
o.data.target == "minaWallet" && i(o.data);
|
|
3308
3837
|
});
|
|
3309
3838
|
}))();
|
|
3310
3839
|
}
|
|
3311
3840
|
static async get(e, t = {}) {
|
|
3312
|
-
const
|
|
3841
|
+
const s = this.getAppId();
|
|
3313
3842
|
t = {
|
|
3314
3843
|
...t,
|
|
3315
|
-
appId:
|
|
3844
|
+
appId: s
|
|
3316
3845
|
};
|
|
3317
3846
|
try {
|
|
3318
3847
|
return (await this.getAxiosInstance().get(e, {
|
|
@@ -3324,7 +3853,7 @@ class vr {
|
|
|
3324
3853
|
}
|
|
3325
3854
|
}
|
|
3326
3855
|
static async enable() {
|
|
3327
|
-
return await this.get("wallet/getuserwalletsmeta") === void 0 ? await this.openMinaFrontend(
|
|
3856
|
+
return await this.get("wallet/getuserwalletsmeta") === void 0 ? await this.openMinaFrontend(er) : !0;
|
|
3328
3857
|
}
|
|
3329
3858
|
static async getChangeAddress(e = void 0, t = void 0) {
|
|
3330
3859
|
return await this.get("wallet/getchangeaddress", {
|
|
@@ -3339,13 +3868,13 @@ class vr {
|
|
|
3339
3868
|
});
|
|
3340
3869
|
}
|
|
3341
3870
|
static async signTx(e, t = !1) {
|
|
3342
|
-
const
|
|
3343
|
-
if (console.log("userWalletsMeta",
|
|
3344
|
-
const
|
|
3345
|
-
if (
|
|
3346
|
-
const
|
|
3347
|
-
o.set_vkeys(
|
|
3348
|
-
const c =
|
|
3871
|
+
const s = await this.get("wallet/getuserwalletsmeta");
|
|
3872
|
+
if (console.log("userWalletsMeta", s), s) {
|
|
3873
|
+
const n = await this.openMinaFrontend(`${sr}?unsignedTx=${e}&partialSign=${t}`);
|
|
3874
|
+
if (n instanceof a.Vkeywitnesses) {
|
|
3875
|
+
const i = Y(e), o = i.witness_set();
|
|
3876
|
+
o.set_vkeys(n);
|
|
3877
|
+
const c = a.Transaction.new(i.body(), o, i.auxiliary_data()).to_hex();
|
|
3349
3878
|
return console.log("signedTx", c), c;
|
|
3350
3879
|
}
|
|
3351
3880
|
} else
|
|
@@ -3353,42 +3882,43 @@ class vr {
|
|
|
3353
3882
|
}
|
|
3354
3883
|
}
|
|
3355
3884
|
export {
|
|
3356
|
-
|
|
3885
|
+
kr as AppWallet,
|
|
3357
3886
|
Cr as BlockfrostProvider,
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3887
|
+
Ot as BrowserWallet,
|
|
3888
|
+
C as EmbeddedWallet,
|
|
3889
|
+
br as ForgeScript,
|
|
3361
3890
|
wr as InfuraProvider,
|
|
3362
3891
|
Br as KoiosProvider,
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
Er as
|
|
3892
|
+
Qr as MaestroProvider,
|
|
3893
|
+
Dr as MeshTxBuilder,
|
|
3894
|
+
Tr as MinaWallet,
|
|
3895
|
+
Er as OgmiosProvider,
|
|
3896
|
+
Sr as TangoProvider,
|
|
3367
3897
|
$ as Transaction,
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3898
|
+
cr as checkSignature,
|
|
3899
|
+
_r as generateNonce,
|
|
3900
|
+
es as isNetwork,
|
|
3901
|
+
is as keepRelevant,
|
|
3902
|
+
or as largestFirst,
|
|
3903
|
+
os as largestFirstMultiAsset,
|
|
3904
|
+
tt as parseAssetUnit,
|
|
3905
|
+
h as parseHttpError,
|
|
3906
|
+
yr as readPlutusData,
|
|
3907
|
+
xr as readTransaction,
|
|
3908
|
+
ur as resolveDataHash,
|
|
3909
|
+
dr as resolveEpochNo,
|
|
3380
3910
|
Js as resolveFingerprint,
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3911
|
+
hr as resolveLanguageView,
|
|
3912
|
+
lr as resolveNativeScriptHash,
|
|
3913
|
+
nt as resolvePaymentKeyHash,
|
|
3914
|
+
Ar as resolvePlutusScriptAddress,
|
|
3915
|
+
gr as resolvePlutusScriptHash,
|
|
3916
|
+
mr as resolvePoolId,
|
|
3387
3917
|
Ir as resolvePrivateKey,
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3918
|
+
Tt as resolveRewardAddress,
|
|
3919
|
+
pr as resolveScriptRef,
|
|
3920
|
+
fr as resolveSlotNo,
|
|
3921
|
+
lt as resolveStakeKeyHash,
|
|
3392
3922
|
Le as resolveTxFees,
|
|
3393
3923
|
js as resolveTxHash
|
|
3394
3924
|
};
|