UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

91 lines 5.01 kB
import { expect } from 'chai'; import { ethers } from 'ethers'; import { isInitialized, proxyAdmin } from './proxy.js'; describe('proxy utilities', () => { describe('isInitialized', () => { it('should return false for empty hex string response (malformed RPC)', async () => { const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '', // Malformed: empty string }; const result = await isInitialized(mockProvider, '0x1234567890123456789012345678901234567890'); expect(result).to.equal(false); }); it('should return false for 0x response (malformed RPC)', async () => { const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '0x', // Malformed: empty hex }; const result = await isInitialized(mockProvider, '0x1234567890123456789012345678901234567890'); expect(result).to.equal(false); }); it('should return true for value of 1 (initialized)', async () => { const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '0x0000000000000000000000000000000000000000000000000000000000000001', }; const result = await isInitialized(mockProvider, '0x1234567890123456789012345678901234567890'); expect(result).to.equal(true); }); it('should return true for value of 255 (initialized)', async () => { const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '0x00000000000000000000000000000000000000000000000000000000000000ff', }; const result = await isInitialized(mockProvider, '0x1234567890123456789012345678901234567890'); expect(result).to.equal(true); }); it('should return false for value of 0 (not initialized)', async () => { const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '0x0000000000000000000000000000000000000000000000000000000000000000', }; const result = await isInitialized(mockProvider, '0x1234567890123456789012345678901234567890'); expect(result).to.equal(false); }); }); describe('proxyAdmin', () => { it('should return zero address for empty string response (malformed RPC)', async () => { const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '', // Malformed: empty string }; const result = await proxyAdmin(mockProvider, '0x1234567890123456789012345678901234567890'); expect(result).to.equal(ethers.constants.AddressZero); }); it('should return zero address for 0x response (malformed RPC)', async () => { const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '0x', // Malformed: empty hex }; const result = await proxyAdmin(mockProvider, '0x1234567890123456789012345678901234567890'); expect(result).to.equal(ethers.constants.AddressZero); }); it('should return zero address for 0x0 response (malformed RPC)', async () => { const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '0x0', // Malformed: minimal hex }; const result = await proxyAdmin(mockProvider, '0x1234567890123456789012345678901234567890'); expect(result).to.equal(ethers.constants.AddressZero); }); it('should return valid address for proper storage value', async () => { const testAddress = '0x1234567890123456789012345678901234567890'; const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '0x0000000000000000000000001234567890123456789012345678901234567890', // Valid address in storage }; const result = await proxyAdmin(mockProvider, '0xabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd'); expect(result.toLowerCase()).to.equal(testAddress.toLowerCase()); }); it('should return zero address for all-zero storage value', async () => { const mockProvider = { getCode: async () => '0x1234', // Has code getStorageAt: async () => '0x0000000000000000000000000000000000000000000000000000000000000000', // All zeros }; const result = await proxyAdmin(mockProvider, '0x1234567890123456789012345678901234567890'); expect(result).to.equal(ethers.constants.AddressZero); }); }); }); //# sourceMappingURL=proxy.test.js.map