@openzeppelin/contract-loader
Advanced tools
+75
| # OpenZeppelin Contract Loader | ||
| [](https://www.npmjs.org/package/@openzeppelin/contract-loader) | ||
| [](https://circleci.com/gh/OpenZeppelin/openzeppelin-contract-loader) | ||
| **Load contract objects from built artifacts or ABIs.** Includes support for both `web3-eth-contract` and `@truffle/contract` objects. | ||
| ```javascript | ||
| const { setupLoader } = require('@openzeppelin/contract-loader'); | ||
| const loader = setupLoader({ provider: new Web3('http://localhost:8545') }).web3; | ||
| const address = '0xCfEB869F69431e42cdB54A4F4f105C19C080A601'; | ||
| const erc20 = loader.fromArtifact('ERC20', address); | ||
| const totalSupply = await token.methods.totalSupply().call(); | ||
| ``` | ||
| ## Overview | ||
| ### Installation | ||
| ```bash | ||
| npm install @openzeppelin/contract-loader | ||
| ``` | ||
| You may also need to install [`web3-eth-contract`](https://www.npmjs.com/package/web3-eth-contract) or [`@truffle/contract`](https://www.npmjs.com/package/@truffle/contract), depending on which abstractions you want to be able to load. | ||
| ### Usage | ||
| Create a loader object: | ||
| ```javascript | ||
| const { setupLoader } = require('@openzeppelin/contract-loader'); | ||
| const loader = setupLoader({ | ||
| provider, // either a web3 provider or a web3 instance | ||
| defaultSender, // optional | ||
| defaultGas, // optional, defaults to 8 million | ||
| }); | ||
| ``` | ||
| Load web3 contracts: | ||
| ```javascript | ||
| const ERC20 = loader.web3.fromArtifact('ERC20'); | ||
| // Deploy contract | ||
| const token = await ERC20.deploy().send(); | ||
| // Send transactions and query state | ||
| const balance = await token.methods.balanceOf(sender).call(); | ||
| await token.methods.transfer(receiver, balance).send({ from: sender }); | ||
| ``` | ||
| Load Truffle contracts: | ||
| ```javascript | ||
| const ERC20 = loader.truffle.fromArtifact('ERC20'); | ||
| // Deploy contract | ||
| const token = await ERC20.new(); | ||
| // Send transactions and query state | ||
| const balance = await token.balanceOf(sender); | ||
| await token.transfer(receiver, balance, { from: sender }); | ||
| ``` | ||
| ## Learn More | ||
| * For detailed usage information, take a look at the [API Reference](https://docs.openzeppelin.com/contract-loader/api). | ||
| ## License | ||
| [MIT](LICENSE). |
+6
-0
| # Changelog | ||
| ## 0.6.1 (unreleased) | ||
| * Added `artifactsDir` option. ([#17](https://github.com/OpenZeppelin/openzeppelin-contract-loader/pull/17)) | ||
| ## 0.6.0 (2019-12-26) | ||
| * Made `defaultSender` and `defaultGas` optional, reduced default gas to 200k, added `defaultGasPrice` option. ([6b543b](https://github.com/OpenZeppelin/openzeppelin-contract-loader/commit/6b543b), [971bdc](https://github.com/OpenZeppelin/openzeppelin-contract-loader/commit/971bdc), [9a71df](https://github.com/OpenZeppelin/openzeppelin-contract-loader/commit/9a71df)) | ||
| ## 0.5.0 (2019-11-16) | ||
@@ -4,0 +10,0 @@ * Renamed `fromArtifacts` to `fromArtifact`. ([56c483](https://github.com/OpenZeppelin/openzeppelin-contract-loader/commit/56c483d37c8fa4f84a7eb7a6f21ca207c738a699)) |
+6
-4
@@ -6,2 +6,3 @@ interface LoaderConfig { | ||
| defaultGasPrice?: number; | ||
| artifactsDir?: string; | ||
| } | ||
@@ -18,3 +19,4 @@ interface Loader { | ||
| defaultGasPrice?: number; | ||
| constructor(providerOrWeb3: any, defaultSender?: string, defaultGas?: number, defaultGasPrice?: number); | ||
| artifactsDir: string; | ||
| constructor(providerOrWeb3: any, defaultSender?: string, defaultGas?: number, defaultGasPrice?: number, artifactsDir?: string); | ||
| fromArtifact(contract: string, address?: string): any; | ||
@@ -26,3 +28,3 @@ abstract fromABI(abi: object, bytecode?: string, address?: string): any; | ||
| fromABI(abi: object, bytecode?: string, address?: string): any; | ||
| protected get web3Contract(): any; | ||
| protected readonly web3Contract: any; | ||
| } | ||
@@ -32,5 +34,5 @@ export declare class TruffleLoader extends BaseLoader { | ||
| fromABI(abi: object, bytecode?: string, address?: string): any; | ||
| protected get truffleContract(): any; | ||
| protected readonly truffleContract: any; | ||
| } | ||
| export declare function setupLoader({ provider, defaultSender, defaultGas, defaultGasPrice, }: LoaderConfig): { | ||
| export declare function setupLoader({ provider, defaultSender, defaultGas, defaultGasPrice, artifactsDir, }: LoaderConfig): { | ||
| web3: Web3Loader; | ||
@@ -37,0 +39,0 @@ truffle: TruffleLoader; |
+15
-11
@@ -25,6 +25,6 @@ "use strict"; | ||
| var DEFAULT_GAS_PRICE = 1e9; | ||
| function localArtifactPath(contract) { | ||
| var buildDir = find_up_1.default.sync('build/contracts', { type: 'directory' }); | ||
| function localArtifactPath(contract, artifactsDir) { | ||
| var buildDir = find_up_1.default.sync(artifactsDir, { type: 'directory' }); | ||
| if (!buildDir) { | ||
| throw new Error('Could not find local "build/contracts" directory'); | ||
| throw new Error("Could not find local " + artifactsDir + " when looking for local artifacts"); | ||
| } | ||
@@ -41,11 +41,14 @@ return path_1.join(buildDir, contract + ".json"); | ||
| catch (err) { | ||
| throw new Error("Cannot find contract " + contractWithDependency + ": " + err.message); | ||
| throw new Error("Cannot find contract " + contractWithDependency + ": " + err.message); | ||
| } | ||
| } | ||
| function loadArtifact(contract) { | ||
| var artifactPath = contract.includes('/') ? dependencyArtifactPath : localArtifactPath; | ||
| function loadArtifact(contract, artifactsDir) { | ||
| var artifactPath = contract.includes('/') | ||
| ? dependencyArtifactPath | ||
| : function (c) { return localArtifactPath(c, artifactsDir); }; | ||
| return fs_extra_1.readJSONSync(artifactPath(contract), { encoding: 'utf8' }); | ||
| } | ||
| var BaseLoader = /** @class */ (function () { | ||
| function BaseLoader(providerOrWeb3, defaultSender, defaultGas, defaultGasPrice) { | ||
| function BaseLoader(providerOrWeb3, defaultSender, defaultGas, defaultGasPrice, artifactsDir) { | ||
| if (artifactsDir === void 0) { artifactsDir = 'build/contracts'; } | ||
| if (providerOrWeb3.currentProvider) { | ||
@@ -61,5 +64,6 @@ this.provider = providerOrWeb3.currentProvider; | ||
| this.defaultGasPrice = defaultGasPrice; | ||
| this.artifactsDir = artifactsDir; | ||
| } | ||
| BaseLoader.prototype.fromArtifact = function (contract, address) { | ||
| var _a = loadArtifact(contract), abi = _a.abi, bytecode = _a.bytecode; | ||
| var _a = loadArtifact(contract, this.artifactsDir), abi = _a.abi, bytecode = _a.bytecode; | ||
| return this.fromABI(abi, bytecode, address); | ||
@@ -143,6 +147,6 @@ }; | ||
| function setupLoader(_a) { | ||
| var provider = _a.provider, defaultSender = _a.defaultSender, _b = _a.defaultGas, defaultGas = _b === void 0 ? DEFAULT_GAS : _b, _c = _a.defaultGasPrice, defaultGasPrice = _c === void 0 ? DEFAULT_GAS_PRICE : _c; | ||
| var provider = _a.provider, defaultSender = _a.defaultSender, _b = _a.defaultGas, defaultGas = _b === void 0 ? DEFAULT_GAS : _b, _c = _a.defaultGasPrice, defaultGasPrice = _c === void 0 ? DEFAULT_GAS_PRICE : _c, artifactsDir = _a.artifactsDir; | ||
| return { | ||
| web3: new Web3Loader(provider, defaultSender, defaultGas, defaultGasPrice), | ||
| truffle: new TruffleLoader(provider, defaultSender, defaultGas, defaultGasPrice), | ||
| web3: new Web3Loader(provider, defaultSender, defaultGas, defaultGasPrice, artifactsDir), | ||
| truffle: new TruffleLoader(provider, defaultSender, defaultGas, defaultGasPrice, artifactsDir), | ||
| }; | ||
@@ -149,0 +153,0 @@ } |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,qCAAwC;AACxC,oDAA6B;AAC7B,4DAAqC;AACrC,6BAA4B;AAE5B,IAAM,WAAW,GAAG,GAAG,CAAC;AACxB,IAAM,iBAAiB,GAAG,GAAG,CAAC;AAc9B,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAM,QAAQ,GAAG,iBAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IACD,OAAO,WAAI,CAAC,QAAQ,EAAK,QAAQ,UAAO,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,sBAAsB,CAAC,sBAA8B;IAC5D,IAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpD,IAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;IACjC,IAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,CAAI,UAAU,yBAAoB,QAAQ,UAAO,CAAC,CAAC;KAC1E;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,2BAAyB,sBAAsB,UAAK,GAAG,CAAC,OAAS,CAAC,CAAC;KACpF;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEzF,OAAO,uBAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACpE,CAAC;AAED;IAOE,oBAAY,cAAmB,EAAE,aAAsB,EAAE,UAAmB,EAAE,eAAwB;QACpG,IAAI,cAAc,CAAC,eAAe,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC;YAC/C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;SAChC;QAED,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAEM,iCAAY,GAAnB,UAAoB,QAAgB,EAAE,OAAgB;QAC9C,IAAA,2BAA0C,EAAxC,YAAG,EAAE,sBAAmC,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAGH,iBAAC;AAAD,CAAC,AA1BD,IA0BC;AAED;IAAgC,8BAAU;IAA1C;;IAiCA,CAAC;IA9BQ,4BAAO,GAAd,UAAe,GAAW,EAAE,QAAiB,EAAE,OAAgB;QAC7D,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE;YACzC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,CAAC,aAAa;YACxB,GAAG,EAAE,IAAI,CAAC,UAAU;YACpB,QAAQ,EAAE,IAAI,CAAC,eAAe;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,sBAAc,oCAAY;aAA1B;YACE,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;gBACpC,6EAA6E;gBAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC3B,IAAM,GAAG,GAAG,qBAAU,CAAC,mBAAmB,CAAC,CAAC;oBAC5C,IAAI,GAAG,KAAK,SAAS,EAAE;wBACrB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;qBACH;oBACD,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC/B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;iBAC1B;gBACD,uFAAuF;qBAClF;oBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;iBAC7C;aACF;YAED,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;;;OAAA;IACH,iBAAC;AAAD,CAAC,AAjCD,CAAgC,UAAU,GAiCzC;AAjCY,gCAAU;AAmCvB;IAAmC,iCAAU;IAA7C;;IA6BA,CAAC;IA1BQ,+BAAO,GAAd,UAAe,GAAW,EAAE,QAAiB,EAAE,OAAgB;QAC7D,wDAAwD;QACxD,IAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,KAAA,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7E,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,WAAW,CAAC,QAAQ,CAAC;YACnB,IAAI,EAAE,IAAI,CAAC,aAAa;YACxB,GAAG,EAAE,IAAI,CAAC,UAAU;YACpB,QAAQ,EAAE,IAAI,CAAC,eAAe;SAC/B,CAAC,CAAC;QAEH,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,sBAAc,0CAAe;aAA7B;YACE,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACvC,IAAM,GAAG,GAAG,qBAAU,CAAC,mBAAmB,CAAC,CAAC;gBAC5C,IAAI,GAAG,KAAK,SAAS,EAAE;oBACrB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;iBACH;gBACD,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;aAC7B;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;;;OAAA;IACH,oBAAC;AAAD,CAAC,AA7BD,CAAmC,UAAU,GA6B5C;AA7BY,sCAAa;AA+B1B,SAAgB,WAAW,CAAC,EAKb;QAJb,sBAAQ,EACR,gCAAa,EACb,kBAAwB,EAAxB,6CAAwB,EACxB,uBAAmC,EAAnC,wDAAmC;IAEnC,OAAO;QACL,IAAI,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,CAAC;QAC1E,OAAO,EAAE,IAAI,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,CAAC;KACjF,CAAC;AACJ,CAAC;AAVD,kCAUC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@openzeppelin/contract-loader", | ||
| "version": "0.6.0", | ||
| "version": "0.6.1-rc.0", | ||
| "description": "Load contract ABIs from built artifacts and return contract objects", | ||
@@ -5,0 +5,0 @@ "files": [ |
-67
| # OpenZeppelin Contract Loader | ||
| https://www.npmjs.org/package/@openzeppelin/contract-loader[image:https://img.shields.io/npm/v/@openzeppelin/contract-loader.svg[NPM]] | ||
| https://circleci.com/gh/OpenZeppelin/openzeppelin-contract-loader[image:https://circleci.com/gh/OpenZeppelin/openzeppelin-contract-loader.svg?style=shield[CircleCI]] | ||
| = Contract Loader | ||
| **Load contract objects from built artifacts or ABIs.** Includes support for both `web3-eth-contract` and `@truffle/contract` objects. | ||
| == Overview | ||
| === Installation | ||
| ```bash | ||
| npm install @openzeppelin/contract-loader | ||
| ``` | ||
| You may also need to install https://www.npmjs.com/package/web3-eth-contract[`web3-eth-contract`] or https://www.npmjs.com/package/@truffle/contract[`@truffle/contract`], depending on which abstractions you want to be able to load. | ||
| === Usage | ||
| Create a loader object: | ||
| ```javascript | ||
| const { setupLoader } = require('@openzeppelin/contract-loader'); | ||
| const loader = setupLoader({ | ||
| provider, // either a web3 provider or a web3 instance | ||
| defaultSender, // optional | ||
| defaultGas, // optional, defaults to 8 million | ||
| }); | ||
| ``` | ||
| Load web3 contracts: | ||
| ```javascript | ||
| const ERC20 = loader.web3.fromArtifact('ERC20'); | ||
| // Deploy contract | ||
| const token = await ERC20.deploy().send(); | ||
| // Send transactions and query state | ||
| const balance = await token.methods.balanceOf(sender).call(); | ||
| await token.methods.transfer(receiver, balance).send({ from: sender }); | ||
| ``` | ||
| Load Truffle contracts: | ||
| ```javascript | ||
| const ERC20 = loader.truffle.fromArtifact('ERC20'); | ||
| // Deploy contract | ||
| const token = await ERC20.new(); | ||
| // Send transactions and query state | ||
| const balance = await token.balanceOf(sender); | ||
| await token.transfer(receiver, balance, { from: sender }); | ||
| ``` | ||
| == Learn More | ||
| * For detailed usage information, take a look at the xref:api.adoc[API Reference]. | ||
| == License | ||
| link:LICENSE[MIT]. |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
187
3.31%76
11.76%0
-100%81073
-15.42%