iamgroot 0.3.0

Rust code generation from Open-RPC spec
Documentation
{
    "openrpc": "1.0.0-rc1",
    "info": {
        "version": "0.7.0",
        "title": "StarkNet Node Write API",
        "license": {}
    },
    "servers": [],
    "methods": [
        {
            "name": "starknet_addInvokeTransaction",
            "summary": "Submit a new transaction to be added to the chain",
            "params": [
                {
                    "name": "invoke_transaction",
                    "description": "The information needed to invoke the function (or account, for version 1 transactions)",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/BROADCASTED_INVOKE_TXN"
                    }
                }
            ],
            "result": {
                "name": "result",
                "description": "The result of the transaction submission",
                "schema": {
                    "type": "object",
                    "properties": {
                        "transaction_hash": {
                            "title": "The hash of the invoke transaction",
                            "$ref": "#/components/schemas/TXN_HASH"
                        }
                    },
                    "required": [
                        "transaction_hash"
                    ]
                }
            },
            "errors": [
                {
                    "$ref": "#/components/errors/INSUFFICIENT_ACCOUNT_BALANCE"
                },
                {
                    "$ref": "#/components/errors/INSUFFICIENT_MAX_FEE"
                },
                {
                    "$ref": "#/components/errors/INVALID_TRANSACTION_NONCE"
                },
                {
                    "$ref": "#/components/errors/VALIDATION_FAILURE"
                },
                {
                    "$ref": "#/components/errors/NON_ACCOUNT"
                },
                {
                    "$ref": "#/components/errors/DUPLICATE_TX"
                },
                {
                    "$ref": "#/components/errors/UNSUPPORTED_TX_VERSION"
                },
                {
                    "$ref": "#/components/errors/UNEXPECTED_ERROR"
                }
            ]
        },
        {
            "name": "starknet_addDeclareTransaction",
            "summary": "Submit a new class declaration transaction",
            "params": [
                {
                    "name": "declare_transaction",
                    "description": "Declare transaction required to declare a new class on Starknet",
                    "required": true,
                    "schema": {
                        "title": "Declare transaction",
                        "$ref": "#/components/schemas/BROADCASTED_DECLARE_TXN"
                    }
                }
            ],
            "result": {
                "name": "result",
                "description": "The result of the transaction submission",
                "schema": {
                    "type": "object",
                    "properties": {
                        "transaction_hash": {
                            "title": "The hash of the declare transaction",
                            "$ref": "#/components/schemas/TXN_HASH"
                        },
                        "class_hash": {
                            "title": "The hash of the declared class",
                            "$ref": "#/components/schemas/FELT"
                        }
                    },
                    "required": [
                        "transaction_hash",
                        "class_hash"
                    ]
                }
            },
            "errors": [
                {
                    "$ref": "#/components/errors/CLASS_ALREADY_DECLARED"
                },
                {
                    "$ref": "#/components/errors/COMPILATION_FAILED"
                },
                {
                    "$ref": "#/components/errors/COMPILED_CLASS_HASH_MISMATCH"
                },
                {
                    "$ref": "#/components/errors/INSUFFICIENT_ACCOUNT_BALANCE"
                },
                {
                    "$ref": "#/components/errors/INSUFFICIENT_MAX_FEE"
                },
                {
                    "$ref": "#/components/errors/INVALID_TRANSACTION_NONCE"
                },
                {
                    "$ref": "#/components/errors/VALIDATION_FAILURE"
                },
                {
                    "$ref": "#/components/errors/NON_ACCOUNT"
                },
                {
                    "$ref": "#/components/errors/DUPLICATE_TX"
                },
                {
                    "$ref": "#/components/errors/CONTRACT_CLASS_SIZE_IS_TOO_LARGE"
                },
                {
                    "$ref": "#/components/errors/UNSUPPORTED_TX_VERSION"
                },
                {
                    "$ref": "#/components/errors/UNSUPPORTED_CONTRACT_CLASS_VERSION"
                },
                {
                    "$ref": "#/components/errors/UNEXPECTED_ERROR"
                }
            ]
        },
        {
            "name": "starknet_addDeployAccountTransaction",
            "summary": "Submit a new deploy account transaction",
            "params": [
                {
                    "name": "deploy_account_transaction",
                    "description": "The deploy account transaction",
                    "required": true,
                    "schema": {
                        "$ref": "#/components/schemas/BROADCASTED_DEPLOY_ACCOUNT_TXN"
                    }
                }
            ],
            "result": {
                "name": "result",
                "description": "The result of the transaction submission",
                "schema": {
                    "type": "object",
                    "properties": {
                        "transaction_hash": {
                            "title": "The hash of the deploy transaction",
                            "$ref": "#/components/schemas/TXN_HASH"
                        },
                        "contract_address": {
                            "title": "The address of the new contract",
                            "$ref": "#/components/schemas/FELT"
                        }
                    },
                    "required": [
                        "transaction_hash",
                        "contract_address"
                    ]
                }
            },
            "errors": [
                {
                    "$ref": "#/components/errors/INSUFFICIENT_ACCOUNT_BALANCE"
                },
                {
                    "$ref": "#/components/errors/INSUFFICIENT_MAX_FEE"
                },
                {
                    "$ref": "#/components/errors/INVALID_TRANSACTION_NONCE"
                },
                {
                    "$ref": "#/components/errors/VALIDATION_FAILURE"
                },
                {
                    "$ref": "#/components/errors/NON_ACCOUNT"
                },
                {
                    "$ref": "#/components/errors/CLASS_HASH_NOT_FOUND"
                },
                {
                    "$ref": "#/components/errors/DUPLICATE_TX"
                },
                {
                    "$ref": "#/components/errors/UNSUPPORTED_TX_VERSION"
                },
                {
                    "$ref": "#/components/errors/UNEXPECTED_ERROR"
                }
            ]
        }
    ],
    "components": {
        "contentDescriptors": {},
        "schemas": {
            "NUM_AS_HEX": {
                "title": "An integer number in hex format (0x...)",
                "type": "string",
                "pattern": "^0x[a-fA-F0-9]+$"
            },
            "SIGNATURE": {
                "$ref": "./starknet_api_openrpc.json#/components/schemas/SIGNATURE"
            },
            "FELT": {
                "$ref": "./starknet_api_openrpc.json#/components/schemas/FELT"
            },
            "TXN_HASH": {
                "$ref": "./starknet_api_openrpc.json#/components/schemas/TXN_HASH"
            },
            "BROADCASTED_INVOKE_TXN": {
                "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BROADCASTED_INVOKE_TXN"
            },
            "BROADCASTED_DECLARE_TXN": {
                "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BROADCASTED_DECLARE_TXN"
            },
            "BROADCASTED_DEPLOY_ACCOUNT_TXN": {
                "$ref": "./api/starknet_api_openrpc.json#/components/schemas/BROADCASTED_DEPLOY_ACCOUNT_TXN"
            },
            "FUNCTION_CALL": {
                "$ref": "./starknet_api_openrpc.json#/components/schemas/FUNCTION_CALL"
            }
        },
        "errors": {
            "CLASS_HASH_NOT_FOUND": {
                "code": 28,
                "message": "Class hash not found"
            },
            "CLASS_ALREADY_DECLARED": {
                "code": 51,
                "message": "Class already declared"
            },
            "INVALID_TRANSACTION_NONCE": {
                "code": 52,
                "message": "Invalid transaction nonce"
            },
            "INSUFFICIENT_MAX_FEE": {
                "code": 53,
                "message": "Max fee is smaller than the minimal transaction cost (validation plus fee transfer)"
            },
            "INSUFFICIENT_ACCOUNT_BALANCE": {
                "code": 54,
                "message": "Account balance is smaller than the transaction's max_fee"
            },
            "VALIDATION_FAILURE": {
                "code": 55,
                "message": "Account validation failed",
                "data": {
                    "type": "string"
                }
            },
            "COMPILATION_FAILED": {
                "code": 56,
                "message": "Compilation failed"
            },
            "CONTRACT_CLASS_SIZE_IS_TOO_LARGE": {
                "code": 57,
                "message": "Contract class size it too large"
            },
            "NON_ACCOUNT": {
                "code": 58,
                "message": "Sender address in not an account contract"
            },
            "DUPLICATE_TX": {
                "code": 59,
                "message": "A transaction with the same hash already exists in the mempool"
            },
            "COMPILED_CLASS_HASH_MISMATCH": {
                "code": 60,
                "message": "the compiled class hash did not match the one supplied in the transaction"
            },
            "UNSUPPORTED_TX_VERSION": {
                "code": 61,
                "message": "the transaction version is not supported"
            },
            "UNSUPPORTED_CONTRACT_CLASS_VERSION": {
                "code": 62,
                "message": "the contract class version is not supported"
            },
            "UNEXPECTED_ERROR": {
                "code": 63,
                "message": "An unexpected error occurred",
                "data": {
                    "type": "string"
                }
            }
        }
    }
}