quantumcoin 7.0.2 → 7.0.4

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 (155) hide show
  1. package/.github/workflows/publish-npmjs.yaml +22 -22
  2. package/.gitignore +15 -15
  3. package/LICENSE +21 -21
  4. package/README-SDK.md +756 -756
  5. package/README.md +165 -152
  6. package/SPEC.md +3845 -3845
  7. package/config.d.ts +50 -50
  8. package/config.js +115 -115
  9. package/examples/AllSolidityTypes.sol +184 -184
  10. package/examples/SimpleIERC20.sol +74 -74
  11. package/examples/events.js +41 -35
  12. package/examples/events.ts +35 -0
  13. package/examples/example-generator-sdk-js.js +100 -95
  14. package/examples/example-generator-sdk-js.ts +77 -0
  15. package/examples/example-generator-sdk-ts.js +100 -95
  16. package/examples/example-generator-sdk-ts.ts +77 -0
  17. package/examples/example.js +72 -61
  18. package/examples/example.ts +61 -0
  19. package/examples/offline-signing.js +79 -0
  20. package/examples/offline-signing.ts +66 -0
  21. package/examples/package-lock.json +48 -57
  22. package/examples/package.json +32 -16
  23. package/examples/read-operations.js +32 -27
  24. package/examples/read-operations.ts +31 -0
  25. package/examples/sdk-generator-erc20.inline.json +251 -251
  26. package/examples/solidity-types.ts +43 -43
  27. package/examples/wallet-offline.js +35 -29
  28. package/examples/wallet-offline.ts +34 -0
  29. package/generate-sdk.js +1824 -1383
  30. package/index.js +12 -12
  31. package/package.json +95 -75
  32. package/scripts/copy-declarations.js +31 -0
  33. package/scripts/run-all-one-by-one.js +151 -0
  34. package/src/abi/fragments.d.ts +42 -42
  35. package/src/abi/fragments.js +63 -63
  36. package/src/abi/index.d.ts +13 -13
  37. package/src/abi/index.js +9 -9
  38. package/src/abi/interface.d.ts +128 -132
  39. package/src/abi/interface.js +590 -590
  40. package/src/abi/js-abi-coder.d.ts +8 -0
  41. package/src/abi/js-abi-coder.js +474 -474
  42. package/src/constants.d.ts +66 -61
  43. package/src/constants.js +101 -94
  44. package/src/contract/contract-factory.d.ts +28 -28
  45. package/src/contract/contract-factory.js +105 -105
  46. package/src/contract/contract.d.ts +113 -105
  47. package/src/contract/contract.js +354 -312
  48. package/src/contract/index.d.ts +9 -9
  49. package/src/contract/index.js +9 -9
  50. package/src/errors/index.d.ts +92 -92
  51. package/src/errors/index.js +188 -188
  52. package/src/generator/index.d.ts +74 -0
  53. package/src/generator/index.js +1404 -1201
  54. package/src/index.d.ts +125 -127
  55. package/src/index.js +41 -41
  56. package/src/internal/hex.d.ts +61 -61
  57. package/src/internal/hex.js +144 -144
  58. package/src/providers/extra-providers.d.ts +139 -128
  59. package/src/providers/extra-providers.js +600 -575
  60. package/src/providers/index.d.ts +17 -16
  61. package/src/providers/index.js +10 -10
  62. package/src/providers/json-rpc-provider.d.ts +12 -12
  63. package/src/providers/json-rpc-provider.js +79 -79
  64. package/src/providers/provider.d.ts +207 -196
  65. package/src/providers/provider.js +392 -359
  66. package/src/types/index.d.ts +214 -462
  67. package/src/types/index.js +9 -9
  68. package/src/utils/address.d.ts +72 -72
  69. package/src/utils/address.js +181 -182
  70. package/src/utils/encoding.d.ts +120 -120
  71. package/src/utils/encoding.js +306 -306
  72. package/src/utils/hashing.d.ts +82 -76
  73. package/src/utils/hashing.js +313 -298
  74. package/src/utils/index.d.ts +65 -55
  75. package/src/utils/index.js +13 -13
  76. package/src/utils/result.d.ts +57 -57
  77. package/src/utils/result.js +128 -128
  78. package/src/utils/rlp.d.ts +12 -12
  79. package/src/utils/rlp.js +200 -200
  80. package/src/utils/units.d.ts +29 -29
  81. package/src/utils/units.js +107 -107
  82. package/src/wallet/index.d.ts +10 -10
  83. package/src/wallet/index.js +8 -8
  84. package/src/wallet/wallet.d.ts +160 -160
  85. package/src/wallet/wallet.js +483 -489
  86. package/test/e2e/all-solidity-types.dynamic.test.js +207 -200
  87. package/test/e2e/all-solidity-types.dynamic.test.ts +191 -0
  88. package/test/e2e/all-solidity-types.fixtures.js +231 -231
  89. package/test/e2e/all-solidity-types.generated-sdks.e2e.test.js +387 -361
  90. package/test/e2e/all-solidity-types.generated-sdks.e2e.test.ts +350 -0
  91. package/test/e2e/helpers.js +59 -47
  92. package/test/e2e/signing-context-and-fee.e2e.test.js +137 -0
  93. package/test/e2e/signing-context-and-fee.e2e.test.ts +128 -0
  94. package/test/e2e/simple-erc20.generated-sdks.e2e.test.js +168 -144
  95. package/test/e2e/simple-erc20.generated-sdks.e2e.test.ts +141 -0
  96. package/test/e2e/transactional.test.js +245 -191
  97. package/test/e2e/transactional.test.ts +208 -0
  98. package/test/e2e/typed-generator.e2e.test.js +407 -402
  99. package/test/e2e/typed-generator.e2e.test.ts +337 -0
  100. package/test/fixtures/ConstructorParam.sol +23 -23
  101. package/test/fixtures/MultiContracts.sol +37 -37
  102. package/test/fixtures/SimpleStorage.sol +18 -18
  103. package/test/fixtures/StakingContract.abi.json +1 -1
  104. package/test/integration/ipc-provider.test.js +49 -44
  105. package/test/integration/ipc-provider.test.ts +44 -0
  106. package/test/integration/provider.test.js +88 -72
  107. package/test/integration/provider.test.ts +85 -0
  108. package/test/integration/ws-provider.test.js +41 -33
  109. package/test/integration/ws-provider.test.ts +38 -0
  110. package/test/security/malformed-input.test.js +37 -31
  111. package/test/security/malformed-input.test.ts +35 -0
  112. package/test/unit/_encrypted-output.txt +6 -0
  113. package/test/unit/_log-encrypted-jsons.js +45 -0
  114. package/test/unit/_write-keystore-fixture.js +16 -0
  115. package/test/unit/abi-interface.test.js +103 -98
  116. package/test/unit/abi-interface.test.ts +102 -0
  117. package/test/unit/address-wallet.test.js +355 -257
  118. package/test/unit/address-wallet.test.ts +342 -0
  119. package/test/unit/browser-provider.test.js +85 -82
  120. package/test/unit/browser-provider.test.ts +79 -0
  121. package/test/unit/contract.test.js +85 -82
  122. package/test/unit/contract.test.ts +83 -0
  123. package/test/unit/encoding-units-rlp.test.js +92 -89
  124. package/test/unit/encoding-units-rlp.test.ts +91 -0
  125. package/test/unit/errors.test.js +77 -74
  126. package/test/unit/errors.test.ts +76 -0
  127. package/test/unit/filter-by-blockhash.test.js +55 -52
  128. package/test/unit/filter-by-blockhash.test.ts +54 -0
  129. package/test/unit/fixtures/encrypted-keystores-48-32-36.js +9 -0
  130. package/test/unit/generate-contract-cli.test.js +42 -39
  131. package/test/unit/generate-contract-cli.test.ts +41 -0
  132. package/test/unit/generate-sdk-artifacts-json.test.js +113 -110
  133. package/test/unit/generate-sdk-artifacts-json.test.ts +110 -0
  134. package/test/unit/generator.test.js +102 -98
  135. package/test/unit/generator.test.ts +101 -0
  136. package/test/unit/hashing.test.js +68 -54
  137. package/test/unit/hashing.test.ts +67 -0
  138. package/test/unit/init.test.js +39 -36
  139. package/test/unit/init.test.ts +38 -0
  140. package/test/unit/interface.test.js +56 -53
  141. package/test/unit/interface.test.ts +54 -0
  142. package/test/unit/internal-hex.test.js +50 -47
  143. package/test/unit/internal-hex.test.ts +49 -0
  144. package/test/unit/populate-transaction.test.js +65 -0
  145. package/test/unit/populate-transaction.test.ts +64 -0
  146. package/test/unit/providers.test.js +200 -144
  147. package/test/unit/providers.test.ts +196 -0
  148. package/test/unit/result.test.js +80 -77
  149. package/test/unit/result.test.ts +79 -0
  150. package/test/unit/solidity-types.test.js +49 -46
  151. package/test/unit/solidity-types.test.ts +39 -0
  152. package/test/unit/utils.test.js +57 -54
  153. package/test/unit/utils.test.ts +56 -0
  154. package/test/verbose-logger.js +74 -0
  155. package/tsconfig.build.json +14 -0
@@ -1,132 +1,128 @@
1
- export class Interface {
2
- /**
3
- * @param {any[]|Interface} abi
4
- */
5
- constructor(abi: any[] | Interface);
6
- abi: any;
7
- _abiJson: string;
8
- /**
9
- * Returns JSON format of ABI.
10
- * @returns {string}
11
- */
12
- formatJson(): string;
13
- /**
14
- * Basic formatter (ethers supports multiple formats).
15
- * @param {string=} format
16
- * @returns {string}
17
- */
18
- format(format?: string | undefined): string;
19
- /**
20
- * Get a function fragment by name (first match).
21
- * @param {string} nameOrSignature
22
- * @returns {FunctionFragment}
23
- */
24
- getFunction(nameOrSignature: string): FunctionFragment;
25
- /**
26
- * Get an event fragment by name (first match).
27
- * @param {string} nameOrSignature
28
- * @returns {EventFragment}
29
- */
30
- getEvent(nameOrSignature: string): EventFragment;
31
- /**
32
- * Get an error fragment by name (first match).
33
- * @param {string} nameOrSignature
34
- * @returns {ErrorFragment}
35
- */
36
- getError(nameOrSignature: string): ErrorFragment;
37
- /**
38
- * Returns the constructor fragment if present.
39
- * @returns {ConstructorFragment|null}
40
- */
41
- getConstructor(): ConstructorFragment | null;
42
- /**
43
- * Encode function data using quantum-coin-js-sdk.
44
- * @param {FunctionFragment|string} functionFragment
45
- * @param {any[]} values
46
- * @returns {string}
47
- */
48
- encodeFunctionData(functionFragment: FunctionFragment | string, values: any[]): string;
49
- /**
50
- * Decode function result using quantum-coin-js-sdk.
51
- * @param {FunctionFragment|string} functionFragment
52
- * @param {string} data
53
- * @returns {any}
54
- */
55
- decodeFunctionResult(functionFragment: FunctionFragment | string, data: string): any;
56
- /**
57
- * Encode an event log from values.
58
- * @param {EventFragment|any} eventFragment
59
- * @param {any[]} values
60
- * @returns {{ topics: string[], data: string }}
61
- */
62
- encodeEventLog(eventFragment: EventFragment | any, values: any[]): {
63
- topics: string[];
64
- data: string;
65
- };
66
- /**
67
- * Decode an event log.
68
- * @param {EventFragment|any} eventFragment
69
- * @param {string[]} topics
70
- * @param {string} data
71
- * @returns {any}
72
- */
73
- decodeEventLog(eventFragment: EventFragment | any, topics: string[], data: string): any;
74
- parseTransaction(): void;
75
- parseLog(...args: any[]): {
76
- fragment: EventFragment;
77
- name: any;
78
- signature: any;
79
- topic: string;
80
- args: Result;
81
- };
82
- parseError(): void;
83
- getSighash(): void;
84
- getEventTopic(): void;
85
- getFallback(): any;
86
- getReceive(): any;
87
- }
88
- export class AbiCoder {
89
- /**
90
- * Encode values by types into ABI data.
91
- * @param {(string|any)[]} types
92
- * @param {any[]} values
93
- * @returns {string}
94
- */
95
- encode(types: (string | any)[], values: any[]): string;
96
- /**
97
- * Typed ABI encode (Solidity ABI type strings).
98
- * @param {TTypes} types
99
- * @param {TValues} values
100
- */
101
- encode<TTypes extends readonly import("../types").SolidityTypeName[]>(
102
- types: TTypes,
103
- values: { [K in keyof TTypes]: import("../types").SolidityInputValue<TTypes[K]> },
104
- ): string;
105
- /**
106
- * Decode ABI data by output types.
107
- * @param {(string|any)[]} types
108
- * @param {string} data
109
- * @returns {any}
110
- */
111
- decode(types: (string | any)[], data: string): any;
112
- /**
113
- * Typed ABI decode (Solidity ABI type strings).
114
- * @param {TTypes} types
115
- * @param {string} data
116
- */
117
- decode<TTypes extends readonly import("../types").SolidityTypeName[]>(
118
- types: TTypes,
119
- data: string,
120
- ): { [K in keyof TTypes]: import("../types").SolidityOutputValue<TTypes[K]> };
121
- /**
122
- * Return a default value for types.
123
- * @param {(string|any)[]} types
124
- * @returns {any}
125
- */
126
- getDefaultValue(types: (string | any)[]): any;
127
- }
128
- import { FunctionFragment } from "./fragments";
129
- import { EventFragment } from "./fragments";
130
- import { ErrorFragment } from "./fragments";
131
- import { ConstructorFragment } from "./fragments";
132
- import { Result } from "../utils/result";
1
+ export class Interface {
2
+ /**
3
+ * @param {any[]|Interface} abi
4
+ */
5
+ constructor(abi: any[] | Interface);
6
+ abi: any;
7
+ _abiJson: string;
8
+ _qcsdkAbi: any[];
9
+ _qcsdkAbiJson: string;
10
+ /**
11
+ * Returns JSON format of ABI.
12
+ * @returns {string}
13
+ */
14
+ formatJson(): string;
15
+ /**
16
+ * Internal: normalized ABI JSON for qcsdk.
17
+ * @returns {string}
18
+ */
19
+ _qcsdkFormatJson(): string;
20
+ /**
21
+ * Internal: normalize argument values for qcsdk based on original ABI params.
22
+ * @param {Array<any>} params
23
+ * @param {Array<any>} values
24
+ * @returns {Array<any>}
25
+ */
26
+ _qcsdkNormalizeValues(params: Array<any>, values: Array<any>): Array<any>;
27
+ /**
28
+ * Basic formatter (ethers supports multiple formats).
29
+ * @param {string=} format
30
+ * @returns {string}
31
+ */
32
+ format(format?: string | undefined): string;
33
+ /**
34
+ * Get a function fragment by name (first match).
35
+ * @param {string} nameOrSignature
36
+ * @returns {FunctionFragment}
37
+ */
38
+ getFunction(nameOrSignature: string): FunctionFragment;
39
+ /**
40
+ * Get an event fragment by name (first match).
41
+ * @param {string} nameOrSignature
42
+ * @returns {EventFragment}
43
+ */
44
+ getEvent(nameOrSignature: string): EventFragment;
45
+ /**
46
+ * Get an error fragment by name (first match).
47
+ * @param {string} nameOrSignature
48
+ * @returns {ErrorFragment}
49
+ */
50
+ getError(nameOrSignature: string): ErrorFragment;
51
+ /**
52
+ * Returns the constructor fragment if present.
53
+ * @returns {ConstructorFragment|null}
54
+ */
55
+ getConstructor(): ConstructorFragment | null;
56
+ /**
57
+ * Encode function data using quantum-coin-js-sdk.
58
+ * @param {FunctionFragment|string} functionFragment
59
+ * @param {any[]} values
60
+ * @returns {string}
61
+ */
62
+ encodeFunctionData(functionFragment: FunctionFragment | string, values: any[]): string;
63
+ /**
64
+ * Decode function result using quantum-coin-js-sdk.
65
+ * @param {FunctionFragment|string} functionFragment
66
+ * @param {string} data
67
+ * @returns {any}
68
+ */
69
+ decodeFunctionResult(functionFragment: FunctionFragment | string, data: string): any;
70
+ /**
71
+ * Encode an event log from values.
72
+ * @param {EventFragment|any} eventFragment
73
+ * @param {any[]} values
74
+ * @returns {{ topics: string[], data: string }}
75
+ */
76
+ encodeEventLog(eventFragment: EventFragment | any, values: any[]): {
77
+ topics: string[];
78
+ data: string;
79
+ };
80
+ /**
81
+ * Decode an event log.
82
+ * @param {EventFragment|any} eventFragment
83
+ * @param {string[]} topics
84
+ * @param {string} data
85
+ * @returns {any}
86
+ */
87
+ decodeEventLog(eventFragment: EventFragment | any, topics: string[], data: string): any;
88
+ parseTransaction(): void;
89
+ parseLog(...args: any[]): {
90
+ fragment: EventFragment;
91
+ name: any;
92
+ signature: any;
93
+ topic: string;
94
+ args: Result;
95
+ };
96
+ parseError(): void;
97
+ getSighash(): void;
98
+ getEventTopic(): void;
99
+ getFallback(): any;
100
+ getReceive(): any;
101
+ }
102
+ export class AbiCoder {
103
+ /**
104
+ * Encode values by types into ABI data.
105
+ * @param {(string|any)[]} types
106
+ * @param {any[]} values
107
+ * @returns {string}
108
+ */
109
+ encode(types: (string | any)[], values: any[]): string;
110
+ /**
111
+ * Decode ABI data by output types.
112
+ * @param {(string|any)[]} types
113
+ * @param {string} data
114
+ * @returns {any}
115
+ */
116
+ decode(types: (string | any)[], data: string): any;
117
+ /**
118
+ * Return a default value for types.
119
+ * @param {(string|any)[]} types
120
+ * @returns {any}
121
+ */
122
+ getDefaultValue(types: (string | any)[]): any;
123
+ }
124
+ import { FunctionFragment } from "./fragments";
125
+ import { EventFragment } from "./fragments";
126
+ import { ErrorFragment } from "./fragments";
127
+ import { ConstructorFragment } from "./fragments";
128
+ import { Result } from "../utils/result";