profile
viewpoint

moby/libentitlement 61

Entitlements library for high level control of container permissions

n4ss/dkern 2

A small kernel in D language

n4ss/cli 0

The Docker CLI

n4ss/curve25519-dalek 0

A pure-Rust implementation of group operations on Ristretto and Curve25519

n4ss/docker-bench-security 0

The Docker Bench for Security is a script that checks for dozens of common best-practices around deploying Docker containers in production.

n4ss/ed25519-dalek 0

Fast and efficient ed25519 signing and verification in Rust.

n4ss/go-connections 0

Utility package to work with network connections

n4ss/GoPlay 0

Let’s play golang

n4ss/homebrew-core 0

🍻 Default formulae for the missing package manager for macOS

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentlibra/lip

Update Recipient Signature generation reference code in python

 metadata: libra.Metadata = libra.Metadata__TravelRuleMetadata(   ) ) +// `lcs_metadata` will be used as the `metadata` parameter in encode_peer_to_peer_with_metadata_script()+lcs_metadata = lcs.serialize(metadata, libra.Metadata)+ sender_libra_address_hex = "793251de1a61e9b4d1a17d13aa015e45 sender_address = utils.account_address(sender_libra_address_hex)  amount = 1_000_000 +# Method1: using a dataclass++@dataclass+class Attestation:+    metadata: libra.Metadata+    sender_address: libra.AccountAddress+    amount: st.uint64++    def lcs_serialize(self) -> bytes:+        return lcs.serialize(self, Attestation)+	 attest = Attestation(     metadata=metadata,     sender_address=sender_address,     amount=st.uint64(amount), ) dual_attest_msg_lcs = attest.lcs_serialize() + DOMAIN_SEP-    -// `lcs_metadata` will be used as the `metadata` parameter in encode_peer_to_peer_with_metadata_script()-lcs_metadata = lcs.serialize(metadata, libra.Metadata)++# Method2: concat individually serialized bytes++dual_attest_bytearray: bytearray = bytearray()+dual_attest_bytearray.extend(lcs_metadata)+dual_attest_bytearray.extend(utils.account_address(sender_libra_address_hex).lcs_serialize())+dual_attest_bytearray.extend(lcs.serialize(st.uint64(amount), st.uint64))+dual_attest_bytearray.extend(DOMAIN_SEP)+dual_attest_msg_lcs = bytes(dual_attest_bytearray)

nit: dual_attest_msg_lcs this is not lcs encoded anymore

LuZhang-Lou

comment created time in 4 hours

PullRequestReviewEvent

pull request commentlibra/lip

Update Recipient Signature generation reference code in python

Domain separator is not serialized and the byte vector is not serialized either. This is the same as your implem

LuZhang-Lou

comment created time in 7 hours

pull request commentlibra/lip

Update Recipient Signature generation reference code in python

I think it will be easier to read if we keep it very explicit. wdyt of:

from pylibra import lcs
from pylibra import libra_types as libra
from pylibra import serde_types as st
...

metadata: Metadata = libra.Metadata__TravelRuleMetadata(
  libra.TravelRuleMetadata__TravelRuleMetadataVersion0(
    libra.TravelRuleMetadataV0(
      off_chain_reference_id="reference_id",
    )
  )
)
// `lcs_metadata` will be used as the `metadata` parameter in encode_peer_to_peer_with_metadata_script()
lcs_metadata = lcs.serialize(metadata, libra.Metadata)

dual_attest_msg_bytes: bytearray = bytearray()
dual_attest_msg_bytes.extend(lcs_metadata)  # Travel Rule metadata
dual_attest_msg_bytes.extend(lcs.serialize(bytes.fromhex("793251de1a61e9b4d1a17d13aa015e45"), bytes))  # Raw on-chain address (https://github.com/libra/lip/blob/master/lips/lip-5.md#terminology)
dual_attest_msg_bytes.extend(lcs.serialize(st.uint64(1000000), st.uint64))  # Amount
dual_attest_msg_bytes.extend(b"@@$$LIBRA_ATTEST$$@@")  # ASCII-encoded Libra Domain Separator string

// We sign the bytes directly with the compliance private key
// `receiver_metadata_signature` will be used as the `metadata_signature` parameter in  encode_peer_to_peer_with_metadata_script()
receiver_metadata_signature = compliance_private_key.sign(dual_attest_msg_bytes)
LuZhang-Lou

comment created time in 11 hours

create barnchn4ss/lip

branch : fix-lip1-dualattest

created branch time in 11 hours

startedsynacktiv/bip

started time in 14 days

PullRequestReviewEvent

push eventn4ss/lip

Nassim Eddequiouaq

commit sha d29a2af79715efd568aa8050570ee2247e121913

Fix lip-1 metadata example imports Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in a month

Pull request review commentlibra/lip

Update LIPs with transaction metadata and Travel Rule info

 The `receiver_metadata_signature` will then be placed into the `recipient_signat Once both sender and receiver have a status of 'ready_for_settlement', the transaction may then be submitted on-chain by the sender VASP. This submission will utilize the `recipient_signature` which was provided by the receiver VASP (generated via [Recipient Signature](#recipient-signature).  The sender VASP will now generate a transaction via the following and then submit the transaction on-chain:  ```-metadata = TravelRuleMetadatav0 {-  off_chain_reference_id: "123abc", /* The off-chain reference ID specified by `reference_id` in the Off-chain APIs */-};+metadata = Metadata::TravelRuleMetadata(+  TravelRuleMetadata::TravelRuleMetadataVersion0(+    TravelRuleMetadatav0 {+      off_chain_reference_id: "123abc", /* The off-chain reference ID specified by `reference_id` in the Off-chain APIs */+}));+ -lcs_metadata = lcs(MetadataType::TravelRuleMetadataType(-        TravelRuleMetadata::TravelRuleMetadataVersion0(metadata))),+lcs_metadata = lcs.serialize(metadata, Metadata);

Sounds good (Metadata is the old MetadataType), let me prefix with libra_types then

n4ss

comment created time in a month

PullRequestReviewEvent

push eventn4ss/lip

Nassim Eddequiouaq

commit sha c12de7e26e3df71604aa1de6401f5b85c6e9cb59

Update lips/lip-1.mdx Co-authored-by: kphfb <kph@fb.com>

view details

push time in a month

push eventn4ss/lip

Nassim Eddequiouaq

commit sha f62fa9afe55de9dac4603e22ce8d660b2f07fa4c

Update lips/lip-1.mdx Co-authored-by: kphfb <kph@fb.com>

view details

push time in a month

push eventn4ss/lip

Nassim Eddequiouaq

commit sha a6d2fdea86691c5b549e151790982b47eddb6e63

Update lips/lip-1.mdx Co-authored-by: kphfb <kph@fb.com>

view details

push time in a month

pull request commentlibra/lip

Update LIPs with transaction metadata and Travel Rule info

cc @matbd @sblackshear @dpim @kphfb @LuZhang-Lou

n4ss

comment created time in a month

PR opened libra/lip

Update LIPs with transaction metadata and Travel Rule info
  • Updated the LIPs 1 & 4 with the Metadata struct name changes
  • LCS serialization takes a type argument in every client SDK
  • Added a concrete pylibra-based example for the generation & signature of dual attestation payload. (let me know if we only want pseudo code for consistency)

Signed-off-by: Nassim Eddequiouaq nass@fb.com

+68 -40

0 comment

2 changed files

pr created time in a month

push eventn4ss/lip

kphfb

commit sha 5a6150f166a34928d4123791d3da599620e1f8aa

Update lip-1.mdx

view details

kphfb

commit sha 191663dd82754ac23e9a029f7c3aa2f6e7f254ff

Update lip-1.mdx

view details

kphfb

commit sha 6e2c0d5fc44467df61dca07ad62488005115e4af

Merge pull request #48 from libra/kphfb-patch-9 Update lip-1.mdx

view details

kphfb

commit sha 40b40ceb12c85dab0e749745b1257f4fafff8884

Update lip-1.mdx Update as per legal guidance

view details

kphfb

commit sha 380ac0fc6ea89a29d969f2e9c8b433eb867f771d

Merge pull request #49 from libra/kphfb-patch-10 Update lip-1.mdx

view details

Nassim Eddequiouaq

commit sha 8903ad7dea976366da25f4feb39a21964c933869

Update LIPs for transaction metadata and Travel Rule payloads Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in a month

create barnchn4ss/lip

branch : update-txn-tr-metadata

created branch time in a month

fork n4ss/lip

Libra Improvement Proposals

https://lip.libra.org

fork in a month

pull request commentlibra/libra

[breaking][libra framework] Remove LibraTransactionTimeout module

Looks good!

sblackshear

comment created time in a month

pull request commentlibra/libra

[Libra Framework] DesignatedDealer and ParentVASP account creation no…

Awesome, that looks good on our end too!

Just a quick question: is EPAYEE_COMPLIANCE_KEY_NOT_SET only triggered for TR-subject transactions or all of them? Eg. can we send funds <$1000 without a compliance key

sblackshear

comment created time in 2 months

delete branch n4ss/libra

delete branch : txn-metadata-typing

delete time in 3 months

pull request commentlibra/libra

Transaction metadata typing

@bors-libra r=matbd

n4ss

comment created time in 3 months

pull request commentlibra/libra

Transaction metadata typing

-Fixed the conflicts from the rebase-

n4ss

comment created time in 3 months

push eventn4ss/libra

Sam Blackshear

commit sha 4cd3c151fd4284d36ee33e6a3b823b38a5f2beda

[move framework] limit number of child VASP accounts created This is to keep the storage requirements reasonable for MVP. It is easy to relax this later if we have an urgent need for >256 accounts or if the storage requirements of validators change Closes: #5003 Approved by: tzakian

view details

aldenhu

commit sha 9923dc32024f8065465829d14243c8781cb2a551

[storage] set default prune window On test net our full nodes exhausted disk in roughly a week's time. Setting a default prune window to prevent that. (40Mil is >4 days worth of history assuming we have 100 tps on avg.) Closes: #5006 Approved by: sausagee

view details

aldenhu

commit sha f424fc8e64c69483ab55e4717d9ecd333ffb24f4

[storage] trivial: use usize in the get_transaction_iter interface Closes: #4971 Approved by: lightmark

view details

aldenhu

commit sha edcf6e98afd76531200bd19ebfaaca40564e0d9c

[storage] accumulator: get_range_proof_positions To be used in the restore tool. Closes: #4971 Approved by: lightmark

view details

aldenhu

commit sha b336baf08abb506efaf30eb79a828e4bde783039

[backup] The Transaction backup type Backup and restore `Transactions` and `TransactionInfo`s Closes: #4971 Approved by: lightmark

view details

aldenhu

commit sha b91d2085e38e6f19fe7de2151c348966b24fe532

[backup] update docs on manifest types Emphasizing that ranges are right-inclusive. Closes: #4971 Approved by: lightmark

view details

aldenhu

commit sha c4ee44eabcfb6f4e1709bd4b963d790048b32f47

[backup] allow chunk to execeed max_chunk_size if it's single record Eliminates potential errors in edge case tests. Closes: #4971 Approved by: lightmark

view details

Wolfgang Grieskamp

commit sha ca36bd9def08a8d2c513878171d8f3900e9ee27a

[move-prover][libra-framework] True modular verification. This PR deals with the various long running verification problems by changing our compilation scheme, and realizing true modular verification. As a result, most of the disabled verification problems in the framework could be re-enabled (around two dozen functions had been disabled because of timeout). Some are still remaining which need further investigation (3 or 4 or such). The main insights underlying this PR are the followings: - Only the function currently being verified should provide assumptions to the VC context. As experiments showed, if we saturate the VC context with assumptions not relevant for the VC at hand, Z3 goes nnuts, trying to endlessly instantiate quantifiers which are irrelevant for the VC. Sometimes this can be fixed by changing seeds for Z3, but sometimes not. - Module invariants are private to the module. When a module function is called from another module, we do not need to assume the module invariant because we also do not need to assert anything about it. - If we have have non-opaque function which is not subject of the current VC being called and inlined from the VC function, it is more efficient to not "freely" assume or assert any pre/post conditions, but instead let the code speak for itself. Otherwise we again pollute the VC context with useless assumptions. In fact, the top-level VC function might constitute a much simpiler VC problem as the called function. This has been worked into the compilation schema as follows: - We now have 6 (yes 6) different entry points into a function, each one serving a different purpose in verification: - Definition: just the definition of the function, no pre/post conditions. Is being inlined by the others below. - DirectInter: a direct call from the VC function to this function which is in a different module. For such calls, we only assert the explicit pre-conditions, but not those coming from the module invariants or schema apply. We only emit an `ensures` for direct calls if they are opaque. - DirectIntra: a direct call from the VC functions to this function which is in the same module. For such calls, we assert explicit preconditions as well as the ones injected from module invariants. Ensures is treated as above. - Indirect: an entrypoint for calls not from the VC functions, but from functions called by the VC function. No preconditions need are generated for those, because we verified them elsewhere. Ensures are only generated if the function is opaque. - VerificationDefinition: the definition we use for verification. The difference to `Definition` is that we use the DirectXXX stubs to call other functions from this one, in contrast to Indirect. - Verification: finally the top-level verification entry point. This imposes all pre and post conditions and inlines VerificationDefinition. There is a way to override the omission of injected predicates from schema apply or module invariant, so that they are exported to the caller context. For example, to inject publically visible aborts spec into multiple functions (as used in VASP.move) one can write: ``` schema CommonAborts { aborts_if [export] P; } apply CommonAborts to f, g, h; ``` Closes: #4992 Approved by: shazqadeer

view details

David Wong

commit sha 3e05d3fa05658579002035386a007be60b4b234a

[logging] security logging for invalid consensus messages Closes: #4967 Approved by: zekun000

view details

Tim Zakian

commit sha 8da816fd3261d72e5567bde7615e358764e30074

[libra framework] Update minting of LBR to take the exact amount of coins Closes: #4994 Approved by: sblackshear

view details

Greg Nazario

commit sha 8d5da4162783f21380d2cc2c6ecd5f2bcc96a7ef

[logging] add data_display for logging errors data_display now allows for using the display functionality rather than serialization for logging data. Closes: #5011 Approved by: andll

view details

Changyong Hu

commit sha fece82d1258bed157b6ee2d5b0ee4a454db5a846

[libra-trace] Add counters for libra-trace and struct_log. Closes: #5013 Approved by: andll

view details

Changyong Hu

commit sha b9c43e3ab995cffda19b22e94ee248db4a1376bd

[cluster-test] Increase fluent-bit mem_buf_limit to 200MB. Closes: #5017 Approved by: ankushagarwal

view details

Tim Zakian

commit sha 108ec900c3d9d1a6eec443cf6ebddc1ed21e0565

[libra framework] Make DD tiers multi-currency compatible Closes #4973 Closes: #4978 Approved by: sblackshear

view details

Nadir Akhtar

commit sha 993b0b29bae5d27907a010973ad96f807742dbdb

Small typo fix Delete last "t" in "laptopt" Closes: #5014 Approved by: davidiw

view details

Sam Blackshear

commit sha edb493d958e7ceba41732c5b80d87972f2c29bc5

[move framework] combining DualAttestation and DualAttestationLimit - Putting all logic related to dual attestation into a single place - Renaming travel_rule to dual_attestation - Eliminating DualAttestationLimit from on-chain configs list in libra/types - Some cleanup of unused resources, error codes Closes: #5010 Approved by: moeziniaf

view details

Runtian Zhou

commit sha 019651a8d23fae0e8ca29cbc4eb24fce12582b2a

[libra_vm] Refactor libra_vm implementation Closes: #4964 Approved by: dariorussi

view details

David Wolinsky

commit sha 5118dd113e10f416aa70dbec886b35b74b422772

[secure-counters] Implement gauge Missing the set option Closes: #5024 Approved by: ankushagrawal

view details

David Wolinsky

commit sha d004850684702eca3ef6145970c2d93866a82c5a

[consensus] move safety rules counters into safety rules This removes an additional query into safety rules that isn't necessary It helps both resilience and performance! Note these metrics will not show up in CT at this point in time due to lack of push metrics gateway support :/ Closes: #5024 Approved by: ankushagrawal

view details

Wolfgang Grieskamp

commit sha 6f90fa3dc0c369159b8839b8a7407aa1eec41cae

[move-prover][libra-framework] Pragma `export_ensures` + AccountLimit specs This PR adds some specs to AccountLimits (not complete). In the way of doing so, it became apparent that error reporting in the new translation scheme is sometimes inprecise. While the root cause for this is unclear, it appeares once all actual errors are removed from the spec/code, it works. As a workaround, a new pragma `export_ensures` is introduced. This can be temporarily used on module level to fall back partly to the old compilation scheme (namely ensures of inlined functions are generated). This seems to fix the error problem, but is off by default because not every test is termination with it. Closes: #5027 Approved by: sblackshear

view details

push time in 3 months

push eventn4ss/libra

Nassim Eddequiouaq

commit sha 641b3784a12cc1c50523fee72607bba77bfbe829

Fix metadata enums naming Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in 3 months

Pull request review commentlibra/libra

Transaction metadata typing

+// Copyright (c) The Libra Core Contributors+// SPDX-License-Identifier: Apache-2.0++//! This file implements Libra transaction metadata types to allow+//! easy parsing and introspection into metadata, whether the transaction+//! is using regular subaddressing, is subject to travel rule or corresponds+//! to an on-chain payment refund.++use serde::{Deserialize, Serialize};++/// List of all supported metadata types+#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]+pub enum MetadataType {

Actually the ones below are typos

n4ss

comment created time in 3 months

Pull request review commentlibra/libra

Transaction metadata typing

+// Copyright (c) The Libra Core Contributors+// SPDX-License-Identifier: Apache-2.0++//! This file implements Libra transaction metadata types to allow+//! easy parsing and introspection into metadata, whether the transaction+//! is using regular subaddressing, is subject to travel rule or corresponds+//! to an on-chain payment refund.++use serde::{Deserialize, Serialize};++/// List of all supported metadata types+#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]+pub enum MetadataType {

Hmm I don't think that's a typo, in general you type opaque data structures with: 1] type 2] struct details

But given that rust supports storing struct details in each variant, I'm fine with it.

n4ss

comment created time in 3 months

Pull request review commentlibra/libra

Transaction metadata typing

 pub struct GeneralMetadataV0 {     // Subaddress from which the funds are being sent     #[serde(with = "serde_bytes")]     from_subaddress: Option<Vec<u8>>,-    // Event sequence number of referenced payment+    // In the case of refunds, referenced_event refers to the event sequence+    // number of the sender’s original sent payment event.+    // Since refunds are just another form of P2P transfer, the referenced+    // event field allows a refunded payment to refer back to the original+    // payment     referenced_event: Option<u64>, } -// Used for versioning of travel rule metadata+/// List of supported transaction metadata format versions for transactions+/// subject to travel rule #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub enum TravelRuleMetadata {     TravelRuleMetadataVersion0(TravelRuleMetadataV0), } +/// Transaction metadata format for transactions subject to travel rule #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct TravelRuleMetadataV0 {     // Off-chain reference_id.  Used when off-chain APIs are used.

Fixed

n4ss

comment created time in 3 months

push eventn4ss/libra

Nassim Eddequiouaq

commit sha 2c2618c1b7d137eb20f478b148c38aa438803cf1

Update unstructured metadata type from string to bytes Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in 3 months

Pull request review commentlibra/libra

Transaction metadata typing

+// Copyright (c) The Libra Core Contributors+// SPDX-License-Identifier: Apache-2.0++//! This file implements Libra transaction metadata types to allow+//! easy parsing and introspection into metadata, whether the transaction+//! is using regular subaddressing, is subject to travel rule or corresponds+//! to an on-chain payment refund.++use serde::{Deserialize, Serialize};++/// List of all supported metadata types+#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]+pub enum MetadataType {+    Undefined,+    GeneralMetadataType(GeneralMetadata),+    TravelRuleMetadataType(TravelRuleMetadata),+    UnstructuredStringMetadataType(UnstructuredStringMetadata),

I'll just put UnstructuredBytesMetadataType, since this doesn't conform to subaddressing or travel rule, it's very likely that the sender (and hopefully the receiver) know how to interpret those bytes in a custom manner - so no need to come up with a string format until we have a need for it (Memos should probably be explicited at the structure level for example).

n4ss

comment created time in 3 months

push eventn4ss/libra

Nassim Eddequiouaq

commit sha 998317e28d13fb46ca62870fac84358daf91911e

Regenerate move script doc and remove yaml file for txn metadata Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in 3 months

Pull request review commentlibra/libra

Transaction metadata typing

 // Copyright (c) The Libra Core Contributors // SPDX-License-Identifier: Apache-2.0 +//! This file implements Libra transaction metadata types to allow

Afaik, metadata might be relevant for more use cases but only PeerToPeer for now

n4ss

comment created time in 3 months

Pull request review commentlibra/libra

Transaction metadata typing

 use 0x1::LibraAccount; /// associated metadata `metadata` and (optional) `signature` on the metadata, amount, and /// sender address. The `metadata` and `signature` parameters are only required if /// `amount` >= 1_000_000 micro LBR and the sender and recipient of the funds are two distinct VASPs.+/// Standardized `metadata` LCS format can be found in `libra_types::transaction::metadata::MetadataType`.

Doing that now!

n4ss

comment created time in 3 months

push eventn4ss/libra

Nassim Eddequiouaq

commit sha 9d690dcbae657fb99f98de1c298fc02414d11bc8

Add more documentation and minor function exports Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in 3 months

push eventn4ss/libra

Nassim Eddequiouaq

commit sha 73f1792978209f796732c8bc4eb82b3a81662cad

Add more documentation and minor function exports Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in 3 months

Pull request review commentlibra/libra

Transaction metadata typing

+---

Woops yep this is actually a legacy, removing that

n4ss

comment created time in 3 months

push eventn4ss/libra

Nassim Eddequiouaq

commit sha 996b2915c457fe2d34e758b845d0ef3044d6826e

Add metadata typing for libra transactions Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in 3 months

push eventn4ss/libra

Nassim Eddequiouaq

commit sha b0e0e4ae2393dd9035c8702622cf70d20acd4c0f

Add metadata typing for libra transactions Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in 3 months

PR opened libra/libra

Reviewers
Txn metadata typing

Motivation

This PR is implementing transaction metadata types to allow easy parsing and introspection into the metadata, whether the transaction is using regular subaddressing or is subject to travel rule.

Metadata types are added as part of libra-types::transaction, they are also part of the auto-generated yaml file that defines libra types so that they can be accessible through different languages.

Have you read the Contributing Guidelines on pull requests?

Yes

Test Plan

$> cargo x test -p generate-format

     Running target/debug/deps/generate_format-cf5c23909f982dc5

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target/debug/deps/detect_format_change-fb743365d0b74934

running 2 tests
test test_we_can_detect_changes_in_yaml ... ok
test analyze_serde_formats ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target/debug/deps/linter-81889fefa012c8ee

running 1 test
test test_lint_lcs_format ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

   Doc-tests generate-format

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
+151 -0

0 comment

5 changed files

pr created time in 3 months

push eventn4ss/libra

Nassim Eddequiouaq

commit sha 21a3c0607f651807dc270e852c6a9cdf09bd0b3f

Add metadata typing for libra transactions Signed-off-by: Nassim Eddequiouaq <nass@fb.com>

view details

push time in 3 months

create barnchn4ss/libra

branch : txn-metadata-typing

created branch time in 3 months

fork n4ss/libra

Libra’s mission is to enable a simple global payment system and financial infrastructure that empowers billions of people.

https://libra.org

fork in 3 months

more