ckb_client/
constant.rs

1use ckb_types::{core::EpochNumberWithFraction, h256, H256};
2
3pub const PREFIX_MAINNET: &str = "ckb";
4pub const PREFIX_TESTNET: &str = "ckt";
5
6pub const NETWORK_MAINNET: &str = "ckb";
7pub const NETWORK_TESTNET: &str = "ckb_testnet";
8pub const NETWORK_STAGING: &str = "ckb_staging";
9pub const NETWORK_DEV: &str = "ckb_dev";
10
11pub const SECP_SIGNATURE_SIZE: usize = 65;
12
13// Since relative mask
14pub const LOCK_TYPE_FLAG: u64 = 1 << 63;
15pub const METRIC_TYPE_FLAG_MASK: u64 = 0x6000_0000_0000_0000;
16pub const VALUE_MASK: u64 = 0x00ff_ffff_ffff_ffff;
17pub const REMAIN_FLAGS_BITS: u64 = 0x1f00_0000_0000_0000;
18
19// Special cells in genesis transactions: (transaction-index, output-index)
20pub const SIGHASH_OUTPUT_LOC: (usize, usize) = (0, 1);
21pub const MULTISIG_OUTPUT_LOC: (usize, usize) = (0, 4);
22pub const DAO_OUTPUT_LOC: (usize, usize) = (0, 2);
23pub const SIGHASH_GROUP_OUTPUT_LOC: (usize, usize) = (1, 0);
24pub const MULTISIG_GROUP_OUTPUT_LOC: (usize, usize) = (1, 1);
25
26pub const ONE_CKB: u64 = 100_000_000;
27pub const MIN_SECP_CELL_CAPACITY: u64 = 61 * ONE_CKB;
28// mainnet,testnet cellbase maturity
29pub const CELLBASE_MATURITY: EpochNumberWithFraction =
30    EpochNumberWithFraction::new_unchecked(4, 0, 1);
31
32/// "TYPE_ID" in hex (copied from ckb-chain-spec)
33pub const TYPE_ID_CODE_HASH: H256 = h256!("0x545950455f4944");
34
35pub const SIGHASH_TYPE_HASH: H256 =
36    h256!("0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8");
37pub const MULTISIG_TYPE_HASH: H256 =
38    h256!("0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8");
39pub const DAO_TYPE_HASH: H256 =
40    h256!("0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e");
41
42/// anyone can pay script mainnet code hash, see:
43/// <https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0026-anyone-can-pay/0026-anyone-can-pay.md#notes>
44pub const ACP_TYPE_HASH_LINA: H256 =
45    h256!("0xd369597ff47f29fbc0d47d2e3775370d1250b85140c670e4718af712983a2354");
46/// anyone can pay script testnet code hash
47pub const ACP_TYPE_HASH_AGGRON: H256 =
48    h256!("0x3419a1c09eb2567f6552ee7a8ecffd64155cffe0f1796e6e61ec088d740c1356");
49
50/// cheque withdraw since value
51pub const CHEQUE_CELL_SINCE: u64 = 0xA000000000000006;
52
53pub const SPORE_TYPE_HASH_LINA: H256 = h256!("0x4a4dce1df3dffff7f8b2cd7dff7303df3b6150c9788cb75dcf6747247132b9f5");
54pub const SPORE_TYPE_HASH_AGGRON: H256 = h256!("0x685a60219309029d01310311dba953d67029170ca4848a4ff638e57002130a0d");