open-index/open-npm huggingface dataset:
npm package: 6502-disasm
Description: 6502-disasm
Author: W. Brian Gourlie
Latest version: 0.0.6

# 6502-disasm [![Build Status](https://travis-ci.org/bgourlie/6502-disasm.svg?branch=master)](https://travis-ci.org/bgourlie/6502-disasm)
A 6502 disassembler written in TypeScript.

### Usage

    const d = require("6502-disasm");
    const disasm = new d.Disassembler([0x61, 0xFA]);
    disasm.decodeNext(); // Outputs "ADC ($00,X)"
npm package: 6551.js
Description: NFT Bound account JS toolkit 
Author: Muse DAO
Latest version: 1.0.2

# 6551.js

6551.js is a tiny library to help working with Non-fungible Token Bound Accounts. You can read more about them here:
* [https://eips.ethereum.org/EIPS/eip-6551](EIP on ethereum.org)
* [https://ethereum-magicians.org/t/erc-6551-non-fungible-token-bound-accounts/13030](EIP on ethereum magicians)
* [https://eips.ethereum.org/EIPS/eip-6551](EIP on ethereum.org)
* [https://github.com/tokenbound/contracts](Official implementation)
* [https://github.com/tokenbound/sdk](Official SDK)

## Installation

You'll need to install the 6551.js package and have an instance of ethers.

```
npm install 6551.js --save
```

Then import in your project:

```
const { ethers } = require("ethers");

const ERC6551Registry = require("6551.js");

const provider = new ethers.JsonRpcProvider("https://rpc.ankr.com/eth_goerli");
const Registry = new ERC6551Registry(provider);

```

## Usage

### Create an account

This will generate the transaction data needed to deploy an account for a specifi NFT.

```
const NFT_CONTRACT = "0x5af0d9827e0c53e4799bb226655a1de152a425a5";
const NFT_ID = 1;

let unsignedTX = await Registry.prepareCreateAccount(NFT_CONTRACT, NFT_ID, Registry.DEFAULT_IMPLEMENTATION); // Implementation address and Salt are optional
let pendingTX = await signer.sendTransaction(unsignedTX)
```

### Compute the address of an account

```
let expectedAddress = await Registry.getAccountAddress(NFT_CONTRACT, NFT_ID); // Implementation address and Salt are optional
```

### Instantiate an account

There is two way to get an instance of an **Account**. The Account is then used to make calls/get informations.

```
// From parameters
let Account = await Registry.getAccount(NFT_CONTRACT, NFT_ID);  // Implementation address and Salt are optional

// From a known address
let Account2 = await Registry.getAccountFromAddress("0x324..4323434");
```


### Make a call to an account

You can make a call to an account using prepareExecuteCall. This will generate an unsigned transaction: 

```
// target contract, data, value in wei
let unsignedTX = await Account.prepareExecuteCall("0x324..4323434", "0x", 0); 
let pendingTX = await signer.sendTransaction(unsignedTX)
```

### Getters on account:

```
let nonce = await Account.owner();
let nonce = await Account.nonce();
let nonce = await Account.isCreated(); // returns if the given account is properly deployed at the address

```

## License and contribution

MIT License, feel free to PR or open new issues.