@cardano-sdk/hardware-trezor 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +5 -0
  3. package/README.md +1 -0
  4. package/dist/cjs/TrezorKeyAgent.d.ts +34 -0
  5. package/dist/cjs/TrezorKeyAgent.d.ts.map +1 -0
  6. package/dist/cjs/TrezorKeyAgent.js +179 -0
  7. package/dist/cjs/TrezorKeyAgent.js.map +1 -0
  8. package/dist/cjs/index.d.ts +4 -0
  9. package/dist/cjs/index.d.ts.map +1 -0
  10. package/dist/cjs/index.js +20 -0
  11. package/dist/cjs/index.js.map +1 -0
  12. package/dist/cjs/package.json +3 -0
  13. package/dist/cjs/transformers/additionalWitnessRequests.d.ts +5 -0
  14. package/dist/cjs/transformers/additionalWitnessRequests.d.ts.map +1 -0
  15. package/dist/cjs/transformers/additionalWitnessRequests.js +25 -0
  16. package/dist/cjs/transformers/additionalWitnessRequests.js.map +1 -0
  17. package/dist/cjs/transformers/assets.d.ts +4 -0
  18. package/dist/cjs/transformers/assets.d.ts.map +1 -0
  19. package/dist/cjs/transformers/assets.js +39 -0
  20. package/dist/cjs/transformers/assets.js.map +1 -0
  21. package/dist/cjs/transformers/auxiliaryData.d.ts +4 -0
  22. package/dist/cjs/transformers/auxiliaryData.d.ts.map +1 -0
  23. package/dist/cjs/transformers/auxiliaryData.js +8 -0
  24. package/dist/cjs/transformers/auxiliaryData.js.map +1 -0
  25. package/dist/cjs/transformers/certificates.d.ts +11 -0
  26. package/dist/cjs/transformers/certificates.d.ts.map +1 -0
  27. package/dist/cjs/transformers/certificates.js +131 -0
  28. package/dist/cjs/transformers/certificates.js.map +1 -0
  29. package/dist/cjs/transformers/index.d.ts +7 -0
  30. package/dist/cjs/transformers/index.d.ts.map +1 -0
  31. package/dist/cjs/transformers/index.js +23 -0
  32. package/dist/cjs/transformers/index.js.map +1 -0
  33. package/dist/cjs/transformers/keyPaths.d.ts +6 -0
  34. package/dist/cjs/transformers/keyPaths.d.ts.map +1 -0
  35. package/dist/cjs/transformers/keyPaths.js +20 -0
  36. package/dist/cjs/transformers/keyPaths.js.map +1 -0
  37. package/dist/cjs/transformers/tx.d.ts +10 -0
  38. package/dist/cjs/transformers/tx.d.ts.map +1 -0
  39. package/dist/cjs/transformers/tx.js +30 -0
  40. package/dist/cjs/transformers/tx.js.map +1 -0
  41. package/dist/cjs/transformers/txIn.d.ts +7 -0
  42. package/dist/cjs/transformers/txIn.d.ts.map +1 -0
  43. package/dist/cjs/transformers/txIn.js +16 -0
  44. package/dist/cjs/transformers/txIn.js.map +1 -0
  45. package/dist/cjs/transformers/txOut.d.ts +6 -0
  46. package/dist/cjs/transformers/txOut.d.ts.map +1 -0
  47. package/dist/cjs/transformers/txOut.js +65 -0
  48. package/dist/cjs/transformers/txOut.js.map +1 -0
  49. package/dist/cjs/transformers/withdrawals.d.ts +6 -0
  50. package/dist/cjs/transformers/withdrawals.d.ts.map +1 -0
  51. package/dist/cjs/transformers/withdrawals.js +36 -0
  52. package/dist/cjs/transformers/withdrawals.js.map +1 -0
  53. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  54. package/dist/cjs/types.d.ts +14 -0
  55. package/dist/cjs/types.d.ts.map +1 -0
  56. package/dist/cjs/types.js +3 -0
  57. package/dist/cjs/types.js.map +1 -0
  58. package/dist/esm/TrezorKeyAgent.d.ts +34 -0
  59. package/dist/esm/TrezorKeyAgent.d.ts.map +1 -0
  60. package/dist/esm/TrezorKeyAgent.js +149 -0
  61. package/dist/esm/TrezorKeyAgent.js.map +1 -0
  62. package/dist/esm/index.d.ts +4 -0
  63. package/dist/esm/index.d.ts.map +1 -0
  64. package/dist/esm/index.js +4 -0
  65. package/dist/esm/index.js.map +1 -0
  66. package/dist/esm/package.json +4 -0
  67. package/dist/esm/transformers/additionalWitnessRequests.d.ts +5 -0
  68. package/dist/esm/transformers/additionalWitnessRequests.d.ts.map +1 -0
  69. package/dist/esm/transformers/additionalWitnessRequests.js +18 -0
  70. package/dist/esm/transformers/additionalWitnessRequests.js.map +1 -0
  71. package/dist/esm/transformers/assets.d.ts +4 -0
  72. package/dist/esm/transformers/assets.d.ts.map +1 -0
  73. package/dist/esm/transformers/assets.js +35 -0
  74. package/dist/esm/transformers/assets.js.map +1 -0
  75. package/dist/esm/transformers/auxiliaryData.d.ts +4 -0
  76. package/dist/esm/transformers/auxiliaryData.d.ts.map +1 -0
  77. package/dist/esm/transformers/auxiliaryData.js +4 -0
  78. package/dist/esm/transformers/auxiliaryData.js.map +1 -0
  79. package/dist/esm/transformers/certificates.d.ts +11 -0
  80. package/dist/esm/transformers/certificates.d.ts.map +1 -0
  81. package/dist/esm/transformers/certificates.js +103 -0
  82. package/dist/esm/transformers/certificates.js.map +1 -0
  83. package/dist/esm/transformers/index.d.ts +7 -0
  84. package/dist/esm/transformers/index.d.ts.map +1 -0
  85. package/dist/esm/transformers/index.js +7 -0
  86. package/dist/esm/transformers/index.js.map +1 -0
  87. package/dist/esm/transformers/keyPaths.d.ts +6 -0
  88. package/dist/esm/transformers/keyPaths.d.ts.map +1 -0
  89. package/dist/esm/transformers/keyPaths.js +15 -0
  90. package/dist/esm/transformers/keyPaths.js.map +1 -0
  91. package/dist/esm/transformers/tx.d.ts +10 -0
  92. package/dist/esm/transformers/tx.d.ts.map +1 -0
  93. package/dist/esm/transformers/tx.js +26 -0
  94. package/dist/esm/transformers/tx.js.map +1 -0
  95. package/dist/esm/transformers/txIn.d.ts +7 -0
  96. package/dist/esm/transformers/txIn.d.ts.map +1 -0
  97. package/dist/esm/transformers/txIn.js +11 -0
  98. package/dist/esm/transformers/txIn.js.map +1 -0
  99. package/dist/esm/transformers/txOut.d.ts +6 -0
  100. package/dist/esm/transformers/txOut.d.ts.map +1 -0
  101. package/dist/esm/transformers/txOut.js +37 -0
  102. package/dist/esm/transformers/txOut.js.map +1 -0
  103. package/dist/esm/transformers/withdrawals.d.ts +6 -0
  104. package/dist/esm/transformers/withdrawals.d.ts.map +1 -0
  105. package/dist/esm/transformers/withdrawals.js +31 -0
  106. package/dist/esm/transformers/withdrawals.js.map +1 -0
  107. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  108. package/dist/esm/types.d.ts +14 -0
  109. package/dist/esm/types.d.ts.map +1 -0
  110. package/dist/esm/types.js +2 -0
  111. package/dist/esm/types.js.map +1 -0
  112. package/package.json +69 -0
@@ -0,0 +1,14 @@
1
+ import * as Trezor from '@trezor/connect';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { GroupedAddress } from '@cardano-sdk/key-management';
4
+ export declare type TrezorTxTransformerContext = {
5
+ chainId: Cardano.ChainId;
6
+ inputResolver: Cardano.InputResolver;
7
+ knownAddresses: GroupedAddress[];
8
+ };
9
+ export declare type TrezorTxOutputDestination = {
10
+ addressParameters: Trezor.CardanoAddressParameters;
11
+ } | {
12
+ address: string;
13
+ };
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAU7D,oBAAY,0BAA0B,GAAG;IACvC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;IACrC,cAAc,EAAE,cAAc,EAAE,CAAC;CAClC,CAAC;AAEF,oBAAY,yBAAyB,GACjC;IACE,iBAAiB,EAAE,MAAM,CAAC,wBAAwB,CAAC;CACpD,GACD;IACE,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import * as Crypto from '@cardano-sdk/crypto';
2
+ import * as Trezor from '@trezor/connect';
3
+ import { Cardano } from '@cardano-sdk/core';
4
+ import { CommunicationType, KeyAgentBase, KeyAgentDependencies, SerializableTrezorKeyAgentData, SignBlobResult, TrezorConfig } from '@cardano-sdk/key-management';
5
+ import TrezorConnectWeb from '@trezor/connect-web';
6
+ declare const TrezorConnectNode: Trezor.TrezorConnect;
7
+ export interface TrezorKeyAgentProps extends Omit<SerializableTrezorKeyAgentData, '__typename'> {
8
+ isTrezorInitialized?: boolean;
9
+ }
10
+ export interface GetTrezorXpubProps {
11
+ accountIndex: number;
12
+ communicationType: CommunicationType;
13
+ }
14
+ export interface CreateTrezorKeyAgentProps {
15
+ chainId: Cardano.ChainId;
16
+ accountIndex?: number;
17
+ trezorConfig: TrezorConfig;
18
+ }
19
+ export declare type TrezorConnectInstanceType = typeof TrezorConnectNode | typeof TrezorConnectWeb;
20
+ export declare class TrezorKeyAgent extends KeyAgentBase {
21
+ #private;
22
+ readonly isTrezorInitialized: Promise<boolean>;
23
+ constructor({ isTrezorInitialized, ...serializableData }: TrezorKeyAgentProps, dependencies: KeyAgentDependencies);
24
+ static initializeTrezorTransport({ manifest, communicationType, silentMode, lazyLoad }: TrezorConfig): Promise<boolean>;
25
+ static checkDeviceConnection(communicationType: CommunicationType): Promise<Trezor.Features>;
26
+ static getXpub({ accountIndex, communicationType }: GetTrezorXpubProps): Promise<Crypto.Bip32PublicKeyHex>;
27
+ static createWithDevice({ chainId, accountIndex, trezorConfig }: CreateTrezorKeyAgentProps, dependencies: KeyAgentDependencies): Promise<TrezorKeyAgent>;
28
+ static getSigningMode(tx: Omit<Trezor.CardanoSignTransaction, 'signingMode'>): Trezor.PROTO.CardanoTxSigningMode;
29
+ signTransaction(tx: Cardano.TxBodyWithHash): Promise<Cardano.Signatures>;
30
+ signBlob(): Promise<SignBlobResult>;
31
+ exportRootPrivateKey(): Promise<Crypto.Bip32PrivateKeyHex>;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=TrezorKeyAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrezorKeyAgent.d.ts","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAuB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAEL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EAEpB,8BAA8B,EAC9B,cAAc,EACd,YAAY,EAEb,MAAM,6BAA6B,CAAC;AAErC,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AAEnD,QAAA,MAAM,iBAAiB,sBAAiB,CAAC;AAQzC,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,8BAA8B,EAAE,YAAY,CAAC;IAC7F,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,oBAAY,yBAAyB,GAAG,OAAO,iBAAiB,GAAG,OAAO,gBAAgB,CAAC;AAK3F,qBAAa,cAAe,SAAQ,YAAY;;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAGnC,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB;WAQpG,yBAAyB,CAAC,EACrC,QAAQ,EACR,iBAAiB,EACjB,UAAkB,EAClB,QAAgB,EACjB,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;WAsBrB,qBAAqB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;WAgBrF,OAAO,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;WAkBnG,gBAAgB,CAC3B,EAAE,OAAO,EAAE,YAAgB,EAAE,YAAY,EAAE,EAAE,yBAAyB,EACtE,YAAY,EAAE,oBAAoB;IAuBpC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,oBAAoB;IAgB1G,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IA4CxE,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAInC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;CAGjE"}
@@ -0,0 +1,149 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _TrezorKeyAgent_communicationType;
13
+ import * as Crypto from '@cardano-sdk/crypto';
14
+ import * as Trezor from '@trezor/connect';
15
+ import { NotImplementedError } from '@cardano-sdk/core';
16
+ import { CardanoKeyConst, CommunicationType, KeyAgentBase, KeyAgentType, errors } from '@cardano-sdk/key-management';
17
+ import { txToTrezor } from './transformers/tx';
18
+ import TrezorConnectWeb from '@trezor/connect-web';
19
+ const TrezorConnectNode = Trezor.default;
20
+ const transportTypedError = (error) => new errors.AuthenticationError('Trezor transport failed', new errors.TransportError('Trezor transport failed', error));
21
+ const getTrezorConnect = (communicationType) => communicationType === CommunicationType.Node ? TrezorConnectNode : TrezorConnectWeb;
22
+ export class TrezorKeyAgent extends KeyAgentBase {
23
+ constructor({ isTrezorInitialized, ...serializableData }, dependencies) {
24
+ super({ ...serializableData, __typename: KeyAgentType.Trezor }, dependencies);
25
+ _TrezorKeyAgent_communicationType.set(this, void 0);
26
+ if (!isTrezorInitialized) {
27
+ this.isTrezorInitialized = TrezorKeyAgent.initializeTrezorTransport(serializableData.trezorConfig);
28
+ }
29
+ __classPrivateFieldSet(this, _TrezorKeyAgent_communicationType, serializableData.trezorConfig.communicationType, "f");
30
+ }
31
+ static async initializeTrezorTransport({ manifest, communicationType, silentMode = false, lazyLoad = false }) {
32
+ const trezorConnect = getTrezorConnect(communicationType);
33
+ try {
34
+ await trezorConnect.init({
35
+ lazyLoad: communicationType !== CommunicationType.Node && lazyLoad,
36
+ manifest,
37
+ popup: communicationType !== CommunicationType.Node && !silentMode
38
+ });
39
+ return true;
40
+ }
41
+ catch (error) {
42
+ if (error.code === 'Init_AlreadyInitialized')
43
+ return true;
44
+ throw transportTypedError(error);
45
+ }
46
+ }
47
+ static async checkDeviceConnection(communicationType) {
48
+ const trezorConnect = getTrezorConnect(communicationType);
49
+ try {
50
+ const deviceFeatures = await trezorConnect.getFeatures();
51
+ if (!deviceFeatures.success) {
52
+ throw new errors.TransportError('Failed to get device', deviceFeatures.payload);
53
+ }
54
+ if (deviceFeatures.payload.model !== 'T') {
55
+ throw new errors.TransportError(`Trezor device model "${deviceFeatures.payload.model}" is not supported.`);
56
+ }
57
+ return deviceFeatures.payload;
58
+ }
59
+ catch (error) {
60
+ throw transportTypedError(error);
61
+ }
62
+ }
63
+ static async getXpub({ accountIndex, communicationType }) {
64
+ try {
65
+ await TrezorKeyAgent.checkDeviceConnection(communicationType);
66
+ const derivationPath = `m/${CardanoKeyConst.PURPOSE}'/${CardanoKeyConst.COIN_TYPE}'/${accountIndex}'`;
67
+ const trezorConnect = getTrezorConnect(communicationType);
68
+ const extendedPublicKey = await trezorConnect.cardanoGetPublicKey({
69
+ path: derivationPath,
70
+ showOnTrezor: true
71
+ });
72
+ if (!extendedPublicKey.success) {
73
+ throw new errors.TransportError('Failed to export extended account public key', extendedPublicKey.payload);
74
+ }
75
+ return Crypto.Bip32PublicKeyHex(extendedPublicKey.payload.publicKey);
76
+ }
77
+ catch (error) {
78
+ throw transportTypedError(error);
79
+ }
80
+ }
81
+ static async createWithDevice({ chainId, accountIndex = 0, trezorConfig }, dependencies) {
82
+ const isTrezorInitialized = await TrezorKeyAgent.initializeTrezorTransport(trezorConfig);
83
+ const extendedAccountPublicKey = await TrezorKeyAgent.getXpub({
84
+ accountIndex,
85
+ communicationType: trezorConfig.communicationType
86
+ });
87
+ return new TrezorKeyAgent({
88
+ accountIndex,
89
+ chainId,
90
+ extendedAccountPublicKey,
91
+ isTrezorInitialized,
92
+ knownAddresses: [],
93
+ trezorConfig
94
+ }, dependencies);
95
+ }
96
+ static getSigningMode(tx) {
97
+ if (tx.certificates) {
98
+ for (const cert of tx.certificates) {
99
+ if (cert.type === Trezor.PROTO.CardanoCertificateType.STAKE_POOL_REGISTRATION &&
100
+ cert.poolParameters?.owners.some((owner) => owner.stakingKeyPath))
101
+ return Trezor.PROTO.CardanoTxSigningMode.POOL_REGISTRATION_AS_OWNER;
102
+ }
103
+ }
104
+ return Trezor.PROTO.CardanoTxSigningMode.ORDINARY_TRANSACTION;
105
+ }
106
+ async signTransaction(tx) {
107
+ try {
108
+ await this.isTrezorInitialized;
109
+ const trezorTxData = await txToTrezor({
110
+ cardanoTxBody: tx.body,
111
+ chainId: this.chainId,
112
+ inputResolver: this.inputResolver,
113
+ knownAddresses: this.knownAddresses
114
+ });
115
+ const signingMode = TrezorKeyAgent.getSigningMode(trezorTxData);
116
+ const trezorConnect = getTrezorConnect(__classPrivateFieldGet(this, _TrezorKeyAgent_communicationType, "f"));
117
+ const result = await trezorConnect.cardanoSignTransaction({
118
+ ...trezorTxData,
119
+ signingMode
120
+ });
121
+ if (!result.success) {
122
+ throw new errors.TransportError('Failed to export extended account public key', result.payload);
123
+ }
124
+ const signedData = result.payload;
125
+ if (signedData.hash !== tx.hash) {
126
+ throw new errors.HwMappingError('Trezor computed a different transaction id');
127
+ }
128
+ return new Map(await Promise.all(signedData.witnesses.map(async (witness) => {
129
+ const publicKey = Crypto.Ed25519PublicKeyHex(witness.pubKey);
130
+ const signature = Crypto.Ed25519SignatureHex(witness.signature);
131
+ return [publicKey, signature];
132
+ })));
133
+ }
134
+ catch (error) {
135
+ if (error.innerError.code === 'Failure_ActionCancelled') {
136
+ throw new errors.AuthenticationError('Transaction signing aborted', error);
137
+ }
138
+ throw transportTypedError(error);
139
+ }
140
+ }
141
+ async signBlob() {
142
+ throw new NotImplementedError('signBlob');
143
+ }
144
+ async exportRootPrivateKey() {
145
+ throw new NotImplementedError('Operation not supported!');
146
+ }
147
+ }
148
+ _TrezorKeyAgent_communicationType = new WeakMap();
149
+ //# sourceMappingURL=TrezorKeyAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrezorKeyAgent.js","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './transformers';
2
+ export * from './types';
3
+ export * from './TrezorKeyAgent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './transformers';
2
+ export * from './types';
3
+ export * from './TrezorKeyAgent';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "module",
3
+ "sideEffects": false
4
+ }
@@ -0,0 +1,5 @@
1
+ import * as Trezor from '@trezor/connect';
2
+ import { BIP32Path } from '@cardano-sdk/crypto';
3
+ import { TrezorTxTransformerContext } from '../types';
4
+ export declare const mapAdditionalWitnessRequests: (inputs: Trezor.CardanoInput[], context: TrezorTxTransformerContext) => BIP32Path[];
5
+ //# sourceMappingURL=additionalWitnessRequests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"additionalWitnessRequests.d.ts","sourceRoot":"","sources":["../../../src/transformers/additionalWitnessRequests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAMtD,eAAO,MAAM,4BAA4B,WAAY,OAAO,YAAY,EAAE,WAAW,0BAA0B,gBAa9G,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { isNotNil } from '@cardano-sdk/util';
2
+ import { util } from '@cardano-sdk/key-management';
3
+ import isArray from 'lodash/isArray';
4
+ import uniq from 'lodash/uniq';
5
+ export const mapAdditionalWitnessRequests = (inputs, context) => {
6
+ const paymentKeyPaths = uniq(inputs
7
+ .map((i) => i.path)
8
+ .filter(isNotNil)
9
+ .filter(isArray));
10
+ const additionalWitnessPaths = [...paymentKeyPaths];
11
+ if (context.knownAddresses.length > 0) {
12
+ const stakeKeyPath = util.stakeKeyPathFromGroupedAddress(context.knownAddresses[0]);
13
+ if (stakeKeyPath)
14
+ additionalWitnessPaths.push(stakeKeyPath);
15
+ }
16
+ return additionalWitnessPaths;
17
+ };
18
+ //# sourceMappingURL=additionalWitnessRequests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"additionalWitnessRequests.js","sourceRoot":"","sources":["../../../src/transformers/additionalWitnessRequests.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,IAAI,MAAM,aAAa,CAAC;AAE/B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAA6B,EAAE,OAAmC,EAAE,EAAE;IACjH,MAAM,eAAe,GAAG,IAAI,CAC1B,MAAM;SACH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,MAAM,CAAC,QAAQ,CAAC;SAChB,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;IACF,MAAM,sBAAsB,GAAgB,CAAC,GAAG,eAAe,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAI,YAAY;YAAE,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC7D;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as Trezor from '@trezor/connect';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ export declare const mapTokenMap: (tokenMap: Cardano.TokenMap | undefined) => Trezor.CardanoAssetGroup[] | undefined;
4
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../src/transformers/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA0C5C,eAAO,MAAM,WAAW,aAAc,QAAQ,QAAQ,GAAG,SAAS,2CACX,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ const compareAssetNameCanonically = (a, b) => {
3
+ if (a.assetNameBytes.length === b.assetNameBytes.length) {
4
+ return a.assetNameBytes > b.assetNameBytes ? 1 : -1;
5
+ }
6
+ else if (a.assetNameBytes.length > b.assetNameBytes.length)
7
+ return 1;
8
+ return -1;
9
+ };
10
+ const comparePolicyIdCanonically = (a, b) => a.policyId > b.policyId ? 1 : -1;
11
+ const tokenMapToAssetGroup = (tokenMap) => {
12
+ const map = new Map();
13
+ for (const [key, value] of tokenMap.entries()) {
14
+ const policyId = Cardano.AssetId.getPolicyId(key);
15
+ const assetName = Cardano.AssetId.getAssetName(key);
16
+ if (!map.has(policyId))
17
+ map.set(policyId, []);
18
+ map.get(policyId).push({
19
+ amount: value.toString(),
20
+ assetNameBytes: assetName
21
+ });
22
+ }
23
+ const tokenMapAssetsGroup = [];
24
+ for (const [key, value] of map.entries()) {
25
+ value.sort(compareAssetNameCanonically);
26
+ tokenMapAssetsGroup.push({
27
+ policyId: key,
28
+ tokenAmounts: value
29
+ });
30
+ }
31
+ tokenMapAssetsGroup.sort(comparePolicyIdCanonically);
32
+ return tokenMapAssetsGroup;
33
+ };
34
+ export const mapTokenMap = (tokenMap) => tokenMap ? tokenMapToAssetGroup(tokenMap) : undefined;
35
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/transformers/assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,2BAA2B,GAAG,CAAC,CAAsB,EAAE,CAAsB,EAAE,EAAE;IACrF,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE;QACvD,OAAO,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD;SAAM,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IACvE,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,CAA2B,EAAE,CAA2B,EAAE,EAAE,CAE9F,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnC,MAAM,oBAAoB,GAAG,CAAC,QAA0B,EAA8B,EAAE;IACtF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAEpD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE9C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC;YACtB,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE;YACxB,cAAc,EAAE,SAAS;SAC1B,CAAC,CAAC;KACJ;IAED,MAAM,mBAAmB,GAAG,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;QACxC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,mBAAmB,CAAC,IAAI,CAAC;YACvB,QAAQ,EAAE,GAAG;YACb,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;KACJ;IAED,mBAAmB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAErD,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAsC,EAAE,EAAE,CACpE,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as Crypto from '@cardano-sdk/crypto';
2
+ import * as Trezor from '@trezor/connect';
3
+ export declare const mapAuxiliaryData: (auxiliaryDataHash: Crypto.Hash32ByteBase16) => Trezor.CardanoAuxiliaryData;
4
+ //# sourceMappingURL=auxiliaryData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auxiliaryData.d.ts","sourceRoot":"","sources":["../../../src/transformers/auxiliaryData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,eAAO,MAAM,gBAAgB,sBAAuB,OAAO,gBAAgB,KAAG,OAAO,oBAEnF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const mapAuxiliaryData = (auxiliaryDataHash) => ({
2
+ hash: auxiliaryDataHash
3
+ });
4
+ //# sourceMappingURL=auxiliaryData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auxiliaryData.js","sourceRoot":"","sources":["../../../src/transformers/auxiliaryData.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,iBAA0C,EAA+B,EAAE,CAAC,CAAC;IAC5G,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import * as Trezor from '@trezor/connect';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { TrezorTxTransformerContext } from '../types';
4
+ declare type TrezorPoolRegistrationCertificate = {
5
+ poolParameters: Trezor.CardanoPoolParameters;
6
+ type: Trezor.PROTO.CardanoCertificateType.STAKE_POOL_REGISTRATION;
7
+ };
8
+ export declare const getPoolRegistrationCertificate: (certificate: Cardano.PoolRegistrationCertificate, context: TrezorTxTransformerContext) => TrezorPoolRegistrationCertificate;
9
+ export declare const mapCerts: (certs: Cardano.Certificate[], context: TrezorTxTransformerContext) => Trezor.CardanoCertificate[];
10
+ export {};
11
+ //# sourceMappingURL=certificates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificates.d.ts","sourceRoot":"","sources":["../../../src/transformers/certificates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAoBtD,aAAK,iCAAiC,GAAG;IACvC,cAAc,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,uBAAuB,CAAC;CACnE,CAAC;AAwEF,eAAO,MAAM,8BAA8B,gBAC5B,QAAQ,2BAA2B,WACvC,0BAA0B,KAClC,iCA+CF,CAAC;AAiBF,eAAO,MAAM,QAAQ,UACZ,QAAQ,WAAW,EAAE,WACnB,0BAA0B,KAClC,OAAO,kBAAkB,EAAwD,CAAC"}
@@ -0,0 +1,103 @@
1
+ import * as Trezor from '@trezor/connect';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { util } from '@cardano-sdk/key-management';
4
+ import { InvalidArgumentError } from '@cardano-sdk/util';
5
+ const getCertCredentials = (stakeKeyHash, knownAddresses) => {
6
+ const knownAddress = knownAddresses?.find((address) => Cardano.RewardAccount.toHash(address.rewardAccount) === stakeKeyHash);
7
+ const rewardAddress = knownAddress ? Cardano.Address.fromBech32(knownAddress.rewardAccount)?.asReward() : null;
8
+ if (rewardAddress?.getPaymentCredential().type === Cardano.CredentialType.KeyHash) {
9
+ const path = util.stakeKeyPathFromGroupedAddress(knownAddress);
10
+ return path ? { path } : { keyHash: stakeKeyHash };
11
+ }
12
+ return {
13
+ scriptHash: stakeKeyHash
14
+ };
15
+ };
16
+ const getStakeAddressCertificate = (certificate, context, type) => {
17
+ const credentials = getCertCredentials(certificate.stakeKeyHash, context.knownAddresses);
18
+ return {
19
+ ...credentials,
20
+ type
21
+ };
22
+ };
23
+ const getStakeDelegationCertificate = (certificate, context) => {
24
+ const poolIdKeyHash = Cardano.PoolId.toKeyHash(certificate.poolId);
25
+ const credentials = getCertCredentials(certificate.stakeKeyHash, context.knownAddresses);
26
+ return {
27
+ ...credentials,
28
+ pool: poolIdKeyHash,
29
+ type: Trezor.PROTO.CardanoCertificateType.STAKE_DELEGATION
30
+ };
31
+ };
32
+ const toPoolMetadata = (metadataJson) => ({
33
+ hash: metadataJson.hash,
34
+ url: metadataJson.url
35
+ });
36
+ const getPoolOperatorKeyPath = (operator, context) => {
37
+ const knownAddress = context?.knownAddresses.find((address) => address.rewardAccount === operator);
38
+ return util.stakeKeyPathFromGroupedAddress(knownAddress);
39
+ };
40
+ export const getPoolRegistrationCertificate = (certificate, context) => {
41
+ if (!certificate.poolParameters.metadataJson)
42
+ throw new InvalidArgumentError('certificate', 'Missing pool registration pool metadata.');
43
+ return {
44
+ poolParameters: {
45
+ cost: certificate.poolParameters.cost.toString(),
46
+ margin: {
47
+ denominator: certificate.poolParameters.margin.denominator.toString(),
48
+ numerator: certificate.poolParameters.margin.numerator.toString()
49
+ },
50
+ metadata: toPoolMetadata(certificate.poolParameters.metadataJson),
51
+ owners: certificate.poolParameters.owners.map((owner) => {
52
+ const poolOwnerKeyPath = getPoolOperatorKeyPath(owner, context);
53
+ const poolOwnerKeyHash = Cardano.RewardAccount.toHash(owner);
54
+ return poolOwnerKeyPath ? { stakingKeyPath: poolOwnerKeyPath } : { stakingKeyHash: poolOwnerKeyHash };
55
+ }),
56
+ pledge: certificate.poolParameters.pledge.toString(),
57
+ poolId: Cardano.PoolId.toKeyHash(certificate.poolParameters.id),
58
+ relays: certificate.poolParameters.relays.map((relay) => {
59
+ switch (relay.__typename) {
60
+ case 'RelayByAddress':
61
+ return {
62
+ ipv4Address: relay.ipv4,
63
+ ipv6Address: relay.ipv6,
64
+ port: relay.port,
65
+ type: Trezor.PROTO.CardanoPoolRelayType.SINGLE_HOST_IP
66
+ };
67
+ case 'RelayByName':
68
+ return {
69
+ hostName: relay.hostname,
70
+ port: relay.port,
71
+ type: Trezor.PROTO.CardanoPoolRelayType.SINGLE_HOST_NAME
72
+ };
73
+ case 'RelayByNameMultihost':
74
+ return {
75
+ hostName: relay.dnsName,
76
+ type: Trezor.PROTO.CardanoPoolRelayType.MULTIPLE_HOST_NAME
77
+ };
78
+ default:
79
+ throw new InvalidArgumentError('certificate', 'Unknown relay type.');
80
+ }
81
+ }),
82
+ rewardAccount: certificate.poolParameters.rewardAccount,
83
+ vrfKeyHash: certificate.poolParameters.vrf
84
+ },
85
+ type: Trezor.PROTO.CardanoCertificateType.STAKE_POOL_REGISTRATION
86
+ };
87
+ };
88
+ const toCert = (cert, context) => {
89
+ switch (cert.__typename) {
90
+ case Cardano.CertificateType.StakeKeyRegistration:
91
+ return getStakeAddressCertificate(cert, context, Trezor.PROTO.CardanoCertificateType.STAKE_REGISTRATION);
92
+ case Cardano.CertificateType.StakeKeyDeregistration:
93
+ return getStakeAddressCertificate(cert, context, Trezor.PROTO.CardanoCertificateType.STAKE_DEREGISTRATION);
94
+ case Cardano.CertificateType.StakeDelegation:
95
+ return getStakeDelegationCertificate(cert, context);
96
+ case Cardano.CertificateType.PoolRegistration:
97
+ return getPoolRegistrationCertificate(cert, context);
98
+ default:
99
+ throw new InvalidArgumentError('cert', `Certificate ${cert.__typename} not supported.`);
100
+ }
101
+ };
102
+ export const mapCerts = (certs, context) => certs.map((coreCert) => toCert(coreCert, context));
103
+ //# sourceMappingURL=certificates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificates.js","sourceRoot":"","sources":["../../../src/transformers/certificates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './keyPaths';
2
+ export * from './txIn';
3
+ export * from './txOut';
4
+ export * from './withdrawals';
5
+ export * from './certificates';
6
+ export * from './auxiliaryData';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transformers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './keyPaths';
2
+ export * from './txIn';
3
+ export * from './txOut';
4
+ export * from './withdrawals';
5
+ export * from './certificates';
6
+ export * from './auxiliaryData';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transformers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { BIP32Path } from '@cardano-sdk/crypto';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { TrezorTxTransformerContext } from '../types';
4
+ export declare const resolvePaymentKeyPathForTxIn: (txIn: Cardano.TxIn, context?: TrezorTxTransformerContext) => Promise<BIP32Path | undefined>;
5
+ export declare const resolveStakeKeyPath: (rewardAddress: Cardano.RewardAddress | undefined, context: TrezorTxTransformerContext) => BIP32Path | null;
6
+ //# sourceMappingURL=keyPaths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPaths.d.ts","sourceRoot":"","sources":["../../../src/transformers/keyPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAOtD,eAAO,MAAM,4BAA4B,SACjC,QAAQ,IAAI,YACR,0BAA0B,KACnC,QAAQ,SAAS,GAAG,SAAS,CAK/B,CAAC;AAGF,eAAO,MAAM,mBAAmB,kBACf,QAAQ,aAAa,GAAG,SAAS,WACvC,0BAA0B,KAClC,SAAS,GAAG,IAMd,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { util } from '@cardano-sdk/key-management';
2
+ export const resolvePaymentKeyPathForTxIn = async (txIn, context) => {
3
+ if (!context)
4
+ return;
5
+ const txOut = await context.inputResolver.resolveInput(txIn);
6
+ const knownAddress = context.knownAddresses.find(({ address }) => address === txOut?.address);
7
+ return knownAddress ? util.paymentKeyPathFromGroupedAddress(knownAddress) : undefined;
8
+ };
9
+ export const resolveStakeKeyPath = (rewardAddress, context) => {
10
+ if (!rewardAddress)
11
+ return null;
12
+ const knownAddress = context.knownAddresses.find(({ rewardAccount }) => rewardAccount === rewardAddress.toAddress().toBech32());
13
+ return util.stakeKeyPathFromGroupedAddress(knownAddress);
14
+ };
15
+ //# sourceMappingURL=keyPaths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPaths.js","sourceRoot":"","sources":["../../../src/transformers/keyPaths.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAMnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAC/C,IAAkB,EAClB,OAAoC,EACJ,EAAE;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9F,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,aAAgD,EAChD,OAAmC,EACjB,EAAE;IACpB,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAC9C,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAC9E,CAAC;IACF,OAAO,IAAI,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC;AAC3D,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as Trezor from '@trezor/connect';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { GroupedAddress } from '@cardano-sdk/key-management';
4
+ export declare const txToTrezor: ({ cardanoTxBody, chainId, inputResolver, knownAddresses }: {
5
+ chainId: Cardano.ChainId;
6
+ inputResolver: Cardano.InputResolver;
7
+ knownAddresses: GroupedAddress[];
8
+ cardanoTxBody: Cardano.TxBody;
9
+ }) => Promise<Omit<Trezor.CardanoSignTransaction, 'signingMode'>>;
10
+ //# sourceMappingURL=tx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../src/transformers/tx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAsC7D,eAAO,MAAM,UAAU;aAMZ,QAAQ,OAAO;mBACT,QAAQ,aAAa;oBACpB,cAAc,EAAE;mBACjB,QAAQ,MAAM;MAC3B,QAAQ,KAAK,OAAO,sBAAsB,EAAE,aAAa,CAAC,CAK1D,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { mapAdditionalWitnessRequests } from './additionalWitnessRequests';
2
+ import { mapAuxiliaryData, mapCerts, mapTxIns, mapTxOuts, mapWithdrawals } from './';
3
+ import { mapTokenMap } from './assets';
4
+ const trezorTxTransformer = async (body, context) => {
5
+ const inputs = await mapTxIns(body.inputs, context);
6
+ return {
7
+ additionalWitnessRequests: mapAdditionalWitnessRequests(inputs, context),
8
+ auxiliaryData: body.auxiliaryDataHash ? mapAuxiliaryData(body.auxiliaryDataHash) : undefined,
9
+ certificates: mapCerts(body.certificates ?? [], context),
10
+ fee: body.fee.toString(),
11
+ inputs,
12
+ mint: mapTokenMap(body.mint),
13
+ networkId: context.chainId.networkId,
14
+ outputs: mapTxOuts(body.outputs, context),
15
+ protocolMagic: context.chainId.networkMagic,
16
+ ttl: body.validityInterval?.invalidHereafter?.toString(),
17
+ validityIntervalStart: body.validityInterval?.invalidBefore?.toString(),
18
+ withdrawals: mapWithdrawals(body.withdrawals ?? [], context)
19
+ };
20
+ };
21
+ export const txToTrezor = ({ cardanoTxBody, chainId, inputResolver, knownAddresses }) => trezorTxTransformer(cardanoTxBody, {
22
+ chainId,
23
+ inputResolver,
24
+ knownAddresses
25
+ });
26
+ //# sourceMappingURL=tx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../src/transformers/tx.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AASvC,MAAM,mBAAmB,GAAG,KAAK,EAC/B,IAAoB,EACpB,OAAmC,EAC0B,EAAE;IAC/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO;QACL,yBAAyB,EAAE,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC;QACxE,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5F,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,OAAO,CAAC;QACxD,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;QACxB,MAAM;QACN,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;QACpC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACzC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY;QAC3C,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE;QACxD,qBAAqB,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE;QACvE,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,OAAO,CAAC;KAC7D,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,aAAa,EACb,OAAO,EACP,aAAa,EACb,cAAc,EAMf,EAA+D,EAAE,CAChE,mBAAmB,CAAC,aAAa,EAAE;IACjC,OAAO;IACP,aAAa;IACb,cAAc;CACf,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import * as Trezor from '@trezor/connect';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { Transform } from '@cardano-sdk/util';
4
+ import { TrezorTxTransformerContext } from '../types';
5
+ export declare const toTrezorTxIn: Transform<Cardano.TxIn, Promise<Trezor.CardanoInput>, TrezorTxTransformerContext>;
6
+ export declare const mapTxIns: (txIns: Cardano.TxIn[], context: TrezorTxTransformerContext) => Promise<Trezor.CardanoInput[]>;
7
+ //# sourceMappingURL=txIn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txIn.d.ts","sourceRoot":"","sources":["../../../src/transformers/txIn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAOtD,eAAO,MAAM,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,0BAA0B,CAU1G,CAAC;AAOF,eAAO,MAAM,QAAQ,UACZ,QAAQ,IAAI,EAAE,WACZ,0BAA0B,KAClC,QAAQ,OAAO,YAAY,EAAE,CAAkE,CAAC"}