export NEAR_ENV=mainnet
export REF_OWNER=[Owber Account]
export OWNER_ID=[Owber Id]
export MASTER=[Master Account]
export BUYBACK=[Buyback Account]
export REF_EX=v2.ref-finance.near
# distribute_rate account
export BURN_ACCOUNT=[Burn Account]
export COMPANY_ACCOUNT=[Company Account]
export REWARD_ACCOUNT=[Reward Account]
export BB_TOKEN_ACCOUNT=token.burrow.near
export BRR=token.burrow.near
export USDC=a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.factory.bridge.near
export TGAS=000000000000
export ZERO6=000000
near create-account $BUYBACK --masterAccount $MASTER --initialBalance 10 --accountId $MASTER
near create-account $BURN_ACCOUNT --masterAccount $MASTER --initialBalance 1 --accountId $MASTER
near create-account $COMPANY_ACCOUNT --masterAccount $MASTER --initialBalance 1 --accountId $MASTER
near create-account $REWARD_ACCOUNT --masterAccount $MASTER --initialBalance 1 --accountId $MASTER
cd contract
make release
near deploy $BUYBACK res/buyback_release.wasm --account_id=$BUYBACK || true
near call $BUYBACK new '{"owner_id": "'$REF_OWNER'", "burn_account_id": "'$BURN_ACCOUNT'", "company_account_id": "'$COMPANY_ACCOUNT'", "reward_account_id": "'$REWARD_ACCOUNT'", "buyback_token_id": "'$BB_TOKEN_ACCOUNT'"}' --account_id=$BUYBACK || true
near view $BUYBACK get_metadata
near view $BUYBACK get_available_fund_amount
near view $BRR ft_balance_of '{"account_id": "'$BUYBACK'"}'
#change ref_exchange_id
near call $BUYBACK change_ref_exchange_id '{"ref_exchange_id": "'$REF_EX'"}' --depositYocto=1 --accountId $OWNER_ID
#add white-list
near call $BUYBACK extend_token_white_list '{"token_white_list":["'$USDC'"]}' --depositYocto=1 --accountId $OWNER_ID
#change distribute_rate
near call $BUYBACK change_buyback_rate '{"burn_rate": 2000, "company_rate": 2000, "reward_rate": 6000}' --depositYocto=1 --accountId $OWNER_ID
#register token
near view $BB_TOKEN_ACCOUNT storage_balance_of '{"account_id": "'$REWARD_ACCOUNT'"}'
near call $USDC storage_deposit '{"account_id": "'$BUYBACK'"}' --account_id=juaner.near --amount=0.1
near call $BB_TOKEN_ACCOUNT storage_deposit '{"account_id": "'$BUYBACK'"}' --account_id=juaner.near --amount=0.1
near call $BB_TOKEN_ACCOUNT storage_deposit '{"account_id": "'$BURN_ACCOUNT'"}' --account_id=juaner.near --amount=0.1
near call $BB_TOKEN_ACCOUNT storage_deposit '{"account_id": "'$COMPANY_ACCOUNT'"}' --account_id=juaner.near --amount=0.1
near call $BB_TOKEN_ACCOUNT storage_deposit '{"account_id": "'$REWARD_ACCOUNT'"}' --account_id=juaner.near --amount=0.1
# round 1:Open buying 1u/2h
near call $USDC ft_transfer_call '{"receiver_id": "'$BUYBACK'", "amount": "12'$ZERO6'", "msg": "{\"current_round_start_time\":1702634400,\"total_buyback_time\":86400,\"buyback_internal\":7200}"}' --accountId $OWNER_ID --depositYocto=1 --gas=300000000000000
#distribute
near call $BUYBACK distribute --accountId $OWNER_ID --gas=300000000000000
# round 2:Open buying 1u/2h
near call $USDC ft_transfer_call '{"receiver_id": "'$BUYBACK'", "amount": "3'$ZERO6'", "msg": "{\"current_round_start_time\":1702879200,\"total_buyback_time\":21600,\"buyback_internal\":7200}"}' --accountId $OWNER_ID --depositYocto=1 --gas=300000000000000
#distribute
near call $BUYBACK distribute --accountId $OWNER_ID --gas=300000000000000
# round 3:Open buying 1u/2h
near call $USDC ft_transfer_call '{"receiver_id": "'$BUYBACK'", "amount": "12'$ZERO6'", "msg": "{\"current_round_start_time\":1702944000,\"total_buyback_time\":86400,\"buyback_internal\":7200}"}' --accountId $OWNER_ID --depositYocto=1 --gas=300000000000000
#distribute
near call $BUYBACK distribute --accountId $OWNER_ID --gas=300000000000000
private_key:Change to execute the private key of the account
signer_account_id:Change to the account that needs to be executed
buyback_contract:Modify the contract address as needed for execution
buyback_token_in_contract:Token that requires buyback
buyback_token_out_contract:Token after buyback
buyback_pool_one、buyback_pool_two:The pool involved in the token will calculate the number of swaps based on the configured token and pool
python deploy_backend_buy_back.py
chmod a+x backend_buy_back.sh
After executing the above two commands, configure the crontab scheduled task. Example configuration (executed every 5 minutes):
*/5 * * * * /path/backends/backend_buy_back.sh > /dev/null