-
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.
feat: dynamic address book [HIP-869] (#2403)
* feat: create node transaction (#2402) * feat: add addressBook channel Signed-off-by: svetoslav-nikol0v <[email protected]> * feat: implement NodeCreateTransaction class Signed-off-by: svetoslav-nikol0v <[email protected]> * feat: implement ServiceEndpoint class Signed-off-by: svetoslav-nikol0v <[email protected]> * chore: export new classess Signed-off-by: svetoslav-nikol0v <[email protected]> * update: proto changes Signed-off-by: svetoslav-nikol0v <[email protected]> * update: transaction receipt Signed-off-by: svetoslav-nikol0v <[email protected]> * fix: unit tests Signed-off-by: svetoslav-nikol0v <[email protected]> * fix: method in node create transaction Signed-off-by: svetoslav-nikol0v <[email protected]> --------- Signed-off-by: svetoslav-nikol0v <[email protected]> * fix: integration test Signed-off-by: svetoslav-nikol0v <[email protected]> * chore: remove .only Signed-off-by: svetoslav-nikol0v <[email protected]> * feat: node delete transaction (#2404) Signed-off-by: svetoslav-nikol0v <[email protected]> * feat: node update transaction (#2405) * feat: node update transaction Signed-off-by: svetoslav-nikol0v <[email protected]> * fix: adjustments Signed-off-by: svetoslav-nikol0v <[email protected]> --------- Signed-off-by: svetoslav-nikol0v <[email protected]> * update: example for HIP-869 (#2443) * 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]> * update: remove default values Signed-off-by: Svet <[email protected]> --------- Signed-off-by: svetoslav-nikol0v <[email protected]> Signed-off-by: Svet <[email protected]>
- Loading branch information
1 parent
019a59e
commit 82958b3
Showing
11 changed files
with
1,426 additions
and
8 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
Oops, something went wrong.