23.16.0 • Published 11 months ago

@magic-ext/zilliqa v23.16.0

Weekly downloads
2
License
MIT
Repository
github
Last release
11 months ago

Magic Extension Zilliqa blockchain

Installation

npm i magic-sdk @magic-ext/zilliqa

Setup

Setup TezosExtension with magic-sdk

import { Magic } from 'magic-sdk';
import { ZilliqaExtension } from '@magic-ext/zilliqa';
const { BN, Long, bytes, units } = require('@zilliqa-js/util');

const magic = new Magic('YOUR_API_KEY', {
    extensions: [
        new ZilliqaExtension({
            rpcUrl: 'zilliqa rpc url'
        })
    ]
});

// or


const magic = new Magic('YOUR_API_KEY', {
    extensions: {
        zilliqa: new ZilliqaExtension({
            rpcUrl: 'zilliqa rpc url'
        })
    }
});

Magic SDK

See the developer documentation to learn how you can master the Magic SDK in a matter of minutes.

Usage

Get wallet

Using wallet function to get Zilliqa public key, and address for current user.

const wallet = await magic.zilliqa.getWallet();
console.log('zilliqa wallet', wallet);

Send Transaction

      const handlerSendTransaction = async () => {

          const chainId = 333; // chainId of the developer testnet
          const msgVersion = 1; // current msgVersion
          const VERSION = bytes.pack(chainId, msgVersion);

          const myGasPrice = units.toQa('1000', units.Units.Li);

          const params = {
              version: VERSION,
              toAddr: "zil14vut0rh7q78ydc0g7yt7e5zkfyrmmps00lk6r7",
              amount: (new BN(units.toQa('0.5', units.Units.Zil))), // Sending an amount in Zil (1) and converting the amount to Qa
              gasPrice: myGasPrice, // Minimum gasPrice veries. Check the `GetMinimumGasPrice` on the blockchain
              gasLimit: Long.fromNumber(1),
          };

          const tx = await magic.zil.sendTransaction(
              params,
              false,
          );

          console.log('send transaction', tx)
      };

Deploy Contract

const handleDeployContract = async () => {
          const wallet = await magic.zil.getWallet();

          const address = wallet.address;

          const code = `scilla_version 0

    (* HelloWorld contract *)

    import ListUtils

    (***************************************************)
    (*               Associated library                *)
    (***************************************************)
    library HelloWorld

    let not_owner_code = Int32 1
    let set_hello_code = Int32 2

    (***************************************************)
    (*             The contract definition             *)
    (***************************************************)

    contract HelloWorld
    (owner: ByStr20)

    field welcome_msg : String = ""

    transition setHello (msg : String)
      is_owner = builtin eq owner _sender;
      match is_owner with
      | False =>
        e = {_eventname : "setHello()"; code : not_owner_code};
        event e
      | True =>
        welcome_msg := msg;
        e = {_eventname : "setHello()"; code : set_hello_code};
        event e
      end
    end


    transition getHello ()
        r <- welcome_msg;
        e = {_eventname: "getHello()"; msg: r};
        event e
    end`;

          const init = [
              // this parameter is mandatory for all init arrays
              {
                  vname: '_scilla_version',
                  type: 'Uint32',
                  value: '0',
              },
              {
                  vname: 'owner',
                  type: 'ByStr20',
                  value: `${address}`,
              },
          ];

          const chainId = 333; // chainId of the developer testnet
          const msgVersion = 1; // current msgVersion
          const VERSION = bytes.pack(chainId, msgVersion);

          const myGasPrice = units.toQa('1000', units.Units.Li);

          const params = {
              version: VERSION,
              gasPrice: myGasPrice,
              gasLimit: Long.fromNumber(10000),
          }

          const result = await magic.zil.deployContract(
              init, code, params, 33, 1000, false
          )


          console.log('deploy contract', result);


      };

Call Contract

      const handleCallContract = async () => {

          const newMsg = 'Hello, test call contract' ;

          const chainId = 333; // chainId of the developer testnet
          const msgVersion = 1; // current msgVersion
          const VERSION = bytes.pack(chainId, msgVersion);

          const myGasPrice = units.toQa('1000', units.Units.Li);

          const params = {
              // amount, gasPrice and gasLimit must be explicitly provided
              version: VERSION,
              amount: new BN(0),
              gasPrice: myGasPrice,
              gasLimit: Long.fromNumber(8000),
          }

          const args = [
              {
                  vname: 'msg',
                  type: 'String',
                  value: newMsg,
              },
          ];

          const contractAddress = '0x92867f6C65933bADB3F3e02A36Cf3ad85fE5155b';

            const result = await magic.zil.callContract(
                'setHello', args, params, 33, 1000, false, contractAddress
            );

          console.log('call contract', result)

      };
23.15.0

11 months ago

23.16.0

11 months ago

23.13.0

11 months ago

23.14.0

11 months ago

23.11.0

12 months ago

23.12.0

11 months ago

23.10.0

12 months ago

23.7.0

1 year ago

23.8.0

1 year ago

23.9.0

12 months ago

23.6.0

1 year ago

23.4.0

1 year ago

23.5.0

1 year ago

23.0.4

1 year ago

23.0.3

1 year ago

23.0.6

1 year ago

23.0.5

1 year ago

23.1.0

1 year ago

23.2.1

1 year ago

23.2.0

1 year ago

23.3.0

1 year ago

23.0.2

1 year ago

23.0.1

1 year ago

23.0.0

1 year ago

22.0.0

1 year ago

21.0.0

2 years ago

19.0.0

2 years ago

20.0.0

2 years ago

18.0.0

2 years ago

17.1.1

2 years ago

17.1.0

2 years ago

17.0.1

2 years ago

17.0.0

2 years ago

16.5.0

2 years ago

16.4.1

2 years ago

16.4.0

2 years ago

13.3.0

2 years ago

14.1.0

2 years ago

15.0.2

2 years ago

15.0.3

2 years ago

15.0.0

2 years ago

15.0.1

2 years ago

13.4.0

2 years ago

13.4.1

2 years ago

14.2.0

2 years ago

16.3.2

2 years ago

16.3.1

2 years ago

16.3.0

2 years ago

14.0.0

2 years ago

13.2.1

2 years ago

16.1.1

2 years ago

16.1.0

2 years ago

16.2.0

2 years ago

16.2.1

2 years ago

15.1.1

2 years ago

15.1.2

2 years ago

15.1.0

2 years ago

13.5.0

2 years ago

14.3.0

2 years ago

14.3.1

2 years ago

13.6.0

2 years ago

14.4.0

2 years ago

16.0.0

2 years ago

13.1.0

2 years ago

13.2.0

2 years ago

12.2.1

2 years ago

12.4.0

2 years ago

12.2.0

2 years ago

13.0.0

2 years ago

13.0.1

2 years ago

12.3.0

2 years ago

12.1.3

2 years ago

12.1.4

2 years ago

12.1.5

2 years ago

10.0.0

2 years ago

8.6.2

2 years ago

8.6.1

2 years ago

8.6.0

3 years ago

12.0.0

2 years ago

11.2.0

2 years ago

11.0.0

2 years ago

11.0.1

2 years ago

10.1.0

2 years ago

8.5.0

3 years ago

12.1.2

2 years ago

12.1.0

2 years ago

12.1.1

2 years ago

9.0.0

2 years ago

11.1.0

2 years ago

8.3.0

3 years ago

8.2.0

3 years ago

8.4.0

3 years ago

5.1.0

3 years ago

8.1.0

3 years ago

8.0.0

3 years ago

6.0.0

3 years ago

7.0.0

3 years ago

4.1.0

3 years ago

5.0.0

3 years ago

4.0.0

3 years ago

3.1.1

3 years ago

3.1.0

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

1.0.0

4 years ago

2.0.0

4 years ago

0.1.8

5 years ago