overloading.spec.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. import expect from 'expect';
  2. import { createConnection, deploy, transaction, aliceKeypair, query, } from './index';
  3. import { ContractPromise } from '@polkadot/api-contract';
  4. import { ApiPromise } from '@polkadot/api';
  5. describe('Deploy contract with overloaded functions using mangled names', () => {
  6. let conn: ApiPromise;
  7. before(async function () {
  8. conn = await createConnection();
  9. });
  10. after(async function () {
  11. await conn.disconnect();
  12. });
  13. it('works with mangled function names', async function () {
  14. this.timeout(50000);
  15. const alice = aliceKeypair();
  16. let deploy_contract = await deploy(conn, alice, 'Overloading.contract', BigInt(0));
  17. let contract = new ContractPromise(conn, deploy_contract.abi, deploy_contract.address);
  18. let res0 = await query(conn, alice, contract, "echo");
  19. expect(res0.output?.toJSON()).toEqual(42);
  20. let res1 = await query(conn, alice, contract, "echoUint32", [1234]);
  21. expect(res1.output?.toJSON()).toEqual(1234);
  22. let someStruct = { s: "foo", e: [["v1", "v2"], ["v3", "v4"]] };
  23. let res2 = await query(conn, alice, contract, "echoBoolStringUint8Array2Array", [true, someStruct]);
  24. expect(res2.output?.toJSON()).toEqual(someStruct);
  25. });
  26. });