This repository was archived by the owner on Oct 13, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathdemo.sh
More file actions
executable file
·71 lines (60 loc) · 5.58 KB
/
Copy pathdemo.sh
File metadata and controls
executable file
·71 lines (60 loc) · 5.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
# a trusted header
# regtest snapshot
INIT_HEADERS='[0x00000030759e91f85448e42780695a7c71a6e4f4e845ecd895b19fafaeb6f5e3c030e62233287429255f254a463d90b998ba5523634da7c67ef873268e1db40d1526d5583d5b6167ffff7f2000000000,0x0000003058deb19a44c75df6d732d4dc085df09dd053c9f0db5eee57cdbfbe09fe47237776bb7462ac45b258ea7c464a19c11fef595f3e5dfbef2fc31bc94d8aefc7223c3d5b6167ffff7f2000000000,0x00000030e89c7f970db47ef7253c982270200f7009eaa3ef698d4b06c1f55848b56f24744ba0355deefd42dbd10deced2fdcf6a0f950a4f02aacd1f9fbb7efde7566d2d53d5b6167ffff7f2000000000,0x00000030792fe6e81fc1eeea11ae6a88a67060c6e8e492eeff7439168611996864119b1cace3ddc3203b8686e44d2739c45697d47c8e83b8a0e83f036b6991bf3f64ee2c3d5b6167ffff7f2002000000,0x0000003043de7b00670f41c1e92368da064553088a75374d7aac4b0a1b645658febf9e1f02ce53a61def0d99c08db78ac3d98696306fd74ece04e2a58a61ffb73dda6d963e5b6167ffff7f2001000000,0x00000030c38dec9b487eec7702a9b208cc61046e313aedfeea24192933539244d341805e0ebfd749972b2d5952585b82276afddfb22fc487f23098b98055904034170c843e5b6167ffff7f2000000000,0x00000030292e580e3b694eabbbb18b30fa22863de2de6abb7dd156c611500c801b01d845e922b7b37db1fc5a11b02998192e75a6baf7904e5b22431cd94f3ee03e93f4323e5b6167ffff7f2000000000,0x0000003010b335151fec6cd0be3fff1322e8e7b6a84ffc09682e07da040157ec0cd9d33022636b8b8cf102f3e47c2af1fd8ddceec7b46216a618d4f1af813484c031d6b13e5b6167ffff7f2000000000,0x00000030828f08644e5e78c2d99bdbcd3d0d4ba5eb10f74909b113fd8a7fa4a45febb625da3bc639c7d2c0ed61ec76f6257d4a84fe7aebeeb6c69131290c647dbefc1cad3e5b6167ffff7f2001000000,0x00000030486697206d79c9f68c60c259e9ec913c117ac6da35f44bbc57d9e4362d1ea233ed34bda2c331cb007039d7d085b08977cf21b2aad1a50a788106302d25ff79f43e5b6167ffff7f2003000000,0x0000003085bbc10dc8694fe36144c87f7737c35f9e3e8e304c61427a7cbce8b1e97004153fb8582bc04a0abb67965f6c139445bdc5d173ddc80008aa219929ab7285278f3f5b6167ffff7f2000000000,0x00000030516567e505288fe41b2fc6be9b96318c406418c7d338168fe75a26111490eb2fec401c3902aa39842e53a0c641af518957ec3aa5984a44d32e2a9f7fee2fa67a3f5b6167ffff7f2004000000,0x000000307306011c31d1f14a422c50c70cbedb1233757505cb887d82d51ae3f27e23062d6be46c161e69696c1c83ba3a1ea52f071fcdada5a6bce28f5da591b969b42da139c5b167ffff7f2000000000]'
# a list of header follow a init header
HEADERS_FOR_INSERT='[0x00000030e98bb046cd25a629c91f0c7623cc2ed0c12ef6db5e41956536c261eb673d0b0f813b60988eadd1961289bf5f2098f6ca0c7dd35ae95e78807c6582a46e00107f39c5b167ffff7f2004000000,0x000000304f58550f49b5c9dce6328bc8d7b8f5941823efcc51741a024c17d9745ba21111cb2db51b4bf0858c2318820adafa1c8640703dca1faceea0205f388f160d452539c5b167ffff7f2004000000,0x00000030aa8bd6ce82edf1f9c03abc2243281f622594bc3aec5106a17f612371f76060084e05aaf29bda3424553cb4636006d006030690b91875fe96fdb4c52d4a38ba8a39c5b167ffff7f2003000000]'
# a list of header this create fork, and more powerful than current chain
HEADERS_FOR_FORK='[0x000000307306011c31d1f14a422c50c70cbedb1233757505cb887d82d51ae3f27e23062d6be46c161e69696c1c83ba3a1ea52f071fcdada5a6bce28f5da591b969b42da19dc5b167ffff7f2001000000,0x000000302ba076eb907ec3c060954d36dfcf0e735c815c9531f6d44667aa32f5999f412d813b60988eadd1961289bf5f2098f6ca0c7dd35ae95e78807c6582a46e00107f9dc5b167ffff7f2001000000,0x00000030525bda2756ff6f9e440c91590490462ac33e0fedb05b1558cfd3f7ce90920d16cb2db51b4bf0858c2318820adafa1c8640703dca1faceea0205f388f160d45259dc5b167ffff7f2002000000,0x000000306052592f4f0e4886a0eca2c1d154e8b9761e011b4f7b3a00908e2a830f7f6c6a4e05aaf29bda3424553cb4636006d006030690b91875fe96fdb4c52d4a38ba8a9dc5b167ffff7f2001000000,0x000000309c32ae8f3b099ea17563bb425476cf962b84269e09d17e19350b819695970f2cdebd5d70e4be4f6f5cc474416137a697f1fca22bf87e9066eb9b43dd7882d2329dc5b167ffff7f2001000000,0x000000307370f207ef4945a89b10b1c60a14770136109de093df4544340251190a5c2436494bba4bf2f3dc3a1d8c1bb592eeadc16c77b6bdd42c6ad2003a704641c3caeb9dc5b167ffff7f2000000000,0x000000305e52d670c3efd5ff9152b325f6cf2c59154b856215a99c8101efc51688937e734ca6a58af04afaa3eea3d8c6fa6c29eb0454a7e18d5953a1766ab994152f5f169ec5b167ffff7f2005000000,0x00000030e61a86ad71115af58d3e2ab5280a4423920b5311094403376b563b2fc09e9843240a1d2cf05759689835b13573161887f2c284aece535a39642db5d5bf2588e59ec5b167ffff7f2002000000]'
BTC_NETWORK=2 # 0 = mainnet, 1 = testnet, otherwise = regtest
PACKAGE_ID="0xbe3c901872ff6cc93d4310e8dde2fb4f6887f522bf13874fed021c1c23e9fd7f"
# Create a new light client
function create_light_client() {
sui client call --function init_light_client_network --module light_client --package $PACKAGE_ID --gas-budget 100000000 --args $BTC_NETWORK 0 $INIT_HEADERS 0
}
# get object SPV
# You can use sui explored for more information
function client_object() {
LC_ID=$1
sui client object $LC_ID
}
# Insert a new headers
function insert_headers() {
echo "We extend a current chain"
echo $HEADERS_FOR_INSERT
LC_ID=$1
sui client call --function insert_headers --module light_client --package $PACKAGE_ID --gas-budget 100000000 --args $LC_ID $HEADERS_FOR_INSERT
}
# Insert a new headers with fork potential
function insert_headers_fork_potential() {
echo "We insert a list header can create fork"
echo $HEADERS_FOR_FORK
LC_ID=$1
sui client call --function insert_headers --module light_client --package $PACKAGE_ID --gas-budget 100000000 --args $LC_ID $HEADERS_FOR_FORK
}
# Get last block
function head() {
LC_ID=$1
sui client call --function head --module light_client --package $PACKAGE_ID --gas-budget 10000000 --args $LC_ID --dev-inspect
}
case "$1" in
create_lc)
create_light_client
;;
insert_headers)
insert_headers $2
;;
insert_headers_fork)
insert_headers_fork_potential $2
;;
head)
head $2
;;
lc_object)
client_object $2
;;
*)
echo "Invalid option."
exit 1
;;
esac