@bitgo-beta/abstract-eth 1.0.2-beta.210 → 1.0.2-beta.2101

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 (178) hide show
  1. package/dist/src/abstractEthLikeCoin.d.ts +20 -9
  2. package/dist/src/abstractEthLikeCoin.d.ts.map +1 -1
  3. package/dist/src/abstractEthLikeCoin.js +46 -15
  4. package/dist/src/abstractEthLikeNewCoins.d.ts +876 -0
  5. package/dist/src/abstractEthLikeNewCoins.d.ts.map +1 -0
  6. package/dist/src/abstractEthLikeNewCoins.js +2664 -0
  7. package/dist/src/ethLikeToken.d.ts +38 -6
  8. package/dist/src/ethLikeToken.d.ts.map +1 -1
  9. package/dist/src/ethLikeToken.js +289 -10
  10. package/dist/src/index.d.ts +2 -0
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +8 -2
  13. package/dist/src/lib/constants.d.ts +4 -0
  14. package/dist/src/lib/constants.d.ts.map +1 -0
  15. package/dist/src/lib/constants.js +11 -0
  16. package/dist/src/lib/contractCall.d.ts +8 -0
  17. package/dist/src/lib/contractCall.d.ts.map +1 -0
  18. package/dist/src/lib/contractCall.js +17 -0
  19. package/dist/src/lib/decryptionDelegationBuilder.d.ts +90 -0
  20. package/dist/src/lib/decryptionDelegationBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/decryptionDelegationBuilder.js +59 -0
  22. package/dist/src/lib/iface.d.ts +143 -0
  23. package/dist/src/lib/iface.d.ts.map +1 -0
  24. package/dist/src/lib/iface.js +8 -0
  25. package/dist/src/lib/index.d.ts +19 -0
  26. package/dist/src/lib/index.d.ts.map +1 -0
  27. package/dist/src/lib/index.js +60 -0
  28. package/dist/src/lib/keyPair.d.ts +26 -0
  29. package/dist/src/lib/keyPair.d.ts.map +1 -0
  30. package/dist/src/lib/keyPair.js +65 -0
  31. package/dist/src/lib/messages/eip191/eip191Message.d.ts +12 -0
  32. package/dist/src/lib/messages/eip191/eip191Message.d.ts.map +1 -0
  33. package/dist/src/lib/messages/eip191/eip191Message.js +25 -0
  34. package/dist/src/lib/messages/eip191/eip191MessageBuilder.d.ts +19 -0
  35. package/dist/src/lib/messages/eip191/eip191MessageBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/messages/eip191/eip191MessageBuilder.js +27 -0
  37. package/dist/src/lib/messages/eip191/index.d.ts +3 -0
  38. package/dist/src/lib/messages/eip191/index.d.ts.map +1 -0
  39. package/dist/src/lib/messages/eip191/index.js +19 -0
  40. package/dist/src/lib/messages/eip712/eip712Message.d.ts +6 -0
  41. package/dist/src/lib/messages/eip712/eip712Message.d.ts.map +1 -0
  42. package/dist/src/lib/messages/eip712/eip712Message.js +27 -0
  43. package/dist/src/lib/messages/eip712/eip712MessageBuilder.d.ts +7 -0
  44. package/dist/src/lib/messages/eip712/eip712MessageBuilder.d.ts.map +1 -0
  45. package/dist/src/lib/messages/eip712/eip712MessageBuilder.js +15 -0
  46. package/dist/src/lib/messages/eip712/index.d.ts +3 -0
  47. package/dist/src/lib/messages/eip712/index.d.ts.map +1 -0
  48. package/dist/src/lib/messages/eip712/index.js +19 -0
  49. package/dist/src/lib/messages/index.d.ts +4 -0
  50. package/dist/src/lib/messages/index.d.ts.map +1 -0
  51. package/dist/src/lib/messages/index.js +20 -0
  52. package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
  53. package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  54. package/dist/src/lib/messages/messageBuilderFactory.js +23 -0
  55. package/dist/src/lib/transaction.d.ts +69 -0
  56. package/dist/src/lib/transaction.d.ts.map +1 -0
  57. package/dist/src/lib/transaction.js +149 -0
  58. package/dist/src/lib/transactionBuilder.d.ts +313 -0
  59. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder.js +926 -0
  61. package/dist/src/lib/transferBuilder.d.ts +76 -0
  62. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/transferBuilder.js +307 -0
  64. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts +54 -0
  65. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.js +120 -0
  67. package/dist/src/lib/transferBuilders/index.d.ts +5 -0
  68. package/dist/src/lib/transferBuilders/index.d.ts.map +1 -0
  69. package/dist/src/lib/transferBuilders/index.js +21 -0
  70. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts +17 -0
  71. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts.map +1 -0
  72. package/dist/src/lib/transferBuilders/transferBuilderERC1155.js +96 -0
  73. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts +21 -0
  74. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts.map +1 -0
  75. package/dist/src/lib/transferBuilders/transferBuilderERC721.js +91 -0
  76. package/dist/src/lib/transferBuilders/transferBuilderERC7984.d.ts +35 -0
  77. package/dist/src/lib/transferBuilders/transferBuilderERC7984.d.ts.map +1 -0
  78. package/dist/src/lib/transferBuilders/transferBuilderERC7984.js +113 -0
  79. package/dist/src/lib/types.d.ts +40 -0
  80. package/dist/src/lib/types.d.ts.map +1 -0
  81. package/dist/src/lib/types.js +140 -0
  82. package/dist/src/lib/utils.d.ts +350 -0
  83. package/dist/src/lib/utils.d.ts.map +1 -0
  84. package/dist/src/lib/utils.js +946 -0
  85. package/dist/src/lib/walletUtil.d.ts +46 -0
  86. package/dist/src/lib/walletUtil.d.ts.map +1 -0
  87. package/dist/src/lib/walletUtil.js +53 -0
  88. package/dist/src/lib/zamaUtils.d.ts +107 -0
  89. package/dist/src/lib/zamaUtils.d.ts.map +1 -0
  90. package/dist/src/lib/zamaUtils.js +220 -0
  91. package/dist/src/types.d.ts +9 -0
  92. package/dist/src/types.d.ts.map +1 -0
  93. package/dist/src/types.js +3 -0
  94. package/dist/test/index.d.ts +2 -0
  95. package/dist/test/index.d.ts.map +1 -0
  96. package/dist/test/index.js +18 -0
  97. package/dist/test/unit/coin.d.ts +8 -0
  98. package/dist/test/unit/coin.d.ts.map +1 -0
  99. package/dist/test/unit/coin.js +577 -0
  100. package/dist/test/unit/decryptionDelegationBuilder.d.ts +2 -0
  101. package/dist/test/unit/decryptionDelegationBuilder.d.ts.map +1 -0
  102. package/dist/test/unit/decryptionDelegationBuilder.js +265 -0
  103. package/dist/test/unit/index.d.ts +8 -0
  104. package/dist/test/unit/index.d.ts.map +1 -0
  105. package/dist/test/unit/index.js +24 -0
  106. package/dist/test/unit/messages/abstractEthMessageBuilderTests.d.ts +3 -0
  107. package/dist/test/unit/messages/abstractEthMessageBuilderTests.d.ts.map +1 -0
  108. package/dist/test/unit/messages/abstractEthMessageBuilderTests.js +110 -0
  109. package/dist/test/unit/messages/abstractEthMessageTestTypes.d.ts +43 -0
  110. package/dist/test/unit/messages/abstractEthMessageTestTypes.d.ts.map +1 -0
  111. package/dist/test/unit/messages/abstractEthMessageTestTypes.js +3 -0
  112. package/dist/test/unit/messages/abstractEthMessagesTests.d.ts +3 -0
  113. package/dist/test/unit/messages/abstractEthMessagesTests.d.ts.map +1 -0
  114. package/dist/test/unit/messages/abstractEthMessagesTests.js +129 -0
  115. package/dist/test/unit/messages/eip191/eip191Message.d.ts +2 -0
  116. package/dist/test/unit/messages/eip191/eip191Message.d.ts.map +1 -0
  117. package/dist/test/unit/messages/eip191/eip191Message.js +15 -0
  118. package/dist/test/unit/messages/eip191/eip191MessageBuilder.d.ts +2 -0
  119. package/dist/test/unit/messages/eip191/eip191MessageBuilder.d.ts.map +1 -0
  120. package/dist/test/unit/messages/eip191/eip191MessageBuilder.js +16 -0
  121. package/dist/test/unit/messages/eip191/fixtures.d.ts +109 -0
  122. package/dist/test/unit/messages/eip191/fixtures.d.ts.map +1 -0
  123. package/dist/test/unit/messages/eip191/fixtures.js +63 -0
  124. package/dist/test/unit/messages/eip712/eip712Message.d.ts +2 -0
  125. package/dist/test/unit/messages/eip712/eip712Message.d.ts.map +1 -0
  126. package/dist/test/unit/messages/eip712/eip712Message.js +15 -0
  127. package/dist/test/unit/messages/eip712/eip712MessageBuilder.d.ts +2 -0
  128. package/dist/test/unit/messages/eip712/eip712MessageBuilder.d.ts.map +1 -0
  129. package/dist/test/unit/messages/eip712/eip712MessageBuilder.js +16 -0
  130. package/dist/test/unit/messages/eip712/fixtures.d.ts +76 -0
  131. package/dist/test/unit/messages/eip712/fixtures.d.ts.map +1 -0
  132. package/dist/test/unit/messages/eip712/fixtures.js +120 -0
  133. package/dist/test/unit/messages/index.d.ts +4 -0
  134. package/dist/test/unit/messages/index.d.ts.map +1 -0
  135. package/dist/test/unit/messages/index.js +20 -0
  136. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  137. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  138. package/dist/test/unit/messages/messageBuilderFactory.js +52 -0
  139. package/dist/test/unit/token.d.ts +2 -0
  140. package/dist/test/unit/token.d.ts.map +1 -0
  141. package/dist/test/unit/token.js +37 -0
  142. package/dist/test/unit/transaction.d.ts +3 -0
  143. package/dist/test/unit/transaction.d.ts.map +1 -0
  144. package/dist/test/unit/transaction.js +73 -0
  145. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts +8 -0
  146. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts.map +1 -0
  147. package/dist/test/unit/transactionBuilder/addressInitialization.js +95 -0
  148. package/dist/test/unit/transactionBuilder/decryptionDelegation.d.ts +3 -0
  149. package/dist/test/unit/transactionBuilder/decryptionDelegation.d.ts.map +1 -0
  150. package/dist/test/unit/transactionBuilder/decryptionDelegation.js +161 -0
  151. package/dist/test/unit/transactionBuilder/flushERC7984.d.ts +3 -0
  152. package/dist/test/unit/transactionBuilder/flushERC7984.d.ts.map +1 -0
  153. package/dist/test/unit/transactionBuilder/flushERC7984.js +292 -0
  154. package/dist/test/unit/transactionBuilder/flushNft.d.ts +2 -0
  155. package/dist/test/unit/transactionBuilder/flushNft.d.ts.map +1 -0
  156. package/dist/test/unit/transactionBuilder/flushNft.js +381 -0
  157. package/dist/test/unit/transactionBuilder/index.d.ts +7 -0
  158. package/dist/test/unit/transactionBuilder/index.d.ts.map +1 -0
  159. package/dist/test/unit/transactionBuilder/index.js +23 -0
  160. package/dist/test/unit/transactionBuilder/send.d.ts +3 -0
  161. package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
  162. package/dist/test/unit/transactionBuilder/send.js +197 -0
  163. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts +11 -0
  164. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts.map +1 -0
  165. package/dist/test/unit/transactionBuilder/walletInitialization.js +137 -0
  166. package/dist/test/unit/transferBuilder.d.ts +2 -0
  167. package/dist/test/unit/transferBuilder.d.ts.map +1 -0
  168. package/dist/test/unit/transferBuilder.js +76 -0
  169. package/dist/test/unit/utils.d.ts +2 -0
  170. package/dist/test/unit/utils.d.ts.map +1 -0
  171. package/dist/test/unit/utils.js +214 -0
  172. package/dist/test/unit/zamaUtils.d.ts +2 -0
  173. package/dist/test/unit/zamaUtils.d.ts.map +1 -0
  174. package/dist/test/unit/zamaUtils.js +352 -0
  175. package/dist/tsconfig.tsbuildinfo +1 -8286
  176. package/package.json +34 -10
  177. package/.eslintignore +0 -5
  178. package/CHANGELOG.md +0 -166
@@ -0,0 +1,21 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./baseNFTTransferBuilder"), exports);
18
+ __exportStar(require("./transferBuilderERC1155"), exports);
19
+ __exportStar(require("./transferBuilderERC721"), exports);
20
+ __exportStar(require("./transferBuilderERC7984"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zZmVyQnVpbGRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF5QztBQUN6QywyREFBeUM7QUFDekMsMERBQXdDO0FBQ3hDLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZU5GVFRyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZmVyQnVpbGRlckVSQzExNTUnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXJFUkM3MjEnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXJFUkM3OTg0JztcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { BaseNFTTransferBuilder } from './baseNFTTransferBuilder';
2
+ export declare class ERC1155TransferBuilder extends BaseNFTTransferBuilder {
3
+ private _tokenIds;
4
+ private _values;
5
+ private _bytes;
6
+ constructor(serializedData?: string);
7
+ coin(coin: string): ERC1155TransferBuilder;
8
+ tokenContractAddress(address: string): ERC1155TransferBuilder;
9
+ entry(tokenId: number, value: number): ERC1155TransferBuilder;
10
+ bytes(bytesInNumber: number): ERC1155TransferBuilder;
11
+ getIsFirstSigner(): boolean;
12
+ signAndBuild(chainId: string): string;
13
+ private hasMandatoryFields;
14
+ private decodeTransferData;
15
+ build(): string;
16
+ }
17
+ //# sourceMappingURL=transferBuilderERC1155.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilderERC1155.d.ts","sourceRoot":"","sources":["../../../../src/lib/transferBuilders/transferBuilderERC1155.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,sBAAuB,SAAQ,sBAAsB;IAChE,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,MAAM,CAAS;gBAEX,cAAc,CAAC,EAAE,MAAM;IAWnC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB;IAM1C,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB;IAQ7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAM7D,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,sBAAsB;IAKpD,gBAAgB,IAAI,OAAO;IAI3B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAqBrC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,kBAAkB;IAe1B,KAAK,IAAI,MAAM;CAWhB"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC1155TransferBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const utils_1 = require("ethers/lib/utils");
6
+ const contractCall_1 = require("../contractCall");
7
+ const utils_2 = require("../utils");
8
+ const walletUtil_1 = require("../walletUtil");
9
+ const baseNFTTransferBuilder_1 = require("./baseNFTTransferBuilder");
10
+ const statics_1 = require("@bitgo-beta/statics");
11
+ class ERC1155TransferBuilder extends baseNFTTransferBuilder_1.BaseNFTTransferBuilder {
12
+ constructor(serializedData) {
13
+ super(serializedData);
14
+ this.bytes(0);
15
+ if (serializedData) {
16
+ this.decodeTransferData(serializedData);
17
+ }
18
+ else {
19
+ this._tokenIds = [];
20
+ this._values = [];
21
+ }
22
+ }
23
+ coin(coin) {
24
+ this._coin = statics_1.coins.get(coin);
25
+ this._nativeCoinOperationHashPrefix = this._coin.network.nativeCoinOperationHashPrefix;
26
+ return this;
27
+ }
28
+ tokenContractAddress(address) {
29
+ if ((0, utils_2.isValidEthAddress)(address)) {
30
+ this._tokenContractAddress = address;
31
+ return this;
32
+ }
33
+ throw new sdk_core_1.InvalidParameterValueError('Invalid address');
34
+ }
35
+ entry(tokenId, value) {
36
+ this._tokenIds.push(tokenId.toString());
37
+ this._values.push(value.toString());
38
+ return this;
39
+ }
40
+ bytes(bytesInNumber) {
41
+ this._bytes = (0, utils_1.hexZeroPad)((0, utils_1.hexlify)(bytesInNumber), 32);
42
+ return this;
43
+ }
44
+ getIsFirstSigner() {
45
+ return false;
46
+ }
47
+ signAndBuild(chainId) {
48
+ this._chainId = chainId;
49
+ const hasMandatoryFields = this.hasMandatoryFields();
50
+ if (hasMandatoryFields) {
51
+ this._data = this.build();
52
+ return (0, utils_2.sendMultiSigData)(this._tokenContractAddress, '0', // dummy amount value
53
+ this._data, this._expirationTime, this._sequenceId, this.getSignature());
54
+ }
55
+ throw new sdk_core_1.BuildTransactionError(`Missing transfer mandatory fields.
56
+ Destination (to) address, source (from) address, sequenceID, the token contract address, tokenIDs and their values are mandatory`);
57
+ }
58
+ hasMandatoryFields() {
59
+ return (this._tokenIds !== undefined &&
60
+ this._tokenIds.length !== 0 &&
61
+ this._values.length !== 0 &&
62
+ this._tokenIds.length === this._values.length &&
63
+ this._toAddress !== undefined &&
64
+ this._fromAddress !== undefined &&
65
+ this._tokenContractAddress !== undefined &&
66
+ this._sequenceId !== undefined);
67
+ }
68
+ decodeTransferData(data) {
69
+ const transferData = (0, utils_2.decodeERC1155TransferData)(data);
70
+ this._toAddress = transferData.to;
71
+ this._fromAddress = transferData.from;
72
+ this._expirationTime = transferData.expireTime;
73
+ this._sequenceId = transferData.sequenceId;
74
+ this._signature = transferData.signature;
75
+ this._tokenContractAddress = transferData.tokenContractAddress;
76
+ this._tokenIds = transferData.tokenIds;
77
+ this._values = transferData.values;
78
+ if (transferData.data) {
79
+ this._data = transferData.data;
80
+ }
81
+ }
82
+ build() {
83
+ if (this._tokenIds.length === 1) {
84
+ const values = [this._fromAddress, this._toAddress, this._tokenIds[0], this._values[0], this._bytes];
85
+ const contractCall = new contractCall_1.ContractCall(walletUtil_1.ERC1155SafeTransferTypeMethodId, walletUtil_1.ERC1155SafeTransferTypes, values);
86
+ return contractCall.serialize();
87
+ }
88
+ else {
89
+ const values = [this._fromAddress, this._toAddress, this._tokenIds, this._values, this._bytes];
90
+ const contractCall = new contractCall_1.ContractCall(walletUtil_1.ERC1155BatchTransferTypeMethodId, walletUtil_1.ERC1155BatchTransferTypes, values);
91
+ return contractCall.serialize();
92
+ }
93
+ }
94
+ }
95
+ exports.ERC1155TransferBuilder = ERC1155TransferBuilder;
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyRVJDMTE1NS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNmZXJCdWlsZGVycy90cmFuc2ZlckJ1aWxkZXJFUkMxMTU1LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUF5RjtBQUN6Riw0Q0FBdUQ7QUFFdkQsa0RBQStDO0FBQy9DLG9DQUEwRjtBQUMxRiw4Q0FLdUI7QUFDdkIscUVBQWtFO0FBQ2xFLGlEQUErRTtBQUUvRSxNQUFhLHNCQUF1QixTQUFRLCtDQUFzQjtJQUtoRSxZQUFZLGNBQXVCO1FBQ2pDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFZO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyw4QkFBOEIsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQTBCLENBQUMsNkJBQTZCLENBQUM7UUFDM0csT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsT0FBZTtRQUNsQyxJQUFJLElBQUEseUJBQWlCLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxxQ0FBMEIs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R0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JHLE1BQU0sWUFBWSxHQUFHLElBQUksMkJBQVksQ0FBQyw0Q0FBK0IsRUFBRSxxQ0FBd0IsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RyxPQUFPLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0YsTUFBTSxZQUFZLEdBQUcsSUFBSSwyQkFBWSxDQUFDLDZDQUFnQyxFQUFFLHNDQUF5QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNHLE9BQU8sWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF4R0Qsd0RBd0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGhleGxpZnksIGhleFplcm9QYWQgfSBmcm9tICdldGhlcnMvbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29udHJhY3RDYWxsIH0gZnJvbSAnLi4vY29udHJhY3RDYWxsJztcbmltcG9ydCB7IGRlY29kZUVSQzExNTVUcmFuc2ZlckRhdGEsIGlzVmFsaWRFdGhBZGRyZXNzLCBzZW5kTXVsdGlTaWdEYXRhIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgRVJDMTE1NUJhdGNoVHJhbnNmZXJUeXBlcyxcbiAgRVJDMTE1NVNhZmVUcmFuc2ZlclR5cGVzLFxuICBFUkMxMTU1QmF0Y2hUcmFuc2ZlclR5cGVNZXRob2RJZCxcbiAgRVJDMTE1NVNhZmVUcmFuc2ZlclR5cGVNZXRob2RJZCxcbn0gZnJvbSAnLi4vd2FsbGV0VXRpbCc7XG5pbXBvcnQgeyBCYXNlTkZUVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi9iYXNlTkZUVHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IGNvaW5zLCBFdGhlcmV1bU5ldHdvcmsgYXMgRXRoTGlrZU5ldHdvcmsgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuZXhwb3J0IGNsYXNzIEVSQzExNTVUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBCYXNlTkZUVHJhbnNmZXJCdWlsZGVyIHtcbiAgcHJpdmF0ZSBfdG9rZW5JZHM6IHN0cmluZ1tdO1xuICBwcml2YXRlIF92YWx1ZXM6IHN0cmluZ1tdO1xuICBwcml2YXRlIF9ieXRlczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNlcmlhbGl6ZWREYXRhPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2VyaWFsaXplZERhdGEpO1xuICAgIHRoaXMuYnl0ZXMoMCk7XG4gICAgaWYgKHNlcmlhbGl6ZWREYXRhKSB7XG4gICAgICB0aGlzLmRlY29kZVRyYW5zZmVyRGF0YShzZXJpYWxpemVkRGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3Rva2VuSWRzID0gW107XG4gICAgICB0aGlzLl92YWx1ZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBjb2luKGNvaW46IHN0cmluZyk6IEVSQzExNTVUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRoaXMuX2NvaW4gPSBjb2lucy5nZXQoY29pbik7XG4gICAgdGhpcy5fbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPSAodGhpcy5fY29pbi5uZXR3b3JrIGFzIEV0aExpa2VOZXR3b3JrKS5uYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHRva2VuQ29udHJhY3RBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IEVSQzExNTVUcmFuc2ZlckJ1aWxkZXIge1xuICAgIGlmIChpc1ZhbGlkRXRoQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgPSBhZGRyZXNzO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gIH1cblxuICBlbnRyeSh0b2tlbklkOiBudW1iZXIsIHZhbHVlOiBudW1iZXIpOiBFUkMxMTU1VHJhbnNmZXJCdWlsZGVyIHtcbiAgICB0aGlzLl90b2tlbklkcy5wdXNoKHRva2VuSWQudG9TdHJpbmcoKSk7XG4gICAgdGhpcy5fdmFsdWVzLnB1c2godmFsdWUudG9TdHJpbmcoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBieXRlcyhieXRlc0luTnVtYmVyOiBudW1iZXIpOiBFUkMxMTU1VHJhbnNmZXJCdWlsZGVyIHtcbiAgICB0aGlzLl9ieXRlcyA9IGhleFplcm9QYWQoaGV4bGlmeShieXRlc0luTnVtYmVyKSwgMzIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0SXNGaXJzdFNpZ25lcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzaWduQW5kQnVpbGQoY2hhaW5JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0aGlzLl9jaGFpbklkID0gY2hhaW5JZDtcbiAgICBjb25zdCBoYXNNYW5kYXRvcnlGaWVsZHMgPSB0aGlzLmhhc01hbmRhdG9yeUZpZWxkcygpO1xuICAgIGlmIChoYXNNYW5kYXRvcnlGaWVsZHMpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLmJ1aWxkKCk7XG5cbiAgICAgIHJldHVybiBzZW5kTXVsdGlTaWdEYXRhKFxuICAgICAgICB0aGlzLl90b2tlbkNvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgJzAnLCAvLyBkdW1teSBhbW91bnQgdmFsdWVcbiAgICAgICAgdGhpcy5fZGF0YSxcbiAgICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUsXG4gICAgICAgIHRoaXMuX3NlcXVlbmNlSWQsXG4gICAgICAgIHRoaXMuZ2V0U2lnbmF0dXJlKClcbiAgICAgICk7XG4gICAgfVxuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICBgTWlzc2luZyB0cmFuc2ZlciBtYW5kYXRvcnkgZmllbGRzLiBcbiAgICAgICBEZXN0aW5hdGlvbiAodG8pIGFkZHJlc3MsIHNvdXJjZSAoZnJvbSkgYWRkcmVzcywgc2VxdWVuY2VJRCwgdGhlIHRva2VuIGNvbnRyYWN0IGFkZHJlc3MsIHRva2VuSURzIGFuZCB0aGVpciB2YWx1ZXMgYXJlIG1hbmRhdG9yeWBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNNYW5kYXRvcnlGaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX3Rva2VuSWRzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuX3Rva2VuSWRzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgdGhpcy5fdmFsdWVzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgdGhpcy5fdG9rZW5JZHMubGVuZ3RoID09PSB0aGlzLl92YWx1ZXMubGVuZ3RoICYmXG4gICAgICB0aGlzLl90b0FkZHJlc3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fZnJvbUFkZHJlc3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fc2VxdWVuY2VJZCAhPT0gdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIGRlY29kZVRyYW5zZmVyRGF0YShkYXRhOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0cmFuc2ZlckRhdGEgPSBkZWNvZGVFUkMxMTU1VHJhbnNmZXJEYXRhKGRhdGEpO1xuICAgIHRoaXMuX3RvQWRkcmVzcyA9IHRyYW5zZmVyRGF0YS50bztcbiAgICB0aGlzLl9mcm9tQWRkcmVzcyA9IHRyYW5zZmVyRGF0YS5mcm9tO1xuICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lID0gdHJhbnNmZXJEYXRhLmV4cGlyZVRpbWU7XG4gICAgdGhpcy5fc2VxdWVuY2VJZCA9IHRyYW5zZmVyRGF0YS5zZXF1ZW5jZUlkO1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRyYW5zZmVyRGF0YS5zaWduYXR1cmU7XG4gICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgPSB0cmFuc2ZlckRhdGEudG9rZW5Db250cmFjdEFkZHJlc3M7XG4gICAgdGhpcy5fdG9rZW5JZHMgPSB0cmFuc2ZlckRhdGEudG9rZW5JZHM7XG4gICAgdGhpcy5fdmFsdWVzID0gdHJhbnNmZXJEYXRhLnZhbHVlcztcbiAgICBpZiAodHJhbnNmZXJEYXRhLmRhdGEpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0cmFuc2ZlckRhdGEuZGF0YTtcbiAgICB9XG4gIH1cblxuICBidWlsZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl90b2tlbklkcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IFt0aGlzLl9mcm9tQWRkcmVzcywgdGhpcy5fdG9BZGRyZXNzLCB0aGlzLl90b2tlbklkc1swXSwgdGhpcy5fdmFsdWVzWzBdLCB0aGlzLl9ieXRlc107XG4gICAgICBjb25zdCBjb250cmFjdENhbGwgPSBuZXcgQ29udHJhY3RDYWxsKEVSQzExNTVTYWZlVHJhbnNmZXJUeXBlTWV0aG9kSWQsIEVSQzExNTVTYWZlVHJhbnNmZXJUeXBlcywgdmFsdWVzKTtcbiAgICAgIHJldHVybiBjb250cmFjdENhbGwuc2VyaWFsaXplKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IFt0aGlzLl9mcm9tQWRkcmVzcywgdGhpcy5fdG9BZGRyZXNzLCB0aGlzLl90b2tlbklkcywgdGhpcy5fdmFsdWVzLCB0aGlzLl9ieXRlc107XG4gICAgICBjb25zdCBjb250cmFjdENhbGwgPSBuZXcgQ29udHJhY3RDYWxsKEVSQzExNTVCYXRjaFRyYW5zZmVyVHlwZU1ldGhvZElkLCBFUkMxMTU1QmF0Y2hUcmFuc2ZlclR5cGVzLCB2YWx1ZXMpO1xuICAgICAgcmV0dXJuIGNvbnRyYWN0Q2FsbC5zZXJpYWxpemUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { BaseNFTTransferBuilder } from './baseNFTTransferBuilder';
2
+ export declare class ERC721TransferBuilder extends BaseNFTTransferBuilder {
3
+ private _tokenId;
4
+ private _bytes;
5
+ constructor(serializedData?: string);
6
+ coin(coin: string): ERC721TransferBuilder;
7
+ tokenContractAddress(address: string): ERC721TransferBuilder;
8
+ tokenId(token: string): ERC721TransferBuilder;
9
+ bytes(bytesInNumber: number): ERC721TransferBuilder;
10
+ getIsFirstSigner(): boolean;
11
+ build(): string;
12
+ /**
13
+ * Build using transferFrom(address,address,uint256) without the bytes data parameter.
14
+ * Required for HTS NFT transfers on Hedera EVM, which only supports transferFrom.
15
+ */
16
+ buildTransferFrom(): string;
17
+ signAndBuild(chainId: string): string;
18
+ private hasMandatoryFields;
19
+ private decodeTransferData;
20
+ }
21
+ //# sourceMappingURL=transferBuilderERC721.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilderERC721.d.ts","sourceRoot":"","sources":["../../../../src/lib/transferBuilders/transferBuilderERC721.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AASlE,qBAAa,qBAAsB,SAAQ,sBAAsB;IAC/D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;gBAEX,cAAc,CAAC,EAAE,MAAM;IAQnC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB;IAMzC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB;IAQ5D,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB;IAK7C,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,qBAAqB;IAKnD,gBAAgB,IAAI,OAAO;IAI3B,KAAK,IAAI,MAAM;IAOf;;;OAGG;IACH,iBAAiB,IAAI,MAAM;IAO3B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAqBrC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;CAa3B"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC721TransferBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const utils_1 = require("ethers/lib/utils");
6
+ const contractCall_1 = require("../contractCall");
7
+ const utils_2 = require("../utils");
8
+ const baseNFTTransferBuilder_1 = require("./baseNFTTransferBuilder");
9
+ const walletUtil_1 = require("../walletUtil");
10
+ const statics_1 = require("@bitgo-beta/statics");
11
+ class ERC721TransferBuilder extends baseNFTTransferBuilder_1.BaseNFTTransferBuilder {
12
+ constructor(serializedData) {
13
+ super(serializedData);
14
+ this.bytes(0);
15
+ if (serializedData) {
16
+ this.decodeTransferData(serializedData);
17
+ }
18
+ }
19
+ coin(coin) {
20
+ this._coin = statics_1.coins.get(coin);
21
+ this._nativeCoinOperationHashPrefix = this._coin.network.nativeCoinOperationHashPrefix;
22
+ return this;
23
+ }
24
+ tokenContractAddress(address) {
25
+ if ((0, utils_2.isValidEthAddress)(address)) {
26
+ this._tokenContractAddress = address;
27
+ return this;
28
+ }
29
+ throw new sdk_core_1.InvalidParameterValueError('Invalid address');
30
+ }
31
+ tokenId(token) {
32
+ this._tokenId = token;
33
+ return this;
34
+ }
35
+ bytes(bytesInNumber) {
36
+ this._bytes = (0, utils_1.hexZeroPad)((0, utils_1.hexlify)(bytesInNumber), 32);
37
+ return this;
38
+ }
39
+ getIsFirstSigner() {
40
+ return false;
41
+ }
42
+ build() {
43
+ const types = walletUtil_1.ERC721SafeTransferTypes;
44
+ const values = [this._fromAddress, this._toAddress, this._tokenId, this._bytes];
45
+ const contractCall = new contractCall_1.ContractCall(walletUtil_1.ERC721SafeTransferTypeMethodId, types, values);
46
+ return contractCall.serialize();
47
+ }
48
+ /**
49
+ * Build using transferFrom(address,address,uint256) without the bytes data parameter.
50
+ * Required for HTS NFT transfers on Hedera EVM, which only supports transferFrom.
51
+ */
52
+ buildTransferFrom() {
53
+ const types = walletUtil_1.ERC721TransferFromTypes;
54
+ const values = [this._fromAddress, this._toAddress, this._tokenId];
55
+ const contractCall = new contractCall_1.ContractCall(walletUtil_1.ERC721TransferFromMethodId, types, values);
56
+ return contractCall.serialize();
57
+ }
58
+ signAndBuild(chainId) {
59
+ this._chainId = chainId;
60
+ if (this.hasMandatoryFields()) {
61
+ this._data = this.build();
62
+ return (0, utils_2.sendMultiSigData)(this._tokenContractAddress, // to
63
+ '0', // dummy amount value
64
+ this._data, this._expirationTime, this._sequenceId, this.getSignature());
65
+ }
66
+ throw new sdk_core_1.BuildTransactionError(`Missing transfer mandatory fields.
67
+ Destination (to) address, Source (from) address, sequenceID, the token contract address and tokenID are mandatory`);
68
+ }
69
+ hasMandatoryFields() {
70
+ return (this._tokenId !== undefined &&
71
+ this._toAddress !== undefined &&
72
+ this._fromAddress !== undefined &&
73
+ this._tokenContractAddress !== undefined &&
74
+ this._sequenceId !== undefined);
75
+ }
76
+ decodeTransferData(data) {
77
+ const transferData = (0, utils_2.decodeERC721TransferData)(data);
78
+ this._toAddress = transferData.to;
79
+ this._fromAddress = transferData.from;
80
+ this._expirationTime = transferData.expireTime;
81
+ this._sequenceId = transferData.sequenceId;
82
+ this._signature = transferData.signature;
83
+ this._tokenContractAddress = transferData.tokenContractAddress;
84
+ this._tokenId = transferData.tokenId;
85
+ if (transferData.data) {
86
+ this._data = transferData.data;
87
+ }
88
+ }
89
+ }
90
+ exports.ERC721TransferBuilder = ERC721TransferBuilder;
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyRVJDNzIxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXJzL3RyYW5zZmVyQnVpbGRlckVSQzcyMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBeUY7QUFDekYsNENBQXVEO0FBRXZELGtEQUErQztBQUMvQyxvQ0FBeUY7QUFDekYscUVBQWtFO0FBQ2xFLDhDQUt1QjtBQUN2QixpREFBK0U7QUFFL0UsTUFBYSxxQkFBc0IsU0FBUSwrQ0FBc0I7SUFJL0QsWUFBWSxjQUF1QjtRQUNqQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNkLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQVk7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLDhCQUE4QixHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBMEIsQ0FBQyw2QkFBNkIsQ0FBQztRQUMzRyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFlO1FBQ2xDLElBQUksSUFBQSx5QkFBaUIsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxJQUFJLHFDQUEwQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RC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LEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdEdELHNEQXNHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBoZXhsaWZ5LCBoZXhaZXJvUGFkIH0gZnJvbSAnZXRoZXJzL2xpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbnRyYWN0Q2FsbCB9IGZyb20gJy4uL2NvbnRyYWN0Q2FsbCc7XG5pbXBvcnQgeyBkZWNvZGVFUkM3MjFUcmFuc2ZlckRhdGEsIGlzVmFsaWRFdGhBZGRyZXNzLCBzZW5kTXVsdGlTaWdEYXRhIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQmFzZU5GVFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vYmFzZU5GVFRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQge1xuICBFUkM3MjFTYWZlVHJhbnNmZXJUeXBlTWV0aG9kSWQsXG4gIEVSQzcyMVNhZmVUcmFuc2ZlclR5cGVzLFxuICBFUkM3MjFUcmFuc2ZlckZyb21NZXRob2RJZCxcbiAgRVJDNzIxVHJhbnNmZXJGcm9tVHlwZXMsXG59IGZyb20gJy4uL3dhbGxldFV0aWwnO1xuaW1wb3J0IHsgY29pbnMsIEV0aGVyZXVtTmV0d29yayBhcyBFdGhMaWtlTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5leHBvcnQgY2xhc3MgRVJDNzIxVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgQmFzZU5GVFRyYW5zZmVyQnVpbGRlciB7XG4gIHByaXZhdGUgX3Rva2VuSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfYnl0ZXM6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzZXJpYWxpemVkRGF0YT86IHN0cmluZykge1xuICAgIHN1cGVyKHNlcmlhbGl6ZWREYXRhKTtcbiAgICB0aGlzLmJ5dGVzKDApO1xuICAgIGlmIChzZXJpYWxpemVkRGF0YSkge1xuICAgICAgdGhpcy5kZWNvZGVUcmFuc2ZlckRhdGEoc2VyaWFsaXplZERhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGNvaW4oY29pbjogc3RyaW5nKTogRVJDNzIxVHJhbnNmZXJCdWlsZGVyIHtcbiAgICB0aGlzLl9jb2luID0gY29pbnMuZ2V0KGNvaW4pO1xuICAgIHRoaXMuX25hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gKHRoaXMuX2NvaW4ubmV0d29yayBhcyBFdGhMaWtlTmV0d29yaykubmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXg7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b2tlbkNvbnRyYWN0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBFUkM3MjFUcmFuc2ZlckJ1aWxkZXIge1xuICAgIGlmIChpc1ZhbGlkRXRoQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgPSBhZGRyZXNzO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gIH1cblxuICB0b2tlbklkKHRva2VuOiBzdHJpbmcpOiBFUkM3MjFUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRoaXMuX3Rva2VuSWQgPSB0b2tlbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGJ5dGVzKGJ5dGVzSW5OdW1iZXI6IG51bWJlcik6IEVSQzcyMVRyYW5zZmVyQnVpbGRlciB7XG4gICAgdGhpcy5fYnl0ZXMgPSBoZXhaZXJvUGFkKGhleGxpZnkoYnl0ZXNJbk51bWJlciksIDMyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldElzRmlyc3RTaWduZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYnVpbGQoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlcyA9IEVSQzcyMVNhZmVUcmFuc2ZlclR5cGVzO1xuICAgIGNvbnN0IHZhbHVlcyA9IFt0aGlzLl9mcm9tQWRkcmVzcywgdGhpcy5fdG9BZGRyZXNzLCB0aGlzLl90b2tlbklkLCB0aGlzLl9ieXRlc107XG4gICAgY29uc3QgY29udHJhY3RDYWxsID0gbmV3IENvbnRyYWN0Q2FsbChFUkM3MjFTYWZlVHJhbnNmZXJUeXBlTWV0aG9kSWQsIHR5cGVzLCB2YWx1ZXMpO1xuICAgIHJldHVybiBjb250cmFjdENhbGwuc2VyaWFsaXplKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdXNpbmcgdHJhbnNmZXJGcm9tKGFkZHJlc3MsYWRkcmVzcyx1aW50MjU2KSB3aXRob3V0IHRoZSBieXRlcyBkYXRhIHBhcmFtZXRlci5cbiAgICogUmVxdWlyZWQgZm9yIEhUUyBORlQgdHJhbnNmZXJzIG9uIEhlZGVyYSBFVk0sIHdoaWNoIG9ubHkgc3VwcG9ydHMgdHJhbnNmZXJGcm9tLlxuICAgKi9cbiAgYnVpbGRUcmFuc2ZlckZyb20oKTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlcyA9IEVSQzcyMVRyYW5zZmVyRnJvbVR5cGVzO1xuICAgIGNvbnN0IHZhbHVlcyA9IFt0aGlzLl9mcm9tQWRkcmVzcywgdGhpcy5fdG9BZGRyZXNzLCB0aGlzLl90b2tlbklkXTtcbiAgICBjb25zdCBjb250cmFjdENhbGwgPSBuZXcgQ29udHJhY3RDYWxsKEVSQzcyMVRyYW5zZmVyRnJvbU1ldGhvZElkLCB0eXBlcywgdmFsdWVzKTtcbiAgICByZXR1cm4gY29udHJhY3RDYWxsLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgc2lnbkFuZEJ1aWxkKGNoYWluSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5fY2hhaW5JZCA9IGNoYWluSWQ7XG4gICAgaWYgKHRoaXMuaGFzTWFuZGF0b3J5RmllbGRzKCkpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLmJ1aWxkKCk7XG5cbiAgICAgIHJldHVybiBzZW5kTXVsdGlTaWdEYXRhKFxuICAgICAgICB0aGlzLl90b2tlbkNvbnRyYWN0QWRkcmVzcywgLy8gdG9cbiAgICAgICAgJzAnLCAvLyBkdW1teSBhbW91bnQgdmFsdWVcbiAgICAgICAgdGhpcy5fZGF0YSxcbiAgICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUsXG4gICAgICAgIHRoaXMuX3NlcXVlbmNlSWQsXG4gICAgICAgIHRoaXMuZ2V0U2lnbmF0dXJlKClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgIGBNaXNzaW5nIHRyYW5zZmVyIG1hbmRhdG9yeSBmaWVsZHMuIFxuICAgICAgIERlc3RpbmF0aW9uICh0bykgYWRkcmVzcywgU291cmNlIChmcm9tKSBhZGRyZXNzLCBzZXF1ZW5jZUlELCB0aGUgdG9rZW4gY29udHJhY3QgYWRkcmVzcyBhbmQgdG9rZW5JRCBhcmUgbWFuZGF0b3J5YFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhc01hbmRhdG9yeUZpZWxkcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fdG9rZW5JZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLl90b0FkZHJlc3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fZnJvbUFkZHJlc3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fc2VxdWVuY2VJZCAhPT0gdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlVHJhbnNmZXJEYXRhKGRhdGE6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHRyYW5zZmVyRGF0YSA9IGRlY29kZUVSQzcyMVRyYW5zZmVyRGF0YShkYXRhKTtcbiAgICB0aGlzLl90b0FkZHJlc3MgPSB0cmFuc2ZlckRhdGEudG87XG4gICAgdGhpcy5fZnJvbUFkZHJlc3MgPSB0cmFuc2ZlckRhdGEuZnJvbTtcbiAgICB0aGlzLl9leHBpcmF0aW9uVGltZSA9IHRyYW5zZmVyRGF0YS5leHBpcmVUaW1lO1xuICAgIHRoaXMuX3NlcXVlbmNlSWQgPSB0cmFuc2ZlckRhdGEuc2VxdWVuY2VJZDtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSB0cmFuc2ZlckRhdGEuc2lnbmF0dXJlO1xuICAgIHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzID0gdHJhbnNmZXJEYXRhLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICAgIHRoaXMuX3Rva2VuSWQgPSB0cmFuc2ZlckRhdGEudG9rZW5JZDtcbiAgICBpZiAodHJhbnNmZXJEYXRhLmRhdGEpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0cmFuc2ZlckRhdGEuZGF0YTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { BaseNFTTransferBuilder } from './baseNFTTransferBuilder';
2
+ export declare class TransferBuilderERC7984 extends BaseNFTTransferBuilder {
3
+ private _encryptedHandle;
4
+ private _inputProof;
5
+ /** Plaintext token amount in base units, stored as metadata only (NOT included in calldata). */
6
+ private _amount;
7
+ constructor(serializedData?: string);
8
+ coin(coin: string): this;
9
+ tokenContractAddress(address: string): this;
10
+ /**
11
+ * Set the plaintext transfer amount in base units.
12
+ *
13
+ * This value is stored as metadata only — it is NOT included in the on-chain
14
+ * calldata, which carries only the encrypted form (encryptedHandle + inputProof).
15
+ * Storing it here lets verifyTransaction confirm the signer's intent against
16
+ * the original amount the client submitted.
17
+ */
18
+ amount(amount: string): this;
19
+ /**
20
+ * Set the encrypted handle (bytes32 hex from WP)
21
+ * Must be a 0x-prefixed 32-byte hex string (66 chars total)
22
+ */
23
+ encryptedHandle(handle: string): this;
24
+ /**
25
+ * Set the input proof (bytes hex from WP)
26
+ * Must be a 0x-prefixed non-empty hex bytes string
27
+ */
28
+ inputProof(proof: string): this;
29
+ getIsFirstSigner(): boolean;
30
+ build(): string;
31
+ signAndBuild(chainId: string): string;
32
+ private validateMandatoryFields;
33
+ private decodeTransferData;
34
+ }
35
+ //# sourceMappingURL=transferBuilderERC7984.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilderERC7984.d.ts","sourceRoot":"","sources":["../../../../src/lib/transferBuilders/transferBuilderERC7984.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,sBAAuB,SAAQ,sBAAsB;IAChE,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,gGAAgG;IAChG,OAAO,CAAC,OAAO,CAAS;gBAEZ,cAAc,CAAC,EAAE,MAAM;IAOnC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMxB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ3C;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQrC;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ/B,gBAAgB,IAAI,OAAO;IAI3B,KAAK,IAAI,MAAM;IAUf,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAkBrC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,kBAAkB;CAU3B"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransferBuilderERC7984 = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const statics_1 = require("@bitgo-beta/statics");
6
+ const contractCall_1 = require("../contractCall");
7
+ const utils_1 = require("../utils");
8
+ const baseNFTTransferBuilder_1 = require("./baseNFTTransferBuilder");
9
+ const walletUtil_1 = require("../walletUtil");
10
+ class TransferBuilderERC7984 extends baseNFTTransferBuilder_1.BaseNFTTransferBuilder {
11
+ constructor(serializedData) {
12
+ super(serializedData);
13
+ if (serializedData) {
14
+ this.decodeTransferData(serializedData);
15
+ }
16
+ }
17
+ coin(coin) {
18
+ this._coin = statics_1.coins.get(coin);
19
+ this._nativeCoinOperationHashPrefix = this._coin.network.nativeCoinOperationHashPrefix;
20
+ return this;
21
+ }
22
+ tokenContractAddress(address) {
23
+ if ((0, utils_1.isValidEthAddress)(address)) {
24
+ this._tokenContractAddress = address;
25
+ return this;
26
+ }
27
+ throw new sdk_core_1.InvalidParameterValueError('Invalid address');
28
+ }
29
+ /**
30
+ * Set the plaintext transfer amount in base units.
31
+ *
32
+ * This value is stored as metadata only — it is NOT included in the on-chain
33
+ * calldata, which carries only the encrypted form (encryptedHandle + inputProof).
34
+ * Storing it here lets verifyTransaction confirm the signer's intent against
35
+ * the original amount the client submitted.
36
+ */
37
+ amount(amount) {
38
+ if (!/^\d+$/.test(amount) || BigInt(amount) <= 0n) {
39
+ throw new sdk_core_1.InvalidParameterValueError('amount must be a positive integer string in base units');
40
+ }
41
+ this._amount = amount;
42
+ return this;
43
+ }
44
+ /**
45
+ * Set the encrypted handle (bytes32 hex from WP)
46
+ * Must be a 0x-prefixed 32-byte hex string (66 chars total)
47
+ */
48
+ encryptedHandle(handle) {
49
+ if (!/^0x[0-9a-fA-F]{64}$/.test(handle)) {
50
+ throw new sdk_core_1.InvalidParameterValueError('encryptedHandle must be a 0x-prefixed 32-byte hex string (66 characters)');
51
+ }
52
+ this._encryptedHandle = handle;
53
+ return this;
54
+ }
55
+ /**
56
+ * Set the input proof (bytes hex from WP)
57
+ * Must be a 0x-prefixed non-empty hex bytes string
58
+ */
59
+ inputProof(proof) {
60
+ if (!/^0x[0-9a-fA-F]{2,}$/.test(proof)) {
61
+ throw new sdk_core_1.InvalidParameterValueError('inputProof must be a 0x-prefixed non-empty hex bytes string');
62
+ }
63
+ this._inputProof = proof;
64
+ return this;
65
+ }
66
+ getIsFirstSigner() {
67
+ return false;
68
+ }
69
+ build() {
70
+ this.validateMandatoryFields();
71
+ const contractCall = new contractCall_1.ContractCall(walletUtil_1.confidentialTransferWithProofMethodId, walletUtil_1.confidentialTransferWithProofTypes, [
72
+ this._toAddress,
73
+ this._encryptedHandle,
74
+ this._inputProof,
75
+ ]);
76
+ return contractCall.serialize();
77
+ }
78
+ signAndBuild(chainId) {
79
+ if (!Number.isInteger(this._sequenceId)) {
80
+ throw new sdk_core_1.BuildTransactionError('Missing mandatory field: contract sequence id');
81
+ }
82
+ this._chainId = chainId;
83
+ this.validateMandatoryFields();
84
+ this._data = this.build();
85
+ return (0, utils_1.sendMultiSigData)(this._tokenContractAddress, '0', this._data, this._expirationTime, this._sequenceId, this.getSignature());
86
+ }
87
+ validateMandatoryFields() {
88
+ if (!this._toAddress) {
89
+ throw new sdk_core_1.BuildTransactionError('Missing mandatory field: destination (to) address');
90
+ }
91
+ if (!this._tokenContractAddress) {
92
+ throw new sdk_core_1.BuildTransactionError('Missing mandatory field: token contract address');
93
+ }
94
+ if (!this._encryptedHandle) {
95
+ throw new sdk_core_1.BuildTransactionError('Missing mandatory field: encryptedHandle');
96
+ }
97
+ if (!this._inputProof || this._inputProof === '0x' || !/^0x[0-9a-fA-F]{2,}$/.test(this._inputProof)) {
98
+ throw new sdk_core_1.BuildTransactionError('Missing mandatory field: inputProof');
99
+ }
100
+ }
101
+ decodeTransferData(data) {
102
+ const transferData = (0, utils_1.decodeConfidentialTransferData)(data);
103
+ this._toAddress = transferData.toAddress;
104
+ this._tokenContractAddress = transferData.tokenContractAddress;
105
+ this._encryptedHandle = transferData.encryptedHandle;
106
+ this._inputProof = transferData.inputProof;
107
+ this._expirationTime = parseInt(transferData.expireTime, 10);
108
+ this._sequenceId = parseInt(transferData.sequenceId, 10);
109
+ this._signature = transferData.signature;
110
+ }
111
+ }
112
+ exports.TransferBuilderERC7984 = TransferBuilderERC7984;
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyRVJDNzk4NC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNmZXJCdWlsZGVycy90cmFuc2ZlckJ1aWxkZXJFUkM3OTg0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUF5RjtBQUN6RixpREFBK0U7QUFFL0Usa0RBQStDO0FBQy9DLG9DQUErRjtBQUMvRixxRUFBa0U7QUFDbEUsOENBQTBHO0FBRTFHLE1BQWEsc0JBQXVCLFNBQVEsK0NBQXNCO0lBTWhFLFlBQVksY0FBdUI7UUFDakMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQVk7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLDhCQUE4QixHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBMEIsQ0FBQyw2QkFBNkIsQ0FBQztRQUMzRyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFlO1FBQ2xDLElBQUksSUFBQSx5QkFBaUIsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxJQUFJLHFDQUEwQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsTUFBYztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUks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LHNDQUE4QixFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztRQUN6QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsWUFBWSxDQUFDLG9CQUFvQixDQUFDO1FBQy9ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQTVIRCx3REE0SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgY29pbnMsIEV0aGVyZXVtTmV0d29yayBhcyBFdGhMaWtlTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5pbXBvcnQgeyBDb250cmFjdENhbGwgfSBmcm9tICcuLi9jb250cmFjdENhbGwnO1xuaW1wb3J0IHsgZGVjb2RlQ29uZmlkZW50aWFsVHJhbnNmZXJEYXRhLCBpc1ZhbGlkRXRoQWRkcmVzcywgc2VuZE11bHRpU2lnRGF0YSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEJhc2VORlRUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2Jhc2VORlRUcmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgY29uZmlkZW50aWFsVHJhbnNmZXJXaXRoUHJvb2ZNZXRob2RJZCwgY29uZmlkZW50aWFsVHJhbnNmZXJXaXRoUHJvb2ZUeXBlcyB9IGZyb20gJy4uL3dhbGxldFV0aWwnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyRVJDNzk4NCBleHRlbmRzIEJhc2VORlRUcmFuc2ZlckJ1aWxkZXIge1xuICBwcml2YXRlIF9lbmNyeXB0ZWRIYW5kbGU6IHN0cmluZztcbiAgcHJpdmF0ZSBfaW5wdXRQcm9vZjogc3RyaW5nO1xuICAvKiogUGxhaW50ZXh0IHRva2VuIGFtb3VudCBpbiBiYXNlIHVuaXRzLCBzdG9yZWQgYXMgbWV0YWRhdGEgb25seSAoTk9UIGluY2x1ZGVkIGluIGNhbGxkYXRhKS4gKi9cbiAgcHJpdmF0ZSBfYW1vdW50OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2VyaWFsaXplZERhdGE/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihzZXJpYWxpemVkRGF0YSk7XG4gICAgaWYgKHNlcmlhbGl6ZWREYXRhKSB7XG4gICAgICB0aGlzLmRlY29kZVRyYW5zZmVyRGF0YShzZXJpYWxpemVkRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgY29pbihjb2luOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl9jb2luID0gY29pbnMuZ2V0KGNvaW4pO1xuICAgIHRoaXMuX25hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID0gKHRoaXMuX2NvaW4ubmV0d29yayBhcyBFdGhMaWtlTmV0d29yaykubmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXg7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b2tlbkNvbnRyYWN0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoaXNWYWxpZEV0aEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzID0gYWRkcmVzcztcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcGxhaW50ZXh0IHRyYW5zZmVyIGFtb3VudCBpbiBiYXNlIHVuaXRzLlxuICAgKlxuICAgKiBUaGlzIHZhbHVlIGlzIHN0b3JlZCBhcyBtZXRhZGF0YSBvbmx5IOKAlCBpdCBpcyBOT1QgaW5jbHVkZWQgaW4gdGhlIG9uLWNoYWluXG4gICAqIGNhbGxkYXRhLCB3aGljaCBjYXJyaWVzIG9ubHkgdGhlIGVuY3J5cHRlZCBmb3JtIChlbmNyeXB0ZWRIYW5kbGUgKyBpbnB1dFByb29mKS5cbiAgICogU3RvcmluZyBpdCBoZXJlIGxldHMgdmVyaWZ5VHJhbnNhY3Rpb24gY29uZmlybSB0aGUgc2lnbmVyJ3MgaW50ZW50IGFnYWluc3RcbiAgICogdGhlIG9yaWdpbmFsIGFtb3VudCB0aGUgY2xpZW50IHN1Ym1pdHRlZC5cbiAgICovXG4gIGFtb3VudChhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghL15cXGQrJC8udGVzdChhbW91bnQpIHx8IEJpZ0ludChhbW91bnQpIDw9IDBuKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ2Ftb3VudCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciBzdHJpbmcgaW4gYmFzZSB1bml0cycpO1xuICAgIH1cbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBlbmNyeXB0ZWQgaGFuZGxlIChieXRlczMyIGhleCBmcm9tIFdQKVxuICAgKiBNdXN0IGJlIGEgMHgtcHJlZml4ZWQgMzItYnl0ZSBoZXggc3RyaW5nICg2NiBjaGFycyB0b3RhbClcbiAgICovXG4gIGVuY3J5cHRlZEhhbmRsZShoYW5kbGU6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghL14weFswLTlhLWZBLUZdezY0fSQvLnRlc3QoaGFuZGxlKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdlbmNyeXB0ZWRIYW5kbGUgbXVzdCBiZSBhIDB4LXByZWZpeGVkIDMyLWJ5dGUgaGV4IHN0cmluZyAoNjYgY2hhcmFjdGVycyknKTtcbiAgICB9XG4gICAgdGhpcy5fZW5jcnlwdGVkSGFuZGxlID0gaGFuZGxlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaW5wdXQgcHJvb2YgKGJ5dGVzIGhleCBmcm9tIFdQKVxuICAgKiBNdXN0IGJlIGEgMHgtcHJlZml4ZWQgbm9uLWVtcHR5IGhleCBieXRlcyBzdHJpbmdcbiAgICovXG4gIGlucHV0UHJvb2YocHJvb2Y6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghL14weFswLTlhLWZBLUZdezIsfSQvLnRlc3QocHJvb2YpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ2lucHV0UHJvb2YgbXVzdCBiZSBhIDB4LXByZWZpeGVkIG5vbi1lbXB0eSBoZXggYnl0ZXMgc3RyaW5nJyk7XG4gICAgfVxuICAgIHRoaXMuX2lucHV0UHJvb2YgPSBwcm9vZjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldElzRmlyc3RTaWduZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYnVpbGQoKTogc3RyaW5nIHtcbiAgICB0aGlzLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gICAgY29uc3QgY29udHJhY3RDYWxsID0gbmV3IENvbnRyYWN0Q2FsbChjb25maWRlbnRpYWxUcmFuc2ZlcldpdGhQcm9vZk1ldGhvZElkLCBjb25maWRlbnRpYWxUcmFuc2ZlcldpdGhQcm9vZlR5cGVzLCBbXG4gICAgICB0aGlzLl90b0FkZHJlc3MsXG4gICAgICB0aGlzLl9lbmNyeXB0ZWRIYW5kbGUsXG4gICAgICB0aGlzLl9pbnB1dFByb29mLFxuICAgIF0pO1xuICAgIHJldHVybiBjb250cmFjdENhbGwuc2VyaWFsaXplKCk7XG4gIH1cblxuICBzaWduQW5kQnVpbGQoY2hhaW5JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodGhpcy5fc2VxdWVuY2VJZCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgbWFuZGF0b3J5IGZpZWxkOiBjb250cmFjdCBzZXF1ZW5jZSBpZCcpO1xuICAgIH1cbiAgICB0aGlzLl9jaGFpbklkID0gY2hhaW5JZDtcbiAgICB0aGlzLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gICAgdGhpcy5fZGF0YSA9IHRoaXMuYnVpbGQoKTtcblxuICAgIHJldHVybiBzZW5kTXVsdGlTaWdEYXRhKFxuICAgICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MsXG4gICAgICAnMCcsXG4gICAgICB0aGlzLl9kYXRhLFxuICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUsXG4gICAgICB0aGlzLl9zZXF1ZW5jZUlkLFxuICAgICAgdGhpcy5nZXRTaWduYXR1cmUoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdG9BZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIG1hbmRhdG9yeSBmaWVsZDogZGVzdGluYXRpb24gKHRvKSBhZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgbWFuZGF0b3J5IGZpZWxkOiB0b2tlbiBjb250cmFjdCBhZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fZW5jcnlwdGVkSGFuZGxlKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIG1hbmRhdG9yeSBmaWVsZDogZW5jcnlwdGVkSGFuZGxlJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5faW5wdXRQcm9vZiB8fCB0aGlzLl9pbnB1dFByb29mID09PSAnMHgnIHx8ICEvXjB4WzAtOWEtZkEtRl17Mix9JC8udGVzdCh0aGlzLl9pbnB1dFByb29mKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBtYW5kYXRvcnkgZmllbGQ6IGlucHV0UHJvb2YnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlY29kZVRyYW5zZmVyRGF0YShkYXRhOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0cmFuc2ZlckRhdGEgPSBkZWNvZGVDb25maWRlbnRpYWxUcmFuc2ZlckRhdGEoZGF0YSk7XG4gICAgdGhpcy5fdG9BZGRyZXNzID0gdHJhbnNmZXJEYXRhLnRvQWRkcmVzcztcbiAgICB0aGlzLl90b2tlbkNvbnRyYWN0QWRkcmVzcyA9IHRyYW5zZmVyRGF0YS50b2tlbkNvbnRyYWN0QWRkcmVzcztcbiAgICB0aGlzLl9lbmNyeXB0ZWRIYW5kbGUgPSB0cmFuc2ZlckRhdGEuZW5jcnlwdGVkSGFuZGxlO1xuICAgIHRoaXMuX2lucHV0UHJvb2YgPSB0cmFuc2ZlckRhdGEuaW5wdXRQcm9vZjtcbiAgICB0aGlzLl9leHBpcmF0aW9uVGltZSA9IHBhcnNlSW50KHRyYW5zZmVyRGF0YS5leHBpcmVUaW1lLCAxMCk7XG4gICAgdGhpcy5fc2VxdWVuY2VJZCA9IHBhcnNlSW50KHRyYW5zZmVyRGF0YS5zZXF1ZW5jZUlkLCAxMCk7XG4gICAgdGhpcy5fc2lnbmF0dXJlID0gdHJhbnNmZXJEYXRhLnNpZ25hdHVyZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { TypedTransaction } from '@ethereumjs/tx';
2
+ import EthereumCommon from '@ethereumjs/common';
3
+ import { EthLikeTransactionData, TxData } from './iface';
4
+ import { KeyPair } from './keyPair';
5
+ /**
6
+ * An Ethereum transaction with helpers for serialization and deserialization.
7
+ */
8
+ export declare class EthTransactionData implements EthLikeTransactionData {
9
+ private tx;
10
+ protected args?: {
11
+ deployedAddress?: string;
12
+ chainId?: string;
13
+ };
14
+ constructor(tx: TypedTransaction, args?: {
15
+ deployedAddress?: string;
16
+ chainId?: string;
17
+ });
18
+ /**
19
+ * Build an thereum transaction from its JSON representation
20
+ *
21
+ * @param {TxData} tx The JSON representation of the transaction
22
+ * @param {EthereumCommon} common Class to access chain and hardfork parameters
23
+ * @returns {EthTransactionData} a new ethereum transaction object
24
+ */
25
+ static fromJson(tx: TxData, common: EthereumCommon): EthTransactionData;
26
+ /**
27
+ * Build an ethereum transaction from its string serialization
28
+ *
29
+ * @param tx The string serialization of the ethereum transaction
30
+ * @param common
31
+ */
32
+ static fromSerialized(tx: string, common: EthereumCommon): EthTransactionData;
33
+ sign(keyPair: KeyPair): void;
34
+ getSignablePayload(): Buffer;
35
+ /** @inheritdoc */
36
+ toJson(): TxData;
37
+ /** @inheritdoc */
38
+ toSerialized(): string;
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAA6B,sBAAsB,EAAoC,MAAM,EAAE,MAAM,SAAS,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,qBAAa,kBAAmB,YAAW,sBAAsB;IAC/D,OAAO,CAAC,EAAE,CAAmB;IAC7B,SAAS,CAAC,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;gBAEpD,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAKvF;;;;;;OAMG;WACW,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB;IAuC9E;;;;;OAKG;WACW,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB;IAMpF,IAAI,CAAC,OAAO,EAAE,OAAO;IAKrB,kBAAkB,IAAI,MAAM;IAI5B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IA2DhB,kBAAkB;IAClB,YAAY,IAAI,MAAM;CAGvB"}