Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Polyfill #84

Closed
wants to merge 11 commits into from
54 changes: 27 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ The usage section of this document provides detailed explanations and code examp
**LCD**(Light Client Daemon) class facilitates interaction with the Initia blockchain.

```typescript
import { LCDClient } from '@initia/initia.js';
import { LCDClient } from '@initia/initia.js'

const lcd = new LCDClient('https://lcd.mahalo-1.initia.xyz', {
chainId: 'mahalo-1',
gasPrices: '0.15uinit', // default gas prices
gasAdjustment: '1.75', // default gas adjustment for fee estimation
});
})
```


Expand All @@ -42,43 +42,43 @@ const lcd = new LCDClient('https://lcd.mahalo-1.initia.xyz', {
An abstract key interface that enables transaction signing and provides Bech32 address and public key derivation from a public key. 

```typescript
import { MnemonicKey } from '@initia/initia.js';
import { MnemonicKey } from '@initia/initia.js'

const key = new MnemonicKey({
mnemonic: 'bird upset ... evil cigar', // (optional) if null, generate a new Mnemonic key
account: 0, // (optional) BIP44 account number. default = 0
index: 0, // (optional) BIP44 index number. defualt = 0
coinType: 118, // (optional) BIP44 coinType. default = 118
});
})
```

### BCS

**BCS**(Binary Canonical Serialization) is the binary encoding for Move resources and other non-module values published on-chain.  

```typescript
import { bcs } from '@initia/initia.js';
import { bcs } from '@initia/initia.js'

// serialize, serialize value to BCS and encode it to base64
const serializedU64 = bcs
.u64() // type
.serialize(1234) // value
.toBase64();
.toBase64()

// deserialize
const deserializedU64 = bcs
.u64() // type
.parse(Uint8Array.from(Buffer.from(serializedU64, 'base64')));
.parse(Uint8Array.from(Buffer.from(serializedU64, 'base64')))

// vector
const serializedVector = bcs
.vector(bcs.u64())
.serialize([123, 456, 789])
.toBase64();
.toBase64()

// option
const serializedSome = bcs.option(bcs.u64()).serialize(123);
const serializedNone = bcs.option(bcs.u64()).serialize(null);
const serializedSome = bcs.option(bcs.u64()).serialize(123)
const serializedNone = bcs.option(bcs.u64()).serialize(null)
```

**Support types for BCS**
Expand All @@ -94,49 +94,49 @@ Msgs are object whose end-goal is to trigger state-transitions. They are wrapped
Send coins to others.

```typescript
import { MsgSend } from '@initia/initia.js';
import { MsgSend } from '@initia/initia.js'

const msg = new MsgSend(
'init1kdwzpz3wzvpdj90gtga4fw5zm9tk4cyrgnjauu', // sender address
'init18sj3x80fdjc6gzfvwl7lf8sxcvuvqjpvcmp6np', // recipient address
'1000uinit', // send amount
);
)
```

* `MsgDelegate()`

Delegate governance coin to validators (staking).

```typescript
import { MsgDelegate } from '@initia/initia.js';
import { MsgDelegate } from '@initia/initia.js'

const msg = new MsgDelegate(
'init1kdwzpz3wzvpdj90gtga4fw5zm9tk4cyrgnjauu', // delegator address
'init18sj3x80fdjc6gzfvwl7lf8sxcvuvqjpvcmp6np', // validator's operator addres
'100000uinit', // delegate amount
);
)
```

* `MsgUndelegate()`

Undelegate governance coin from validators (unstaking).

```typescript
import { MsgUndelegate } from '@initia/initia.js';
import { MsgUndelegate } from '@initia/initia.js'

const msg = new MsgUndelegate(
'init1kdwzpz3wzvpdj90gtga4fw5zm9tk4cyrgnjauu', // delegator address
'init18sj3x80fdjc6gzfvwl7lf8sxcvuvqjpvcmp6np', // validator's operator addres
'100000uinit', // undelegate amount
);
)
```

* `MsgExecute()`

Execute move contract function.

```typescript
import { MsgExecute } from '@initia/initia.js';
import { MsgExecute } from '@initia/initia.js'

const msg = new MsgExecute(
'init1kdwzpz3wzvpdj90gtga4fw5zm9tk4cyrgnjauu', // sender address
Expand All @@ -149,7 +149,7 @@ const msg = new MsgExecute(
bcs.address().serialize('0x3').toBase64(), // arguments, BCS-encoded
bcs.u64().serialize(10000).toBase64() // arguments, BCS-encoded
]
);
)
```

### Tx broadcasting 
Expand All @@ -159,31 +159,31 @@ const msg = new MsgExecute(
Create a wallet and sign transaction.  

```typescript
import { Wallet, LCDClient, MnemonicKey } from '@initia/initia.js';
import { Wallet, LCDClient, MnemonicKey } from '@initia/initia.js'

const key = new MnemonicKey({
mnemonic:
'moral wise tape glance grit gentle movie doll omit you pet soon enter year funny gauge digital supply cereal city ring egg repair coyote',
});
})

const lcd = new LCDClient('https://lcd.mahalo-1.initia.xyz', {
chainId: 'mahalo-1',
gasPrices: '0.15uinit', // default gas prices
gasAdjustment: '1.75', // default gas adjustment for fee estimation
});
})

const wallet = new Wallet(lcd, key);
const wallet = new Wallet(lcd, key)

const sendMsg = new MsgSend(
'init14l3c2vxrdvu6y0sqykppey930s4kufsvt97aeu', // sender address
'init18sj3x80fdjc6gzfvwl7lf8sxcvuvqjpvcmp6np', // recipient address
'1000uinit', // send amount
);
)

const signedTx = await wallet.createAndSignTx({
msgs: [sendMsg],
memo: 'sample memo',
});
})
```

When sending coins with `MsgSend`, sender address should be same with wallet address.
Expand All @@ -193,7 +193,7 @@ When sending coins with `MsgSend`, sender address should be same with wallet add
`broadcast()` is the action that sends your transaction to the blockchain code.

```typescript
const broadcastResult = await lcd.tx.broadcast(signedTx);
const broadcastResult = await lcd.tx.broadcast(signedTx)
```

### Queries 
Expand All @@ -203,7 +203,7 @@ const broadcastResult = await lcd.tx.broadcast(signedTx);
Query the balance of the account.

```typescript
const balances = await lcd.bank.balance('init14l3c2vxrdvu6y0sqykppey930s4kufsvt97aeu');
const balances = await lcd.bank.balance('init14l3c2vxrdvu6y0sqykppey930s4kufsvt97aeu')
```

* `viewfunction()`
Expand All @@ -221,5 +221,5 @@ const res = await lcd.move.viewFunction(
bcs.address().serialize('0x3').toBase64(), // arguments, BCS-encoded
bcs.u64().serialize(10000).toBase64() // arguments, BCS-encoded
]
);
)
```
Loading