Starknet
Fleetingcontract classes and instances
- External reference: https://docs.starknet.io/architecture-and-concepts/smart-contracts/contract-classes/
Each class is uniquely identified by its class hash, comparable to a class name in traditional object-oriented programming languages
— https://docs.starknet.io/architecture-and-concepts/smart-contracts/contract-classes/
nonce of instanciated contracts
A contract instance has a nonce, the value of which is the number of transactions originating from this address plus 1. For example, when you deploy an account with a DEPLOY_ACCOUNT transaction, the nonce of the account contract in the transaction is 0. After the DEPLOY_ACCOUNT transaction, until the account contract sends its next transaction, the nonce is 1.
— https://docs.starknet.io/architecture-and-concepts/smart-contracts/contract-classes/
deployment
External reference: https://docs.starknet.io/architecture-and-concepts/accounts/deploying-new-accounts/ can deploy a new account in the following ways:
- Send a DEPLOY_ACCOUNT transaction. This method does not require a preexisting account.
- Using the Universal Deployer Contract (UDC). This method requires an existing account to send the INVOKE transaction
— https://docs.starknet.io/architecture-and-concepts/accounts/deploying-new-accounts/
who pays the fees
- from DEPLOY_ACCOUNT transaction
- the deployED account1, 2
- from Universal Deployer Contract (UDC)
- the deployING account1
DEPLOY_ACCOUNT transaction
Universal Deployer Contract (UDC)
- External reference: https://docs.starknet.io/architecture-and-concepts/accounts/universal-deployer/
origin-independent
Origin-independent
Origin-independent contract deployments create contract addresses independent of the deployer and the UDC instance. Instead, only the class hash, salt, and constructor arguments determine the address. This type of deployment enables redeployments of accounts and known systems across multiple networks. To deploy a reproducible deployment, set unique to false.
— https://docs.starknet.io/architecture-and-concepts/accounts/universal-deployer/
origin-dependent
Origin-dependent
By making deployments dependent upon the origin address, users can reserve a whole address space to prevent someone else from taking ownership of the address.
— https://docs.starknet.io/architecture-and-concepts/accounts/universal-deployer/
address : 0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf
The UDC address is 0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf in Mainnet, Sepolia testnet, and starknet-devnet. This address might change in the future when it is migrated to a modern version of Cairo.
— https://docs.starknet.io/architecture-and-concepts/accounts/universal-deployer/
signature
efficient implementation for ECDSA signature with respect to a STARK-friendly curve
— https://docs.starknet.io/architecture-and-concepts/network-architecture/transactions/
— https://docs.starknet.io/architecture-and-concepts/network-architecture/transactions/
Permalink
-
If you use a DEPLOY_ACCOUNT transaction, the fees are paid from the address of the deployed account. If you use the UDC, which requires an INVOKE transaction, the fees are paid from the sender’s account.
— https://docs.starknet.io/architecture-and-concepts/accounts/deploying-new-accounts/
-
To use it, you should first pre-fund your new account address so that you can pay the transaction fee. You can then send the DEPLOY_ACCOUNT transaction.
— https://docs.starknet.io/architecture-and-concepts/network-architecture/transactions/