🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →

evm-proxy-detection

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

evm-proxy-detection - npm Package Compare versions

Comparing version

to
1.0.1

@@ -26,3 +26,3 @@ "use strict";

];
const detectProxyTarget = (proxyAddress, jsonRpcRequest, blockTag) => Promise.any([
const detectProxyTarget = (proxyAddress, jsonRpcRequest, blockTag = 'latest') => Promise.any([
// EIP-1167 Minimal Proxy Contract

@@ -39,4 +39,3 @@ jsonRpcRequest({

params: [proxyAddress, EIP_1967_LOGIC_SLOT, blockTag],
})
.then(readAddress),
}).then(readAddress),
// EIP-1967 beacon proxy

@@ -57,4 +56,3 @@ jsonRpcRequest({

],
})
.catch(() => jsonRpcRequest({
}).catch(() => jsonRpcRequest({
method: 'eth_call',

@@ -74,4 +72,3 @@ params: [

params: [proxyAddress, OPEN_ZEPPELIN_IMPLEMENTATION_SLOT, blockTag],
})
.then(readAddress),
}).then(readAddress),
// EIP-1822 Universal Upgradeable Proxy Standard

@@ -81,4 +78,3 @@ jsonRpcRequest({

params: [proxyAddress, EIP_1822_LOGIC_SLOT, blockTag],
})
.then(readAddress),
}).then(readAddress),
// EIP-897 DelegateProxy pattern

@@ -111,14 +107,11 @@ jsonRpcRequest({

}
if (value.length === 66) {
const EMPTY_SLOT = `0x${'0'.repeat(64)}`;
if (value === EMPTY_SLOT) {
throw new Error('Empty slot');
}
return '0x' + value.slice(-40);
let address = value;
if (address.length === 66) {
address = '0x' + address.slice(-40);
}
const zeroAddress = `0x{'0'.repeat(40)}`;
if (value === zeroAddress) {
const zeroAddress = '0x' + '0'.repeat(40);
if (address === zeroAddress) {
throw new Error('Empty address');
}
return value;
return address;
};

@@ -140,3 +133,4 @@ const EIP_1167_BYTECODE_PREFIX = '0x363d3d373d3d3d363d';

}
const addressFromBytecode = bytecode.substring(EIP_1167_BYTECODE_PREFIX.length + 2, EIP_1167_BYTECODE_PREFIX.length + 2 + addressLength * 2);
const addressFromBytecode = bytecode.substring(EIP_1167_BYTECODE_PREFIX.length + 2, EIP_1167_BYTECODE_PREFIX.length + 2 + addressLength * 2 // address length is in bytes, 2 hex chars make up 1 byte
);
// padStart is needed for vanity addresses

@@ -146,2 +140,2 @@ return `0x${addressFromBytecode.padStart(40, '0')}`;

exports.default = detectProxyTarget;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw4RUFBOEU7QUFDOUUsTUFBTSxtQkFBbUIsR0FDdkIsb0VBQW9FLENBQUE7QUFFdEUsc0VBQXNFO0FBQ3RFLE1BQU0sb0JBQW9CLEdBQ3hCLG9FQUFvRSxDQUFBO0FBRXRFLCtEQUErRDtBQUMvRCxNQUFNLGlDQUFpQyxHQUNyQyxvRUFBb0UsQ0FBQTtBQUV0RSxxQ0FBcUM7QUFDckMsTUFBTSxtQkFBbUIsR0FDdkIsb0VBQW9FLENBQUE7QUFFdEUsTUFBTSx1QkFBdUIsR0FBRztJQUM5QiwyREFBMkQ7SUFDM0Qsb0VBQW9FO0lBQ3BFLGdFQUFnRTtJQUNoRSxxSUFBcUk7SUFDckksb0VBQW9FO0NBQ3JFLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLDJEQUEyRDtJQUMzRCxvRUFBb0U7Q0FDckUsQ0FBQTtBQUVELE1BQU0sMkJBQTJCLEdBQUc7SUFDbEMsdURBQXVEO0lBQ3ZELG9FQUFvRTtDQUNyRSxDQUFBO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixZQUFvQixFQUNwQixjQUEwQyxFQUMxQyxRQUFtQixFQUNLLEVBQUUsQ0FDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNWLGtDQUFrQztJQUNsQyxjQUFjLENBQUM7UUFDYixNQUFNLEVBQUUsYUFBYTtRQUNyQixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDO0tBQ2pDLENBQUM7U0FDQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUVwQix3QkFBd0I7SUFDeEIsY0FBYyxDQUFDO1FBQ2IsTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO0tBQ3RELENBQUM7U0FDQyxJQUFJLENBQUMsV0FBVyxD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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSw4RUFBOEU7QUFDOUUsTUFBTSxtQkFBbUIsR0FDdkIsb0VBQW9FLENBQUE7QUFFdEUsc0VBQXNFO0FBQ3RFLE1BQU0sb0JBQW9CLEdBQ3hCLG9FQUFvRSxDQUFBO0FBRXRFLCtEQUErRDtBQUMvRCxNQUFNLGlDQUFpQyxHQUNyQyxvRUFBb0UsQ0FBQTtBQUV0RSxxQ0FBcUM7QUFDckMsTUFBTSxtQkFBbUIsR0FDdkIsb0VBQW9FLENBQUE7QUFFdEUsTUFBTSx1QkFBdUIsR0FBRztJQUM5QiwyREFBMkQ7SUFDM0Qsb0VBQW9FO0lBQ3BFLGdFQUFnRTtJQUNoRSxxSUFBcUk7SUFDckksb0VBQW9FO0NBQ3JFLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLDJEQUEyRDtJQUMzRCxvRUFBb0U7Q0FDckUsQ0FBQTtBQUVELE1BQU0sMkJBQTJCLEdBQUc7SUFDbEMsdURBQXVEO0lBQ3ZELG9FQUFvRTtDQUNyRSxDQUFBO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixZQUFvQixFQUNwQixjQUEwQyxFQUMxQyxXQUFxQixRQUFRLEVBQ0wsRUFBRSxDQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ1Ysa0NBQWtDO0lBQ2xDLGNBQWMsQ0FBQztRQUNiLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUM7S0FDakMsQ0FBQztTQUNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDO0lBRXBCLHdCQUF3QjtJQUN4QixjQUFjLENBQUM7UUFDYixNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUM7S0FDdEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxX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

@@ -24,3 +24,3 @@ // obtained as bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)

];
const detectProxyTarget = (proxyAddress, jsonRpcRequest, blockTag) => Promise.any([
const detectProxyTarget = (proxyAddress, jsonRpcRequest, blockTag = 'latest') => Promise.any([
// EIP-1167 Minimal Proxy Contract

@@ -37,4 +37,3 @@ jsonRpcRequest({

params: [proxyAddress, EIP_1967_LOGIC_SLOT, blockTag],
})
.then(readAddress),
}).then(readAddress),
// EIP-1967 beacon proxy

@@ -55,4 +54,3 @@ jsonRpcRequest({

],
})
.catch(() => jsonRpcRequest({
}).catch(() => jsonRpcRequest({
method: 'eth_call',

@@ -72,4 +70,3 @@ params: [

params: [proxyAddress, OPEN_ZEPPELIN_IMPLEMENTATION_SLOT, blockTag],
})
.then(readAddress),
}).then(readAddress),
// EIP-1822 Universal Upgradeable Proxy Standard

@@ -79,4 +76,3 @@ jsonRpcRequest({

params: [proxyAddress, EIP_1822_LOGIC_SLOT, blockTag],
})
.then(readAddress),
}).then(readAddress),
// EIP-897 DelegateProxy pattern

@@ -109,14 +105,11 @@ jsonRpcRequest({

}
if (value.length === 66) {
const EMPTY_SLOT = `0x${'0'.repeat(64)}`;
if (value === EMPTY_SLOT) {
throw new Error('Empty slot');
}
return '0x' + value.slice(-40);
let address = value;
if (address.length === 66) {
address = '0x' + address.slice(-40);
}
const zeroAddress = `0x{'0'.repeat(40)}`;
if (value === zeroAddress) {
const zeroAddress = '0x' + '0'.repeat(40);
if (address === zeroAddress) {
throw new Error('Empty address');
}
return value;
return address;
};

@@ -138,3 +131,4 @@ const EIP_1167_BYTECODE_PREFIX = '0x363d3d373d3d3d363d';

}
const addressFromBytecode = bytecode.substring(EIP_1167_BYTECODE_PREFIX.length + 2, EIP_1167_BYTECODE_PREFIX.length + 2 + addressLength * 2);
const addressFromBytecode = bytecode.substring(EIP_1167_BYTECODE_PREFIX.length + 2, EIP_1167_BYTECODE_PREFIX.length + 2 + addressLength * 2 // address length is in bytes, 2 hex chars make up 1 byte
);
// padStart is needed for vanity addresses

@@ -144,2 +138,2 @@ return `0x${addressFromBytecode.padStart(40, '0')}`;

export default detectProxyTarget;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsOEVBQThFO0FBQzlFLE1BQU0sbUJBQW1CLEdBQ3ZCLG9FQUFvRSxDQUFBO0FBRXRFLHNFQUFzRTtBQUN0RSxNQUFNLG9CQUFvQixHQUN4QixvRUFBb0UsQ0FBQTtBQUV0RSwrREFBK0Q7QUFDL0QsTUFBTSxpQ0FBaUMsR0FDckMsb0VBQW9FLENBQUE7QUFFdEUscUNBQXFDO0FBQ3JDLE1BQU0sbUJBQW1CLEdBQ3ZCLG9FQUFvRSxDQUFBO0FBRXRFLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsMkRBQTJEO0lBQzNELG9FQUFvRTtJQUNwRSxnRUFBZ0U7SUFDaEUscUlBQXFJO0lBQ3JJLG9FQUFvRTtDQUNyRSxDQUFBO0FBRUQsTUFBTSxpQkFBaUIsR0FBRztJQUN4QiwyREFBMkQ7SUFDM0Qsb0VBQW9FO0NBQ3JFLENBQUE7QUFFRCxNQUFNLDJCQUEyQixHQUFHO0lBQ2xDLHVEQUF1RDtJQUN2RCxvRUFBb0U7Q0FDckUsQ0FBQTtBQUVELE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsWUFBb0IsRUFDcEIsY0FBMEMsRUFDMUMsUUFBbUIsRUFDSyxFQUFFLENBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDVixrQ0FBa0M7SUFDbEMsY0FBYyxDQUFDO1FBQ2IsTUFBTSxFQUFFLGFBQWE7UUFDckIsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQztLQUNqQyxDQUFDO1NBQ0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUM7SUFFcEIsd0JBQXdCO0lBQ3hCLGNBQWMsQ0FBQztRQUNiLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFFBQVEsQ0FBQztLQUN0RCxDQUFDO1NBQ0MsSUFBSSxDQUFDLFdBQVcsQ0FB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsOEVBQThFO0FBQzlFLE1BQU0sbUJBQW1CLEdBQ3ZCLG9FQUFvRSxDQUFBO0FBRXRFLHNFQUFzRTtBQUN0RSxNQUFNLG9CQUFvQixHQUN4QixvRUFBb0UsQ0FBQTtBQUV0RSwrREFBK0Q7QUFDL0QsTUFBTSxpQ0FBaUMsR0FDckMsb0VBQW9FLENBQUE7QUFFdEUscUNBQXFDO0FBQ3JDLE1BQU0sbUJBQW1CLEdBQ3ZCLG9FQUFvRSxDQUFBO0FBRXRFLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsMkRBQTJEO0lBQzNELG9FQUFvRTtJQUNwRSxnRUFBZ0U7SUFDaEUscUlBQXFJO0lBQ3JJLG9FQUFvRTtDQUNyRSxDQUFBO0FBRUQsTUFBTSxpQkFBaUIsR0FBRztJQUN4QiwyREFBMkQ7SUFDM0Qsb0VBQW9FO0NBQ3JFLENBQUE7QUFFRCxNQUFNLDJCQUEyQixHQUFHO0lBQ2xDLHVEQUF1RDtJQUN2RCxvRUFBb0U7Q0FDckUsQ0FBQTtBQUVELE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsWUFBb0IsRUFDcEIsY0FBMEMsRUFDMUMsV0FBcUIsUUFBUSxFQUNMLEVBQUUsQ0FDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNWLGtDQUFrQztJQUNsQyxjQUFjLENBQUM7UUFDYixNQUFNLEVBQUUsYUFBYTtRQUNyQixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDO0tBQ2pDLENBQUM7U0FDQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUVwQix3QkFBd0I7SUFDeEIsY0FBYyxDQUFDO1FBQ2IsTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO0tBQ3RELENBQUMsQ0FBQyxJQUFJLENBQUMsV0FB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
{
"name": "evm-proxy-detection",
"version": "1.0.0",
"version": "1.0.1",
"description": "Detect proxy contracts and their target addresses using en EIP-1193 compatible JSON-RPC request function",

@@ -5,0 +5,0 @@ "repository": "git@github.com:gnosis/ethers-proxies.git",

@@ -39,7 +39,6 @@ # evm-proxy-detection

import { InfuraProvider } from '@ethersproject/providers'
import { detectProxyTarget, EIP1193ProviderRequestFunc } from 'evm-proxy-detection'
import detectProxyTarget from 'evm-proxy-detection'
const infuraProvider = new InfuraProvider(1, process.env.INFURA_API_KEY)
const requestFunc: EIP1193ProviderRequestFunc = ({ method, params }) =>
infuraProvider.send(method, params)
const requestFunc = ({ method, params }) => infuraProvider.send(method, params)

@@ -60,3 +59,3 @@ const target = await detectProxyTarget(

import Web3 from 'web3'
import { detectProxyTarget } from 'evm-proxy-detection'
import detectProxyTarget from 'evm-proxy-detection'

@@ -75,3 +74,3 @@ const web3 = new Web3(Web3.givenProvider || 'ws://localhost:8545')

```ts
detectProxyTarget(address: string, provider: Provider, blockTag?: BlockTag): Promise<string | null>
detectProxyTarget(address: string, jsonRpcRequest: EIP1193ProviderRequestFunc, blockTag?: BlockTag): Promise<string | null>
```

@@ -78,0 +77,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet