From 748fb70eab61e12b31f903d70c550417ae5b4f50 Mon Sep 17 00:00:00 2001 From: Abdelkader Date: Thu, 13 Jun 2019 14:38:25 +0200 Subject: [PATCH 1/3] Faker::Tezos: add block faker --- lib/faker/blockchain/tezos.rb | 15 ++++++++++----- test/faker/blockchain/tezos.rb | 4 ++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/faker/blockchain/tezos.rb b/lib/faker/blockchain/tezos.rb index 2dd9e0d513..7cb0d5bfe9 100644 --- a/lib/faker/blockchain/tezos.rb +++ b/lib/faker/blockchain/tezos.rb @@ -8,12 +8,13 @@ class Blockchain class Tezos < Base class << self PREFIXES = { - tz1: [6, 161, 159], - KT1: [2, 90, 121], - edpk: [13, 15, 37, 217], + tz1: [6, 161, 159], + KT1: [2, 90, 121], + edpk: [13, 15, 37, 217], edsk: [13, 15, 58, 7], - edsig: [9, 245, 205, 134, 18], - o: [5, 116] + edsig: [9, 245, 205, 134, 18], + B: [1, 52], + o: [5, 116] }.freeze def account @@ -28,6 +29,10 @@ def operation encode_tz(:o, 32) end + def block + encode_tz(:B, 32) + end + def signature encode_tz(:edsig, 64) end diff --git a/test/faker/blockchain/tezos.rb b/test/faker/blockchain/tezos.rb index 8cd9d39bfe..6376bf126c 100644 --- a/test/faker/blockchain/tezos.rb +++ b/test/faker/blockchain/tezos.rb @@ -15,6 +15,10 @@ def test_operation assert Faker::Blockchain::Tezos.operation.match(/^o[1-9A-Za-z][^OIl]{20,40}/) end + def test_block + assert Faker::Tezos.block.match(/^B[1-9A-Za-z][^OIl]{20,40}/) + end + def test_signature assert Faker::Blockchain::Tezos.signature.match(/^edsig[1-9A-Za-z][^OIl]{20,40}/) end From 7c25494b7d4220eb17e16c5c8a6f4d389b4dd42e Mon Sep 17 00:00:00 2001 From: Abdelkader Date: Fri, 14 Jun 2019 13:58:43 +0200 Subject: [PATCH 2/3] Faker::Blockhain::Tezos: add documentation for #block --- doc/unreleased/blockchain/tezos.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/unreleased/blockchain/tezos.md b/doc/unreleased/blockchain/tezos.md index 8cd53c3eeb..66c8dfa3d6 100644 --- a/doc/unreleased/blockchain/tezos.md +++ b/doc/unreleased/blockchain/tezos.md @@ -9,5 +9,7 @@ Faker::Blockchain::Tezos.contract #=> "KT1MroqeP15nnitB4CnNfkqHYa2NErhPPLWF" Faker::Blockchain::Tezos.operation #=> "onygWYXJX3xNstFLv9PcCrhQdCkENC795xwSinmTEc1jsDN4VDa" +Faker::Blockchain::Tezos.block #=> "BMbhs2rkY1dvAkAyRytvPsjFQ2RiPrBhYkxvWpY65dzkdSuw58a" + Faker::Blockchain::Tezos.signature #=> "edsigu165B7VFf3Dpw2QABVzEtCxJY2gsNBNcE3Ti7rRxtDUjqTFRpg67EdAQmY6YWPE5tKJDMnSTJDFu65gic8uLjbW2YwGvAZ" ``` From 42df712a00beb569d91d595b8271065b136747ff Mon Sep 17 00:00:00 2001 From: Pierre Michard Date: Fri, 27 Nov 2020 12:02:48 +0100 Subject: [PATCH 3/3] Faker::Blockchain::Tezos: add secret_key and public_key --- doc/blockchain/tezos.md | 4 ++++ lib/faker/blockchain/tezos.rb | 28 ++++++++++++++++++++++++++++ test/faker/blockchain/test_tezos.rb | 8 ++++++++ 3 files changed, 40 insertions(+) diff --git a/doc/blockchain/tezos.md b/doc/blockchain/tezos.md index f8e05bd411..f86f7ac897 100644 --- a/doc/blockchain/tezos.md +++ b/doc/blockchain/tezos.md @@ -10,4 +10,8 @@ Faker::Blockchain::Tezos.operation #=> "onygWYXJX3xNstFLv9PcCrhQdCkENC795xwSinmT Faker::Blockchain::Tezos.block #=> "BMbhs2rkY1dvAkAyRytvPsjFQ2RiPrBhYkxvWpY65dzkdSuw58a" Faker::Blockchain::Tezos.signature #=> "edsigu165B7VFf3Dpw2QABVzEtCxJY2gsNBNcE3Ti7rRxtDUjqTFRpg67EdAQmY6YWPE5tKJDMnSTJDFu65gic8uLjbW2YwGvAZ" + +Faker::Blockchain::Tezos.public_key #=> "edpkuib9x8QXRc5nWwHUg7U1dXsVmaUrUNU5sX9pVEEvwbMVdfMCeq" + +Faker::Blockchain::Tezos.secret_key #=> "edsk3HZCAGEGpzQPnQUwQeFY4ESanFhQCgLpKriQw8GHyhKCrjHawv" ``` diff --git a/lib/faker/blockchain/tezos.rb b/lib/faker/blockchain/tezos.rb index e1ca8315ca..4f464c0e33 100644 --- a/lib/faker/blockchain/tezos.rb +++ b/lib/faker/blockchain/tezos.rb @@ -88,6 +88,34 @@ def signature encode_tz(:edsig, 64) end + ## + # Produces a random Tezos public key + # + # @return [String] + # + # @example + # Faker::Blockchain::Tezos.public_key + # #=> "edpkuib9x8QXRc5nWwHUg7U1dXsVmaUrUNU5sX9pVEEvwbMVdfMCeq" + # + # @faker.version 2.15.2 + def public_key + encode_tz(:edpk, 32) + end + + ## + # Produces a random Tezos public key + # + # @return [String] + # + # @example + # Faker::Blockchain::Tezos.secret_key + # #=> "edsk3HZCAGEGpzQPnQUwQeFY4ESanFhQCgLpKriQw8GHyhKCrjHawv" + # + # @faker.version 2.15.2 + def secret_key + encode_tz(:edsk, 32) + end + protected ## diff --git a/test/faker/blockchain/test_tezos.rb b/test/faker/blockchain/test_tezos.rb index c0abe0dab6..054eb67bab 100644 --- a/test/faker/blockchain/test_tezos.rb +++ b/test/faker/blockchain/test_tezos.rb @@ -23,6 +23,14 @@ def test_signature assert Faker::Blockchain::Tezos.signature.match(/^edsig[1-9A-Za-z][^OIl]{20,40}/) end + def test_public_key + assert Faker::Blockchain::Tezos.public_key.match(/^edpk[1-9A-Za-z][^OIl]{20,40}/) + end + + def test_secret_key + assert Faker::Blockchain::Tezos.secret_key.match(/^edsk[1-9A-Za-z][^OIl]{20,40}/) + end + def test_deterministic_contract Faker::Config.random = Random.new(42) v = Faker::Blockchain::Tezos.contract