1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- const { ethers } = require('hardhat');
- const { expect } = require('chai');
- const { loadFixture } = require('@nomicfoundation/hardhat-network-helpers');
- const { CHAINS, getLocalCAIP } = require('../helpers/chains');
- async function fixture() {
- const caip2 = await ethers.deployContract('$CAIP2');
- const caip10 = await ethers.deployContract('$CAIP10');
- return { caip2, caip10 };
- }
- describe('CAIP utilities', function () {
- beforeEach(async function () {
- Object.assign(this, await loadFixture(fixture));
- });
- describe('CAIP-2', function () {
- it('local()', async function () {
- const { caip2 } = await getLocalCAIP();
- expect(await this.caip2.$local()).to.equal(caip2);
- });
- for (const { namespace, reference, caip2 } of Object.values(CHAINS))
- it(`format(${namespace}, ${reference})`, async function () {
- expect(await this.caip2.$format(namespace, reference)).to.equal(caip2);
- });
- for (const { namespace, reference, caip2 } of Object.values(CHAINS))
- it(`parse(${caip2})`, async function () {
- expect(await this.caip2.$parse(caip2)).to.deep.equal([namespace, reference]);
- });
- });
- describe('CAIP-10', function () {
- const { address: account } = ethers.Wallet.createRandom();
- it(`local(${account})`, async function () {
- const { caip10 } = await getLocalCAIP(account);
- expect(await this.caip10.$local(ethers.Typed.address(account))).to.equal(caip10);
- });
- for (const { account, caip2, caip10 } of Object.values(CHAINS))
- it(`format(${caip2}, ${account})`, async function () {
- expect(await this.caip10.$format(ethers.Typed.string(caip2), ethers.Typed.string(account))).to.equal(caip10);
- });
- for (const { account, caip2, caip10 } of Object.values(CHAINS))
- it(`parse(${caip10})`, async function () {
- expect(await this.caip10.$parse(caip10)).to.deep.equal([caip2, account]);
- });
- });
- });
|