0.1.10 • Published 12 months ago

@fanfury/eip712 v0.1.10

Weekly downloads
-
License
MIT
Repository
-
Last release
12 months ago

EIP712

EIP712 transactions creator.

Installation

  • yarn add @tharsis/blackjs

Example

  • MsgSend:
import {
    createEIP712,
    generateFee,
    generateMessage,
    generateTypes,
    createMsgSend,
    msgSendTypes
} from '@tharsis/blackjs/packages/eip712'

let fee = generateFee('20', 'aphoton', '20000', 'ethm1tfegf50n5xl0hd5cxfzjca3ylsfpg0fned5gqm')
let types = generateTypes(msgSendTypes)
let msg = createMsgSend('1', 'aphoton', 'ethm1tfegf50n5xl0hd5cxfzjca3ylsfpg0fned5gqm', 'ethm1tfegf50n5xl0hd5cxfzjca3ylsfpg0fned5gqm')
let messages = generateMessage('9', '0', 'ethermint_9000-1', '', fee, msg)
let complete = createEIP712(types, 9000, messages)
console.log(complete)
{
    "types": {
        "EIP712Domain": [
            {
                "name": "name",
                "type": "string"
            },
            {
                "name": "version",
                "type": "string"
            },
            {
                "name": "chainId",
                "type": "uint256"
            },
            {
                "name": "verifyingContract",
                "type": "string"
            },
            {
                "name": "salt",
                "type": "string"
            }
        ],
        "Tx": [
            {
                "name": "account_number",
                "type": "string"
            },
            {
                "name": "chain_id",
                "type": "string"
            },
            {
                "name": "fee",
                "type": "Fee"
            },
            {
                "name": "memo",
                "type": "string"
            },
            {
                "name": "msgs",
                "type": "Msg[]"
            },
            {
                "name": "sequence",
                "type": "string"
            }
        ],
        "Fee": [
            {
                "name": "feePayer",
                "type": "string"
            },
            {
                "name": "amount",
                "type": "Coin[]"
            },
            {
                "name": "gas",
                "type": "string"
            }
        ],
        "Coin": [
            {
                "name": "denom",
                "type": "string"
            },
            {
                "name": "amount",
                "type": "string"
            }
        ],
        "Msg": [
            {
                "name": "type",
                "type": "string"
            },
            {
                "name": "value",
                "type": "MsgValue"
            }
        ],
        "MsgValue": [
            {
                "name": "from_address",
                "type": "string"
            },
            {
                "name": "to_address",
                "type": "string"
            },
            {
                "name": "amount",
                "type": "TypeAmount[]"
            }
        ],
        "TypeAmount": [
            {
                "name": "denom",
                "type": "string"
            },
            {
                "name": "amount",
                "type": "string"
            }
        ]
    },
    "primaryType": "Tx",
    "domain": {
        "name": "Cosmos Web3",
        "version": "1.0.0",
        "chainId": 9000,
        "verifyingContract": "cosmos",
        "salt": "0"
    },
    "message": {
        "account_number": "9",
        "chain_id": "ethermint_9000-1",
        "fee": {
            "amount": [
                {
                    "amount": "20",
                    "denom": "aphoton"
                }
            ],
            "gas": "20000",
            "feePayer": "ethm1tfegf50n5xl0hd5cxfzjca3ylsfpg0fned5gqm"
        },
        "memo": "",
        "msgs": [
            {
                "type": "cosmos-sdk/MsgSend",
                "value": {
                    "amount": [
                        {
                            "amount": "1",
                            "denom": "aphoton"
                        }
                    ],
                    "from_address": "ethm1tfegf50n5xl0hd5cxfzjca3ylsfpg0fned5gqm",
                    "to_address": "ethm1tfegf50n5xl0hd5cxfzjca3ylsfpg0fned5gqm"
                }
            }
        ],
        "sequence": "0"
    }
}