This is a collection of utility functions used for handling properties in a platform-safe way.
The next major version of ethers will no longer be compatible with ES3, so many of these will be removed in favor of the built-in options available in ES2015 and above.
Checks that object only contains properties included in check, and throws INVALID_ARGUMENT if not.
Creates a recursive copy of anObject. Frozen (i.e. and other known immutable) objects are copied by reference.
Uses the Object.defineProperty
method to set a read-only property on an object.
Recursively check for a static method key on an inheritance chain from aConstructor to all ancestors.
This is used to mimic behaviour in other languages where this
in a static method will also search ancestors.
Retruns a Promise which resolves all child values on anObject.
Returns a shallow copy of anObject. This is the same as using Object.assign({ }, anObject)
.