@sobajaswap/lib
Version:
📖 Solidity libraries that are shared across Sobajaswap contracts
62 lines (50 loc) • 2.27 kB
text/typescript
import chai, {expect} from 'chai'
import {Contract, constants} from 'ethers'
import {solidity, MockProvider, deployContract} from 'ethereum-waffle'
import AddressStringUtilTest from '../build/AddressStringUtilTest.json'
chai.use(solidity)
const overrides = {
gasLimit: 9999999,
}
const example = '0xC257274276a4E539741Ca11b590B9447B26A8051'
describe('AddressStringUtil', () => {
const provider = new MockProvider({
ganacheOptions: {
hardfork: 'istanbul',
mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn',
gasLimit: 9999999,
},
})
const [wallet] = provider.getWallets()
let addressStringUtil: Contract
before('deploy AddressStringUtilTest', async () => {
addressStringUtil = await deployContract(wallet, AddressStringUtilTest, [], overrides)
})
describe('#toAsciiString', () => {
it('zero address', async () => {
expect(await addressStringUtil.toAsciiString(constants.AddressZero, 40)).to.eq(constants.AddressZero.substr(2))
})
it('own address', async () => {
expect(await addressStringUtil.toAsciiString(addressStringUtil.address, 40)).to.eq(
addressStringUtil.address.substr(2).toUpperCase()
)
})
it('random address', async () => {
expect(await addressStringUtil.toAsciiString(example, 40)).to.eq(example.substr(2).toUpperCase())
})
it('reverts if len % 2 != 0', async () => {
await expect(addressStringUtil.toAsciiString(example, 39)).to.be.revertedWith('AddressStringUtil: INVALID_LEN')
})
it('reverts if len >= 40', async () => {
await expect(addressStringUtil.toAsciiString(example, 42)).to.be.revertedWith('AddressStringUtil: INVALID_LEN')
})
it('reverts if len == 0', async () => {
await expect(addressStringUtil.toAsciiString(example, 0)).to.be.revertedWith('AddressStringUtil: INVALID_LEN')
})
it('produces len characters', async () => {
expect(await addressStringUtil.toAsciiString(example, 4)).to.eq(example.substr(2, 4).toUpperCase())
expect(await addressStringUtil.toAsciiString(example, 10)).to.eq(example.substr(2, 10).toUpperCase())
expect(await addressStringUtil.toAsciiString(example, 16)).to.eq(example.substr(2, 16).toUpperCase())
})
})
})