EP Native Orders (#27)
* `@0x/contracts-zero-ex`: add limit orders feature `@0x/contracts-utils`: add `uint128` functions to `LibSafeMathV06` * `@0x/contract-addresses`: Update ganache snapshot addresses * `@0x/contracts-zero-ex`: Mask EIP712 struct hash values. * `@0x/contracts-zero-ex`: Add more limit order tests * `@0x/contracts-zero-ex`: Fix typos * `@0x/contracts-zero-ex`: Compute fee collector address after protocol fee zero check. * `@0x/contracts-zero-ex`: Remove WETH payment logic from fee collector fixin * `@0x/contracts-zero-ex`: Convert all ETH to WETH in `FeeCollector`. * `@0x/contracts-zero-ex`: Address review feedback * `@0x/contracts-zero-ex`: Export more utils * `@0x/contracts-zero-ex`: Rename `LimitOrdersFeatures`, `LibLimitOrders`, etc. into `*NativeOrders*`. `@0x/contracts-zero-ex`: Emit `protocolFeePaid` in native order fill events. `@0x/contracts-zero-ex`: Refactor to get around stack limits. `@0x/contracts-zero-ex`: Use different storage mappings for RFQ and limit order pair cancellations. * `@0x/contracts-zero-ex`: Add `getProtocolFeeMultiplier()` and `transferProtocolFeesForPools()` to `NativeOrdersFeature`. * `@0x/contracts-zero-ex`: Fix broken tests * update orders docs * `@0x/contracts-zero-ex`: Add more tests to `NativeOrdersFeature` * rebuild after rebase * `@0x/contract-addresses`: Fix changelog booboo * `@0x/contracts-zero-ex`: Add method selectors output to generated artifacts * `@0x/contracts-zero-ex`: Add maker address to order cancel events. `@0x/contracts-zreo-ex`: Remove `UpTo` suffix from order pair cancellation functions. `@0x/contracts-zreo-ex`: Address misc review comments. * `@0x/contracts-zero-ex`: More SafeMath in native orders * update orders docs Co-authored-by: Lawrence Forman <me@merklejerk.com>
This commit is contained in:
43
contracts/zero-ex/test/utils/orders.ts
Normal file
43
contracts/zero-ex/test/utils/orders.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { getRandomInteger, randomAddress } from '@0x/contracts-test-utils';
|
||||
import { BigNumber, hexUtils } from '@0x/utils';
|
||||
|
||||
import { LimitOrder, LimitOrderFields, RfqOrder, RfqOrderFields } from '../../src/orders';
|
||||
|
||||
/**
|
||||
* Generate a random limit order.
|
||||
*/
|
||||
export function getRandomLimitOrder(fields: Partial<LimitOrderFields> = {}): LimitOrder {
|
||||
return new LimitOrder({
|
||||
makerToken: randomAddress(),
|
||||
takerToken: randomAddress(),
|
||||
makerAmount: getRandomInteger('1e18', '100e18'),
|
||||
takerAmount: getRandomInteger('1e6', '100e6'),
|
||||
takerTokenFeeAmount: getRandomInteger('0.01e18', '1e18'),
|
||||
maker: randomAddress(),
|
||||
taker: randomAddress(),
|
||||
sender: randomAddress(),
|
||||
feeRecipient: randomAddress(),
|
||||
pool: hexUtils.random(),
|
||||
expiry: new BigNumber(Math.floor(Date.now() / 1000 + 60)),
|
||||
salt: new BigNumber(hexUtils.random()),
|
||||
...fields,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a random RFQ order.
|
||||
*/
|
||||
export function getRandomRfqOrder(fields: Partial<RfqOrderFields> = {}): RfqOrder {
|
||||
return new RfqOrder({
|
||||
makerToken: randomAddress(),
|
||||
takerToken: randomAddress(),
|
||||
makerAmount: getRandomInteger('1e18', '100e18'),
|
||||
takerAmount: getRandomInteger('1e6', '100e6'),
|
||||
maker: randomAddress(),
|
||||
txOrigin: randomAddress(),
|
||||
pool: hexUtils.random(),
|
||||
expiry: new BigNumber(Math.floor(Date.now() / 1000 + 60)),
|
||||
salt: new BigNumber(hexUtils.random()),
|
||||
...fields,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user