From 9409db1e5fbbb847ea4c7590695bfa7321b58b61 Mon Sep 17 00:00:00 2001 From: cwsnt Date: Tue, 29 Jul 2025 17:07:55 +0700 Subject: [PATCH] SOV-5077: replace rusdt with usdt0 --- migrations/addresses.ts | 2 +- scripts/src/getRewardManagerParams_temp.ts | 6 +-- scripts/src/knownTokens.ts | 12 ++--- scripts/src/replaceRUSDTWithUSDT0.README.md | 59 +++++++++++++++++++++ scripts/src/replaceRUSDTWithUSDT0.ts | 42 +++++++++++++++ scripts/src/setRewardManagerParams.ts | 4 +- scripts/src/setRewardManagerParams_MS.ts | 2 +- scripts/src/test.ts | 2 +- scripts/src/testRewardManager.ts | 2 +- 9 files changed, 116 insertions(+), 15 deletions(-) create mode 100644 scripts/src/replaceRUSDTWithUSDT0.README.md create mode 100644 scripts/src/replaceRUSDTWithUSDT0.ts diff --git a/migrations/addresses.ts b/migrations/addresses.ts index 35cf92e..3d8064f 100644 --- a/migrations/addresses.ts +++ b/migrations/addresses.ts @@ -40,7 +40,7 @@ export default { '0x61e9604e31a736129d7f5c58964c75935b2d80d6', // BUSDbs // non bridge - '0xef213441a85df4d7acbdae0cf78004e1e486bb96' // RUSDT + '0x779Ded0c9e1022225f8E0630b35a9b54bE713736' // USDT0 ], bridges: [ // ETH->RSK diff --git a/scripts/src/getRewardManagerParams_temp.ts b/scripts/src/getRewardManagerParams_temp.ts index 364af02..9d6b645 100644 --- a/scripts/src/getRewardManagerParams_temp.ts +++ b/scripts/src/getRewardManagerParams_temp.ts @@ -16,7 +16,7 @@ const tokens = { 'USDCbs': '0x91eDceE9567cD5612C9DeDeAAe24D5e574820Af1', 'USDTbs': '0xFf4299bcA0313c20A61dC5Ed597739743bEf3f6D', 'BUSDbs': '0x61e9604E31a736129D7f5c58964C75935b2D80d6', - 'RUSDT': '0xef213441A85dF4d7ACbDaE0Cf78004e1E486bB96', + 'USDT0': '0x779Ded0c9e1022225f8E0630b35a9b54bE713736', 'rDOC': '0x2d919F19D4892381D58edeBeca66D5642Cef1a1f', 'DOC': '0xe700691dA7b9851F2F35f8b8182c69c53CcaD9Db', 'ZUSD': '0xdB107FA69E33f05180a4C2cE9c2E7CB481645C2d' @@ -30,7 +30,7 @@ const tokenTargetWeights = { 'USDCbs': 0.05, 'USDTbs': 0.15, 'BUSDbs': 0.05, - 'RUSDT': 0.05, + 'USDT0': 0.05, 'rDOC': 0.005, 'DOC': 0.005, 'ZUSD': 0.49 @@ -44,7 +44,7 @@ const tokenBalances = { 'USDCbs': 0, 'USDTbs': 0, 'BUSDbs': 0, - 'RUSDT': 0, + 'USDT0': 0, 'rDOC': 0, 'DOC': 0, 'ZUSD': 3924696 diff --git a/scripts/src/knownTokens.ts b/scripts/src/knownTokens.ts index f61bd2e..673fd1a 100644 --- a/scripts/src/knownTokens.ts +++ b/scripts/src/knownTokens.ts @@ -7,7 +7,7 @@ export const knownTokens = { 'DAIBS': '0x6A42FF12215a90F50866a5CE43a9c9c870116E76', 'USDCBS': '0x91eDceE9567cD5612C9DeDeAAe24D5e574820Af1', 'USDTBS': '0xFf4299bcA0313c20A61dC5Ed597739743bEf3f6D', - 'RUSDT': '0xef213441A85dF4d7ACbDaE0Cf78004e1E486bB96', + 'USDT0': '0x779Ded0c9e1022225f8E0630b35a9b54bE713736', 'RDOC': '0x2d919F19D4892381D58edeBeca66D5642Cef1a1f', 'DOC': '0xe700691dA7b9851F2F35f8b8182c69c53CcaD9Db', 'DLLR': '0xc1411567d2670e24d9C4DaAa7CdA95686e1250AA' @@ -16,7 +16,7 @@ export const knownTokens = { 'SEPUSDES': '0x30199fc1322b89bbe8b575ba4f695632961fc8f3', 'tDOC': '0xad0d0d04ec0cf442204908fc2cc18503ead06d3e', 'tRDOC': '0xdbdc2d486c10c23902a46a17bec1f7de64075257', - 'trUSDT': '0x71e14cb1d752b88215782f2d6af01327cb483a0e', + 'tUSDT0': '0xc7d5944654eD41011efe0A4cB8446B0416545A11', 'tZUSD': '0x6b41566353d6c7b8c2a7931d498f11489dacac29', 'DLLR': '0x007b3aa69a846cb1f76b60b3088230a52d2a83ac', 'TST1': '0x9552f2e86b38b6545f7a3ff871b1f3e0023fa841', @@ -53,7 +53,7 @@ export const knownBridges = { 'DAIBS': '0x971b97c8cc82e7d27bc467c2dc3f219c6ee2e350', 'USDCBS': '0x971b97c8cc82e7d27bc467c2dc3f219c6ee2e350', 'USDTBS': '0x971b97c8cc82e7d27bc467c2dc3f219c6ee2e350', - 'RUSDT': '0x0000000000000000000000000000000000000000', + 'USDT0': '0x0000000000000000000000000000000000000000', 'RDOC': '0x0000000000000000000000000000000000000000', 'DOC': '0x0000000000000000000000000000000000000000', 'ZUSD': '0x0000000000000000000000000000000000000000' @@ -62,7 +62,7 @@ export const knownBridges = { 'SEPUSDES': '0xfBd57AB1dCE7B4fE191Ff947dDbB5118e4318207', 'tDOC': '0x0000000000000000000000000000000000000000', 'tRDOC': '0x0000000000000000000000000000000000000000', - 'trUSDT': '0x0000000000000000000000000000000000000000', + 'tUSDT0': '0x0000000000000000000000000000000000000000', 'tZUSD': '0x0000000000000000000000000000000000000000', 'DLLR': '0x0000000000000000000000000000000000000000', 'TST1': '0x0000000000000000000000000000000000000000', @@ -83,7 +83,7 @@ export const knownFactors = { 'DAIBS': 1, 'USDCBS': 1, 'USDTBS': 1, - 'RUSDT': 1, + 'USDT0': 1, 'RDOC': 1, 'DOC': 1, 'ZUSD': 1 @@ -92,7 +92,7 @@ export const knownFactors = { 'SEPUSDES': 1, 'tDOC': 1, 'tRDOC': 1, - 'trUSDT': 1, + 'tUSDT0': 1, 'tZUSD': 1, 'DLLR': 1, 'TST1': 1, diff --git a/scripts/src/replaceRUSDTWithUSDT0.README.md b/scripts/src/replaceRUSDTWithUSDT0.README.md new file mode 100644 index 0000000..07302c5 --- /dev/null +++ b/scripts/src/replaceRUSDTWithUSDT0.README.md @@ -0,0 +1,59 @@ +# replaceRUSDTWithUSDT0 + +This script handles the migration from RUSDT to USDT0 in the Babelfish system by updating the BasketManager's accepted tokens. + +## Overview + +The script performs a token replacement operation in the BasketManager contract, specifically: +- Removing RUSDT from the accepted tokens basket +- Adding USDT0 as a new accepted token with a 1:1 conversion ratio + +## Prerequisites + +1. Environment Setup: + - Truffle environment configured + - Valid network configuration in `truffle-config.js` + - HDWalletProvider with funded accounts + +2. Contract Requirements: + - Deployed Masset contract + - Deployed BasketManager contract + - Caller must have owner permissions on BasketManager + +3. Configuration: + - Network-specific token addresses in `knownTokens.ts`: + - RUSDT address + - USDT0 address + +## Usage + +```bash +npx truffle exec scripts/src/replaceRUSDTWithUSDT0.ts --network +``` + +Replace `` with one of: +- rsk +- rskTestnet + +## Process Flow + +1. **Initial Setup** + - Connects to specified network + - Loads contract artifacts + - Retrieves deployed contract instances + +2. **Version Verification** + - Checks current Masset version + - Verifies BasketManager version + - Logs initial state + +3. **Token Replacement** + - Removes RUSDT using `removeBasset` + - Adds USDT0 using `addBasset` + - Parameters for USDT0: + - Conversion factor: 1 + - Bridge: ZERO_ADDRESS + +4. **Verification** + - Retrieves updated bassets list + - Logs final state for confirmation diff --git a/scripts/src/replaceRUSDTWithUSDT0.ts b/scripts/src/replaceRUSDTWithUSDT0.ts new file mode 100644 index 0000000..91c407a --- /dev/null +++ b/scripts/src/replaceRUSDTWithUSDT0.ts @@ -0,0 +1,42 @@ +import HDWalletProvider from '@truffle/hdwallet-provider'; +import state from '../../migrations/state'; +import BN from "bn.js"; +import { BasketManagerInstance, MassetInstance, MultiSigWalletInstance } from 'types/generated'; +import { ZERO_ADDRESS } from '@utils/constants'; +import { knownTokens } from './knownTokens'; + +export default async function mint(truffle): Promise { + const artifacts = truffle.artifacts; + const provider = truffle.web3.currentProvider; + const network = truffle.artifacts.options.network; + state.setNetwork(network); + + console.log(provider.getAddress(0), provider.getAddress(1)); + + const Masset = artifacts.require("Masset"); + const fake = await state.getDeployed(Masset, 'MassetProxy'); + + console.log('version before: ', await fake.getVersion()); + + const bmAddress = await (fake as MassetInstance).getBasketManager(); + console.log('bmAddress', bmAddress); + + const BasketManager = artifacts.require("BasketManager"); + const basketManager = await BasketManager.at(bmAddress); + const bmVersion = await basketManager.getVersion(); + + console.log('bmVersion', bmVersion); + + let bassets = await (basketManager as BasketManagerInstance).getBassets(); + console.log('bassets', bassets); + + // remove RUSDT from basket + await (basketManager as BasketManagerInstance).removeBasset(knownTokens[network]['RUSDT']); + + // add USDT0 to basket + await (basketManager as BasketManagerInstance).addBasset(knownTokens[network]['USDT0'], 1, ZERO_ADDRESS); + + bassets = await (basketManager as BasketManagerInstance).getBassets(); + console.log('bassets', bassets); +} + diff --git a/scripts/src/setRewardManagerParams.ts b/scripts/src/setRewardManagerParams.ts index 4b94414..a081c12 100644 --- a/scripts/src/setRewardManagerParams.ts +++ b/scripts/src/setRewardManagerParams.ts @@ -14,7 +14,7 @@ const tokenTargetWeights = { 'USDCBS': 0.05, 'USDTBS': 0.15, 'BUSDBS': 0.05, - 'RUSDT': 0.05, + 'USDT0': 0.05, 'RDOC': 0.005, 'DOC': 0.005, 'DLLR': 0.49 @@ -23,7 +23,7 @@ const tokenTargetWeights = { 'SEPUSDES': 0.05, 'tDOC': .005, 'tRDOC': .005, - 'trUSDT': .05, + 'tUSDT0': .05, 'DLLR': .20, 'TST1': .05, 'TST2': .05, diff --git a/scripts/src/setRewardManagerParams_MS.ts b/scripts/src/setRewardManagerParams_MS.ts index f9862a0..3ffab85 100644 --- a/scripts/src/setRewardManagerParams_MS.ts +++ b/scripts/src/setRewardManagerParams_MS.ts @@ -14,7 +14,7 @@ const tokenTargetWeights = { 'USDCBS': 0.05, 'USDTBS': 0.15, 'BUSDBS': 0.05, - 'RUSDT': 0.05, + 'USDT0': 0.05, 'RDOC': 0.005, 'DOC': 0.005, 'ZUSD': 0.49 diff --git a/scripts/src/test.ts b/scripts/src/test.ts index 931cb7f..6f586ee 100644 --- a/scripts/src/test.ts +++ b/scripts/src/test.ts @@ -52,7 +52,7 @@ const bassets = [ '0x3e2cf87e7fF4048A57F9Cdde9368C9f4bfb43aDf', // bsUSDC '0x43bC3f0FfFf6c9BBf3C2EAfe464C314d43f561De', // bsUSDT '0x8c9abb6c9D8D15ddB7ada2e50086e1050aB32688', // bsBUSD - '0x4d5A316d23EBe168D8f887b4447BF8DBfA4901cc', // RUSDT + '0xc7d5944654eD41011efe0A4cB8446B0416545A11', // USDT0 '0xC3De9F38581f83e281f260d0DdbaAc0e102ff9F8', // rDOC '0xCB46c0ddc60D18eFEB0E586C17Af6ea36452Dae0', // DOC '0x6b41566353d6C7B8C2a7931d498F11489DacAc29', // zUSD diff --git a/scripts/src/testRewardManager.ts b/scripts/src/testRewardManager.ts index e64a9cc..1cf5006 100644 --- a/scripts/src/testRewardManager.ts +++ b/scripts/src/testRewardManager.ts @@ -47,7 +47,7 @@ const bassets = [ '0x3e2cf87e7fF4048A57F9Cdde9368C9f4bfb43aDf', // bsUSDC '0x43bC3f0FfFf6c9BBf3C2EAfe464C314d43f561De', // bsUSDT '0x8c9abb6c9D8D15ddB7ada2e50086e1050aB32688', // bsBUSD - '0x4d5A316d23EBe168D8f887b4447BF8DBfA4901cc', // RUSDT + '0xc7d5944654eD41011efe0A4cB8446B0416545A11', // USDT0 '0xC3De9F38581f83e281f260d0DdbaAc0e102ff9F8', // rDOC '0xCB46c0ddc60D18eFEB0E586C17Af6ea36452Dae0', // DOC '0x6b41566353d6C7B8C2a7931d498F11489DacAc29', // zUSD