drop mention of the terra NFT bridge from docs and scripts

This commit is contained in:
Csongor Kiss 2023-12-06 18:07:33 +00:00
parent 6fa6a2d0c1
commit 0cc1f677e5
6 changed files with 1 additions and 80 deletions

View File

@ -22,10 +22,8 @@
| Migration Contract | SOL | Ex9bCdVMSfx7EzB3pgSi2R4UHwJAXvTw18rBQm5YQ8gK | |
| Test Wallet | Terra | terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v | Mnemonic: `notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius` |
| Test CW20 | Terra | terra13nkgqrfymug724h8pprpexqj9h629sa3ncw7sh | Tokens minted to Test Wallet |
| Test CW721 | Terra | terra18dt935pdcn2ka6l0syy5gt20wa48n3mktvdvjj | NFTs minted to Test Wallet |
| Bridge Core | Terra | terra18vd8fpwxzck93qlwghaj6arh4p7c5n896xzem5 | |
| Token Bridge | Terra | terra10pyejy66429refv3g35g2t7am0was7ya7kz2a4 | |
| NFT Bridge | Terra | terra1plju286nnfj3z54wgcggd4enwaa9fgf5kgrgzl | |
| Test Wallet | Terra2 | terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v | Mnemonic: `notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius` |
| Test CW20 | Terra2 | terra1zwv6feuzhy6a9wekh96cd57lsarmqlwxdypdsplw6zhfncqw6ftqynf7kp | Tokens minted to Test Wallet |
| Bridge Core | Terra2 | terra14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9ssrc8au | |

View File

@ -20,6 +20,5 @@ REGISTER_ETH_TOKEN_BRIDGE_VAA=01000000000100e2e1975d14734206e7a23d90db48a6b5b669
REGISTER_ETH_NFT_BRIDGE_VAA=01000000000100d073f81a4ecf2469b0674b1902dcbcad2da7f70ecdd7e1aec65414380ca2c05426380c33bb083ab41167c522231c1485b9c8ffce04eaf2e8a6f50edaa72074c50000000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004e4654427269646765010000000200000000000000000000000026b4afb60d6c903165150c6f0aa14f8016be4aec
REGISTER_TERRA_TOKEN_BRIDGE_VAA=010000000001009a895e8b42444fdf60a71666121d7e84b3a49579ba3b84fff1dbdf9ec93360390c05a88f66c90df2034cb38427ba9b01632e780ce7b84df559a1bf44c316447d01000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e4272696467650100000003000000000000000000000000784999135aaa8a3ca5914468852fdddbddd8789d
REGISTER_TERRA_NFT_BRIDGE_VAA=01000000000100880ab34efd145fa1c9c4f2f7b233f3bc99cb730ab2d2138babf989a2555e2e8f737b759f91970d300c4364249b0740b134dbefb943fb55fd76483261ce68c17b0100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000023c2cdd0000000000000000000000000000000000000000000000004e465442726964676501000000030000000000000000000000000fe5c51f539a651152ae461086d733777a54a134
REGISTER_BSC_TOKEN_BRIDGE_VAA=01000000000100719b4ada436f614489dbf87593c38ba9aea35aa7b997387f8ae09f819806f5654c8d45b6b751faa0e809ccbc294794885efa205bd8a046669464c7cbfb03d183010000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000002c8bb0600000000000000000000000000000000000000000000546f6b656e42726964676501000000040000000000000000000000000290fb167208af455bb137780163b7b7a9a10c16

View File

@ -106,9 +106,7 @@
"coreEmitterAddress": "terra18vd8fpwxzck93qlwghaj6arh4p7c5n896xzem5",
"coreNativeAddress": "terra18vd8fpwxzck93qlwghaj6arh4p7c5n896xzem5",
"tokenBridgeEmitterAddress": "terra10pyejy66429refv3g35g2t7am0was7ya7kz2a4",
"tokenBridgeNativeAddress": "terra10pyejy66429refv3g35g2t7am0was7ya7kz2a4",
"nftBridgeEmitterAddress": "terra1plju286nnfj3z54wgcggd4enwaa9fgf5kgrgzl",
"nftBridgeNativeAddress": "terra10nmmwe8r3g99a9newtqa7a75xfgs2e8z87r2sf"
"tokenBridgeNativeAddress": "terra10pyejy66429refv3g35g2t7am0was7ya7kz2a4"
},
"accounts": {
"testWallet": {

View File

@ -91,7 +91,6 @@ wormchainTokenBridge=$(jq --raw-output '.chains."3104".contracts.tokenBridgeEmit
solNFTBridge=$(jq --raw-output '.chains."1".contracts.nftBridgeEmitterAddress' $addressesJson)
ethNFTBridge=$(jq --raw-output '.chains."2".contracts.nftBridgeEmitterAddress' $addressesJson)
terraNFTBridge=$(jq --raw-output '.chains."3".contracts.nftBridgeEmitterAddress' $addressesJson)
nearNFTBridge=$(jq --raw-output '.chains."15".contracts.nftBridgeEmitterAddress' $addressesJson)
aptosNFTBridge=$(jq --raw-output '.chains."22".contracts.nftBridgeEmitterAddress' $addressesJson)
@ -113,7 +112,6 @@ wormchainTokenBridgeVAA=$(worm generate registration -m TokenBridge -c wormchain
echo "generating contract registration VAAs for nft bridges"
solNFTBridgeVAA=$(worm generate registration -m NFTBridge -c solana -a ${solNFTBridge} -g ${guardiansPrivateCSV})
ethNFTBridgeVAA=$(worm generate registration -m NFTBridge -c ethereum -a ${ethNFTBridge} -g ${guardiansPrivateCSV})
terraNFTBridgeVAA=$(worm generate registration -m NFTBridge -c terra -a ${terraNFTBridge} -g ${guardiansPrivateCSV})
nearNFTBridgeVAA=$(worm generate registration -m NFTBridge -c near -a ${nearNFTBridge} -g ${guardiansPrivateCSV})
aptosNFTBridgeVAA=$(worm generate registration -m NFTBridge -c aptos -a ${aptosNFTBridge} -g ${guardiansPrivateCSV})
@ -134,7 +132,6 @@ wormchainTokenBridge="REGISTER_WORMCHAIN_TOKEN_BRIDGE_VAA"
solNFTBridge="REGISTER_SOL_NFT_BRIDGE_VAA"
ethNFTBridge="REGISTER_ETH_NFT_BRIDGE_VAA"
terraNFTBridge="REGISTER_TERRA_NFT_BRIDGE_VAA"
nearNFTBridge="REGISTER_NEAR_NFT_BRIDGE_VAA"
aptosNFTBridge="REGISTER_APTOS_NFT_BRIDGE_VAA"
@ -155,9 +152,6 @@ upsert_env_file $envFile $ethNFTBridge $ethNFTBridgeVAA
# terra token bridge
upsert_env_file $ethFile $terraTokenBridge $terraTokenBridgeVAA
upsert_env_file $envFile $terraTokenBridge $terraTokenBridgeVAA
# terra nft bridge
upsert_env_file $ethFile $terraNFTBridge $terraNFTBridgeVAA
upsert_env_file $envFile $terraNFTBridge $terraNFTBridgeVAA
# bsc token bridge
upsert_env_file $ethFile $bscTokenBridge $bscTokenBridgeVAA

View File

@ -34,9 +34,6 @@ const artifacts = [
"token_bridge_terra.wasm",
"cw20_wrapped.wasm",
"cw20_base.wasm",
"nft_bridge_terra.wasm",
"cw721_wrapped.wasm",
"cw721_base.wasm",
"mock_bridge_integration.wasm",
];
@ -208,56 +205,6 @@ addresses["mock.wasm"] = await instantiate("cw20_base.wasm", {
mint: null,
});
addresses["nft_bridge_terra.wasm"] = await instantiate("nft_bridge_terra.wasm", {
gov_chain: govChain,
gov_address: Buffer.from(govAddress, "hex").toString("base64"),
wormhole_contract: addresses["wormhole.wasm"],
wrapped_asset_code_id: codeIds["cw721_wrapped.wasm"],
});
addresses["cw721_base.wasm"] = await instantiate("cw721_base.wasm", {
name: "MOCK",
symbol: "MCK",
minter: wallet.key.accAddress,
});
async function mint_cw721(token_id, token_uri) {
await wallet
.createAndSignTx({
msgs: [
new MsgExecuteContract(
wallet.key.accAddress,
addresses["cw721_base.wasm"],
{
mint: {
token_id: token_id.toString(),
owner: wallet.key.accAddress,
token_uri: token_uri,
},
},
{ uluna: 1000 }
),
],
memo: "",
fee: new StdFee(2000000, {
uluna: "100000",
}),
})
.then((tx) => broadcastAndWait(terra, tx));
console.log(
`Minted NFT with token_id ${token_id} at ${addresses["cw721_base.wasm"]}`
);
}
await mint_cw721(
0,
"https://ixmfkhnh2o4keek2457f2v2iw47cugsx23eynlcfpstxihsay7nq.arweave.net/RdhVHafTuKIRWud-XVdItz4qGlfWyYasRXyndB5Ax9s/"
);
await mint_cw721(
1,
"https://portal.neondistrict.io/api/getNft/158456327500392944014123206890"
);
/* Registrations: tell the bridge contracts to know about each other */
const contract_registrations = {
@ -279,12 +226,6 @@ const contract_registrations = {
// APTOS
process.env.REGISTER_APTOS_TOKEN_BRIDGE_VAA,
],
"nft_bridge_terra.wasm": [
// Solana
process.env.REGISTER_SOL_NFT_BRIDGE_VAA,
// Ethereum
process.env.REGISTER_ETH_NFT_BRIDGE_VAA,
],
};
for (const [contract, registrations] of Object.entries(

View File

@ -38,7 +38,6 @@ We aim to support:
- EIP721 with token_uri extension: Ethereum, BSC
- Metaplex SPL Meta: Solana
- CW721 with token_uri extension: Terra
## Detailed Design
@ -153,11 +152,3 @@ Currently Solana only supports u64 token ids which is incompatible with Ethereum
UUIDs as token ids (utilizing all bytes of the uint256). There will either need to be a mechanism to translate ids i.e.
a map of `[32]u8 -> incrementing_u64` (in the expectation there will never be more than MaxU64 editions) or Solana needs
to change their NFT contract.
Terra CW721 contracts support arbitrary strings as token IDs. In order to fit
them into 32 bytes, we store their keccak256 hash instead. This means that when
transferring a terra-native NFT through the wormhole, the ID of the output token
will be the original token's hash. However, wrapped assets on terra will retain
their original token ids, simply stringified into a decimal number. Then,
when transferring them back through the wormhole, we can guarantee that these
ids will parse as a uint256.