@openzeppelin/upgrades-core 1.9.2 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +80 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +113 -0
- package/artifacts/AdminUpgradeabilityProxy.json +2 -2
- package/artifacts/contracts/proxy/AdminUpgradeabilityProxy.sol/AdminUpgradeabilityProxy.json +2 -2
- package/dist/beacon.d.ts +8 -0
- package/dist/beacon.d.ts.map +1 -0
- package/dist/beacon.js +25 -0
- package/dist/beacon.js.map +1 -0
- package/dist/deployment.d.ts +14 -3
- package/dist/deployment.d.ts.map +1 -1
- package/dist/deployment.js +20 -13
- package/dist/deployment.js.map +1 -1
- package/dist/deployment.test.js +23 -0
- package/dist/deployment.test.js.map +1 -1
- package/dist/eip-1967-type.d.ts +4 -0
- package/dist/eip-1967-type.d.ts.map +1 -0
- package/dist/eip-1967-type.js +37 -0
- package/dist/eip-1967-type.js.map +1 -0
- package/dist/eip-1967.d.ts +5 -0
- package/dist/eip-1967.d.ts.map +1 -1
- package/dist/eip-1967.js +19 -12
- package/dist/eip-1967.js.map +1 -1
- package/dist/impl-address.d.ts +19 -0
- package/dist/impl-address.d.ts.map +1 -0
- package/dist/impl-address.js +67 -0
- package/dist/impl-address.js.map +1 -0
- package/dist/impl-store.d.ts +3 -2
- package/dist/impl-store.d.ts.map +1 -1
- package/dist/impl-store.js +21 -10
- package/dist/impl-store.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -3
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/provider.d.ts +2 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +11 -1
- package/dist/provider.js.map +1 -1
- package/dist/proxy-kind.d.ts +12 -0
- package/dist/proxy-kind.d.ts.map +1 -0
- package/dist/proxy-kind.js +50 -0
- package/dist/proxy-kind.js.map +1 -0
- package/dist/standalone.d.ts +19 -0
- package/dist/standalone.d.ts.map +1 -0
- package/dist/standalone.js +24 -0
- package/dist/standalone.js.map +1 -0
- package/dist/standalone.test.d.ts +2 -0
- package/dist/standalone.test.d.ts.map +1 -0
- package/dist/standalone.test.js +33 -0
- package/dist/standalone.test.js.map +1 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +11 -5
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/report.d.ts +3 -2
- package/dist/storage/report.d.ts.map +1 -1
- package/dist/storage/report.js +9 -3
- package/dist/storage/report.js.map +1 -1
- package/dist/usage-error.d.ts +21 -0
- package/dist/usage-error.d.ts.map +1 -0
- package/dist/usage-error.js +51 -0
- package/dist/usage-error.js.map +1 -0
- package/dist/utils/address.d.ts +8 -0
- package/dist/utils/address.d.ts.map +1 -0
- package/dist/utils/address.js +20 -0
- package/dist/utils/address.js.map +1 -0
- package/dist/utils/make-non-enumerable.d.ts +1 -1
- package/dist/utils/make-non-enumerable.d.ts.map +1 -1
- package/dist/utils/make-non-enumerable.js.map +1 -1
- package/dist/validate/error.d.ts.map +1 -1
- package/dist/validate/error.js +2 -65
- package/dist/validate/error.js.map +1 -1
- package/dist/validate/index.d.ts +2 -1
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +4 -1
- package/dist/validate/index.js.map +1 -1
- package/dist/validate/overrides.js +1 -1
- package/dist/validate/overrides.js.map +1 -1
- package/dist/validate/query.d.ts +3 -1
- package/dist/validate/query.d.ts.map +1 -1
- package/dist/validate/query.js +23 -7
- package/dist/validate/query.js.map +1 -1
- package/dist/validate/report.d.ts +8 -0
- package/dist/validate/report.d.ts.map +1 -0
- package/dist/validate/report.js +79 -0
- package/dist/validate/report.js.map +1 -0
- package/dist/version.d.ts +3 -3
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +12 -6
- package/dist/version.js.map +1 -1
- package/package.json +8 -5
- package/src/beacon.ts +20 -0
- package/src/deployment.test.ts +25 -0
- package/src/deployment.ts +43 -13
- package/src/eip-1967-type.ts +35 -0
- package/src/eip-1967.ts +16 -12
- package/src/impl-address.ts +76 -0
- package/src/impl-store.ts +23 -7
- package/src/index.ts +18 -1
- package/src/manifest.ts +1 -1
- package/src/provider.ts +16 -0
- package/src/proxy-kind.ts +59 -0
- package/src/standalone.test.ts +40 -0
- package/src/standalone.ts +41 -0
- package/src/storage/index.ts +14 -4
- package/src/storage/report.ts +10 -5
- package/src/usage-error.ts +68 -0
- package/src/utils/address.ts +16 -0
- package/src/utils/make-non-enumerable.ts +1 -1
- package/src/validate/error.ts +5 -67
- package/src/validate/index.ts +2 -0
- package/src/validate/overrides.ts +1 -1
- package/src/validate/query.ts +24 -6
- package/src/validate/report.ts +78 -0
- package/src/version.ts +14 -6
- package/CHANGELOG.md +0 -114
- package/dist/set-proxy-kind.d.ts +0 -5
- package/dist/set-proxy-kind.d.ts.map +0 -1
- package/dist/set-proxy-kind.js +0 -25
- package/dist/set-proxy-kind.js.map +0 -1
- package/src/set-proxy-kind.ts +0 -27
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isBeaconProxy = exports.isTransparentOrUUPSProxy = void 0;
|
|
4
|
+
const eip_1967_1 = require("./eip-1967");
|
|
5
|
+
async function isTransparentOrUUPSProxy(provider, address) {
|
|
6
|
+
try {
|
|
7
|
+
await (0, eip_1967_1.getImplementationAddress)(provider, address);
|
|
8
|
+
// if an exception was not encountered above, then this address is a transparent/uups proxy
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
if (e instanceof eip_1967_1.EIP1967ImplementationNotFound) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
throw e;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.isTransparentOrUUPSProxy = isTransparentOrUUPSProxy;
|
|
21
|
+
async function isBeaconProxy(provider, address) {
|
|
22
|
+
try {
|
|
23
|
+
await (0, eip_1967_1.getBeaconAddress)(provider, address);
|
|
24
|
+
// if an exception was not encountered above, then this address is a beacon proxy
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
if (e instanceof eip_1967_1.EIP1967BeaconNotFound) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
throw e;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.isBeaconProxy = isBeaconProxy;
|
|
37
|
+
//# sourceMappingURL=eip-1967-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip-1967-type.js","sourceRoot":"","sources":["../src/eip-1967-type.ts"],"names":[],"mappings":";;;AAAA,yCAKoB;AAGb,KAAK,UAAU,wBAAwB,CAAC,QAA0B,EAAE,OAAe;IACxF,IAAI;QACF,MAAM,IAAA,mCAAwB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,2FAA2F;QAC3F,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,wCAA6B,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAZD,4DAYC;AAEM,KAAK,UAAU,aAAa,CAAC,QAA0B,EAAE,OAAe;IAC7E,IAAI;QACF,MAAM,IAAA,2BAAgB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1C,iFAAiF;QACjF,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,gCAAqB,EAAE;YACtC,OAAO,KAAK,CAAC;SACd;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAZD,sCAYC"}
|
package/dist/eip-1967.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { UpgradesError } from './error';
|
|
1
2
|
import { EthereumProvider } from './provider';
|
|
3
|
+
export declare class EIP1967ImplementationNotFound extends UpgradesError {
|
|
4
|
+
}
|
|
5
|
+
export declare class EIP1967BeaconNotFound extends UpgradesError {
|
|
6
|
+
}
|
|
2
7
|
export declare function getAdminAddress(provider: EthereumProvider, address: string): Promise<string>;
|
|
3
8
|
export declare function getImplementationAddress(provider: EthereumProvider, address: string): Promise<string>;
|
|
4
9
|
export declare function getBeaconAddress(provider: EthereumProvider, address: string): Promise<string>;
|
package/dist/eip-1967.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eip-1967.d.ts","sourceRoot":"","sources":["../src/eip-1967.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eip-1967.d.ts","sourceRoot":"","sources":["../src/eip-1967.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAgB,MAAM,YAAY,CAAC;AAG5D,qBAAa,6BAA8B,SAAQ,aAAa;CAAG;AAEnE,qBAAa,qBAAsB,SAAQ,aAAa;CAAG;AAE3D,wBAAsB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASlG;AAED,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa3G;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQnG;AAeD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInD"}
|
package/dist/eip-1967.js
CHANGED
|
@@ -3,29 +3,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.toEip1967Hash = exports.toFallbackEip1967Hash = exports.getBeaconAddress = exports.getImplementationAddress = exports.getAdminAddress = void 0;
|
|
7
|
-
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
6
|
+
exports.toEip1967Hash = exports.toFallbackEip1967Hash = exports.getBeaconAddress = exports.getImplementationAddress = exports.getAdminAddress = exports.EIP1967BeaconNotFound = exports.EIP1967ImplementationNotFound = void 0;
|
|
8
7
|
const bn_js_1 = __importDefault(require("bn.js"));
|
|
8
|
+
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
9
|
+
const error_1 = require("./error");
|
|
9
10
|
const provider_1 = require("./provider");
|
|
11
|
+
const address_1 = require("./utils/address");
|
|
12
|
+
class EIP1967ImplementationNotFound extends error_1.UpgradesError {
|
|
13
|
+
}
|
|
14
|
+
exports.EIP1967ImplementationNotFound = EIP1967ImplementationNotFound;
|
|
15
|
+
class EIP1967BeaconNotFound extends error_1.UpgradesError {
|
|
16
|
+
}
|
|
17
|
+
exports.EIP1967BeaconNotFound = EIP1967BeaconNotFound;
|
|
10
18
|
async function getAdminAddress(provider, address) {
|
|
11
19
|
const storage = await getStorageFallback(provider, address, toEip1967Hash('eip1967.proxy.admin'), toFallbackEip1967Hash('org.zeppelinos.proxy.admin'));
|
|
12
|
-
return
|
|
20
|
+
return parseAddressFromStorage(storage);
|
|
13
21
|
}
|
|
14
22
|
exports.getAdminAddress = getAdminAddress;
|
|
15
23
|
async function getImplementationAddress(provider, address) {
|
|
16
24
|
const storage = await getStorageFallback(provider, address, toEip1967Hash('eip1967.proxy.implementation'), toFallbackEip1967Hash('org.zeppelinos.proxy.implementation'));
|
|
17
25
|
if (isEmptySlot(storage)) {
|
|
18
|
-
throw new
|
|
26
|
+
throw new EIP1967ImplementationNotFound(`Contract at ${address} doesn't look like an administered ERC 1967 proxy`);
|
|
19
27
|
}
|
|
20
|
-
return
|
|
28
|
+
return parseAddressFromStorage(storage);
|
|
21
29
|
}
|
|
22
30
|
exports.getImplementationAddress = getImplementationAddress;
|
|
23
31
|
async function getBeaconAddress(provider, address) {
|
|
24
32
|
const storage = await getStorageFallback(provider, address, toEip1967Hash('eip1967.proxy.beacon'));
|
|
25
33
|
if (isEmptySlot(storage)) {
|
|
26
|
-
throw new
|
|
34
|
+
throw new EIP1967BeaconNotFound(`Contract at ${address} doesn't look like an ERC 1967 beacon proxy`);
|
|
27
35
|
}
|
|
28
|
-
return
|
|
36
|
+
return parseAddressFromStorage(storage);
|
|
29
37
|
}
|
|
30
38
|
exports.getBeaconAddress = getBeaconAddress;
|
|
31
39
|
async function getStorageFallback(provider, address, ...slots) {
|
|
@@ -52,12 +60,11 @@ function isEmptySlot(storage) {
|
|
|
52
60
|
storage = storage.replace(/^0x/, '');
|
|
53
61
|
return new bn_js_1.default(storage, 'hex').isZero();
|
|
54
62
|
}
|
|
55
|
-
function
|
|
56
|
-
const
|
|
57
|
-
if (
|
|
63
|
+
function parseAddressFromStorage(storage) {
|
|
64
|
+
const address = (0, address_1.parseAddress)(storage);
|
|
65
|
+
if (address === undefined) {
|
|
58
66
|
throw new Error(`Value in storage is not an address (${storage})`);
|
|
59
67
|
}
|
|
60
|
-
|
|
61
|
-
return (0, ethereumjs_util_1.toChecksumAddress)(address);
|
|
68
|
+
return address;
|
|
62
69
|
}
|
|
63
70
|
//# sourceMappingURL=eip-1967.js.map
|
package/dist/eip-1967.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eip-1967.js","sourceRoot":"","sources":["../src/eip-1967.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"eip-1967.js","sourceRoot":"","sources":["../src/eip-1967.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UpgradesError } from '.';
|
|
2
|
+
import { EthereumProvider } from './provider';
|
|
3
|
+
export declare class InvalidBeacon extends UpgradesError {
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Gets the implementation address from the beacon using its implementation() function.
|
|
7
|
+
* @param provider
|
|
8
|
+
* @param beaconAddress
|
|
9
|
+
* @returns The implementation address.
|
|
10
|
+
* @throws {InvalidBeacon} If the implementation() function could not be called or does not return an address.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getImplementationAddressFromBeacon(provider: EthereumProvider, beaconAddress: string): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Gets the implementation address from a UUPS/Transparent/Beacon proxy.
|
|
15
|
+
*
|
|
16
|
+
* @returns a Promise with the implementation address, or undefined if a UUPS/Transparent/Beacon proxy is not located at the address.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getImplementationAddressFromProxy(provider: EthereumProvider, proxyAddress: string): Promise<string | undefined>;
|
|
19
|
+
//# sourceMappingURL=impl-address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impl-address.d.ts","sourceRoot":"","sources":["../src/impl-address.ts"],"names":[],"mappings":"AACA,OAAO,EAML,aAAa,EACd,MAAM,GAAG,CAAC;AAEX,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,qBAAa,aAAc,SAAQ,aAAa;CAAG;AAEnD;;;;;;GAMG;AACH,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;GAIG;AACH,wBAAsB,iCAAiC,CACrD,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB7B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getImplementationAddressFromProxy = exports.getImplementationAddressFromBeacon = exports.InvalidBeacon = void 0;
|
|
4
|
+
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
5
|
+
const _1 = require(".");
|
|
6
|
+
const address_1 = require("./utils/address");
|
|
7
|
+
class InvalidBeacon extends _1.UpgradesError {
|
|
8
|
+
}
|
|
9
|
+
exports.InvalidBeacon = InvalidBeacon;
|
|
10
|
+
/**
|
|
11
|
+
* Gets the implementation address from the beacon using its implementation() function.
|
|
12
|
+
* @param provider
|
|
13
|
+
* @param beaconAddress
|
|
14
|
+
* @returns The implementation address.
|
|
15
|
+
* @throws {InvalidBeacon} If the implementation() function could not be called or does not return an address.
|
|
16
|
+
*/
|
|
17
|
+
async function getImplementationAddressFromBeacon(provider, beaconAddress) {
|
|
18
|
+
const implementationFunction = '0x' + (0, ethereumjs_util_1.keccak256)(Buffer.from('implementation()')).toString('hex').slice(0, 8);
|
|
19
|
+
let result;
|
|
20
|
+
try {
|
|
21
|
+
const implAddress = await (0, _1.call)(provider, beaconAddress, implementationFunction);
|
|
22
|
+
result = (0, address_1.parseAddress)(implAddress);
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
if (!(e.message.includes('function selector was not recognized') ||
|
|
26
|
+
e.message.includes('invalid opcode') ||
|
|
27
|
+
e.message.includes('reverted'))) {
|
|
28
|
+
throw e;
|
|
29
|
+
} // otherwise fall through with no result
|
|
30
|
+
}
|
|
31
|
+
if (result === undefined) {
|
|
32
|
+
throw new InvalidBeacon(`Contract at ${beaconAddress} doesn't look like a beacon`);
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
exports.getImplementationAddressFromBeacon = getImplementationAddressFromBeacon;
|
|
37
|
+
/**
|
|
38
|
+
* Gets the implementation address from a UUPS/Transparent/Beacon proxy.
|
|
39
|
+
*
|
|
40
|
+
* @returns a Promise with the implementation address, or undefined if a UUPS/Transparent/Beacon proxy is not located at the address.
|
|
41
|
+
*/
|
|
42
|
+
async function getImplementationAddressFromProxy(provider, proxyAddress) {
|
|
43
|
+
try {
|
|
44
|
+
return await (0, _1.getImplementationAddress)(provider, proxyAddress);
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
if (e instanceof _1.EIP1967ImplementationNotFound) {
|
|
48
|
+
try {
|
|
49
|
+
const beaconAddress = await (0, _1.getBeaconAddress)(provider, proxyAddress);
|
|
50
|
+
return await getImplementationAddressFromBeacon(provider, beaconAddress);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
if (e instanceof _1.EIP1967BeaconNotFound) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
throw e;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
throw e;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.getImplementationAddressFromProxy = getImplementationAddressFromProxy;
|
|
67
|
+
//# sourceMappingURL=impl-address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impl-address.js","sourceRoot":"","sources":["../src/impl-address.ts"],"names":[],"mappings":";;;AAAA,qDAA4C;AAC5C,wBAOW;AAGX,6CAA+C;AAE/C,MAAa,aAAc,SAAQ,gBAAa;CAAG;AAAnD,sCAAmD;AAEnD;;;;;;GAMG;AACI,KAAK,UAAU,kCAAkC,CACtD,QAA0B,EAC1B,aAAqB;IAErB,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAA,2BAAS,EAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7G,IAAI,MAA0B,CAAC;IAC/B,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,IAAA,OAAI,EAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAC;QAChF,MAAM,GAAG,IAAA,sBAAY,EAAC,WAAW,CAAC,CAAC;KACpC;IAAC,OAAO,CAAM,EAAE;QACf,IACE,CAAC,CACC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC1D,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACpC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC/B,EACD;YACA,MAAM,CAAC,CAAC;SACT,CAAC,wCAAwC;KAC3C;IACD,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,aAAa,CAAC,eAAe,aAAa,6BAA6B,CAAC,CAAC;KACpF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAxBD,gFAwBC;AAED;;;;GAIG;AACI,KAAK,UAAU,iCAAiC,CACrD,QAA0B,EAC1B,YAAoB;IAEpB,IAAI;QACF,OAAO,MAAM,IAAA,2BAAwB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC/D;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,gCAA6B,EAAE;YAC9C,IAAI;gBACF,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAgB,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACrE,OAAO,MAAM,kCAAkC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;aAC1E;YAAC,OAAO,CAAM,EAAE;gBACf,IAAI,CAAC,YAAY,wBAAqB,EAAE;oBACtC,OAAO,SAAS,CAAC;iBAClB;qBAAM;oBACL,MAAM,CAAC,CAAC;iBACT;aACF;SACF;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAtBD,8EAsBC"}
|
package/dist/impl-store.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { ImplDeployment } from './manifest';
|
|
|
2
2
|
import { EthereumProvider } from './provider';
|
|
3
3
|
import { Deployment } from './deployment';
|
|
4
4
|
import type { Version } from './version';
|
|
5
|
-
|
|
6
|
-
export declare function
|
|
5
|
+
import { DeployOpts } from '.';
|
|
6
|
+
export declare function fetchOrDeploy(version: Version, provider: EthereumProvider, deploy: () => Promise<ImplDeployment>, opts?: DeployOpts): Promise<string>;
|
|
7
|
+
export declare function fetchOrDeployAdmin(provider: EthereumProvider, deploy: () => Promise<Deployment>, opts?: DeployOpts): Promise<string>;
|
|
7
8
|
//# sourceMappingURL=impl-store.d.ts.map
|
package/dist/impl-store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-store.d.ts","sourceRoot":"","sources":["../src/impl-store.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,cAAc,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,UAAU,EAAgE,MAAM,cAAc,CAAC;AACxG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"impl-store.d.ts","sourceRoot":"","sources":["../src/impl-store.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,cAAc,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,UAAU,EAAgE,MAAM,cAAc,CAAC;AACxG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAyE/B,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,EACrC,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAQD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,EACjC,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,MAAM,CAAC,CAEjB"}
|
package/dist/impl-store.js
CHANGED
|
@@ -9,7 +9,18 @@ const manifest_1 = require("./manifest");
|
|
|
9
9
|
const provider_1 = require("./provider");
|
|
10
10
|
const deployment_1 = require("./deployment");
|
|
11
11
|
const assert_1 = __importDefault(require("assert"));
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Fetches the deployment from the manifest, or deploys it if not found.
|
|
14
|
+
*
|
|
15
|
+
* @param lens the manifest lens
|
|
16
|
+
* @param provider the Ethereum provider
|
|
17
|
+
* @param deploy the deploy function
|
|
18
|
+
* @param opts options containing the timeout and pollingInterval parameters. If undefined, assumes the timeout is not configurable and will not mention those parameters in the error message for TransactionMinedTimeout.
|
|
19
|
+
* @returns the deployment address
|
|
20
|
+
* @throws {InvalidDeployment} if the deployment is invalid
|
|
21
|
+
* @throws {TransactionMinedTimeout} if the transaction was not confirmed within the timeout period
|
|
22
|
+
*/
|
|
23
|
+
async function fetchOrDeployGeneric(lens, provider, deploy, opts) {
|
|
13
24
|
const manifest = await manifest_1.Manifest.forNetwork(provider);
|
|
14
25
|
try {
|
|
15
26
|
const deployment = await manifest.lockedRun(async () => {
|
|
@@ -28,7 +39,7 @@ async function fetchOrDeployGeneric(lens, provider, deploy) {
|
|
|
28
39
|
}
|
|
29
40
|
return updated;
|
|
30
41
|
});
|
|
31
|
-
await (0, deployment_1.waitAndValidateDeployment)(provider, deployment);
|
|
42
|
+
await (0, deployment_1.waitAndValidateDeployment)(provider, deployment, lens.type, opts);
|
|
32
43
|
return deployment.address;
|
|
33
44
|
}
|
|
34
45
|
catch (e) {
|
|
@@ -49,24 +60,24 @@ async function fetchOrDeployGeneric(lens, provider, deploy) {
|
|
|
49
60
|
throw e;
|
|
50
61
|
}
|
|
51
62
|
}
|
|
52
|
-
async function fetchOrDeploy(version, provider, deploy) {
|
|
53
|
-
return fetchOrDeployGeneric(implLens(version.linkedWithoutMetadata), provider, deploy);
|
|
63
|
+
async function fetchOrDeploy(version, provider, deploy, opts) {
|
|
64
|
+
return fetchOrDeployGeneric(implLens(version.linkedWithoutMetadata), provider, deploy, opts);
|
|
54
65
|
}
|
|
55
66
|
exports.fetchOrDeploy = fetchOrDeploy;
|
|
56
|
-
const implLens = (versionWithoutMetadata) => lens(`implementation ${versionWithoutMetadata}`, data => ({
|
|
67
|
+
const implLens = (versionWithoutMetadata) => lens(`implementation ${versionWithoutMetadata}`, 'implementation', data => ({
|
|
57
68
|
get: () => data.impls[versionWithoutMetadata],
|
|
58
69
|
set: (value) => (data.impls[versionWithoutMetadata] = value),
|
|
59
70
|
}));
|
|
60
|
-
async function fetchOrDeployAdmin(provider, deploy) {
|
|
61
|
-
return fetchOrDeployGeneric(adminLens, provider, deploy);
|
|
71
|
+
async function fetchOrDeployAdmin(provider, deploy, opts) {
|
|
72
|
+
return fetchOrDeployGeneric(adminLens, provider, deploy, opts);
|
|
62
73
|
}
|
|
63
74
|
exports.fetchOrDeployAdmin = fetchOrDeployAdmin;
|
|
64
|
-
const adminLens = lens('proxy admin', data => ({
|
|
75
|
+
const adminLens = lens('proxy admin', 'proxy admin', data => ({
|
|
65
76
|
get: () => data.admin,
|
|
66
77
|
set: (value) => (data.admin = value),
|
|
67
78
|
}));
|
|
68
|
-
function lens(description, fn) {
|
|
69
|
-
return Object.assign(fn, { description });
|
|
79
|
+
function lens(description, type, fn) {
|
|
80
|
+
return Object.assign(fn, { description, type });
|
|
70
81
|
}
|
|
71
82
|
async function checkForAddressClash(provider, data, updated) {
|
|
72
83
|
const clash = lookupDeployment(data, updated.address);
|
package/dist/impl-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impl-store.js","sourceRoot":"","sources":["../src/impl-store.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAClC,yCAAoE;AACpE,yCAAoE;AACpE,6CAAwG;AAExG,oDAA4B;
|
|
1
|
+
{"version":3,"file":"impl-store.js","sourceRoot":"","sources":["../src/impl-store.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,8 +9,14 @@ export * from './src-decoder';
|
|
|
9
9
|
export * from './solc-api';
|
|
10
10
|
export * from './deployment';
|
|
11
11
|
export * from './link-refs';
|
|
12
|
+
export * from './error';
|
|
12
13
|
export { getStorageLayoutForAddress } from './manifest-storage-layout';
|
|
13
14
|
export * from './scripts/migrate-oz-cli-project';
|
|
14
15
|
export { logWarning } from './utils/log';
|
|
15
|
-
export { setProxyKind } from './
|
|
16
|
+
export { setProxyKind, processProxyKind } from './proxy-kind';
|
|
17
|
+
export { UpgradeableContract } from './standalone';
|
|
18
|
+
export { isTransparentOrUUPSProxy, isBeaconProxy } from './eip-1967-type';
|
|
19
|
+
export { getImplementationAddressFromBeacon, getImplementationAddressFromProxy } from './impl-address';
|
|
20
|
+
export { isBeacon } from './beacon';
|
|
21
|
+
export { BeaconProxyUnsupportedError, LoadProxyUnsupportedError, PrepareUpgradeUnsupportedError, DeployBeaconProxyUnsupportedError, DeployBeaconProxyImplUnknownError, DeployBeaconProxyKindError, assertNotProxy, } from './usage-error';
|
|
16
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,0BAA0B,EAC1B,cAAc,GACf,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.setProxyKind = exports.logWarning = exports.getStorageLayoutForAddress = void 0;
|
|
13
|
+
exports.assertNotProxy = exports.DeployBeaconProxyKindError = exports.DeployBeaconProxyImplUnknownError = exports.DeployBeaconProxyUnsupportedError = exports.PrepareUpgradeUnsupportedError = exports.LoadProxyUnsupportedError = exports.BeaconProxyUnsupportedError = exports.isBeacon = exports.getImplementationAddressFromProxy = exports.getImplementationAddressFromBeacon = exports.isBeaconProxy = exports.isTransparentOrUUPSProxy = exports.UpgradeableContract = exports.processProxyKind = exports.setProxyKind = exports.logWarning = exports.getStorageLayoutForAddress = void 0;
|
|
14
14
|
__exportStar(require("./validate"), exports);
|
|
15
15
|
__exportStar(require("./impl-store"), exports);
|
|
16
16
|
__exportStar(require("./version"), exports);
|
|
@@ -22,11 +22,31 @@ __exportStar(require("./src-decoder"), exports);
|
|
|
22
22
|
__exportStar(require("./solc-api"), exports);
|
|
23
23
|
__exportStar(require("./deployment"), exports);
|
|
24
24
|
__exportStar(require("./link-refs"), exports);
|
|
25
|
+
__exportStar(require("./error"), exports);
|
|
25
26
|
var manifest_storage_layout_1 = require("./manifest-storage-layout");
|
|
26
27
|
Object.defineProperty(exports, "getStorageLayoutForAddress", { enumerable: true, get: function () { return manifest_storage_layout_1.getStorageLayoutForAddress; } });
|
|
27
28
|
__exportStar(require("./scripts/migrate-oz-cli-project"), exports);
|
|
28
29
|
var log_1 = require("./utils/log");
|
|
29
30
|
Object.defineProperty(exports, "logWarning", { enumerable: true, get: function () { return log_1.logWarning; } });
|
|
30
|
-
var
|
|
31
|
-
Object.defineProperty(exports, "setProxyKind", { enumerable: true, get: function () { return
|
|
31
|
+
var proxy_kind_1 = require("./proxy-kind");
|
|
32
|
+
Object.defineProperty(exports, "setProxyKind", { enumerable: true, get: function () { return proxy_kind_1.setProxyKind; } });
|
|
33
|
+
Object.defineProperty(exports, "processProxyKind", { enumerable: true, get: function () { return proxy_kind_1.processProxyKind; } });
|
|
34
|
+
var standalone_1 = require("./standalone");
|
|
35
|
+
Object.defineProperty(exports, "UpgradeableContract", { enumerable: true, get: function () { return standalone_1.UpgradeableContract; } });
|
|
36
|
+
var eip_1967_type_1 = require("./eip-1967-type");
|
|
37
|
+
Object.defineProperty(exports, "isTransparentOrUUPSProxy", { enumerable: true, get: function () { return eip_1967_type_1.isTransparentOrUUPSProxy; } });
|
|
38
|
+
Object.defineProperty(exports, "isBeaconProxy", { enumerable: true, get: function () { return eip_1967_type_1.isBeaconProxy; } });
|
|
39
|
+
var impl_address_1 = require("./impl-address");
|
|
40
|
+
Object.defineProperty(exports, "getImplementationAddressFromBeacon", { enumerable: true, get: function () { return impl_address_1.getImplementationAddressFromBeacon; } });
|
|
41
|
+
Object.defineProperty(exports, "getImplementationAddressFromProxy", { enumerable: true, get: function () { return impl_address_1.getImplementationAddressFromProxy; } });
|
|
42
|
+
var beacon_1 = require("./beacon");
|
|
43
|
+
Object.defineProperty(exports, "isBeacon", { enumerable: true, get: function () { return beacon_1.isBeacon; } });
|
|
44
|
+
var usage_error_1 = require("./usage-error");
|
|
45
|
+
Object.defineProperty(exports, "BeaconProxyUnsupportedError", { enumerable: true, get: function () { return usage_error_1.BeaconProxyUnsupportedError; } });
|
|
46
|
+
Object.defineProperty(exports, "LoadProxyUnsupportedError", { enumerable: true, get: function () { return usage_error_1.LoadProxyUnsupportedError; } });
|
|
47
|
+
Object.defineProperty(exports, "PrepareUpgradeUnsupportedError", { enumerable: true, get: function () { return usage_error_1.PrepareUpgradeUnsupportedError; } });
|
|
48
|
+
Object.defineProperty(exports, "DeployBeaconProxyUnsupportedError", { enumerable: true, get: function () { return usage_error_1.DeployBeaconProxyUnsupportedError; } });
|
|
49
|
+
Object.defineProperty(exports, "DeployBeaconProxyImplUnknownError", { enumerable: true, get: function () { return usage_error_1.DeployBeaconProxyImplUnknownError; } });
|
|
50
|
+
Object.defineProperty(exports, "DeployBeaconProxyKindError", { enumerable: true, get: function () { return usage_error_1.DeployBeaconProxyKindError; } });
|
|
51
|
+
Object.defineProperty(exports, "assertNotProxy", { enumerable: true, get: function () { return usage_error_1.assertNotProxy; } });
|
|
32
52
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,6CAA2B;AAC3B,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,6CAA2B;AAC3B,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,0CAAwB;AAExB,qEAAuE;AAA9D,qIAAA,0BAA0B,OAAA;AAEnC,mEAAiD;AAEjD,mCAAyC;AAAhC,iGAAA,UAAU,OAAA;AACnB,2CAA8D;AAArD,0GAAA,YAAY,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAEvC,2CAAmD;AAA1C,iHAAA,mBAAmB,OAAA;AAE5B,iDAA0E;AAAjE,yHAAA,wBAAwB,OAAA;AAAE,8GAAA,aAAa,OAAA;AAChD,+CAAuG;AAA9F,kIAAA,kCAAkC,OAAA;AAAE,iIAAA,iCAAiC,OAAA;AAC9E,mCAAoC;AAA3B,kGAAA,QAAQ,OAAA;AAEjB,6CAQuB;AAPrB,0HAAA,2BAA2B,OAAA;AAC3B,wHAAA,yBAAyB,OAAA;AACzB,6HAAA,8BAA8B,OAAA;AAC9B,gIAAA,iCAAiC,OAAA;AACjC,gIAAA,iCAAiC,OAAA;AACjC,yHAAA,0BAA0B,OAAA;AAC1B,6GAAA,cAAc,OAAA"}
|
package/dist/manifest.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface ImplDeployment extends Deployment {
|
|
|
13
13
|
layout: StorageLayout;
|
|
14
14
|
}
|
|
15
15
|
export interface ProxyDeployment extends Deployment {
|
|
16
|
-
kind: 'uups' | 'transparent';
|
|
16
|
+
kind: 'uups' | 'transparent' | 'beacon';
|
|
17
17
|
}
|
|
18
18
|
export declare class Manifest {
|
|
19
19
|
readonly chainId: number;
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,YAAY,CAAC;AAIxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM/C,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE;SACJ,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,cAAc;KACrC,CAAC;IACF,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,YAAY,CAAC;AAIxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM/C,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE;SACJ,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,cAAc;KACrC,CAAC;IACF,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;CACzC;AAYD,qBAAa,QAAQ;IAQP,QAAQ,CAAC,OAAO,EAAE,MAAM;IAPpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,MAAM,CAAS;WAEV,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;gBAIjD,OAAO,EAAE,MAAM;IAK9B,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAI3C,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IASlE,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAS9D,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAgB7B,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAYtC,IAAI;CASnB;AAgBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAUhE;AAED,qBAAa,kBAAmB,SAAQ,KAAK;CAAG"}
|
package/dist/provider.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface EthereumProvider {
|
|
|
3
3
|
send(method: 'net_version', params: []): Promise<string>;
|
|
4
4
|
send(method: 'eth_chainId', params: []): Promise<string>;
|
|
5
5
|
send(method: 'eth_getCode', params: [string, string]): Promise<string>;
|
|
6
|
+
send(method: 'eth_call', params: unknown[]): Promise<string>;
|
|
6
7
|
send(method: 'eth_getStorageAt', params: [string, string, string]): Promise<string>;
|
|
7
8
|
send(method: 'eth_getTransactionByHash', params: [string]): Promise<null | EthereumTransaction>;
|
|
8
9
|
send(method: 'eth_getTransactionReceipt', params: [string]): Promise<null | EthereumTransactionReceipt>;
|
|
@@ -25,6 +26,7 @@ export declare function getChainId(provider: EthereumProvider): Promise<number>;
|
|
|
25
26
|
export declare function getClientVersion(provider: EthereumProvider): Promise<string>;
|
|
26
27
|
export declare function getStorageAt(provider: EthereumProvider, address: string, position: string, block?: string): Promise<string>;
|
|
27
28
|
export declare function getCode(provider: EthereumProvider, address: string, block?: string): Promise<string>;
|
|
29
|
+
export declare function call(provider: EthereumProvider, address: string, data: string, block?: string): Promise<string>;
|
|
28
30
|
export declare function hasCode(provider: EthereumProvider, address: string, block?: string): Promise<boolean>;
|
|
29
31
|
export declare function getTransactionByHash(provider: EthereumProvider, txHash: string): Promise<EthereumTransaction | null>;
|
|
30
32
|
export declare function getTransactionReceipt(provider: EthereumProvider, txHash: string): Promise<EthereumTransactionReceipt | null>;
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isReceiptSuccessful = exports.isDevelopmentNetwork = exports.networkNames = exports.getTransactionReceipt = exports.getTransactionByHash = exports.hasCode = exports.getCode = exports.getStorageAt = exports.getClientVersion = exports.getChainId = exports.getNetworkId = void 0;
|
|
6
|
+
exports.isReceiptSuccessful = exports.isDevelopmentNetwork = exports.networkNames = exports.getTransactionReceipt = exports.getTransactionByHash = exports.hasCode = exports.call = exports.getCode = exports.getStorageAt = exports.getClientVersion = exports.getChainId = exports.getNetworkId = void 0;
|
|
7
7
|
const bn_js_1 = __importDefault(require("bn.js"));
|
|
8
8
|
async function getNetworkId(provider) {
|
|
9
9
|
return provider.send('net_version', []);
|
|
@@ -28,6 +28,16 @@ async function getCode(provider, address, block = 'latest') {
|
|
|
28
28
|
return provider.send('eth_getCode', [address, block]);
|
|
29
29
|
}
|
|
30
30
|
exports.getCode = getCode;
|
|
31
|
+
async function call(provider, address, data, block = 'latest') {
|
|
32
|
+
return provider.send('eth_call', [
|
|
33
|
+
{
|
|
34
|
+
to: address,
|
|
35
|
+
data: data,
|
|
36
|
+
},
|
|
37
|
+
block,
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
exports.call = call;
|
|
31
41
|
async function hasCode(provider, address, block) {
|
|
32
42
|
const code = await getCode(provider, address, block);
|
|
33
43
|
return code !== '0x';
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAuB;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EthereumProvider } from './provider';
|
|
2
|
+
import { ValidationData, ValidationOptions } from './validate';
|
|
3
|
+
import { ProxyDeployment } from './manifest';
|
|
4
|
+
import { Version } from './version';
|
|
5
|
+
export declare function setProxyKind(provider: EthereumProvider, proxyAddress: string, opts: ValidationOptions): Promise<ProxyDeployment['kind']>;
|
|
6
|
+
/**
|
|
7
|
+
* Processes opts.kind when deploying the implementation for a UUPS or Transparent proxy.
|
|
8
|
+
*
|
|
9
|
+
* @throws {BeaconProxyUnsupportedError} If this function is called for a Beacon proxy.
|
|
10
|
+
*/
|
|
11
|
+
export declare function processProxyKind(provider: EthereumProvider, proxyAddress: string | undefined, opts: ValidationOptions, data: ValidationData, version: Version): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=proxy-kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-kind.d.ts","sourceRoot":"","sources":["../src/proxy-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAkB,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAgC,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAsB,YAAY,CAChC,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAkBlC;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,OAAO,iBAiBjB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processProxyKind = exports.setProxyKind = void 0;
|
|
4
|
+
const validate_1 = require("./validate");
|
|
5
|
+
const manifest_1 = require("./manifest");
|
|
6
|
+
const eip_1967_type_1 = require("./eip-1967-type");
|
|
7
|
+
const usage_error_1 = require("./usage-error");
|
|
8
|
+
async function setProxyKind(provider, proxyAddress, opts) {
|
|
9
|
+
var _a;
|
|
10
|
+
const manifest = await manifest_1.Manifest.forNetwork(provider);
|
|
11
|
+
const manifestDeployment = await manifest.getProxyFromAddress(proxyAddress).catch(e => {
|
|
12
|
+
if (e instanceof manifest_1.DeploymentNotFound) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
throw e;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
if (opts.kind === undefined) {
|
|
20
|
+
opts.kind = (_a = manifestDeployment === null || manifestDeployment === void 0 ? void 0 : manifestDeployment.kind) !== null && _a !== void 0 ? _a : 'transparent';
|
|
21
|
+
}
|
|
22
|
+
else if (manifestDeployment && opts.kind !== manifestDeployment.kind) {
|
|
23
|
+
throw new Error(`Requested an upgrade of kind ${opts.kind} but proxy is ${manifestDeployment.kind}`);
|
|
24
|
+
}
|
|
25
|
+
return opts.kind;
|
|
26
|
+
}
|
|
27
|
+
exports.setProxyKind = setProxyKind;
|
|
28
|
+
/**
|
|
29
|
+
* Processes opts.kind when deploying the implementation for a UUPS or Transparent proxy.
|
|
30
|
+
*
|
|
31
|
+
* @throws {BeaconProxyUnsupportedError} If this function is called for a Beacon proxy.
|
|
32
|
+
*/
|
|
33
|
+
async function processProxyKind(provider, proxyAddress, opts, data, version) {
|
|
34
|
+
if (opts.kind === undefined) {
|
|
35
|
+
if (proxyAddress !== undefined && (await (0, eip_1967_type_1.isBeaconProxy)(provider, proxyAddress))) {
|
|
36
|
+
opts.kind = 'beacon';
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
opts.kind = (0, validate_1.inferProxyKind)(data, version);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (proxyAddress !== undefined) {
|
|
43
|
+
await setProxyKind(provider, proxyAddress, opts);
|
|
44
|
+
}
|
|
45
|
+
if (opts.kind === 'beacon') {
|
|
46
|
+
throw new usage_error_1.BeaconProxyUnsupportedError();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.processProxyKind = processProxyKind;
|
|
50
|
+
//# sourceMappingURL=proxy-kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-kind.js","sourceRoot":"","sources":["../src/proxy-kind.ts"],"names":[],"mappings":";;;AACA,yCAA+E;AAC/E,yCAA2E;AAC3E,mDAAgD;AAEhD,+CAA4D;AAErD,KAAK,UAAU,YAAY,CAChC,QAA0B,EAC1B,YAAoB,EACpB,IAAuB;;IAEvB,MAAM,QAAQ,GAAG,MAAM,mBAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErD,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACpF,IAAI,CAAC,YAAY,6BAAkB,EAAE;YACnC,OAAO,SAAS,CAAC;SAClB;aAAM;YACL,MAAM,CAAC,CAAC;SACT;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QAC3B,IAAI,CAAC,IAAI,GAAG,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,mCAAI,aAAa,CAAC;KACvD;SAAM,IAAI,kBAAkB,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,EAAE;QACtE,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,IAAI,iBAAiB,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;KACtG;IAED,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAtBD,oCAsBC;AAED;;;;GAIG;AACI,KAAK,UAAU,gBAAgB,CACpC,QAA0B,EAC1B,YAAgC,EAChC,IAAuB,EACvB,IAAoB,EACpB,OAAgB;IAEhB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QAC3B,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,MAAM,IAAA,6BAAa,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE;YAC/E,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,IAAA,yBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC3C;KACF;IAED,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,MAAM,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;KAClD;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC1B,MAAM,IAAI,yCAA2B,EAAE,CAAC;KACzC;AACH,CAAC;AAtBD,4CAsBC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SolcOutput, SolcInput } from './solc-api';
|
|
2
|
+
import { UpgradeableContractErrorReport, ValidationOptions } from './validate';
|
|
3
|
+
import { StorageLayout } from './storage';
|
|
4
|
+
import { Version } from './version';
|
|
5
|
+
import { ValidationError } from './validate/run';
|
|
6
|
+
export interface Report {
|
|
7
|
+
ok: boolean;
|
|
8
|
+
explain(color?: boolean): string;
|
|
9
|
+
}
|
|
10
|
+
export declare class UpgradeableContract {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly version: Version;
|
|
13
|
+
readonly errors: ValidationError[];
|
|
14
|
+
readonly layout: StorageLayout;
|
|
15
|
+
constructor(name: string, solcInput: SolcInput, solcOutput: SolcOutput, opts?: ValidationOptions);
|
|
16
|
+
getErrorReport(): UpgradeableContractErrorReport;
|
|
17
|
+
getStorageUpgradeReport(newVersion: UpgradeableContract, opts?: ValidationOptions): import("./storage/report").LayoutCompatibilityReport;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=standalone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone.d.ts","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAIL,8BAA8B,EAE9B,iBAAiB,EAElB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA2B,aAAa,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAClC;AAED,qBAAa,mBAAmB;IAKlB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAJjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,GAAE,iBAAsB;IAQ7G,cAAc;IAId,uBAAuB,CAAC,UAAU,EAAE,mBAAmB,EAAE,IAAI,GAAE,iBAAsB;CAGtF"}
|