opnet 1.0.13 → 1.0.15

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 (253) hide show
  1. package/CONTRIBUTING.md +71 -0
  2. package/README.md +6 -7
  3. package/browser/_version.d.ts +1 -1
  4. package/browser/abi/BaseContractProperty.d.ts +3 -0
  5. package/browser/abi/BitcoinAbiTypes.d.ts +4 -0
  6. package/browser/abi/BitcoinInterface.d.ts +9 -0
  7. package/browser/abi/interfaces/BaseContractProperties.d.ts +4 -0
  8. package/browser/abi/interfaces/BitcoinAbiValue.d.ts +5 -0
  9. package/browser/abi/interfaces/BitcoinInterfaceAbi.d.ts +11 -0
  10. package/browser/bitcoin/UTXOs.d.ts +1 -6
  11. package/browser/bitcoin/interfaces/IUTXO.d.ts +7 -0
  12. package/browser/common/CommonTypes.d.ts +1 -0
  13. package/browser/contracts/CallResult.d.ts +6 -3
  14. package/browser/contracts/Contract.d.ts +28 -0
  15. package/browser/contracts/interfaces/ICallResult.d.ts +2 -3
  16. package/browser/contracts/interfaces/IContract.d.ts +4 -0
  17. package/browser/crypto/crypto-browser.d.ts +7 -0
  18. package/browser/index.js +1 -1
  19. package/browser/opnet.d.ts +11 -0
  20. package/browser/scripts/testContract.d.ts +1 -0
  21. package/browser/scripts/testMethods.d.ts +1 -0
  22. package/browser/utils/BitcoinUtils.d.ts +4 -0
  23. package/build/_version.d.ts +1 -1
  24. package/build/_version.js +1 -1
  25. package/build/abi/BaseContractProperty.d.ts +3 -0
  26. package/build/abi/BaseContractProperty.js +1 -0
  27. package/build/abi/BitcoinAbiTypes.d.ts +4 -0
  28. package/build/abi/BitcoinAbiTypes.js +5 -0
  29. package/build/abi/BitcoinInterface.d.ts +9 -0
  30. package/build/abi/BitcoinInterface.js +45 -0
  31. package/build/abi/BitcoinInterfaceAbi.d.ts +3 -0
  32. package/build/abi/BitcoinInterfaceAbi.js +1 -0
  33. package/build/abi/enums/ParamTypes.d.ts +0 -0
  34. package/build/abi/enums/ParamTypes.js +1 -0
  35. package/build/abi/interface/BitcoinInterface.d.ts +6 -0
  36. package/build/abi/interface/BitcoinInterface.js +12 -0
  37. package/build/abi/interface/BitcoinInterfaceAbi.d.ts +3 -0
  38. package/build/abi/interface/BitcoinInterfaceAbi.js +1 -0
  39. package/build/abi/interfaces/BaseContractProperties.d.ts +4 -0
  40. package/build/abi/interfaces/BaseContractProperties.js +1 -0
  41. package/build/abi/interfaces/BaseContractProperty.d.ts +2 -0
  42. package/build/abi/interfaces/BaseContractProperty.js +1 -0
  43. package/build/abi/interfaces/BitcoinAbiInput.d.ts +5 -0
  44. package/build/abi/interfaces/BitcoinAbiInput.js +1 -0
  45. package/build/abi/interfaces/BitcoinAbiValue.d.ts +5 -0
  46. package/build/abi/interfaces/BitcoinAbiValue.js +1 -0
  47. package/build/abi/interfaces/BitcoinInterfaceAbi.d.ts +11 -0
  48. package/build/abi/interfaces/BitcoinInterfaceAbi.js +1 -0
  49. package/build/bitcoin/UTXOs.d.ts +1 -6
  50. package/build/bitcoin/interfaces/IUTXO.d.ts +7 -0
  51. package/build/bitcoin/interfaces/IUTXO.js +1 -0
  52. package/build/common/CommonTypes.d.ts +1 -0
  53. package/build/contracts/CallResult.d.ts +6 -3
  54. package/build/contracts/CallResult.js +9 -2
  55. package/build/contracts/Contract.d.ts +28 -0
  56. package/build/contracts/Contract.js +206 -0
  57. package/build/contracts/interfaces/ICallResult.d.ts +2 -3
  58. package/build/contracts/interfaces/IContract.d.ts +4 -0
  59. package/build/contracts/interfaces/IContract.js +1 -0
  60. package/build/interface/BitcoinInterface.d.ts +6 -0
  61. package/build/interface/BitcoinInterface.js +12 -0
  62. package/build/interface/BitcoinInterfaceAbi.d.ts +3 -0
  63. package/build/interface/BitcoinInterfaceAbi.js +1 -0
  64. package/build/interface/Interface.d.ts +2 -0
  65. package/build/interface/Interface.js +2 -0
  66. package/build/interface.d.ts +0 -0
  67. package/build/interface.js +1 -0
  68. package/build/opnet.d.ts +11 -0
  69. package/build/opnet.js +11 -0
  70. package/build/scripts/test.js +12 -0
  71. package/build/scripts/testContract.d.ts +1 -0
  72. package/build/scripts/testContract.js +28 -0
  73. package/build/scripts/testMethods.d.ts +1 -0
  74. package/build/scripts/testMethods.js +24 -0
  75. package/build/utils/BitcoinUtils.d.ts +4 -0
  76. package/build/utils/BitcoinUtils.js +7 -0
  77. package/cjs/_version.d.ts +1 -0
  78. package/cjs/_version.js +4 -0
  79. package/cjs/abi/BaseContractProperty.d.ts +3 -0
  80. package/cjs/abi/BaseContractProperty.js +2 -0
  81. package/cjs/abi/BitcoinAbiTypes.d.ts +4 -0
  82. package/cjs/abi/BitcoinAbiTypes.js +8 -0
  83. package/cjs/abi/BitcoinInterface.d.ts +9 -0
  84. package/cjs/abi/BitcoinInterface.js +49 -0
  85. package/cjs/abi/interfaces/BaseContractProperties.d.ts +4 -0
  86. package/cjs/abi/interfaces/BaseContractProperties.js +2 -0
  87. package/cjs/abi/interfaces/BitcoinAbiValue.d.ts +5 -0
  88. package/cjs/abi/interfaces/BitcoinAbiValue.js +2 -0
  89. package/cjs/abi/interfaces/BitcoinInterfaceAbi.d.ts +11 -0
  90. package/cjs/abi/interfaces/BitcoinInterfaceAbi.js +2 -0
  91. package/cjs/bitcoin/BitcoinAddress.d.ts +20 -0
  92. package/cjs/bitcoin/BitcoinAddress.js +116 -0
  93. package/cjs/bitcoin/UTXOs.d.ts +15 -0
  94. package/cjs/bitcoin/UTXOs.js +16 -0
  95. package/cjs/block/Block.d.ts +2 -3
  96. package/cjs/block/Block.js +3 -28
  97. package/cjs/block/interfaces/IBlock.d.ts +28 -0
  98. package/cjs/block/interfaces/IBlock.js +2 -0
  99. package/cjs/common/CommonTypes.d.ts +4 -0
  100. package/cjs/common/CommonTypes.js +2 -0
  101. package/cjs/contracts/CallResult.d.ts +13 -0
  102. package/cjs/contracts/CallResult.js +25 -0
  103. package/cjs/contracts/Contract.d.ts +28 -0
  104. package/cjs/contracts/Contract.js +212 -0
  105. package/cjs/contracts/ContractData.d.ts +15 -0
  106. package/cjs/contracts/ContractData.js +36 -0
  107. package/cjs/contracts/interfaces/IAccessList.d.ts +6 -0
  108. package/cjs/contracts/interfaces/IAccessList.js +2 -0
  109. package/cjs/contracts/interfaces/ICallResult.d.ts +11 -0
  110. package/cjs/contracts/interfaces/ICallResult.js +2 -0
  111. package/cjs/contracts/interfaces/IContract.d.ts +4 -0
  112. package/cjs/contracts/interfaces/IContract.js +2 -0
  113. package/cjs/contracts/interfaces/IRawContract.d.ts +13 -0
  114. package/cjs/contracts/interfaces/IRawContract.js +2 -0
  115. package/cjs/crypto/crypto.d.ts +2 -0
  116. package/cjs/crypto/crypto.js +8 -0
  117. package/cjs/index.d.ts +3 -11
  118. package/cjs/index.js +16 -11
  119. package/cjs/opnet.d.ts +36 -0
  120. package/cjs/opnet.js +54 -0
  121. package/cjs/providers/AbstractRpcProvider.d.ts +34 -0
  122. package/cjs/providers/AbstractRpcProvider.js +161 -0
  123. package/cjs/providers/JSONRpcProvider.d.ts +5 -9
  124. package/cjs/providers/JSONRpcProvider.js +4 -29
  125. package/cjs/providers/WebsocketRpcProvider.d.ts +8 -0
  126. package/cjs/providers/WebsocketRpcProvider.js +27 -0
  127. package/cjs/scripts/testContract.d.ts +1 -0
  128. package/cjs/scripts/testContract.js +30 -0
  129. package/cjs/scripts/testMethods.d.ts +1 -0
  130. package/cjs/scripts/testMethods.js +26 -0
  131. package/cjs/serialize/BigInt.d.ts +6 -0
  132. package/cjs/serialize/BigInt.js +5 -0
  133. package/cjs/storage/StoredValue.d.ts +10 -0
  134. package/cjs/storage/StoredValue.js +28 -0
  135. package/cjs/storage/interfaces/IStorageValue.d.ts +9 -0
  136. package/cjs/storage/interfaces/IStorageValue.js +2 -0
  137. package/cjs/transactions/DeploymentTransaction.d.ts +10 -1
  138. package/cjs/transactions/DeploymentTransaction.js +16 -0
  139. package/cjs/transactions/GenericTransaction.d.ts +1 -1
  140. package/cjs/transactions/InteractionTransaction.d.ts +1 -1
  141. package/cjs/transactions/Transaction.d.ts +1 -1
  142. package/cjs/transactions/Transaction.js +1 -1
  143. package/cjs/transactions/TransactionParser.d.ts +7 -0
  144. package/cjs/transactions/TransactionParser.js +32 -0
  145. package/cjs/transactions/TransactionReceipt.d.ts +10 -0
  146. package/cjs/transactions/TransactionReceipt.js +16 -0
  147. package/cjs/transactions/interfaces/ITransaction.d.ts +39 -0
  148. package/cjs/transactions/interfaces/ITransaction.js +2 -0
  149. package/cjs/transactions/interfaces/ITransactionReceipt.d.ts +8 -0
  150. package/cjs/transactions/interfaces/ITransactionReceipt.js +2 -0
  151. package/cjs/utils/BitcoinUtils.d.ts +4 -0
  152. package/cjs/utils/BitcoinUtils.js +14 -0
  153. package/docs/assets/navigation.js +1 -1
  154. package/docs/assets/search.js +1 -1
  155. package/docs/classes/AbstractRpcProvider.html +15 -15
  156. package/docs/classes/BaseContract.html +187 -0
  157. package/docs/classes/BitcoinAddress.html +5 -2
  158. package/docs/classes/BitcoinInterface.html +182 -0
  159. package/docs/classes/BitcoinUtils.html +183 -0
  160. package/docs/classes/Block.html +5 -3
  161. package/docs/classes/CallResult.html +6 -2
  162. package/docs/classes/ContractData.html +4 -2
  163. package/docs/classes/DeploymentTransaction.html +4 -2
  164. package/docs/classes/GenericTransaction.html +4 -2
  165. package/docs/classes/IBaseContract.html +192 -0
  166. package/docs/classes/InteractionTransaction.html +3 -2
  167. package/docs/classes/JSONRpcProvider.html +14 -14
  168. package/docs/classes/StoredValue.html +4 -2
  169. package/docs/classes/TransactionBase.html +4 -2
  170. package/docs/classes/TransactionInput.html +3 -2
  171. package/docs/classes/TransactionOutput.html +3 -2
  172. package/docs/classes/TransactionParser.html +3 -2
  173. package/docs/classes/TransactionReceipt.html +3 -2
  174. package/docs/classes/UTXO.html +4 -2
  175. package/docs/classes/WebSocketRpcProvider.html +14 -14
  176. package/docs/enums/ABIDataTypes.html +183 -0
  177. package/docs/enums/BitcoinAbiTypes.html +178 -0
  178. package/docs/enums/OPNetTransactionTypes.html +2 -2
  179. package/docs/functions/getContract.html +180 -0
  180. package/docs/hierarchy.html +1 -1
  181. package/docs/index.html +4 -5
  182. package/docs/interfaces/BaseContractProperties.html +176 -0
  183. package/docs/interfaces/BitcoinAbiValue.html +180 -0
  184. package/docs/interfaces/BitcoinInterfaceAbiBase.html +182 -0
  185. package/docs/interfaces/IAccessList.html +3 -1
  186. package/docs/interfaces/IAccessListItem.html +3 -1
  187. package/docs/interfaces/IBlock.html +5 -3
  188. package/docs/interfaces/IBlockCommon.html +5 -3
  189. package/docs/interfaces/ICallRequestError.html +4 -2
  190. package/docs/interfaces/ICallResultData.html +4 -2
  191. package/docs/interfaces/IContract.html +177 -0
  192. package/docs/interfaces/IDeploymentTransaction.html +4 -2
  193. package/docs/interfaces/IGenericTransaction.html +4 -2
  194. package/docs/interfaces/IInteractionTransaction.html +4 -2
  195. package/docs/interfaces/IRawContract.html +5 -2
  196. package/docs/interfaces/IStorageValue.html +4 -2
  197. package/docs/interfaces/ITransactionBase.html +4 -2
  198. package/docs/interfaces/ITransactionInput.html +3 -2
  199. package/docs/interfaces/ITransactionOutput.html +3 -2
  200. package/docs/interfaces/ITransactionReceipt.html +4 -2
  201. package/docs/interfaces/IUTXO.html +4 -2
  202. package/docs/modules.html +38 -24
  203. package/docs/types/BaseContractProperty.html +176 -0
  204. package/docs/types/BitcoinAddressLike.html +1 -1
  205. package/docs/types/BitcoinInterfaceAbi.html +174 -0
  206. package/docs/types/BlockHeaderChecksumProof.html +1 -1
  207. package/docs/types/DecodedCallResult.html +174 -0
  208. package/docs/types/ICallResult.html +2 -1
  209. package/docs/types/ITransaction.html +2 -1
  210. package/docs/types/PointerLike.html +1 -1
  211. package/docs/types/UTXOs.html +3 -1
  212. package/docs/variables/version.html +1 -1
  213. package/package.json +6 -4
  214. package/src/_version.ts +1 -1
  215. package/src/abi/BaseContractProperty.ts +8 -0
  216. package/src/abi/BitcoinAbiTypes.ts +9 -0
  217. package/src/abi/BitcoinInterface.ts +63 -0
  218. package/src/abi/interfaces/BaseContractProperties.ts +9 -0
  219. package/src/abi/interfaces/BitcoinAbiValue.ts +18 -0
  220. package/src/abi/interfaces/BitcoinInterfaceAbi.ts +19 -0
  221. package/src/bitcoin/BitcoinAddress.ts +5 -0
  222. package/src/bitcoin/UTXOs.ts +28 -26
  223. package/src/bitcoin/interfaces/IUTXO.ts +12 -0
  224. package/src/block/Block.ts +5 -0
  225. package/src/block/interfaces/IBlock.ts +46 -38
  226. package/src/common/CommonTypes.ts +16 -4
  227. package/src/contracts/CallResult.ts +34 -20
  228. package/src/contracts/Contract.ts +321 -0
  229. package/src/contracts/ContractData.ts +46 -41
  230. package/src/contracts/interfaces/IAccessList.ts +17 -7
  231. package/src/contracts/interfaces/ICallResult.ts +29 -15
  232. package/src/contracts/interfaces/IContract.ts +10 -0
  233. package/src/contracts/interfaces/IRawContract.ts +17 -12
  234. package/src/crypto/crypto-browser.js +71 -60
  235. package/src/opnet.ts +17 -0
  236. package/src/providers/AbstractRpcProvider.ts +352 -351
  237. package/src/scripts/testContract.ts +51 -0
  238. package/src/scripts/{test.ts → testMethods.ts} +52 -54
  239. package/src/scripts/test_abi.json +31 -0
  240. package/src/storage/StoredValue.ts +35 -30
  241. package/src/storage/interfaces/IStorageValue.ts +15 -10
  242. package/src/transactions/DeploymentTransaction.ts +41 -36
  243. package/src/transactions/GenericTransaction.ts +19 -12
  244. package/src/transactions/InteractionTransaction.ts +44 -40
  245. package/src/transactions/Transaction.ts +8 -0
  246. package/src/transactions/TransactionInput.ts +8 -0
  247. package/src/transactions/TransactionOutput.ts +8 -0
  248. package/src/transactions/TransactionParser.ts +47 -43
  249. package/src/transactions/TransactionReceipt.ts +22 -18
  250. package/src/transactions/interfaces/ITransaction.ts +78 -52
  251. package/src/transactions/interfaces/ITransactionReceipt.ts +14 -9
  252. package/src/utils/BitcoinUtils.ts +22 -0
  253. package/webpack.config.js +71 -75
@@ -0,0 +1,51 @@
1
+ import { ABIDataTypes } from '@btc-vision/bsi-binary';
2
+ import { BaseContractProperty } from '../abi/BaseContractProperty.js';
3
+ import { BitcoinAbiTypes } from '../abi/BitcoinAbiTypes.js';
4
+ import { BaseContractProperties } from '../abi/interfaces/BaseContractProperties.js';
5
+ import { BitcoinInterfaceAbi } from '../abi/interfaces/BitcoinInterfaceAbi.js';
6
+ import { BitcoinAddressLike } from '../common/CommonTypes.js';
7
+ import { CallResult } from '../contracts/CallResult.js';
8
+ import { getContract } from '../contracts/Contract.js';
9
+ import { JSONRpcProvider } from '../providers/JSONRpcProvider.js';
10
+
11
+ const provider: JSONRpcProvider = new JSONRpcProvider('https://testnet.opnet.org');
12
+
13
+ interface TestContract extends BaseContractProperties {
14
+ giveFreeMoney(bool: true): Promise<BaseContractProperty>;
15
+
16
+ balanceOf(address: BitcoinAddressLike): Promise<BaseContractProperty>;
17
+ }
18
+
19
+ (async () => {
20
+ const abi: BitcoinInterfaceAbi = [
21
+ {
22
+ name: 'balanceOf',
23
+ inputs: [
24
+ {
25
+ name: 'address',
26
+ type: ABIDataTypes.ADDRESS,
27
+ },
28
+ ],
29
+ outputs: [
30
+ {
31
+ name: 'balance',
32
+ type: ABIDataTypes.UINT256,
33
+ },
34
+ ],
35
+ type: BitcoinAbiTypes.Function,
36
+ },
37
+ ];
38
+
39
+ const contract: TestContract = getContract<TestContract>(
40
+ 'tb1pth90usc4f528aqphpjrfkkdm4vy8hxnt5gps6aau2nva6pxeshtqqzlt3a',
41
+ abi,
42
+ provider,
43
+ );
44
+
45
+ // 13sBQqJdnAdc7v5tnX3ifYqAMoFX79VfLy
46
+ const res: CallResult = (await contract.balanceOf(
47
+ 'bc1p134a291b21a4ef28c961daee77a75e81cd7c0f00733a152930f76746a3e9',
48
+ )) as CallResult;
49
+
50
+ console.log('Balance:', res.decoded);
51
+ })();
@@ -1,54 +1,52 @@
1
- import { JSONRpcProvider } from '../providers/JSONRpcProvider.js';
2
-
3
- const provider: JSONRpcProvider = new JSONRpcProvider('https://testnet.opnet.org');
4
-
5
- /*
6
- const blockNumber = await provider.getBlockNumber();
7
- console.log('Current network height:', blockNumber);
8
-
9
- const block = await provider.getBlock(2810101n, true);
10
- console.log('Block ->', block.transactions[2]);
11
-
12
- const balance = await provider.getBalance('tb1qcfszz8dcvsz9mcp70ezw5zy2r3ydr0cfz60d3t');
13
- console.log('Balance out:', balance);
14
-
15
- const utxos = await provider.getUXTOs('tb1qcfszz8dcvsz9mcp70ezw5zy2r3ydr0cfz60d3t');
16
- console.log('UTXOs:', utxos);
17
-
18
- const transaction = await provider.getTransaction(
19
- '63e77ba9fa4262b3d4d0d9d97fa8a7359534606c3f3af096284662e3f619f374',
20
- );
21
-
22
- console.log('Transaction:', transaction);
23
-
24
- const receipt = await provider.getTransactionReceipt(
25
- '63e77ba9fa4262b3d4d0d9d97fa8a7359534606c3f3af096284662e3f619f374',
26
- );
27
- console.log('Receipt:', receipt);
28
- */
29
-
30
- (async () => {
31
- const net = await provider.getNetwork();
32
- console.log(net);
33
-
34
- const code = await provider.getCode(
35
- 'tb1pth90usc4f528aqphpjrfkkdm4vy8hxnt5gps6aau2nva6pxeshtqqzlt3a',
36
- );
37
-
38
- console.log('Code:', code);
39
-
40
- const pointerValue = await provider.getStorageAt(
41
- 'tb1pth90usc4f528aqphpjrfkkdm4vy8hxnt5gps6aau2nva6pxeshtqqzlt3a',
42
- 'EXLK/QhEQMI5d9DrthLvozT+UcDQ7WuSPaz7g8GV3AQ=',
43
- true,
44
- );
45
-
46
- console.log('Pointer value:', pointerValue);
47
-
48
- const callResult = await provider.call(
49
- 'tb1pth90usc4f528aqphpjrfkkdm4vy8hxnt5gps6aau2nva6pxeshtqqzlt3a',
50
- '82d62f3d3133734251714a646e416463377635746e583369665971414d6f4658373956664c79000000000000000000000000000000000000000000000000000000000000',
51
- );
52
-
53
- console.log('Call result:', callResult);
54
- })();
1
+ import { JSONRpcProvider } from '../providers/JSONRpcProvider.js';
2
+
3
+ const provider: JSONRpcProvider = new JSONRpcProvider('https://testnet.opnet.org');
4
+
5
+ (async () => {
6
+ const blockNumber = await provider.getBlockNumber();
7
+ console.log('Current network height:', blockNumber);
8
+
9
+ const block = await provider.getBlock(2810101n, true);
10
+ console.log('Block ->', block.transactions[2]);
11
+
12
+ const balance = await provider.getBalance('tb1qcfszz8dcvsz9mcp70ezw5zy2r3ydr0cfz60d3t');
13
+ console.log('Balance out:', balance);
14
+
15
+ const utxos = await provider.getUXTOs('tb1qcfszz8dcvsz9mcp70ezw5zy2r3ydr0cfz60d3t');
16
+ console.log('UTXOs:', utxos);
17
+
18
+ const transaction = await provider.getTransaction(
19
+ '63e77ba9fa4262b3d4d0d9d97fa8a7359534606c3f3af096284662e3f619f374',
20
+ );
21
+
22
+ console.log('Transaction:', transaction);
23
+
24
+ const receipt = await provider.getTransactionReceipt(
25
+ '63e77ba9fa4262b3d4d0d9d97fa8a7359534606c3f3af096284662e3f619f374',
26
+ );
27
+ console.log('Receipt:', receipt);
28
+
29
+ const net = await provider.getNetwork();
30
+ console.log(net);
31
+
32
+ const code = await provider.getCode(
33
+ 'tb1pth90usc4f528aqphpjrfkkdm4vy8hxnt5gps6aau2nva6pxeshtqqzlt3a',
34
+ );
35
+
36
+ console.log('Code:', code);
37
+
38
+ const pointerValue = await provider.getStorageAt(
39
+ 'tb1pth90usc4f528aqphpjrfkkdm4vy8hxnt5gps6aau2nva6pxeshtqqzlt3a',
40
+ 'EXLK/QhEQMI5d9DrthLvozT+UcDQ7WuSPaz7g8GV3AQ=',
41
+ true,
42
+ );
43
+
44
+ console.log('Pointer value:', pointerValue);
45
+
46
+ const callResult = await provider.call(
47
+ 'tb1pth90usc4f528aqphpjrfkkdm4vy8hxnt5gps6aau2nva6pxeshtqqzlt3a',
48
+ '82d62f3d3133734251714a646e416463377635746e583369665971414d6f4658373956664c79000000000000000000000000000000000000000000000000000000000000',
49
+ );
50
+
51
+ console.log('Call result:', callResult);
52
+ })();
@@ -0,0 +1,31 @@
1
+ [
2
+ {
3
+ "constant": true,
4
+ "inputs": [],
5
+ "name": "name",
6
+ "outputs": [
7
+ {
8
+ "name": "",
9
+ "type": "string"
10
+ }
11
+ ],
12
+ "type": "function"
13
+ },
14
+ {
15
+ "anonymous": false,
16
+ "inputs": [
17
+ {
18
+ "indexed": true,
19
+ "name": "src",
20
+ "type": "address"
21
+ },
22
+ {
23
+ "indexed": false,
24
+ "name": "wad",
25
+ "type": "uint256"
26
+ }
27
+ ],
28
+ "name": "Withdrawal",
29
+ "type": "event"
30
+ }
31
+ ]
@@ -1,30 +1,35 @@
1
- import { BufferHelper } from '@btc-vision/bsi-binary';
2
- import { IStorageValue } from './interfaces/IStorageValue.js';
3
-
4
- export class StoredValue implements IStorageValue {
5
- public readonly pointer: bigint;
6
- public readonly value: Buffer;
7
-
8
- public readonly height: bigint;
9
- public readonly proofs: string[];
10
-
11
- constructor(iStoredValue: IStorageValue) {
12
- this.pointer =
13
- typeof iStoredValue.pointer === 'string'
14
- ? this.base64ToBigInt(iStoredValue.pointer)
15
- : iStoredValue.pointer;
16
-
17
- if (iStoredValue.value instanceof Buffer) {
18
- this.value = iStoredValue.value;
19
- } else {
20
- this.value = Buffer.from(iStoredValue.value, 'base64');
21
- }
22
-
23
- this.height = BigInt(iStoredValue.height);
24
- this.proofs = iStoredValue.proofs || [];
25
- }
26
-
27
- private base64ToBigInt(base64: string): bigint {
28
- return BufferHelper.uint8ArrayToPointer(Buffer.from(base64, 'base64'));
29
- }
30
- }
1
+ import { BufferHelper } from '@btc-vision/bsi-binary';
2
+ import { IStorageValue } from './interfaces/IStorageValue.js';
3
+
4
+ /**
5
+ * @description This class is used represent a stored value.
6
+ * @class StoredValue
7
+ * @category Storage
8
+ */
9
+ export class StoredValue implements IStorageValue {
10
+ public readonly pointer: bigint;
11
+ public readonly value: Buffer;
12
+
13
+ public readonly height: bigint;
14
+ public readonly proofs: string[];
15
+
16
+ constructor(iStoredValue: IStorageValue) {
17
+ this.pointer =
18
+ typeof iStoredValue.pointer === 'string'
19
+ ? this.base64ToBigInt(iStoredValue.pointer)
20
+ : iStoredValue.pointer;
21
+
22
+ if (iStoredValue.value instanceof Buffer) {
23
+ this.value = iStoredValue.value;
24
+ } else {
25
+ this.value = Buffer.from(iStoredValue.value, 'base64');
26
+ }
27
+
28
+ this.height = BigInt(iStoredValue.height);
29
+ this.proofs = iStoredValue.proofs || [];
30
+ }
31
+
32
+ private base64ToBigInt(base64: string): bigint {
33
+ return BufferHelper.uint8ArrayToPointer(Buffer.from(base64, 'base64'));
34
+ }
35
+ }
@@ -1,10 +1,15 @@
1
- import { BigNumberish } from 'ethers';
2
- import { PointerLike } from '../../common/CommonTypes.js';
3
-
4
- export interface IStorageValue {
5
- readonly pointer: PointerLike;
6
- readonly value: string | Buffer;
7
-
8
- readonly height: BigNumberish;
9
- readonly proofs?: string[];
10
- }
1
+ import { BigNumberish } from 'ethers';
2
+ import { PointerLike } from '../../common/CommonTypes.js';
3
+
4
+ /**
5
+ * @description This interface is used to represent a stored value.
6
+ * @interface IStorageValue
7
+ * @category Storage
8
+ */
9
+ export interface IStorageValue {
10
+ readonly pointer: PointerLike;
11
+ readonly value: string | Buffer;
12
+
13
+ readonly height: BigNumberish;
14
+ readonly proofs?: string[];
15
+ }
@@ -1,36 +1,41 @@
1
- import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
2
- import { IDeploymentTransaction } from './interfaces/ITransaction.js';
3
- import { TransactionBase } from './Transaction.js';
4
-
5
- export class DeploymentTransaction
6
- extends TransactionBase<OPNetTransactionTypes.Deployment>
7
- implements IDeploymentTransaction
8
- {
9
- public readonly contractAddress: string;
10
- public readonly virtualAddress: string;
11
-
12
- public readonly bytecode: Buffer;
13
- public readonly wasCompressed: boolean;
14
-
15
- public readonly deployerPubKey: Buffer;
16
- public readonly deployerAddress: string;
17
-
18
- public readonly contractSeed: Buffer;
19
- public readonly contractSaltHash: Buffer;
20
-
21
- constructor(transaction: IDeploymentTransaction) {
22
- super(transaction);
23
-
24
- this.contractAddress = transaction.contractAddress;
25
- this.virtualAddress = transaction.virtualAddress;
26
-
27
- this.bytecode = Buffer.from(transaction.bytecode as string, 'base64');
28
- this.wasCompressed = transaction.wasCompressed;
29
-
30
- this.deployerPubKey = Buffer.from(transaction.deployerPubKey as string, 'base64');
31
- this.deployerAddress = transaction.deployerAddress;
32
-
33
- this.contractSeed = Buffer.from(transaction.contractSeed as string, 'base64');
34
- this.contractSaltHash = Buffer.from(transaction.contractSaltHash as string, 'base64');
35
- }
36
- }
1
+ import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
2
+ import { IDeploymentTransaction } from './interfaces/ITransaction.js';
3
+ import { TransactionBase } from './Transaction.js';
4
+
5
+ /**
6
+ * @description This class is used to provide a deployment transaction.
7
+ * @class DeploymentTransaction
8
+ * @category Transactions
9
+ */
10
+ export class DeploymentTransaction
11
+ extends TransactionBase<OPNetTransactionTypes.Deployment>
12
+ implements IDeploymentTransaction
13
+ {
14
+ public readonly contractAddress: string;
15
+ public readonly virtualAddress: string;
16
+
17
+ public readonly bytecode: Buffer;
18
+ public readonly wasCompressed: boolean;
19
+
20
+ public readonly deployerPubKey: Buffer;
21
+ public readonly deployerAddress: string;
22
+
23
+ public readonly contractSeed: Buffer;
24
+ public readonly contractSaltHash: Buffer;
25
+
26
+ constructor(transaction: IDeploymentTransaction) {
27
+ super(transaction);
28
+
29
+ this.contractAddress = transaction.contractAddress;
30
+ this.virtualAddress = transaction.virtualAddress;
31
+
32
+ this.bytecode = Buffer.from(transaction.bytecode as string, 'base64');
33
+ this.wasCompressed = transaction.wasCompressed;
34
+
35
+ this.deployerPubKey = Buffer.from(transaction.deployerPubKey as string, 'base64');
36
+ this.deployerAddress = transaction.deployerAddress;
37
+
38
+ this.contractSeed = Buffer.from(transaction.contractSeed as string, 'base64');
39
+ this.contractSaltHash = Buffer.from(transaction.contractSaltHash as string, 'base64');
40
+ }
41
+ }
@@ -1,12 +1,19 @@
1
- import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
2
- import { IGenericTransaction } from './interfaces/ITransaction.js';
3
- import { TransactionBase } from './Transaction.js';
4
-
5
- export class GenericTransaction
6
- extends TransactionBase<OPNetTransactionTypes.Generic>
7
- implements IGenericTransaction
8
- {
9
- constructor(transaction: IGenericTransaction) {
10
- super(transaction);
11
- }
12
- }
1
+ import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
2
+ import { IGenericTransaction } from './interfaces/ITransaction.js';
3
+ import { TransactionBase } from './Transaction.js';
4
+
5
+ /**
6
+ * @description This class is used to create a generic transaction.
7
+ * @class GenericTransaction
8
+ * @extends {TransactionBase<OPNetTransactionTypes.Generic>}
9
+ * @implements {IGenericTransaction}
10
+ * @category Transactions
11
+ */
12
+ export class GenericTransaction
13
+ extends TransactionBase<OPNetTransactionTypes.Generic>
14
+ implements IGenericTransaction
15
+ {
16
+ constructor(transaction: IGenericTransaction) {
17
+ super(transaction);
18
+ }
19
+ }
@@ -1,40 +1,44 @@
1
- import { NetEvent } from '@btc-vision/bsi-binary';
2
- import { Buffer } from 'buffer';
3
- import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
4
- import { IInteractionTransaction } from './interfaces/ITransaction.js';
5
- import { TransactionBase } from './Transaction.js';
6
-
7
- export class InteractionTransaction
8
- extends TransactionBase<OPNetTransactionTypes.Interaction>
9
- implements IInteractionTransaction
10
- {
11
- public readonly calldata: Buffer;
12
- public readonly senderPubKeyHash: Buffer;
13
- public readonly contractSecret: Buffer;
14
- public readonly interactionPubKey: Buffer;
15
-
16
- public readonly wasCompressed: boolean;
17
- public readonly events: NetEvent[];
18
-
19
- public readonly receipt?: Buffer;
20
-
21
- public readonly receiptProofs?: string[];
22
-
23
- constructor(transaction: IInteractionTransaction) {
24
- super(transaction);
25
-
26
- this.calldata = Buffer.from(transaction.calldata as string, 'base64');
27
- this.senderPubKeyHash = Buffer.from(transaction.senderPubKeyHash as string, 'base64');
28
- this.contractSecret = Buffer.from(transaction.contractSecret as string, 'base64');
29
- this.interactionPubKey = Buffer.from(transaction.interactionPubKey as string, 'base64');
30
-
31
- this.wasCompressed = transaction.wasCompressed;
32
-
33
- this.events = transaction.events;
34
- this.receipt = transaction.receipt
35
- ? Buffer.from(transaction.receipt as string, 'base64')
36
- : undefined;
37
-
38
- this.receiptProofs = transaction.receiptProofs;
39
- }
40
- }
1
+ import { NetEvent } from '@btc-vision/bsi-binary';
2
+ import { Buffer } from 'buffer';
3
+ import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
4
+ import { IInteractionTransaction } from './interfaces/ITransaction.js';
5
+ import { TransactionBase } from './Transaction.js';
6
+
7
+ /**
8
+ * Interaction transaction.
9
+ * @category Transactions
10
+ */
11
+ export class InteractionTransaction
12
+ extends TransactionBase<OPNetTransactionTypes.Interaction>
13
+ implements IInteractionTransaction
14
+ {
15
+ public readonly calldata: Buffer;
16
+ public readonly senderPubKeyHash: Buffer;
17
+ public readonly contractSecret: Buffer;
18
+ public readonly interactionPubKey: Buffer;
19
+
20
+ public readonly wasCompressed: boolean;
21
+ public readonly events: NetEvent[];
22
+
23
+ public readonly receipt?: Buffer;
24
+
25
+ public readonly receiptProofs?: string[];
26
+
27
+ constructor(transaction: IInteractionTransaction) {
28
+ super(transaction);
29
+
30
+ this.calldata = Buffer.from(transaction.calldata as string, 'base64');
31
+ this.senderPubKeyHash = Buffer.from(transaction.senderPubKeyHash as string, 'base64');
32
+ this.contractSecret = Buffer.from(transaction.contractSecret as string, 'base64');
33
+ this.interactionPubKey = Buffer.from(transaction.interactionPubKey as string, 'base64');
34
+
35
+ this.wasCompressed = transaction.wasCompressed;
36
+
37
+ this.events = transaction.events;
38
+ this.receipt = transaction.receipt
39
+ ? Buffer.from(transaction.receipt as string, 'base64')
40
+ : undefined;
41
+
42
+ this.receiptProofs = transaction.receiptProofs;
43
+ }
44
+ }
@@ -4,6 +4,14 @@ import { ITransactionBase } from './interfaces/ITransaction.js';
4
4
  import { TransactionInput } from './TransactionInput.js';
5
5
  import { ITransactionOutput, TransactionOutput } from './TransactionOutput.js';
6
6
 
7
+ /**
8
+ * @description This class is used to provide a base transaction.
9
+ * @class Transaction
10
+ * @implements {ITransactionBase<T>}
11
+ * @template T
12
+ * @category Transactions
13
+ * @abstract
14
+ */
7
15
  export abstract class TransactionBase<T extends OPNetTransactionTypes>
8
16
  implements ITransactionBase<T>
9
17
  {
@@ -1,5 +1,9 @@
1
1
  import { ScriptSig } from '@btc-vision/bsi-bitcoin-rpc';
2
2
 
3
+ /**
4
+ * Transaction input interface
5
+ * @category ITransactions
6
+ */
3
7
  export interface ITransactionInput {
4
8
  readonly originalTransactionId: string | undefined;
5
9
  readonly outputTransactionIndex: number | undefined;
@@ -10,6 +14,10 @@ export interface ITransactionInput {
10
14
  readonly transactionInWitness?: string[];
11
15
  }
12
16
 
17
+ /**
18
+ * Transaction input
19
+ * @category ITransactions
20
+ */
13
21
  export class TransactionInput implements ITransactionInput {
14
22
  public readonly originalTransactionId: string | undefined;
15
23
  public readonly outputTransactionIndex: number | undefined;
@@ -1,6 +1,10 @@
1
1
  import { ScriptPubKey } from '@btc-vision/bsi-bitcoin-rpc';
2
2
  import { script } from 'bitcoinjs-lib';
3
3
 
4
+ /**
5
+ * Transaction output interface
6
+ * @category ITransactions
7
+ */
4
8
  export interface ITransactionOutput {
5
9
  readonly index: number;
6
10
  readonly scriptPubKey: {
@@ -12,6 +16,10 @@ export interface ITransactionOutput {
12
16
  readonly value: string;
13
17
  }
14
18
 
19
+ /**
20
+ * Transaction output
21
+ * @category Transactions
22
+ */
15
23
  export class TransactionOutput {
16
24
  public readonly value: bigint;
17
25
  public readonly index: number;
@@ -1,43 +1,47 @@
1
- import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
2
- import { DeploymentTransaction } from './DeploymentTransaction.js';
3
- import { GenericTransaction } from './GenericTransaction.js';
4
- import { InteractionTransaction } from './InteractionTransaction.js';
5
- import {
6
- IDeploymentTransaction,
7
- IGenericTransaction,
8
- IInteractionTransaction,
9
- ITransaction,
10
- } from './interfaces/ITransaction.js';
11
- import { TransactionBase } from './Transaction.js';
12
-
13
- export class TransactionParser {
14
- public static parseTransactions(
15
- transactions: ITransaction[],
16
- ): TransactionBase<OPNetTransactionTypes>[] {
17
- if (!transactions) {
18
- return [];
19
- }
20
-
21
- const transactionArray: TransactionBase<OPNetTransactionTypes>[] = [];
22
- for (let transaction of transactions) {
23
- transactionArray.push(this.parseTransaction(transaction));
24
- }
25
-
26
- return transactionArray;
27
- }
28
-
29
- public static parseTransaction(
30
- transaction: ITransaction,
31
- ): TransactionBase<OPNetTransactionTypes> {
32
- switch (transaction.OPNetType) {
33
- case OPNetTransactionTypes.Generic:
34
- return new GenericTransaction(transaction as IGenericTransaction);
35
- case OPNetTransactionTypes.Interaction:
36
- return new InteractionTransaction(transaction as IInteractionTransaction);
37
- case OPNetTransactionTypes.Deployment:
38
- return new DeploymentTransaction(transaction as IDeploymentTransaction);
39
- default:
40
- throw new Error('Unknown transaction type');
41
- }
42
- }
43
- }
1
+ import { OPNetTransactionTypes } from '../interfaces/opnet/OPNetTransactionTypes.js';
2
+ import { DeploymentTransaction } from './DeploymentTransaction.js';
3
+ import { GenericTransaction } from './GenericTransaction.js';
4
+ import { InteractionTransaction } from './InteractionTransaction.js';
5
+ import {
6
+ IDeploymentTransaction,
7
+ IGenericTransaction,
8
+ IInteractionTransaction,
9
+ ITransaction,
10
+ } from './interfaces/ITransaction.js';
11
+ import { TransactionBase } from './Transaction.js';
12
+
13
+ /**
14
+ * Transaction parser
15
+ * @category Transactions
16
+ */
17
+ export class TransactionParser {
18
+ public static parseTransactions(
19
+ transactions: ITransaction[],
20
+ ): TransactionBase<OPNetTransactionTypes>[] {
21
+ if (!transactions) {
22
+ return [];
23
+ }
24
+
25
+ const transactionArray: TransactionBase<OPNetTransactionTypes>[] = [];
26
+ for (let transaction of transactions) {
27
+ transactionArray.push(this.parseTransaction(transaction));
28
+ }
29
+
30
+ return transactionArray;
31
+ }
32
+
33
+ public static parseTransaction(
34
+ transaction: ITransaction,
35
+ ): TransactionBase<OPNetTransactionTypes> {
36
+ switch (transaction.OPNetType) {
37
+ case OPNetTransactionTypes.Generic:
38
+ return new GenericTransaction(transaction as IGenericTransaction);
39
+ case OPNetTransactionTypes.Interaction:
40
+ return new InteractionTransaction(transaction as IInteractionTransaction);
41
+ case OPNetTransactionTypes.Deployment:
42
+ return new DeploymentTransaction(transaction as IDeploymentTransaction);
43
+ default:
44
+ throw new Error('Unknown transaction type');
45
+ }
46
+ }
47
+ }