Socket
Book a DemoInstallSign in
Socket

baseline-protocol-template

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

baseline-protocol-template

truffle box for baseline protocol

latest
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

Baseline Protocol Truffle Box

Developer Tools 🛠️

  • Truffle
  • Baseline
  • Openzeppelin Contracts

Workflows 🧰

Organization Registry 💼

Each organization registered within the OrgRegistry first generates a secp256k1 keypair and uses the Ethereum public address representation as "primary key" for future resolution. This key SHOULD NOT sign transactions. A best practice is to use an HD wallet to rotate keys, preventing any account from signing more than a single transaction.

Note that an organization may not update its address.

struct Org {
    address orgAddress;
    bytes32 name;
    bytes messagingEndpoint;
    bytes whisperKey;
    bytes zkpPublicKey;
    bytes metadata;
}

struct OrgInterfaces {
    bytes32 groupName;
    address tokenAddress;
    address shieldAddress;
    address verifierAddress;
}

mapping (address => Org) orgMap;
mapping (uint => OrgInterfaces) orgInterfaceMap;
uint orgInterfaceCount;

Org[] public orgs;
mapping(address => address) managerMap;

event RegisterOrg(
    bytes32 _name,
    address _address,
    bytes _messagingEndpoint,
    bytes _whisperKey,
    bytes _zkpPublicKey,
    bytes _metadata
);

event UpdateOrg(
    bytes32 _name,
    address _address,
    bytes _messagingEndpoint,
    bytes _whisperKey,
    bytes _zkpPublicKey,
    bytes _metadata
);

Shield 🛡

Unlike the Radish34 Reference Implementation, the contracts package does not include a "shield" contract. Rather, it is up to each workgroup to determine a suitable shielding mechanism to ensure privacy. For example, the IBaselineRPC implementation within the Nethermind client used in the BRI-1 Reference Implementation ships with shield contract binaries (i.e., including the MerkleTreeSHA contract).

Registry Contracts Overview 🏢

Files Description Table

File NameSHA-1 Hash
contracts/registry/IOrgRegistry.sol0514e15aa16c4c92f61c3cdc3f17d93e3ee56377
contracts/registry/OrgRegistry.sole0bb2ddd83c0d3373d6b58d50ec756a833ac88d0
contracts/registry/Registrar.sol6507a72d2283a5e2cc04bc99ea90ef1f878fe9b7

Contracts Description Table

ContractTypeBases
Function NameVisibilityMutabilityModifiers
IOrgRegistryInterface
registerOrgExternal ❗️🛑NO❗️
updateOrgExternal ❗️🛑NO❗️
getOrgCountExternal ❗️NO❗️
getOrgExternal ❗️NO❗️
OrgRegistryImplementationOwnable, ERC165Compatible, Registrar, IOrgRegistry
Public ❗️🛑ERC165Compatible Registrar
setInterfacesPublic ❗️🛑onlyOwner
getInterfacesExternal ❗️NO❗️
canImplementInterfaceForAddressExternal ❗️NO❗️
assignManagerExternal ❗️🛑onlyOwner
registerOrgExternal ❗️🛑onlyOwner
updateOrgExternal ❗️🛑NO❗️
registerInterfacesExternal ❗️🛑onlyOwner
getOrgCountExternal ❗️NO❗️
getOrgExternal ❗️NO❗️
getInterfaceAddressesExternal ❗️NO❗️
RegistrarImplementation
Public ❗️🛑NO❗️
setInterfaceImplementationInternal 🔒🛑
interfaceAddrExternal ❗️NO❗️
assignManagementInternal 🔒🛑
getManagerPublic ❗️NO❗️

Legend

SymbolMeaning
🛑Function can modify state
💵Function is payable

Privacy Contracts Description Report 🔮

Files Description Table

File NameSHA-1 Hash
contracts/privacy/IShield.solc4b6e694bbdd4317e6fdc1e595e467cb10e5e1dd
contracts/privacy/IVerifier.solba4926ea2f01fde5d11362808fc1e573e69e31e3
contracts/privacy/Shield.sol14415a0a47a10c0865993bdc3c8a350c683dc69f

Contracts Description Table

ContractTypeBases
Function NameVisibilityMutabilityModifiers
IShieldInterface
getVerifierExternal ❗️NO❗️
verifyAndPushExternal ❗️🛑NO❗️
IVerifierInterface
verifyExternal ❗️🛑NO❗️
ShieldImplementationIShield, MerkleTreeSHA256
Public ❗️🛑MerkleTreeSHA256
getVerifierExternal ❗️NO❗️
verifyAndPushExternal ❗️🛑NO❗️

Legend

SymbolMeaning
🛑Function can modify state
💵Function is payable

License

CC-0

FAQs

Package last updated on 16 Nov 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts