From f7c0f04520d5fae83eb7d57d83f0f73c552f3432 Mon Sep 17 00:00:00 2001 From: daveroga Date: Mon, 24 Nov 2025 08:02:34 +0100 Subject: [PATCH] add base and bnb networks --- chain.go | 4 ++++ did.go | 12 ++++++++++++ did_test.go | 28 ++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/chain.go b/chain.go index 838e30a..4bd293f 100644 --- a/chain.go +++ b/chain.go @@ -38,6 +38,10 @@ var chainIDs = map[chainIDKey]ChainID{ {Billions, Test}: 6913, {Linea, Main}: 59144, {Linea, Sepolia}: 59141, + {Base, Main}: 8453, + {Base, Sepolia}: 84532, + {Bnb, Main}: 56, + {Bnb, Test}: 97, } // ChainIDfromDID returns chain name from w3c.DID diff --git a/did.go b/did.go index af02fd9..0a69f2f 100644 --- a/did.go +++ b/did.go @@ -70,6 +70,10 @@ const ( Linea Blockchain = "linea" // UnknownChain is used when it's not possible to retrieve blockchain type from identifier UnknownChain Blockchain = "unknown" + // Base is Base blockchain network + Base Blockchain = "base" + // Bnb is BNB Smart Chain blockchain network + Bnb Blockchain = "bnb" // ReadOnly should be used for readonly identity to build readonly flag ReadOnly Blockchain = "readonly" // NoChain can be used for identity to build readonly flag @@ -82,6 +86,8 @@ var blockchains = map[Blockchain]Blockchain{ Privado: Privado, Billions: Billions, Linea: Linea, + Base: Base, + Bnb: Bnb, UnknownChain: UnknownChain, ReadOnly: ReadOnly, NoChain: NoChain, @@ -224,6 +230,12 @@ var blockchainNetworkMap = map[DIDNetworkFlag]byte{ {Blockchain: Linea, NetworkID: Main}: 0b0100_0000 | 0b0000_1001, {Blockchain: Linea, NetworkID: Sepolia}: 0b0100_0000 | 0b0000_1000, + + {Blockchain: Base, NetworkID: Main}: 0b0101_0000 | 0b0000_0001, + {Blockchain: Base, NetworkID: Sepolia}: 0b0101_0000 | 0b0000_0010, + + {Blockchain: Bnb, NetworkID: Main}: 0b0110_0000 | 0b0000_0001, + {Blockchain: Bnb, NetworkID: Test}: 0b0110_0000 | 0b0000_0010, } // DIDMethodNetwork is map for did methods and their blockchain networks diff --git a/did_test.go b/did_test.go index 6d20ccc..fc0dd2a 100644 --- a/did_test.go +++ b/did_test.go @@ -243,6 +243,34 @@ func TestDID_Build_From_Types(t *testing.T) { net: Sepolia, wantDID: "did:iden3:linea:sepolia:28itzVLBHnMHocFAeArLFYHP59J7WN1s5JwL8yGpQw", }, + { + title: "Iden3 | Base, Main", + method: DIDMethodIden3, + chain: Base, + net: Main, + wantDID: "did:iden3:base:main:2AXVV81Fe3jx79ypPoj2DHadUFBWVkhKZNFyShK2gP", + }, + { + title: "Iden3 | Base, Sepolia", + method: DIDMethodIden3, + chain: Base, + net: Sepolia, + wantDID: "did:iden3:base:sepolia:2Aj7YJXNZrZaatB12speshizQNHDiaKvivrGUfYAVD", + }, + { + title: "Iden3 | Bnb, Main", + method: DIDMethodIden3, + chain: Bnb, + net: Main, + wantDID: "did:iden3:bnb:main:2DjSN2KAUxt1ko4kcwH8owtQQCkt2to2CMifzCwBbd", + }, + { + title: "Iden3 | Bnb, Test", + method: DIDMethodIden3, + chain: Bnb, + net: Test, + wantDID: "did:iden3:bnb:test:2Dw4RCqHQmheEXFwG1NmUN2mLKrbFiRdMvJy2BAKQT", + }, } for i := range testCases {