V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
FFFFourwood
V2EX  ›  分享创造

第一次写合约, 2000 个 xbox 盲盒免费 mint,希望大家喜欢

  •  1
     
  •   FFFFourwood · 2022-04-08 10:40:21 +08:00 · 11939 次点击
    这是一个创建于 721 天前的主题,其中的信息可能已经有所发展或是发生改变。

    mint 地址 https://xboxfans.xyz

    opensea: https://opensea.io/collection/xbox-fans

    • 一个月前有的这个想法,上周六开始从 0 边学边写,利用下班时间怒肝将近一周 写了出来

    • 内容是 2000 个 xbox 炫彩 logo 盲盒 NFT

    • POLYGON 主网免费 mint

    • 合约用的 solidity + hardhat

    • 网站 用的 react + nuxt.js + web3.js

    • 域名+服务器 是 cloudflare + vercel

    • 成本 域名 0.98 刀,部署智能合约 0.13Matic

    • 心愿就是 2000 个都送出去 这样我就有了继续写下去的动力!!

    第 1 条附言  ·  2022-04-09 03:05:45 +08:00

    由于合约被BOT盯上了,虽然做了每个钱包3个的限制,但是ECR721合约的balanceOf方法只能判断用户手里有几个当前合约的NFT,可是要是Mint 3个之后再转出去,这时候balanceOf的值就会从3变成0,所以遇到来回转的BOT,我无能为力,翻了记录,这BOT来回换小号至少刷走了300张。。。为了对付这个BOT,只能暂时把Mint门槛改成0.1MATIC了,所以各位可以用留下钱包地址的方式 继续免费Mint!当然支付0.1或者更多 我会很开心的哈哈哈哈哈,新型互联网乞丐就是我了

    • 写错了 网站用的 Next.js 不是Nuxt.js
    • 技术,教程 啥的 等我写好了 这两天发出来
    第 2 条附言  ·  2022-04-10 06:05:55 +08:00

    不要再领了!

    钱包被盗了!!!

    1点准备睡觉,躺床上玩手机,刷到个好玩的准备开电脑看看,隔离在家作息都乱了,结果打开电脑发现钱包余额0.0001,查看交易过后确认钱包被盗,我向这个钱包转账,瞬间就会被转出去

    今天太晚了,明天我更新下网站,关掉入口。

    由于被盗的钱包正是xbox fans NFT 这个合约的owner,由于现在钱包被盗,里面又存不上钱,所以我没有gas 去控制合约,现在属于是几乎失去了合约的控制权。。也就没办法提款,也没办法 开盲盒了。。。

    合约里面 有90刀的余额,都是这两天被mint出去的1800个里面收到的,本来晚上打算提出来了,后来寻思就剩200个没mint,凑够2000一起提,,结果半夜就被盗了。。。

    ###我很不理解我为啥会被盗,这几天的行为:

    • 周六小狐狸卡顿,我卸载重装了,所以重新输入过一次助记词
    • 周日下午在 https://app.airnfts.com/ 签了个名,但这是正经网站应该也没事啊
    • 最近我mac上chrome的小狐狸创建新的热钱包总是会卡出两个一模一样的钱包bug,
    • 私钥 助记词 是放在 mac自带的备忘录里,

    最后没想到我的第一个智能合约项目竟然是以这种方式结束。。我想过最差可能就是2000个送都送不出去,万万没想到一天半的时间送出去1800个,还收到了一共90刀的赞助打赏,,,更是没想到现在直接被盗,,连盲盒都开不了,,我还挺期待开盒以后 谁的最好看呢。。。。

    啊对了 合约的code我加了点注释放出来了 https://github.com/FFFFourwood/Xbox-Fans-DAO

    网站,资料教程啥的 后面再放

    最后宣布,Xbox Fans DAO 项目 正式 GG

    第 3 条附言  ·  2022-04-12 21:28:15 +08:00

    update 一下更新的技术 和 相关教程

    第 4 条附言  ·  2022-04-14 20:49:28 +08:00

    再 @crs0910 大佬的帮助下! 成功帮我找回来合约的主动权!!! 再次感谢大佬!!

    大佬牛逼!!

    我稍晚些 就开盲盒! 哈哈哈哈哈哈

    148 条回复    2022-05-13 23:18:14 +08:00
    1  2  
    FFFFourwood
        101
    FFFFourwood  
    OP
       2022-04-09 20:49:49 +08:00
    @Jafee 后面我发教程啥的
    @passon 我也是万万没想到,被 bot 白白刷走至少三四百个
    RyanRY
        102
    RyanRY  
       2022-04-09 21:11:39 +08:00
    0xE899bB5C849fC5ae571347C403E2448dF9Dd138B 求一个看看,谢谢大佬~
    WeekWeek
        103
    WeekWeek  
       2022-04-09 21:15:01 +08:00 via Android
    感觉挺有趣的 hhh
    0x65FFBA69fa6BC32492EF40de719BF02eE6c1CDD0
    方便给我也发一个嘛谢谢 XD
    FFFFourwood
        104
    FFFFourwood  
    OP
       2022-04-09 21:50:21 +08:00
    @RyanRY
    @WeekWeek
    发咯
    mosliu
        105
    mosliu  
       2022-04-09 22:47:35 +08:00
    没玩过 。。。
    0x7A4e47F71aF530EEAbCf580bcD81C704862Cf21B
    还有么?
    FFFFourwood
        106
    FFFFourwood  
    OP
       2022-04-09 23:43:42 +08:00
    @mosliu 发你啦
    mosliu
        107
    mosliu  
       2022-04-10 00:06:09 +08:00
    @FFFFourwood 谢谢 研究研究
    leon7777
        108
    leon7777  
       2022-04-10 10:13:05 +08:00 via Android
    私钥一定要纸质记录!!!你这个被盗案例我不是第一次见了,可能是你之前这个钱包去别的网站有过合约交互,然后人家放长线钓大鱼,监控钱包,一定要定时清理签名
    lizhenda
        109
    lizhenda  
       2022-04-10 14:15:42 +08:00
    这结局是真的没想到···
    FFFFourwood
        110
    FFFFourwood  
    OP
       2022-04-10 23:06:10 +08:00
    @leon7777 以后我得万分小心了,,冷热钱包都得分开
    FFFFourwood
        111
    FFFFourwood  
    OP
       2022-04-10 23:07:20 +08:00
    @lizhenda 是啊,,本来被 mint 了 1800 个我还蛮有成就感的,,比较期待开盲盒呢,,这结局我是万万没想到
    sausagelee
        112
    sausagelee  
       2022-04-11 08:31:00 +08:00
    op 厉害了哈哈哈
    QRan
        113
    QRan  
       2022-04-11 09:41:49 +08:00
    虽然但是,就那么想笑呢 O(∩_∩)O~
    op 下次注意哈哈哈
    小狐狸里面的 matic 就留着等 op 下次发的时候领
    233373
        114
    233373  
       2022-04-11 10:09:27 +08:00
    FFFFourwood
        115
    FFFFourwood  
    OP
       2022-04-11 13:19:47 +08:00
    @QRan 哈哈哈哈我也没想过是这样的结局

    @233373 是的 我从这抄的, 只不过这个大佬用的 remix ,,我用的 hardhat
    crs0910
        116
    crs0910  
       2022-04-11 13:32:19 +08:00
    @FFFFourwood 把 private key 发一下,我试试能不能帮你转移 ownership
    crs0910
        117
    crs0910  
       2022-04-11 14:04:53 +08:00
    ```
    import { FlashbotsBundleProvider } from '@flashbots/ethers-provider-bundle'
    import { Contract, providers, utils, Wallet } from 'ethers'

    async function main() {
    // Standard json rpc provider directly from ethers.js (NOT Flashbots)
    // create the base provider
    let base = new providers.JsonRpcProvider({ url: 'https://polygon-rpc.com/' }, 137)
    await base.ready

    // badPK 被盗 private key
    const bad = new Wallet(process.env.badPK, base)
    // sponsorPK 转 gas 费的钱包的 private key
    const sponsor = new Wallet(process.env.sponsorPK, base)

    // wrap it with the marlin relay provider
    let provider = new FlashbotsBundleProvider(base, bad, { url: 'http://bor.txrelay.marlin.org/' }, 137)
    const newOwner = ''

    const CONTRACT_ADDRESS = '0x9ece35dde502e0c966204967702bca1e860d9b43'
    const ABI = [
    {
    inputs: [
    {
    internalType: 'address',
    name: 'newOwner',
    type: 'address',
    },
    ],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
    type: 'function',
    },
    ]
    const contract = new Contract(CONTRACT_ADDRESS, ABI, bad)

    const txs = [
    {
    transaction: {
    to: bad.address,
    gasPrice: '31000000000',
    value: utils.parseEther('0.1'),
    },
    signer: sponsor
    },
    {
    signer: bad,
    transaction: await contract.populateTransaction.transferOwnership(newOwner),
    }
    ]

    const blk = await base.getBlockNumber()

    // send bundle to marlin relay
    const result = await provider.sendBundle(txs, blk + 1)
    console.log(result)
    }

    main().catch(console.error)

    ```
    自己试试吧
    crs0910
        118
    crs0910  
       2022-04-11 14:07:12 +08:00
    FFFFourwood
        119
    FFFFourwood  
    OP
       2022-04-11 14:42:53 +08:00
    @crs0910 谢谢 不过 flashbots 这个我昨天早上试过了,,eth 主网的可以救,polygon 的这个 endpoint 节点 404 , 我还加了官方那个 MEV 的 discord ,翻了一会感觉都没啥人 我就 放弃了
    FFFFourwood
        120
    FFFFourwood  
    OP
       2022-04-11 14:45:30 +08:00
    @crs0910 我再去试试吧,, 我昨天用的这个 https://github.com/microbecode/flashbot/blob/master/src/index.ts
    233373
        121
    233373  
       2022-04-11 15:05:40 +08:00
    FFFFourwood
        122
    FFFFourwood  
    OP
       2022-04-11 15:20:28 +08:00
    @233373 我这个其实知道每个 id 是哪张图,,但是 2000 张 太多了 我懒得看哈哈哈哈
    johnkks
        123
    johnkks  
       2022-04-11 16:58:54 +08:00
    可怕... 看来在 blockchain 的世界里我们还是得保持一定的“敌意”,OP 这个帖子很有教育意义,感谢~😂 希望 OP 复盘后能有更好的作品~
    FFFFourwood
        124
    FFFFourwood  
    OP
       2022-04-11 18:39:52 +08:00
    @crs0910 大佬可以留个联系方式么,你发的那个 flashbots 的,我老是报错 gas required exceeds allowance ,,但我钱包里 gas 是够的,而且还算的是 两个方法加在一起的当前最优 gas ,,
    crs0910
        125
    crs0910  
       2022-04-12 00:30:15 +08:00
    @FFFFourwood https://gist.github.com/abisuq/aaf0dde9e8f0bc89e82cfc073918b04d
    能跑,但是付到 3 个 Matic 都没人打包我就没试了。
    crs0910
        126
    crs0910  
       2022-04-12 00:43:33 +08:00
    @FFFFourwood 试试单独两个交易,第二个用高 gas 费跑吧。我看这个机器人也是差了两个块,还是有机会的。
    FFFFourwood
        127
    FFFFourwood  
    OP
       2022-04-12 20:47:23 +08:00
    @crs0910 放弃了 跑了一小时,,,无果,,你需要的话可以把私钥发你,真的搞出来 钱你拿就行,我只是想把盲盒开了。。。
    FFFFourwood
        128
    FFFFourwood  
    OP
       2022-04-12 21:30:35 +08:00
    @233373
    @npe
    @chenggiant
    @whitehack
    @Wishprophet
    @Jafee

    教程和源码已发, 本来想写 博客的, 最近工作有点忙,,晚些再写吧
    233373
        129
    233373  
       2022-04-12 21:57:13 +08:00
    @FFFFourwood

    ```js
    //不知道干啥用的 我没用过
    function setBaseExtension(string memory _newBaseExtension)
    public
    onlyOwner
    {
    baseExtension = _newBaseExtension;
    }
    ```

    其实这个是设置 metadata 的文件名后缀的,比如.json 或者.txt
    matsuda
        130
    matsuda  
       2022-04-12 22:57:51 +08:00
    0xCDD11540e2c54488c61c0ee1Ff2737A335DAEA1c 还能领盲盒嘛,谢谢分享
    crs0910
        131
    crs0910  
       2022-04-13 00:34:37 +08:00 via iPhone
    @FFFFourwood 你发到我这个用户名的 iCloud 邮箱吧 有空了帮你试试 不要钱
    mscsky
        132
    mscsky  
       2022-04-14 09:26:59 +08:00
    chrome 小狐狸有漏洞
    FFFFourwood
        133
    FFFFourwood  
    OP
       2022-04-14 12:01:36 +08:00
    @mscsky 我的 chrome 一直都是保持更新的,,不过我现在已经改用手机小狐狸了,, 只有临时钱包用 chrome 的小狐狸
    QRan
        135
    QRan  
       2022-04-15 09:50:53 +08:00
    那就等着 op 开箱子了
    大佬们真厉害
    FFFFourwood
        136
    FFFFourwood  
    OP
       2022-04-15 12:18:06 +08:00
    @QRan 已经开了,去 opensea 刷新下就能看到了
    JwChen1024
        137
    JwChen1024  
       2022-04-17 10:19:28 +08:00
    恭喜拿回了合约的主动权!
    lonelymarried
        138
    lonelymarried  
       2022-04-19 14:14:09 +08:00
    哪里拍的域名这么便宜啊
    FFFFourwood
        139
    FFFFourwood  
    OP
       2022-04-21 09:26:04 +08:00
    enjoeq
        140
    enjoeq  
       2022-04-21 17:14:10 +08:00
    谢谢 lz ,最近也在学习 dApp 开发,也想自己做一次 NFT ,请问 lz 的图片是怎么生成的?
    顺便可以加个联系方式学习一下吗,谢谢。
    V:ZmVuZ3llcWgwMDk=
    addou
        141
    addou  
       2022-04-24 02:20:41 +08:00 via Android
    求赠送 0xf96c3abe2b1d84213889dd8493b4b04297198ae5
    panshen521
        142
    panshen521  
       2022-04-24 11:28:26 +08:00
    大家好,我是割学家
    FFFFourwood
        143
    FFFFourwood  
    OP
       2022-04-24 18:01:08 +08:00
    @enjoeq 加了,,图片是 node.js 随机出来的
    FFFFourwood
        144
    FFFFourwood  
    OP
       2022-04-24 18:06:42 +08:00
    @addou 已经没有啦
    YICHUJIFA
        145
    YICHUJIFA  
       2022-05-02 15:29:42 +08:00
    有没有计划写 个 NFT 数字藏品的项目啊?
    collinswang
        146
    collinswang  
       2022-05-04 15:54:00 +08:00
    楼主的图片和 metadata 是怎么上传上去的?是先打包成 car 文件然后上传还是得上传 4000 次?
    FFFFourwood
        147
    FFFFourwood  
    OP
       2022-05-09 14:05:52 +08:00
    @collinswang pinata 直接文件夹上传
    ayugudu
        148
    ayugudu  
       2022-05-13 23:18:14 +08:00
    老哥 现在搞合约能赚钱吗可以当副业吗
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2784 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:08 · PVG 20:08 · LAX 05:08 · JFK 08:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.