#------------------------------------------------
# This example session:
#
# 1. Decodes a DBC.
# 2. Decodes a ReissueTransaction
# 3. Decodes a SignatureSharesMap
# 4. Decodes a ReissueRequest
# 5. Decodes a PublicKeySet
# 6. Decodes a SecretKeySet
#
# Output for 1,5,6 is human formatted.  The others are raw debug output.
# ------------------------------------------------


$ ./mint-repl


 __ __     _                        
(_  _._|__  |\ | __|_     _ ._|  
__)(_| |(/_ | \|(/_|_\/\/(_)| |< 
 ____  ____   ____   __  __ _       _   
|  _ \| __ ) / ___| |  \/  (_)_ __ | |_ 
| | | |  _ \| |     | |\/| | | '_ \| __|
| |_| | |_) | |___  | |  | | | | | | |_ 
|____/|____/ \____| |_|  |_|_|_| |_|\__|        
  
Type 'help' to get started.

>> decode

[d: DBC, rt: ReissueTransaction, s: SignatureSharesMap, rr: ReissueRequest, pks: PublicKeySet, sks: SecretKeySet]
Type: d

Paste Data: 
b7e823daccc79cfcbfbda639b945f37614b6a2643010f60a023ae57b5740e33f2a5613f7d69aea224bb11eebbd1a99a100000000000000015a897a1a857b35218543844c7a84ac7e38d772b68123ecd0ca780ef51bd31d57a314552185ab20514cb1fd2fa52e1d0a3bfbab3fa90e6a786d35e916c245326fef3106e1c38dc9a31d897f0045952e3e0a5942fa293295fb42c4b1e2822e61b4b7e823daccc79cfcbfbda639b945f37614b6a2643010f60a023ae57b5740e33f2a5613f7d69aea224bb11eebbd1a99a100000000000000000000000000000000000000000000000000000000000000000000000000000001d96f7bd718060d163f350fe883b013c8f9e21dc57b19091ac61e0cc19ce774cc00000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000112c175e9bce389195d2d3897c431f2e2c48d1147a90afcdcffa373c6b0f182090000000000000000000003e800000000000000000000000000000000000000000000000000000000000000000000000000000001


-- Start DBC --

id: cc74e79cc10c1ec61a09197bc51de2f9c813b083e80f353f160d0618d77b6fd9

amount: 1000

output_number: 0

owner: b7e823daccc79cfcbfbda639b945f37614b6a2643010f60a023ae57b5740e33f2a5613f7d69aea224bb11eebbd1a99a10000000000000001

inputs:
  0000000000000000000000000000000000000000000000000000000000000000

outputs:
  cc74e79cc10c1ec61a09197bc51de2f9c813b083e80f353f160d0618d77b6fd9

Data:
b7e823daccc79cfcbfbda639b945f37614b6a2643010f60a023ae57b5740e33f2a5613f7d69aea224bb11eebbd1a99a100000000000000015a897a1a857b35218543844c7a84ac7e38d772b68123ecd0ca780ef51bd31d57a314552185ab20514cb1fd2fa52e1d0a3bfbab3fa90e6a786d35e916c245326fef3106e1c38dc9a31d897f0045952e3e0a5942fa293295fb42c4b1e2822e61b4b7e823daccc79cfcbfbda639b945f37614b6a2643010f60a023ae57b5740e33f2a5613f7d69aea224bb11eebbd1a99a100000000000000000000000000000000000000000000000000000000000000000000000000000001d96f7bd718060d163f350fe883b013c8f9e21dc57b19091ac61e0cc19ce774cc00000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000112c175e9bce389195d2d3897c431f2e2c48d1147a90afcdcffa373c6b0f182090000000000000000000003e800000000000000000000000000000000000000000000000000000000000000000000000000000001
-- End DBC --


>> decode

[d: DBC, rt: ReissueTransaction, s: SignatureSharesMap, rr: ReissueRequest, pks: PublicKeySet, sks: SecretKeySet]
Type: rt

Paste Data: 
2bd9420354d28e88fa118c92e7fefe14416835f16744acf377f844d2ce47aac7011cbcd93ca579b209246f389a1b0c9845581507e8bd04c3f7608888126cb765b249279286175f6aedd1758ca253d2aece0ab46c79c4db121a1502f4fe8554890000000000000002dcc0fbcefb77272fa6a5558b17919b2fee3d7ab9734cf2b31ff06fe4661801e72bd9420354d28e88fa118c92e7fefe14416835f16744acf377f844d2ce47aac7011cbcd93ca579b209246f389a1b0c9845581507e8bd04c3f7608888126cb765b249279286175f6aedd1758ca253d2aece0ab46c79c4db121a1502f4fe855489000000000000000263e171ad765c544d21a72716e8d34b1bc944f7edbe453502ba4f18fcc8eb928d0000000000000002adf1bde02e0469c6c8911ae33963b25219951afa06a5ffcb778cabdd5053e8ac0676a4781d0f1f52bd736c1a20ae4f8c0000000000000001f2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c850000000000000001dfc74515a0448f5e65dbcb472682fe0cd61a884198b8e13bb4ce290968ff9727000000000000000000000384f2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c850000000000000001bed9a7a7b12ce004016cc6192b8cc25c9defef3a3b453acd63114ccc0de8e555000000010000000000000064f2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c8500000000000000010000000000000002f5dd07fa9860d86898e4566c2d2e72da020dc3ecc47703d4f1e8f25421a2073c287b8efd699c81decc575fa78b9c2c15786d8630e71d50f7de585247dc0cf0eca8335bc2cd92f7217e084ed61075cb0987b3f6452adbe05959fb3aa172dc9eb1adf1bde02e0469c6c8911ae33963b25219951afa06a5ffcb778cabdd5053e8ac0676a4781d0f1f52bd736c1a20ae4f8c00000000000000000000000000000000000000000000000000000000000000000000000000000001f2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c8500000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000180502f2101c94bef71a1f9c481126e766264f2f2b9e8ae0dd34195d25bd489ef0000000000000000000003e8000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000001


-- ReissueTransaction -- 

ReissueTransactionOwned {
    inner: ReissueTransaction {
        inputs: {
            Dbc {
                content: DbcContent {
                    parents: {
                        Hash(
                            "0000000000000000000000000000000000000000000000000000000000000000",
                        ),
                    },
                    amount: 1000,
                    output_number: 0,
                    owner: BlindedOwner(
                        Hash(
                            "ef89d45bd29541d30daee8b9f2f26462766e1281c4f9a171ef4bc901212f5080",
                        ),
                    ),
                },
                transaction: DbcTransaction {
                    inputs: {
                        Hash(
                            "0000000000000000000000000000000000000000000000000000000000000000",
                        ),
                    },
                    outputs: {
                        Hash(
                            "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
                        ),
                    },
                },
                transaction_sigs: {
                    Hash(
                        "0000000000000000000000000000000000000000000000000000000000000000",
                    ): (
                        PublicKey(0c4f..b16d),
                        Signature(119e..a620),
                    ),
                },
            },
        },
        outputs: {
            DbcContent {
                parents: {
                    Hash(
                        "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
                    ),
                },
                amount: 100,
                output_number: 1,
                owner: BlindedOwner(
                    Hash(
                        "55e5e80dcc4c1163cd3a453b3aefef9d5cc28c2b19c66c0104e02cb1a7a7d9be",
                    ),
                ),
            },
            DbcContent {
                parents: {
                    Hash(
                        "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
                    ),
                },
                amount: 900,
                output_number: 0,
                owner: BlindedOwner(
                    Hash(
                        "2797ff680929ceb43be1b89841881ad60cfe822647cbdb655e8f44a01545c7df",
                    ),
                ),
            },
        },
    },
    inputs_owners: {
        Hash(
            "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
        ): PublicKeySet {
            commit: Commitment {
                coeff: [
                    G1 {
                        x: Fq(0x0c4fae201a6c73bd521f0f1d78a47606ace85350ddab8c77cbffa506fa1a951952b26339e31a91c8c669042ee0bdf1ad),
                        y: Fq(0x0c25ecd3b86bce8dcdfe9d8ae5acf2c795be9550edf474afc2171d1b1fdcbdfd0009a422bd11d828dd3be067485bb16d),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                ],
            },
        },
    },
    outputs_owners: {
        Hash(
            "8d92ebc8fc184fba023545beedf744c91b4bd3e81627a7214d545c76ad71e163",
        ): PublicKeySet {
            commit: Commitment {
                coeff: [
                    G1 {
                        x: Fq(0x095485fef402151a12dbc4796cb40aceaed253a28c75d1ed6a5f1786922749b265b76c12888860f7c304bde807155845),
                        y: Fq(0x051d329b40f3de8effcb283d3f1314947d8480b7db082e53ca732ca86200aead7d9dedc0339ea03d913420d2fa5ee45e),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                    G1 {
                        x: Fq(0x180c1b9a386f2409b279a53cd9bc1c01c7aa47ced244f877f3ac4467f135684114fefee7928c11fa888ed2540342d92b),
                        y: Fq(0x09bf7d571fdb22eca6560c50459354f25435cc42205c62ed7a869efd4afefc29f3748fe8aa549ab7d8198db9a8895604),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                ],
            },
        },
        Hash(
            "e7011866e46ff01fb3f24c73b97a3dee2f9b91178b55a5a62f2777fbcefbc0dc",
        ): PublicKeySet {
            commit: Commitment {
                coeff: [
                    G1 {
                        x: Fq(0x095485fef402151a12dbc4796cb40aceaed253a28c75d1ed6a5f1786922749b265b76c12888860f7c304bde807155845),
                        y: Fq(0x051d329b40f3de8effcb283d3f1314947d8480b7db082e53ca732ca86200aead7d9dedc0339ea03d913420d2fa5ee45e),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                    G1 {
                        x: Fq(0x180c1b9a386f2409b279a53cd9bc1c01c7aa47ced244f877f3ac4467f135684114fefee7928c11fa888ed2540342d92b),
                        y: Fq(0x09bf7d571fdb22eca6560c50459354f25435cc42205c62ed7a869efd4afefc29f3748fe8aa549ab7d8198db9a8895604),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                ],
            },
        },
    },
}

>> decode

[d: DBC, rt: ReissueTransaction, s: SignatureSharesMap, rr: ReissueRequest, pks: PublicKeySet, sks: SecretKeySet]
Type: s

Paste Data: 
adfa8800f38f072afdc1793d474da06cb582723068dfc78e491683c88d07496b0aeddee8babaf0556ae43833bf6f6a1525d19426ecf9bfc7da232a9f14d9e23e4372505c1fb00c8673097b13bb26d782cd903bd192fa7e7bd1fdcb1a7dffd38600000000000000000000000000000001f2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c850000000000000001


-- SignatureSharesMap -- 

SignatureSharesMap(
    {
        Hash(
            "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
        ): {
            0: SignatureShare(06d3..1175),
        },
    },
)

>> decode

[d: DBC, rt: ReissueTransaction, s: SignatureSharesMap, rr: ReissueRequest, pks: PublicKeySet, sks: SecretKeySet]
Type: rr

Paste Data: 
2bd9420354d28e88fa118c92e7fefe14416835f16744acf377f844d2ce47aac7011cbcd93ca579b209246f389a1b0c9845581507e8bd04c3f7608888126cb765b249279286175f6aedd1758ca253d2aece0ab46c79c4db121a1502f4fe855489000000000000000263e171ad765c544d21a72716e8d34b1bc944f7edbe453502ba4f18fcc8eb928d2bd9420354d28e88fa118c92e7fefe14416835f16744acf377f844d2ce47aac7011cbcd93ca579b209246f389a1b0c9845581507e8bd04c3f7608888126cb765b249279286175f6aedd1758ca253d2aece0ab46c79c4db121a1502f4fe8554890000000000000002dcc0fbcefb77272fa6a5558b17919b2fee3d7ab9734cf2b31ff06fe4661801e70000000000000002adf1bde02e0469c6c8911ae33963b25219951afa06a5ffcb778cabdd5053e8ac0676a4781d0f1f52bd736c1a20ae4f8c0000000000000001f2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c850000000000000001adfa8800f38f072afdc1793d474da06cb582723068dfc78e491683c88d07496b0aeddee8babaf0556ae43833bf6f6a1525d19426ecf9bfc7da232a9f14d9e23e4372505c1fb00c8673097b13bb26d782cd903bd192fa7e7bd1fdcb1a7dffd386adf1bde02e0469c6c8911ae33963b25219951afa06a5ffcb778cabdd5053e8ac0676a4781d0f1f52bd736c1a20ae4f8cf2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c850000000000000001dfc74515a0448f5e65dbcb472682fe0cd61a884198b8e13bb4ce290968ff9727000000000000000000000384f2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c850000000000000001bed9a7a7b12ce004016cc6192b8cc25c9defef3a3b453acd63114ccc0de8e555000000010000000000000064f2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c8500000000000000010000000000000002f5dd07fa9860d86898e4566c2d2e72da020dc3ecc47703d4f1e8f25421a2073c287b8efd699c81decc575fa78b9c2c15786d8630e71d50f7de585247dc0cf0eca8335bc2cd92f7217e084ed61075cb0987b3f6452adbe05959fb3aa172dc9eb1adf1bde02e0469c6c8911ae33963b25219951afa06a5ffcb778cabdd5053e8ac0676a4781d0f1f52bd736c1a20ae4f8c00000000000000000000000000000000000000000000000000000000000000000000000000000001f2ea7953ec62cbc041bb464273781199971ad5dcce8547506bf147beefac8c8500000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000180502f2101c94bef71a1f9c481126e766264f2f2b9e8ae0dd34195d25bd489ef0000000000000000000003e8000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000001


-- ReissueRequest -- 

ReissueRequestOwned {
    inner: ReissueRequest {
        transaction: ReissueTransaction {
            inputs: {
                Dbc {
                    content: DbcContent {
                        parents: {
                            Hash(
                                "0000000000000000000000000000000000000000000000000000000000000000",
                            ),
                        },
                        amount: 1000,
                        output_number: 0,
                        owner: BlindedOwner(
                            Hash(
                                "ef89d45bd29541d30daee8b9f2f26462766e1281c4f9a171ef4bc901212f5080",
                            ),
                        ),
                    },
                    transaction: DbcTransaction {
                        inputs: {
                            Hash(
                                "0000000000000000000000000000000000000000000000000000000000000000",
                            ),
                        },
                        outputs: {
                            Hash(
                                "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
                            ),
                        },
                    },
                    transaction_sigs: {
                        Hash(
                            "0000000000000000000000000000000000000000000000000000000000000000",
                        ): (
                            PublicKey(0c4f..b16d),
                            Signature(119e..a620),
                        ),
                    },
                },
            },
            outputs: {
                DbcContent {
                    parents: {
                        Hash(
                            "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
                        ),
                    },
                    amount: 900,
                    output_number: 0,
                    owner: BlindedOwner(
                        Hash(
                            "2797ff680929ceb43be1b89841881ad60cfe822647cbdb655e8f44a01545c7df",
                        ),
                    ),
                },
                DbcContent {
                    parents: {
                        Hash(
                            "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
                        ),
                    },
                    amount: 100,
                    output_number: 1,
                    owner: BlindedOwner(
                        Hash(
                            "55e5e80dcc4c1163cd3a453b3aefef9d5cc28c2b19c66c0104e02cb1a7a7d9be",
                        ),
                    ),
                },
            },
        },
        input_ownership_proofs: {
            Hash(
                "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
            ): (
                PublicKey(0c4f..b16d),
                Signature(06d3..1175),
            ),
        },
    },
    inputs_owners: {
        Hash(
            "858cacefbe47f16b504785cedcd51a97991178734246bb41c0cb62ec5379eaf2",
        ): PublicKeySet {
            commit: Commitment {
                coeff: [
                    G1 {
                        x: Fq(0x0c4fae201a6c73bd521f0f1d78a47606ace85350ddab8c77cbffa506fa1a951952b26339e31a91c8c669042ee0bdf1ad),
                        y: Fq(0x0c25ecd3b86bce8dcdfe9d8ae5acf2c795be9550edf474afc2171d1b1fdcbdfd0009a422bd11d828dd3be067485bb16d),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                ],
            },
        },
    },
    outputs_owners: {
        Hash(
            "8d92ebc8fc184fba023545beedf744c91b4bd3e81627a7214d545c76ad71e163",
        ): PublicKeySet {
            commit: Commitment {
                coeff: [
                    G1 {
                        x: Fq(0x095485fef402151a12dbc4796cb40aceaed253a28c75d1ed6a5f1786922749b265b76c12888860f7c304bde807155845),
                        y: Fq(0x051d329b40f3de8effcb283d3f1314947d8480b7db082e53ca732ca86200aead7d9dedc0339ea03d913420d2fa5ee45e),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                    G1 {
                        x: Fq(0x180c1b9a386f2409b279a53cd9bc1c01c7aa47ced244f877f3ac4467f135684114fefee7928c11fa888ed2540342d92b),
                        y: Fq(0x09bf7d571fdb22eca6560c50459354f25435cc42205c62ed7a869efd4afefc29f3748fe8aa549ab7d8198db9a8895604),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                ],
            },
        },
        Hash(
            "e7011866e46ff01fb3f24c73b97a3dee2f9b91178b55a5a62f2777fbcefbc0dc",
        ): PublicKeySet {
            commit: Commitment {
                coeff: [
                    G1 {
                        x: Fq(0x095485fef402151a12dbc4796cb40aceaed253a28c75d1ed6a5f1786922749b265b76c12888860f7c304bde807155845),
                        y: Fq(0x051d329b40f3de8effcb283d3f1314947d8480b7db082e53ca732ca86200aead7d9dedc0339ea03d913420d2fa5ee45e),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                    G1 {
                        x: Fq(0x180c1b9a386f2409b279a53cd9bc1c01c7aa47ced244f877f3ac4467f135684114fefee7928c11fa888ed2540342d92b),
                        y: Fq(0x09bf7d571fdb22eca6560c50459354f25435cc42205c62ed7a869efd4afefc29f3748fe8aa549ab7d8198db9a8895604),
                        z: Fq(0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001),
                    },
                ],
            },
        },
    },
}

>> decode

[d: DBC, rt: ReissueTransaction, s: SignatureSharesMap, rr: ReissueRequest, pks: PublicKeySet, sks: SecretKeySet]
Type: pks

Paste Data: 
3a0422d5a0c9bbf876b7a84d26d62289596f8f3c061eaa02041ba2252cd74c77b45cf738ecb0d8958cf944a312ffeb89c89642c09e6f8497657ccae99505fa3b8f5332e2a2a4ce4f5ad866577d197e982357f4bb25154f54477406810a8f22a2c30699ccd4c3af1ced579c1a39e70592cfe7e35074c1a4d254de61aec69bde9b155f56ea8153ee8d83a58039db48a0b6a0bbc8373dc507e2139291d9ec29a7395bbd4d37093318730e81b6d053d394750b2b9ad19916a90799016d626349f88e0000000000000004


-- Start PublicKeySet --
  threshold: 3 (4 signature shares required)

  public_key: 8ef84963626d019907a91699d19a2b0b7594d353d0b6810e73183309374dbd5b39a729ecd9919213e207c53d37c8bba0

  PublicKeyShares:
    0 : b87b668bb1fafe36e63a4681f0ffc3e87b2b03ec203ab1bc5017bdefd1a61909ce791f05b4e274e00e5e1fa87195844c
    1 : b0a156f2655c2bca12c3a346406fa84932b930b0f8695ee1124807d1de27ad6405724b5c7d0fdfadcd6ec4f4b769d524
    2 : aa81d64337a78cac391380885809466bb724e7c16c07fe57cee8ed0fcd3cde736698cd6e89a88886c4234229715241ef
    3 : ad0deac2b969324a58a94e1527999d3748644c20110616fbd2d0d17f24f7c9d7fd670ce23304c74213d030dfacf92371
-- End PublicKeySet --


>> decode

[d: DBC, rt: ReissueTransaction, s: SignatureSharesMap, rr: ReissueRequest, pks: PublicKeySet, sks: SecretKeySet]
Type: sks

Paste Data: 
1a29c1949ae02df73f96b759caa9bf52996047f370d4769855e264d54dcb43975bffd3c1828207d876a81aa560a5fed4656a9e5dd590c035445e5c77bd00773a6cc27ed27ea3ac0f4d7e4033259f8dfaa760a70d163a2cd528b92ea2dde4d8fe039dcbcac2d5676e20f96af79abddb7738f876c2aabb43325f7c3154c5eb63260000000000000004


-- Start SecretKeySet --
  threshold: 3 (4 signature shares required)


  SecretKeyShares:
    0 : 729c38a0353dcc04f17ca521e20b4f938b66601e075c4ad622762145ae9bf6f4
    1 : 66de3927a7755ef75ff100918417dd32f1f4a5ddb4202a7a717b2729e4110ebc
    2 : 0970af89911fb6c8b6a4f159373c283fb12753b356034db24fd9a002390e4007
    3 : 6b3bcc94bd1b648ca65a9b9bc51484aeb4fdbd5691fed80ec0dfe8cd80572060
-- End SecretKeySet --
