The smart contracts reference implementation of the LUKSO Standard Proposals (LSPs).
For more information see Documentation on docs.lukso.tech.
This package is currently in early stages of development, use for testing or experimentation purposes only. |
---|
LSP smart contracts are available as a npm package.
npm install @lukso/lsp-smart-contracts
Alternatively you can also clone the repository and install its dependencies to start using the smart contracts.
$ git clone https://github.com/lukso-network/lsp-smart-contracts.git
$ cd ./lsp-smart-contracts
$ npm install
You can use the contracts JSON ABI by importing them as follow:
import LSP0ERC725Account from "@lukso/lsp-smart-contracts/artifacts/LSP0ERC725Account.json";
const myContract = new this.web3.eth.Contract(LSP0ERC725Account.abi, "", defaultOptions);
import "@lukso/lsp-smart-contracts/contracts/LSP0ERC725Account/LSP0ERC725Account.sol";
contract MyAccount is LSP0ERC725Account {
constructor(address _newOwner) LSP0ERC725Account(_newOwner) {
}
}
Chai contract tests are defined under the tests directory. To run all the tests, run:
$ npm test
You can find more infos on how to deploy the contracts via hardhat in the DEPLOYMENT page.
You can access interface IDs and other constants, using the constants.js
file file from the lsp-smart-contracts package.
const {
INTERFACE_IDS,
ERC1271,
OPERATIONS,
SupportedStandards,
ERC725YKeys,
BasicUPSetup_Schema,
PERMISSIONS,
ALL_PERMISSIONS,
Errors,
EventSignatures,
} = require("@lukso/lsp-smart-contracts/constants.js");
It also includes constant values Array data keys to retrieve both the array length and for index access.
'LSP5ReceivedAssets[]': {
length: '0x6460ee3c0aac563ccbf76d6e1d07bada78e3a9514e6382b736ed3f478ab7b90b',
index: '0x6460ee3c0aac563ccbf76d6e1d07bada',
},