@juicedollar/jusd 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +356 -0
  3. package/contracts/Equity.sol +457 -0
  4. package/contracts/JuiceDollar.sol +363 -0
  5. package/contracts/Leadrate.sol +79 -0
  6. package/contracts/MintingHubV2/MintingHub.sol +445 -0
  7. package/contracts/MintingHubV2/Position.sol +810 -0
  8. package/contracts/MintingHubV2/PositionFactory.sol +69 -0
  9. package/contracts/MintingHubV2/PositionRoller.sol +159 -0
  10. package/contracts/MintingHubV2/interface/IMintingHub.sol +26 -0
  11. package/contracts/MintingHubV2/interface/IPosition.sol +90 -0
  12. package/contracts/MintingHubV2/interface/IPositionFactory.sol +20 -0
  13. package/contracts/Savings.sol +141 -0
  14. package/contracts/SavingsVaultJUSD.sol +140 -0
  15. package/contracts/StablecoinBridge.sol +109 -0
  16. package/contracts/StartUSD.sol +16 -0
  17. package/contracts/gateway/CoinLendingGateway.sol +223 -0
  18. package/contracts/gateway/FrontendGateway.sol +224 -0
  19. package/contracts/gateway/MintingHubGateway.sol +87 -0
  20. package/contracts/gateway/SavingsGateway.sol +51 -0
  21. package/contracts/gateway/interface/ICoinLendingGateway.sol +73 -0
  22. package/contracts/gateway/interface/IFrontendGateway.sol +49 -0
  23. package/contracts/gateway/interface/IMintingHubGateway.sol +12 -0
  24. package/contracts/impl/ERC3009.sol +171 -0
  25. package/contracts/interface/IJuiceDollar.sol +54 -0
  26. package/contracts/interface/ILeadrate.sol +7 -0
  27. package/contracts/interface/IReserve.sol +9 -0
  28. package/contracts/interface/ISavingsJUSD.sol +49 -0
  29. package/contracts/test/FreakToken.sol +25 -0
  30. package/contracts/test/Math.sol +339 -0
  31. package/contracts/test/MockEquity.sol +15 -0
  32. package/contracts/test/PositionExpirationTest.sol +75 -0
  33. package/contracts/test/PositionRollingTest.sol +65 -0
  34. package/contracts/test/TestFlashLoan.sol +84 -0
  35. package/contracts/test/TestFlashLoanGateway.sol +49 -0
  36. package/contracts/test/TestMathUtil.sol +40 -0
  37. package/contracts/test/TestToken.sol +45 -0
  38. package/contracts/test/TestWcBTC.sol +35 -0
  39. package/contracts/utils/MathUtil.sol +61 -0
  40. package/dist/index.d.mts +8761 -0
  41. package/dist/index.d.ts +8761 -0
  42. package/dist/index.js +11119 -0
  43. package/dist/index.mjs +11073 -0
  44. package/exports/abis/MintingHubV2/PositionFactoryV2.ts +90 -0
  45. package/exports/abis/MintingHubV2/PositionRoller.ts +183 -0
  46. package/exports/abis/MintingHubV2/PositionV2.ts +999 -0
  47. package/exports/abis/core/CoinLendingGateway.ts +427 -0
  48. package/exports/abis/core/Equity.ts +1286 -0
  49. package/exports/abis/core/FrontendGateway.ts +906 -0
  50. package/exports/abis/core/JuiceDollar.ts +1366 -0
  51. package/exports/abis/core/MintingHubGateway.ts +865 -0
  52. package/exports/abis/core/SavingsGateway.ts +559 -0
  53. package/exports/abis/core/SavingsVaultJUSD.ts +920 -0
  54. package/exports/abis/utils/ERC20.ts +310 -0
  55. package/exports/abis/utils/ERC20PermitLight.ts +520 -0
  56. package/exports/abis/utils/Leadrate.ts +175 -0
  57. package/exports/abis/utils/MintingHubV2.ts +682 -0
  58. package/exports/abis/utils/Ownable.ts +76 -0
  59. package/exports/abis/utils/Savings.ts +453 -0
  60. package/exports/abis/utils/StablecoinBridge.ts +209 -0
  61. package/exports/abis/utils/StartUSD.ts +315 -0
  62. package/exports/abis/utils/UniswapV3Pool.ts +638 -0
  63. package/exports/address.config.ts +48 -0
  64. package/exports/index.ts +28 -0
  65. package/package.json +87 -0
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "@juicedollar/jusd",
3
+ "version": "1.0.0",
4
+ "description": "JuiceDollar (JUSD) - Oracle-free, Bitcoin-collateralized stablecoin on Citrea. Decentralized minting with democratic governance.",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "files": [
9
+ "contracts/**/*.sol",
10
+ "dist/",
11
+ "exports/"
12
+ ],
13
+ "directories": {
14
+ "doc": "docs",
15
+ "test": "tests"
16
+ },
17
+ "scripts": {
18
+ "lint:sol": "solhint 'contracts/**/*.sol' && prettier -c \"contracts/**/*.sol\"",
19
+ "lint:sol:fix": "prettier --write \"contracts/**/*.sol\"",
20
+ "lint:test:fix": "prettier --write \"test/**/**.test.ts\"",
21
+ "compile": "npx hardhat compile",
22
+ "wallet": "npx ts-node helper/wallet.info.ts",
23
+ "coverage": "npx hardhat coverage",
24
+ "deploy": "npx hardhat run scripts/deployment/deploy/deployProtocol.ts",
25
+ "deploy:testnet": "npx hardhat run scripts/deployment/deploy/deployProtocol.ts --network citreaTestnet",
26
+ "verify": "npx hardhat run scripts/verifyContracts.ts --network citrea",
27
+ "verify:testnet": "DEPLOYMENT_FILE_PATH=./deployments/citreaTestnet/protocol.json npx hardhat run scripts/verifyContracts.ts --network citreaTestnet",
28
+ "build": "tsup",
29
+ "ts:export:abis": "npx ts-node ./scripts/exportAbis.ts && prettier --write \"exports/abis/**/*.ts\"",
30
+ "prepublishOnly": "yarn run build",
31
+ "publish": "npm publish --access public",
32
+ "cover": "nodejs ./solcover.js",
33
+ "test": "npx hardhat test test/unit/*.ts",
34
+ "deployPositions:network": "export deploymode=pos && npx hardhat deploy --network",
35
+ "positions": "npx hardhat monitor-positions --network citrea --sort created",
36
+ "contracts": "npx hardhat get-contracts",
37
+ "monitor": "npx hardhat monitor-all --network citrea"
38
+ },
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "git+https://github.com/JuiceDollar"
42
+ },
43
+ "keywords": [],
44
+ "author": "",
45
+ "license": "MIT",
46
+ "bugs": {
47
+ "url": "https://github.com/JuiceDollar/issues"
48
+ },
49
+ "homepage": "https://github.com/JuiceDollar#readme",
50
+ "dependencies": {
51
+ "@openzeppelin/contracts": "^5.1.0",
52
+ "hardhat-abi-exporter": "^2.10.0",
53
+ "hardhat-contract-sizer": "^2.5.1",
54
+ "prettier": "^3.3.3",
55
+ "prettier-plugin-solidity": "^1.4.1",
56
+ "prompt": "^1.3.0",
57
+ "solhint": "^5.0.5",
58
+ "ts-node": "^10.9.1",
59
+ "typescript": "^5.2.2"
60
+ },
61
+ "devDependencies": {
62
+ "@nomicfoundation/hardhat-chai-matchers": "^2.0.8",
63
+ "@nomicfoundation/hardhat-ethers": "^3.0.8",
64
+ "@nomicfoundation/hardhat-ignition": "^0.15.8",
65
+ "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0",
66
+ "@nomicfoundation/hardhat-network-helpers": "^1.0.12",
67
+ "@nomicfoundation/hardhat-toolbox": "^5.0.0",
68
+ "@nomicfoundation/hardhat-verify": "^2.1.1",
69
+ "@nomicfoundation/ignition-core": "^0.15.8",
70
+ "@typechain/ethers-v6": "^0.5.1",
71
+ "@typechain/hardhat": "^9.0.0",
72
+ "@types/chai": "^4.3.6",
73
+ "@types/mocha": "^10.0.1",
74
+ "chai": "^4.3.8",
75
+ "dotenv": "^16.3.1",
76
+ "ethers": "^6.15.0",
77
+ "hardhat": "^2.26.3",
78
+ "hardhat-deploy": "^1.0.4",
79
+ "hardhat-gas-reporter": "^1.0.9",
80
+ "mocha": "^10.7.0",
81
+ "solidity-coverage": "^0.8.4",
82
+ "tsc-watch": "^6.2.0",
83
+ "tsup": "^8.3.0",
84
+ "typechain": "^8.3.1",
85
+ "viem": "^2.21.16"
86
+ }
87
+ }