-
Notifications
You must be signed in to change notification settings - Fork 144
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* chore: formatting Signed-off-by: Svet <[email protected]> * add: example Signed-off-by: Svet <[email protected]> * chore: formatting Signed-off-by: Svet <[email protected]> * update: example Signed-off-by: Svet <[email protected]> --------- Signed-off-by: Svet <[email protected]>
- Loading branch information
1 parent
e24251b
commit 516b7f3
Showing
3 changed files
with
100 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
import { | ||
Client, | ||
PrivateKey, | ||
AccountId, | ||
NodeCreateTransaction, | ||
NodeUpdateTransaction, | ||
NodeDeleteTransaction, | ||
ServiceEndpoint, | ||
} from "@hashgraph/sdk"; | ||
|
||
import dotenv from "dotenv"; | ||
|
||
dotenv.config(); | ||
|
||
async function main() { | ||
if ( | ||
process.env.OPERATOR_ID == null || | ||
process.env.OPERATOR_KEY == null || | ||
process.env.HEDERA_NETWORK == null | ||
) { | ||
throw new Error( | ||
"Environment variables OPERATOR_ID, HEDERA_NETWORK, and OPERATOR_KEY are required.", | ||
); | ||
} | ||
|
||
const network = process.env.HEDERA_NETWORK; | ||
const operatorId = AccountId.fromString(process.env.OPERATOR_ID); | ||
const operatorKey = PrivateKey.fromStringDer(process.env.OPERATOR_KEY); | ||
const client = Client.forName(network).setOperator(operatorId, operatorKey); | ||
|
||
// Transaction parameters | ||
const accountId = AccountId.fromString("0.0.999"); | ||
const description = "This is a description of the node."; | ||
const newDescription = "This is new a description of the node."; | ||
const ipAddressV4 = Uint8Array.of(127, 0, 0, 1); | ||
const port = 50211; | ||
const gossipEndpoint = new ServiceEndpoint() | ||
.setIpAddressV4(ipAddressV4) | ||
.setPort(port); | ||
const gossipEndpoints = [gossipEndpoint]; | ||
const serviceEndpoint = new ServiceEndpoint() | ||
.setIpAddressV4(ipAddressV4) | ||
.setPort(port); | ||
const serviceEndpoints = [serviceEndpoint]; | ||
const gossipCaCertificate = new Uint8Array(); | ||
const certificateHash = new Uint8Array(); | ||
const adminKey = PrivateKey.generate(); | ||
|
||
// 1. Create a new node | ||
console.log("Creating a new node..."); | ||
const createTransaction = new NodeCreateTransaction() | ||
.setAccountId(accountId) | ||
.setDescription(description) | ||
.setGossipEndpoints(gossipEndpoints) | ||
.setServiceEndpoints(serviceEndpoints) | ||
.setGossipCaCertificate(gossipCaCertificate) | ||
.setCertificateHash(certificateHash) | ||
.setAdminKey(adminKey); | ||
const createTransactionResponse = await createTransaction.execute(client); | ||
const createTransactionReceipt = | ||
await createTransactionResponse.getReceipt(client); | ||
const nodeId = createTransactionReceipt.nodeId; | ||
console.log( | ||
`Node create transaction status: ${createTransactionReceipt.status.toString()}`, | ||
); | ||
console.log( | ||
`Node has been created successfully with node id: ${nodeId.toString()}`, | ||
); | ||
|
||
// 2. Update the node | ||
console.log("Updating the node..."); | ||
const updateTransaction = new NodeUpdateTransaction() | ||
.setNodeId(nodeId) | ||
.setDescription(newDescription); | ||
const updateTrasnactionResponse = await updateTransaction.execute(client); | ||
const updateTrasnactionReceipt = | ||
await updateTrasnactionResponse.getReceipt(client); | ||
console.log( | ||
`Node update transaction status: ${updateTrasnactionReceipt.status.toString()}`, | ||
); | ||
|
||
// 3. Delete the node | ||
console.log("Deleting the node..."); | ||
const deleteTransaction = new NodeDeleteTransaction().setNodeId(nodeId); | ||
const deleteTransactionResponse = await deleteTransaction.execute(client); | ||
const deleteTransactionReceipt = | ||
await deleteTransactionResponse.getReceipt(client); | ||
console.log( | ||
`Node delete transaction status: ${deleteTransactionReceipt.status.toString()}`, | ||
); | ||
|
||
client.close(); | ||
} | ||
|
||
void main(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters