diff options
author | Fabio Berger <me@fabioberger.com> | 2018-06-01 01:45:34 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-06-01 01:45:34 +0800 |
commit | 94ee82e076d85b64063b5c71be13b1ebe0bb8c10 (patch) | |
tree | 53524249da4c5b907e1489d8677a7cc1edf069a2 /packages/contracts/src/utils/exchange_wrapper.ts | |
parent | 0beab9eec45508fb6163bd6c0fd3970f0b61a91d (diff) | |
parent | 5b31d0aa3635ea524fb42d73cd6c713887dfef6a (diff) | |
download | dexon-sol-tools-94ee82e076d85b64063b5c71be13b1ebe0bb8c10.tar.gz dexon-sol-tools-94ee82e076d85b64063b5c71be13b1ebe0bb8c10.tar.zst dexon-sol-tools-94ee82e076d85b64063b5c71be13b1ebe0bb8c10.zip |
Merge branch 'v2-prototype' into refactor/order-utils/for-v2
* v2-prototype: (45 commits)
Check length before accessing indices, add awaitTransactionSuccess where needed, and rename function
Add back before/after snapshots for each test
Rename Signer to Wallet, rename GAS_ESTIMATE to GAS_LIMIT
Make preSigned and allowedValidators mappings public
Change names of signature types
Fix formatting and tests
Make AssetProxyId last byte of assetData
Add signer to txHash, allow approveValidator to be used with executeTransaction
Update Whitelist
Fix Exchange interface
Increase block gas limit
Use last byte of signature as signature type
Remove TxOrigin signature type, modify whitelist to use Validator signature type
Update Whitelist contract with comments, also require maker to be whitelisted
Fix build
Add example whitelist contract and minimum tests
Add sample whitelist contract
Add TxOrigin signature type and rearrange order of types
Add approveValidator function
Add Validator signature type
...
# Conflicts:
# packages/contracts/src/contracts/current/protocol/Exchange/MixinSignatureValidator.sol
# packages/contracts/src/utils/types.ts
# packages/contracts/test/exchange/transactions.ts
# packages/order-utils/src/asset_proxy_utils.ts
Diffstat (limited to 'packages/contracts/src/utils/exchange_wrapper.ts')
-rw-r--r-- | packages/contracts/src/utils/exchange_wrapper.ts | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/packages/contracts/src/utils/exchange_wrapper.ts b/packages/contracts/src/utils/exchange_wrapper.ts index f7bd207a4..8f5915d97 100644 --- a/packages/contracts/src/utils/exchange_wrapper.ts +++ b/packages/contracts/src/utils/exchange_wrapper.ts @@ -7,16 +7,18 @@ import { ExchangeContract } from '../contract_wrappers/generated/exchange'; import { constants } from './constants'; import { formatters } from './formatters'; -import { logDecoder } from './log_decoder'; +import { LogDecoder } from './log_decoder'; import { orderUtils } from './order_utils'; import { OrderInfo, SignedTransaction } from './types'; export class ExchangeWrapper { private _exchange: ExchangeContract; private _web3Wrapper: Web3Wrapper; + private _logDecoder: LogDecoder; constructor(exchangeContract: ExchangeContract, provider: Provider) { this._exchange = exchangeContract; this._web3Wrapper = new Web3Wrapper(provider); + this._logDecoder = new LogDecoder(this._web3Wrapper, this._exchange.address); } public async fillOrderAsync( signedOrder: SignedOrder, @@ -30,13 +32,13 @@ export class ExchangeWrapper { params.signature, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async cancelOrderAsync(signedOrder: SignedOrder, from: string): Promise<TransactionReceiptWithDecodedLogs> { const params = orderUtils.createCancel(signedOrder); const txHash = await this._exchange.cancelOrder.sendTransactionAsync(params.order, { from }); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async fillOrKillOrderAsync( @@ -51,7 +53,7 @@ export class ExchangeWrapper { params.signature, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async fillOrderNoThrowAsync( @@ -66,7 +68,7 @@ export class ExchangeWrapper { params.signature, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async batchFillOrdersAsync( @@ -81,7 +83,7 @@ export class ExchangeWrapper { params.signatures, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async batchFillOrKillOrdersAsync( @@ -96,7 +98,7 @@ export class ExchangeWrapper { params.signatures, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async batchFillOrdersNoThrowAsync( @@ -111,7 +113,7 @@ export class ExchangeWrapper { params.signatures, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async marketSellOrdersAsync( @@ -126,7 +128,7 @@ export class ExchangeWrapper { params.signatures, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async marketSellOrdersNoThrowAsync( @@ -141,7 +143,7 @@ export class ExchangeWrapper { params.signatures, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async marketBuyOrdersAsync( @@ -156,7 +158,7 @@ export class ExchangeWrapper { params.signatures, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async marketBuyOrdersNoThrowAsync( @@ -171,7 +173,7 @@ export class ExchangeWrapper { params.signatures, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async batchCancelOrdersAsync( @@ -180,12 +182,12 @@ export class ExchangeWrapper { ): Promise<TransactionReceiptWithDecodedLogs> { const params = formatters.createBatchCancel(orders); const txHash = await this._exchange.batchCancelOrders.sendTransactionAsync(params.orders, { from }); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async cancelOrdersUpToAsync(salt: BigNumber, from: string): Promise<TransactionReceiptWithDecodedLogs> { const txHash = await this._exchange.cancelOrdersUpTo.sendTransactionAsync(salt, { from }); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async registerAssetProxyAsync( @@ -203,7 +205,7 @@ export class ExchangeWrapper { oldAssetProxyAddress, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async executeTransactionAsync( @@ -217,7 +219,7 @@ export class ExchangeWrapper { signedTx.signature, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } public async getTakerAssetFilledAmountAsync(orderHashHex: string): Promise<BigNumber> { @@ -241,13 +243,7 @@ export class ExchangeWrapper { params.rightSignature, { from }, ); - const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash); - return tx; - } - private async _getTxWithDecodedExchangeLogsAsync(txHash: string): Promise<TransactionReceiptWithDecodedLogs> { - const tx = await this._web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS); - tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address); - tx.logs = _.map(tx.logs, log => logDecoder.decodeLogOrThrow(log)); + const tx = await this._logDecoder.getTxWithDecodedLogsAsync(txHash); return tx; } } |