@airgap/ethereum 0.13.21-beta.7 → 0.13.21

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 (76) hide show
  1. package/package.json +7 -7
  2. package/v1/clients/crypto/EthereumCryptoClient.d.ts +7 -0
  3. package/v1/clients/crypto/EthereumCryptoClient.js +147 -0
  4. package/v1/clients/crypto/EthereumCryptoClient.js.map +1 -0
  5. package/v1/clients/info/EthereumInfoClient.d.ts +9 -7
  6. package/v1/clients/info/EthereumInfoClient.js.map +1 -1
  7. package/v1/clients/info/EtherscanInfoClient.d.ts +2 -1
  8. package/v1/clients/info/EtherscanInfoClient.js +0 -2
  9. package/v1/clients/info/EtherscanInfoClient.js.map +1 -1
  10. package/v1/clients/node/EthereumNodeClient.d.ts +18 -0
  11. package/v1/clients/node/EthereumNodeClient.js +3 -0
  12. package/v1/clients/node/EthereumNodeClient.js.map +1 -0
  13. package/v1/clients/node/HttpEthereumNodeClient.d.ts +66 -0
  14. package/v1/clients/node/HttpEthereumNodeClient.js +443 -0
  15. package/v1/clients/node/HttpEthereumNodeClient.js.map +1 -0
  16. package/v1/data/EthereumAddress.d.ts +7 -0
  17. package/v1/data/EthereumAddress.js +46 -0
  18. package/v1/data/EthereumAddress.js.map +1 -0
  19. package/v1/index.d.ts +19 -6
  20. package/v1/index.js +16 -1
  21. package/v1/index.js.map +1 -1
  22. package/v1/module/ERC20Tokens.d.ts +1 -1
  23. package/v1/module/EthereumModule.d.ts +4 -4
  24. package/v1/module/EthereumModule.js.map +1 -1
  25. package/v1/protocol/EthereumBaseProtocol.d.ts +84 -7
  26. package/v1/protocol/EthereumBaseProtocol.js +779 -8
  27. package/v1/protocol/EthereumBaseProtocol.js.map +1 -1
  28. package/v1/protocol/EthereumChainIds.d.ts +1 -0
  29. package/v1/protocol/EthereumChainIds.js +340 -0
  30. package/v1/protocol/EthereumChainIds.js.map +1 -0
  31. package/v1/protocol/EthereumProtocol.d.ts +6 -7
  32. package/v1/protocol/EthereumProtocol.js +3 -4
  33. package/v1/protocol/EthereumProtocol.js.map +1 -1
  34. package/v1/protocol/erc20/ERC20Protocol.d.ts +32 -0
  35. package/v1/protocol/erc20/ERC20Protocol.js +397 -0
  36. package/v1/protocol/erc20/ERC20Protocol.js.map +1 -0
  37. package/v1/protocol/erc20/ERC20Token.d.ts +15 -10
  38. package/v1/protocol/erc20/ERC20Token.js +26 -35
  39. package/v1/protocol/erc20/ERC20Token.js.map +1 -1
  40. package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +8 -0
  41. package/v1/serializer/v3/schemas/converter/transaction-converter.js +76 -0
  42. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -0
  43. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-ethereum-typed.d.ts +10 -0
  44. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-ethereum-typed.js +3 -0
  45. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-ethereum-typed.js.map +1 -0
  46. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-ethereum.d.ts +14 -0
  47. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-ethereum.js +3 -0
  48. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-ethereum.js.map +1 -0
  49. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-ethereum.d.ts +3 -0
  50. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-ethereum.js +3 -0
  51. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-ethereum.js.map +1 -0
  52. package/v1/serializer/v3/schemas/generated/transaction-sign-request-ethereum-typed.json +41 -0
  53. package/v1/serializer/v3/schemas/generated/transaction-sign-request-ethereum.json +58 -0
  54. package/v1/serializer/v3/schemas/generated/transaction-sign-response-ethereum.json +19 -0
  55. package/v1/serializer/v3/serializer-companion.js +10 -9
  56. package/v1/serializer/v3/serializer-companion.js.map +1 -1
  57. package/v1/serializer/v3/validators/transaction-validator.d.ts +7 -0
  58. package/v1/serializer/v3/validators/transaction-validator.js +71 -0
  59. package/v1/serializer/v3/validators/transaction-validator.js.map +1 -0
  60. package/v1/types/crypto.d.ts +2 -0
  61. package/v1/types/crypto.js +3 -0
  62. package/v1/types/crypto.js.map +1 -0
  63. package/v1/types/protocol.d.ts +35 -0
  64. package/v1/types/protocol.js +3 -0
  65. package/v1/types/protocol.js.map +1 -0
  66. package/v1/types/transaction.d.ts +24 -0
  67. package/v1/types/transaction.js +3 -0
  68. package/v1/types/transaction.js.map +1 -0
  69. package/v1/utils/EthereumUtils.d.ts +16 -0
  70. package/v1/utils/EthereumUtils.js +155 -0
  71. package/v1/utils/EthereumUtils.js.map +1 -0
  72. package/v1/utils/key.d.ts +5 -0
  73. package/v1/utils/key.js +101 -0
  74. package/v1/utils/key.js.map +1 -0
  75. package/v1/utils/protocol.d.ts +4 -5
  76. package/v1/utils/protocol.js.map +1 -1
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.convertExtendedPublicKey = exports.convertPublicKey = exports.convertExtendedSecretKey = exports.convertSecretKey = void 0;
27
+ var coinlib_core_1 = require("@airgap/coinlib-core");
28
+ // @ts-ignore
29
+ var bs58check = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58check-2.1.2"));
30
+ var errors_1 = require("@airgap/coinlib-core/errors");
31
+ var module_kit_1 = require("@airgap/module-kit");
32
+ var EXT_SK_PREFIX = '0488b21e'; // xpriv
33
+ var EXT_PK_PREFIX = '0488b21e'; // xpub
34
+ function convertSecretKey(secretKey, targetFormat) {
35
+ if (secretKey.format === targetFormat) {
36
+ return secretKey;
37
+ }
38
+ // 'encoded' -> 'hex'
39
+ // 'hex' -> 'encoded'
40
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.ETHEREUM, 'Unsupported secret key format.');
41
+ }
42
+ exports.convertSecretKey = convertSecretKey;
43
+ function convertExtendedSecretKey(extendedSecretKey, targetFormat) {
44
+ if (extendedSecretKey.format === targetFormat) {
45
+ return extendedSecretKey;
46
+ }
47
+ switch (extendedSecretKey.format) {
48
+ case 'encoded':
49
+ if (targetFormat === 'encoded') {
50
+ return extendedSecretKey;
51
+ }
52
+ return (0, module_kit_1.newExtendedSecretKey)(decodeEncodedKey(EXT_SK_PREFIX, extendedSecretKey.value));
53
+ case 'hex':
54
+ if (targetFormat === 'hex') {
55
+ return extendedSecretKey;
56
+ }
57
+ return (0, module_kit_1.newExtendedSecretKey)(encodeHexKey(EXT_SK_PREFIX, extendedSecretKey.value));
58
+ default:
59
+ (0, coinlib_core_1.assertNever)(extendedSecretKey.format);
60
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.ETHEREUM, 'Unuspported extended secret key format.');
61
+ }
62
+ }
63
+ exports.convertExtendedSecretKey = convertExtendedSecretKey;
64
+ function convertPublicKey(publicKey, targetFormat) {
65
+ if (publicKey.format === targetFormat) {
66
+ return publicKey;
67
+ }
68
+ // 'encoded' -> 'hex'
69
+ // 'hex' -> 'encoded'
70
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.ETHEREUM, 'Unsupported public key format.');
71
+ }
72
+ exports.convertPublicKey = convertPublicKey;
73
+ function convertExtendedPublicKey(extendedPublicKey, targetFormat) {
74
+ if (extendedPublicKey.format === targetFormat) {
75
+ return extendedPublicKey;
76
+ }
77
+ switch (extendedPublicKey.format) {
78
+ case 'encoded':
79
+ if (targetFormat === 'encoded') {
80
+ return extendedPublicKey;
81
+ }
82
+ return (0, module_kit_1.newExtendedPublicKey)(decodeEncodedKey(EXT_PK_PREFIX, extendedPublicKey.value));
83
+ case 'hex':
84
+ if (targetFormat === 'hex') {
85
+ return extendedPublicKey;
86
+ }
87
+ return (0, module_kit_1.newExtendedPublicKey)(encodeHexKey(EXT_PK_PREFIX, extendedPublicKey.value));
88
+ default:
89
+ (0, coinlib_core_1.assertNever)(extendedPublicKey.format);
90
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.ETHEREUM, 'Unuspported extended public key format.');
91
+ }
92
+ }
93
+ exports.convertExtendedPublicKey = convertExtendedPublicKey;
94
+ function decodeEncodedKey(prefix, key) {
95
+ var prefixBytes = Buffer.from(prefix, 'hex').length;
96
+ return bs58check.decode(key).slice(prefixBytes).toString('hex');
97
+ }
98
+ function encodeHexKey(prefix, key) {
99
+ return bs58check.encode(Buffer.concat([Buffer.from(prefix, 'hex'), Buffer.from(key, 'hex')]));
100
+ }
101
+ //# sourceMappingURL=key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../../src/v1/utils/key.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  import { AirGapAnyProtocol, Schema } from '@airgap/module-kit';
2
- import { ERC20Protocol } from '@airgap/evm';
2
+ import { ERC20Protocol } from '../protocol/erc20/ERC20Protocol';
3
3
  import { ERC20Token } from '../protocol/erc20/ERC20Token';
4
- import { EthereumBaseProtocol, EthereumUnits } from '../protocol/EthereumBaseProtocol';
4
+ import { EthereumBaseProtocol } from '../protocol/EthereumBaseProtocol';
5
5
  import { EthereumProtocol } from '../protocol/EthereumProtocol';
6
- import { EthereumTransactionCursor } from '../clients/info/EthereumInfoClient';
7
6
  export declare const ethereumBaseProtocolSchema: Schema<EthereumBaseProtocol>;
8
7
  export declare const ethereumProtocolSchema: Schema<EthereumProtocol>;
9
- export declare const ethereumERC20ProtocolSchema: Schema<ERC20Protocol<EthereumTransactionCursor, string, EthereumUnits>>;
8
+ export declare const ethereumERC20ProtocolSchema: Schema<ERC20Protocol<string>>;
10
9
  export declare const ethereumERC20TokenSchema: Schema<ERC20Token>;
11
10
  export declare function isAnyEthereumProtocol(protocol: AirGapAnyProtocol): protocol is EthereumBaseProtocol;
12
11
  export declare function isEthereumProtocol(protocol: AirGapAnyProtocol): protocol is EthereumProtocol;
13
- export declare function isEthereumERC20Protocol(protocol: AirGapAnyProtocol): protocol is ERC20Protocol<EthereumTransactionCursor, string, EthereumUnits>;
12
+ export declare function isEthereumERC20Protocol(protocol: AirGapAnyProtocol): protocol is ERC20Protocol<string>;
14
13
  export declare function isEthereumERC20Token(protocol: AirGapAnyProtocol): protocol is ERC20Token;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/v1/utils/protocol.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iDAiB2B;AAQ3B,UAAU;AAEG,QAAA,0BAA0B,mHAClC,kCAAqB,GACrB,iCAAoB,GACpB,uCAA0B,GAC1B,sCAAyB,GACzB,gCAAmB,GACnB,8CAAiC,GACjC,qCAAwB,GACxB,8CAAiC,GACjC,wDAA2C,GAC3C,mCAAsB,GACtB,2CAA8B,GAC9B,wCAA2B,EAC/B;AAEY,QAAA,sBAAsB,gBAC9B,kCAA0B,EAC9B;AAEY,QAAA,2BAA2B,yBACnC,kCAA0B,KAC7B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,UAAU,IACrB;AAEY,QAAA,wBAAwB,yBAChC,mCAA2B,GAC3B,yCAA4B,EAChC;AAED,wBAAwB;AAExB,SAAgB,qBAAqB,CAAC,QAA2B;IAC/D,OAAO,IAAA,gCAAmB,EAAuB,QAAQ,EAAE,kCAA0B,CAAC,CAAA;AACxF,CAAC;AAFD,sDAEC;AAED,SAAgB,kBAAkB,CAAC,QAA2B;IAC5D,OAAO,IAAA,gCAAmB,EAAmB,QAAQ,EAAE,8BAAsB,CAAC,CAAA;AAChF,CAAC;AAFD,gDAEC;AAED,SAAgB,uBAAuB,CACrC,QAA2B;IAE3B,OAAO,IAAA,gCAAmB,EAAkE,QAAQ,EAAE,mCAA2B,CAAC,CAAA;AACpI,CAAC;AAJD,0DAIC;AAED,SAAgB,oBAAoB,CAAC,QAA2B;IAC9D,OAAO,IAAA,gCAAmB,EAAa,QAAQ,EAAE,gCAAwB,CAAC,CAAA;AAC5E,CAAC;AAFD,oDAEC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/v1/utils/protocol.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iDAiB2B;AAO3B,UAAU;AAEG,QAAA,0BAA0B,mHAClC,kCAAqB,GACrB,iCAAoB,GACpB,uCAA0B,GAC1B,sCAAyB,GACzB,gCAAmB,GACnB,8CAAiC,GACjC,qCAAwB,GACxB,8CAAiC,GACjC,wDAA2C,GAC3C,mCAAsB,GACtB,2CAA8B,GAC9B,wCAA2B,EAC/B;AAEY,QAAA,sBAAsB,gBAC9B,kCAA0B,EAC9B;AAEY,QAAA,2BAA2B,yBACnC,kCAA0B,KAC7B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,UAAU,IACrB;AAEY,QAAA,wBAAwB,yBAChC,mCAA2B,GAC3B,yCAA4B,EAChC;AAED,wBAAwB;AAExB,SAAgB,qBAAqB,CAAC,QAA2B;IAC/D,OAAO,IAAA,gCAAmB,EAAuB,QAAQ,EAAE,kCAA0B,CAAC,CAAA;AACxF,CAAC;AAFD,sDAEC;AAED,SAAgB,kBAAkB,CAAC,QAA2B;IAC5D,OAAO,IAAA,gCAAmB,EAAmB,QAAQ,EAAE,8BAAsB,CAAC,CAAA;AAChF,CAAC;AAFD,gDAEC;AAED,SAAgB,uBAAuB,CAAC,QAA2B;IACjE,OAAO,IAAA,gCAAmB,EAAwB,QAAQ,EAAE,mCAA2B,CAAC,CAAA;AAC1F,CAAC;AAFD,0DAEC;AAED,SAAgB,oBAAoB,CAAC,QAA2B;IAC9D,OAAO,IAAA,gCAAmB,EAAa,QAAQ,EAAE,gCAAwB,CAAC,CAAA;AAC5E,CAAC;AAFD,oDAEC"}