builtins.spec.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // SPDX-License-Identifier: Apache-2.0
  2. import expect from 'expect';
  3. import { createConnection, deploy, transaction, aliceKeypair, query, } from './index';
  4. import { ContractPromise } from '@polkadot/api-contract';
  5. describe('Deploy builtin contract and test', () => {
  6. it('builtins', async function () {
  7. this.timeout(50000);
  8. let conn = await createConnection();
  9. const alice = aliceKeypair();
  10. let deployed_contract = await deploy(conn, alice, 'builtins.contract', BigInt(0));
  11. let contract = new ContractPromise(conn, deployed_contract.abi, deployed_contract.address);
  12. // call the constructor
  13. let ripemd160_res = await query(conn, alice, contract, "hashRipemd160", ['0x' + Buffer.from('Call me Ishmael.', 'utf8').toString('hex')]);
  14. expect(ripemd160_res.output?.toJSON()).toBe("0x0c8b641c461e3c7abbdabd7f12a8905ee480dadf");
  15. let sha256_res = await query(conn, alice, contract, "hashSha256", ['0x' + Buffer.from('Call me Ishmael.', 'utf8').toString('hex')]);
  16. expect(sha256_res.output?.toJSON()).toBe("0x458f3ceeeec730139693560ecf66c9c22d9c7bc7dcb0599e8e10b667dfeac043");
  17. let keccak256_res = await query(conn, alice, contract, "hashKecccak256", ['0x' + Buffer.from('Call me Ishmael.', 'utf8').toString('hex')]);
  18. expect(keccak256_res.output?.toJSON()).toBe("0x823ad8e1757b879aac338f9a18542928c668e479b37e4a56f024016215c5928c");
  19. let timestamps_res = await query(conn, alice, contract, "mrNow");
  20. let now = Math.floor(+new Date() / 1000);
  21. let ts = Number(timestamps_res.output?.toJSON());
  22. expect(ts).toBeLessThanOrEqual(now);
  23. expect(ts).toBeGreaterThan(now - 120);
  24. conn.disconnect();
  25. });
  26. });