23.16.0 • Published 9 months ago

@magic-ext/icon v23.16.0

Weekly downloads
5
License
MIT
Repository
github
Last release
9 months ago

Magic Extension Icon Blockchain

Installation

npm i magic-sdk @magic-exticon

Setup

Setup IconExtension with magic-sdk

import { Magic } from 'magic-sdk';
import { IconExtension } from '@magic-ext/icon';

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

// or

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

Magic SDK

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

Usage

Get account

Using getAccount function to get Icon public address for current user.

const publicAddress = await magic.icon.getAccount();
console.log('icon public address', publicAddress);

Send Transaction

Build the transaction object using builder class.

    /* Build `IcxTransaction` instance for sending ICX. */
    const txObj = new IconBuilder.IcxTransactionBuilder()
                .from("hxe4837d3b902dcaf9abe529f5584489c28d8b4621")
                .to("hxe4837d3b902dcaf9abe529f5584489c28d8b4621")
                .value(IconAmount.of(0.5, IconAmount.Unit.ICX).toLoop())
                .stepLimit(IconConverter.toBigNumber(100000))
                .nid(IconConverter.toBigNumber(3))
                .nonce(IconConverter.toBigNumber(1))
                .version(IconConverter.toBigNumber(3))
                .timestamp((new Date()).getTime() * 1000)
                .build();
    
    /* Build `MessageTransaction` instance for sending data. */
    const txObj = new IconBuilder.MessageTransactionBuilder()
                  .from('hxe4837d3b902dcaf9abe529f5584489c28d8b4621')
                  .to('hxe4837d3b902dcaf9abe529f5584489c28d8b4621')
                  .stepLimit(IconConverter.toBigNumber(1000000))
                  .nid(IconConverter.toBigNumber(3))
                  .nonce(IconConverter.toBigNumber(1))
                  .version(IconConverter.toBigNumber(3))
                  .timestamp((new Date()).getTime() * 1000)
                  .data(IconConverter.fromUtf8('Hello'))
                  .build();
           
    /* Build `DeployTransaction` instance for deploying SCORE. */
    const txObj = new DeployTransactionBuilder()
                .from('hxe4837d3b902dcaf9abe529f5584489c28d8b4621')
                .to('cx0000000000000000000000000000000000000000')
                .stepLimit(IconConverter.toBigNumber(2100000000))
                .nid(IconConverter.toBigNumber(3))
                .nonce(IconConverter.toBigNumber(1))
                .version(IconConverter.toBigNumber(3))
                .timestamp((new Date()).getTime() * 1000)
                .contentType('application/zip')
                .content(`0x${content}`)
                .params({
                    initialSupply: IconConverter.toHex('100000000000'),
                    decimals: IconConverter.toHex(18),
                    name: 'StandardToken',
                    symbol: 'ST',
                })
                .build();
    
    /* Build `CallTransaction` instance for executing SCORE function. */
    const txObj = new IconBuilder.CallTransactionBuilder()
                .from('hxe4837d3b902dcaf9abe529f5584489c28d8b4621')
                .to('cxd1602bde1d4b2b4facc8673c661c5e59e6ac20b4')
                .stepLimit(IconConverter.toBigNumber('2000000'))
                .nid(IconConverter.toBigNumber('3'))
                .nonce(IconConverter.toBigNumber('1'))
                .version(IconConverter.toBigNumber('3'))
                .timestamp((new Date()).getTime() * 1000)
                .method('hello')
                .params({})

By passing txObj instance to magic.icon.sendTransaction() method, it will automatically sign the transaction with current user and generate transaction object including signature, then send to ICON node.

    const txhash = await magic.icon.sendTransaction(txObj);

    console.log('transaction result', txhash);
    window.open(`https://bicon.tracker.solidwallet.io/transaction/${txhash}`)
23.15.0

9 months ago

23.16.0

9 months ago

23.13.0

9 months ago

23.14.0

9 months ago

23.11.0

10 months ago

23.12.0

9 months ago

23.10.0

10 months ago

23.7.0

10 months ago

23.8.0

10 months ago

23.9.0

10 months ago

23.6.0

11 months ago

23.4.0

11 months ago

23.5.0

11 months 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

11 months ago

23.2.0

12 months ago

23.3.0

11 months 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

1 year ago

19.0.0

1 year ago

20.0.0

1 year ago

18.0.0

1 year ago

17.1.1

1 year ago

17.1.0

1 year ago

17.0.1

1 year ago

17.0.0

1 year 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

2 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

2 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

2 years ago

8.2.0

2 years ago

8.4.0

2 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

5.0.0

3 years ago

4.1.0

3 years ago

4.0.0

3 years ago

3.1.1

3 years ago

3.1.0

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

1.0.0

4 years ago

2.0.0

4 years ago

0.2.0

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago