aboutsummaryrefslogtreecommitdiffstats
path: root/packages/order-utils/test/signature_utils_test.ts
diff options
context:
space:
mode:
authorJacob Evans <jacob@dekz.net>2018-10-05 09:45:53 +0800
committerJacob Evans <jacob@dekz.net>2018-10-05 15:12:17 +0800
commit75d274f330dc0c18577e764ca77ffb36d5a3f27e (patch)
tree9a70714a89783dfe58ffa002d39f3967de957bdc /packages/order-utils/test/signature_utils_test.ts
parent6e462b7dba61611a5347c9aa181d4ae69294d7af (diff)
downloaddexon-sol-tools-75d274f330dc0c18577e764ca77ffb36d5a3f27e.tar
dexon-sol-tools-75d274f330dc0c18577e764ca77ffb36d5a3f27e.tar.gz
dexon-sol-tools-75d274f330dc0c18577e764ca77ffb36d5a3f27e.tar.bz2
dexon-sol-tools-75d274f330dc0c18577e764ca77ffb36d5a3f27e.tar.lz
dexon-sol-tools-75d274f330dc0c18577e764ca77ffb36d5a3f27e.tar.xz
dexon-sol-tools-75d274f330dc0c18577e764ca77ffb36d5a3f27e.tar.zst
dexon-sol-tools-75d274f330dc0c18577e764ca77ffb36d5a3f27e.zip
Return SignedOrder from signing utils.
Create a helper back in EIP712Utils for code cleanup. Moved constants in order-utils into the constants object
Diffstat (limited to 'packages/order-utils/test/signature_utils_test.ts')
-rw-r--r--packages/order-utils/test/signature_utils_test.ts51
1 files changed, 48 insertions, 3 deletions
diff --git a/packages/order-utils/test/signature_utils_test.ts b/packages/order-utils/test/signature_utils_test.ts
index 03354cd65..7f6987f6a 100644
--- a/packages/order-utils/test/signature_utils_test.ts
+++ b/packages/order-utils/test/signature_utils_test.ts
@@ -152,14 +152,14 @@ describe('Signature utils', () => {
ethUtil.toBuffer(SignatureType.EIP712),
]);
const signatureHex = `0x${signatureBuffer.toString('hex')}`;
- const eip712Signature = await signatureUtils.ecSignOrderAsync(provider, order, makerAddress);
+ const signedOrder = await signatureUtils.ecSignOrderAsync(provider, order, makerAddress);
const isValidSignature = await signatureUtils.isValidSignatureAsync(
provider,
orderHashHex,
- eip712Signature,
+ signedOrder.signature,
makerAddress,
);
- expect(signatureHex).to.eq(eip712Signature);
+ expect(signatureHex).to.eq(signedOrder.signature);
expect(isValidSignature).to.eq(true);
});
});
@@ -238,6 +238,51 @@ describe('Signature utils', () => {
expect(isValidSignature).to.be.true();
});
});
+ describe('#ecSignTypedDataOrderAsync', () => {
+ let makerAddress: string;
+ const fakeExchangeContractAddress = '0x1dc4c1cefef38a777b15aa20260a54e584b16c48';
+ let order: Order;
+ before(async () => {
+ const availableAddreses = await web3Wrapper.getAvailableAddressesAsync();
+ makerAddress = availableAddreses[0];
+ order = {
+ makerAddress,
+ takerAddress: constants.NULL_ADDRESS,
+ senderAddress: constants.NULL_ADDRESS,
+ feeRecipientAddress: constants.NULL_ADDRESS,
+ makerAssetData: constants.NULL_ADDRESS,
+ takerAssetData: constants.NULL_ADDRESS,
+ exchangeAddress: fakeExchangeContractAddress,
+ salt: new BigNumber(0),
+ makerFee: new BigNumber(0),
+ takerFee: new BigNumber(0),
+ makerAssetAmount: new BigNumber(0),
+ takerAssetAmount: new BigNumber(0),
+ expirationTimeSeconds: new BigNumber(0),
+ };
+ });
+ it('should return the correct Signature for signatureHex concatenated as R + S + V', async () => {
+ const expectedSignature =
+ '0x1cd472c439833774b55d248c31b6585f21aea1b9363ebb4ec58549e46b62eb5a6f696f5781f62de008ee7f77650ef940d99c97ec1dee67b3f5cea1bbfdfeb2eba602';
+ const fakeProvider = {
+ async sendAsync(payload: JSONRPCRequestPayload, callback: JSONRPCErrorCallback): Promise<void> {
+ if (payload.method === 'eth_signTypedData') {
+ const [address, typedData] = payload.params;
+ const signature = await web3Wrapper.signTypedDataAsync(address, typedData);
+ callback(null, {
+ id: 42,
+ jsonrpc: '2.0',
+ result: signature,
+ });
+ } else {
+ callback(null, { id: 42, jsonrpc: '2.0', result: [makerAddress] });
+ }
+ },
+ };
+ const signedOrder = await signatureUtils.ecSignTypedDataOrderAsync(fakeProvider, order, makerAddress);
+ expect(signedOrder.signature).to.equal(expectedSignature);
+ });
+ });
describe('#convertECSignatureToSignatureHex', () => {
const ecSignature: ECSignature = {
v: 27,