Class: WalletV1
WalletV1 is a class used for performing operations on the cluster that require authentication.
WalletV1
Constructors
new WalletV1()
new WalletV1(param0): WalletV1
Creates an instance of WalletV1.
Parameters
| Parameter | Type | Description | 
|---|---|---|
| 
 | The object representing the initial wallet config. See WalletV1Config. | 
Returns
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:144
Properties
address
address: Uint8Array;
The wallet address.
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:130
client
client: PublicClient;
The client for interacting with the wallet.
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:112
pubkey
pubkey: Uint8Array;
The wallet public key.
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:100
salt?
optional salt: Uint8Array;
Arbitrary data for changing the wallet address.
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:118
shardId
shardId: number;
The ID of the shard where the wallet is deployed.
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:106
signer
signer: ISigner;
The wallet signer.
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:124
abi
static abi: Abi;
The wallet ABI.
Static
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:42
code
static code: Uint8Array;
The wallet bytecode.
Static
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:35
Methods
checkDeploymentStatus()
checkDeploymentStatus(): Promise<boolean>
Checks the deployment status.
Returns
Promise<boolean>
The current deployment status.
Async
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:270
deployContract()
deployContract(param0): Promise<object>
Deploys a new smart contract via the wallet.
Parameters
| Parameter | Type | Description | 
|---|---|---|
| 
 | The object representing the contract deployment params. | 
Returns
Promise<object>
The object containing the deployment message hash and the contract address.
address
address: `0x${string}`;
hash
hash: `0x${string}`;
Async
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:412
getAddressHex()
getAddressHex(): `0x${string}`
Converts the wallet address into a hexadecimal.
Returns
`0x${string}`
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:177
getBalance()
getBalance(): Promise<bigint>
Returns the wallet balance.
Returns
Promise<bigint>
The wallet balance.
Async
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:521
requestToWallet()
requestToWallet(requestParams, send?): Promise<object>
Performs a request to the wallet.
Parameters
| Parameter | Type | Default value | Description | 
|---|---|---|---|
| 
 | 
 | The object representing the request parameters. | |
| 
 | 
 | 
 | The flag that determines whether the request is sent when the function is called. | 
Returns
Promise<object>
The message bytecode and hash.
hash
hash: Uint8Array;
raw
raw: Uint8Array;
Async
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:283
selfDeploy()
selfDeploy(waitTillConfirmation?): Promise<Uint8Array>
Deploys the wallet.
Parameters
| Parameter | Type | Default value | Description | 
|---|---|---|---|
| 
 | 
 | 
 | The flag that determines whether the function waits for deployment confirmation before exiting. | 
Returns
Promise<Uint8Array>
The hash of the deployment transaction.
Async
Example
import {
    Faucet,
    HttpTransport,
    LocalECDSAKeySigner,
    PublicClient,
    WalletV1,
    generateRandomPrivateKey,
  } from '@nilfoundation/niljs';
const client = new PublicClient({
    transport: new HttpTransport({
      endpoint: "http://127.0.0.1:8529",
    }),
    shardId: 1,
  });
const signer = new LocalECDSAKeySigner({
    privateKey: generateRandomPrivateKey(),
  });
const faucet = new Faucet(client);
await faucet.withdrawTo(walletAddress, 100000n);
const pubkey = await signer.getPublicKey();
const wallet = new WalletV1({
    pubkey: pubkey,
    salt: 100n,
    shardId: 1,
    client,
    signer,
    address: WalletV1.calculateWalletAddress({
      pubKey: pubkey,
      shardId: 1,
      salt: 100n,
    }),
  });
await wallet.selfDeploy(true);
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:222
sendMessage()
sendMessage(param0): Promise<`0x${string}`>
Send a message via the wallet.
Parameters
| Parameter | Type | Description | 
|---|---|---|
| 
 | The object representing the message params. | 
Returns
Promise<`0x${string}`>
The message hash.
Async
Example
const anotherAddress = WalletV1.calculateWalletAddress({
    pubKey: pubkey,
    shardId: 1,
    salt: 200n,
  });
await wallet.sendMessage({
    to: anotherAddress,
    value: 10n,
    gas: 100000n,
  });
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:334
sendRawInternalMessage()
sendRawInternalMessage(rawMessage): Promise<`0x${string}`>
Send a raw signed message via the wallet.
Parameters
| Parameter | Type | Description | 
|---|---|---|
| 
 | 
 | The message bytecode. | 
Returns
Promise<`0x${string}`>
The message hash.
Async
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:387
syncSendMessage()
syncSendMessage(param0): Promise<`0x${string}`>
Send a message synchronously via the wallet.
Parameters
| Parameter | Type | Description | 
|---|---|---|
| 
 | The object representing the message params. | 
Returns
Promise<`0x${string}`>
The message hash.
Async
Example
const anotherAddress = WalletV1.calculateWalletAddress({
    pubKey: pubkey,
    shardId: 1,
    salt: 200n,
  });
await wallet.sendMessage({
    to: anotherAddress,
    value: 10n,
    gas: 100000n,
  });
Defined in
nil/nil.js/src/contracts/WalletV1/WalletV1.ts:486
calculateWalletAddress()
static calculateWalletAddress(param0): Uint8Array
Calculates the address of the new wallet.
Parameters
| Parameter | Type | Description | 
|---|---|---|
| 
 | 
 | The object representing the config for address calculation. | 
| 
 | 
 | The wallet public key. | 
| 
 | 
 | Arbitrary data change the address. | 
| 
 | 
 | The ID of the shard where the wallet should be deployed. | 
Returns
Uint8Array
The address of the new wallet.
Static
Example
import {
    LocalECDSAKeySigner,
    WalletV1,
    generateRandomPrivateKey,
  } from '@nilfoundation/niljs';
const signer = new LocalECDSAKeySigner({
    privateKey: generateRandomPrivateKey(),
  });
  const pubkey = await signer.getPublicKey();
const anotherAddress = WalletV1.calculateWalletAddress({
    pubKey: pubkey,
    shardId: 1,
    salt: 200n,
  });