From d2cbc487ec1ea729ce26f428fc6cf11a800710cf Mon Sep 17 00:00:00 2001 From: Mathieu <128623147+MathieuConte@users.noreply.github.com> Date: Thu, 29 Feb 2024 15:53:21 +0100 Subject: [PATCH] feat(tuto): update tuto explorer --- docs/tutorials/explorer-sc.md | 227 +++--------------- .../img/content/tutorials/explorermaj-1.webp | Bin 0 -> 63792 bytes 2 files changed, 29 insertions(+), 198 deletions(-) create mode 100644 static/img/content/tutorials/explorermaj-1.webp diff --git a/docs/tutorials/explorer-sc.md b/docs/tutorials/explorer-sc.md index 5ac25e9daca..88faf08986d 100644 --- a/docs/tutorials/explorer-sc.md +++ b/docs/tutorials/explorer-sc.md @@ -2,19 +2,23 @@ sidebar_position: 4 --- -# Explorer & smart contracts +# Explorer ![OKP4 with Keplr](/img/content/tutorials/explorer-0.webp) The ability to interact seamlessly with a blockchain is a crucial skill. Whether tracking transactions or executing smart contract messages, having the right tools at your disposal can make all the difference. -That's where the [OKP4 Explorer](https://explore.okp4.network/OKP4%20testnet) comes in. Are you ready to unpack its capabilities? Let's embark on a journey of exploration and discovery into the OKP4 blockchain **🚀**. +That's where the [OKP4 Explorer](https://explore.okp4.network/OKP4%20Drunemeton%20testnet) comes in. Are you ready to unpack its capabilities? Let's embark on a journey of exploration and discovery into the OKP4 blockchain **🚀**. ## What is the OKP4 Explorer? -An OKP4 blockchain explorer, such as [the OKP4 Explorer](https://explore.okp4.network/OKP4%20testnet), bridges users and the OKP4 network. It's essentially an intuitive interface that allows users to interact with the blockchain. +An OKP4 blockchain explorer, such as [the OKP4 Explorer](https://explore.okp4.network/OKP4%20Drunemeton%20testnet), bridges users and the OKP4 network. It's essentially an intuitive interface that allows users to interact with the blockchain. -Think of an explorer as your personal guide to the OKP4 blockchain. It's more than just a viewing platform; you can send transactions, deploy and interact with CosmWasm smart contracts, and even participate in governance. +Think of an explorer as your personal guide to the OKP4 blockchain. It's more than just a viewing platform, you can: + +- Send transactions. +- Deploy and interact with CosmWasm smart contracts. +- Participate in governance. Watch out for this [list of OKP4 explorers](https://github.com/okp4/awesome#-block-explorers). Anyone can build his own OKP4 blockchain explorer. This means you can tailor an explorer to your specific needs: from your blockchain node, querying it for information and presenting the result in a user-friendly format. @@ -24,8 +28,8 @@ But while building your own explorer is possible, it requires significant time, A transaction on the blockchain is a record of some blockchain state change, like the transfer of tokens from one account to another or the execution of a smart contract. -The [OKP4 Explorer](https://explore.okp4.network/OKP4%20testnet) allows you to view and analyze these transactions in detail. -Several transactions are validated in a block. You can check [the last validated blocks](https://explore.okp4.network/OKP4%20testnet/block) via the "Blocks" menu of the explorer. Click on the "Transactions" tab to get the last transactions. +The [OKP4 Explorer](https://explore.okp4.network/OKP4%20Drunemeton%20testnet) allows you to view and analyze these transactions in detail. +Several transactions are validated in a block. You can check the last validated blocks via the ["Blocks" menu](https://explore.okp4.network/OKP4%20Drunemeton%20testnet/block) . Click on the "Transactions tab" to get the transactions in recent blocks. Before moving on to transactions with smart contracts, let's begin with a basic operation: a transfer of $KNOW tokens. @@ -35,25 +39,32 @@ You need to [set up a wallet with Keplr and own some $KNOW tokens](https://docs. ::: -1. Ensure to use the *testnet* ([https://explore.okp4.network/OKP4 testnet](https://explore.okp4.network/OKP4%20testnet)) and not the *devnet* ([https://explore.okp4.network/OKP4 devnet](https://explore.okp4.network/OKP4%20devnet)). -Link your OKP4 account to the explorer; click on the wallet button (upper on the right), "Connect wallet", "Keplr", "Connect" and then on "Approve". +1. Ensure to use the [drunemeton testnet](https://explore.okp4.network/OKP4%20Drunemeton%20testnet) and not the [nemeton testnet](https://explore.okp4.network/OKP4%20devnet) or the devnet. + +- Link your OKP4 account to the explorer. +- Click on the wallet button (upper on the right), "Connect wallet", "Keplr", "Connect" and then on "Approve". + You'll see your OKP4 wallet address if you click again on the wallet button. Click on it to copy the address. -2. Click on the "Send" button from the Dashboard, and send a few $KNOW tokens to another OKP4 wallet (`okp41r0pf2d78w8w29sm9a6qm8x6yqshezm0k6vwcrg` as the recipient for example). Click on "Send" and "Approve" to confirm the transfer. +2. Now,you are ready to send $KNOW via the explorer interface : -
+- Click on the "Send" button from the Dashboard. +- Send a few $KNOW tokens to another OKP4 wallet, `okp41wuxc2mzy0wp27cdcfnde3vz07eurpd7grfmq6n` as the recipient for example. +- Click on "Send" and "Approve" to confirm the transfer. + +
Once completed, click on "View transaction". -3. Here are what the OKP4 Explorer shows us for [the `Send` transaction details](https://explore.okp4.network/OKP4%20testnet/tx/F50F300F369A5D2428492A439E167C32D4B4F79E61CC40EF39479AA83169CFD5). +3. Here are what the OKP4 Explorer shows us for [the `Send` transaction details](https://explore.okp4.network/OKP4%20Drunemeton%20testnet/tx/C131C3AFC90C92BCAC5044438D68984B842A481869B40CD831CC40AD1E983F2A). -- **Transaction Hash:** `F50F300F369A5D2428492A439E167C32D4B4F79E61CC40EF39479AA83169CFD5` as a unique identifier, like a receipt that proves a transaction has occurred. -- **Height**: `2900719` is the block number in which the transaction has been validated. -- **Gas:** Computational effort limit to execute the transaction. Here the spent gas is `76439`. The transaction would have failed if it needed more than `200000`. -- **Fees:** `0.01 KNOW` paid to compensate for the computational effort. The more complex a transaction, the higher the gas and, consequently, the fee. Fees also help prevent spam transactions on the network. +- **Transaction Hash:** `C131C3AFC90C92BCAC5044438D68984B842A481869B40CD831CC40AD1E983F2A` as a unique identifier, like a receipt that proves a transaction has occurred. +- **Height**: `363073` is the block number in which the transaction has been validated. +- **Gas:** Computational effort limit to execute the transaction. Here the spent gas is `71918`. The transaction would have failed if it needed more than `200000`. +- **Fees:** `0.005 KNOW` paid to compensate for the computational effort. The more complex a transaction, the higher the gas and, consequently, the fee. Fees also help prevent spam transactions on the network. - **@type:** Each message type corresponds to a specific action on the blockchain. For example, a message with `@type` set to `/cosmos.bank.v1beta1.MsgSend` represents a token transfer operation, while a message with `@type` set to `/cosmos.staking.v1beta1.MsgDelegate` represents a delegation operation in the staking module. -- **From and To Addresses:** Unique identifiers for accounts on the blockchain. Tokens are transferred from the sender's address `okp41cu9wzlcyyxpek20jaqfwzu3llzjgx34cwnv2v5` to the recipient's address `okp41r0pf2d78w8w29sm9a6qm8x6yqshezm0k6vwcrg`. -- **Amount**: `0.02 KNOW` sent +- **From and To Addresses:** Unique identifiers for accounts on the blockchain. Tokens are transferred from the sender's address `okp41yxrseqc9weu6cm0gm85yu64x9xdf3k5z8nwknf` to the recipient's address `okp41wuxc2mzy0wp27cdcfnde3vz07eurpd7grfmq6n`. +- **Amount**: `0.05 KNOW` sent - **JSON:** Two main components (`tx` and `tx_response`) which provide insights into the transaction, its execution status and related metadata. You can also retrieve a transaction you executed by clicking the "Search" button upper on the right, providing your OKP4 address, and clicking "Confirm". Click on the hash in the "Transactions" section to get the details. @@ -62,189 +73,9 @@ You can also retrieve a transaction you executed by clicking the "Search" button If you have the transaction hash, you can also directly get transaction details by providing the hash in the Search modal. -## **Interact with smart contracts via the OKP4 Explorer** - -A smart contract is a piece of code that runs on blockchain nodes, enabling automated and decentralized execution of programs. There are three types of smart contract interactions with Cosmos-based blockchains like OKP4. The OKP4 Explorer enables one to deal with all these operations: - -- **Instantiate:** This is the process of creating a new instance of a smart contract. It requires you to pay gas fees, as it involves computation and storage on the blockchain. -- **Execute:** This is the process of running a smart contract function that changes the state. This could involve transferring tokens, updating variables, or triggering other contracts. Executing a function requires you to pay gas fees. -- **Query:** This is the process of getting data from a smart contract. As it only reads the state, you don't have to pay gas fees when you query a smart contract. - -Consider the following smart contracts with the OKP4 blockchain: - -- `objectarium`, used to store unstructured data like Prolog programs -- `law-stone`, used to manipulate rules (Prolog programs) -- `cognitarium`, used to store structured data (ontology) - -To get all available methods and parameters, you can check the *msg.rs* file of each smart contract from the [OKP4 contracts GitHub repository](https://github.com/okp4/contracts). For example, you can retrieve [how to instantiate a `cognitarium`](https://github.com/okp4/contracts/blob/572a420d5414a86f31920e420861d0991656230d/contracts/okp4-cognitarium/src/msg.rs#L8C4-L8C4) and its [possible `Execute` messages](https://github.com/okp4/contracts/blob/572a420d5414a86f31920e420861d0991656230d/contracts/okp4-cognitarium/src/msg.rs#L16C1-L17C1). - -Below are examples of using a `cognitarium` smart contract. The approach is the same for other smart contracts. - -### Instantiate OKP4 smart contracts - -Anyone can deploy a new instance. Each smart contract is linked to a specific `CODE_ID`. - -|CODE_ID|Smart contract|Description| -|-|-|-| -|4|[`objectarium`](https://github.com/okp4/contracts/tree/main/contracts/okp4-objectarium)|Unstructured object storage| -|5|[`law-stone`](https://github.com/okp4/contracts/tree/main/contracts/okp4-law-stone)|Source of rules| -|7|[`cognitarium`](https://github.com/okp4/contracts/tree/main/contracts/okp4-cognitarium)|Structured object storage, ontology| - -Let's create a new database to populate the ontology, with a `cognitarium` smart contract instantiation (`CODE_ID = 7`). - -1. Click on the "Cosmwasm" tab to have the list of the available smart contracts. Click on the `CODE HASH` link next to `CODE_ID` `7`. - -
- -2. Click on "Instantiate contract". Then a modal shows up. You see your OKP4 address in the "Sender" field. Set your OKP4 address as "Admin", and provide a unique name for the instance in the "Label" field. For the "Messages" field, you can set `{}` if you don't need to specify `limits` regarding store usage, or you can submit a configuration like the following: - -```json -{ - "limits": { - "max_triple_count": "1000000", - "max_byte_size": "1000000000", - "max_triple_byte_size": "999999", - "max_query_limit": 30, - "max_query_variable_count": 30, - "max_insert_data_byte_size": "99999900", - "max_insert_data_triple_count": "10000" - } -} -``` - -Then click "Send" and "Approve" when the Keplr window appears. - -
- -3. Click on "View transaction" once executed to see all instantiation details. The transaction response from the JSON section gives you the resulting contract address. `okp41rprnv4g92cwhjsr226hkxzysxcsjgeh3llw0ps4wpuwsky4w38fq2gpy7z` is the instantiated address from [the `Instantiate` transaction](https://explore.okp4.network/OKP4%20testnet/tx/D132548E38BF942CEC242E1D380BC385335C4DC80DF68AEA37625C9C404A804E). - -
- -If there is an error ([transaction failed](https://explore.okp4.network/OKP4%20testnet/tx/5A6538E7C127A7A8AEA86BD109FD21832365998AD8BC61ECCA980EBF16DC22D0)), the `raw_log` in the transaction response from the JSON section gives the error message. - -4. The instantiated contract appears in the [contract list of `CODE_ID = 7`](https://explore.okp4.network/OKP4%20testnet/cosmwasm/7/contracts). We can see the `okp41rprnv4g92cwhjsr226hkxzysxcsjgeh3llw0ps4wpuwsky4w38fq2gpy7z` address: - -
- -### Use an OKP4 smart contract to execute messages - -Let's insert [these RDF triples](https://github.com/okp4/ontology/blob/d3209eb9395a0292927627004e5114b63bf3cab0/example/rhizome/dataset/0ea1fc7a-dd97-4adc-a10e-169c6597bcde.ttl), to reference an Excel dataset in the ontology. You can only add it in a `cognitarium` contract you instantiated. - -1. The Turtle file data should be encoded in base64. You can use an [online tool](https://www.base64encode.org/), or you can use your terminal: - -```bash -curl -s https://raw.githubusercontent.com/okp4/ontology/d3209eb9395a0292927627004e5114b63bf3cab0/example/rhizome/dataset/0ea1fc7a-dd97-4adc-a10e-169c6597bcde.ttl | base64 | tr -d '\n\r' -``` - -2. Click on the "Execute" button for the `cognitarium` previously instantiated. Copy and paste the encoded data in the "Messages" field, following this JSON structure: - -```json -{ - "insert_data": { - "data": "QHByZWZpeCBhcmVhOiA8aHR0cHM6Ly9vbnRvbG9neS5va3A0LnNwYWNlL3RoZXNhdXJ1cy9hcmVhLz4gLgpAcHJlZml4IGNvcmU6IDxodHRwczovL29udG9sb2d5Lm9rcDQuc3BhY2UvY29yZS8+IC4KQHByZWZpeCBkYXRhc2V0OiA8aHR0cHM6Ly9vbnRvbG9neS5va3A0LnNwYWNlL2RhdGF2ZXJzZS9kYXRhc2V0Lz4gLgpAcHJlZml4IGRzdG1ldGE6IDxodHRwczovL29udG9sb2d5Lm9rcDQuc3BhY2UvZGF0YXZlcnNlL2RhdGFzZXQvbWV0YWRhdGEvPiAuCkBwcmVmaXggbGljZW5zZTogPGh0dHBzOi8vb250b2xvZ3kub2twNC5zcGFjZS90aGVzYXVydXMvbGljZW5zZS8+IC4KQHByZWZpeCBtZWRpYXR5cGU6IDxodHRwczovL29udG9sb2d5Lm9rcDQuc3BhY2UvdGhlc2F1cnVzL21lZGlhLXR5cGUvPiAuCkBwcmVmaXggbWV0YTogPGh0dHBzOi8vb250b2xvZ3kub2twNC5zcGFjZS9tZXRhZGF0YS8+IC4KQHByZWZpeCBtZXRhZHN0OiA8aHR0cHM6Ly9vbnRvbG9neS5va3A0LnNwYWNlL21ldGFkYXRhL2RhdGFzZXQvPiAuCkBwcmVmaXggb3dsOiA8aHR0cDovL3d3dy53My5vcmcvMjAwMi8wNy9vd2wjPiAuCkBwcmVmaXggc2VydmljZTogPGh0dHBzOi8vb250b2xvZ3kub2twNC5zcGFjZS9kYXRhdmVyc2Uvc2VydmljZS8+IC4KQHByZWZpeCB0b3BpYzogPGh0dHBzOi8vb250b2xvZ3kub2twNC5zcGFjZS90aGVzYXVydXMvdG9waWMvPiAuCkBwcmVmaXggeHNkOiA8aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjPiAuCgpkc3RtZXRhOmQxNjE1NzAzLTRlZTEtNGUyZi05OTdlLTE1YWVjZjFlZWE0ZSBhIG93bDpOYW1lZEluZGl2aWR1YWwsCiAgICAgICAgbWV0YWRzdDpHZW5lcmFsTWV0YWRhdGEgOwogICAgY29yZTpkZXNjcmliZXMgZGF0YXNldDowZWExZmM3YS1kZDk3LTRhZGMtYTEwZS0xNjljNjU5N2JjZGUgOwogICAgY29yZTpoYXNDcmVhdG9yICJBbnNlcyIgOwogICAgY29yZTpoYXNEZXNjcmlwdGlvbiAiQXZlYyAzMTg1IGFsaW1lbnRzIHLDqWbDqXJlbmPDqXMsIGNldHRlIG5vdXZlbGxlIHZlcnNpb24gZGUgbGEgdGFibGUgQ2lxdWFsIGludMOoZ3JlIGxlIGTDqXRhaWwgZGUgdG91cyBsZXMgc3VjcmVzIGluZGl2aWR1ZWxzIGNvbnRlbnVzIGRhbnMgbGVzIGFsaW1lbnRzLiBFbGxlIHByb3Bvc2Ugw6lnYWxlbWVudCBkZXMgZG9ubsOpZXMgYWN0dWFsaXPDqWVzIHN1ciBsZXMgcHJpbmNpcGF1eCBmcnVpdHMgZXQgbMOpZ3VtZXMsIHkgY29tcHJpcyBjZXV4IGN1bHRpdsOpcyBlbiBPdXRyZS1tZXIuIFBvdXIgw6p0cmUgZW4gYWTDqXF1YXRpb24gYXZlYyBsZXMgbm91dmVsbGVzIHByYXRpcXVlcyBhbGltZW50YWlyZXMgZGVzIGZyYW7Dp2FpcywgbGEgdGFibGUgaW5jbHV0IGTDqXNvcm1haXMgdW5lIGNpbnF1YW50YWluZSBkZSBub3V2ZWF1eCBhbGltZW50cyBhZGFwdMOpcyBhdXggcsOpZ2ltZXMgdsOpZ8OpdGFyaWVucy4iQGZyIDsKICAgIGNvcmU6aGFzRGVzY3JpcHRpb24gIldpdGggMywxODUgZm9vZHMgcmVmZXJlbmNlZCwgdGhpcyBuZXcgdmVyc2lvbiBvZiB0aGUgQ2lxdWFsIHRhYmxlIGluY2x1ZGVzIGRldGFpbHMgb2YgYWxsIGluZGl2aWR1YWwgc3VnYXJzIGNvbnRhaW5lZCBpbiBmb29kcy4gSXQgYWxzbyBwcm92aWRlcyB1cGRhdGVkIGRhdGEgb24gdGhlIG1haW4gZnJ1aXRzIGFuZCB2ZWdldGFibGVzLCBpbmNsdWRpbmcgdGhvc2UgZ3Jvd24gaW4gdGhlIEZyZW5jaCBvdmVyc2VhcyB0ZXJyaXRvcmllcy4gVG8ga2VlcCB1cCB3aXRoIHRoZSBuZXcgZWF0aW5nIGhhYml0cyBvZiB0aGUgRnJlbmNoLCB0aGUgdGFibGUgbm93IGluY2x1ZGVzIGFyb3VuZCBmaWZ0eSBuZXcgZm9vZHMgYWRhcHRlZCB0byB2ZWdldGFyaWFuIGRpZXRzLiJAZW4gOwogICAgY29yZTpoYXNEZXNjcmlwdGlvbiAiRGllIG5ldWUgVmVyc2lvbiBkZXIgQ2lxdWFsLVRhYmVsbGUgZW50aMOkbHQgMzE4NSBMZWJlbnNtaXR0ZWwgdW5kIGRldGFpbGxpZXJ0ZSBBbmdhYmVuIHp1IGFsbGVuIGluIGRlbiBMZWJlbnNtaXR0ZWxuIGVudGhhbHRlbmVuIGluZGl2aWR1ZWxsZW4gWnVja2Vybi4gQXXDn2VyZGVtIGVudGjDpGx0IHNpZSBha3R1YWxpc2llcnRlIERhdGVuIHp1IGRlbiB3aWNodGlnc3RlbiBPYnN0LSB1bmQgR2Vtw7xzZXNvcnRlbiwgZWluc2NobGllw59saWNoIGRlciBpbiDDnGJlcnNlZSBhbmdlYmF1dGVuIFNvcnRlbi4gVW0gZGVuIG5ldWVuIEVzc2dld29obmhlaXRlbiBkZXIgRnJhbnpvc2VuIGdlcmVjaHQgenUgd2VyZGVuLCBlbnRow6RsdCBkaWUgVGFiZWxsZSBudW4gcnVuZCA1MCBuZXVlIExlYmVuc21pdHRlbCwgZGllIGbDvHIgdmVnZXRhcmlzY2hlIEVybsOkaHJ1bmcgZ2VlaWduZXQgc2luZC4iQGRlIDsKICAgIGNvcmU6aGFzRm9ybWF0IG1lZGlhdHlwZTphcHBsaWNhdGlvbl92bmRtcy1leGNlbCA7CiAgICBjb3JlOmhhc0ltYWdlIDxodHRwczovL21lZGlhLmlzdG9ja3Bob3RvLmNvbS92ZWN0b3JzL3ZlY3Rvci1kYXRhYmFzZS1pY29uLXZlY3Rvci1pZDg4NjcyOTU2OD9rPTYmbT04ODY3Mjk1Njgmcz0xNzA2NjdhJnc9MCZoPWVGT0g1NmNmTW5vRksyTnRYNkJTZV9BYUl5WVdGVUs0RkN1bUlncE1VWTg9PiA7CiAgICBjb3JlOmhhc0xpY2Vuc2UgbGljZW5zZTpMTy1GUi0xXzAgOwogICAgY29yZTpoYXNQdWJsaXNoZXIgIk9LUDQiIDsKICAgIGNvcmU6aGFzU3BhdGlhbENvdmVyYWdlIGFyZWE6MjUwIDsKICAgIGNvcmU6aGFzVGFnICJhbGltZW50YXRpb24taHVtYWluZSIsCiAgICAgICAgImFsaW1lbnRzIiwKICAgICAgICAiY29tcG9zaXRpb24tZGVzLWFsaW1lbnRzIiA7CiAgICBjb3JlOmhhc1RpdGxlICJUYWJsZSBkZSBjb21wb3NpdGlvbiBudXRyaXRpb25uZWxsZSBkZXMgYWxpbWVudHMgQ2lxdWFsIDIwMjAiQGZyIDsKICAgIGNvcmU6aGFzVGl0bGUgIk51dHJpdGlvbmFsIGNvbXBvc2l0aW9uIHRhYmxlIGZvciBDaXF1YWwgMjAyMCBmb29kcyJAZW4gOwogICAgY29yZTpoYXNUaXRsZSAiVGFiZWxsZSBkZXIgTsOkaHJzdG9mZnp1c2FtbWVuc2V0enVuZyB2b24gTGViZW5zbWl0dGVsbiBDaXF1YWwgMjAyMCJAZGUgOwogICAgY29yZTpoYXNUb3BpYyB0b3BpYzpBZ3JpY3VsdHVyZUZvb2RFbnZpcm9ubWVudEFuZEZvcmVzdHJ5IC4KCmRzdG1ldGE6MTU1OTJmZDQtZTM2OC00NmQzLWIxMTMtNWQwZWY4ZDRkMTBmIGEgb3dsOk5hbWVkSW5kaXZpZHVhbCwKICAgICAgICBtZXRhOkF1ZGl0TWV0YWRhdGEgOwogICAgY29yZTpjcmVhdGVkQnkgPGRpZDprZXk6MHgwNGQxZjFiOGY4YTdhMjhmOWE1YTI1NGMzMjZhOTYzYTIyZjVhNWI1ZDVmNWU1ZDVjNWI1YTU5NTg1NzU2NTU+IDsKICAgIGNvcmU6Y3JlYXRlZE9uICIyMDIzLTAzLTI4VDAwOjAwOjAwKzAwOjAwIl5eeHNkOmRhdGVUaW1lIDsKICAgIGNvcmU6ZGVzY3JpYmVzIGRhdGFzZXQ6MGVhMWZjN2EtZGQ5Ny00YWRjLWExMGUtMTY5YzY1OTdiY2RlIDsKICAgIGNvcmU6bGFzdE1vZGlmaWVkQnkgPGRpZDprZXk6MHgwNGQxZjFiOGY4YTdhMjhmOWE1YTI1NGMzMjZhOTYzYTIyZjVhNWI1ZDVmNWU1ZDVjNWI1YTU5NTg1NzU2NTU+IDsKICAgIGNvcmU6dXBkYXRlZE9uICIyMDIzLTAzLTI4VDAwOjAwOjAwKzAwOjAwIl5eeHNkOmRhdGVUaW1lIC4KCmRhdGFzZXQ6MGVhMWZjN2EtZGQ5Ny00YWRjLWExMGUtMTY5YzY1OTdiY2RlIGEgb3dsOk5hbWVkSW5kaXZpZHVhbCwKICAgICAgICBjb3JlOkRhdGFzZXQgOwogICAgY29yZTpoYXNJZGVudGlmaWVyIDx1cm46dXVpZDowZWExZmM3YS1kZDk3LTRhZGMtYTEwZS0xNjljNjU5N2JjZGU+IDsKICAgIGNvcmU6aGFzUmVnaXN0cmFyIDxkaWQ6a2V5OjB4MDRkMWYxYjhmOGE3YTI4ZjlhNWEyNTRjMzI2YTk2M2EyMmY1YTViNWQ1ZjVlNWQ1YzViNWE1OTU4NTc1NjU1PiA7CiAgICBjb3JlOnByb3ZpZGVkQnkgc2VydmljZTpkMWIwYjRkMy1mOWE2LTQxMTUtYmNkOC1hZDk3MjMzYTdiMDggLgo=" - } -} -``` - -The default value of "Gas" would not be enough to cover this transaction cost. Click on "Advance" and set `2000000`. You can also set a `Memo` below. Click on "Send", then "Approve". - -
- -3. Click on "View transaction" once executed to see all insertion details. Thus you can check [the `InsertData` transaction](https://explore.okp4.network/OKP4%20testnet/tx/953EB5C7786862F8239D0CD4629738D5C273DE9ECCE3E15D0A4EEBFED98E4328) added 31 triples. - -
- -### Query an OKP4 smart contract - -Let's retrieve [the `GeneralMetadata` identifier](https://github.com/okp4/ontology/blob/d3209eb9395a0292927627004e5114b63bf3cab0/example/rhizome/dataset/0ea1fc7a-dd97-4adc-a10e-169c6597bcde.ttl#L14) previously stored. - -1. Click on the "Query" button of the `cognitarium` instance you used to insert data. Click on "Smart query". Copy-paste this `Select` query: - -```json -{ - "select": { - "query": { - "select": [ - { - "variable": "metadataid" - } - ], - "prefixes": [ - { - "prefix": "core", - "namespace": "https://ontology.okp4.space/core/" - }, - { - "prefix": "dataset", - "namespace": "https://ontology.okp4.space/dataverse/dataset/" - }, - { - "prefix": "metadst", - "namespace": "https://ontology.okp4.space/metadata/dataset/" - } - ], - "limit": 2, - "where": [ - { - "simple": { - "triple_pattern": { - "subject": { - "variable": "metadataid" - }, - "predicate": { - "node": { - "named_node": { - "prefixed": "core:describes" - } - } - }, - "object": { - "node": { - "named_node": { - "prefixed": "dataset:0ea1fc7a-dd97-4adc-a10e-169c6597bcde" - } - } - } - } - } - }, - { - "simple": { - "triple_pattern": { - "subject": { - "variable": "metadataid" - }, - "predicate": { - "node": { - "named_node": { - "full": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" - } - } - }, - "object": { - "node": { - "named_node": { - "prefixed": "metadst:GeneralMetadata" - } - } - } - } - } - } - ] - } - } -} -``` - -2. Click on "Query contract". You should get a JSON with `https://ontology.okp4.space/dataverse/dataset/metadata/d1615703-4ee1-4e2f-997e-15aecf1eea4e` bound to the variable `metadataid` as a result. - -
- ## Recap' - You can check any blockchain transaction details with an explorer. - Transfer, delegation and governance operations are also possible with this type of user interface. -- You can **instantiate** (deploy from code), **execute** a message (which modifies the blockchain state) and **query** (read request) a smart contract with the [OKP4 Explorer](https://explore.okp4.network/OKP4%20testnet). No need to [use your terminal with the CLI](https://docs.okp4.network/tutorials/cli-1), and you can more easily analyze transaction results. -Explorers are powerful tools that allow you to interact with the OKP4 blockchain in a user-friendly way. Whether you're a developer looking to deploy and test smart contracts, or an end-user wanting to verify transactions, the OKP4 Explorer has you covered. So why wait? Start exploring the OKP4 network today! +Explorers are powerful tools that allow you to interact with the OKP4 blockchain in a user-friendly way. So why wait? Start exploring the OKP4 network today! diff --git a/static/img/content/tutorials/explorermaj-1.webp b/static/img/content/tutorials/explorermaj-1.webp new file mode 100644 index 0000000000000000000000000000000000000000..bb5cd28d1d49924ee39626857e6aebefd7b1a9bf GIT binary patch literal 63792 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૽iykJ5r3Kuu@M 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 Pj*JM?a9SZQRDb{g9P7W; literal 0 HcmV?d00001