diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ec4c5c7840..bf8efd1882 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,6 +44,8 @@ jobs: include: - testnet: nairobinet testnet_uppercase: NAIROBINET + - testnet: oxfordnet + testnet_uppercase: OXFORDNET steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 @@ -72,6 +74,10 @@ jobs: testnet: nairobinet testnet_uppercase: NAIROBINET flextesa_docker_image: oxheadalpha/flextesa:20230607 + - protocol: Oxford + testnet: oxfordnet + testnet_uppercase: OXFORDNET + flextesa_docker_image: oxheadalpha/flextesa:latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 @@ -112,7 +118,7 @@ jobs: --protocol-kind ${{ matrix.protocol }} - run: npm ci - run: npm run build - - run: npm -w integration-tests run test:originate-known-contracts && npm -w integration-tests run test:${{ matrix.testnet }}-secret-key -- --testPathIgnorePatterns ledger-signer-failing-tests.spec.ts ledger-signer.spec.ts contract-estimation-tests.spec.ts rpc-get-protocol-constants.spec.ts sandbox-ballot-operation.spec.ts contract-batch-high-number-of-operations.spec.ts contract-pair-as-key.spec.ts --detectOpenHandles --runInBand + - run: npm -w integration-tests run originate-known-contracts && npm -w integration-tests run test:${{ matrix.testnet }}-secret-key -- --testPathIgnorePatterns ledger-signer-failing-tests.spec.ts ledger-signer.spec.ts contract-estimation-tests.spec.ts rpc-get-protocol-constants.spec.ts sandbox-ballot-operation.spec.ts contract-batch-high-number-of-operations.spec.ts contract-pair-as-key.spec.ts --detectOpenHandles --runInBand env: RUN_${{ matrix.testnet_uppercase }}_WITH_SECRET_KEY: true SECRET_KEY: edsk3S8mG2sSBmSRbikAcZVLCz4SrCq4DjmsQRic6MGktqNFijfrS2 diff --git a/cspell.json b/cspell.json index 88f12bc865..01fecb89b3 100644 --- a/cspell.json +++ b/cspell.json @@ -66,6 +66,7 @@ "octez", "opkind", "originations", + "oxfordnet", "oxheadalpha", "Pkhfrom", "precommit", @@ -73,6 +74,7 @@ "prevalidation", "println", "Protofire", + "ProxfordY", "PtNairobi", "refetched", "rollups", diff --git a/docs/rpc_nodes.md b/docs/rpc_nodes.md index 764fca96ce..0fb2561525 100644 --- a/docs/rpc_nodes.md +++ b/docs/rpc_nodes.md @@ -26,20 +26,20 @@ values={[ | ECAD Labs | Mainnet | https://mainnet.ecadinfra.com | [Check](https://mainnet.ecadinfra.com/chains/main/blocks/head/header) | | ECAD Labs | Ghostnet | https://ghostnet.ecadinfra.com | [Check](https://ghostnet.ecadinfra.com/chains/main/blocks/head/header) | | ECAD Labs | Nairobinet | https://nairobinet.ecadinfra.com | [Check](https://nairobinet.ecadinfra.com/chains/main/blocks/head/header) | -| ECAD Labs | Mumbainet | https://mumbainet.ecadinfra.com | [Check](https://mumbainet.ecadinfra.com/chains/main/blocks/head/header) | +| ECAD Labs | Oxfordnet | https://oxfordnet.ecadinfra.com | [Check](https://oxfordnet.ecadinfra.com/chains/main/blocks/head/header) | | SmartPy | Mainnet | https://mainnet.smartpy.io | [Check](https://mainnet.smartpy.io/chains/main/blocks/head/header) | | SmartPy | Ghostnet | https://ghostnet.smartpy.io | [Check](https://ghostnet.smartpy.io/chains/main/blocks/head/header) | | Tezos Foundation | Mainnet | https://rpc.tzbeta.net/ | [Check](https://rpc.tzbeta.net/chains/main/blocks/head/header) | | Marigold | Mainnet | https://mainnet.tezos.marigold.dev/ | [Check](https://mainnet.tezos.marigold.dev/chains/main/blocks/head/header) | | Marigold | Ghostnet | https://ghostnet.tezos.marigold.dev/ | [Check](https://ghostnet.tezos.marigold.dev/chains/main/blocks/head/header) | | Marigold | Nairobinet | https://nairobinet.tezos.marigold.dev/ | [Check](https://nairobinet.tezos.marigold.dev/chains/main/blocks/head/header) | -| Marigold | Mumbainet | https://mumbainet.tezos.marigold.dev/ | [Check](https://mumbainet.tezos.marigold.dev/chains/main/blocks/head/header) | +| Marigold | Oxfordnet | https://oxfordnet.tezos.marigold.dev/ | [Check](https://oxfordnet.tezos.marigold.dev/chains/main/blocks/head/header) | *If you are aware of a public node missing from our list or our information is inaccurate, please help us by submitting an issue or pull request on our GitHub page.* -| Provider | Details | +| Provider | Details | |------------------|---------------------------------------------| | TzPro | https://tzpro.io/ | | MIDL.dev | https://midl.dev/tezos-rpc/ | diff --git a/docs/wallet_API.md b/docs/wallet_API.md index 8ee9ab6412..78c7fac994 100644 --- a/docs/wallet_API.md +++ b/docs/wallet_API.md @@ -179,7 +179,7 @@ const wallet = new TempleWallet('MyAwesomeDapp'); The class constructor takes one parameter, the name of your dapp (this will be used later in the transaction confirmation pop-up). After the instantiation, we can connect the wallet by calling the `connect` method: ```js -await wallet.connect('mainnet' | 'mumbainet' | 'nairobinet' | 'ghostnet' | 'mondaynet' | 'sandbox'); +await wallet.connect('mainnet' | 'oxfordnet' | 'nairobinet' | 'ghostnet' | 'mondaynet' | 'sandbox'); ``` (Temple used to be called Thanos and some Taquito code still uses the name Thanos.) diff --git a/integration-tests/config.ts b/integration-tests/config.ts index 3c57a0cde1..8d6879e91a 100644 --- a/integration-tests/config.ts +++ b/integration-tests/config.ts @@ -8,6 +8,7 @@ import { KnownContracts } from './known-contracts'; import { knownContractsProtoALph } from './known-contracts-ProtoALph'; import { knownContractsPtGhostnet } from './known-contracts-PtGhostnet'; import { knownContractsPtNairobi } from './known-contracts-PtNairobi'; +import { knownContractsProxfordY } from './known-contracts-ProxfordY'; const nodeCrypto = require('crypto'); @@ -145,10 +146,22 @@ const nairobinetEphemeral: Config = const nairobinetSecretKey: Config = { ...nairobinetEphemeral, ...{ signerConfig: defaultSecretKey }, ...{ defaultRpc: 'http://ecad-nairobinet-full:8732' } }; + const oxfordnetEphemeral: Config = + defaultConfig({ + networkName: 'OXFORDNET', + protocol: Protocols.ProxfordY, + defaultRpc: 'http://ecad-oxfordnet-full.i.tez.ie:8732', + knownContracts: knownContractsProxfordY, + signerConfig: defaultEphemeralConfig('https://keygen.ecadinfra.com/oxfordnet') + }); + +const oxfordnetSecretKey: Config = + { ...oxfordnetEphemeral, ...{ signerConfig: defaultSecretKey }, ...{ defaultRpc: 'http://ecad-oxfordnet-full:8732' } }; + const ghostnetEphemeral: Config = defaultConfig({ networkName: 'GHOSTNET', - protocol: Protocols.PtMumbai2, + protocol: Protocols.PtNairobi, defaultRpc: 'http://ecad-ghostnet-rolling:8732', knownContracts: knownContractsPtGhostnet, signerConfig: defaultEphemeralConfig('https://keygen.ecadinfra.com/ghostnet') @@ -172,21 +185,25 @@ const mondaynetSecretKey: Config = const providers: Config[] = []; if (process.env['RUN_WITH_SECRET_KEY']) { - providers.push(nairobinetSecretKey); + providers.push(nairobinetSecretKey, oxfordnetSecretKey); } else if (process.env['RUN_NAIROBINET_WITH_SECRET_KEY']) { providers.push(nairobinetSecretKey); +} else if (process.env['RUN_OXFORDNET_WITH_SECRET_KEY']) { + providers.push(oxfordnetSecretKey); } else if (process.env['RUN_GHOSTNET_WITH_SECRET_KEY']) { providers.push(ghostnetSecretKey); } else if (process.env['RUN_MONDAYNET_WITH_SECRET_KEY']) { providers.push(mondaynetSecretKey); } else if (process.env['NAIROBINET']) { providers.push(nairobinetEphemeral); +} else if (process.env['OXFORDNET']) { + providers.push(oxfordnetEphemeral); } else if (process.env['GHOSTNET']) { providers.push(ghostnetEphemeral); } else if (process.env['MONDAYNET']) { providers.push(mondaynetEphemeral); } else { - providers.push(nairobinetEphemeral); + providers.push(nairobinetEphemeral, oxfordnetEphemeral); } const setupForger = (Tezos: TezosToolkit, forger: ForgerType): void => { @@ -215,7 +232,7 @@ const setupSignerWithFreshKey = async ( headers: requestHeaders, json: false, }); - + const signer = new InMemorySigner(key!); Tezos.setSignerProvider(signer); } catch (e) { diff --git a/integration-tests/known-contracts-ProxfordY.ts b/integration-tests/known-contracts-ProxfordY.ts new file mode 100644 index 0000000000..552641d1ec --- /dev/null +++ b/integration-tests/known-contracts-ProxfordY.ts @@ -0,0 +1,8 @@ +import { KnownContracts } from './known-contracts'; +export const knownContractsProxfordY: KnownContracts = { + contract: "KT1UTWPed6L8pNmWJJhPgwLELxmpua18nvZB", + bigMapContract: "KT1TpJY5K5wg9dYgMhLpcvmPnreE4trxkCdh", + tzip12BigMapOffChainContract: "KT1PxJcsmPm365VGCbopTz7411kwF7u1mFkv", + saplingContract: "KT1PPnjL9TudMnZ23UmnGkCLbZ7TiMjNUVhe", + onChainViewContractAddress: "KT1Mc9DhvGtZPCg5TobjZdgHheCmDERUYCTj", +}; diff --git a/integration-tests/known-contracts-PtMumbai2.ts b/integration-tests/known-contracts-PtMumbai2.ts deleted file mode 100644 index 70b3d80206..0000000000 --- a/integration-tests/known-contracts-PtMumbai2.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { KnownContracts } from './known-contracts'; -export const knownContractsPtMumbai2: KnownContracts = { - contract: "KT1XFiUYC36XSeLTanGJwZxqLzsxz9zquLFB", - bigMapContract: "KT1KbbvszHoWVSS8Nzh9yLgvRBDkzVjKmCtj", - tzip12BigMapOffChainContract: "KT1KKU19PxFbQUT9sBJS8KwYCVaXAzYsTkUK", - saplingContract: "KT1UHkJDY1CWAgYZJR1NkxXv27gsuu7hC77R", - onChainViewContractAddress: "KT1JxWH1vtMiTcvg4AdhTaGmyHt2oBb71tzW" -}; diff --git a/integration-tests/package.json b/integration-tests/package.json index c7c6e042d7..3ca8cfb73e 100644 --- a/integration-tests/package.json +++ b/integration-tests/package.json @@ -1,14 +1,18 @@ { "name": "integration-tests", "scripts": { + "test": "jest", "test:secret-key": "RUN_WITH_SECRET_KEY=true jest --runInBand", "test:nairobinet": "NAIROBINET=true jest", "test:nairobinet-secret-key": "RUN_NAIROBINET_WITH_SECRET_KEY=true jest --runInBand", - "test:originate-known-contracts": "node -r ts-node/register originate-known-contracts.ts", - "originate-known-contracts-and-run-test": "node -r ts-node/register originate-known-contracts.ts && jest", + "test:oxfordnet": "OXFORDNET=true jest", + "test:oxfordnet-secret-key": "RUN_OXFORDNET_WITH_SECRET_KEY=true jest --runInBand", "test:mondaynet": "MONDAYNET=true jest", "test:mondaynet-secret-key": "RUN_MONDAYNET_WITH_SECRET_KEY=true jest --runInBand", - "test": "jest" + "test:ghostnet": "GHOSTNET=true jest", + "test:ghostnet-secret-key": "RUN_GHSOTNET_WITH_SECRET_KEY=true jest --runInBand", + "originate-known-contracts": "node -r ts-node/register originate-known-contracts.ts", + "originate-known-contracts-and-run-test": "node -r ts-node/register originate-known-contracts.ts && jest" }, "version": "17.5.0", "dependencies": { diff --git a/packages/taquito-local-forging/src/protocols.ts b/packages/taquito-local-forging/src/protocols.ts index 3c5023ce69..4224386a4f 100644 --- a/packages/taquito-local-forging/src/protocols.ts +++ b/packages/taquito-local-forging/src/protocols.ts @@ -15,6 +15,7 @@ export enum ProtocolsHash { PtMumbaii = 'PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc', PtMumbai2 = 'PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1', PtNairobi = 'PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf', + ProxfordY = 'ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH', ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK', } @@ -35,7 +36,8 @@ const protoLevel: Record = { PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc: 16, PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1: 16, PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf: 17, - ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 18, + ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH: 19, + ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 20, }; export function ProtoInferiorTo(a: ProtocolsHash, b: ProtocolsHash): boolean { diff --git a/packages/taquito-michel-codec/src/michelson-types.ts b/packages/taquito-michel-codec/src/michelson-types.ts index 25baf8a1c5..84388207b3 100644 --- a/packages/taquito-michel-codec/src/michelson-types.ts +++ b/packages/taquito-michel-codec/src/michelson-types.ts @@ -400,6 +400,7 @@ export enum Protocol { PtMumbaii = 'PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc', PtMumbai2 = 'PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1', PtNairobi = 'PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf', + ProxfordY = 'ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH', ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK', // temporary protocol hash } @@ -432,7 +433,8 @@ const protoLevel: Record = { PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc: 16, PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1: 16, PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf: 17, - ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 18, + ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH: 19, + ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 20, }; export function ProtoGreaterOrEqual(a: ProtocolID, b: ProtocolID): boolean { diff --git a/packages/taquito/src/constants.ts b/packages/taquito/src/constants.ts index 1fe27244e0..1a5e26a2ab 100644 --- a/packages/taquito/src/constants.ts +++ b/packages/taquito/src/constants.ts @@ -2,8 +2,8 @@ export const DEFAULT_GAS_LIMIT = { DELEGATION: 10600, ORIGINATION: 10600, TRANSFER: 10600, - /* This is used for gas_limit. There is no harm in setting a higher limit. - Only if an account has a balance that is very close to the total gas consumption, + /* This is used for gas_limit. There is no harm in setting a higher limit. + Only if an account has a balance that is very close to the total gas consumption, then this margin can fail the operation. Another benefit of this higher value is that then Dapps build with Taquito 17 can still work with Mumbainet, as this value is higher than the reveal cost in Mumbai. @@ -46,6 +46,7 @@ export enum Protocols { PtMumbaii = 'PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc', PtMumbai2 = 'PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1', PtNairobi = 'PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf', + ProxfordY = 'ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH', ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK', } @@ -64,7 +65,8 @@ export const protocols = { '015': [Protocols.PtLimaPtL], '016': [Protocols.PtMumbai2], // mumbai v2 '017': [Protocols.PtNairobi], - '018': [Protocols.ProtoALpha], + '019': [Protocols.ProxfordY], + '020': [Protocols.ProtoALpha], }; export enum ChainIds { @@ -83,6 +85,7 @@ export enum ChainIds { MUMBAINET = 'NetXQw6nWSnrJ5t', MUMBAINET2 = 'NetXgbcrNtXD2yA', NAIROBINET = 'NetXyuzvDo2Ugzb', + OXFORDNET2 = 'NetXxWsskGahzQB', } export const getRevealGasLimit = (address: string) => diff --git a/website/versioned_docs/version-17.5.0/rpc_nodes.md b/website/versioned_docs/version-17.5.0/rpc_nodes.md index 764fca96ce..5395019f9f 100644 --- a/website/versioned_docs/version-17.5.0/rpc_nodes.md +++ b/website/versioned_docs/version-17.5.0/rpc_nodes.md @@ -26,20 +26,18 @@ values={[ | ECAD Labs | Mainnet | https://mainnet.ecadinfra.com | [Check](https://mainnet.ecadinfra.com/chains/main/blocks/head/header) | | ECAD Labs | Ghostnet | https://ghostnet.ecadinfra.com | [Check](https://ghostnet.ecadinfra.com/chains/main/blocks/head/header) | | ECAD Labs | Nairobinet | https://nairobinet.ecadinfra.com | [Check](https://nairobinet.ecadinfra.com/chains/main/blocks/head/header) | -| ECAD Labs | Mumbainet | https://mumbainet.ecadinfra.com | [Check](https://mumbainet.ecadinfra.com/chains/main/blocks/head/header) | | SmartPy | Mainnet | https://mainnet.smartpy.io | [Check](https://mainnet.smartpy.io/chains/main/blocks/head/header) | | SmartPy | Ghostnet | https://ghostnet.smartpy.io | [Check](https://ghostnet.smartpy.io/chains/main/blocks/head/header) | | Tezos Foundation | Mainnet | https://rpc.tzbeta.net/ | [Check](https://rpc.tzbeta.net/chains/main/blocks/head/header) | | Marigold | Mainnet | https://mainnet.tezos.marigold.dev/ | [Check](https://mainnet.tezos.marigold.dev/chains/main/blocks/head/header) | | Marigold | Ghostnet | https://ghostnet.tezos.marigold.dev/ | [Check](https://ghostnet.tezos.marigold.dev/chains/main/blocks/head/header) | | Marigold | Nairobinet | https://nairobinet.tezos.marigold.dev/ | [Check](https://nairobinet.tezos.marigold.dev/chains/main/blocks/head/header) | -| Marigold | Mumbainet | https://mumbainet.tezos.marigold.dev/ | [Check](https://mumbainet.tezos.marigold.dev/chains/main/blocks/head/header) | *If you are aware of a public node missing from our list or our information is inaccurate, please help us by submitting an issue or pull request on our GitHub page.* -| Provider | Details | +| Provider | Details | |------------------|---------------------------------------------| | TzPro | https://tzpro.io/ | | MIDL.dev | https://midl.dev/tezos-rpc/ | diff --git a/website/versioned_docs/version-17.5.0/wallet_API.md b/website/versioned_docs/version-17.5.0/wallet_API.md index 8ee9ab6412..27b5dc9589 100644 --- a/website/versioned_docs/version-17.5.0/wallet_API.md +++ b/website/versioned_docs/version-17.5.0/wallet_API.md @@ -179,7 +179,7 @@ const wallet = new TempleWallet('MyAwesomeDapp'); The class constructor takes one parameter, the name of your dapp (this will be used later in the transaction confirmation pop-up). After the instantiation, we can connect the wallet by calling the `connect` method: ```js -await wallet.connect('mainnet' | 'mumbainet' | 'nairobinet' | 'ghostnet' | 'mondaynet' | 'sandbox'); +await wallet.connect('mainnet' | 'nairobinet' | 'ghostnet' | 'mondaynet' | 'sandbox'); ``` (Temple used to be called Thanos and some Taquito code still uses the name Thanos.)