Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
097c1d6
setup subgraph
yu23ki14 Jul 13, 2025
31ad31c
adding member hat at bigbang
airinterface Jul 8, 2025
659d256
adding big bang V2 support
airinterface Jul 10, 2025
e54893b
adding member hat parameters
airinterface Jul 14, 2025
3af8bce
changing supply to 99
airinterface Jul 21, 2025
732e331
update SplitsCreator and BigBang for ThanksToken
yawn-c111 Jul 24, 2025
f7ced83
fix: added a missing arg
yawn-c111 Jul 24, 2025
3786513
fix: deploy test of Splits Creator
yawn-c111 Jul 24, 2025
8f84645
fix: delete wrong logics
yawn-c111 Jul 24, 2025
bde8ef5
update: splits creator weight logics
yawn-c111 Jul 24, 2025
6526dff
feat: enhance SplitsCreator with WeightsInfo struct and update alloca…
yawn-c111 Jul 24, 2025
8b77e2d
test: add integration test for ThanksToken deployed from BigBang bala…
yawn-c111 Jul 25, 2025
d22f460
modify
yu23ki14 Jul 27, 2025
23c1a96
Merge pull request #382 from hackdays-io/issues/328-MemberHatAtBigBang
yu23ki14 Jul 27, 2025
9c535ab
fix conflict
yu23ki14 Jul 27, 2025
5c6b808
fix: ThanksToken deployment from uups to clone
yawn-c111 Jul 29, 2025
ca6459a
fix: adjust indentation for NAME function in ThanksToken contract
yawn-c111 Jul 30, 2025
0eded98
test: update ThanksToken tests with dynamic token name and symbol
yawn-c111 Jul 30, 2025
f5b91fd
feat: add participant tracking to ThanksToken contract and correspond…
yawn-c111 Jul 30, 2025
62745cb
feat: enhance SplitsCreator contract with ThanksToken integration and…
yawn-c111 Aug 1, 2025
4d61c3f
refactor: improve allocation calculation logic in SplitsCreator contr…
yawn-c111 Aug 1, 2025
8e6bbf2
refactor: remove unused getThanksTokenScore function and clean up imp…
yawn-c111 Aug 1, 2025
ccc4d5d
refactor: update PRECISION constant in SplitsCreator contract for imp…
yawn-c111 Aug 1, 2025
5a8dc73
test: enhance allocation tests in SplitsCreator with detailed logging…
yawn-c111 Aug 1, 2025
3a3a9f0
test: streamline allocation validation in SplitsCreator by removing c…
yawn-c111 Aug 1, 2025
8ad65b4
adding readme
airinterface Aug 5, 2025
68c7053
Merge pull request #388 from hackdays-io/feature/adding-readme
yu23ki14 Aug 10, 2025
95333aa
Merge branch 'main' into feature/v2subgraph
yu23ki14 Aug 10, 2025
e220e08
refactor: rename BigBang_Mock_v3 to BigBang_Mock_v2
yawn-c111 Aug 11, 2025
aab7d41
Merge pull request #387 from hackdays-io/feature/#372-splits-logic-wi…
yu23ki14 Aug 11, 2025
a5d2e83
tmp
yu23ki14 Aug 11, 2025
77695ae
update: create2 script for v2
yawn-c111 Aug 11, 2025
fe7b0aa
refactor: format
yawn-c111 Aug 11, 2025
0fed175
tmp
yu23ki14 Aug 12, 2025
6a306b6
fix: integrate ThanksToken deployment in create2 script
yawn-c111 Aug 12, 2025
bcafab7
add subgraph base
yu23ki14 Aug 18, 2025
11adc7b
Merge pull request #399 from hackdays-io/feature/v2subgraph
yu23ki14 Aug 18, 2025
b57f330
Merge pull request #396 from hackdays-io/update/deploy-scripts-for-v2
yu23ki14 Aug 18, 2025
ca5818d
toban graphql
yu23ki14 Aug 18, 2025
ac400ac
期間を指定してアクティビティを取得できるようにしました。
mashharuki Aug 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,19 @@ Therefore, we created Role Based Rewards Distribution system to track contributi

Core features are

1. Manage responsibilities and rights on rolls
1. Manage responsibilities and rights on roles
2. Track little contributions with P2P token transfer
3. Determine the rewards rate based on roll and engaged period
4. Distribute rewards quickly to a large number of people
3. Send Thanks Token(*)
4. Determine the rewards rate based on role and engaged period, and Fraction Token
5. Distribute rewards quickly to a large number of people

(*) In the implementation, what we refer to as a "Thanks Token" may also be called a "Fraction Token." In the application interface, it might appear as "Assist Credit" or "Role Share," depending on the version. However, all of these terms refer to the same concept.

These solutions were combined with ideas from [Hats Protocol](https://www.hatsprotocol.xyz/), [Splits](https://splits.org), and [Protocol Guild](https://protocol-guild.readthedocs.io/en/latest/).




## Live

[https://toban.xyz](https://toban.xyz/)
Expand Down
10 changes: 10 additions & 0 deletions pkgs/cli/src/abi/bigbang.ts
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,16 @@ export const BIGBANG_ABI = [
name: "_hatterHatImageURI",
type: "string",
},
{
internalType: "string",
name: "_memberHatDetails",
type: "string",
},
{
internalType: "string",
name: "_memberHatImageURI",
type: "string",
},
{
internalType: "address",
name: "_trustedForwarder",
Expand Down
4 changes: 4 additions & 0 deletions pkgs/cli/src/modules/bigbang.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ export const bigbang = async (params: {
topHatImageURI: string;
hatterHatDetails: string;
hatterHatImageURI: string;
memberHatDetails: string;
memberHatImageURI: string;
trustedForwarder: Address;
}) => {
const stop = startLoading();
Expand All @@ -32,6 +34,8 @@ export const bigbang = async (params: {
params.topHatImageURI,
params.hatterHatDetails,
params.hatterHatImageURI,
params.memberHatDetails,
params.memberHatImageURI,
params.trustedForwarder,
],
});
Expand Down
58 changes: 40 additions & 18 deletions pkgs/contract/contracts/bigbang/BigBang.sol
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {
address indexed owner,
uint256 indexed topHatId,
uint256 hatterHatId,
uint256 memberHatId,
uint256 operatorHatId,
uint256 creatorHatId,
uint256 minterHatId,
Expand Down Expand Up @@ -84,14 +85,18 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {
* @param _topHatImageURI The image URI of the topHat.
* @param _hatterHatDetails The details of the hatterHat.
* @param _hatterHatImageURI The image URI of the hatterHat.
* @param _memberHatDetails The details of the memberHat.
* @param _memberHatImageURI The image URI of the memberHat.
* @return topHatId The ID used for navigating to the ProjectTop page after project creation.
*/
function bigbang(
address _owner,
string calldata _topHatDetails,
string calldata _topHatImageURI,
string calldata _hatterHatDetails,
string calldata _hatterHatImageURI
string calldata _hatterHatImageURI,
string calldata _memberHatDetails,
string calldata _memberHatImageURI
) external returns (uint256) {
// 1. TopHatのMint
uint256 topHatId = Hats.mintTopHat(
Expand All @@ -111,7 +116,20 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {
_hatterHatImageURI
);

// 3. Create Fixed Roles under TopHat
// 3. Create Member Hat ID
uint256 memberHatId = Hats.createHat(
hatterHatId,
_memberHatDetails,
99,
0x0000000000000000000000000000000000004A75,
0x0000000000000000000000000000000000004A75,
true,
_memberHatImageURI
);

Hats.mintHat(memberHatId, _owner);

// 4. Create Fixed Roles under TopHat
uint256 operatorHatId = Hats.createHat(
topHatId,
_hatterHatDetails,
Expand All @@ -121,6 +139,7 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {
true,
_hatterHatImageURI
);

uint256 creatorHatId = Hats.createHat(
operatorHatId,
_hatterHatDetails,
Expand All @@ -130,6 +149,7 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {
true,
_hatterHatImageURI
);

uint256 minterHatId = Hats.createHat(
operatorHatId,
_hatterHatDetails,
Expand All @@ -140,7 +160,7 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {
_hatterHatImageURI
);

// 4. HatsHatCreatorModuleのデプロイ
// 5. HatsHatCreatorModuleのデプロイ
address hatsHatCreatorModule = HatsModuleFactory.createHatsModule(
HatsHatCreatorModule_IMPL,
topHatId,
Expand All @@ -149,7 +169,7 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {
0
);

// 5. HatsTimeFrameModuleのデプロイ
// 6. HatsTimeFrameModuleのデプロイ
address hatsTimeFrameModule = HatsModuleFactory.createHatsModule(
HatsTimeFrameModule_IMPL,
topHatId,
Expand All @@ -158,7 +178,7 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {
0
);

// 6. HatsHatFractionTokenModuleのデプロイ
// 7. HatsHatFractionTokenModuleのデプロイ
address hatsFractionTokenModule = HatsModuleFactory.createHatsModule(
HatsFractionTokenModule_IMPL,
topHatId,
Expand All @@ -167,7 +187,7 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {
0
);

// 7. HatterHatにHatModuleをMint
// 8. HatterHatにHatModuleをMint
uint256[] memory hatIds = new uint256[](2);
hatIds[0] = hatterHatId;
hatIds[1] = hatterHatId;
Expand All @@ -178,35 +198,37 @@ contract BigBang is OwnableUpgradeable, UUPSUpgradeable {

Hats.batchMintHats(hatIds, modules);

// 8. TopHatIdの権限を_ownerに譲渡
// 9. TopHatIdの権限を_ownerに譲渡
Hats.transferHat(topHatId, address(this), _owner);

// 9. SplitCreatorをFactoryからデプロイ
// 9. ThanksTokenをFactoryからデプロイ
address thanksToken = IThanksTokenFactory(ThanksTokenFactory)
.createThanksTokenDeterministic(
string(abi.encodePacked("ThanksToken ", _topHatDetails)),
string(abi.encodePacked("THX", topHatId)),
_owner,
1e18, // デフォルト係数(1.0)
keccak256(abi.encodePacked(topHatId, "0"))
);

// 10. SplitCreatorをFactoryからデプロイ
address splitCreator = SplitsCreatorFactory
.createSplitCreatorDeterministic(
topHatId,
address(Hats),
SplitsFactoryV2,
hatsTimeFrameModule,
hatsFractionTokenModule,
thanksToken,
keccak256(abi.encodePacked(topHatId))
);

// 10. ThanksTokenをFactoryからデプロイ
address thanksToken = IThanksTokenFactory(ThanksTokenFactory)
.createThanksTokenDeterministic(
string(abi.encodePacked("ThanksToken ", _topHatDetails)),
string(abi.encodePacked("THX", topHatId)),
_owner,
1e18, // デフォルト係数(1.0)
keccak256(abi.encodePacked(topHatId, "ThanksToken"))
);

emit Executed(
msg.sender,
_owner,
topHatId,
hatterHatId,
memberHatId,
operatorHatId,
creatorHatId,
minterHatId,
Expand Down
Loading
Loading