@helios-lang/effect 0.4.33 → 0.4.35

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.
@@ -0,0 +1,75 @@
1
+ import { Either } from "effect";
2
+ import * as Bytes from "../../Codecs/Bytes.js";
3
+ import * as Cbor from "../../Codecs/Cbor.js";
4
+ import * as PubKey from "../Ledger/PubKey.js";
5
+ export const decode = (bytes) => Either.gen(function* () {
6
+ const pairs = yield* Cbor.decodeMap(Cbor.decodeInt, decodeHeaderValue)(bytes);
7
+ let kty;
8
+ let alg;
9
+ let crv;
10
+ let pubKey;
11
+ for (const [key, value] of pairs) {
12
+ switch (key) {
13
+ case 1n:
14
+ if (typeof value == "bigint") {
15
+ kty = value;
16
+ }
17
+ break;
18
+ case 3n:
19
+ if (typeof value == "bigint") {
20
+ alg = value;
21
+ }
22
+ break;
23
+ case -1n:
24
+ if (typeof value == "bigint") {
25
+ crv = value;
26
+ }
27
+ break;
28
+ case -2n:
29
+ if (value instanceof Uint8Array) {
30
+ pubKey = yield* PubKey.make(value).pipe(Either.mapLeft((e) => new Cbor.DecodeError(Bytes.makeStream(bytes), e.message ?? "Invalid COSE PubKey")));
31
+ }
32
+ break;
33
+ }
34
+ }
35
+ if (kty === undefined) {
36
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE PubKey: kty not set (i.e. field 1 not set)"));
37
+ }
38
+ if (kty != 1n) {
39
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), `invalid COSE PubKey: kty not set to OKP (i.e. field 1 not set to 1), got ${kty}`));
40
+ }
41
+ if (alg === undefined) {
42
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE PubKey: alg not set (i.e. field 3 not set)"));
43
+ }
44
+ if (alg != -8n) {
45
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), `invalid COSE PubKey: alg not set to EdDSA (i.e. field 3 not set to -8), got ${alg}`));
46
+ }
47
+ if (crv === undefined) {
48
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE PubKey: crv not set (i.e. field -1 not set)"));
49
+ }
50
+ if (crv != 6n) {
51
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), `invalid COSE PubKey: crv not set to Ed25519 (i.e. field -1 not set to 6), got ${crv}`));
52
+ }
53
+ if (!pubKey) {
54
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE PubKey: pubKey field not set (i.e. field -2 not set)"));
55
+ }
56
+ return pubKey;
57
+ });
58
+ export function encode(pubKey) {
59
+ return Cbor.encodeMap([
60
+ [Cbor.encodeInt(1), Cbor.encodeInt(1)],
61
+ [Cbor.encodeInt(3), Cbor.encodeInt(-8)],
62
+ [Cbor.encodeInt(-1), Cbor.encodeInt(6)],
63
+ [Cbor.encodeInt(-2), PubKey.encode(pubKey)]
64
+ ]);
65
+ }
66
+ const decodeHeaderValue = (bytes) => {
67
+ if (Cbor.isInt(bytes)) {
68
+ return Cbor.decodeInt(bytes);
69
+ }
70
+ if (Cbor.isBytes(bytes)) {
71
+ return Cbor.decodeBytes(bytes).pipe(Either.map((bs) => Uint8Array.from(bs)));
72
+ }
73
+ return Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE PubKey: unexpected header value type"));
74
+ };
75
+ //# sourceMappingURL=PubKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PubKey.js","sourceRoot":"","sources":["../../../src/Cardano/Cose/PubKey.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import { Either } from "effect";
2
+ import * as Bytes from "../../Codecs/Bytes.js";
3
+ import * as Cbor from "../../Codecs/Cbor.js";
4
+ import * as Bip32 from "../../Crypto/Bip32.js";
5
+ import * as Ed25519 from "../../Crypto/Ed25519.js";
6
+ import * as Address from "../Ledger/Address.js";
7
+ import * as PubKey from "../Ledger/PubKey.js";
8
+ export function make(address, payload, bytes, kid) {
9
+ assertPubKeyAddress(address);
10
+ const sign1 = {
11
+ address,
12
+ payload: Bytes.toUint8Array(payload),
13
+ bytes: Bytes.toUint8Array(bytes)
14
+ };
15
+ if (kid !== undefined) {
16
+ return {
17
+ ...sign1,
18
+ kid: Bytes.toUint8Array(kid)
19
+ };
20
+ }
21
+ return sign1;
22
+ }
23
+ export function sign(address, privateKey, payload, kid) {
24
+ const payloadBytes = Bytes.toUint8Array(payload);
25
+ const kidBytes = kid === undefined ? undefined : Bytes.toUint8Array(kid);
26
+ const signature = Bip32.sign(privateKey)(sigStructure(address, payloadBytes, kidBytes));
27
+ return make(address, payloadBytes, signature.bytes, kidBytes);
28
+ }
29
+ export const decode = (bytes) => Either.gen(function* () {
30
+ const [protectedHeaderBytes, , payload, signatureBytes] = yield* Cbor.decodeTuple([
31
+ Cbor.decodeBytes,
32
+ Cbor.decodeMap(Cbor.decodeString, Cbor.decodeBool),
33
+ Cbor.decodeBytes,
34
+ Cbor.decodeBytes
35
+ ])(bytes);
36
+ const protectedHeader = yield* Cbor.decodeMap(decodeProtectedHeaderKey, decodeProtectedHeaderValue)(protectedHeaderBytes);
37
+ let alg;
38
+ let kid;
39
+ let addressBytes;
40
+ for (const [key, value] of protectedHeader) {
41
+ switch (key) {
42
+ case 1n:
43
+ if (typeof value == "bigint") {
44
+ alg = value;
45
+ }
46
+ break;
47
+ case 4n:
48
+ if (value instanceof Uint8Array) {
49
+ kid = value;
50
+ }
51
+ break;
52
+ case "address":
53
+ if (value instanceof Uint8Array) {
54
+ addressBytes = value;
55
+ }
56
+ break;
57
+ }
58
+ }
59
+ if (alg === undefined) {
60
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE Sign1 header: alg not set (i.e. field 1 not set)"));
61
+ }
62
+ if (alg != -8n) {
63
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), `invalid COSE Sign1 header: alg not set to EdDSA (i.e. field 1 not set to -8), got ${alg}`));
64
+ }
65
+ if (addressBytes === undefined) {
66
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE Sign1 header: address not set"));
67
+ }
68
+ const address = yield* Address.decode(addressBytes).pipe(Either.mapLeft((e) => new Cbor.DecodeError(Bytes.makeStream(bytes), e.message ?? "invalid COSE Sign1 header: invalid address format")));
69
+ if (Address.spendingCredential(address)._tag != "PubKey") {
70
+ return yield* Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE Sign1 header address: not a PubKeyHash address"));
71
+ }
72
+ return make(address, Uint8Array.from(payload), Uint8Array.from(signatureBytes), kid);
73
+ });
74
+ export function encode(sign1) {
75
+ return Cbor.encodeTuple([
76
+ Cbor.encodeBytes(encodeProtectedHeader(sign1.address, sign1.kid)),
77
+ Cbor.encodeMap([[Cbor.encodeString("hashed"), Cbor.encodeBool(false)]]),
78
+ Cbor.encodeBytes(sign1.payload),
79
+ Cbor.encodeBytes(sign1.bytes)
80
+ ]);
81
+ }
82
+ export function verify(sign1, pubKey) {
83
+ const isValid = Either.getOrThrow(Ed25519.verify(sign1.bytes, Uint8Array.from(sigStructure(sign1.address, sign1.payload, sign1.kid)), PubKey.bytes(pubKey)));
84
+ if (!isValid) {
85
+ throw new Error("invalid COSE Sign1 signature");
86
+ }
87
+ }
88
+ export function encodeProtectedHeader(address, kid) {
89
+ const pairs = [
90
+ [Cbor.encodeInt(1), Cbor.encodeInt(-8)]
91
+ ];
92
+ if (kid !== undefined) {
93
+ pairs.push([Cbor.encodeInt(4), Cbor.encodeBytes(Bytes.toArray(kid))]);
94
+ }
95
+ pairs.push([
96
+ Cbor.encodeString("address"),
97
+ Cbor.encodeBytes(Address.bytes(address))
98
+ ]);
99
+ return Cbor.encodeMap(pairs);
100
+ }
101
+ export function sigStructure(address, payload, kid) {
102
+ return Cbor.encodeTuple([
103
+ Cbor.encodeString("Signature1"),
104
+ Cbor.encodeBytes(encodeProtectedHeader(address, kid)),
105
+ Cbor.encodeBytes([]),
106
+ Cbor.encodeBytes(Bytes.toArray(payload))
107
+ ]);
108
+ }
109
+ const decodeProtectedHeaderKey = (bytes) => {
110
+ if (Cbor.isInt(bytes)) {
111
+ return Cbor.decodeInt(bytes);
112
+ }
113
+ if (Cbor.isString(bytes)) {
114
+ return Cbor.decodeString(bytes);
115
+ }
116
+ return Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE Sign1 header: unexpected key type"));
117
+ };
118
+ const decodeProtectedHeaderValue = (bytes) => {
119
+ if (Cbor.isInt(bytes)) {
120
+ return Cbor.decodeInt(bytes);
121
+ }
122
+ if (Cbor.isBytes(bytes)) {
123
+ return Cbor.decodeBytes(bytes).pipe(Either.map((bs) => Uint8Array.from(bs)));
124
+ }
125
+ return Either.left(new Cbor.DecodeError(Bytes.makeStream(bytes), "invalid COSE Sign1 header: unexpected value type"));
126
+ };
127
+ function assertPubKeyAddress(address) {
128
+ if (Address.spendingCredential(address)._tag != "PubKey") {
129
+ throw new Error("invalid COSE Sign1 header address: not a PubKeyHash address");
130
+ }
131
+ }
132
+ //# sourceMappingURL=Sign1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sign1.js","sourceRoot":"","sources":["../../../src/Cardano/Cose/Sign1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAA;AAClD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAS7C,MAAM,UAAU,IAAI,CAClB,OAAwB,EACxB,OAAwB,EACxB,KAAsB,EACtB,GAAqB;IAErB,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAE5B,MAAM,KAAK,GAAG;QACZ,OAAO;QACP,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;QACpC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;KACjC,CAAA;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,KAAK;YACR,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;SAC7B,CAAA;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,OAAwB,EACxB,UAA4B,EAC5B,OAAwB,EACxB,GAAqB;IAErB,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CACtC,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAC9C,CAAA;IAED,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAsB,EAA4B,EAAE,CACzE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,CAAC,oBAAoB,EAAE,AAAD,EAAG,OAAO,EAAE,cAAc,CAAC,GACrD,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACtB,IAAI,CAAC,WAAW;QAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC;QAClD,IAAI,CAAC,WAAW;QAChB,IAAI,CAAC,WAAW;KACjB,CAAC,CAAC,KAAK,CAAC,CAAA;IAEX,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAC3C,wBAAwB,EACxB,0BAA0B,CAC3B,CAAC,oBAAoB,CAAC,CAAA;IAEvB,IAAI,GAAuB,CAAA;IAC3B,IAAI,GAA2B,CAAA;IAC/B,IAAI,YAAoC,CAAA;IAExC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;QAC3C,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,EAAE;gBACL,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC7B,GAAG,GAAG,KAAK,CAAA;gBACb,CAAC;gBACD,MAAK;YACP,KAAK,EAAE;gBACL,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;oBAChC,GAAG,GAAG,KAAK,CAAA;gBACb,CAAC;gBACD,MAAK;YACP,KAAK,SAAS;gBACZ,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;oBAChC,YAAY,GAAG,KAAK,CAAA;gBACtB,CAAC;gBACD,MAAK;QACT,CAAC;IACH,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAClB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EACvB,+DAA+D,CAChE,CACF,CAAA;IACH,CAAC;IAED,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAClB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EACvB,qFAAqF,GAAG,EAAE,CAC3F,CACF,CAAA;IACH,CAAC;IAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAClB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EACvB,4CAA4C,CAC7C,CACF,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CACtD,MAAM,CAAC,OAAO,CACZ,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,IAAI,CAAC,WAAW,CAClB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EACvB,CAAC,CAAC,OAAO,IAAI,mDAAmD,CACjE,CACJ,CACF,CAAA;IAED,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAClB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EACvB,6DAA6D,CAC9D,CACF,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CACT,OAAO,EACP,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EACxB,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAC/B,GAAG,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,UAAU,MAAM,CAAC,KAAY;IACjC,OAAO,IAAI,CAAC,WAAW,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;KAC9B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAY,EAAE,MAAqB;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAC/B,OAAO,CAAC,MAAM,CACZ,KAAK,CAAC,KAAK,EACX,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EACtE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CACrB,CACF,CAAA;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAwB,EACxB,GAAqB;IAErB,MAAM,KAAK,GAA2B;QACpC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KACxC,CAAA;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACzC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAwB,EACxB,OAAwB,EACxB,GAAqB;IAErB,OAAO,IAAI,CAAC,WAAW,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACzC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,wBAAwB,GAAG,CAC/B,KAAsB,EACc,EAAE;IACtC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,IAAI,CAAC,WAAW,CAClB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EACvB,gDAAgD,CACjD,CACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,0BAA0B,GAAG,CACjC,KAAsB,EACkB,EAAE;IAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,IAAI,CAAC,WAAW,CAClB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EACvB,kDAAkD,CACnD,CACF,CAAA;AACH,CAAC,CAAA;AAED,SAAS,mBAAmB,CAAC,OAAwB;IACnD,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * as PubKey from "./PubKey.js";
2
+ export * as Sign1 from "./Sign1.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cardano/Cose/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { Context, Effect } from "effect";
2
2
  import * as Bip32 from "../Crypto/Bip32.js";
3
3
  import * as Bip39 from "../Crypto/Bip39.js";
4
+ import * as Cose from "./Cose/index.js";
4
5
  import * as Address from "./Ledger/Address.js";
5
6
  import * as PubKey from "./Ledger/PubKey.js";
6
7
  import * as Signature from "./Ledger/Signature.js";
@@ -42,6 +43,20 @@ export const Phrase = (phrase, account = 0, subAccount = 0) => Effect.gen(functi
42
43
  addressSync: address,
43
44
  changeAddress: Effect.succeed(address),
44
45
  utxos: utxosAt(address).pipe(Effect.mapError((e) => new Error(e.message))),
46
+ signData: (candidateAddress, data) => Effect.gen(function* () {
47
+ if (Address.stakingCredential(candidateAddress)) {
48
+ return yield* Effect.fail(new Error("given address contains a staking credential but Phrase wallet only supports enterprise addresses"));
49
+ }
50
+ const spendingCredential = Address.spendingCredential(candidateAddress);
51
+ if (spendingCredential._tag != "PubKey" ||
52
+ spendingCredential.hash != spendingPubKeyHash) {
53
+ return yield* Effect.fail(new Error("given address.spendingCredential doesn't correspond to Phrase wallet's spending credential"));
54
+ }
55
+ return {
56
+ signature: Cose.Sign1.sign(candidateAddress, spendingPrivateKey, data),
57
+ key: spendingPublicKey
58
+ };
59
+ }),
45
60
  signTx: (tx) => Effect.succeed([Bip32.sign(spendingPrivateKey)(Tx.hash(tx))])
46
61
  };
47
62
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.js","sourceRoot":"","sources":["../../src/Cardano/Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAE7C,MAAM,OAAO,SAAU,SAAQ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAOnE;CAAG;AAEN;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,MAAyB,EACzB,UAAkB,CAAC,EACnB,aAAqB,CAAC,EACtB,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB;;OAEG;IACH,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAEzC;;OAEG;IACH,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;QAChD,IAAI,GAAG,KAAK,CAAC,MAAM;QACnB,IAAI,GAAG,KAAK,CAAC,MAAM;QACnB,OAAO,GAAG,KAAK,CAAC,MAAM;QACtB,CAAC;QACD,UAAU;KACX,CAAC,CAAA;IACF,MAAM,iBAAiB,GAAG,KAAK,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAA;IACzE,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAEzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAA;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;QACtC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,kBAAkB;KACzB,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;IAEtC,OAAO;QACL,WAAW,EAAE,OAAO;QACpB,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QACtC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAC1B,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAC7C;QACD,MAAM,EAAE,CAAC,EAAS,EAAE,EAAE,CACpB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAChE,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC1C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;AACxC,CAAC,CAAA"}
1
+ {"version":3,"file":"Wallet.js","sourceRoot":"","sources":["../../src/Cardano/Wallet.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * as CoinSelection from "./CoinSelection.js";
2
+ export * as Cose from "./Cose/index.js";
2
3
  export * as Ledger from "./Ledger/index.js";
3
4
  export * as Network from "./Network/index.js";
4
5
  export * as ScriptContext from "./ScriptContext.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Cardano/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Cardano/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helios-lang/effect",
3
- "version": "0.4.33",
3
+ "version": "0.4.35",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -0,0 +1,6 @@
1
+ import * as Bytes from "../../Codecs/Bytes.js";
2
+ import * as Cbor from "../../Codecs/Cbor.js";
3
+ import * as PubKey from "../Ledger/PubKey.js";
4
+ export declare const decode: (bytes: Bytes.BytesLike) => Cbor.DecodeResult<PubKey.PubKey>;
5
+ export declare function encode(pubKey: PubKey.PubKey): number[];
6
+ //# sourceMappingURL=PubKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PubKey.d.ts","sourceRoot":"","sources":["../../../src/Cardano/Cose/PubKey.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAE7C,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,CAAC,SAAS,KACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CA6G9B,CAAA;AAEJ,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,CAOtD"}
@@ -0,0 +1,19 @@
1
+ import * as Bytes from "../../Codecs/Bytes.js";
2
+ import * as Cbor from "../../Codecs/Cbor.js";
3
+ import * as Bip32 from "../../Crypto/Bip32.js";
4
+ import * as Address from "../Ledger/Address.js";
5
+ import * as PubKey from "../Ledger/PubKey.js";
6
+ export type Sign1 = {
7
+ address: Address.Address;
8
+ payload: Uint8Array;
9
+ bytes: Uint8Array;
10
+ kid?: Uint8Array;
11
+ };
12
+ export declare function make(address: Address.Address, payload: Bytes.BytesLike, bytes: Bytes.BytesLike, kid?: Bytes.BytesLike): Sign1;
13
+ export declare function sign(address: Address.Address, privateKey: Bip32.SigningKey, payload: Bytes.BytesLike, kid?: Bytes.BytesLike): Sign1;
14
+ export declare const decode: (bytes: Bytes.BytesLike) => Cbor.DecodeResult<Sign1>;
15
+ export declare function encode(sign1: Sign1): number[];
16
+ export declare function verify(sign1: Sign1, pubKey: PubKey.PubKey): void;
17
+ export declare function encodeProtectedHeader(address: Address.Address, kid?: Bytes.BytesLike): number[];
18
+ export declare function sigStructure(address: Address.Address, payload: Bytes.BytesLike, kid?: Bytes.BytesLike): number[];
19
+ //# sourceMappingURL=Sign1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sign1.d.ts","sourceRoot":"","sources":["../../../src/Cardano/Cose/Sign1.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAE9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAE7C,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,OAAO,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,UAAU,CAAA;IACjB,GAAG,CAAC,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,wBAAgB,IAAI,CAClB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,KAAK,CAAC,SAAS,EACxB,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,GACpB,KAAK,CAiBP;AAED,wBAAgB,IAAI,CAClB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,OAAO,EAAE,KAAK,CAAC,SAAS,EACxB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,GACpB,KAAK,CAQP;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,CAAC,SAAS,KAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CA2FnE,CAAA;AAEJ,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAO7C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAYhE;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,GACpB,MAAM,EAAE,CAeV;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,KAAK,CAAC,SAAS,EACxB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,GACpB,MAAM,EAAE,CAOV"}
@@ -0,0 +1,3 @@
1
+ export * as PubKey from "./PubKey.js";
2
+ export * as Sign1 from "./Sign1.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cardano/Cose/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA"}
@@ -229,6 +229,6 @@ export interface BabelFeeOptions {
229
229
  */
230
230
  readonly assetClass: AssetClass.AssetClass;
231
231
  }
232
- export declare const build: (options?: BuildOptions) => (b: TxBuilder) => Effect.Effect<Tx.Tx, import("effect/ParseResult").ParseError | Error, Network.IsMainnet | Network.UTxO | Network.Params.params | BalancingWallet>;
232
+ export declare const build: (options?: BuildOptions) => (b: TxBuilder) => Effect.Effect<Tx.Tx, Error | import("effect/ParseResult").ParseError, BalancingWallet | Network.IsMainnet | Network.Params.params | Network.UTxO>;
233
233
  export {};
234
234
  //# sourceMappingURL=TxBuilder.d.ts.map
@@ -1,6 +1,7 @@
1
1
  import { Context, Effect } from "effect";
2
2
  import * as Bip32 from "../Crypto/Bip32.js";
3
3
  import * as Bip39 from "../Crypto/Bip39.js";
4
+ import * as Cose from "./Cose/index.js";
4
5
  import * as Address from "./Ledger/Address.js";
5
6
  import * as Signature from "./Ledger/Signature.js";
6
7
  import * as Tx from "./Ledger/Tx.js";
@@ -61,8 +62,12 @@ export declare const Phrase: (phrase: string | string[], account?: number, subAc
61
62
  } | undefined;
62
63
  };
63
64
  }[], Error, never>;
65
+ signData: (candidateAddress: Address.Address, data: Uint8Array | number[] | string) => Effect.Effect<{
66
+ signature: Cose.Sign1.Sign1;
67
+ key: string & import("effect/Brand").Brand<"Crypto.Bip32.VerificationKey">;
68
+ }, Error, never>;
64
69
  signTx: (tx: Tx.Tx) => Effect.Effect<Bip32.Signature[], never, never>;
65
- }, Bip39.InvalidPhraseLength | Bip39.InvalidWord | Bip39.InvalidChecksum, Network.IsMainnet | Network.UTxOsAt>;
70
+ }, Bip39.InvalidPhraseLength | Bip39.InvalidWord | Bip39.InvalidChecksum, Network.UTxOsAt | Network.IsMainnet>;
66
71
  export declare const Browser: (_handle: unknown) => never;
67
72
  export {};
68
73
  //# sourceMappingURL=Wallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../src/Cardano/Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAE9C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;;mBAK1B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;WACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC;eAC7B,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC;;AALlE,qBAAa,SAAU,SAAQ,cAO5B;CAAG;AAEN;;;;GAIG;AACH,eAAO,MAAM,MAAM,GACjB,QAAQ,MAAM,GAAG,MAAM,EAAE,EACzB,UAAS,MAAU,EACnB,aAAY,MAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCL,EAAE,CAAC,EAAE;8GAGpB,CAAA;AAEJ,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,UAEvC,CAAA"}
1
+ {"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../src/Cardano/Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAE9C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;;mBAK1B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;WACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC;eAC7B,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC;;AALlE,qBAAa,SAAU,SAAQ,cAO5B;CAAG;AAEN;;;;GAIG;AACH,eAAO,MAAM,MAAM,GACjB,QAAQ,MAAM,GAAG,MAAM,EAAE,EACzB,UAAS,MAAU,EACnB,aAAY,MAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAoCE,OAAO,CAAC,OAAO,QAC3B,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM;;;;iBAkCzB,EAAE,CAAC,EAAE;8GAGpB,CAAA;AAEJ,eAAO,MAAM,OAAO,GAAI,SAAS,OAAO,UAEvC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * as CoinSelection from "./CoinSelection.js";
2
+ export * as Cose from "./Cose/index.js";
2
3
  export * as Ledger from "./Ledger/index.js";
3
4
  export * as Network from "./Network/index.js";
4
5
  export * as ScriptContext from "./ScriptContext.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Cardano/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Cardano/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}