diff --git a/docs/multiversx_sdk.abi.rst b/docs/multiversx_sdk.abi.rst index a1a0cf32..0b61e614 100644 --- a/docs/multiversx_sdk.abi.rst +++ b/docs/multiversx_sdk.abi.rst @@ -68,6 +68,14 @@ multiversx\_sdk.abi.bytes\_value module :undoc-members: :show-inheritance: +multiversx\_sdk.abi.code\_metadata\_value module +------------------------------------------------ + +.. automodule:: multiversx_sdk.abi.code_metadata_value + :members: + :undoc-members: + :show-inheritance: + multiversx\_sdk.abi.codec module -------------------------------- @@ -92,6 +100,14 @@ multiversx\_sdk.abi.enum\_value module :undoc-members: :show-inheritance: +multiversx\_sdk.abi.explicit\_enum\_value module +------------------------------------------------ + +.. automodule:: multiversx_sdk.abi.explicit_enum_value + :members: + :undoc-members: + :show-inheritance: + multiversx\_sdk.abi.fields module --------------------------------- diff --git a/docs/multiversx_sdk.accounts.rst b/docs/multiversx_sdk.accounts.rst new file mode 100644 index 00000000..2717c569 --- /dev/null +++ b/docs/multiversx_sdk.accounts.rst @@ -0,0 +1,21 @@ +multiversx\_sdk.accounts package +================================ + +Submodules +---------- + +multiversx\_sdk.accounts.account module +--------------------------------------- + +.. automodule:: multiversx_sdk.accounts.account + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: multiversx_sdk.accounts + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/multiversx_sdk.controllers.rst b/docs/multiversx_sdk.controllers.rst new file mode 100644 index 00000000..56841199 --- /dev/null +++ b/docs/multiversx_sdk.controllers.rst @@ -0,0 +1,69 @@ +multiversx\_sdk.controllers package +=================================== + +Submodules +---------- + +multiversx\_sdk.controllers.account\_controller module +------------------------------------------------------ + +.. automodule:: multiversx_sdk.controllers.account_controller + :members: + :undoc-members: + :show-inheritance: + +multiversx\_sdk.controllers.delegation\_controller module +--------------------------------------------------------- + +.. automodule:: multiversx_sdk.controllers.delegation_controller + :members: + :undoc-members: + :show-inheritance: + +multiversx\_sdk.controllers.interfaces module +--------------------------------------------- + +.. automodule:: multiversx_sdk.controllers.interfaces + :members: + :undoc-members: + :show-inheritance: + +multiversx\_sdk.controllers.relayed\_controller module +------------------------------------------------------ + +.. automodule:: multiversx_sdk.controllers.relayed_controller + :members: + :undoc-members: + :show-inheritance: + +multiversx\_sdk.controllers.smart\_contract\_controller module +-------------------------------------------------------------- + +.. automodule:: multiversx_sdk.controllers.smart_contract_controller + :members: + :undoc-members: + :show-inheritance: + +multiversx\_sdk.controllers.token\_management\_controller module +---------------------------------------------------------------- + +.. automodule:: multiversx_sdk.controllers.token_management_controller + :members: + :undoc-members: + :show-inheritance: + +multiversx\_sdk.controllers.transfers\_controller module +-------------------------------------------------------- + +.. automodule:: multiversx_sdk.controllers.transfers_controller + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: multiversx_sdk.controllers + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/multiversx_sdk.core.rst b/docs/multiversx_sdk.core.rst index e225cf6a..3a38208f 100644 --- a/docs/multiversx_sdk.core.rst +++ b/docs/multiversx_sdk.core.rst @@ -8,22 +8,12 @@ Subpackages :maxdepth: 4 multiversx_sdk.core.proto - multiversx_sdk.core.transaction_builders - multiversx_sdk.core.transaction_parsers multiversx_sdk.core.transactions_factories multiversx_sdk.core.transactions_outcome_parsers Submodules ---------- -multiversx\_sdk.core.account module ------------------------------------ - -.. automodule:: multiversx_sdk.core.account - :members: - :undoc-members: - :show-inheritance: - multiversx\_sdk.core.address module ----------------------------------- @@ -48,30 +38,6 @@ multiversx\_sdk.core.code\_metadata module :undoc-members: :show-inheritance: -multiversx\_sdk.core.codec module ---------------------------------- - -.. automodule:: multiversx_sdk.core.codec - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.core.contract\_query module -------------------------------------------- - -.. automodule:: multiversx_sdk.core.contract_query - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.core.contract\_query\_builder module ----------------------------------------------------- - -.. automodule:: multiversx_sdk.core.contract_query_builder - :members: - :undoc-members: - :show-inheritance: - multiversx\_sdk.core.errors module ---------------------------------- @@ -96,14 +62,6 @@ multiversx\_sdk.core.message module :undoc-members: :show-inheritance: -multiversx\_sdk.core.serializer module --------------------------------------- - -.. automodule:: multiversx_sdk.core.serializer - :members: - :undoc-members: - :show-inheritance: - multiversx\_sdk.core.smart\_contract\_queries\_controller module ---------------------------------------------------------------- @@ -120,14 +78,6 @@ multiversx\_sdk.core.smart\_contract\_query module :undoc-members: :show-inheritance: -multiversx\_sdk.core.token\_payment module ------------------------------------------- - -.. automodule:: multiversx_sdk.core.token_payment - :members: - :undoc-members: - :show-inheritance: - multiversx\_sdk.core.tokens module ---------------------------------- @@ -152,10 +102,18 @@ multiversx\_sdk.core.transaction\_computer module :undoc-members: :show-inheritance: -multiversx\_sdk.core.transaction\_payload module ------------------------------------------------- +multiversx\_sdk.core.transaction\_on\_network module +---------------------------------------------------- + +.. automodule:: multiversx_sdk.core.transaction_on_network + :members: + :undoc-members: + :show-inheritance: + +multiversx\_sdk.core.transaction\_status module +----------------------------------------------- -.. automodule:: multiversx_sdk.core.transaction_payload +.. automodule:: multiversx_sdk.core.transaction_status :members: :undoc-members: :show-inheritance: diff --git a/docs/multiversx_sdk.core.transactions_outcome_parsers.rst b/docs/multiversx_sdk.core.transactions_outcome_parsers.rst index a7a4b328..a26babd2 100644 --- a/docs/multiversx_sdk.core.transactions_outcome_parsers.rst +++ b/docs/multiversx_sdk.core.transactions_outcome_parsers.rst @@ -20,14 +20,6 @@ multiversx\_sdk.core.transactions\_outcome\_parsers.delegation\_transactions\_ou :undoc-members: :show-inheritance: -multiversx\_sdk.core.transactions\_outcome\_parsers.resources module --------------------------------------------------------------------- - -.. automodule:: multiversx_sdk.core.transactions_outcome_parsers.resources - :members: - :undoc-members: - :show-inheritance: - multiversx\_sdk.core.transactions\_outcome\_parsers.smart\_contract\_transactions\_outcome\_parser module --------------------------------------------------------------------------------------------------------- diff --git a/docs/multiversx_sdk.entrypoints.rst b/docs/multiversx_sdk.entrypoints.rst new file mode 100644 index 00000000..fd78a70c --- /dev/null +++ b/docs/multiversx_sdk.entrypoints.rst @@ -0,0 +1,37 @@ +multiversx\_sdk.entrypoints package +=================================== + +Submodules +---------- + +multiversx\_sdk.entrypoints.config module +----------------------------------------- + +.. automodule:: multiversx_sdk.entrypoints.config + :members: + :undoc-members: + :show-inheritance: + +multiversx\_sdk.entrypoints.entrypoints module +---------------------------------------------- + +.. automodule:: multiversx_sdk.entrypoints.entrypoints + :members: + :undoc-members: + :show-inheritance: + +multiversx\_sdk.entrypoints.errors module +----------------------------------------- + +.. automodule:: multiversx_sdk.entrypoints.errors + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: multiversx_sdk.entrypoints + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/multiversx_sdk.network_providers.rst b/docs/multiversx_sdk.network_providers.rst index 60b116d2..74aa7df8 100644 --- a/docs/multiversx_sdk.network_providers.rst +++ b/docs/multiversx_sdk.network_providers.rst @@ -4,14 +4,6 @@ multiversx\_sdk.network\_providers package Submodules ---------- -multiversx\_sdk.network\_providers.accounts module --------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.accounts - :members: - :undoc-members: - :show-inheritance: - multiversx\_sdk.network\_providers.api\_network\_provider module ---------------------------------------------------------------- @@ -28,30 +20,6 @@ multiversx\_sdk.network\_providers.config module :undoc-members: :show-inheritance: -multiversx\_sdk.network\_providers.contract\_query\_requests module -------------------------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.contract_query_requests - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.contract\_query\_response module -------------------------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.contract_query_response - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.contract\_results module ------------------------------------------------------------ - -.. automodule:: multiversx_sdk.network_providers.contract_results - :members: - :undoc-members: - :show-inheritance: - multiversx\_sdk.network\_providers.errors module ------------------------------------------------ @@ -60,42 +28,18 @@ multiversx\_sdk.network\_providers.errors module :undoc-members: :show-inheritance: -multiversx\_sdk.network\_providers.interface module ---------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.interface - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.network\_config module +multiversx\_sdk.network\_providers.http\_resources module --------------------------------------------------------- -.. automodule:: multiversx_sdk.network_providers.network_config +.. automodule:: multiversx_sdk.network_providers.http_resources :members: :undoc-members: :show-inheritance: -multiversx\_sdk.network\_providers.network\_general\_statistics module ----------------------------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.network_general_statistics - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.network\_stake module --------------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.network_stake - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.network\_status module ---------------------------------------------------------- +multiversx\_sdk.network\_providers.interface module +--------------------------------------------------- -.. automodule:: multiversx_sdk.network_providers.network_status +.. automodule:: multiversx_sdk.network_providers.interface :members: :undoc-members: :show-inheritance: @@ -116,18 +60,10 @@ multiversx\_sdk.network\_providers.resources module :undoc-members: :show-inheritance: -multiversx\_sdk.network\_providers.token\_definitions module ------------------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.token_definitions - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.tokens module +multiversx\_sdk.network\_providers.shared module ------------------------------------------------ -.. automodule:: multiversx_sdk.network_providers.tokens +.. automodule:: multiversx_sdk.network_providers.shared :members: :undoc-members: :show-inheritance: @@ -148,50 +84,10 @@ multiversx\_sdk.network\_providers.transaction\_decoder module :undoc-members: :show-inheritance: -multiversx\_sdk.network\_providers.transaction\_events module -------------------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.transaction_events - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.transaction\_logs module ------------------------------------------------------------ - -.. automodule:: multiversx_sdk.network_providers.transaction_logs - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.transaction\_receipt module --------------------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.transaction_receipt - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.transaction\_status module -------------------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.transaction_status - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.transactions module ------------------------------------------------------- - -.. automodule:: multiversx_sdk.network_providers.transactions - :members: - :undoc-members: - :show-inheritance: - -multiversx\_sdk.network\_providers.utils module ------------------------------------------------ +multiversx\_sdk.network\_providers.user\_agent module +----------------------------------------------------- -.. automodule:: multiversx_sdk.network_providers.utils +.. automodule:: multiversx_sdk.network_providers.user_agent :members: :undoc-members: :show-inheritance: diff --git a/docs/multiversx_sdk.rst b/docs/multiversx_sdk.rst index 45d0f95f..4db166f2 100644 --- a/docs/multiversx_sdk.rst +++ b/docs/multiversx_sdk.rst @@ -8,9 +8,10 @@ Subpackages :maxdepth: 4 multiversx_sdk.abi - multiversx_sdk.adapters - multiversx_sdk.converters + multiversx_sdk.accounts + multiversx_sdk.controllers multiversx_sdk.core + multiversx_sdk.entrypoints multiversx_sdk.network_providers multiversx_sdk.wallet diff --git a/examples/Cookbook.ipynb b/examples/Cookbook.ipynb index e2002035..e2f43b6a 100644 --- a/examples/Cookbook.ipynb +++ b/examples/Cookbook.ipynb @@ -63,6 +63,8 @@ "metadata": {}, "outputs": [], "source": [ + "from multiversx_sdk import Address\n", + "\n", "address = Address.new_from_hex(\"0139472eff6886771a982f3083da5d421f24c29181e63888228dc81ca60d69e1\", \"erd\")" ] }, @@ -79,6 +81,8 @@ "metadata": {}, "outputs": [], "source": [ + "from multiversx_sdk import Address\n", + "\n", "pubkey = bytes.fromhex(\"0139472eff6886771a982f3083da5d421f24c29181e63888228dc81ca60d69e1\")\n", "address = Address(pubkey, \"erd\")" ] @@ -152,9 +156,11 @@ } ], "source": [ - "from multiversx_sdk import AddressComputer\n", + "from multiversx_sdk import Address, AddressComputer\n", + "\n", + "address_computer = AddressComputer()\n", + "address = Address.new_from_bech32(\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\")\n", "\n", - "address_computer = AddressComputer(number_of_shards=3)\n", "print(\"Shard:\", address_computer.get_shard_of_address(address))" ] }, @@ -174,14 +180,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Is contract: True\n" + "Is contract address: True\n" ] } ], "source": [ - "address = Address.new_from_bech32(\"erd1qqqqqqqqqqqqqpgquzmh78klkqwt0p4rjys0qtp3la07gz4d396qn50nnm\")\n", + "from multiversx_sdk import Address\n", "\n", - "print(\"Is contract:\", address.is_smart_contract())" + "address = Address.new_from_bech32(\"erd1qqqqqqqqqqqqqpgquzmh78klkqwt0p4rjys0qtp3la07gz4d396qn50nnm\")\n", + "print(\"Is contract address:\", address.is_smart_contract())" ] }, { @@ -207,25 +214,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'nonce': 77, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 50000, 'data': '', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n" - "{'nonce': 77, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 50000, 'data': '', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n" + "{'nonce': 77, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 50000, 'data': '', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n" ] } ], "source": [ - "from multiversx_sdk import Transaction, TransactionsConverter\n", + "from multiversx_sdk import Address, Transaction\n", "\n", "transaction = Transaction(\n", - " sender=\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\",\n", - " receiver=\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\",\n", + " sender=Address.new_from_bech32(\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\"),\n", + " receiver=Address.new_from_bech32(\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\"),\n", " gas_limit=50000,\n", " chain_id=\"D\",\n", " nonce=77,\n", " value=1000000000000000000\n", ")\n", "\n", - "transaction_converter = TransactionsConverter()\n", - "print(transaction_converter.transaction_to_dictionary(transaction))" + "print(transaction.to_dictionary())" ] }, { @@ -258,15 +263,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'nonce': 77, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 50000, 'data': 'Zm9yIHRoZSBib29r', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n" - "{'nonce': 77, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 50000, 'data': 'Zm9yIHRoZSBib29r', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n" + "{'nonce': 77, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 50000, 'data': 'Zm9yIHRoZSBib29r', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n" ] } ], "source": [ + "from multiversx_sdk import Address, Transaction\n", + "\n", "transaction = Transaction(\n", - " sender=\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\",\n", - " receiver=\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\",\n", + " sender=Address.new_from_bech32(\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\"),\n", + " receiver=Address.new_from_bech32(\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\"),\n", " gas_limit=50000,\n", " chain_id=\"D\",\n", " nonce=77,\n", @@ -274,7 +280,7 @@ " data=b\"for the book\"\n", ")\n", "\n", - "print(transaction_converter.transaction_to_dictionary(transaction))" + "print(transaction.to_dictionary())" ] }, { @@ -311,14 +317,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 68000, 'data': 'Zm9yIHRoZSBib29r', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", - "Transaction: {'nonce': 0, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 68000, 'data': 'Zm9yIHRoZSBib29r', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 68000, 'data': 'Zm9yIHRoZSBib29r', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: for the book\n" ] } ], "source": [ - "from multiversx_sdk import TransferTransactionsFactory\n", + "from multiversx_sdk import Address, TransferTransactionsFactory\n", "\n", "transfer_factory = TransferTransactionsFactory(config=config)\n", "alice = Address.new_from_bech32(\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\")\n", @@ -332,7 +337,7 @@ " data=\"for the book\"\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -352,8 +357,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 410000, 'data': 'RVNEVFRyYW5zZmVyQDU0NDU1MzU0MmQzODYyMzAzMjM4NjZAMjcxMA==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 410000, 'data': 'RVNEVFRyYW5zZmVyQDU0NDU1MzU0MmQzODYyMzAzMjM4NjZAMjcxMA==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 410000, 'data': 'RVNEVFRyYW5zZmVyQDU0NDU1MzU0MmQzODYyMzAzMjM4NjZAMjcxMA==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: ESDTTransfer@544553542d386230323866@2710\n" ] } @@ -370,7 +374,7 @@ " token_transfers=[transfer]\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -392,8 +396,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1213500, 'data': 'RVNEVE5GVFRyYW5zZmVyQDU0NDU1MzU0MmQzMzM4NjYzMjM0MzlAMDFAMDFAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOA==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1213500, 'data': 'RVNEVE5GVFRyYW5zZmVyQDU0NDU1MzU0MmQzMzM4NjYzMjM0MzlAMDFAMDFAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOA==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1213500, 'data': 'RVNEVE5GVFRyYW5zZmVyQDU0NDU1MzU0MmQzMzM4NjYzMjM0MzlAMDFAMDFAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOA==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: ESDTNFTTransfer@544553542d333866323439@01@01@8049d639e5a6980d1cd2392abcce41029cda74a1563523a202f09641cc2618f8\n" ] } @@ -408,7 +411,7 @@ " token_transfers=[transfer]\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -428,8 +431,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1213500, 'data': 'RVNEVE5GVFRyYW5zZmVyQDUzNDU0ZDQ5MmQzOTY1NjY2NDMwNjZAMDFAMDVAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOA==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1213500, 'data': 'RVNEVE5GVFRyYW5zZmVyQDUzNDU0ZDQ5MmQzOTY1NjY2NDMwNjZAMDFAMDVAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOA==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1213500, 'data': 'RVNEVE5GVFRyYW5zZmVyQDUzNDU0ZDQ5MmQzOTY1NjY2NDMwNjZAMDFAMDVAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOA==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: ESDTNFTTransfer@53454d492d396566643066@01@05@8049d639e5a6980d1cd2392abcce41029cda74a1563523a202f09641cc2618f8\n" ] } @@ -444,7 +446,7 @@ " token_transfers=[transfer]\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -464,8 +466,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1484000, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOEAwMkA1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAw', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1484000, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOEAwMkA1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAw', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1484000, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOEAwMkA1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAw', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: MultiESDTNFTTransfer@8049d639e5a6980d1cd2392abcce41029cda74a1563523a202f09641cc2618f8@02@544553542d333866323439@01@01@4241522d633830643239@@8ac7230489e80000\n" ] } @@ -483,7 +484,7 @@ " token_transfers=[first_transfer, second_transfer]\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -505,13 +506,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 68000, 'data': 'Zm9yIHRoZSBib29r', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '1000000000000000000', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 68000, 'data': 'Zm9yIHRoZSBib29r', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: for the book\n" ] } ], "source": [ - "from multiversx_sdk import TransferTransactionsFactory, TransactionsFactoryConfig\n", + "from multiversx_sdk import Address, TransferTransactionsFactory, TransactionsFactoryConfig\n", "\n", "transfer_factory = TransferTransactionsFactory(config=TransactionsFactoryConfig(chain_id=\"D\"))\n", "\n", @@ -526,7 +527,7 @@ " data=\"for the book\".encode()\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -546,7 +547,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1484000, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOEAwMkA1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAw', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1484000, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOEAwMkA1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAw', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: MultiESDTNFTTransfer@8049d639e5a6980d1cd2392abcce41029cda74a1563523a202f09641cc2618f8@02@544553542d333866323439@01@01@4241522d633830643239@@8ac7230489e80000\n" ] } @@ -564,7 +565,7 @@ " token_transfers=[first_transfer, second_transfer]\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -584,7 +585,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1745500, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOEAwM0A1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAwQDQ1NDc0YzQ0MmQzMDMwMzAzMDMwMzBAQDBkZTBiNmIzYTc2NDAwMDA=', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 1745500, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAODA0OWQ2MzllNWE2OTgwZDFjZDIzOTJhYmNjZTQxMDI5Y2RhNzRhMTU2MzUyM2EyMDJmMDk2NDFjYzI2MThmOEAwM0A1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAwQDQ1NDc0YzQ0MmQzMDMwMzAzMDMwMzBAQDBkZTBiNmIzYTc2NDAwMDA=', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: MultiESDTNFTTransfer@8049d639e5a6980d1cd2392abcce41029cda74a1563523a202f09641cc2618f8@03@544553542d333866323439@01@01@4241522d633830643239@@8ac7230489e80000@45474c442d303030303030@@0de0b6b3a7640000\n" ] } @@ -603,7 +604,7 @@ " token_transfers=[first_transfer, second_transfer]\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -697,8 +698,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'nonce': 2627, 'value': '0', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 61052000, 'data': 'cmVsYXllZFR4QDdiMjI2ZTZmNmU2MzY1MjIzYTMxMzkzODJjMjI3MzY1NmU2NDY1NzIyMjNhMjI2NzQ1NmU1NzRmNjU1NzZkNmQ0MTMwNjMzMDZhNmI3MTc2NGQzNTQyNDE3MDdhNjE2NDRiNDY1NzRlNTM0ZjY5NDE3NjQzNTc1MTYzNzc2ZDQ3NTA2NzNkMjIyYzIyNzI2NTYzNjU2OTc2NjU3MjIyM2EyMjQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0NjQxNDE1OTQ2NGUyYjRkNGU1NTY5MzUzODY3NjI0MjMzMzUyYjYzNTY2NzczNGM1OTM5NzI2NzY1NjE2NTQ1M2QyMjJjMjI3NjYxNmM3NTY1MjIzYTMwMmMyMjY3NjE3MzUwNzI2OTYzNjUyMjNhMzEzMDMwMzAzMDMwMzAzMDMwMzAyYzIyNjc2MTczNGM2OTZkNjk3NDIyM2EzNjMwMzAzMDMwMzAzMDMwMmMyMjY0NjE3NDYxMjIzYTIyNTk1NzUyNmI1MTQ0NDEzMTIyMmMyMjczNjk2NzZlNjE3NDc1NzI2NTIyM2EyMjQ3NGM0MzM0NGE1OTM1NGMzMDc1NmY0YTRkNzA0ODc1MzQ0ODUwNTc2NzQ3NDE0ODQ3NmY0NzZhN2E0NzYxMzYzNTJiNzU0ODMwMzAyZjc3NGM1MTU5NDU1MTUyMzA2NDVhNGM2MzUxMzQ1NDZkNzE1NTM5NGI2ZDUxNWEzNTU0NzE2ZDRjNmU1MzUxMzQ1NjU3NDY2ZjM1NDM2Njc5Mzk2MzY0MmI2YzQzNDEzZDNkMjIyYzIyNjM2ODYxNjk2ZTQ5NDQyMjNhMjI1MjQxM2QzZDIyMmMyMjc2NjU3MjczNjk2ZjZlMjIzYTMyN2Q=', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n" - "{'nonce': 2627, 'value': '0', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 61052000, 'data': 'cmVsYXllZFR4QDdiMjI2ZTZmNmU2MzY1MjIzYTMxMzkzODJjMjI3MzY1NmU2NDY1NzIyMjNhMjI2NzQ1NmU1NzRmNjU1NzZkNmQ0MTMwNjMzMDZhNmI3MTc2NGQzNTQyNDE3MDdhNjE2NDRiNDY1NzRlNTM0ZjY5NDE3NjQzNTc1MTYzNzc2ZDQ3NTA2NzNkMjIyYzIyNzI2NTYzNjU2OTc2NjU3MjIyM2EyMjQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0NjQxNDE1OTQ2NGUyYjRkNGU1NTY5MzUzODY3NjI0MjMzMzUyYjYzNTY2NzczNGM1OTM5NzI2NzY1NjE2NTQ1M2QyMjJjMjI3NjYxNmM3NTY1MjIzYTMwMmMyMjY3NjE3MzUwNzI2OTYzNjUyMjNhMzEzMDMwMzAzMDMwMzAzMDMwMzAyYzIyNjc2MTczNGM2OTZkNjk3NDIyM2EzNjMwMzAzMDMwMzAzMDMwMmMyMjY0NjE3NDYxMjIzYTIyNTk1NzUyNmI1MTQ0NDEzMTIyMmMyMjczNjk2NzZlNjE3NDc1NzI2NTIyM2EyMjQ3NGM0MzM0NGE1OTM1NGMzMDc1NmY0YTRkNzA0ODc1MzQ0ODUwNTc2NzQ3NDE0ODQ3NmY0NzZhN2E0NzYxMzYzNTJiNzU0ODMwMzAyZjc3NGM1MTU5NDU1MTUyMzA2NDVhNGM2MzUxMzQ1NDZkNzE1NTM5NGI2ZDUxNWEzNTU0NzE2ZDRjNmU1MzUxMzQ1NjU3NDY2ZjM1NDM2Njc5Mzk2MzY0MmI2YzQzNDEzZDNkMjIyYzIyNjM2ODYxNjk2ZTQ5NDQyMjNhMjI1MjQxM2QzZDIyMmMyMjc2NjU3MjczNjk2ZjZlMjIzYTMyN2Q=', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n" + "{'nonce': 2627, 'value': '0', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 61052000, 'data': 'cmVsYXllZFR4QDdiMjI2ZTZmNmU2MzY1MjIzYTMxMzkzODJjMjI3MzY1NmU2NDY1NzIyMjNhMjI2NzQ1NmU1NzRmNjU1NzZkNmQ0MTMwNjMzMDZhNmI3MTc2NGQzNTQyNDE3MDdhNjE2NDRiNDY1NzRlNTM0ZjY5NDE3NjQzNTc1MTYzNzc2ZDQ3NTA2NzNkMjIyYzIyNzI2NTYzNjU2OTc2NjU3MjIyM2EyMjQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0NjQxNDE1OTQ2NGUyYjRkNGU1NTY5MzUzODY3NjI0MjMzMzUyYjYzNTY2NzczNGM1OTM5NzI2NzY1NjE2NTQ1M2QyMjJjMjI3NjYxNmM3NTY1MjIzYTMwMmMyMjY3NjE3MzUwNzI2OTYzNjUyMjNhMzEzMDMwMzAzMDMwMzAzMDMwMzAyYzIyNjc2MTczNGM2OTZkNjk3NDIyM2EzNjMwMzAzMDMwMzAzMDMwMmMyMjY0NjE3NDYxMjIzYTIyNTk1NzUyNmI1MTQ0NDEzMTIyMmMyMjczNjk2NzZlNjE3NDc1NzI2NTIyM2EyMjQ3NGM0MzM0NGE1OTM1NGMzMDc1NmY0YTRkNzA0ODc1MzQ0ODUwNTc2NzQ3NDE0ODQ3NmY0NzZhN2E0NzYxMzYzNTJiNzU0ODMwMzAyZjc3NGM1MTU5NDU1MTUyMzA2NDVhNGM2MzUxMzQ1NDZkNzE1NTM5NGI2ZDUxNWEzNTU0NzE2ZDRjNmU1MzUxMzQ1NjU3NDY2ZjM1NDM2Njc5Mzk2MzY0MmI2YzQzNDEzZDNkMjIyYzIyNjM2ODYxNjk2ZTQ5NDQyMjNhMjI1MjQxM2QzZDIyMmMyMjc2NjU3MjczNjk2ZjZlMjIzYTMyN2Q=', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n" ] } ], @@ -707,8 +707,6 @@ "\n", "from multiversx_sdk import (Address, RelayedTransactionsFactory, Transaction,\n", " TransactionComputer, TransactionsFactoryConfig,\n", - "from multiversx_sdk import (Address, RelayedTransactionsFactory, Transaction,\n", - " TransactionComputer, TransactionsFactoryConfig,\n", " UserSigner)\n", "\n", "signer = UserSigner.from_pem_file(Path(\"../multiversx_sdk/testutils/testwallets/bob.pem\"))\n", @@ -716,8 +714,8 @@ "\n", "inner_tx = Transaction(\n", " chain_id=network_config.chain_id,\n", - " sender=\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\",\n", - " receiver=\"erd1qqqqqqqqqqqqqpgqqczn0ccd2gh8eqdswln7w9vzctv0dwq7d8ssm4y34z\",\n", + " sender=Address.new_from_bech32(\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\"),\n", + " receiver=Address.new_from_bech32(\"erd1qqqqqqqqqqqqqpgqqczn0ccd2gh8eqdswln7w9vzctv0dwq7d8ssm4y34z\"),\n", " gas_limit=60000000,\n", " nonce=198,\n", " data=b\"add@05\"\n", @@ -734,7 +732,7 @@ ")\n", "relayed_tx.nonce = 2627\n", "\n", - "print(transaction_converter.transaction_to_dictionary(relayed_tx))" + "print(relayed_tx.to_dictionary())" ] }, { @@ -760,8 +758,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'nonce': 37, 'value': '0', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 60381500, 'data': 'cmVsYXllZFR4VjJAMDAwMDAwMDAwMDAwMDAwMDA1MDAwNjA1MzdlMzBkNTIyZTdjODFiMDc3ZTdlNzE1ODJjMmQ4ZjZiODFlNjllMUAwZkA2MTY0NjQ0MDMwMzVANjUwNzJhOTExOGRiMTQ3NDdhNGYxY2Y4NTdhNmU0MzczZTNlOWVhZDZlYTYwMzZmNTExMWJmNjg4MDNjNWNhZGZkYzQ0ZDM3YTIxYjkyMDQ0OWI1ZTgzYzc4Mzk3NTQyNWMzZjQ3NjAyMDE3M2FjMGZjNzE0ODE2NDZkNGE5MDA=', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n" - "{'nonce': 37, 'value': '0', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 60381500, 'data': 'cmVsYXllZFR4VjJAMDAwMDAwMDAwMDAwMDAwMDA1MDAwNjA1MzdlMzBkNTIyZTdjODFiMDc3ZTdlNzE1ODJjMmQ4ZjZiODFlNjllMUAwZkA2MTY0NjQ0MDMwMzVANjUwNzJhOTExOGRiMTQ3NDdhNGYxY2Y4NTdhNmU0MzczZTNlOWVhZDZlYTYwMzZmNTExMWJmNjg4MDNjNWNhZGZkYzQ0ZDM3YTIxYjkyMDQ0OWI1ZTgzYzc4Mzk3NTQyNWMzZjQ3NjAyMDE3M2FjMGZjNzE0ODE2NDZkNGE5MDA=', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n" + "{'nonce': 37, 'value': '0', 'receiver': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 60381500, 'data': 'cmVsYXllZFR4VjJAMDAwMDAwMDAwMDAwMDAwMDA1MDAwNjA1MzdlMzBkNTIyZTdjODFiMDc3ZTdlNzE1ODJjMmQ4ZjZiODFlNjllMUAwZkA2MTY0NjQ0MDMwMzVANjUwNzJhOTExOGRiMTQ3NDdhNGYxY2Y4NTdhNmU0MzczZTNlOWVhZDZlYTYwMzZmNTExMWJmNjg4MDNjNWNhZGZkYzQ0ZDM3YTIxYjkyMDQ0OWI1ZTgzYzc4Mzk3NTQyNWMzZjQ3NjAyMDE3M2FjMGZjNzE0ODE2NDZkNGE5MDA=', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n" ] } ], @@ -770,8 +767,6 @@ "\n", "from multiversx_sdk import (Address, RelayedTransactionsFactory, Transaction,\n", " TransactionComputer, TransactionsFactoryConfig,\n", - "from multiversx_sdk import (Address, RelayedTransactionsFactory, Transaction,\n", - " TransactionComputer, TransactionsFactoryConfig,\n", " UserSigner)\n", "\n", "signer = UserSigner.from_pem_file(Path(\"../multiversx_sdk/testutils/testwallets/bob.pem\"))\n", @@ -780,8 +775,8 @@ "# for the relayedV2 transactions, the gasLimit for the inner transaction should be 0\n", "inner_tx = Transaction(\n", " chain_id=network_config.chain_id,\n", - " sender=\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\",\n", - " receiver=\"erd1qqqqqqqqqqqqqpgqqczn0ccd2gh8eqdswln7w9vzctv0dwq7d8ssm4y34z\",\n", + " sender=Address.new_from_bech32(\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\"),\n", + " receiver=Address.new_from_bech32(\"erd1qqqqqqqqqqqqqpgqqczn0ccd2gh8eqdswln7w9vzctv0dwq7d8ssm4y34z\"),\n", " gas_limit=0,\n", " nonce=15,\n", " data=b\"add@05\"\n", @@ -799,71 +794,7 @@ ")\n", "relayed_tx.nonce = 37\n", "\n", - "print(transaction_converter.transaction_to_dictionary(relayed_tx))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Relayed V3\n", - "\n", - "This is the latest iteration of relayed transactions and we highly recommend using this version over the previous ones as soon as it becomes available on the network." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 110000, 'data': '', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': [{'nonce': 15, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqpgqqczn0ccd2gh8eqdswln7w9vzctv0dwq7d8ssm4y34z', 'sender': 'erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 60000, 'data': 'aGVsbG8=', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '730ae25bda39d5aaa25cc6f8e27c1cc5fa67869464559187dcdd02e22b88e561bf4660718791200a37290d2ff8c73449c1ef6ef38ddce7b36c89931d8fa2f10b', 'guardianSignature': '', 'relayer': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'innerTransactions': []}]}\n" - ] - } - ], - "source": [ - "from pathlib import Path\n", - "\n", - "from multiversx_sdk import (Address, RelayedTransactionsFactory, Transaction,\n", - " TransactionComputer, TransactionsFactoryConfig,\n", - " UserSigner)\n", - "\n", - "bob = UserSigner.from_pem_file(Path(\"../multiversx_sdk/testutils/testwallets/bob.pem\"))\n", - "relayer = Address.new_from_bech32(\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\")\n", - "\n", - "inner_tx = Transaction(\n", - " chain_id=network_config.chain_id,\n", - " sender=\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\",\n", - " receiver=\"erd1qqqqqqqqqqqqqpgqqczn0ccd2gh8eqdswln7w9vzctv0dwq7d8ssm4y34z\",\n", - " gas_limit=60000,\n", - " nonce=15,\n", - " data=b\"hello\",\n", - " relayer=relayer.to_bech32()\n", - " )\n", - "transaction_computer = TransactionComputer()\n", - "inner_tx.signature = bob.sign(transaction_computer.compute_bytes_for_signing(inner_tx))\n", - "\n", - "config = TransactionsFactoryConfig(chain_id=\"D\")\n", - "factory = RelayedTransactionsFactory(config=config)\n", - "\n", - "relayed_tx = factory.create_relayed_v3_transaction(\n", - " relayer_address=relayer,\n", - " inner_transactions=[inner_tx]\n", - ")\n", - "\n", - "print(transaction_converter.transaction_to_dictionary(relayed_tx))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A few things worth mentioning before moving further, the `data` field of the relayer's transaction **should not** be set and the relayer should be in the same shard as the sender of the inner transaction.\n", - "\n", - "Don't forget, after the Relayed V3 transaction is created, the `nonce` needs to be set and the transaction should be signed before broadcasting it." + "print(relayed_tx.to_dictionary())" ] }, { @@ -884,7 +815,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -903,7 +834,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -926,7 +857,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -953,7 +884,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -998,7 +929,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -1018,12 +949,13 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ - "from multiversx_sdk import SmartContractTransactionsFactory\n", + "from multiversx_sdk import SmartContractTransactionsFactory, TransactionsFactoryConfig\n", "\n", + "config = TransactionsFactoryConfig(chain_id=\"D\")\n", "factory = SmartContractTransactionsFactory(config)" ] }, @@ -1036,10 +968,11 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ + "config = TransactionsFactoryConfig(chain_id=\"D\")\n", "abi = Abi.load(Path(\"contracts/adder.abi.json\"))\n", "factory = SmartContractTransactionsFactory(config, abi)" ] @@ -1053,15 +986,14 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gq4hu', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'MDA2MTczNmQwMTAwMDAwMDAxMjkwODYwMDAwMDYwMDAwMTdmNjAwMjdmN2YwMTdmNjAwMjdmN2YwMDYwMDE3ZjAwNjAwMzdmN2Y3ZjAxN2Y2MDAzN2Y3ZjdmMDA2MDAxN2YwMTdmMDI5MDAyMGIwMzY1NmU3NjE5NjI2OTY3NDk2ZTc0NDc2NTc0NTU2ZTczNjk2NzZlNjU2NDQxNzI2Nzc1NmQ2NTZlNzQwMDAzMDM2NTZlNzYwZjY3NjU3NDRlNzU2ZDQxNzI2Nzc1NmQ2NTZlNzQ3MzAwMDEwMzY1NmU3NjBiNzM2OTY3NmU2MTZjNDU3MjcyNmY3MjAwMDMwMzY1NmU3NjEyNmQ0Mjc1NjY2NjY1NzI1Mzc0NmY3MjYxNjc2NTRjNmY2MTY0MDAwMjAzNjU2ZTc2MTc2ZDQyNzU2NjY2NjU3MjU0NmY0MjY5Njc0OTZlNzQ1NTZlNzM2OTY3NmU2NTY0MDAwMjAzNjU2ZTc2MTk2ZDQyNzU2NjY2NjU3MjQ2NzI2ZjZkNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDIwMzY1NmU3NjEzNmQ0Mjc1NjY2NjY1NzI1Mzc0NmY3MjYxNjc2NTUzNzQ2ZjcyNjUwMDAyMDM2NTZlNzYwZjZkNDI3NTY2NjY2NTcyNTM2NTc0NDI3OTc0NjU3MzAwMDUwMzY1NmU3NjBlNjM2ODY1NjM2YjRlNmY1MDYxNzk2ZDY1NmU3NDAwMDAwMzY1NmU3NjE0NjI2OTY3NDk2ZTc0NDY2OTZlNjk3MzY4NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NDE2NDY0MDAwNjAzMGIwYTAxMDEwNDA3MDMwMTAwMDAwMDAwMDUwMzAxMDAwMzA2MGYwMjdmMDA0MWEwODAwODBiN2YwMDQxYTA4MDA4MGIwNzQ2MDcwNjZkNjU2ZDZmNzI3OTAyMDAwNDY5NmU2OTc0MDAxMTA2Njc2NTc0NTM3NTZkMDAxMjAzNjE2NDY0MDAxMzA4NjM2MTZjNmM0MjYxNjM2YjAwMTQwYTVmNWY2NDYxNzQ2MTVmNjU2ZTY0MDMwMDBiNWY1ZjY4NjU2MTcwNWY2MjYxNzM2NTAzMDEwYWNhMDEwYTBlMDEwMTdmNDEwMDEwMGMyMjAwMTAwMDIwMDAwYjE5MDEwMTdmNDE5YzgwMDg0MTljODAwODI4MDIwMDQxMDE2YjIyMDAzNjAyMDAyMDAwMGIxNDAwMTAwMTIwMDA0NjA0NDAwZjBiNDE4MDgwMDg0MTE5MTAwMjAwMGIxNjAwMjAwMDEwMGMyMjAwMTAwMzFhMjAwMDEwMGMyMjAwMTAwNDFhMjAwMDBiMTQwMTAxN2YxMDBjMjIwMjIwMDExMDA1MWEyMDAwMjAwMjEwMDYxYTBiMTMwMTAxN2YxMDBjMjIwMDQxOTk4MDA4NDEwMzEwMDcxYTIwMDAwYjE0MDEwMTdmMTAwODQxMDExMDBkMTAwYjIxMDAxMDEwMjAwMDEwMGYwYjBlMDAxMDA4NDEwMDEwMGQxMDEwMTAwZTEwMDkwYjIyMDEwMzdmMTAwODQxMDExMDBkMTAwYjIxMDExMDEwMjIwMjEwMGUyMjAwMjAwMDIwMDExMDBhMjAwMjIwMDAxMDBmMGIwMzAwMDEwYjBiMmYwMjAwNDE4MDgwMDgwYjFjNzc3MjZmNmU2NzIwNmU3NTZkNjI2NTcyMjA2ZjY2MjA2MTcyNjc3NTZkNjU2ZTc0NzM3Mzc1NmQwMDQxOWM4MDA4MGIwNDljZmZmZmZmQDA1MDBAMDUwNkAyYQ==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gq4hu', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'MDA2MTczNmQwMTAwMDAwMDAxMjkwODYwMDAwMDYwMDAwMTdmNjAwMjdmN2YwMTdmNjAwMjdmN2YwMDYwMDE3ZjAwNjAwMzdmN2Y3ZjAxN2Y2MDAzN2Y3ZjdmMDA2MDAxN2YwMTdmMDI5MDAyMGIwMzY1NmU3NjE5NjI2OTY3NDk2ZTc0NDc2NTc0NTU2ZTczNjk2NzZlNjU2NDQxNzI2Nzc1NmQ2NTZlNzQwMDAzMDM2NTZlNzYwZjY3NjU3NDRlNzU2ZDQxNzI2Nzc1NmQ2NTZlNzQ3MzAwMDEwMzY1NmU3NjBiNzM2OTY3NmU2MTZjNDU3MjcyNmY3MjAwMDMwMzY1NmU3NjEyNmQ0Mjc1NjY2NjY1NzI1Mzc0NmY3MjYxNjc2NTRjNmY2MTY0MDAwMjAzNjU2ZTc2MTc2ZDQyNzU2NjY2NjU3MjU0NmY0MjY5Njc0OTZlNzQ1NTZlNzM2OTY3NmU2NTY0MDAwMjAzNjU2ZTc2MTk2ZDQyNzU2NjY2NjU3MjQ2NzI2ZjZkNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDIwMzY1NmU3NjEzNmQ0Mjc1NjY2NjY1NzI1Mzc0NmY3MjYxNjc2NTUzNzQ2ZjcyNjUwMDAyMDM2NTZlNzYwZjZkNDI3NTY2NjY2NTcyNTM2NTc0NDI3OTc0NjU3MzAwMDUwMzY1NmU3NjBlNjM2ODY1NjM2YjRlNmY1MDYxNzk2ZDY1NmU3NDAwMDAwMzY1NmU3NjE0NjI2OTY3NDk2ZTc0NDY2OTZlNjk3MzY4NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NDE2NDY0MDAwNjAzMGIwYTAxMDEwNDA3MDMwMTAwMDAwMDAwMDUwMzAxMDAwMzA2MGYwMjdmMDA0MWEwODAwODBiN2YwMDQxYTA4MDA4MGIwNzQ2MDcwNjZkNjU2ZDZmNzI3OTAyMDAwNDY5NmU2OTc0MDAxMTA2Njc2NTc0NTM3NTZkMDAxMjAzNjE2NDY0MDAxMzA4NjM2MTZjNmM0MjYxNjM2YjAwMTQwYTVmNWY2NDYxNzQ2MTVmNjU2ZTY0MDMwMDBiNWY1ZjY4NjU2MTcwNWY2MjYxNzM2NTAzMDEwYWNhMDEwYTBlMDEwMTdmNDEwMDEwMGMyMjAwMTAwMDIwMDAwYjE5MDEwMTdmNDE5YzgwMDg0MTljODAwODI4MDIwMDQxMDE2YjIyMDAzNjAyMDAyMDAwMGIxNDAwMTAwMTIwMDA0NjA0NDAwZjBiNDE4MDgwMDg0MTE5MTAwMjAwMGIxNjAwMjAwMDEwMGMyMjAwMTAwMzFhMjAwMDEwMGMyMjAwMTAwNDFhMjAwMDBiMTQwMTAxN2YxMDBjMjIwMjIwMDExMDA1MWEyMDAwMjAwMjEwMDYxYTBiMTMwMTAxN2YxMDBjMjIwMDQxOTk4MDA4NDEwMzEwMDcxYTIwMDAwYjE0MDEwMTdmMTAwODQxMDExMDBkMTAwYjIxMDAxMDEwMjAwMDEwMGYwYjBlMDAxMDA4NDEwMDEwMGQxMDEwMTAwZTEwMDkwYjIyMDEwMzdmMTAwODQxMDExMDBkMTAwYjIxMDExMDEwMjIwMjEwMGUyMjAwMjAwMDIwMDExMDBhMjAwMjIwMDAxMDBmMGIwMzAwMDEwYjBiMmYwMjAwNDE4MDgwMDgwYjFjNzc3MjZmNmU2NzIwNmU3NTZkNjI2NTcyMjA2ZjY2MjA2MTcyNjc3NTZkNjU2ZTc0NzM3Mzc1NmQwMDQxOWM4MDA4MGIwNDljZmZmZmZmQDA1MDBAMDUwNkAyYQ==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gq4hu', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'MDA2MTczNmQwMTAwMDAwMDAxMjkwODYwMDAwMDYwMDAwMTdmNjAwMjdmN2YwMTdmNjAwMjdmN2YwMDYwMDE3ZjAwNjAwMzdmN2Y3ZjAxN2Y2MDAzN2Y3ZjdmMDA2MDAxN2YwMTdmMDI5MDAyMGIwMzY1NmU3NjE5NjI2OTY3NDk2ZTc0NDc2NTc0NTU2ZTczNjk2NzZlNjU2NDQxNzI2Nzc1NmQ2NTZlNzQwMDAzMDM2NTZlNzYwZjY3NjU3NDRlNzU2ZDQxNzI2Nzc1NmQ2NTZlNzQ3MzAwMDEwMzY1NmU3NjBiNzM2OTY3NmU2MTZjNDU3MjcyNmY3MjAwMDMwMzY1NmU3NjEyNmQ0Mjc1NjY2NjY1NzI1Mzc0NmY3MjYxNjc2NTRjNmY2MTY0MDAwMjAzNjU2ZTc2MTc2ZDQyNzU2NjY2NjU3MjU0NmY0MjY5Njc0OTZlNzQ1NTZlNzM2OTY3NmU2NTY0MDAwMjAzNjU2ZTc2MTk2ZDQyNzU2NjY2NjU3MjQ2NzI2ZjZkNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDIwMzY1NmU3NjEzNmQ0Mjc1NjY2NjY1NzI1Mzc0NmY3MjYxNjc2NTUzNzQ2ZjcyNjUwMDAyMDM2NTZlNzYwZjZkNDI3NTY2NjY2NTcyNTM2NTc0NDI3OTc0NjU3MzAwMDUwMzY1NmU3NjBlNjM2ODY1NjM2YjRlNmY1MDYxNzk2ZDY1NmU3NDAwMDAwMzY1NmU3NjE0NjI2OTY3NDk2ZTc0NDY2OTZlNjk3MzY4NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NDE2NDY0MDAwNjAzMGIwYTAxMDEwNDA3MDMwMTAwMDAwMDAwMDUwMzAxMDAwMzA2MGYwMjdmMDA0MWEwODAwODBiN2YwMDQxYTA4MDA4MGIwNzQ2MDcwNjZkNjU2ZDZmNzI3OTAyMDAwNDY5NmU2OTc0MDAxMTA2Njc2NTc0NTM3NTZkMDAxMjAzNjE2NDY0MDAxMzA4NjM2MTZjNmM0MjYxNjM2YjAwMTQwYTVmNWY2NDYxNzQ2MTVmNjU2ZTY0MDMwMDBiNWY1ZjY4NjU2MTcwNWY2MjYxNzM2NTAzMDEwYWNhMDEwYTBlMDEwMTdmNDEwMDEwMGMyMjAwMTAwMDIwMDAwYjE5MDEwMTdmNDE5YzgwMDg0MTljODAwODI4MDIwMDQxMDE2YjIyMDAzNjAyMDAyMDAwMGIxNDAwMTAwMTIwMDA0NjA0NDAwZjBiNDE4MDgwMDg0MTE5MTAwMjAwMGIxNjAwMjAwMDEwMGMyMjAwMTAwMzFhMjAwMDEwMGMyMjAwMTAwNDFhMjAwMDBiMTQwMTAxN2YxMDBjMjIwMjIwMDExMDA1MWEyMDAwMjAwMjEwMDYxYTBiMTMwMTAxN2YxMDBjMjIwMDQxOTk4MDA4NDEwMzEwMDcxYTIwMDAwYjE0MDEwMTdmMTAwODQxMDExMDBkMTAwYjIxMDAxMDEwMjAwMDEwMGYwYjBlMDAxMDA4NDEwMDEwMGQxMDEwMTAwZTEwMDkwYjIyMDEwMzdmMTAwODQxMDExMDBkMTAwYjIxMDExMDEwMjIwMjEwMGUyMjAwMjAwMDIwMDExMDBhMjAwMjIwMDAxMDBmMGIwMzAwMDEwYjBiMmYwMjAwNDE4MDgwMDgwYjFjNzc3MjZmNmU2NzIwNmU3NTZkNjI2NTcyMjA2ZjY2MjA2MTcyNjc3NTZkNjU2ZTc0NzM3Mzc1NmQwMDQxOWM4MDA4MGIwNDljZmZmZmZmQDA1MDBAMDUwNkAyYQ==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: 0061736d010000000129086000006000017f60027f7f017f60027f7f0060017f0060037f7f7f017f60037f7f7f0060017f017f0290020b03656e7619626967496e74476574556e7369676e6564417267756d656e74000303656e760f6765744e756d417267756d656e7473000103656e760b7369676e616c4572726f72000303656e76126d42756666657253746f726167654c6f6164000203656e76176d427566666572546f426967496e74556e7369676e6564000203656e76196d42756666657246726f6d426967496e74556e7369676e6564000203656e76136d42756666657253746f7261676553746f7265000203656e760f6d4275666665725365744279746573000503656e760e636865636b4e6f5061796d656e74000003656e7614626967496e7446696e697368556e7369676e6564000403656e7609626967496e744164640006030b0a010104070301000000000503010003060f027f0041a080080b7f0041a080080b074607066d656d6f7279020004696e697400110667657453756d00120361646400130863616c6c4261636b00140a5f5f646174615f656e6403000b5f5f686561705f6261736503010aca010a0e01017f4100100c2200100020000b1901017f419c8008419c800828020041016b220036020020000b1400100120004604400f0b4180800841191002000b16002000100c220010031a2000100c220010041a20000b1401017f100c2202200110051a2000200210061a0b1301017f100c220041998008410310071a20000b1401017f10084101100d100b210010102000100f0b0e0010084100100d1010100e10090b2201037f10084101100d100b210110102202100e220020002001100a20022000100f0b0300010b0b2f0200418080080b1c77726f6e67206e756d626572206f6620617267756d656e747373756d00419c80080b049cffffff@0500@0506@2a\n" ] } @@ -1085,7 +1017,7 @@ " is_payable_by_sc=True\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(deploy_transaction))\n", + "print(\"Transaction:\", deploy_transaction.to_dictionary())\n", "print(\"Transaction data:\", deploy_transaction.data.decode())" ] }, @@ -1125,7 +1057,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -1141,7 +1073,7 @@ "\n", "address_computer = AddressComputer()\n", "contract_address = address_computer.compute_contract_address(\n", - " deployer=Address.new_from_bech32(deploy_transaction.sender),\n", + " deployer=deploy_transaction.sender,\n", " deployment_nonce=deploy_transaction.nonce\n", ")\n", "\n", @@ -1159,32 +1091,29 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In the end, you can parse the results using a `SmartContractTransactionsOutcomeParser`. However, since the `parse_deploy` method requires a `TransactionOutcome` object as input, we need to first convert our `TransactionOnNetwork` object to a `TransactionOutcome`, by means of a `TransactionsConverter`." + "In the end, you can parse the results using a `SmartContractTransactionsOutcomeParser`." ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "SmartContractDeployOutcome(return_code='', return_message='', contracts=[DeployedSmartContract(address=erd1qqqqqqqqqqqqqpgqws44xjx2t056nn79fn29q0rjwfrd3m43396ql35kxy, owner_address=erd1testnlersh4z0wsv8kjx39me4rmnvjkwu8dsaea7ukdvvc9z396qykv7z7, code_hash=384b680df7a95ebceca02ffb3e760a2fc288dea1b802685ef15df22ae88ba15b)])\n" + "SmartContractDeployOutcome(return_code='ok', return_message='ok', contracts=[DeployedSmartContract(address=erd1qqqqqqqqqqqqqpgqws44xjx2t056nn79fn29q0rjwfrd3m43396ql35kxy, owner_address=erd1testnlersh4z0wsv8kjx39me4rmnvjkwu8dsaea7ukdvvc9z396qykv7z7, code_hash=384b680df7a95ebceca02ffb3e760a2fc288dea1b802685ef15df22ae88ba15b)])\n" ] } ], "source": [ - "from multiversx_sdk import (SmartContractTransactionsOutcomeParser,\n", - " TransactionsConverter)\n", + "from multiversx_sdk import SmartContractTransactionsOutcomeParser\n", "\n", - "converter = TransactionsConverter()\n", "parser = SmartContractTransactionsOutcomeParser()\n", "\n", "transaction_on_network = proxy.get_transaction(\"0a7da74038244790b5bd4cd614c26cd5a6be76a6fcfcfb037974cc116b2ee9c6\")\n", - "transaction_outcome = converter.transaction_on_network_to_outcome(transaction_on_network)\n", - "parsed_outcome = parser.parse_deploy(transaction_outcome)\n", + "parsed_outcome = parser.parse_deploy(transaction_on_network)\n", "\n", "print(parsed_outcome)" ] @@ -1205,20 +1134,23 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqpgquzmh78klkqwt0p4rjys0qtp3la07gz4d396qn50nnm', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'dXBncmFkZUNvbnRyYWN0QDAwNjE3MzZkMDEwMDAwMDAwMTI5MDg2MDAwMDA2MDAwMDE3ZjYwMDI3ZjdmMDE3ZjYwMDI3ZjdmMDA2MDAxN2YwMDYwMDM3ZjdmN2YwMTdmNjAwMzdmN2Y3ZjAwNjAwMTdmMDE3ZjAyOTAwMjBiMDM2NTZlNzYxOTYyNjk2NzQ5NmU3NDQ3NjU3NDU1NmU3MzY5Njc2ZTY1NjQ0MTcyNjc3NTZkNjU2ZTc0MDAwMzAzNjU2ZTc2MGY2NzY1NzQ0ZTc1NmQ0MTcyNjc3NTZkNjU2ZTc0NzMwMDAxMDM2NTZlNzYwYjczNjk2NzZlNjE2YzQ1NzI3MjZmNzIwMDAzMDM2NTZlNzYxMjZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU0YzZmNjE2NDAwMDIwMzY1NmU3NjE3NmQ0Mjc1NjY2NjY1NzI1NDZmNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDIwMzY1NmU3NjE5NmQ0Mjc1NjY2NjY1NzI0NjcyNmY2ZDQyNjk2NzQ5NmU3NDU1NmU3MzY5Njc2ZTY1NjQwMDAyMDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU1Mzc0NmY3MjY1MDAwMjAzNjU2ZTc2MGY2ZDQyNzU2NjY2NjU3MjUzNjU3NDQyNzk3NDY1NzMwMDA1MDM2NTZlNzYwZTYzNjg2NTYzNmI0ZTZmNTA2MTc5NmQ2NTZlNzQwMDAwMDM2NTZlNzYxNDYyNjk2NzQ5NmU3NDQ2Njk2ZTY5NzM2ODU1NmU3MzY5Njc2ZTY1NjQwMDA0MDM2NTZlNzYwOTYyNjk2NzQ5NmU3NDQxNjQ2NDAwMDYwMzBiMGEwMTAxMDQwNzAzMDEwMDAwMDAwMDA1MDMwMTAwMDMwNjBmMDI3ZjAwNDFhMDgwMDgwYjdmMDA0MWEwODAwODBiMDc0NjA3MDY2ZDY1NmQ2ZjcyNzkwMjAwMDQ2OTZlNjk3NDAwMTEwNjY3NjU3NDUzNzU2ZDAwMTIwMzYxNjQ2NDAwMTMwODYzNjE2YzZjNDI2MTYzNmIwMDE0MGE1ZjVmNjQ2MTc0NjE1ZjY1NmU2NDAzMDAwYjVmNWY2ODY1NjE3MDVmNjI2MTczNjUwMzAxMGFjYTAxMGEwZTAxMDE3ZjQxMDAxMDBjMjIwMDEwMDAyMDAwMGIxOTAxMDE3ZjQxOWM4MDA4NDE5YzgwMDgyODAyMDA0MTAxNmIyMjAwMzYwMjAwMjAwMDBiMTQwMDEwMDEyMDAwNDYwNDQwMGYwYjQxODA4MDA4NDExOTEwMDIwMDBiMTYwMDIwMDAxMDBjMjIwMDEwMDMxYTIwMDAxMDBjMjIwMDEwMDQxYTIwMDAwYjE0MDEwMTdmMTAwYzIyMDIyMDAxMTAwNTFhMjAwMDIwMDIxMDA2MWEwYjEzMDEwMTdmMTAwYzIyMDA0MTk5ODAwODQxMDMxMDA3MWEyMDAwMGIxNDAxMDE3ZjEwMDg0MTAxMTAwZDEwMGIyMTAwMTAxMDIwMDAxMDBmMGIwZTAwMTAwODQxMDAxMDBkMTAxMDEwMGUxMDA5MGIyMjAxMDM3ZjEwMDg0MTAxMTAwZDEwMGIyMTAxMTAxMDIyMDIxMDBlMjIwMDIwMDAyMDAxMTAwYTIwMDIyMDAwMTAwZjBiMDMwMDAxMGIwYjJmMDIwMDQxODA4MDA4MGIxYzc3NzI2ZjZlNjcyMDZlNzU2ZDYyNjU3MjIwNmY2NjIwNjE3MjY3NzU2ZDY1NmU3NDczNzM3NTZkMDA0MTljODAwODBiMDQ5Y2ZmZmZmZkAwNTA2QDJh', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqpgquzmh78klkqwt0p4rjys0qtp3la07gz4d396qn50nnm', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'dXBncmFkZUNvbnRyYWN0QDAwNjE3MzZkMDEwMDAwMDAwMTI5MDg2MDAwMDA2MDAwMDE3ZjYwMDI3ZjdmMDE3ZjYwMDI3ZjdmMDA2MDAxN2YwMDYwMDM3ZjdmN2YwMTdmNjAwMzdmN2Y3ZjAwNjAwMTdmMDE3ZjAyOTAwMjBiMDM2NTZlNzYxOTYyNjk2NzQ5NmU3NDQ3NjU3NDU1NmU3MzY5Njc2ZTY1NjQ0MTcyNjc3NTZkNjU2ZTc0MDAwMzAzNjU2ZTc2MGY2NzY1NzQ0ZTc1NmQ0MTcyNjc3NTZkNjU2ZTc0NzMwMDAxMDM2NTZlNzYwYjczNjk2NzZlNjE2YzQ1NzI3MjZmNzIwMDAzMDM2NTZlNzYxMjZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU0YzZmNjE2NDAwMDIwMzY1NmU3NjE3NmQ0Mjc1NjY2NjY1NzI1NDZmNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDIwMzY1NmU3NjE5NmQ0Mjc1NjY2NjY1NzI0NjcyNmY2ZDQyNjk2NzQ5NmU3NDU1NmU3MzY5Njc2ZTY1NjQwMDAyMDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU1Mzc0NmY3MjY1MDAwMjAzNjU2ZTc2MGY2ZDQyNzU2NjY2NjU3MjUzNjU3NDQyNzk3NDY1NzMwMDA1MDM2NTZlNzYwZTYzNjg2NTYzNmI0ZTZmNTA2MTc5NmQ2NTZlNzQwMDAwMDM2NTZlNzYxNDYyNjk2NzQ5NmU3NDQ2Njk2ZTY5NzM2ODU1NmU3MzY5Njc2ZTY1NjQwMDA0MDM2NTZlNzYwOTYyNjk2NzQ5NmU3NDQxNjQ2NDAwMDYwMzBiMGEwMTAxMDQwNzAzMDEwMDAwMDAwMDA1MDMwMTAwMDMwNjBmMDI3ZjAwNDFhMDgwMDgwYjdmMDA0MWEwODAwODBiMDc0NjA3MDY2ZDY1NmQ2ZjcyNzkwMjAwMDQ2OTZlNjk3NDAwMTEwNjY3NjU3NDUzNzU2ZDAwMTIwMzYxNjQ2NDAwMTMwODYzNjE2YzZjNDI2MTYzNmIwMDE0MGE1ZjVmNjQ2MTc0NjE1ZjY1NmU2NDAzMDAwYjVmNWY2ODY1NjE3MDVmNjI2MTczNjUwMzAxMGFjYTAxMGEwZTAxMDE3ZjQxMDAxMDBjMjIwMDEwMDAyMDAwMGIxOTAxMDE3ZjQxOWM4MDA4NDE5YzgwMDgyODAyMDA0MTAxNmIyMjAwMzYwMjAwMjAwMDBiMTQwMDEwMDEyMDAwNDYwNDQwMGYwYjQxODA4MDA4NDExOTEwMDIwMDBiMTYwMDIwMDAxMDBjMjIwMDEwMDMxYTIwMDAxMDBjMjIwMDEwMDQxYTIwMDAwYjE0MDEwMTdmMTAwYzIyMDIyMDAxMTAwNTFhMjAwMDIwMDIxMDA2MWEwYjEzMDEwMTdmMTAwYzIyMDA0MTk5ODAwODQxMDMxMDA3MWEyMDAwMGIxNDAxMDE3ZjEwMDg0MTAxMTAwZDEwMGIyMTAwMTAxMDIwMDAxMDBmMGIwZTAwMTAwODQxMDAxMDBkMTAxMDEwMGUxMDA5MGIyMjAxMDM3ZjEwMDg0MTAxMTAwZDEwMGIyMTAxMTAxMDIyMDIxMDBlMjIwMDIwMDAyMDAxMTAwYTIwMDIyMDAwMTAwZjBiMDMwMDAxMGIwYjJmMDIwMDQxODA4MDA4MGIxYzc3NzI2ZjZlNjcyMDZlNzU2ZDYyNjU3MjIwNmY2NjIwNjE3MjY3NzU2ZDY1NmU3NDczNzM3NTZkMDA0MTljODAwODBiMDQ5Y2ZmZmZmZkAwNTA2QDJh', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqpgquzmh78klkqwt0p4rjys0qtp3la07gz4d396qn50nnm', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'dXBncmFkZUNvbnRyYWN0QDAwNjE3MzZkMDEwMDAwMDAwMTI5MDg2MDAwMDA2MDAwMDE3ZjYwMDI3ZjdmMDE3ZjYwMDI3ZjdmMDA2MDAxN2YwMDYwMDM3ZjdmN2YwMTdmNjAwMzdmN2Y3ZjAwNjAwMTdmMDE3ZjAyOTAwMjBiMDM2NTZlNzYxOTYyNjk2NzQ5NmU3NDQ3NjU3NDU1NmU3MzY5Njc2ZTY1NjQ0MTcyNjc3NTZkNjU2ZTc0MDAwMzAzNjU2ZTc2MGY2NzY1NzQ0ZTc1NmQ0MTcyNjc3NTZkNjU2ZTc0NzMwMDAxMDM2NTZlNzYwYjczNjk2NzZlNjE2YzQ1NzI3MjZmNzIwMDAzMDM2NTZlNzYxMjZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU0YzZmNjE2NDAwMDIwMzY1NmU3NjE3NmQ0Mjc1NjY2NjY1NzI1NDZmNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDIwMzY1NmU3NjE5NmQ0Mjc1NjY2NjY1NzI0NjcyNmY2ZDQyNjk2NzQ5NmU3NDU1NmU3MzY5Njc2ZTY1NjQwMDAyMDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU1Mzc0NmY3MjY1MDAwMjAzNjU2ZTc2MGY2ZDQyNzU2NjY2NjU3MjUzNjU3NDQyNzk3NDY1NzMwMDA1MDM2NTZlNzYwZTYzNjg2NTYzNmI0ZTZmNTA2MTc5NmQ2NTZlNzQwMDAwMDM2NTZlNzYxNDYyNjk2NzQ5NmU3NDQ2Njk2ZTY5NzM2ODU1NmU3MzY5Njc2ZTY1NjQwMDA0MDM2NTZlNzYwOTYyNjk2NzQ5NmU3NDQxNjQ2NDAwMDYwMzBiMGEwMTAxMDQwNzAzMDEwMDAwMDAwMDA1MDMwMTAwMDMwNjBmMDI3ZjAwNDFhMDgwMDgwYjdmMDA0MWEwODAwODBiMDc0NjA3MDY2ZDY1NmQ2ZjcyNzkwMjAwMDQ2OTZlNjk3NDAwMTEwNjY3NjU3NDUzNzU2ZDAwMTIwMzYxNjQ2NDAwMTMwODYzNjE2YzZjNDI2MTYzNmIwMDE0MGE1ZjVmNjQ2MTc0NjE1ZjY1NmU2NDAzMDAwYjVmNWY2ODY1NjE3MDVmNjI2MTczNjUwMzAxMGFjYTAxMGEwZTAxMDE3ZjQxMDAxMDBjMjIwMDEwMDAyMDAwMGIxOTAxMDE3ZjQxOWM4MDA4NDE5YzgwMDgyODAyMDA0MTAxNmIyMjAwMzYwMjAwMjAwMDBiMTQwMDEwMDEyMDAwNDYwNDQwMGYwYjQxODA4MDA4NDExOTEwMDIwMDBiMTYwMDIwMDAxMDBjMjIwMDEwMDMxYTIwMDAxMDBjMjIwMDEwMDQxYTIwMDAwYjE0MDEwMTdmMTAwYzIyMDIyMDAxMTAwNTFhMjAwMDIwMDIxMDA2MWEwYjEzMDEwMTdmMTAwYzIyMDA0MTk5ODAwODQxMDMxMDA3MWEyMDAwMGIxNDAxMDE3ZjEwMDg0MTAxMTAwZDEwMGIyMTAwMTAxMDIwMDAxMDBmMGIwZTAwMTAwODQxMDAxMDBkMTAxMDEwMGUxMDA5MGIyMjAxMDM3ZjEwMDg0MTAxMTAwZDEwMGIyMTAxMTAxMDIyMDIxMDBlMjIwMDIwMDAyMDAxMTAwYTIwMDIyMDAwMTAwZjBiMDMwMDAxMGIwYjJmMDIwMDQxODA4MDA4MGIxYzc3NzI2ZjZlNjcyMDZlNzU2ZDYyNjU3MjIwNmY2NjIwNjE3MjY3NzU2ZDY1NmU3NDczNzM3NTZkMDA0MTljODAwODBiMDQ5Y2ZmZmZmZkAwNTA2QDJh', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: upgradeContract@0061736d010000000129086000006000017f60027f7f017f60027f7f0060017f0060037f7f7f017f60037f7f7f0060017f017f0290020b03656e7619626967496e74476574556e7369676e6564417267756d656e74000303656e760f6765744e756d417267756d656e7473000103656e760b7369676e616c4572726f72000303656e76126d42756666657253746f726167654c6f6164000203656e76176d427566666572546f426967496e74556e7369676e6564000203656e76196d42756666657246726f6d426967496e74556e7369676e6564000203656e76136d42756666657253746f7261676553746f7265000203656e760f6d4275666665725365744279746573000503656e760e636865636b4e6f5061796d656e74000003656e7614626967496e7446696e697368556e7369676e6564000403656e7609626967496e744164640006030b0a010104070301000000000503010003060f027f0041a080080b7f0041a080080b074607066d656d6f7279020004696e697400110667657453756d00120361646400130863616c6c4261636b00140a5f5f646174615f656e6403000b5f5f686561705f6261736503010aca010a0e01017f4100100c2200100020000b1901017f419c8008419c800828020041016b220036020020000b1400100120004604400f0b4180800841191002000b16002000100c220010031a2000100c220010041a20000b1401017f100c2202200110051a2000200210061a0b1301017f100c220041998008410310071a20000b1401017f10084101100d100b210010102000100f0b0e0010084100100d1010100e10090b2201037f10084101100d100b210110102202100e220020002001100a20022000100f0b0300010b0b2f0200418080080b1c77726f6e67206e756d626572206f6620617267756d656e747373756d00419c80080b049cffffff@0506@2a\n" ] } ], "source": [ + "from pathlib import Path\n", + "\n", + "from multiversx_sdk import Address\n", + "\n", "contract_address = Address.new_from_bech32(\"erd1qqqqqqqqqqqqqpgquzmh78klkqwt0p4rjys0qtp3la07gz4d396qn50nnm\")\n", "bytecode = Path(\"./contracts/adder.wasm\").read_bytes()\n", "\n", @@ -1234,7 +1166,7 @@ " is_payable_by_sc=True\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(upgrade_transaction))\n", + "print(\"Transaction:\", upgrade_transaction.to_dictionary())\n", "print(\"Transaction data:\", upgrade_transaction.data.decode())" ] }, @@ -1254,12 +1186,13 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ - "from multiversx_sdk import SmartContractTransactionsFactory\n", + "from multiversx_sdk import SmartContractTransactionsFactory, TransactionsFactoryConfig\n", "\n", + "config = TransactionsFactoryConfig(chain_id=\"D\")\n", "factory = SmartContractTransactionsFactory(config)" ] }, @@ -1272,7 +1205,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -1296,20 +1229,22 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqpgqws44xjx2t056nn79fn29q0rjwfrd3m43396ql35kxy', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'YWRkQDJh', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqpgqws44xjx2t056nn79fn29q0rjwfrd3m43396ql35kxy', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'YWRkQDJh', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qqqqqqqqqqqqqpgqws44xjx2t056nn79fn29q0rjwfrd3m43396ql35kxy', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'YWRkQDJh', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: add@2a\n" ] } ], "source": [ + "from multiversx_sdk import Address\n", + "from multiversx_sdk.abi import U32Value\n", + "\n", "contract_address = Address.new_from_bech32(\"erd1qqqqqqqqqqqqqpgqws44xjx2t056nn79fn29q0rjwfrd3m43396ql35kxy\")\n", "\n", "# For arguments, use typed value objects if you haven't provided an ABI to the factory:\n", @@ -1325,7 +1260,7 @@ " arguments=args\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -1367,7 +1302,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 41, "metadata": {}, "outputs": [], "source": [ @@ -1392,20 +1327,21 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAMDAwMDAwMDAwMDAwMDAwMDA1MDA3NDJiNTM0OGNhNWJlOWE5Y2ZjNTRjZDQ1MDNjNzI3MjQ2ZDhlZWIxODk3NEAwMkA1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAwQDYxNjQ2NEAyYQ==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", - "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAMDAwMDAwMDAwMDAwMDAwMDA1MDA3NDJiNTM0OGNhNWJlOWE5Y2ZjNTRjZDQ1MDNjNzI3MjQ2ZDhlZWIxODk3NEAwMkA1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAwQDYxNjQ2NEAyYQ==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': '', 'relayer': '', 'innerTransactions': []}\n", + "Transaction: {'nonce': 0, 'value': '0', 'receiver': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'sender': 'erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th', 'senderUsername': '', 'receiverUsername': '', 'gasPrice': 1000000000, 'gasLimit': 10000000, 'data': 'TXVsdGlFU0RUTkZUVHJhbnNmZXJAMDAwMDAwMDAwMDAwMDAwMDA1MDA3NDJiNTM0OGNhNWJlOWE5Y2ZjNTRjZDQ1MDNjNzI3MjQ2ZDhlZWIxODk3NEAwMkA1NDQ1NTM1NDJkMzMzODY2MzIzNDM5QDAxQDAxQDQyNDE1MjJkNjMzODMwNjQzMjM5QEA4YWM3MjMwNDg5ZTgwMDAwQDYxNjQ2NEAyYQ==', 'chainID': 'D', 'version': 2, 'options': 0, 'guardian': '', 'signature': '', 'guardianSignature': ''}\n", "Transaction data: MultiESDTNFTTransfer@00000000000000000500742b5348ca5be9a9cfc54cd4503c727246d8eeb18974@02@544553542d333866323439@01@01@4241522d633830643239@@8ac7230489e80000@616464@2a\n" ] } ], "source": [ + "from multiversx_sdk import Token, TokenTransfer\n", + "\n", "first_token = Token(\"TEST-38f249\", 1)\n", "first_transfer = TokenTransfer(first_token, 1)\n", "\n", @@ -1423,7 +1359,7 @@ " token_transfers=transfers\n", ")\n", "\n", - "print(\"Transaction:\", transaction_converter.transaction_to_dictionary(transaction))\n", + "print(\"Transaction:\", transaction.to_dictionary())\n", "print(\"Transaction data:\", transaction.data.decode())" ] }, @@ -1451,22 +1387,19 @@ "\n", "Suppose we'd like to decode a `startPerformAction` event emitted by the [multisig](https://github.com/multiversx/mx-contracts-rs/tree/main/contracts/multisig) contract.\n", "\n", - "Let's fetch an already processed [transaction](https://devnet-explorer.multiversx.com/transactions/05d445cdd145ecb20374844dcc67f0b1e370b9aa28a47492402bc1a150c2bab4), to serve as an exmple, and convert it to a [TransactionOutcome](https://multiversx.github.io/mx-sdk-py/_modules/multiversx_sdk/core/transactions_outcome_parsers/resources.html#TransactionOutcome)." + "Let's fetch an already processed [transaction](https://devnet-explorer.multiversx.com/transactions/05d445cdd145ecb20374844dcc67f0b1e370b9aa28a47492402bc1a150c2bab4), to serve as an exmple." ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 44, "metadata": {}, "outputs": [], "source": [ - "from multiversx_sdk import ApiNetworkProvider, TransactionsConverter\n", - "\n", - "api = ApiNetworkProvider(\"https://testnet-api.multiversx.com\")\n", - "converter = TransactionsConverter()\n", + "from multiversx_sdk import ApiNetworkProvider\n", "\n", - "transaction_on_network = api.get_transaction(\"6f006c99e45525c94629db2442d9ca27ff088ad113a09f0a3a3e24bcc164945a\")\n", - "transaction_outcome = converter.transaction_on_network_to_outcome(transaction_on_network)" + "api = ApiNetworkProvider(\"https://devnet-api.multiversx.com\")\n", + "transaction_on_network = api.get_transaction(\"6651b983d494d69d94ce3efb3ae1604480af7c17780ab58daa09a9e5cc1d86c8\")" ] }, { @@ -1478,14 +1411,14 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "namespace(data=namespace(action_id=1, group_id=0, action_data=namespace(0=b'\\x019G.\\xffh\\x86w\\x1a\\x98/0\\x83\\xda]B\\x1f$\\xc2\\x91\\x81\\xe68\\x88\"\\x8d\\xc8\\x1c\\xa6\\ri\\xe1', __discriminant__=1), signers=[b'<5\\xd7\\xea\\xcb\\x1a\\x99\\xa4\\xa0\\xcc\\xaaS~\\xf0\\xcc\\n\\xe1\\t\\xf4\\x1fl+@\"\\x03\\xe63\\xbf\\xbb\\x07\\x1f\\\\']))\n" + "namespace(data=namespace(action_id=1, group_id=0, action_data=_EnumPayload(0=namespace(to=b'\\x1e\\x8a\\x8bkI\\xde[{\\xe1\\n\\xaa\\x15\\x8aZjJ\\xbbKV\\xcc\\x08\\xf5$\\xbb^l\\xd5\\xf2\\x11\\xad>\\x13', egld_amount=1000000000000000000, opt_gas_limit=None, endpoint_name=b'', arguments=[]), __discriminant__=5), signers=[b'\\x019G.\\xffh\\x86w\\x1a\\x98/0\\x83\\xda]B\\x1f$\\xc2\\x91\\x81\\xe68\\x88\"\\x8d\\xc8\\x1c\\xa6\\ri\\xe1', b'\\x80I\\xd69\\xe5\\xa6\\x98\\r\\x1c\\xd29*\\xbc\\xceA\\x02\\x9c\\xdat\\xa1V5#\\xa2\\x02\\xf0\\x96A\\xcc&\\x18\\xf8']))\n" ] } ], @@ -1496,7 +1429,7 @@ "abi = Abi.load(Path(\"./contracts/multisig-full.abi.json\"))\n", "events_parser = TransactionEventsParser(abi)\n", "\n", - "[event] = find_events_by_first_topic(transaction_outcome, \"startPerformAction\")\n", + "[event] = find_events_by_first_topic(transaction_on_network, \"startPerformAction\")\n", "parsed_event = events_parser.parse_event(event)\n", "\n", "print(parsed_event)" @@ -1515,7 +1448,7 @@ "source": [ "In order to perform Smart Contract queries, we recommend the use of `SmartContractQueriesController`.\n", "\n", - "You will notice that the `SmartContractQueriesController` requires a `QueryRunner` object at initialization. A `NetworkProvider`, slighly adapted, is used to satisfy this requirement (more details about **network providers** can be found in a later section)." + "You will notice that the `SmartContractQueriesController` requires a `NetworkProvider` object at initialization." ] }, { @@ -1524,13 +1457,10 @@ "metadata": {}, "outputs": [], "source": [ - "from multiversx_sdk import (ProxyNetworkProvider, QueryRunnerAdapter,\n", - " SmartContractQueriesController)\n", + "from multiversx_sdk import ApiNetworkProvider, SmartContractQueriesController\n", "\n", - "contract = Address.new_from_bech32(\"erd1qqqqqqqqqqqqqpgqqy34h7he2ya6qcagqre7ur7cc65vt0mxrc8qnudkr4\")\n", - "query_runner = QueryRunnerAdapter(ProxyNetworkProvider(\"https://devnet-api.multiversx.com\"))\n", - "\n", - "query_controller = SmartContractQueriesController(query_runner)\n" + "api = ApiNetworkProvider(\"https://devnet-api.multiversx.com\")\n", + "query_controller = SmartContractQueriesController(network_provider=api)\n" ] }, { @@ -1547,7 +1477,7 @@ "outputs": [], "source": [ "abi = Abi.load(Path(\"contracts/adder.abi.json\"))\n", - "query_controller = SmartContractQueriesController(query_runner, abi)" + "query_controller = SmartContractQueriesController(network_provider=api, abi=abi)" ] }, { @@ -1571,6 +1501,10 @@ } ], "source": [ + "from multiversx_sdk import Address\n", + "\n", + "contract = Address.new_from_bech32(\"erd1qqqqqqqqqqqqqpgqqy34h7he2ya6qcagqre7ur7cc65vt0mxrc8qnudkr4\")\n", + "\n", "data_parts = query_controller.query(\n", " contract=contract.to_bech32(),\n", " function=\"getSum\",\n", @@ -1634,7 +1568,6 @@ { "cell_type": "code", "execution_count": 43, - "execution_count": 43, "metadata": {}, "outputs": [ { @@ -1665,7 +1598,6 @@ { "cell_type": "code", "execution_count": 44, - "execution_count": 44, "metadata": {}, "outputs": [], "source": [ @@ -1690,7 +1622,6 @@ { "cell_type": "code", "execution_count": 45, - "execution_count": 45, "metadata": {}, "outputs": [ { @@ -1721,7 +1652,6 @@ { "cell_type": "code", "execution_count": 46, - "execution_count": 46, "metadata": {}, "outputs": [], "source": [ @@ -1743,7 +1673,6 @@ { "cell_type": "code", "execution_count": 47, - "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -1783,7 +1712,6 @@ { "cell_type": "code", "execution_count": 48, - "execution_count": 48, "metadata": {}, "outputs": [ { @@ -1816,7 +1744,6 @@ { "cell_type": "code", "execution_count": 49, - "execution_count": 49, "metadata": {}, "outputs": [ { @@ -1847,7 +1774,6 @@ { "cell_type": "code", "execution_count": 50, - "execution_count": 50, "metadata": {}, "outputs": [ { @@ -1885,7 +1811,6 @@ { "cell_type": "code", "execution_count": 51, - "execution_count": 51, "metadata": {}, "outputs": [], "source": [ @@ -1904,7 +1829,6 @@ { "cell_type": "code", "execution_count": 52, - "execution_count": 52, "metadata": {}, "outputs": [], "source": [ @@ -1920,25 +1844,24 @@ }, { "cell_type": "code", - "execution_count": 53, - "execution_count": 53, + "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Signature: ee6d665981c00258858923bbbe51e1cfe29911716190a3eedc24e2205100bb05faf3d8133fc973b00409aa18708b41488702d635efefe6a24b4a2b7f66267a00\n" + "Signature: 283d5dc0f5074f494c5e00a7fa6c9f337763c962e302f1b711033fa0113a3a62310021dfe8465e45e5f09db20d69caac942213215560e074f600fbbeb290900b\n" ] } ], "source": [ - "from multiversx_sdk import Transaction, TransactionComputer\n", + "from multiversx_sdk import Address, Transaction, TransactionComputer\n", "\n", "tx = Transaction(\n", " nonce=90,\n", - " sender=\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\",\n", - " receiver=\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\",\n", + " sender=Address.new_from_bech32(\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\"),\n", + " receiver=Address.new_from_bech32(\"erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx\"),\n", " value=1000000000000000000,\n", " gas_limit=50000,\n", " chain_id=\"D\"\n", @@ -1959,15 +1882,14 @@ }, { "cell_type": "code", - "execution_count": 54, - "execution_count": 54, + "execution_count": 53, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Signature: 561bc58f1dc6b10de208b2d2c22c9a474ea5e8cabb59c3d3ce06bbda21cc46454aa71a85d5a60442bd7784effa2e062fcb8fb421c521f898abf7f5ec165e5d0f\n" + "Signature: e77e6f77dd800d346f9ebe95a23c55eaaa74830fd1185cd57faa4b0372436f57cd3d5c3ac79f36ed7809ab61c08a82567179e56e9a5192ba5732160adaf5490a\n" ] } ], @@ -2000,7 +1922,6 @@ { "cell_type": "code", "execution_count": 55, - "execution_count": 55, "metadata": {}, "outputs": [], "source": [ @@ -2023,7 +1944,6 @@ { "cell_type": "code", "execution_count": 56, - "execution_count": 56, "metadata": {}, "outputs": [ { @@ -2072,8 +1992,7 @@ }, { "cell_type": "code", - "execution_count": 57, - "execution_count": 57, + "execution_count": 54, "metadata": {}, "outputs": [], "source": [ @@ -2091,8 +2010,7 @@ }, { "cell_type": "code", - "execution_count": 58, - "execution_count": 58, + "execution_count": 55, "metadata": {}, "outputs": [], "source": [ @@ -2101,6 +2019,25 @@ "provider = ProxyNetworkProvider(\"https://devnet-gateway.multiversx.com\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Additionally, we can create a `NetworkProviderConfig` to set an User-Agent or to specify custom request headers." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "from multiversx_sdk import NetworkProviderConfig\n", + "\n", + "config = NetworkProviderConfig(client_name=\"py-examples\")\n", + "provider = ProxyNetworkProvider(url=\"https://devnet-gateway.multiversx.com\", config=config)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -2117,8 +2054,7 @@ }, { "cell_type": "code", - "execution_count": 59, - "execution_count": 59, + "execution_count": 57, "metadata": {}, "outputs": [ { @@ -2153,16 +2089,15 @@ }, { "cell_type": "code", - "execution_count": 60, - "execution_count": 60, + "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Nonce: 1853\n", - "Balance: 3364970609086014407\n" + "Nonce: 10782\n", + "Balance: 45641510491204646308\n" ] } ], @@ -2173,35 +2108,6 @@ "print(\"Balance:\", account_on_network.balance)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "When sending a number of transactions, you usually have to first fetch the account nonce from the network (see above), then manage it locally (e.g. increment upon signing & broadcasting a transaction):" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "execution_count": 61, - "metadata": {}, - "outputs": [], - "source": [ - "from multiversx_sdk import AccountNonceHolder\n", - "\n", - "nonce_holder = AccountNonceHolder(account_on_network.nonce)\n", - "\n", - "tx.nonce = nonce_holder.get_nonce_then_increment()\n", - "# Then, sign & broadcast the transaction(s)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For further reference, please see [nonce management](https://docs.multiversx.com/integrators/creating-transactions/#nonce-management)." - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -2218,35 +2124,40 @@ }, { "cell_type": "code", - "execution_count": 62, - "execution_count": 62, + "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Transaction hash: 999da2b84011ffd6aedb966c8262804bb5280064a77f543f841e4eae96af8013\n" + "Transaction hash: 53f98ae90fef48a028af3122c36859a9073a5052155ce22113963ab0f71f2670\n" ] } ], "source": [ + "from multiversx_sdk import Address, NetworkProviderConfig, ProxyNetworkProvider, Transaction, UserSigner\n", + "\n", + "config = NetworkProviderConfig(client_name=\"py-examples\")\n", + "provider = ProxyNetworkProvider(url=\"https://devnet-gateway.multiversx.com\", config=config)\n", + "\n", "alice = Address.new_from_bech32(\"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th\")\n", "\n", "tx = Transaction(\n", - " sender=alice.to_bech32(),\n", - " receiver=alice.to_bech32(),\n", + " sender=alice,\n", + " receiver=alice,\n", " gas_limit=50000,\n", " chain_id=\"D\"\n", ")\n", "\n", "alice_on_network = provider.get_account(alice)\n", - "\n", "tx.nonce = alice_on_network.nonce\n", + "\n", + "signer = UserSigner.from_pem_file(Path(\"../multiversx_sdk/testutils/testwallets/alice.pem\"))\n", "tx.signature = signer.sign(transaction_computer.compute_bytes_for_signing(tx))\n", "\n", "hash = provider.send_transaction(tx)\n", - "print(\"Transaction hash:\", hash)" + "print(\"Transaction hash:\", hash.hex())" ] }, { @@ -2258,53 +2169,59 @@ }, { "cell_type": "code", - "execution_count": 63, - "execution_count": 63, + "execution_count": 68, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Transactions hashes: (3, {'0': '999da2b84011ffd6aedb966c8262804bb5280064a77f543f841e4eae96af8013', '1': '0cf69d20c599334047fb1ec9e392086a5b00a42b688dbd9728d7e979a2555622', '2': 'b2e2c5fbb4fbf9be8ec539af4cb719c5b478067eb6772fa0a47a031ef4150b5b'})\n" + "Transactions sent: 3\n", + "Transactions hashes: ['0e12db41401f6f1a5a024b7f2a8f3241da700b1c8a56a9672533981417f3710d', 'a557580df8cb8861c151c240f61b61de3c74502c60de8d4dfa89754c215c848f', '4fa8ea1747642b45063c63196565489845268ff466b327c24749c6462233f20a']\n" ] } ], "source": [ "tx_1 = Transaction(\n", - " sender=alice.to_bech32(),\n", - " receiver=alice.to_bech32(),\n", + " sender=alice,\n", + " receiver=alice,\n", " gas_limit=50000,\n", " chain_id=\"D\"\n", ")\n", "\n", "tx_2 = Transaction(\n", - " sender=alice.to_bech32(),\n", - " receiver=alice.to_bech32(),\n", + " sender=alice,\n", + " receiver=alice,\n", " gas_limit=50000,\n", " chain_id=\"D\"\n", ")\n", "\n", "tx_3 = Transaction(\n", - " sender=alice.to_bech32(),\n", - " receiver=alice.to_bech32(),\n", + " sender=alice,\n", + " receiver=alice,\n", " gas_limit=50000,\n", " chain_id=\"D\"\n", ")\n", "\n", "alice_on_network = provider.get_account(alice)\n", - "nonce_holder = AccountNonceHolder(account_on_network.nonce)\n", + "nonce = alice_on_network.nonce\n", + "\n", + "tx_1.nonce = nonce\n", + "nonce += 1\n", + "\n", + "tx_2.nonce = nonce\n", + "nonce += 1\n", "\n", - "tx_1.nonce = nonce_holder.get_nonce_then_increment()\n", - "tx_2.nonce = nonce_holder.get_nonce_then_increment()\n", - "tx_3.nonce = nonce_holder.get_nonce_then_increment()\n", + "tx_3.nonce = nonce\n", + "nonce += 1\n", "\n", "tx_1.signature = signer.sign(transaction_computer.compute_bytes_for_signing(tx_1))\n", "tx_2.signature = signer.sign(transaction_computer.compute_bytes_for_signing(tx_2))\n", "tx_3.signature = signer.sign(transaction_computer.compute_bytes_for_signing(tx_3))\n", "\n", - "hashes = provider.send_transactions([tx_1, tx_2, tx_3])\n", - "print(\"Transactions hashes:\", hashes)" + "num_transactions_sent, hashes = provider.send_transactions([tx_1, tx_2, tx_3])\n", + "print(\"Transactions sent:\", num_transactions_sent)\n", + "print(\"Transactions hashes:\", [hash.hex() for hash in hashes])" ] }, { @@ -2316,21 +2233,20 @@ }, { "cell_type": "code", - "execution_count": 64, - "execution_count": 64, + "execution_count": 69, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Status: success\n", + "Status: TransactionStatus(status='success', is_completed=True, is_successful=True)\n", "Is completed: True\n" ] } ], "source": [ - "tx_on_network = provider.get_transaction(\"9270a6879b682a7b310c659f58b641ccdd5f083e5633669817130269e5b0939b\", with_process_status=True)\n", + "tx_on_network = provider.get_transaction(\"9270a6879b682a7b310c659f58b641ccdd5f083e5633669817130269e5b0939b\")\n", "print(\"Status:\", tx_on_network.status)\n", "print(\"Is completed:\", tx_on_network.is_completed)" ] @@ -2352,7 +2268,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.4" + "version": "3.12.3" }, "orig_nbformat": 4, "vscode": {