24.1.0 • Published 6 months ago

@magic-ext/icon v24.1.0

Weekly downloads
5
License
MIT
Repository
github
Last release
6 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.18.1

12 months ago

23.18.0

1 year ago

23.20.0

11 months ago

24.1.0

6 months ago

23.19.0

11 months ago

23.17.0

1 year ago

24.0.5

8 months ago

24.0.4

8 months ago

24.0.3

8 months ago

24.0.2

9 months ago

24.0.6

7 months ago

24.0.1

9 months ago

24.0.0

9 months ago

23.15.0

1 year ago

23.16.0

1 year ago

23.13.0

1 year ago

23.14.0

1 year ago

23.11.0

1 year ago

23.12.0

1 year ago

23.10.0

1 year ago

23.7.0

1 year ago

23.8.0

1 year ago

23.9.0

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

2 years ago

23.0.1

2 years ago

23.0.0

2 years ago

22.0.0

2 years 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

3 years ago

12.4.0

2 years ago

12.2.0

3 years ago

13.0.0

2 years ago

13.0.1

2 years ago

12.3.0

3 years ago

12.1.3

3 years ago

12.1.4

3 years ago

12.1.5

3 years ago

10.0.0

3 years ago

8.6.2

3 years ago

8.6.1

3 years ago

8.6.0

3 years ago

12.0.0

3 years ago

11.2.0

3 years ago

11.0.0

3 years ago

11.0.1

3 years ago

10.1.0

3 years ago

8.5.0

3 years ago

12.1.2

3 years ago

12.1.0

3 years ago

12.1.1

3 years ago

9.0.0

3 years ago

11.1.0

3 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

5.0.0

3 years ago

4.1.0

3 years ago

4.0.0

3 years ago

3.1.1

4 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.2.0

5 years ago

0.1.11

6 years ago

0.1.10

6 years ago