Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lukso-network/tools-lsp-factory
Easy deployments of LSP standard Universal Profile and Digital Asset smart contracts
https://github.com/lukso-network/tools-lsp-factory
erc725 jslib web3
Last synced: about 1 month ago
JSON representation
Easy deployments of LSP standard Universal Profile and Digital Asset smart contracts
- Host: GitHub
- URL: https://github.com/lukso-network/tools-lsp-factory
- Owner: lukso-network
- License: apache-2.0
- Created: 2021-07-22T12:05:05.000Z (about 3 years ago)
- Default Branch: develop
- Last Pushed: 2023-12-19T17:42:30.000Z (9 months ago)
- Last Synced: 2023-12-20T12:28:02.456Z (9 months ago)
- Topics: erc725, jslib, web3
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@lukso/lsp-factory.js
- Size: 7.98 MB
- Stars: 14
- Watchers: 10
- Forks: 15
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
@lukso/lsp-factory.js
Deprecated: The development of this library is currently put on hold, please use the LSP-smart-contracts directly
Helper library to allow simple deployments of UniversalProfiles and LSP7 and LSP8 Digital Assets.
For more information see Documentation.
## Install
```bash
npm install @lukso/lsp-factory.js
```## Setup
```javascript
import { LSPFactory } from '@lukso/lsp-factory.js';const provider = 'https://rpc.testnet.lukso.network'; // RPC url used to connect to the network
const lspFactory = new LSPFactory(provider, {
deployKey: '0x...'; // Private key of the account which will deploy UPs
chainId: 2828, // Chain Id of the network you want to connect to
});
```## Usage
### Deploying an ERC725Account (Universal Profile)
```javascript
// Deploy LSP3 Account
const myContracts = await lspFactory.UniversalProfile.deploy({
controllerAddresses: ['0x...'], // Address which will controll the UP
lsp3Profile: {
name: 'My Universal Profile',
description: 'My cool Universal Profile',
profileImage: [
{
width: 500,
height: 500,
verification: {
method: 'keccak256(bytes)',
data: '0xfdafad027ecfe57eb4ad047b938805d1dec209d6e9f960fc320d7b9b11cbed14',
},
url: 'ipfs://QmPLqMFHxiUgYAom3Zg4SiwoxDaFcZpHXpCmiDzxrtjSGp',
},
],
backgroundImage: [
{
width: 500,
height: 500,
verification: {
method: 'keccak256(bytes)',
data: '0xfdafad027ecfe57eb4ad047b938805d1dec209d6e9f960fc320d7b9b11cbed14',
},
url: 'ipfs://QmPLqMFHxiUgYAom3Zg4SiwoxDaFcZpHXpCmiDzxrtjSGp',
},
],
tags: ['Fashion', 'Design'],
links: [{ title: 'My Website', url: 'www.my-website.com' }],
},
});const myUPAddress = myContracts.LSP0ERC725Account.address;
```### Using Deployment events
The `onDeployEvents` option can be used to for real-time frontend updates.
```javascript
const profileDeploymentEvents = [];const myContracts = await lspFactory.UniversalProfile.deploy(
{
controllerAddresses: ['0x...'], // Address which will controll the UP
},
{
onDeployEvents: {
next: (deploymentEvent: DeploymentEvent) => {
profileDeploymentEvents.push(deploymentEvent);
},
error: (error) => {
console.error(error);
},
complete: () => {
console.log(profileDeploymentEvents);
},
},
}
);
```## Contributing
Please check [CONTRIBUTING](./CONTRIBUTING.md).
### License
lsp-factory.js is [Apache 2.0 licensed](./LICENSE).