Sourcify Logosourcify.eth

0x7A7Fb6c946AFc8747c8FbC7301a2b9b84FC9Ed8B

on Celo Alfajores Testnet (44787)

Exact Match
Runtime Bytecode
Creation Bytecode
Warning: This contract is only matched with runtime bytecode. The constructor may be different from the original one, which could affect the contract's functionality.
Contract Name
ExchangeRateService
Compilation Target
contracts/ExchangeRateService.sol:ExchangeRateService
Language
Solidity
Compiler
solc 0.8.13+commit.abaa5c0e
EVM Version
london
Verified At
2024-08-08 12:28:23 UTC
Deployer
Deployment Transaction
Block Number
Transaction Index

ABI

Expand to view

Source Code

Remix IDE LogoView on Remix IDE
  • contracts/Maths.sol
  • contracts/Nylon.sol
  • contracts/BasketService.sol
  • contracts/ExchangeRateService.sol
  • @openzeppelin/contracts/utils/Address.sol
  • @openzeppelin/contracts/utils/Context.sol
  • @openzeppelin/contracts/access/Ownable.sol
  • @openzeppelin/contracts/token/ERC20/ERC20.sol
  • @openzeppelin/contracts/token/ERC20/IERC20.sol
  • @openzeppelin/contracts/utils/math/SafeMath.sol
  • ado-contracts/contracts/interfaces/IERC2362.sol
  • @openzeppelin/contracts/security/ReentrancyGuard.sol
  • @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
  • witnet-solidity-bridge/contracts/interfaces/IERC165.sol
  • witnet-solidity-bridge/contracts/interfaces/IWitnetPriceFeed.sol
  • @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
  • witnet-solidity-bridge/contracts/interfaces/IWitnetPriceRouter.sol
  • @openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol
Loading...

Compiler Settings

Loading...

Contract Metadata

Loading...
Contract couldn't be verified with the creation bytecode but with the runtime bytecode. Below is what was found at the time of verification.

Creation Bytecode

0x60c06040523480156200001157600080fd5b50604051620012553803806200125583398181016040528101906200003791906200031a565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620000b7639ed884be60e01b6200015660201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200010e6321a7982160e01b6200015660201b60201c565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620004ef565b60008060a05173ffffffffffffffffffffffffffffffffffffffff16638c0adf62846040518263ffffffff1660e01b8152600401620001969190620003b2565b602060405180830381865afa158015620001b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001da919062000414565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200024e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024590620004cd565b60405180910390fd5b80915050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000289826200025c565b9050919050565b60006200029d826200027c565b9050919050565b620002af8162000290565b8114620002bb57600080fd5b50565b600081519050620002cf81620002a4565b92915050565b6000620002e2826200027c565b9050919050565b620002f481620002d5565b81146200030057600080fd5b50565b6000815190506200031481620002e9565b92915050565b6000806040838503121562000334576200033362000257565b5b60006200034485828601620002be565b9250506020620003578582860162000303565b9150509250929050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006200039a8262000361565b9050919050565b620003ac816200038d565b82525050565b6000602082019050620003c96000830184620003a1565b92915050565b6000620003dc826200027c565b9050919050565b620003ee81620003cf565b8114620003fa57600080fd5b50565b6000815190506200040e81620003e3565b92915050565b6000602082840312156200042d576200042c62000257565b5b60006200043d84828501620003fd565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2061646420707269636520666565642e2050726963652060008201527f66656564206164647265737320697320696e76616c6964210000000000000000602082015250565b6000620004b560388362000446565b9150620004c28262000457565b604082019050919050565b60006020820190508181036000830152620004e881620004a6565b9050919050565b60805160a051610d3a6200051b600039600061043e01526000818160ff01526105ad0152610d3a6000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631a4541b7146100515780634fc87f2414610082578063978aa122146100a0578063edc832b3146100be575b600080fd5b61006b600480360381019061006691906107f7565b6100dc565b604051610079929190610846565b60405180910390f35b61008a61043c565b60405161009791906108ee565b60405180910390f35b6100a8610460565b6040516100b59190610909565b60405180910390f35b6100c66105ab565b6040516100d39190610945565b60405180910390f35b6000806000670de0b6b3a7640000905060006100f6610460565b905060008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bc54082a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018c9190610975565b92509250925087156103a057600081036101ff576000858a8b6101af91906109f7565b6101b99190610a80565b905060006101d086836105cf90919063ffffffff16565b925050506101dd816106da565b97508686896101ec91906109f7565b6101f69190610a80565b985050506102a8565b600061021485856105cf90919063ffffffff16565b92505050600061022d838c6105cf90919063ffffffff16565b9250505060008785846102409190610ab1565b8361024b91906109f7565b6102559190610a80565b9050876002888361026691906109f7565b6102709190610a80565b61027a9190610a80565b995061029b88600261028c91906109f7565b826105cf90919063ffffffff16565b9091509050809950505050505b60008560016102b791906109f7565b90508085106103225760006102eb82876102d19190610ab1565b83886102dd9190610b07565b6105cf90919063ffffffff16565b92505050600087828a6102fe91906109f7565b6103089190610a80565b905080896103169190610ab1565b9950899850505061039a565b600061033786836105cf90919063ffffffff16565b925050506000610366838361034c9190610ab1565b84846103589190610b07565b6105cf90919063ffffffff16565b92505050600088828c61037991906109f7565b6103839190610a80565b9050808b6103919190610ab1565b9950899a505050505b50610430565b888110156103e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103da90610bbe565b60405180910390fd5b60006103f8828b6105cf90919063ffffffff16565b9250505085818561040991906109f7565b6104139190610a80565b975085818461042291906109f7565b61042c9190610a80565b9650505b50505050509250929050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053f14da6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f49190610c14565b905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053f14da6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190610c14565b905061059d82826105cf90919063ffffffff16565b909150905080935050505090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008360008111610618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060f90610cb3565b60405180910390fd5b61062b858761075890919063ffffffff16565b9350670de0b6b3a764000085670de0b6b3a76400008861064b91906109f7565b6106559190610a80565b61065f9190610cd3565b925060008586670de0b6b3a76400008961067991906109f7565b6106839190610cd3565b600261068f91906109f7565b1015905080156106a9576001846106a69190610ab1565b93505b836106c5670de0b6b3a76400008761076e90919063ffffffff16565b6106cf9190610ab1565b925050509250925092565b6000670de0b6b3a7640000826106f091906109f7565b91506003821115610753578190506000600160028461070f9190610a80565b6107199190610ab1565b90505b818110156107515780915060028182856107369190610a80565b6107409190610ab1565b61074a9190610a80565b905061071c565b505b919050565b600081836107669190610a80565b905092915050565b6000818361077c91906109f7565b905092915050565b600080fd5b6000819050919050565b61079c81610789565b81146107a757600080fd5b50565b6000813590506107b981610793565b92915050565b60008115159050919050565b6107d4816107bf565b81146107df57600080fd5b50565b6000813590506107f1816107cb565b92915050565b6000806040838503121561080e5761080d610784565b5b600061081c858286016107aa565b925050602061082d858286016107e2565b9150509250929050565b61084081610789565b82525050565b600060408201905061085b6000830185610837565b6108686020830184610837565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006108b46108af6108aa8461086f565b61088f565b61086f565b9050919050565b60006108c682610899565b9050919050565b60006108d8826108bb565b9050919050565b6108e8816108cd565b82525050565b600060208201905061090360008301846108df565b92915050565b600060208201905061091e6000830184610837565b92915050565b600061092f826108bb565b9050919050565b61093f81610924565b82525050565b600060208201905061095a6000830184610936565b92915050565b60008151905061096f81610793565b92915050565b60008060006060848603121561098e5761098d610784565b5b600061099c86828701610960565b93505060206109ad86828701610960565b92505060406109be86828701610960565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a0282610789565b9150610a0d83610789565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a4657610a456109c8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610a8b82610789565b9150610a9683610789565b925082610aa657610aa5610a51565b5b828204905092915050565b6000610abc82610789565b9150610ac783610789565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610afc57610afb6109c8565b5b828201905092915050565b6000610b1282610789565b9150610b1d83610789565b925082821015610b3057610b2f6109c8565b5b828203905092915050565b600082825260208201905092915050565b7f496e73756666696369656e7420616d6f756e74206f66204e796c6f6e20696e2060008201527f63697263756c6174696f6e210000000000000000000000000000000000000000602082015250565b6000610ba8602c83610b3b565b9150610bb382610b4c565b604082019050919050565b60006020820190508181036000830152610bd781610b9b565b9050919050565b6000819050919050565b610bf181610bde565b8114610bfc57600080fd5b50565b600081519050610c0e81610be8565b92915050565b600060208284031215610c2a57610c29610784565b5b6000610c3884828501610bff565b91505092915050565b7f496e70757420706172616d65746572206e6565647320746f2062652061626f7660008201527f6520302e00000000000000000000000000000000000000000000000000000000602082015250565b6000610c9d602483610b3b565b9150610ca882610c41565b604082019050919050565b60006020820190508181036000830152610ccc81610c90565b9050919050565b6000610cde82610789565b9150610ce983610789565b925082610cf957610cf8610a51565b5b82820690509291505056fea2646970667358221220afba140d0782ae5e6ff53c44dac2990e5d33199caa5e199a2daf91126260c02f64736f6c634300080d0033

CBOR Auxdata

These values are what Sourcify extracted from the recompiled bytecode. If these values are different in the on-chain bytecode, they will show up in Transformations section.

CBOR Auxdata id: 1

View on IPFS LogoSolidity metadata.json IPFS hash: QmaAcdDdAfyVdj3kYymMRShD56cyhqMQwHCRwtb5EUgLtE
RawDecoded
Length: 53 bytes
0xa2646970667358221220afba140d0782ae5e6ff53c44dac2990e5d33199caa5e199a2daf91126260c02f64736f6c634300080d0033

Runtime Bytecode

0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631a4541b7146100515780634fc87f2414610082578063978aa122146100a0578063edc832b3146100be575b600080fd5b61006b600480360381019061006691906107f7565b6100dc565b604051610079929190610846565b60405180910390f35b61008a61043c565b60405161009791906108ee565b60405180910390f35b6100a8610460565b6040516100b59190610909565b60405180910390f35b6100c66105ab565b6040516100d39190610945565b60405180910390f35b6000806000670de0b6b3a7640000905060006100f6610460565b905060008060007fimmutable0000000000000000000000005499f7b04b8b06ca21b0d9e9238372ea8619b48473ffffffffffffffffffffffffffffffffffffffff1663bc54082a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018c9190610975565b92509250925087156103a057600081036101ff576000858a8b6101af91906109f7565b6101b99190610a80565b905060006101d086836105cf90919063ffffffff16565b925050506101dd816106da565b97508686896101ec91906109f7565b6101f69190610a80565b985050506102a8565b600061021485856105cf90919063ffffffff16565b92505050600061022d838c6105cf90919063ffffffff16565b9250505060008785846102409190610ab1565b8361024b91906109f7565b6102559190610a80565b9050876002888361026691906109f7565b6102709190610a80565b61027a9190610a80565b995061029b88600261028c91906109f7565b826105cf90919063ffffffff16565b9091509050809950505050505b60008560016102b791906109f7565b90508085106103225760006102eb82876102d19190610ab1565b83886102dd9190610b07565b6105cf90919063ffffffff16565b92505050600087828a6102fe91906109f7565b6103089190610a80565b905080896103169190610ab1565b9950899850505061039a565b600061033786836105cf90919063ffffffff16565b925050506000610366838361034c9190610ab1565b84846103589190610b07565b6105cf90919063ffffffff16565b92505050600088828c61037991906109f7565b6103839190610a80565b9050808b6103919190610ab1565b9950899a505050505b50610430565b888110156103e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103da90610bbe565b60405180910390fd5b60006103f8828b6105cf90919063ffffffff16565b9250505085818561040991906109f7565b6104139190610a80565b975085818461042291906109f7565b61042c9190610a80565b9650505b50505050509250929050565b7fimmutable0000000000000000000000006f8a7e2bbc1edb8782145cd1089251f6e2c738ae81565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053f14da6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f49190610c14565b905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663053f14da6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190610c14565b905061059d82826105cf90919063ffffffff16565b909150905080935050505090565b7fimmutable0000000000000000000000005499f7b04b8b06ca21b0d9e9238372ea8619b48481565b60008060008360008111610618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060f90610cb3565b60405180910390fd5b61062b858761075890919063ffffffff16565b9350670de0b6b3a764000085670de0b6b3a76400008861064b91906109f7565b6106559190610a80565b61065f9190610cd3565b925060008586670de0b6b3a76400008961067991906109f7565b6106839190610cd3565b600261068f91906109f7565b1015905080156106a9576001846106a69190610ab1565b93505b836106c5670de0b6b3a76400008761076e90919063ffffffff16565b6106cf9190610ab1565b925050509250925092565b6000670de0b6b3a7640000826106f091906109f7565b91506003821115610753578190506000600160028461070f9190610a80565b6107199190610ab1565b90505b818110156107515780915060028182856107369190610a80565b6107409190610ab1565b61074a9190610a80565b905061071c565b505b919050565b600081836107669190610a80565b905092915050565b6000818361077c91906109f7565b905092915050565b600080fd5b6000819050919050565b61079c81610789565b81146107a757600080fd5b50565b6000813590506107b981610793565b92915050565b60008115159050919050565b6107d4816107bf565b81146107df57600080fd5b50565b6000813590506107f1816107cb565b92915050565b6000806040838503121561080e5761080d610784565b5b600061081c858286016107aa565b925050602061082d858286016107e2565b9150509250929050565b61084081610789565b82525050565b600060408201905061085b6000830185610837565b6108686020830184610837565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006108b46108af6108aa8461086f565b61088f565b61086f565b9050919050565b60006108c682610899565b9050919050565b60006108d8826108bb565b9050919050565b6108e8816108cd565b82525050565b600060208201905061090360008301846108df565b92915050565b600060208201905061091e6000830184610837565b92915050565b600061092f826108bb565b9050919050565b61093f81610924565b82525050565b600060208201905061095a6000830184610936565b92915050565b60008151905061096f81610793565b92915050565b60008060006060848603121561098e5761098d610784565b5b600061099c86828701610960565b93505060206109ad86828701610960565b92505060406109be86828701610960565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a0282610789565b9150610a0d83610789565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a4657610a456109c8565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610a8b82610789565b9150610a9683610789565b925082610aa657610aa5610a51565b5b828204905092915050565b6000610abc82610789565b9150610ac783610789565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610afc57610afb6109c8565b5b828201905092915050565b6000610b1282610789565b9150610b1d83610789565b925082821015610b3057610b2f6109c8565b5b828203905092915050565b600082825260208201905092915050565b7f496e73756666696369656e7420616d6f756e74206f66204e796c6f6e20696e2060008201527f63697263756c6174696f6e210000000000000000000000000000000000000000602082015250565b6000610ba8602c83610b3b565b9150610bb382610b4c565b604082019050919050565b60006020820190508181036000830152610bd781610b9b565b9050919050565b6000819050919050565b610bf181610bde565b8114610bfc57600080fd5b50565b600081519050610c0e81610be8565b92915050565b600060208284031215610c2a57610c29610784565b5b6000610c3884828501610bff565b91505092915050565b7f496e70757420706172616d65746572206e6565647320746f2062652061626f7660008201527f6520302e00000000000000000000000000000000000000000000000000000000602082015250565b6000610c9d602483610b3b565b9150610ca882610c41565b604082019050919050565b60006020820190508181036000830152610ccc81610c90565b9050919050565b6000610cde82610789565b9150610ce983610789565b925082610cf957610cf8610a51565b5b82820690509291505056fea2646970667358221220afba140d0782ae5e6ff53c44dac2990e5d33199caa5e199a2daf91126260c02f64736f6c634300080d0033

CBOR Auxdata

These values are what Sourcify extracted from the recompiled bytecode. If these values are different in the on-chain bytecode, they will show up in Transformations section.

CBOR Auxdata id: 1

View on IPFS LogoSolidity metadata.json IPFS hash: QmaAcdDdAfyVdj3kYymMRShD56cyhqMQwHCRwtb5EUgLtE
RawDecoded
Length: 53 bytes
0xa2646970667358221220afba140d0782ae5e6ff53c44dac2990e5d33199caa5e199a2daf91126260c02f64736f6c634300080d0033

Transformations

Immutable Transformations

IDValueOffsets
21080x0000000000000000000000005499f7b04b8b06ca21b0d9e9238372ea8619b484255, 1453
21110x0000000000000000000000006f8a7e2bbc1edb8782145cd1089251f6e2c738ae1086

Storage Layout

SlotOffsetBytesLabelTypeContract
0020celoUsdcontract IWitnetPriceFeedcontracts/ExchangeRateService.sol:ExchangeRateService
1020celoEurcontract IWitnetPriceFeedcontracts/ExchangeRateService.sol:ExchangeRateService

Standard JSON Input

This isn't the original compiler JSON data. Generated for compatibility.

Loading...

Standard JSON Output

This isn't the original compiler JSON data. Generated for compatibility.

Loading...
0x7A7Fb6c946AFc8747c8FbC7301a2b9b84FC9Ed8B on Celo Alfajores Testnet (44787)