@unilogin/sdk
Version:
SDK is a JS library, that communicates with relayer. SDK allows managing contract, by creating basic contract-calling messages.
41 lines (37 loc) • 1.52 kB
text/typescript
import {expect} from 'chai';
import {utils, Contract} from 'ethers';
import {createMockProvider, getWallets} from 'ethereum-waffle';
import {TEST_CONTRACT_ADDRESS, DEFAULT_GAS_PRICE, ETHER_NATIVE_TOKEN, KeyPair} from '@unilogin/commons';
import {BlockchainService} from '@unilogin/contracts';
import {setupWalletContract} from '@unilogin/contracts/testutils';
import {MessageConverter} from '../../../src/core/services/MessageConverter';
describe('MessageConverter', () => {
let messageConverter: MessageConverter;
let proxyWallet: Contract;
let keyPair: KeyPair;
before(async () => {
const provider = createMockProvider();
const blockchainService = new BlockchainService(provider);
messageConverter = new MessageConverter(blockchainService);
const [wallet] = getWallets(provider);
({proxyWallet, keyPair} = await setupWalletContract(wallet));
});
it('Converts message to signed message', async () => {
const message = {
from: proxyWallet.address,
to: TEST_CONTRACT_ADDRESS,
value: utils.parseEther('1'),
gasPrice: DEFAULT_GAS_PRICE,
gasToken: ETHER_NATIVE_TOKEN.address,
data: '0xbeef',
gasLimit: utils.bigNumberify(100000),
nonce: 0,
};
const actualMessage = await messageConverter.messageToSignedMessage(message, keyPair.privateKey);
const expectedMessage = {
baseGas: utils.bigNumberify(58976),
safeTxGas: utils.bigNumberify(41024),
};
expect(actualMessage).to.deep.include(expectedMessage);
});
});