feat: opt-in positive slippage fee for integrators (#101)

* feat: Positive Slippage Fee

* fix: rename ethToTakerAssetRate to takerAssetPriceForOneEth

* fix: rename takerAssetPriceForOneEth to takerAssetsPerEth

* fix: export AffiliateFeeType

* rebased off development

* Add a gasOverhead for non-deterministic operations

* CHANGELOGs

* rename outputTokens to outputAmount

* Confirm transformer addresses on Mainnet and Ropsten

* fix import

Co-authored-by: Jacob Evans <jacob@dekz.net>
This commit is contained in:
Romain Butteaud
2021-02-24 03:51:58 +01:00
committed by GitHub
parent 5b8bbc34e8
commit f98609686d
35 changed files with 528 additions and 119 deletions

View File

@@ -242,7 +242,7 @@ export function decodePayTakerTransformerData(encoded: string): PayTakerTransfor
}
/**
* ABI encoder for `PayTakerTransformer.TransformData`
* ABI encoder for `affiliateFeetransformer.TransformData`
*/
export const affiliateFeeTransformerDataEncoder = AbiEncoder.create({
name: 'data',
@@ -317,3 +317,39 @@ export function getTransformerAddress(deployer: string, nonce: number): string {
ethjs.rlphash([deployer, nonce] as any).slice(12),
);
}
/**
* ABI encoder for `PositiveSlippageFeeTransformer.TransformData`
*/
export const positiveSlippageFeeTransformerDataEncoder = AbiEncoder.create({
name: 'data',
type: 'tuple',
components: [
{ name: 'token', type: 'address' },
{ name: 'bestCaseAmount', type: 'uint256' },
{ name: 'recipient', type: 'address' },
],
});
/**
* `PositiveSlippageFeeTransformer.TransformData`
*/
export interface PositiveSlippageFeeTransformerData {
token: string;
bestCaseAmount: BigNumber;
recipient: string;
}
/**
* ABI-encode a `PositiveSlippageFeeTransformer.TransformData` type.
*/
export function encodePositiveSlippageFeeTransformerData(data: PositiveSlippageFeeTransformerData): string {
return positiveSlippageFeeTransformerDataEncoder.encode(data);
}
/**
* ABI-decode a `PositiveSlippageFeeTransformer.TransformData` type.
*/
export function decodePositiveSlippageFeeTransformerData(encoded: string): PositiveSlippageFeeTransformerData {
return positiveSlippageFeeTransformerDataEncoder.decode(encoded);
}