Ethereum: decrypting p2wsh scripts and derivation of addresses
As a developer building decentralized applications (DAPP) on blockchaine ethereum, it is crucial to understand how to interact with scripts. One of the most comprehensive aspects of the Ethereum scripting is the P2WSH (HAST SCRipt with the evidence of the work) that allows the creation and management of non-fungile tokens (NFT). In this article we immerse ourselves into the P2Wsh scripts world and investigate how to derive the address associated with the TESTNET ID.
Understanding p2wsh scripts
P2WSH is a blockchain scripting language that allows developers to create their own logic for its NFT. It is based on the virtual computer Ethereum (EVM) and allows scripts as if they are deployed on Mainchain. When creating NFT, you must define the P2Wsh script with specific functions and parameters.
SCRIPT address derivation from ID testnet Transaction ID
If you want to infer the address associated with the given ID testnet transaction ID, we will follow the following steps:
1.
- Load script : Load the P2Wsh script to your wallet using
Getscript ()
.
- Get transactions ID : Get a testnet transaction ID for the TXID.
- Create an account : Create a new account in your wallet using
Createaccount ()
.
Here is a sample sketch of code that demonstrates the following steps:
`Javascript
Const Web3 = Require (‘Web3’);
Const Web3 = New Web3 (New Web3.Providers.httpprovider (‘http: // Localhost: 8545’));
// load the ID and script testnet transaction
TXID = ‘6717C8971DCCBF826790EFC16FB357F1E225fed348247B8556C9F13A6C0ce42’;
script = web3.eth.script ({from: 0x …}); // load the p2wsh script
// Create a new account
Const Account = Web3.eth.accoun.create ();
// Get the transaction ID for the txid
txinfo = web3.eth.gettransactionInfo (TXID);
// Deprive the address associated with the transaction ID and script
Const DeriveDaddress = Web3.eth.Accoun.Deriveaccount (Script.address, Txinfo.hash, Txinfo.Receipt);
`
In this example, we create a new account using Createaccounts ()
and then load the testnet ID in our wallet. We use GettransactionInfo ()
to obtain a hash transaction that contains a given txide that is used as an input for the Deriveacount ()
.
Script parameters P2WSH
When creating a P2WSH script, you must use the parameters to enter multiple parameters. Each parameter should be an object with the following structure:
json
{
“Name”: “Your_name”,
“Address”: “0x …”,
“Type”: “Function”
}
`
Here is an example of a simple P2WSH script that extracts the name and address of the sender:
`Javascript
Const Web3 = Require (‘Web3’);
Const Web3 = New Web3 (New Web3.Providers.httpprovider (‘http: // Localhost: 8545’));
// load the p2wsh script to your wallet
Const script = web3.eth.script ({from: 0x …}); // load the p2wsh script
// Create a new account
Const Account = Web3.eth.accoun.create ();
// Get the transaction ID for the txid
txinfo = web3.eth.gettransactionInfo (TXID);
// Deprive the address associated with the transaction ID and script
Const DeriveDaddress = Web3.eth.Accoun.Deriveaccount (Script.address, Txinfo.hash, Txinfo.Receipt);
`
Conclusion
In this article, we have examined how to derive the P2Wsh script address from the Testnet ID. By understanding the foundations of P2WSH scripts and using tools such as Truffle or Myetherwallet, you can create your own logic for your NFT on Blockchaine Ethereum.
Be sure to always keep your wallet safe and using a serious ID and testnet transaction script.
Note: This is just a basic example and the actual P2Wsh scripts may require a more complex logic.