Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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.



NPM version


Tests Passing






Issues


GitHub pull requests

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).