23.0.2 • Published 2 days ago

@magic-ext/icon v23.0.2

Weekly downloads
5
License
MIT
Repository
github
Last release
2 days 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.0.2

1 month ago

23.0.1

2 months ago

23.0.0

2 months ago

22.0.0

2 months ago

21.0.0

2 months ago

19.0.0

2 months ago

20.0.0

2 months ago

18.0.0

2 months ago

17.1.1

3 months ago

17.1.0

3 months ago

17.0.1

3 months ago

17.0.0

4 months ago

16.5.0

4 months ago

16.4.1

5 months ago

16.4.0

5 months ago

13.3.0

10 months ago

14.1.0

9 months ago

15.0.2

8 months ago

15.0.3

7 months ago

15.0.0

8 months ago

15.0.1

8 months ago

13.4.0

10 months ago

13.4.1

10 months ago

14.2.0

9 months ago

16.3.2

5 months ago

16.3.1

6 months ago

16.3.0

6 months ago

14.0.0

10 months ago

13.2.1

10 months ago

16.1.1

7 months ago

16.1.0

7 months ago

16.2.0

7 months ago

16.2.1

6 months ago

15.1.1

7 months ago

15.1.2

7 months ago

15.1.0

7 months ago

13.5.0

10 months ago

14.3.0

9 months ago

14.3.1

9 months ago

13.6.0

10 months ago

14.4.0

8 months ago

16.0.0

7 months ago

13.1.0

11 months ago

13.2.0

11 months ago

12.2.1

12 months ago

12.4.0

11 months ago

12.2.0

12 months ago

13.0.0

11 months ago

13.0.1

11 months ago

12.3.0

12 months ago

12.1.3

12 months ago

12.1.4

12 months ago

12.1.5

12 months ago

10.0.0

1 year ago

8.6.2

1 year ago

8.6.1

1 year ago

8.6.0

1 year ago

12.0.0

1 year ago

11.2.0

1 year ago

11.0.0

1 year ago

11.0.1

1 year ago

10.1.0

1 year ago

8.5.0

1 year ago

12.1.2

1 year ago

12.1.0

1 year ago

12.1.1

1 year ago

9.0.0

1 year ago

11.1.0

1 year ago

8.3.0

1 year ago

8.2.0

1 year ago

8.4.0

1 year ago

5.1.0

1 year ago

8.1.0

1 year ago

8.0.0

1 year ago

6.0.0

1 year ago

7.0.0

1 year ago

5.0.0

2 years ago

4.1.0

2 years ago

4.0.0

2 years ago

3.1.1

2 years ago

3.1.0

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

1.0.0

2 years ago

2.0.0

2 years ago

0.2.0

4 years ago

0.1.11

4 years ago

0.1.10

4 years ago