hashgraph / hedera-sdk-rust

The Hedera™ Rust SDK
Apache License 2.0
42 stars 14 forks source link

Process domain names in addition to IPv4 addresses for address book entries #818

Closed SimiHunjan closed 2 months ago

SimiHunjan commented 3 months ago

Problem

Currently, the SDK only parses the IPv4 address for an address book entry. With dynamic address book, the service endpoints will be updated to use domain names instead of IPv4 addresses.

Solution

The address book will have either the IPv4 address or the domain name populated. The SDK will need to check for both and, if the domain name is populated, be able to interpret that field correctly for transactions.

    {
      "description": "Hosted by Hedera | East Coast, USA",
      "file_id": "0.0.102",
      "max_stake": 714285714285714300,
      "memo": "",
      "min_stake": 0,
      "node_id": 0,
      "node_account_id": "0.0.3",
      "node_cert_hash": "0xffd6ada74a3a34a904bea47603086f8bef3b6be18abed44c4d40e12fb130b97bd6b855aec5d0b90b0b8c7354d5f3b0e4",
      "public_key": "0x308201a2300d06092a864886f70d01010105000382018f003082018a02820181009f1f8a121c2fd6c76fd508d3e429f0c64bcb44c82a70573552aadcad071569e721958f5a5d09f9587ffafcfbe5341a2f0114acae346ef3c90213d3436ebb27f4350c990c5c8c3f8e1e36707bc08d42560823e3f24e09a03ad0955a5098019629dd04b27b251dce055f3ddcb0a41d66f0941b0b87cdfe3498d46038ab5df06f62a5ade08598573a88c8f5860dc1492a6e186485a9b13250e6d17b80cd39c5c819109e73ca732db23ef8baa776ec85ce0091becb2edefbaa5ed3e5dbfbd1f885a4fa881af3f144a8a565853533d89393592086b2d1d362e45bfe1fb45683aba6c640979ad6b46877184726c6ebd58b2eae85c7cfe3fbabef5f6cced850034b3847206c2d678c361876026b8d351e002af5e0ffe6f5b1f295fdc2f469caa2d2381ea0b48ca987cc2c8e635e8b19ce5e172a93761a8d490a9a4518d7255880a14d77b7ba774892b92a40bb81362e34fc6d5178d9b30112934205cb77fb9a282427394564a8554ea47286a47f86239e75c94789ce98c99844782462944f613167d7b50203010001",
      "reward_rate_start": 3561,
      "service_endpoints": [
        {
          "domain_name": "",
          "ip_address_v4": "3.211.248.172",
          "port": 50211
        },
        {
          "domain_name": "",
          "ip_address_v4": "3.211.248.172",
          "port": 50212
        },
        {
          "domain_name": "",
          "ip_address_v4": "35.231.208.148",
          "port": 50211
        },
        {
          "domain_name": "",
          "ip_address_v4": "35.231.208.148",
          "port": 50212
        }
      ],
      "stake": 178571428500000000,
      "stake_not_rewarded": 0,
      "stake_rewarded": 178571428500000000,
      "staking_period": {
        "from": "1723593600.000000000",
        "to": "1723680000.000000000"
      },
      "timestamp": {
        "from": "1723154343.435292337",
        "to": null

Alternatives

No response