Guest User

Untitled

a guest
Sep 23rd, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 151.63 KB | None | 0 0
  1. // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
  2. // tslint:disable:no-unused-variable
  3. import { BaseContract } from '@0xproject/base-contract';
  4. import { ContractArtifact } from '@0xproject/sol-compiler';
  5. import { BlockParam, BlockParamLiteral, CallData, ContractAbi, DataItem, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
  6. import { BigNumber, classUtils, logUtils, promisify } from '@0xproject/utils';
  7. import { Web3Wrapper } from '@0xproject/web3-wrapper';
  8. import * as ethers from 'ethers';
  9. import * as _ from 'lodash';
  10. // tslint:enable:no-unused-variable
  11.  
  12. export type ExchangeEventArgs =
  13. | ExchangeSignatureValidatorApprovalEventArgs
  14. | ExchangeFillEventArgs
  15. | ExchangeCancelEventArgs
  16. | ExchangeCancelUpToEventArgs
  17. | ExchangeAssetProxyRegisteredEventArgs;
  18.  
  19. export enum ExchangeEvents {
  20. SignatureValidatorApproval = 'SignatureValidatorApproval',
  21. Fill = 'Fill',
  22. Cancel = 'Cancel',
  23. CancelUpTo = 'CancelUpTo',
  24. AssetProxyRegistered = 'AssetProxyRegistered',
  25. }
  26.  
  27. export interface ExchangeSignatureValidatorApprovalEventArgs extends DecodedLogArgs {
  28. signerAddress: string;
  29. validatorAddress: string;
  30. approved: boolean;
  31. }
  32.  
  33. export interface ExchangeFillEventArgs extends DecodedLogArgs {
  34. makerAddress: string;
  35. feeRecipientAddress: string;
  36. takerAddress: string;
  37. senderAddress: string;
  38. makerAssetFilledAmount: BigNumber;
  39. takerAssetFilledAmount: BigNumber;
  40. makerFeePaid: BigNumber;
  41. takerFeePaid: BigNumber;
  42. orderHash: string;
  43. makerAssetData: string;
  44. takerAssetData: string;
  45. }
  46.  
  47. export interface ExchangeCancelEventArgs extends DecodedLogArgs {
  48. makerAddress: string;
  49. feeRecipientAddress: string;
  50. senderAddress: string;
  51. orderHash: string;
  52. makerAssetData: string;
  53. takerAssetData: string;
  54. }
  55.  
  56. export interface ExchangeCancelUpToEventArgs extends DecodedLogArgs {
  57. makerAddress: string;
  58. senderAddress: string;
  59. orderEpoch: BigNumber;
  60. }
  61.  
  62. export interface ExchangeAssetProxyRegisteredEventArgs extends DecodedLogArgs {
  63. id: string;
  64. assetProxy: string;
  65. }
  66.  
  67.  
  68. /* istanbul ignore next */
  69. // tslint:disable:no-parameter-reassignment
  70. // tslint:disable-next-line:class-name
  71. export class ExchangeContract extends BaseContract {
  72. public EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = {
  73. async callAsync(
  74. callData: Partial<CallData> = {},
  75. defaultBlock?: BlockParam,
  76. ): Promise<string
  77. > {
  78. const self = this as any as ExchangeContract;
  79. const functionSignature = 'EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH()';
  80. const inputAbi = self._lookupAbi(functionSignature).inputs;
  81. [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
  82. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH(
  83. ) as ethers.CallDescription;
  84. const encodedData = ethersFunction.data;
  85. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  86. {
  87. to: self.address,
  88. ...callData,
  89. data: encodedData,
  90. },
  91. self._web3Wrapper.getContractDefaults(),
  92. );
  93. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  94. let resultArray = ethersFunction.parse(rawCallResult);
  95. const outputAbi = (_.find(self.abi, {name: 'EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH'}) as MethodAbi).outputs;
  96. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  97. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  98. return resultArray[0];
  99. },
  100. };
  101. public filled = {
  102. async callAsync(
  103. index_0: string,
  104. callData: Partial<CallData> = {},
  105. defaultBlock?: BlockParam,
  106. ): Promise<BigNumber
  107. > {
  108. const self = this as any as ExchangeContract;
  109. const functionSignature = 'filled(bytes32)';
  110. const inputAbi = self._lookupAbi(functionSignature).inputs;
  111. [index_0
  112. ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
  113. ], BaseContract._bigNumberToString.bind(self));
  114. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.filled(
  115. index_0
  116. ) as ethers.CallDescription;
  117. const encodedData = ethersFunction.data;
  118. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  119. {
  120. to: self.address,
  121. ...callData,
  122. data: encodedData,
  123. },
  124. self._web3Wrapper.getContractDefaults(),
  125. );
  126. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  127. let resultArray = ethersFunction.parse(rawCallResult);
  128. const outputAbi = (_.find(self.abi, {name: 'filled'}) as MethodAbi).outputs;
  129. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  130. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  131. return resultArray[0];
  132. },
  133. };
  134. public batchFillOrders = {
  135. async sendTransactionAsync(
  136. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  137. takerAssetFillAmounts: BigNumber[],
  138. signatures: string[],
  139. txData: Partial<TxData> = {},
  140. ): Promise<string> {
  141. const self = this as any as ExchangeContract;
  142. const inputAbi = self._lookupAbi('batchFillOrders(tuple[],uint256[],bytes[])').inputs;
  143. [orders,
  144. takerAssetFillAmounts,
  145. signatures
  146. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  147. takerAssetFillAmounts,
  148. signatures
  149. ], BaseContract._bigNumberToString.bind(self));
  150. const encodedData = self._lookupEthersInterface('batchFillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrders(
  151. orders,
  152. takerAssetFillAmounts,
  153. signatures
  154. ).data;
  155. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  156. {
  157. to: self.address,
  158. ...txData,
  159. data: encodedData,
  160. },
  161. self._web3Wrapper.getContractDefaults(),
  162. self.batchFillOrders.estimateGasAsync.bind(
  163. self,
  164. orders,
  165. takerAssetFillAmounts,
  166. signatures
  167. ),
  168. );
  169. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  170. return txHash;
  171. },
  172. async estimateGasAsync(
  173. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  174. takerAssetFillAmounts: BigNumber[],
  175. signatures: string[],
  176. txData: Partial<TxData> = {},
  177. ): Promise<number> {
  178. const self = this as any as ExchangeContract;
  179. const inputAbi = self._lookupAbi('batchFillOrders(tuple[],uint256[],bytes[])').inputs;
  180. [orders,
  181. takerAssetFillAmounts,
  182. signatures
  183. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  184. takerAssetFillAmounts,
  185. signatures
  186. ], BaseContract._bigNumberToString);
  187. const encodedData = self._lookupEthersInterface('batchFillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrders(
  188. orders,
  189. takerAssetFillAmounts,
  190. signatures
  191. ).data;
  192. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  193. {
  194. to: self.address,
  195. ...txData,
  196. data: encodedData,
  197. },
  198. self._web3Wrapper.getContractDefaults(),
  199. );
  200. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  201. return gas;
  202. },
  203. getABIEncodedTransactionData(
  204. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  205. takerAssetFillAmounts: BigNumber[],
  206. signatures: string[],
  207. ): string {
  208. const self = this as any as ExchangeContract;
  209. const inputAbi = self._lookupAbi('batchFillOrders(tuple[],uint256[],bytes[])').inputs;
  210. [orders,
  211. takerAssetFillAmounts,
  212. signatures
  213. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  214. takerAssetFillAmounts,
  215. signatures
  216. ], BaseContract._bigNumberToString);
  217. const abiEncodedTransactionData = self._lookupEthersInterface('batchFillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrders(
  218. orders,
  219. takerAssetFillAmounts,
  220. signatures
  221. ).data;
  222. return abiEncodedTransactionData;
  223. },
  224. async callAsync(
  225. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  226. takerAssetFillAmounts: BigNumber[],
  227. signatures: string[],
  228. callData: Partial<CallData> = {},
  229. defaultBlock?: BlockParam,
  230. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  231. > {
  232. const self = this as any as ExchangeContract;
  233. const functionSignature = 'batchFillOrders(tuple[],uint256[],bytes[])';
  234. const inputAbi = self._lookupAbi(functionSignature).inputs;
  235. [orders,
  236. takerAssetFillAmounts,
  237. signatures
  238. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  239. takerAssetFillAmounts,
  240. signatures
  241. ], BaseContract._bigNumberToString.bind(self));
  242. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.batchFillOrders(
  243. orders,
  244. takerAssetFillAmounts,
  245. signatures
  246. ) as ethers.CallDescription;
  247. const encodedData = ethersFunction.data;
  248. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  249. {
  250. to: self.address,
  251. ...callData,
  252. data: encodedData,
  253. },
  254. self._web3Wrapper.getContractDefaults(),
  255. );
  256. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  257. let resultArray = ethersFunction.parse(rawCallResult);
  258. const outputAbi = (_.find(self.abi, {name: 'batchFillOrders'}) as MethodAbi).outputs;
  259. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  260. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  261. return resultArray[0];
  262. },
  263. };
  264. public cancelled = {
  265. async callAsync(
  266. index_0: string,
  267. callData: Partial<CallData> = {},
  268. defaultBlock?: BlockParam,
  269. ): Promise<boolean
  270. > {
  271. const self = this as any as ExchangeContract;
  272. const functionSignature = 'cancelled(bytes32)';
  273. const inputAbi = self._lookupAbi(functionSignature).inputs;
  274. [index_0
  275. ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
  276. ], BaseContract._bigNumberToString.bind(self));
  277. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.cancelled(
  278. index_0
  279. ) as ethers.CallDescription;
  280. const encodedData = ethersFunction.data;
  281. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  282. {
  283. to: self.address,
  284. ...callData,
  285. data: encodedData,
  286. },
  287. self._web3Wrapper.getContractDefaults(),
  288. );
  289. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  290. let resultArray = ethersFunction.parse(rawCallResult);
  291. const outputAbi = (_.find(self.abi, {name: 'cancelled'}) as MethodAbi).outputs;
  292. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  293. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  294. return resultArray[0];
  295. },
  296. };
  297. public preSign = {
  298. async sendTransactionAsync(
  299. hash: string,
  300. signerAddress: string,
  301. signature: string,
  302. txData: Partial<TxData> = {},
  303. ): Promise<string> {
  304. const self = this as any as ExchangeContract;
  305. const inputAbi = self._lookupAbi('preSign(bytes32,address,bytes)').inputs;
  306. [hash,
  307. signerAddress,
  308. signature
  309. ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
  310. signerAddress,
  311. signature
  312. ], BaseContract._bigNumberToString.bind(self));
  313. const encodedData = self._lookupEthersInterface('preSign(bytes32,address,bytes)').functions.preSign(
  314. hash,
  315. signerAddress,
  316. signature
  317. ).data;
  318. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  319. {
  320. to: self.address,
  321. ...txData,
  322. data: encodedData,
  323. },
  324. self._web3Wrapper.getContractDefaults(),
  325. self.preSign.estimateGasAsync.bind(
  326. self,
  327. hash,
  328. signerAddress,
  329. signature
  330. ),
  331. );
  332. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  333. return txHash;
  334. },
  335. async estimateGasAsync(
  336. hash: string,
  337. signerAddress: string,
  338. signature: string,
  339. txData: Partial<TxData> = {},
  340. ): Promise<number> {
  341. const self = this as any as ExchangeContract;
  342. const inputAbi = self._lookupAbi('preSign(bytes32,address,bytes)').inputs;
  343. [hash,
  344. signerAddress,
  345. signature
  346. ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
  347. signerAddress,
  348. signature
  349. ], BaseContract._bigNumberToString);
  350. const encodedData = self._lookupEthersInterface('preSign(bytes32,address,bytes)').functions.preSign(
  351. hash,
  352. signerAddress,
  353. signature
  354. ).data;
  355. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  356. {
  357. to: self.address,
  358. ...txData,
  359. data: encodedData,
  360. },
  361. self._web3Wrapper.getContractDefaults(),
  362. );
  363. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  364. return gas;
  365. },
  366. getABIEncodedTransactionData(
  367. hash: string,
  368. signerAddress: string,
  369. signature: string,
  370. ): string {
  371. const self = this as any as ExchangeContract;
  372. const inputAbi = self._lookupAbi('preSign(bytes32,address,bytes)').inputs;
  373. [hash,
  374. signerAddress,
  375. signature
  376. ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
  377. signerAddress,
  378. signature
  379. ], BaseContract._bigNumberToString);
  380. const abiEncodedTransactionData = self._lookupEthersInterface('preSign(bytes32,address,bytes)').functions.preSign(
  381. hash,
  382. signerAddress,
  383. signature
  384. ).data;
  385. return abiEncodedTransactionData;
  386. },
  387. async callAsync(
  388. hash: string,
  389. signerAddress: string,
  390. signature: string,
  391. callData: Partial<CallData> = {},
  392. defaultBlock?: BlockParam,
  393. ): Promise<void
  394. > {
  395. const self = this as any as ExchangeContract;
  396. const functionSignature = 'preSign(bytes32,address,bytes)';
  397. const inputAbi = self._lookupAbi(functionSignature).inputs;
  398. [hash,
  399. signerAddress,
  400. signature
  401. ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
  402. signerAddress,
  403. signature
  404. ], BaseContract._bigNumberToString.bind(self));
  405. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.preSign(
  406. hash,
  407. signerAddress,
  408. signature
  409. ) as ethers.CallDescription;
  410. const encodedData = ethersFunction.data;
  411. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  412. {
  413. to: self.address,
  414. ...callData,
  415. data: encodedData,
  416. },
  417. self._web3Wrapper.getContractDefaults(),
  418. );
  419. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  420. let resultArray = ethersFunction.parse(rawCallResult);
  421. const outputAbi = (_.find(self.abi, {name: 'preSign'}) as MethodAbi).outputs;
  422. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  423. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  424. return resultArray;
  425. },
  426. };
  427. public matchOrders = {
  428. async sendTransactionAsync(
  429. leftOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  430. rightOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  431. leftSignature: string,
  432. rightSignature: string,
  433. txData: Partial<TxData> = {},
  434. ): Promise<string> {
  435. const self = this as any as ExchangeContract;
  436. const inputAbi = self._lookupAbi('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').inputs;
  437. [leftOrder,
  438. rightOrder,
  439. leftSignature,
  440. rightSignature
  441. ] = BaseContract._formatABIDataItemList(inputAbi, [leftOrder,
  442. rightOrder,
  443. leftSignature,
  444. rightSignature
  445. ], BaseContract._bigNumberToString.bind(self));
  446. const encodedData = self._lookupEthersInterface('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').functions.matchOrders(
  447. leftOrder,
  448. rightOrder,
  449. leftSignature,
  450. rightSignature
  451. ).data;
  452. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  453. {
  454. to: self.address,
  455. ...txData,
  456. data: encodedData,
  457. },
  458. self._web3Wrapper.getContractDefaults(),
  459. self.matchOrders.estimateGasAsync.bind(
  460. self,
  461. leftOrder,
  462. rightOrder,
  463. leftSignature,
  464. rightSignature
  465. ),
  466. );
  467. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  468. return txHash;
  469. },
  470. async estimateGasAsync(
  471. leftOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  472. rightOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  473. leftSignature: string,
  474. rightSignature: string,
  475. txData: Partial<TxData> = {},
  476. ): Promise<number> {
  477. const self = this as any as ExchangeContract;
  478. const inputAbi = self._lookupAbi('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').inputs;
  479. [leftOrder,
  480. rightOrder,
  481. leftSignature,
  482. rightSignature
  483. ] = BaseContract._formatABIDataItemList(inputAbi, [leftOrder,
  484. rightOrder,
  485. leftSignature,
  486. rightSignature
  487. ], BaseContract._bigNumberToString);
  488. const encodedData = self._lookupEthersInterface('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').functions.matchOrders(
  489. leftOrder,
  490. rightOrder,
  491. leftSignature,
  492. rightSignature
  493. ).data;
  494. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  495. {
  496. to: self.address,
  497. ...txData,
  498. data: encodedData,
  499. },
  500. self._web3Wrapper.getContractDefaults(),
  501. );
  502. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  503. return gas;
  504. },
  505. getABIEncodedTransactionData(
  506. leftOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  507. rightOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  508. leftSignature: string,
  509. rightSignature: string,
  510. ): string {
  511. const self = this as any as ExchangeContract;
  512. const inputAbi = self._lookupAbi('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').inputs;
  513. [leftOrder,
  514. rightOrder,
  515. leftSignature,
  516. rightSignature
  517. ] = BaseContract._formatABIDataItemList(inputAbi, [leftOrder,
  518. rightOrder,
  519. leftSignature,
  520. rightSignature
  521. ], BaseContract._bigNumberToString);
  522. const abiEncodedTransactionData = self._lookupEthersInterface('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').functions.matchOrders(
  523. leftOrder,
  524. rightOrder,
  525. leftSignature,
  526. rightSignature
  527. ).data;
  528. return abiEncodedTransactionData;
  529. },
  530. async callAsync(
  531. leftOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  532. rightOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  533. leftSignature: string,
  534. rightSignature: string,
  535. callData: Partial<CallData> = {},
  536. defaultBlock?: BlockParam,
  537. ): Promise<{left: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};right: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};leftMakerAssetSpreadAmount: BigNumber}
  538. > {
  539. const self = this as any as ExchangeContract;
  540. const functionSignature = 'matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)';
  541. const inputAbi = self._lookupAbi(functionSignature).inputs;
  542. [leftOrder,
  543. rightOrder,
  544. leftSignature,
  545. rightSignature
  546. ] = BaseContract._formatABIDataItemList(inputAbi, [leftOrder,
  547. rightOrder,
  548. leftSignature,
  549. rightSignature
  550. ], BaseContract._bigNumberToString.bind(self));
  551. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.matchOrders(
  552. leftOrder,
  553. rightOrder,
  554. leftSignature,
  555. rightSignature
  556. ) as ethers.CallDescription;
  557. const encodedData = ethersFunction.data;
  558. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  559. {
  560. to: self.address,
  561. ...callData,
  562. data: encodedData,
  563. },
  564. self._web3Wrapper.getContractDefaults(),
  565. );
  566. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  567. let resultArray = ethersFunction.parse(rawCallResult);
  568. const outputAbi = (_.find(self.abi, {name: 'matchOrders'}) as MethodAbi).outputs;
  569. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  570. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  571. return resultArray[0];
  572. },
  573. };
  574. public fillOrderNoThrow = {
  575. async sendTransactionAsync(
  576. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  577. takerAssetFillAmount: BigNumber,
  578. signature: string,
  579. txData: Partial<TxData> = {},
  580. ): Promise<string> {
  581. const self = this as any as ExchangeContract;
  582. const inputAbi = self._lookupAbi('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
  583. [order,
  584. takerAssetFillAmount,
  585. signature
  586. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  587. takerAssetFillAmount,
  588. signature
  589. ], BaseContract._bigNumberToString.bind(self));
  590. const encodedData = self._lookupEthersInterface('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrderNoThrow(
  591. order,
  592. takerAssetFillAmount,
  593. signature
  594. ).data;
  595. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  596. {
  597. to: self.address,
  598. ...txData,
  599. data: encodedData,
  600. },
  601. self._web3Wrapper.getContractDefaults(),
  602. self.fillOrderNoThrow.estimateGasAsync.bind(
  603. self,
  604. order,
  605. takerAssetFillAmount,
  606. signature
  607. ),
  608. );
  609. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  610. return txHash;
  611. },
  612. async estimateGasAsync(
  613. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  614. takerAssetFillAmount: BigNumber,
  615. signature: string,
  616. txData: Partial<TxData> = {},
  617. ): Promise<number> {
  618. const self = this as any as ExchangeContract;
  619. const inputAbi = self._lookupAbi('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
  620. [order,
  621. takerAssetFillAmount,
  622. signature
  623. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  624. takerAssetFillAmount,
  625. signature
  626. ], BaseContract._bigNumberToString);
  627. const encodedData = self._lookupEthersInterface('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrderNoThrow(
  628. order,
  629. takerAssetFillAmount,
  630. signature
  631. ).data;
  632. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  633. {
  634. to: self.address,
  635. ...txData,
  636. data: encodedData,
  637. },
  638. self._web3Wrapper.getContractDefaults(),
  639. );
  640. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  641. return gas;
  642. },
  643. getABIEncodedTransactionData(
  644. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  645. takerAssetFillAmount: BigNumber,
  646. signature: string,
  647. ): string {
  648. const self = this as any as ExchangeContract;
  649. const inputAbi = self._lookupAbi('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
  650. [order,
  651. takerAssetFillAmount,
  652. signature
  653. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  654. takerAssetFillAmount,
  655. signature
  656. ], BaseContract._bigNumberToString);
  657. const abiEncodedTransactionData = self._lookupEthersInterface('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrderNoThrow(
  658. order,
  659. takerAssetFillAmount,
  660. signature
  661. ).data;
  662. return abiEncodedTransactionData;
  663. },
  664. async callAsync(
  665. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  666. takerAssetFillAmount: BigNumber,
  667. signature: string,
  668. callData: Partial<CallData> = {},
  669. defaultBlock?: BlockParam,
  670. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  671. > {
  672. const self = this as any as ExchangeContract;
  673. const functionSignature = 'fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)';
  674. const inputAbi = self._lookupAbi(functionSignature).inputs;
  675. [order,
  676. takerAssetFillAmount,
  677. signature
  678. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  679. takerAssetFillAmount,
  680. signature
  681. ], BaseContract._bigNumberToString.bind(self));
  682. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.fillOrderNoThrow(
  683. order,
  684. takerAssetFillAmount,
  685. signature
  686. ) as ethers.CallDescription;
  687. const encodedData = ethersFunction.data;
  688. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  689. {
  690. to: self.address,
  691. ...callData,
  692. data: encodedData,
  693. },
  694. self._web3Wrapper.getContractDefaults(),
  695. );
  696. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  697. let resultArray = ethersFunction.parse(rawCallResult);
  698. const outputAbi = (_.find(self.abi, {name: 'fillOrderNoThrow'}) as MethodAbi).outputs;
  699. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  700. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  701. return resultArray[0];
  702. },
  703. };
  704. public assetProxies = {
  705. async callAsync(
  706. index_0: string,
  707. callData: Partial<CallData> = {},
  708. defaultBlock?: BlockParam,
  709. ): Promise<string
  710. > {
  711. const self = this as any as ExchangeContract;
  712. const functionSignature = 'assetProxies(bytes4)';
  713. const inputAbi = self._lookupAbi(functionSignature).inputs;
  714. [index_0
  715. ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
  716. ], BaseContract._bigNumberToString.bind(self));
  717. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.assetProxies(
  718. index_0
  719. ) as ethers.CallDescription;
  720. const encodedData = ethersFunction.data;
  721. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  722. {
  723. to: self.address,
  724. ...callData,
  725. data: encodedData,
  726. },
  727. self._web3Wrapper.getContractDefaults(),
  728. );
  729. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  730. let resultArray = ethersFunction.parse(rawCallResult);
  731. const outputAbi = (_.find(self.abi, {name: 'assetProxies'}) as MethodAbi).outputs;
  732. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  733. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  734. return resultArray[0];
  735. },
  736. };
  737. public batchCancelOrders = {
  738. async sendTransactionAsync(
  739. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  740. txData: Partial<TxData> = {},
  741. ): Promise<string> {
  742. const self = this as any as ExchangeContract;
  743. const inputAbi = self._lookupAbi('batchCancelOrders(tuple[])').inputs;
  744. [orders
  745. ] = BaseContract._formatABIDataItemList(inputAbi, [orders
  746. ], BaseContract._bigNumberToString.bind(self));
  747. const encodedData = self._lookupEthersInterface('batchCancelOrders(tuple[])').functions.batchCancelOrders(
  748. orders
  749. ).data;
  750. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  751. {
  752. to: self.address,
  753. ...txData,
  754. data: encodedData,
  755. },
  756. self._web3Wrapper.getContractDefaults(),
  757. self.batchCancelOrders.estimateGasAsync.bind(
  758. self,
  759. orders
  760. ),
  761. );
  762. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  763. return txHash;
  764. },
  765. async estimateGasAsync(
  766. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  767. txData: Partial<TxData> = {},
  768. ): Promise<number> {
  769. const self = this as any as ExchangeContract;
  770. const inputAbi = self._lookupAbi('batchCancelOrders(tuple[])').inputs;
  771. [orders
  772. ] = BaseContract._formatABIDataItemList(inputAbi, [orders
  773. ], BaseContract._bigNumberToString);
  774. const encodedData = self._lookupEthersInterface('batchCancelOrders(tuple[])').functions.batchCancelOrders(
  775. orders
  776. ).data;
  777. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  778. {
  779. to: self.address,
  780. ...txData,
  781. data: encodedData,
  782. },
  783. self._web3Wrapper.getContractDefaults(),
  784. );
  785. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  786. return gas;
  787. },
  788. getABIEncodedTransactionData(
  789. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  790. ): string {
  791. const self = this as any as ExchangeContract;
  792. const inputAbi = self._lookupAbi('batchCancelOrders(tuple[])').inputs;
  793. [orders
  794. ] = BaseContract._formatABIDataItemList(inputAbi, [orders
  795. ], BaseContract._bigNumberToString);
  796. const abiEncodedTransactionData = self._lookupEthersInterface('batchCancelOrders(tuple[])').functions.batchCancelOrders(
  797. orders
  798. ).data;
  799. return abiEncodedTransactionData;
  800. },
  801. async callAsync(
  802. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  803. callData: Partial<CallData> = {},
  804. defaultBlock?: BlockParam,
  805. ): Promise<void
  806. > {
  807. const self = this as any as ExchangeContract;
  808. const functionSignature = 'batchCancelOrders(tuple[])';
  809. const inputAbi = self._lookupAbi(functionSignature).inputs;
  810. [orders
  811. ] = BaseContract._formatABIDataItemList(inputAbi, [orders
  812. ], BaseContract._bigNumberToString.bind(self));
  813. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.batchCancelOrders(
  814. orders
  815. ) as ethers.CallDescription;
  816. const encodedData = ethersFunction.data;
  817. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  818. {
  819. to: self.address,
  820. ...callData,
  821. data: encodedData,
  822. },
  823. self._web3Wrapper.getContractDefaults(),
  824. );
  825. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  826. let resultArray = ethersFunction.parse(rawCallResult);
  827. const outputAbi = (_.find(self.abi, {name: 'batchCancelOrders'}) as MethodAbi).outputs;
  828. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  829. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  830. return resultArray;
  831. },
  832. };
  833. public batchFillOrKillOrders = {
  834. async sendTransactionAsync(
  835. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  836. takerAssetFillAmounts: BigNumber[],
  837. signatures: string[],
  838. txData: Partial<TxData> = {},
  839. ): Promise<string> {
  840. const self = this as any as ExchangeContract;
  841. const inputAbi = self._lookupAbi('batchFillOrKillOrders(tuple[],uint256[],bytes[])').inputs;
  842. [orders,
  843. takerAssetFillAmounts,
  844. signatures
  845. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  846. takerAssetFillAmounts,
  847. signatures
  848. ], BaseContract._bigNumberToString.bind(self));
  849. const encodedData = self._lookupEthersInterface('batchFillOrKillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrKillOrders(
  850. orders,
  851. takerAssetFillAmounts,
  852. signatures
  853. ).data;
  854. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  855. {
  856. to: self.address,
  857. ...txData,
  858. data: encodedData,
  859. },
  860. self._web3Wrapper.getContractDefaults(),
  861. self.batchFillOrKillOrders.estimateGasAsync.bind(
  862. self,
  863. orders,
  864. takerAssetFillAmounts,
  865. signatures
  866. ),
  867. );
  868. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  869. return txHash;
  870. },
  871. async estimateGasAsync(
  872. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  873. takerAssetFillAmounts: BigNumber[],
  874. signatures: string[],
  875. txData: Partial<TxData> = {},
  876. ): Promise<number> {
  877. const self = this as any as ExchangeContract;
  878. const inputAbi = self._lookupAbi('batchFillOrKillOrders(tuple[],uint256[],bytes[])').inputs;
  879. [orders,
  880. takerAssetFillAmounts,
  881. signatures
  882. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  883. takerAssetFillAmounts,
  884. signatures
  885. ], BaseContract._bigNumberToString);
  886. const encodedData = self._lookupEthersInterface('batchFillOrKillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrKillOrders(
  887. orders,
  888. takerAssetFillAmounts,
  889. signatures
  890. ).data;
  891. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  892. {
  893. to: self.address,
  894. ...txData,
  895. data: encodedData,
  896. },
  897. self._web3Wrapper.getContractDefaults(),
  898. );
  899. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  900. return gas;
  901. },
  902. getABIEncodedTransactionData(
  903. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  904. takerAssetFillAmounts: BigNumber[],
  905. signatures: string[],
  906. ): string {
  907. const self = this as any as ExchangeContract;
  908. const inputAbi = self._lookupAbi('batchFillOrKillOrders(tuple[],uint256[],bytes[])').inputs;
  909. [orders,
  910. takerAssetFillAmounts,
  911. signatures
  912. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  913. takerAssetFillAmounts,
  914. signatures
  915. ], BaseContract._bigNumberToString);
  916. const abiEncodedTransactionData = self._lookupEthersInterface('batchFillOrKillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrKillOrders(
  917. orders,
  918. takerAssetFillAmounts,
  919. signatures
  920. ).data;
  921. return abiEncodedTransactionData;
  922. },
  923. async callAsync(
  924. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  925. takerAssetFillAmounts: BigNumber[],
  926. signatures: string[],
  927. callData: Partial<CallData> = {},
  928. defaultBlock?: BlockParam,
  929. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  930. > {
  931. const self = this as any as ExchangeContract;
  932. const functionSignature = 'batchFillOrKillOrders(tuple[],uint256[],bytes[])';
  933. const inputAbi = self._lookupAbi(functionSignature).inputs;
  934. [orders,
  935. takerAssetFillAmounts,
  936. signatures
  937. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  938. takerAssetFillAmounts,
  939. signatures
  940. ], BaseContract._bigNumberToString.bind(self));
  941. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.batchFillOrKillOrders(
  942. orders,
  943. takerAssetFillAmounts,
  944. signatures
  945. ) as ethers.CallDescription;
  946. const encodedData = ethersFunction.data;
  947. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  948. {
  949. to: self.address,
  950. ...callData,
  951. data: encodedData,
  952. },
  953. self._web3Wrapper.getContractDefaults(),
  954. );
  955. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  956. let resultArray = ethersFunction.parse(rawCallResult);
  957. const outputAbi = (_.find(self.abi, {name: 'batchFillOrKillOrders'}) as MethodAbi).outputs;
  958. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  959. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  960. return resultArray[0];
  961. },
  962. };
  963. public cancelOrdersUpTo = {
  964. async sendTransactionAsync(
  965. targetOrderEpoch: BigNumber,
  966. txData: Partial<TxData> = {},
  967. ): Promise<string> {
  968. const self = this as any as ExchangeContract;
  969. const inputAbi = self._lookupAbi('cancelOrdersUpTo(uint256)').inputs;
  970. [targetOrderEpoch
  971. ] = BaseContract._formatABIDataItemList(inputAbi, [targetOrderEpoch
  972. ], BaseContract._bigNumberToString.bind(self));
  973. const encodedData = self._lookupEthersInterface('cancelOrdersUpTo(uint256)').functions.cancelOrdersUpTo(
  974. targetOrderEpoch
  975. ).data;
  976. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  977. {
  978. to: self.address,
  979. ...txData,
  980. data: encodedData,
  981. },
  982. self._web3Wrapper.getContractDefaults(),
  983. self.cancelOrdersUpTo.estimateGasAsync.bind(
  984. self,
  985. targetOrderEpoch
  986. ),
  987. );
  988. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  989. return txHash;
  990. },
  991. async estimateGasAsync(
  992. targetOrderEpoch: BigNumber,
  993. txData: Partial<TxData> = {},
  994. ): Promise<number> {
  995. const self = this as any as ExchangeContract;
  996. const inputAbi = self._lookupAbi('cancelOrdersUpTo(uint256)').inputs;
  997. [targetOrderEpoch
  998. ] = BaseContract._formatABIDataItemList(inputAbi, [targetOrderEpoch
  999. ], BaseContract._bigNumberToString);
  1000. const encodedData = self._lookupEthersInterface('cancelOrdersUpTo(uint256)').functions.cancelOrdersUpTo(
  1001. targetOrderEpoch
  1002. ).data;
  1003. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1004. {
  1005. to: self.address,
  1006. ...txData,
  1007. data: encodedData,
  1008. },
  1009. self._web3Wrapper.getContractDefaults(),
  1010. );
  1011. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  1012. return gas;
  1013. },
  1014. getABIEncodedTransactionData(
  1015. targetOrderEpoch: BigNumber,
  1016. ): string {
  1017. const self = this as any as ExchangeContract;
  1018. const inputAbi = self._lookupAbi('cancelOrdersUpTo(uint256)').inputs;
  1019. [targetOrderEpoch
  1020. ] = BaseContract._formatABIDataItemList(inputAbi, [targetOrderEpoch
  1021. ], BaseContract._bigNumberToString);
  1022. const abiEncodedTransactionData = self._lookupEthersInterface('cancelOrdersUpTo(uint256)').functions.cancelOrdersUpTo(
  1023. targetOrderEpoch
  1024. ).data;
  1025. return abiEncodedTransactionData;
  1026. },
  1027. async callAsync(
  1028. targetOrderEpoch: BigNumber,
  1029. callData: Partial<CallData> = {},
  1030. defaultBlock?: BlockParam,
  1031. ): Promise<void
  1032. > {
  1033. const self = this as any as ExchangeContract;
  1034. const functionSignature = 'cancelOrdersUpTo(uint256)';
  1035. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1036. [targetOrderEpoch
  1037. ] = BaseContract._formatABIDataItemList(inputAbi, [targetOrderEpoch
  1038. ], BaseContract._bigNumberToString.bind(self));
  1039. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.cancelOrdersUpTo(
  1040. targetOrderEpoch
  1041. ) as ethers.CallDescription;
  1042. const encodedData = ethersFunction.data;
  1043. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1044. {
  1045. to: self.address,
  1046. ...callData,
  1047. data: encodedData,
  1048. },
  1049. self._web3Wrapper.getContractDefaults(),
  1050. );
  1051. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1052. let resultArray = ethersFunction.parse(rawCallResult);
  1053. const outputAbi = (_.find(self.abi, {name: 'cancelOrdersUpTo'}) as MethodAbi).outputs;
  1054. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1055. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1056. return resultArray;
  1057. },
  1058. };
  1059. public batchFillOrdersNoThrow = {
  1060. async sendTransactionAsync(
  1061. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1062. takerAssetFillAmounts: BigNumber[],
  1063. signatures: string[],
  1064. txData: Partial<TxData> = {},
  1065. ): Promise<string> {
  1066. const self = this as any as ExchangeContract;
  1067. const inputAbi = self._lookupAbi('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').inputs;
  1068. [orders,
  1069. takerAssetFillAmounts,
  1070. signatures
  1071. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1072. takerAssetFillAmounts,
  1073. signatures
  1074. ], BaseContract._bigNumberToString.bind(self));
  1075. const encodedData = self._lookupEthersInterface('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').functions.batchFillOrdersNoThrow(
  1076. orders,
  1077. takerAssetFillAmounts,
  1078. signatures
  1079. ).data;
  1080. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1081. {
  1082. to: self.address,
  1083. ...txData,
  1084. data: encodedData,
  1085. },
  1086. self._web3Wrapper.getContractDefaults(),
  1087. self.batchFillOrdersNoThrow.estimateGasAsync.bind(
  1088. self,
  1089. orders,
  1090. takerAssetFillAmounts,
  1091. signatures
  1092. ),
  1093. );
  1094. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  1095. return txHash;
  1096. },
  1097. async estimateGasAsync(
  1098. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1099. takerAssetFillAmounts: BigNumber[],
  1100. signatures: string[],
  1101. txData: Partial<TxData> = {},
  1102. ): Promise<number> {
  1103. const self = this as any as ExchangeContract;
  1104. const inputAbi = self._lookupAbi('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').inputs;
  1105. [orders,
  1106. takerAssetFillAmounts,
  1107. signatures
  1108. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1109. takerAssetFillAmounts,
  1110. signatures
  1111. ], BaseContract._bigNumberToString);
  1112. const encodedData = self._lookupEthersInterface('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').functions.batchFillOrdersNoThrow(
  1113. orders,
  1114. takerAssetFillAmounts,
  1115. signatures
  1116. ).data;
  1117. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1118. {
  1119. to: self.address,
  1120. ...txData,
  1121. data: encodedData,
  1122. },
  1123. self._web3Wrapper.getContractDefaults(),
  1124. );
  1125. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  1126. return gas;
  1127. },
  1128. getABIEncodedTransactionData(
  1129. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1130. takerAssetFillAmounts: BigNumber[],
  1131. signatures: string[],
  1132. ): string {
  1133. const self = this as any as ExchangeContract;
  1134. const inputAbi = self._lookupAbi('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').inputs;
  1135. [orders,
  1136. takerAssetFillAmounts,
  1137. signatures
  1138. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1139. takerAssetFillAmounts,
  1140. signatures
  1141. ], BaseContract._bigNumberToString);
  1142. const abiEncodedTransactionData = self._lookupEthersInterface('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').functions.batchFillOrdersNoThrow(
  1143. orders,
  1144. takerAssetFillAmounts,
  1145. signatures
  1146. ).data;
  1147. return abiEncodedTransactionData;
  1148. },
  1149. async callAsync(
  1150. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1151. takerAssetFillAmounts: BigNumber[],
  1152. signatures: string[],
  1153. callData: Partial<CallData> = {},
  1154. defaultBlock?: BlockParam,
  1155. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  1156. > {
  1157. const self = this as any as ExchangeContract;
  1158. const functionSignature = 'batchFillOrdersNoThrow(tuple[],uint256[],bytes[])';
  1159. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1160. [orders,
  1161. takerAssetFillAmounts,
  1162. signatures
  1163. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1164. takerAssetFillAmounts,
  1165. signatures
  1166. ], BaseContract._bigNumberToString.bind(self));
  1167. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.batchFillOrdersNoThrow(
  1168. orders,
  1169. takerAssetFillAmounts,
  1170. signatures
  1171. ) as ethers.CallDescription;
  1172. const encodedData = ethersFunction.data;
  1173. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1174. {
  1175. to: self.address,
  1176. ...callData,
  1177. data: encodedData,
  1178. },
  1179. self._web3Wrapper.getContractDefaults(),
  1180. );
  1181. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1182. let resultArray = ethersFunction.parse(rawCallResult);
  1183. const outputAbi = (_.find(self.abi, {name: 'batchFillOrdersNoThrow'}) as MethodAbi).outputs;
  1184. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1185. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1186. return resultArray[0];
  1187. },
  1188. };
  1189. public getAssetProxy = {
  1190. async callAsync(
  1191. assetProxyId: string,
  1192. callData: Partial<CallData> = {},
  1193. defaultBlock?: BlockParam,
  1194. ): Promise<string
  1195. > {
  1196. const self = this as any as ExchangeContract;
  1197. const functionSignature = 'getAssetProxy(bytes4)';
  1198. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1199. [assetProxyId
  1200. ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxyId
  1201. ], BaseContract._bigNumberToString.bind(self));
  1202. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getAssetProxy(
  1203. assetProxyId
  1204. ) as ethers.CallDescription;
  1205. const encodedData = ethersFunction.data;
  1206. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1207. {
  1208. to: self.address,
  1209. ...callData,
  1210. data: encodedData,
  1211. },
  1212. self._web3Wrapper.getContractDefaults(),
  1213. );
  1214. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1215. let resultArray = ethersFunction.parse(rawCallResult);
  1216. const outputAbi = (_.find(self.abi, {name: 'getAssetProxy'}) as MethodAbi).outputs;
  1217. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1218. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1219. return resultArray[0];
  1220. },
  1221. };
  1222. public transactions = {
  1223. async callAsync(
  1224. index_0: string,
  1225. callData: Partial<CallData> = {},
  1226. defaultBlock?: BlockParam,
  1227. ): Promise<boolean
  1228. > {
  1229. const self = this as any as ExchangeContract;
  1230. const functionSignature = 'transactions(bytes32)';
  1231. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1232. [index_0
  1233. ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
  1234. ], BaseContract._bigNumberToString.bind(self));
  1235. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transactions(
  1236. index_0
  1237. ) as ethers.CallDescription;
  1238. const encodedData = ethersFunction.data;
  1239. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1240. {
  1241. to: self.address,
  1242. ...callData,
  1243. data: encodedData,
  1244. },
  1245. self._web3Wrapper.getContractDefaults(),
  1246. );
  1247. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1248. let resultArray = ethersFunction.parse(rawCallResult);
  1249. const outputAbi = (_.find(self.abi, {name: 'transactions'}) as MethodAbi).outputs;
  1250. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1251. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1252. return resultArray[0];
  1253. },
  1254. };
  1255. public fillOrKillOrder = {
  1256. async sendTransactionAsync(
  1257. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  1258. takerAssetFillAmount: BigNumber,
  1259. signature: string,
  1260. txData: Partial<TxData> = {},
  1261. ): Promise<string> {
  1262. const self = this as any as ExchangeContract;
  1263. const inputAbi = self._lookupAbi('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
  1264. [order,
  1265. takerAssetFillAmount,
  1266. signature
  1267. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  1268. takerAssetFillAmount,
  1269. signature
  1270. ], BaseContract._bigNumberToString.bind(self));
  1271. const encodedData = self._lookupEthersInterface('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrKillOrder(
  1272. order,
  1273. takerAssetFillAmount,
  1274. signature
  1275. ).data;
  1276. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1277. {
  1278. to: self.address,
  1279. ...txData,
  1280. data: encodedData,
  1281. },
  1282. self._web3Wrapper.getContractDefaults(),
  1283. self.fillOrKillOrder.estimateGasAsync.bind(
  1284. self,
  1285. order,
  1286. takerAssetFillAmount,
  1287. signature
  1288. ),
  1289. );
  1290. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  1291. return txHash;
  1292. },
  1293. async estimateGasAsync(
  1294. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  1295. takerAssetFillAmount: BigNumber,
  1296. signature: string,
  1297. txData: Partial<TxData> = {},
  1298. ): Promise<number> {
  1299. const self = this as any as ExchangeContract;
  1300. const inputAbi = self._lookupAbi('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
  1301. [order,
  1302. takerAssetFillAmount,
  1303. signature
  1304. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  1305. takerAssetFillAmount,
  1306. signature
  1307. ], BaseContract._bigNumberToString);
  1308. const encodedData = self._lookupEthersInterface('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrKillOrder(
  1309. order,
  1310. takerAssetFillAmount,
  1311. signature
  1312. ).data;
  1313. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1314. {
  1315. to: self.address,
  1316. ...txData,
  1317. data: encodedData,
  1318. },
  1319. self._web3Wrapper.getContractDefaults(),
  1320. );
  1321. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  1322. return gas;
  1323. },
  1324. getABIEncodedTransactionData(
  1325. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  1326. takerAssetFillAmount: BigNumber,
  1327. signature: string,
  1328. ): string {
  1329. const self = this as any as ExchangeContract;
  1330. const inputAbi = self._lookupAbi('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
  1331. [order,
  1332. takerAssetFillAmount,
  1333. signature
  1334. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  1335. takerAssetFillAmount,
  1336. signature
  1337. ], BaseContract._bigNumberToString);
  1338. const abiEncodedTransactionData = self._lookupEthersInterface('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrKillOrder(
  1339. order,
  1340. takerAssetFillAmount,
  1341. signature
  1342. ).data;
  1343. return abiEncodedTransactionData;
  1344. },
  1345. async callAsync(
  1346. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  1347. takerAssetFillAmount: BigNumber,
  1348. signature: string,
  1349. callData: Partial<CallData> = {},
  1350. defaultBlock?: BlockParam,
  1351. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  1352. > {
  1353. const self = this as any as ExchangeContract;
  1354. const functionSignature = 'fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)';
  1355. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1356. [order,
  1357. takerAssetFillAmount,
  1358. signature
  1359. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  1360. takerAssetFillAmount,
  1361. signature
  1362. ], BaseContract._bigNumberToString.bind(self));
  1363. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.fillOrKillOrder(
  1364. order,
  1365. takerAssetFillAmount,
  1366. signature
  1367. ) as ethers.CallDescription;
  1368. const encodedData = ethersFunction.data;
  1369. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1370. {
  1371. to: self.address,
  1372. ...callData,
  1373. data: encodedData,
  1374. },
  1375. self._web3Wrapper.getContractDefaults(),
  1376. );
  1377. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1378. let resultArray = ethersFunction.parse(rawCallResult);
  1379. const outputAbi = (_.find(self.abi, {name: 'fillOrKillOrder'}) as MethodAbi).outputs;
  1380. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1381. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1382. return resultArray[0];
  1383. },
  1384. };
  1385. public setSignatureValidatorApproval = {
  1386. async sendTransactionAsync(
  1387. validatorAddress: string,
  1388. approval: boolean,
  1389. txData: Partial<TxData> = {},
  1390. ): Promise<string> {
  1391. const self = this as any as ExchangeContract;
  1392. const inputAbi = self._lookupAbi('setSignatureValidatorApproval(address,bool)').inputs;
  1393. [validatorAddress,
  1394. approval
  1395. ] = BaseContract._formatABIDataItemList(inputAbi, [validatorAddress,
  1396. approval
  1397. ], BaseContract._bigNumberToString.bind(self));
  1398. const encodedData = self._lookupEthersInterface('setSignatureValidatorApproval(address,bool)').functions.setSignatureValidatorApproval(
  1399. validatorAddress,
  1400. approval
  1401. ).data;
  1402. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1403. {
  1404. to: self.address,
  1405. ...txData,
  1406. data: encodedData,
  1407. },
  1408. self._web3Wrapper.getContractDefaults(),
  1409. self.setSignatureValidatorApproval.estimateGasAsync.bind(
  1410. self,
  1411. validatorAddress,
  1412. approval
  1413. ),
  1414. );
  1415. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  1416. return txHash;
  1417. },
  1418. async estimateGasAsync(
  1419. validatorAddress: string,
  1420. approval: boolean,
  1421. txData: Partial<TxData> = {},
  1422. ): Promise<number> {
  1423. const self = this as any as ExchangeContract;
  1424. const inputAbi = self._lookupAbi('setSignatureValidatorApproval(address,bool)').inputs;
  1425. [validatorAddress,
  1426. approval
  1427. ] = BaseContract._formatABIDataItemList(inputAbi, [validatorAddress,
  1428. approval
  1429. ], BaseContract._bigNumberToString);
  1430. const encodedData = self._lookupEthersInterface('setSignatureValidatorApproval(address,bool)').functions.setSignatureValidatorApproval(
  1431. validatorAddress,
  1432. approval
  1433. ).data;
  1434. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1435. {
  1436. to: self.address,
  1437. ...txData,
  1438. data: encodedData,
  1439. },
  1440. self._web3Wrapper.getContractDefaults(),
  1441. );
  1442. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  1443. return gas;
  1444. },
  1445. getABIEncodedTransactionData(
  1446. validatorAddress: string,
  1447. approval: boolean,
  1448. ): string {
  1449. const self = this as any as ExchangeContract;
  1450. const inputAbi = self._lookupAbi('setSignatureValidatorApproval(address,bool)').inputs;
  1451. [validatorAddress,
  1452. approval
  1453. ] = BaseContract._formatABIDataItemList(inputAbi, [validatorAddress,
  1454. approval
  1455. ], BaseContract._bigNumberToString);
  1456. const abiEncodedTransactionData = self._lookupEthersInterface('setSignatureValidatorApproval(address,bool)').functions.setSignatureValidatorApproval(
  1457. validatorAddress,
  1458. approval
  1459. ).data;
  1460. return abiEncodedTransactionData;
  1461. },
  1462. async callAsync(
  1463. validatorAddress: string,
  1464. approval: boolean,
  1465. callData: Partial<CallData> = {},
  1466. defaultBlock?: BlockParam,
  1467. ): Promise<void
  1468. > {
  1469. const self = this as any as ExchangeContract;
  1470. const functionSignature = 'setSignatureValidatorApproval(address,bool)';
  1471. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1472. [validatorAddress,
  1473. approval
  1474. ] = BaseContract._formatABIDataItemList(inputAbi, [validatorAddress,
  1475. approval
  1476. ], BaseContract._bigNumberToString.bind(self));
  1477. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.setSignatureValidatorApproval(
  1478. validatorAddress,
  1479. approval
  1480. ) as ethers.CallDescription;
  1481. const encodedData = ethersFunction.data;
  1482. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1483. {
  1484. to: self.address,
  1485. ...callData,
  1486. data: encodedData,
  1487. },
  1488. self._web3Wrapper.getContractDefaults(),
  1489. );
  1490. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1491. let resultArray = ethersFunction.parse(rawCallResult);
  1492. const outputAbi = (_.find(self.abi, {name: 'setSignatureValidatorApproval'}) as MethodAbi).outputs;
  1493. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1494. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1495. return resultArray;
  1496. },
  1497. };
  1498. public allowedValidators = {
  1499. async callAsync(
  1500. index_0: string,
  1501. index_1: string,
  1502. callData: Partial<CallData> = {},
  1503. defaultBlock?: BlockParam,
  1504. ): Promise<boolean
  1505. > {
  1506. const self = this as any as ExchangeContract;
  1507. const functionSignature = 'allowedValidators(address,address)';
  1508. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1509. [index_0,
  1510. index_1
  1511. ] = BaseContract._formatABIDataItemList(inputAbi, [index_0,
  1512. index_1
  1513. ], BaseContract._bigNumberToString.bind(self));
  1514. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.allowedValidators(
  1515. index_0,
  1516. index_1
  1517. ) as ethers.CallDescription;
  1518. const encodedData = ethersFunction.data;
  1519. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1520. {
  1521. to: self.address,
  1522. ...callData,
  1523. data: encodedData,
  1524. },
  1525. self._web3Wrapper.getContractDefaults(),
  1526. );
  1527. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1528. let resultArray = ethersFunction.parse(rawCallResult);
  1529. const outputAbi = (_.find(self.abi, {name: 'allowedValidators'}) as MethodAbi).outputs;
  1530. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1531. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1532. return resultArray[0];
  1533. },
  1534. };
  1535. public marketSellOrders = {
  1536. async sendTransactionAsync(
  1537. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1538. takerAssetFillAmount: BigNumber,
  1539. signatures: string[],
  1540. txData: Partial<TxData> = {},
  1541. ): Promise<string> {
  1542. const self = this as any as ExchangeContract;
  1543. const inputAbi = self._lookupAbi('marketSellOrders(tuple[],uint256,bytes[])').inputs;
  1544. [orders,
  1545. takerAssetFillAmount,
  1546. signatures
  1547. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1548. takerAssetFillAmount,
  1549. signatures
  1550. ], BaseContract._bigNumberToString.bind(self));
  1551. const encodedData = self._lookupEthersInterface('marketSellOrders(tuple[],uint256,bytes[])').functions.marketSellOrders(
  1552. orders,
  1553. takerAssetFillAmount,
  1554. signatures
  1555. ).data;
  1556. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1557. {
  1558. to: self.address,
  1559. ...txData,
  1560. data: encodedData,
  1561. },
  1562. self._web3Wrapper.getContractDefaults(),
  1563. self.marketSellOrders.estimateGasAsync.bind(
  1564. self,
  1565. orders,
  1566. takerAssetFillAmount,
  1567. signatures
  1568. ),
  1569. );
  1570. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  1571. return txHash;
  1572. },
  1573. async estimateGasAsync(
  1574. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1575. takerAssetFillAmount: BigNumber,
  1576. signatures: string[],
  1577. txData: Partial<TxData> = {},
  1578. ): Promise<number> {
  1579. const self = this as any as ExchangeContract;
  1580. const inputAbi = self._lookupAbi('marketSellOrders(tuple[],uint256,bytes[])').inputs;
  1581. [orders,
  1582. takerAssetFillAmount,
  1583. signatures
  1584. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1585. takerAssetFillAmount,
  1586. signatures
  1587. ], BaseContract._bigNumberToString);
  1588. const encodedData = self._lookupEthersInterface('marketSellOrders(tuple[],uint256,bytes[])').functions.marketSellOrders(
  1589. orders,
  1590. takerAssetFillAmount,
  1591. signatures
  1592. ).data;
  1593. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1594. {
  1595. to: self.address,
  1596. ...txData,
  1597. data: encodedData,
  1598. },
  1599. self._web3Wrapper.getContractDefaults(),
  1600. );
  1601. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  1602. return gas;
  1603. },
  1604. getABIEncodedTransactionData(
  1605. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1606. takerAssetFillAmount: BigNumber,
  1607. signatures: string[],
  1608. ): string {
  1609. const self = this as any as ExchangeContract;
  1610. const inputAbi = self._lookupAbi('marketSellOrders(tuple[],uint256,bytes[])').inputs;
  1611. [orders,
  1612. takerAssetFillAmount,
  1613. signatures
  1614. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1615. takerAssetFillAmount,
  1616. signatures
  1617. ], BaseContract._bigNumberToString);
  1618. const abiEncodedTransactionData = self._lookupEthersInterface('marketSellOrders(tuple[],uint256,bytes[])').functions.marketSellOrders(
  1619. orders,
  1620. takerAssetFillAmount,
  1621. signatures
  1622. ).data;
  1623. return abiEncodedTransactionData;
  1624. },
  1625. async callAsync(
  1626. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1627. takerAssetFillAmount: BigNumber,
  1628. signatures: string[],
  1629. callData: Partial<CallData> = {},
  1630. defaultBlock?: BlockParam,
  1631. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  1632. > {
  1633. const self = this as any as ExchangeContract;
  1634. const functionSignature = 'marketSellOrders(tuple[],uint256,bytes[])';
  1635. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1636. [orders,
  1637. takerAssetFillAmount,
  1638. signatures
  1639. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1640. takerAssetFillAmount,
  1641. signatures
  1642. ], BaseContract._bigNumberToString.bind(self));
  1643. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketSellOrders(
  1644. orders,
  1645. takerAssetFillAmount,
  1646. signatures
  1647. ) as ethers.CallDescription;
  1648. const encodedData = ethersFunction.data;
  1649. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1650. {
  1651. to: self.address,
  1652. ...callData,
  1653. data: encodedData,
  1654. },
  1655. self._web3Wrapper.getContractDefaults(),
  1656. );
  1657. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1658. let resultArray = ethersFunction.parse(rawCallResult);
  1659. const outputAbi = (_.find(self.abi, {name: 'marketSellOrders'}) as MethodAbi).outputs;
  1660. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1661. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1662. return resultArray[0];
  1663. },
  1664. };
  1665. public getOrdersInfo = {
  1666. async callAsync(
  1667. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1668. callData: Partial<CallData> = {},
  1669. defaultBlock?: BlockParam,
  1670. ): Promise<Array<{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber}>
  1671. > {
  1672. const self = this as any as ExchangeContract;
  1673. const functionSignature = 'getOrdersInfo(tuple[])';
  1674. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1675. [orders
  1676. ] = BaseContract._formatABIDataItemList(inputAbi, [orders
  1677. ], BaseContract._bigNumberToString.bind(self));
  1678. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getOrdersInfo(
  1679. orders
  1680. ) as ethers.CallDescription;
  1681. const encodedData = ethersFunction.data;
  1682. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1683. {
  1684. to: self.address,
  1685. ...callData,
  1686. data: encodedData,
  1687. },
  1688. self._web3Wrapper.getContractDefaults(),
  1689. );
  1690. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1691. let resultArray = ethersFunction.parse(rawCallResult);
  1692. const outputAbi = (_.find(self.abi, {name: 'getOrdersInfo'}) as MethodAbi).outputs;
  1693. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1694. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1695. return resultArray[0];
  1696. },
  1697. };
  1698. public preSigned = {
  1699. async callAsync(
  1700. index_0: string,
  1701. index_1: string,
  1702. callData: Partial<CallData> = {},
  1703. defaultBlock?: BlockParam,
  1704. ): Promise<boolean
  1705. > {
  1706. const self = this as any as ExchangeContract;
  1707. const functionSignature = 'preSigned(bytes32,address)';
  1708. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1709. [index_0,
  1710. index_1
  1711. ] = BaseContract._formatABIDataItemList(inputAbi, [index_0,
  1712. index_1
  1713. ], BaseContract._bigNumberToString.bind(self));
  1714. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.preSigned(
  1715. index_0,
  1716. index_1
  1717. ) as ethers.CallDescription;
  1718. const encodedData = ethersFunction.data;
  1719. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1720. {
  1721. to: self.address,
  1722. ...callData,
  1723. data: encodedData,
  1724. },
  1725. self._web3Wrapper.getContractDefaults(),
  1726. );
  1727. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1728. let resultArray = ethersFunction.parse(rawCallResult);
  1729. const outputAbi = (_.find(self.abi, {name: 'preSigned'}) as MethodAbi).outputs;
  1730. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1731. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1732. return resultArray[0];
  1733. },
  1734. };
  1735. public owner = {
  1736. async callAsync(
  1737. callData: Partial<CallData> = {},
  1738. defaultBlock?: BlockParam,
  1739. ): Promise<string
  1740. > {
  1741. const self = this as any as ExchangeContract;
  1742. const functionSignature = 'owner()';
  1743. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1744. [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
  1745. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owner(
  1746. ) as ethers.CallDescription;
  1747. const encodedData = ethersFunction.data;
  1748. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1749. {
  1750. to: self.address,
  1751. ...callData,
  1752. data: encodedData,
  1753. },
  1754. self._web3Wrapper.getContractDefaults(),
  1755. );
  1756. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1757. let resultArray = ethersFunction.parse(rawCallResult);
  1758. const outputAbi = (_.find(self.abi, {name: 'owner'}) as MethodAbi).outputs;
  1759. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1760. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1761. return resultArray[0];
  1762. },
  1763. };
  1764. public isValidSignature = {
  1765. async callAsync(
  1766. hash: string,
  1767. signerAddress: string,
  1768. signature: string,
  1769. callData: Partial<CallData> = {},
  1770. defaultBlock?: BlockParam,
  1771. ): Promise<boolean
  1772. > {
  1773. const self = this as any as ExchangeContract;
  1774. const functionSignature = 'isValidSignature(bytes32,address,bytes)';
  1775. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1776. [hash,
  1777. signerAddress,
  1778. signature
  1779. ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
  1780. signerAddress,
  1781. signature
  1782. ], BaseContract._bigNumberToString.bind(self));
  1783. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isValidSignature(
  1784. hash,
  1785. signerAddress,
  1786. signature
  1787. ) as ethers.CallDescription;
  1788. const encodedData = ethersFunction.data;
  1789. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1790. {
  1791. to: self.address,
  1792. ...callData,
  1793. data: encodedData,
  1794. },
  1795. self._web3Wrapper.getContractDefaults(),
  1796. );
  1797. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1798. let resultArray = ethersFunction.parse(rawCallResult);
  1799. const outputAbi = (_.find(self.abi, {name: 'isValidSignature'}) as MethodAbi).outputs;
  1800. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1801. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1802. return resultArray[0];
  1803. },
  1804. };
  1805. public marketBuyOrdersNoThrow = {
  1806. async sendTransactionAsync(
  1807. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1808. makerAssetFillAmount: BigNumber,
  1809. signatures: string[],
  1810. txData: Partial<TxData> = {},
  1811. ): Promise<string> {
  1812. const self = this as any as ExchangeContract;
  1813. const inputAbi = self._lookupAbi('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
  1814. [orders,
  1815. makerAssetFillAmount,
  1816. signatures
  1817. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1818. makerAssetFillAmount,
  1819. signatures
  1820. ], BaseContract._bigNumberToString.bind(self));
  1821. const encodedData = self._lookupEthersInterface('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketBuyOrdersNoThrow(
  1822. orders,
  1823. makerAssetFillAmount,
  1824. signatures
  1825. ).data;
  1826. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1827. {
  1828. to: self.address,
  1829. ...txData,
  1830. data: encodedData,
  1831. },
  1832. self._web3Wrapper.getContractDefaults(),
  1833. self.marketBuyOrdersNoThrow.estimateGasAsync.bind(
  1834. self,
  1835. orders,
  1836. makerAssetFillAmount,
  1837. signatures
  1838. ),
  1839. );
  1840. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  1841. return txHash;
  1842. },
  1843. async estimateGasAsync(
  1844. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1845. makerAssetFillAmount: BigNumber,
  1846. signatures: string[],
  1847. txData: Partial<TxData> = {},
  1848. ): Promise<number> {
  1849. const self = this as any as ExchangeContract;
  1850. const inputAbi = self._lookupAbi('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
  1851. [orders,
  1852. makerAssetFillAmount,
  1853. signatures
  1854. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1855. makerAssetFillAmount,
  1856. signatures
  1857. ], BaseContract._bigNumberToString);
  1858. const encodedData = self._lookupEthersInterface('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketBuyOrdersNoThrow(
  1859. orders,
  1860. makerAssetFillAmount,
  1861. signatures
  1862. ).data;
  1863. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1864. {
  1865. to: self.address,
  1866. ...txData,
  1867. data: encodedData,
  1868. },
  1869. self._web3Wrapper.getContractDefaults(),
  1870. );
  1871. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  1872. return gas;
  1873. },
  1874. getABIEncodedTransactionData(
  1875. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1876. makerAssetFillAmount: BigNumber,
  1877. signatures: string[],
  1878. ): string {
  1879. const self = this as any as ExchangeContract;
  1880. const inputAbi = self._lookupAbi('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
  1881. [orders,
  1882. makerAssetFillAmount,
  1883. signatures
  1884. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1885. makerAssetFillAmount,
  1886. signatures
  1887. ], BaseContract._bigNumberToString);
  1888. const abiEncodedTransactionData = self._lookupEthersInterface('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketBuyOrdersNoThrow(
  1889. orders,
  1890. makerAssetFillAmount,
  1891. signatures
  1892. ).data;
  1893. return abiEncodedTransactionData;
  1894. },
  1895. async callAsync(
  1896. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  1897. makerAssetFillAmount: BigNumber,
  1898. signatures: string[],
  1899. callData: Partial<CallData> = {},
  1900. defaultBlock?: BlockParam,
  1901. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  1902. > {
  1903. const self = this as any as ExchangeContract;
  1904. const functionSignature = 'marketBuyOrdersNoThrow(tuple[],uint256,bytes[])';
  1905. const inputAbi = self._lookupAbi(functionSignature).inputs;
  1906. [orders,
  1907. makerAssetFillAmount,
  1908. signatures
  1909. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  1910. makerAssetFillAmount,
  1911. signatures
  1912. ], BaseContract._bigNumberToString.bind(self));
  1913. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketBuyOrdersNoThrow(
  1914. orders,
  1915. makerAssetFillAmount,
  1916. signatures
  1917. ) as ethers.CallDescription;
  1918. const encodedData = ethersFunction.data;
  1919. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1920. {
  1921. to: self.address,
  1922. ...callData,
  1923. data: encodedData,
  1924. },
  1925. self._web3Wrapper.getContractDefaults(),
  1926. );
  1927. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  1928. let resultArray = ethersFunction.parse(rawCallResult);
  1929. const outputAbi = (_.find(self.abi, {name: 'marketBuyOrdersNoThrow'}) as MethodAbi).outputs;
  1930. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  1931. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  1932. return resultArray[0];
  1933. },
  1934. };
  1935. public fillOrder = {
  1936. async sendTransactionAsync(
  1937. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  1938. takerAssetFillAmount: BigNumber,
  1939. signature: string,
  1940. txData: Partial<TxData> = {},
  1941. ): Promise<string> {
  1942. const self = this as any as ExchangeContract;
  1943. const inputAbi = self._lookupAbi('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
  1944. [order,
  1945. takerAssetFillAmount,
  1946. signature
  1947. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  1948. takerAssetFillAmount,
  1949. signature
  1950. ], BaseContract._bigNumberToString.bind(self));
  1951. const encodedData = self._lookupEthersInterface('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrder(
  1952. order,
  1953. takerAssetFillAmount,
  1954. signature
  1955. ).data;
  1956. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1957. {
  1958. to: self.address,
  1959. ...txData,
  1960. data: encodedData,
  1961. },
  1962. self._web3Wrapper.getContractDefaults(),
  1963. self.fillOrder.estimateGasAsync.bind(
  1964. self,
  1965. order,
  1966. takerAssetFillAmount,
  1967. signature
  1968. ),
  1969. );
  1970. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  1971. return txHash;
  1972. },
  1973. async estimateGasAsync(
  1974. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  1975. takerAssetFillAmount: BigNumber,
  1976. signature: string,
  1977. txData: Partial<TxData> = {},
  1978. ): Promise<number> {
  1979. const self = this as any as ExchangeContract;
  1980. const inputAbi = self._lookupAbi('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
  1981. [order,
  1982. takerAssetFillAmount,
  1983. signature
  1984. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  1985. takerAssetFillAmount,
  1986. signature
  1987. ], BaseContract._bigNumberToString);
  1988. const encodedData = self._lookupEthersInterface('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrder(
  1989. order,
  1990. takerAssetFillAmount,
  1991. signature
  1992. ).data;
  1993. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  1994. {
  1995. to: self.address,
  1996. ...txData,
  1997. data: encodedData,
  1998. },
  1999. self._web3Wrapper.getContractDefaults(),
  2000. );
  2001. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  2002. return gas;
  2003. },
  2004. getABIEncodedTransactionData(
  2005. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  2006. takerAssetFillAmount: BigNumber,
  2007. signature: string,
  2008. ): string {
  2009. const self = this as any as ExchangeContract;
  2010. const inputAbi = self._lookupAbi('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
  2011. [order,
  2012. takerAssetFillAmount,
  2013. signature
  2014. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  2015. takerAssetFillAmount,
  2016. signature
  2017. ], BaseContract._bigNumberToString);
  2018. const abiEncodedTransactionData = self._lookupEthersInterface('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrder(
  2019. order,
  2020. takerAssetFillAmount,
  2021. signature
  2022. ).data;
  2023. return abiEncodedTransactionData;
  2024. },
  2025. async callAsync(
  2026. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  2027. takerAssetFillAmount: BigNumber,
  2028. signature: string,
  2029. callData: Partial<CallData> = {},
  2030. defaultBlock?: BlockParam,
  2031. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  2032. > {
  2033. const self = this as any as ExchangeContract;
  2034. const functionSignature = 'fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)';
  2035. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2036. [order,
  2037. takerAssetFillAmount,
  2038. signature
  2039. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  2040. takerAssetFillAmount,
  2041. signature
  2042. ], BaseContract._bigNumberToString.bind(self));
  2043. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.fillOrder(
  2044. order,
  2045. takerAssetFillAmount,
  2046. signature
  2047. ) as ethers.CallDescription;
  2048. const encodedData = ethersFunction.data;
  2049. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2050. {
  2051. to: self.address,
  2052. ...callData,
  2053. data: encodedData,
  2054. },
  2055. self._web3Wrapper.getContractDefaults(),
  2056. );
  2057. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2058. let resultArray = ethersFunction.parse(rawCallResult);
  2059. const outputAbi = (_.find(self.abi, {name: 'fillOrder'}) as MethodAbi).outputs;
  2060. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2061. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2062. return resultArray[0];
  2063. },
  2064. };
  2065. public executeTransaction = {
  2066. async sendTransactionAsync(
  2067. salt: BigNumber,
  2068. signerAddress: string,
  2069. data: string,
  2070. signature: string,
  2071. txData: Partial<TxData> = {},
  2072. ): Promise<string> {
  2073. const self = this as any as ExchangeContract;
  2074. const inputAbi = self._lookupAbi('executeTransaction(uint256,address,bytes,bytes)').inputs;
  2075. [salt,
  2076. signerAddress,
  2077. data,
  2078. signature
  2079. ] = BaseContract._formatABIDataItemList(inputAbi, [salt,
  2080. signerAddress,
  2081. data,
  2082. signature
  2083. ], BaseContract._bigNumberToString.bind(self));
  2084. const encodedData = self._lookupEthersInterface('executeTransaction(uint256,address,bytes,bytes)').functions.executeTransaction(
  2085. salt,
  2086. signerAddress,
  2087. data,
  2088. signature
  2089. ).data;
  2090. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2091. {
  2092. to: self.address,
  2093. ...txData,
  2094. data: encodedData,
  2095. },
  2096. self._web3Wrapper.getContractDefaults(),
  2097. self.executeTransaction.estimateGasAsync.bind(
  2098. self,
  2099. salt,
  2100. signerAddress,
  2101. data,
  2102. signature
  2103. ),
  2104. );
  2105. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  2106. return txHash;
  2107. },
  2108. async estimateGasAsync(
  2109. salt: BigNumber,
  2110. signerAddress: string,
  2111. data: string,
  2112. signature: string,
  2113. txData: Partial<TxData> = {},
  2114. ): Promise<number> {
  2115. const self = this as any as ExchangeContract;
  2116. const inputAbi = self._lookupAbi('executeTransaction(uint256,address,bytes,bytes)').inputs;
  2117. [salt,
  2118. signerAddress,
  2119. data,
  2120. signature
  2121. ] = BaseContract._formatABIDataItemList(inputAbi, [salt,
  2122. signerAddress,
  2123. data,
  2124. signature
  2125. ], BaseContract._bigNumberToString);
  2126. const encodedData = self._lookupEthersInterface('executeTransaction(uint256,address,bytes,bytes)').functions.executeTransaction(
  2127. salt,
  2128. signerAddress,
  2129. data,
  2130. signature
  2131. ).data;
  2132. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2133. {
  2134. to: self.address,
  2135. ...txData,
  2136. data: encodedData,
  2137. },
  2138. self._web3Wrapper.getContractDefaults(),
  2139. );
  2140. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  2141. return gas;
  2142. },
  2143. getABIEncodedTransactionData(
  2144. salt: BigNumber,
  2145. signerAddress: string,
  2146. data: string,
  2147. signature: string,
  2148. ): string {
  2149. const self = this as any as ExchangeContract;
  2150. const inputAbi = self._lookupAbi('executeTransaction(uint256,address,bytes,bytes)').inputs;
  2151. [salt,
  2152. signerAddress,
  2153. data,
  2154. signature
  2155. ] = BaseContract._formatABIDataItemList(inputAbi, [salt,
  2156. signerAddress,
  2157. data,
  2158. signature
  2159. ], BaseContract._bigNumberToString);
  2160. const abiEncodedTransactionData = self._lookupEthersInterface('executeTransaction(uint256,address,bytes,bytes)').functions.executeTransaction(
  2161. salt,
  2162. signerAddress,
  2163. data,
  2164. signature
  2165. ).data;
  2166. return abiEncodedTransactionData;
  2167. },
  2168. async callAsync(
  2169. salt: BigNumber,
  2170. signerAddress: string,
  2171. data: string,
  2172. signature: string,
  2173. callData: Partial<CallData> = {},
  2174. defaultBlock?: BlockParam,
  2175. ): Promise<void
  2176. > {
  2177. const self = this as any as ExchangeContract;
  2178. const functionSignature = 'executeTransaction(uint256,address,bytes,bytes)';
  2179. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2180. [salt,
  2181. signerAddress,
  2182. data,
  2183. signature
  2184. ] = BaseContract._formatABIDataItemList(inputAbi, [salt,
  2185. signerAddress,
  2186. data,
  2187. signature
  2188. ], BaseContract._bigNumberToString.bind(self));
  2189. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.executeTransaction(
  2190. salt,
  2191. signerAddress,
  2192. data,
  2193. signature
  2194. ) as ethers.CallDescription;
  2195. const encodedData = ethersFunction.data;
  2196. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2197. {
  2198. to: self.address,
  2199. ...callData,
  2200. data: encodedData,
  2201. },
  2202. self._web3Wrapper.getContractDefaults(),
  2203. );
  2204. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2205. let resultArray = ethersFunction.parse(rawCallResult);
  2206. const outputAbi = (_.find(self.abi, {name: 'executeTransaction'}) as MethodAbi).outputs;
  2207. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2208. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2209. return resultArray;
  2210. },
  2211. };
  2212. public registerAssetProxy = {
  2213. async sendTransactionAsync(
  2214. assetProxy: string,
  2215. txData: Partial<TxData> = {},
  2216. ): Promise<string> {
  2217. const self = this as any as ExchangeContract;
  2218. const inputAbi = self._lookupAbi('registerAssetProxy(address)').inputs;
  2219. [assetProxy
  2220. ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxy
  2221. ], BaseContract._bigNumberToString.bind(self));
  2222. const encodedData = self._lookupEthersInterface('registerAssetProxy(address)').functions.registerAssetProxy(
  2223. assetProxy
  2224. ).data;
  2225. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2226. {
  2227. to: self.address,
  2228. ...txData,
  2229. data: encodedData,
  2230. },
  2231. self._web3Wrapper.getContractDefaults(),
  2232. self.registerAssetProxy.estimateGasAsync.bind(
  2233. self,
  2234. assetProxy
  2235. ),
  2236. );
  2237. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  2238. return txHash;
  2239. },
  2240. async estimateGasAsync(
  2241. assetProxy: string,
  2242. txData: Partial<TxData> = {},
  2243. ): Promise<number> {
  2244. const self = this as any as ExchangeContract;
  2245. const inputAbi = self._lookupAbi('registerAssetProxy(address)').inputs;
  2246. [assetProxy
  2247. ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxy
  2248. ], BaseContract._bigNumberToString);
  2249. const encodedData = self._lookupEthersInterface('registerAssetProxy(address)').functions.registerAssetProxy(
  2250. assetProxy
  2251. ).data;
  2252. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2253. {
  2254. to: self.address,
  2255. ...txData,
  2256. data: encodedData,
  2257. },
  2258. self._web3Wrapper.getContractDefaults(),
  2259. );
  2260. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  2261. return gas;
  2262. },
  2263. getABIEncodedTransactionData(
  2264. assetProxy: string,
  2265. ): string {
  2266. const self = this as any as ExchangeContract;
  2267. const inputAbi = self._lookupAbi('registerAssetProxy(address)').inputs;
  2268. [assetProxy
  2269. ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxy
  2270. ], BaseContract._bigNumberToString);
  2271. const abiEncodedTransactionData = self._lookupEthersInterface('registerAssetProxy(address)').functions.registerAssetProxy(
  2272. assetProxy
  2273. ).data;
  2274. return abiEncodedTransactionData;
  2275. },
  2276. async callAsync(
  2277. assetProxy: string,
  2278. callData: Partial<CallData> = {},
  2279. defaultBlock?: BlockParam,
  2280. ): Promise<void
  2281. > {
  2282. const self = this as any as ExchangeContract;
  2283. const functionSignature = 'registerAssetProxy(address)';
  2284. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2285. [assetProxy
  2286. ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxy
  2287. ], BaseContract._bigNumberToString.bind(self));
  2288. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.registerAssetProxy(
  2289. assetProxy
  2290. ) as ethers.CallDescription;
  2291. const encodedData = ethersFunction.data;
  2292. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2293. {
  2294. to: self.address,
  2295. ...callData,
  2296. data: encodedData,
  2297. },
  2298. self._web3Wrapper.getContractDefaults(),
  2299. );
  2300. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2301. let resultArray = ethersFunction.parse(rawCallResult);
  2302. const outputAbi = (_.find(self.abi, {name: 'registerAssetProxy'}) as MethodAbi).outputs;
  2303. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2304. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2305. return resultArray;
  2306. },
  2307. };
  2308. public getOrderInfo = {
  2309. async callAsync(
  2310. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  2311. callData: Partial<CallData> = {},
  2312. defaultBlock?: BlockParam,
  2313. ): Promise<{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber}
  2314. > {
  2315. const self = this as any as ExchangeContract;
  2316. const functionSignature = 'getOrderInfo({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})';
  2317. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2318. [order
  2319. ] = BaseContract._formatABIDataItemList(inputAbi, [order
  2320. ], BaseContract._bigNumberToString.bind(self));
  2321. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getOrderInfo(
  2322. order
  2323. ) as ethers.CallDescription;
  2324. const encodedData = ethersFunction.data;
  2325. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2326. {
  2327. to: self.address,
  2328. ...callData,
  2329. data: encodedData,
  2330. },
  2331. self._web3Wrapper.getContractDefaults(),
  2332. );
  2333. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2334. let resultArray = ethersFunction.parse(rawCallResult);
  2335. const outputAbi = (_.find(self.abi, {name: 'getOrderInfo'}) as MethodAbi).outputs;
  2336. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2337. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2338. return resultArray[0];
  2339. },
  2340. };
  2341. public cancelOrder = {
  2342. async sendTransactionAsync(
  2343. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  2344. txData: Partial<TxData> = {},
  2345. ): Promise<string> {
  2346. const self = this as any as ExchangeContract;
  2347. const inputAbi = self._lookupAbi('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').inputs;
  2348. [order
  2349. ] = BaseContract._formatABIDataItemList(inputAbi, [order
  2350. ], BaseContract._bigNumberToString.bind(self));
  2351. const encodedData = self._lookupEthersInterface('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').functions.cancelOrder(
  2352. order
  2353. ).data;
  2354. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2355. {
  2356. to: self.address,
  2357. ...txData,
  2358. data: encodedData,
  2359. },
  2360. self._web3Wrapper.getContractDefaults(),
  2361. self.cancelOrder.estimateGasAsync.bind(
  2362. self,
  2363. order
  2364. ),
  2365. );
  2366. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  2367. return txHash;
  2368. },
  2369. async estimateGasAsync(
  2370. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  2371. txData: Partial<TxData> = {},
  2372. ): Promise<number> {
  2373. const self = this as any as ExchangeContract;
  2374. const inputAbi = self._lookupAbi('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').inputs;
  2375. [order
  2376. ] = BaseContract._formatABIDataItemList(inputAbi, [order
  2377. ], BaseContract._bigNumberToString);
  2378. const encodedData = self._lookupEthersInterface('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').functions.cancelOrder(
  2379. order
  2380. ).data;
  2381. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2382. {
  2383. to: self.address,
  2384. ...txData,
  2385. data: encodedData,
  2386. },
  2387. self._web3Wrapper.getContractDefaults(),
  2388. );
  2389. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  2390. return gas;
  2391. },
  2392. getABIEncodedTransactionData(
  2393. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  2394. ): string {
  2395. const self = this as any as ExchangeContract;
  2396. const inputAbi = self._lookupAbi('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').inputs;
  2397. [order
  2398. ] = BaseContract._formatABIDataItemList(inputAbi, [order
  2399. ], BaseContract._bigNumberToString);
  2400. const abiEncodedTransactionData = self._lookupEthersInterface('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').functions.cancelOrder(
  2401. order
  2402. ).data;
  2403. return abiEncodedTransactionData;
  2404. },
  2405. async callAsync(
  2406. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  2407. callData: Partial<CallData> = {},
  2408. defaultBlock?: BlockParam,
  2409. ): Promise<void
  2410. > {
  2411. const self = this as any as ExchangeContract;
  2412. const functionSignature = 'cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})';
  2413. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2414. [order
  2415. ] = BaseContract._formatABIDataItemList(inputAbi, [order
  2416. ], BaseContract._bigNumberToString.bind(self));
  2417. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.cancelOrder(
  2418. order
  2419. ) as ethers.CallDescription;
  2420. const encodedData = ethersFunction.data;
  2421. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2422. {
  2423. to: self.address,
  2424. ...callData,
  2425. data: encodedData,
  2426. },
  2427. self._web3Wrapper.getContractDefaults(),
  2428. );
  2429. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2430. let resultArray = ethersFunction.parse(rawCallResult);
  2431. const outputAbi = (_.find(self.abi, {name: 'cancelOrder'}) as MethodAbi).outputs;
  2432. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2433. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2434. return resultArray;
  2435. },
  2436. };
  2437. public orderEpoch = {
  2438. async callAsync(
  2439. index_0: string,
  2440. index_1: string,
  2441. callData: Partial<CallData> = {},
  2442. defaultBlock?: BlockParam,
  2443. ): Promise<BigNumber
  2444. > {
  2445. const self = this as any as ExchangeContract;
  2446. const functionSignature = 'orderEpoch(address,address)';
  2447. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2448. [index_0,
  2449. index_1
  2450. ] = BaseContract._formatABIDataItemList(inputAbi, [index_0,
  2451. index_1
  2452. ], BaseContract._bigNumberToString.bind(self));
  2453. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.orderEpoch(
  2454. index_0,
  2455. index_1
  2456. ) as ethers.CallDescription;
  2457. const encodedData = ethersFunction.data;
  2458. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2459. {
  2460. to: self.address,
  2461. ...callData,
  2462. data: encodedData,
  2463. },
  2464. self._web3Wrapper.getContractDefaults(),
  2465. );
  2466. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2467. let resultArray = ethersFunction.parse(rawCallResult);
  2468. const outputAbi = (_.find(self.abi, {name: 'orderEpoch'}) as MethodAbi).outputs;
  2469. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2470. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2471. return resultArray[0];
  2472. },
  2473. };
  2474. public ZRX_ASSET_DATA = {
  2475. async callAsync(
  2476. callData: Partial<CallData> = {},
  2477. defaultBlock?: BlockParam,
  2478. ): Promise<string
  2479. > {
  2480. const self = this as any as ExchangeContract;
  2481. const functionSignature = 'ZRX_ASSET_DATA()';
  2482. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2483. [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
  2484. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.ZRX_ASSET_DATA(
  2485. ) as ethers.CallDescription;
  2486. const encodedData = ethersFunction.data;
  2487. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2488. {
  2489. to: self.address,
  2490. ...callData,
  2491. data: encodedData,
  2492. },
  2493. self._web3Wrapper.getContractDefaults(),
  2494. );
  2495. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2496. let resultArray = ethersFunction.parse(rawCallResult);
  2497. const outputAbi = (_.find(self.abi, {name: 'ZRX_ASSET_DATA'}) as MethodAbi).outputs;
  2498. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2499. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2500. return resultArray[0];
  2501. },
  2502. };
  2503. public marketSellOrdersNoThrow = {
  2504. async sendTransactionAsync(
  2505. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  2506. takerAssetFillAmount: BigNumber,
  2507. signatures: string[],
  2508. txData: Partial<TxData> = {},
  2509. ): Promise<string> {
  2510. const self = this as any as ExchangeContract;
  2511. const inputAbi = self._lookupAbi('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
  2512. [orders,
  2513. takerAssetFillAmount,
  2514. signatures
  2515. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  2516. takerAssetFillAmount,
  2517. signatures
  2518. ], BaseContract._bigNumberToString.bind(self));
  2519. const encodedData = self._lookupEthersInterface('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketSellOrdersNoThrow(
  2520. orders,
  2521. takerAssetFillAmount,
  2522. signatures
  2523. ).data;
  2524. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2525. {
  2526. to: self.address,
  2527. ...txData,
  2528. data: encodedData,
  2529. },
  2530. self._web3Wrapper.getContractDefaults(),
  2531. self.marketSellOrdersNoThrow.estimateGasAsync.bind(
  2532. self,
  2533. orders,
  2534. takerAssetFillAmount,
  2535. signatures
  2536. ),
  2537. );
  2538. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  2539. return txHash;
  2540. },
  2541. async estimateGasAsync(
  2542. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  2543. takerAssetFillAmount: BigNumber,
  2544. signatures: string[],
  2545. txData: Partial<TxData> = {},
  2546. ): Promise<number> {
  2547. const self = this as any as ExchangeContract;
  2548. const inputAbi = self._lookupAbi('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
  2549. [orders,
  2550. takerAssetFillAmount,
  2551. signatures
  2552. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  2553. takerAssetFillAmount,
  2554. signatures
  2555. ], BaseContract._bigNumberToString);
  2556. const encodedData = self._lookupEthersInterface('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketSellOrdersNoThrow(
  2557. orders,
  2558. takerAssetFillAmount,
  2559. signatures
  2560. ).data;
  2561. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2562. {
  2563. to: self.address,
  2564. ...txData,
  2565. data: encodedData,
  2566. },
  2567. self._web3Wrapper.getContractDefaults(),
  2568. );
  2569. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  2570. return gas;
  2571. },
  2572. getABIEncodedTransactionData(
  2573. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  2574. takerAssetFillAmount: BigNumber,
  2575. signatures: string[],
  2576. ): string {
  2577. const self = this as any as ExchangeContract;
  2578. const inputAbi = self._lookupAbi('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
  2579. [orders,
  2580. takerAssetFillAmount,
  2581. signatures
  2582. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  2583. takerAssetFillAmount,
  2584. signatures
  2585. ], BaseContract._bigNumberToString);
  2586. const abiEncodedTransactionData = self._lookupEthersInterface('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketSellOrdersNoThrow(
  2587. orders,
  2588. takerAssetFillAmount,
  2589. signatures
  2590. ).data;
  2591. return abiEncodedTransactionData;
  2592. },
  2593. async callAsync(
  2594. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  2595. takerAssetFillAmount: BigNumber,
  2596. signatures: string[],
  2597. callData: Partial<CallData> = {},
  2598. defaultBlock?: BlockParam,
  2599. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  2600. > {
  2601. const self = this as any as ExchangeContract;
  2602. const functionSignature = 'marketSellOrdersNoThrow(tuple[],uint256,bytes[])';
  2603. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2604. [orders,
  2605. takerAssetFillAmount,
  2606. signatures
  2607. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  2608. takerAssetFillAmount,
  2609. signatures
  2610. ], BaseContract._bigNumberToString.bind(self));
  2611. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketSellOrdersNoThrow(
  2612. orders,
  2613. takerAssetFillAmount,
  2614. signatures
  2615. ) as ethers.CallDescription;
  2616. const encodedData = ethersFunction.data;
  2617. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2618. {
  2619. to: self.address,
  2620. ...callData,
  2621. data: encodedData,
  2622. },
  2623. self._web3Wrapper.getContractDefaults(),
  2624. );
  2625. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2626. let resultArray = ethersFunction.parse(rawCallResult);
  2627. const outputAbi = (_.find(self.abi, {name: 'marketSellOrdersNoThrow'}) as MethodAbi).outputs;
  2628. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2629. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2630. return resultArray[0];
  2631. },
  2632. };
  2633. public abiEncodeFillOrder = {
  2634. async callAsync(
  2635. order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
  2636. takerAssetFillAmount: BigNumber,
  2637. signature: string,
  2638. callData: Partial<CallData> = {},
  2639. defaultBlock?: BlockParam,
  2640. ): Promise<string
  2641. > {
  2642. const self = this as any as ExchangeContract;
  2643. const functionSignature = 'abiEncodeFillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)';
  2644. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2645. [order,
  2646. takerAssetFillAmount,
  2647. signature
  2648. ] = BaseContract._formatABIDataItemList(inputAbi, [order,
  2649. takerAssetFillAmount,
  2650. signature
  2651. ], BaseContract._bigNumberToString.bind(self));
  2652. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.abiEncodeFillOrder(
  2653. order,
  2654. takerAssetFillAmount,
  2655. signature
  2656. ) as ethers.CallDescription;
  2657. const encodedData = ethersFunction.data;
  2658. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2659. {
  2660. to: self.address,
  2661. ...callData,
  2662. data: encodedData,
  2663. },
  2664. self._web3Wrapper.getContractDefaults(),
  2665. );
  2666. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2667. let resultArray = ethersFunction.parse(rawCallResult);
  2668. const outputAbi = (_.find(self.abi, {name: 'abiEncodeFillOrder'}) as MethodAbi).outputs;
  2669. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2670. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2671. return resultArray[0];
  2672. },
  2673. };
  2674. public EIP712_DOMAIN_HASH = {
  2675. async callAsync(
  2676. callData: Partial<CallData> = {},
  2677. defaultBlock?: BlockParam,
  2678. ): Promise<string
  2679. > {
  2680. const self = this as any as ExchangeContract;
  2681. const functionSignature = 'EIP712_DOMAIN_HASH()';
  2682. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2683. [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
  2684. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.EIP712_DOMAIN_HASH(
  2685. ) as ethers.CallDescription;
  2686. const encodedData = ethersFunction.data;
  2687. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2688. {
  2689. to: self.address,
  2690. ...callData,
  2691. data: encodedData,
  2692. },
  2693. self._web3Wrapper.getContractDefaults(),
  2694. );
  2695. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2696. let resultArray = ethersFunction.parse(rawCallResult);
  2697. const outputAbi = (_.find(self.abi, {name: 'EIP712_DOMAIN_HASH'}) as MethodAbi).outputs;
  2698. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2699. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2700. return resultArray[0];
  2701. },
  2702. };
  2703. public marketBuyOrders = {
  2704. async sendTransactionAsync(
  2705. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  2706. makerAssetFillAmount: BigNumber,
  2707. signatures: string[],
  2708. txData: Partial<TxData> = {},
  2709. ): Promise<string> {
  2710. const self = this as any as ExchangeContract;
  2711. const inputAbi = self._lookupAbi('marketBuyOrders(tuple[],uint256,bytes[])').inputs;
  2712. [orders,
  2713. makerAssetFillAmount,
  2714. signatures
  2715. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  2716. makerAssetFillAmount,
  2717. signatures
  2718. ], BaseContract._bigNumberToString.bind(self));
  2719. const encodedData = self._lookupEthersInterface('marketBuyOrders(tuple[],uint256,bytes[])').functions.marketBuyOrders(
  2720. orders,
  2721. makerAssetFillAmount,
  2722. signatures
  2723. ).data;
  2724. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2725. {
  2726. to: self.address,
  2727. ...txData,
  2728. data: encodedData,
  2729. },
  2730. self._web3Wrapper.getContractDefaults(),
  2731. self.marketBuyOrders.estimateGasAsync.bind(
  2732. self,
  2733. orders,
  2734. makerAssetFillAmount,
  2735. signatures
  2736. ),
  2737. );
  2738. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  2739. return txHash;
  2740. },
  2741. async estimateGasAsync(
  2742. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  2743. makerAssetFillAmount: BigNumber,
  2744. signatures: string[],
  2745. txData: Partial<TxData> = {},
  2746. ): Promise<number> {
  2747. const self = this as any as ExchangeContract;
  2748. const inputAbi = self._lookupAbi('marketBuyOrders(tuple[],uint256,bytes[])').inputs;
  2749. [orders,
  2750. makerAssetFillAmount,
  2751. signatures
  2752. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  2753. makerAssetFillAmount,
  2754. signatures
  2755. ], BaseContract._bigNumberToString);
  2756. const encodedData = self._lookupEthersInterface('marketBuyOrders(tuple[],uint256,bytes[])').functions.marketBuyOrders(
  2757. orders,
  2758. makerAssetFillAmount,
  2759. signatures
  2760. ).data;
  2761. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2762. {
  2763. to: self.address,
  2764. ...txData,
  2765. data: encodedData,
  2766. },
  2767. self._web3Wrapper.getContractDefaults(),
  2768. );
  2769. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  2770. return gas;
  2771. },
  2772. getABIEncodedTransactionData(
  2773. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  2774. makerAssetFillAmount: BigNumber,
  2775. signatures: string[],
  2776. ): string {
  2777. const self = this as any as ExchangeContract;
  2778. const inputAbi = self._lookupAbi('marketBuyOrders(tuple[],uint256,bytes[])').inputs;
  2779. [orders,
  2780. makerAssetFillAmount,
  2781. signatures
  2782. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  2783. makerAssetFillAmount,
  2784. signatures
  2785. ], BaseContract._bigNumberToString);
  2786. const abiEncodedTransactionData = self._lookupEthersInterface('marketBuyOrders(tuple[],uint256,bytes[])').functions.marketBuyOrders(
  2787. orders,
  2788. makerAssetFillAmount,
  2789. signatures
  2790. ).data;
  2791. return abiEncodedTransactionData;
  2792. },
  2793. async callAsync(
  2794. orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
  2795. makerAssetFillAmount: BigNumber,
  2796. signatures: string[],
  2797. callData: Partial<CallData> = {},
  2798. defaultBlock?: BlockParam,
  2799. ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
  2800. > {
  2801. const self = this as any as ExchangeContract;
  2802. const functionSignature = 'marketBuyOrders(tuple[],uint256,bytes[])';
  2803. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2804. [orders,
  2805. makerAssetFillAmount,
  2806. signatures
  2807. ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
  2808. makerAssetFillAmount,
  2809. signatures
  2810. ], BaseContract._bigNumberToString.bind(self));
  2811. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketBuyOrders(
  2812. orders,
  2813. makerAssetFillAmount,
  2814. signatures
  2815. ) as ethers.CallDescription;
  2816. const encodedData = ethersFunction.data;
  2817. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2818. {
  2819. to: self.address,
  2820. ...callData,
  2821. data: encodedData,
  2822. },
  2823. self._web3Wrapper.getContractDefaults(),
  2824. );
  2825. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2826. let resultArray = ethersFunction.parse(rawCallResult);
  2827. const outputAbi = (_.find(self.abi, {name: 'marketBuyOrders'}) as MethodAbi).outputs;
  2828. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2829. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2830. return resultArray[0];
  2831. },
  2832. };
  2833. public currentContextAddress = {
  2834. async callAsync(
  2835. callData: Partial<CallData> = {},
  2836. defaultBlock?: BlockParam,
  2837. ): Promise<string
  2838. > {
  2839. const self = this as any as ExchangeContract;
  2840. const functionSignature = 'currentContextAddress()';
  2841. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2842. [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
  2843. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.currentContextAddress(
  2844. ) as ethers.CallDescription;
  2845. const encodedData = ethersFunction.data;
  2846. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2847. {
  2848. to: self.address,
  2849. ...callData,
  2850. data: encodedData,
  2851. },
  2852. self._web3Wrapper.getContractDefaults(),
  2853. );
  2854. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2855. let resultArray = ethersFunction.parse(rawCallResult);
  2856. const outputAbi = (_.find(self.abi, {name: 'currentContextAddress'}) as MethodAbi).outputs;
  2857. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2858. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2859. return resultArray[0];
  2860. },
  2861. };
  2862. public transferOwnership = {
  2863. async sendTransactionAsync(
  2864. newOwner: string,
  2865. txData: Partial<TxData> = {},
  2866. ): Promise<string> {
  2867. const self = this as any as ExchangeContract;
  2868. const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
  2869. [newOwner
  2870. ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
  2871. ], BaseContract._bigNumberToString.bind(self));
  2872. const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership(
  2873. newOwner
  2874. ).data;
  2875. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2876. {
  2877. to: self.address,
  2878. ...txData,
  2879. data: encodedData,
  2880. },
  2881. self._web3Wrapper.getContractDefaults(),
  2882. self.transferOwnership.estimateGasAsync.bind(
  2883. self,
  2884. newOwner
  2885. ),
  2886. );
  2887. const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  2888. return txHash;
  2889. },
  2890. async estimateGasAsync(
  2891. newOwner: string,
  2892. txData: Partial<TxData> = {},
  2893. ): Promise<number> {
  2894. const self = this as any as ExchangeContract;
  2895. const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
  2896. [newOwner
  2897. ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
  2898. ], BaseContract._bigNumberToString);
  2899. const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership(
  2900. newOwner
  2901. ).data;
  2902. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2903. {
  2904. to: self.address,
  2905. ...txData,
  2906. data: encodedData,
  2907. },
  2908. self._web3Wrapper.getContractDefaults(),
  2909. );
  2910. const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
  2911. return gas;
  2912. },
  2913. getABIEncodedTransactionData(
  2914. newOwner: string,
  2915. ): string {
  2916. const self = this as any as ExchangeContract;
  2917. const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
  2918. [newOwner
  2919. ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
  2920. ], BaseContract._bigNumberToString);
  2921. const abiEncodedTransactionData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership(
  2922. newOwner
  2923. ).data;
  2924. return abiEncodedTransactionData;
  2925. },
  2926. async callAsync(
  2927. newOwner: string,
  2928. callData: Partial<CallData> = {},
  2929. defaultBlock?: BlockParam,
  2930. ): Promise<void
  2931. > {
  2932. const self = this as any as ExchangeContract;
  2933. const functionSignature = 'transferOwnership(address)';
  2934. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2935. [newOwner
  2936. ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
  2937. ], BaseContract._bigNumberToString.bind(self));
  2938. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferOwnership(
  2939. newOwner
  2940. ) as ethers.CallDescription;
  2941. const encodedData = ethersFunction.data;
  2942. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2943. {
  2944. to: self.address,
  2945. ...callData,
  2946. data: encodedData,
  2947. },
  2948. self._web3Wrapper.getContractDefaults(),
  2949. );
  2950. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2951. let resultArray = ethersFunction.parse(rawCallResult);
  2952. const outputAbi = (_.find(self.abi, {name: 'transferOwnership'}) as MethodAbi).outputs;
  2953. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2954. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2955. return resultArray;
  2956. },
  2957. };
  2958. public VERSION = {
  2959. async callAsync(
  2960. callData: Partial<CallData> = {},
  2961. defaultBlock?: BlockParam,
  2962. ): Promise<string
  2963. > {
  2964. const self = this as any as ExchangeContract;
  2965. const functionSignature = 'VERSION()';
  2966. const inputAbi = self._lookupAbi(functionSignature).inputs;
  2967. [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
  2968. const ethersFunction = self._lookupEthersInterface(functionSignature).functions.VERSION(
  2969. ) as ethers.CallDescription;
  2970. const encodedData = ethersFunction.data;
  2971. const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  2972. {
  2973. to: self.address,
  2974. ...callData,
  2975. data: encodedData,
  2976. },
  2977. self._web3Wrapper.getContractDefaults(),
  2978. );
  2979. const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
  2980. let resultArray = ethersFunction.parse(rawCallResult);
  2981. const outputAbi = (_.find(self.abi, {name: 'VERSION'}) as MethodAbi).outputs;
  2982. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
  2983. resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
  2984. return resultArray[0];
  2985. },
  2986. };
  2987. public static async deployFrom0xArtifactAsync(
  2988. artifact: ContractArtifact,
  2989. provider: Provider,
  2990. txDefaults: Partial<TxData>,
  2991. _zrxAssetData: string,
  2992. ): Promise<ExchangeContract> {
  2993. if (_.isUndefined(artifact.compilerOutput)) {
  2994. throw new Error('Compiler output not found in the artifact file');
  2995. }
  2996. const bytecode = artifact.compilerOutput.evm.bytecode.object;
  2997. const abi = artifact.compilerOutput.abi;
  2998. return ExchangeContract.deployAsync(bytecode, abi, provider, txDefaults, _zrxAssetData
  2999. );
  3000. }
  3001. public static async deployAsync(
  3002. bytecode: string,
  3003. abi: ContractAbi,
  3004. provider: Provider,
  3005. txDefaults: Partial<TxData>,
  3006. _zrxAssetData: string,
  3007. ): Promise<ExchangeContract> {
  3008. const constructorAbi = BaseContract._lookupConstructorAbi(abi);
  3009. [_zrxAssetData
  3010. ] = BaseContract._formatABIDataItemList(
  3011. constructorAbi.inputs,
  3012. [_zrxAssetData
  3013. ],
  3014. BaseContract._bigNumberToString,
  3015. );
  3016. const txData = ethers.Contract.getDeployTransaction(bytecode, abi, _zrxAssetData
  3017. );
  3018. const web3Wrapper = new Web3Wrapper(provider);
  3019. const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
  3020. txData,
  3021. txDefaults,
  3022. web3Wrapper.estimateGasAsync.bind(web3Wrapper),
  3023. );
  3024. const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
  3025. logUtils.log(`transactionHash: ${txHash}`);
  3026. const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
  3027. logUtils.log(`Exchange successfully deployed at ${txReceipt.contractAddress}`);
  3028. const contractInstance = new ExchangeContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
  3029. contractInstance.constructorArgs = [_zrxAssetData
  3030. ];
  3031. return contractInstance;
  3032. }
  3033. constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
  3034. super('Exchange', abi, address, provider, txDefaults);
  3035. classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
  3036. }
  3037. } // tslint:disable:max-file-line-count
Add Comment
Please, Sign In to add comment