Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 56 additions & 19 deletions pkg/solana/genesis/assets/genesis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,21 @@ upgradeableLoader=BPFLoaderUpgradeab1e11111111111111111111111
genesis_args=()

fetch-program() {
local prefix=$1
shift
local name=$1
local version=$2
local address=$3
local loader=$4

local so=spl_$name-$version.so
shift
local version=$1
shift
local address=$1
shift
local loader=$1
shift
local url=$1
shift

local so=$prefix-$name-$version.so
local cachedir="$HOME/.cache/solana-$prefix"

if [[ $loader == "$upgradeableLoader" ]]; then
genesis_args+=(--upgradeable-program "$address" "$loader" "$so" none)
Expand All @@ -25,21 +34,42 @@ fetch-program() {
return
fi

if [[ -r ~/.cache/solana-spl/$so ]]; then
cp ~/.cache/solana-spl/"$so" "$so"
if [[ -r "$cachedir/$so" ]]; then
cp "$cachedir/$so" "$so"
else
echo "Downloading $name $version"
local so_name="spl_${name//-/_}.so"
(
set -x
curl -s -S -L --retry 5 --retry-delay 2 --retry-connrefused \
-o "$so" \
"https://github.com/solana-labs/solana-program-library/releases/download/$name-v$version/$so_name"
-o "$so" "$url"

)

mkdir -p ~/.cache/solana-spl
cp "$so" ~/.cache/solana-spl/"$so"
mkdir -p "$cachedir"
cp "$so" "$cachedir/$so"
fi

file "$so" | grep eBPF >/dev/null || log::fatal "$so doesn't appear to contain an eBPF program"
}

fetch-core-program() {
local prefix="core-bpf"
local name="$1"
local version="$2"
local so_name="solana_${name//-/_}_program.so"
local url="https://github.com/solana-program/$name/releases/download/program%40$version/$so_name"

fetch-program "$prefix" "${@}" "$url"
}

fetch-spl-program() {
local prefix="spl"
local name="$1"
local version="$2"
local so_name="${prefix}_${name//-/_}.so"
local url="https://github.com/solana-program/$name/releases/download/program@v$version/$so_name"

fetch-program "$prefix" "${@}" "$url"
}

step::000::wait-for-a-stable-environment() {
Expand All @@ -61,13 +91,20 @@ step::010::install-dependencies() {
svmkit::apt::get install "${PACKAGE_LIST[@]}"
}

step::020::fetch-all-programs() {
fetch-program token 3.5.0 TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA BPFLoader2111111111111111111111111111111111
fetch-program token-2022 0.9.0 TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb BPFLoaderUpgradeab1e11111111111111111111111
fetch-program memo 1.0.0 Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo BPFLoader1111111111111111111111111111111111
fetch-program memo 3.0.0 MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr BPFLoader2111111111111111111111111111111111
fetch-program associated-token-account 1.1.2 ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL BPFLoader2111111111111111111111111111111111
fetch-program feature-proposal 1.0.0 Feat1YXHhH6t1juaWF74WLcfv4XoNocjXA6sPWHNgAse BPFLoader2111111111111111111111111111111111
step::020::fetch-spl-programs() {
fetch-spl-program token 3.5.0 TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA BPFLoader2111111111111111111111111111111111
fetch-spl-program token-2022 8.0.0 TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb BPFLoaderUpgradeab1e11111111111111111111111
fetch-spl-program memo 1.0.0 Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo BPFLoader1111111111111111111111111111111111
fetch-spl-program memo 3.0.0 MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr BPFLoader2111111111111111111111111111111111
fetch-spl-program associated-token-account 1.1.2 ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL BPFLoader2111111111111111111111111111111111
fetch-spl-program feature-proposal 1.0.0 Feat1YXHhH6t1juaWF74WLcfv4XoNocjXA6sPWHNgAse BPFLoader2111111111111111111111111111111111
}

step::025::fetch-core-programs() {
fetch-core-program address-lookup-table 3.0.0 AddressLookupTab1e1111111111111111111111111 BPFLoaderUpgradeab1e11111111111111111111111
fetch-core-program config 3.0.0 Config1111111111111111111111111111111111111 BPFLoaderUpgradeab1e11111111111111111111111
fetch-core-program feature-gate v0.0.1 Feature111111111111111111111111111111111111 BPFLoaderUpgradeab1e11111111111111111111111
fetch-core-program stake v1.0.0 Stake11111111111111111111111111111111111111 BPFLoaderUpgradeab1e11111111111111111111111
}

step::030::write-primordial-accounts-file() {
Expand Down
Loading